gmic-1.5.7.1/0000775000175000017500000000000012216304520013037 5ustar dtschumpdtschumpgmic-1.5.7.1/src/0000775000175000017500000000000012216303503013626 5ustar dtschumpdtschumpgmic-1.5.7.1/src/gmic_def.gmic0000664000175000017500000417102012216303503016231 0ustar dtschumpdtschump#@gmic # # File : gmic_def.gmic # ( G'MIC commands file ) # # Description : Define the set of standard G'MIC commands, as well as # the filters for the G'MIC plug-in for GIMP, and for the # web service G'MIC Online. # ( http://gmic.sourceforge.net ) # This file is also a part of the CImg Library project. # ( http://cimg.sourceforge.net ) # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # #------ Syntax rules for a G'MIC command file : # #*** General syntax : # # - Each line starting with 'command_name :' starts a new definition of the G'MIC custom command '-command_name'. # - Each line starting with '#' is a comment line. # - Any other line is considered as the continuation of a previously started G'MIC custom command. # #*** Specific rules for 'gmic' (command-line interpreter) : # # - A comment line starting with '#@gmic' will be parsed by 'gmic' in order to display help for # G'MIC custom commands (when invoked with option '-h'). More precisely : # # _ '#@gmic :: subsection' defines a new command subsection in the displayed help. # _ '#@gmic command_name : arguments_format1 : arguments_format2 : ... : (qualifier)' starts a new command description. # _ '#@gmic : description' add a new description line to the current command description. # #*** Specific rules for 'gmic_gimp' (plug-in for GIMP) : # # - A comment line starting with '#@gimp' will be parsed by the GIMP plug-in to define the filters tree. # - A comment line starting with '#@gimp_xx' will define a filter only for a specific language 'xx' # (e.g. 'en','fr'...). # - More precisely, the syntax of a '#@gimp' comment line is : # # '#@gimp Folder name' # # or # # '#@gimp Command name : command, preview_command, parameter = typedef, parameter2 = typedef' # '#@gimp : parameter3 = typedef, parameter4 = typedef ...., parameterN = typedef' # # where : # # 'command' is the G'MIC command name called to process the image. # # 'preview_command' is the G'MIC command name called to process the preview. # # Note that you can optionally specify a float-valued factor>=0 between parentheses at the end of # the 'preview_command' to force the default zoom factor used by the GIMP preview for this filter. # Use (0) for a 1:1 preview, (1) for previewing the whole image, (2) for 1/2 image and so on... # # 'parameter = typedef' tells about the names, types and default values of the filter parameters. # # 'typedef' can be : # # _ 'float(default_value,min_value,max_value)' : Add a float-valued parameter (as a GUI float slider). # _ 'int(default_value,min_value,max_value)' : Add a integer parameter (as a GUI integer slider). # _ 'bool(default_value={ 0 | 1 | false | true })' : Add a boolean parameter (0 or 1) (as a GUI checkbutton). # _ 'choice(_default_indice,Choice0,..,ChoiceN)' : Add a integer parameter (as a GUI combobox). # _ 'text(_is_multiline={ 0 | 1 },_default text)' : Add a single or multi-line text parameter (as a GUI text entry). # _ 'file(_default_filename)' : Add a filename parameter (as a GUI filechooser). # _ 'folder(_default_foldername)' : Add a foldername parameter (as a GUI folderchooser). # _ 'color(defaultR,defaultG,defaultB,_defaultA)' : Add R,G,B[,A] parameters (as a GUI colorchooser). # _ 'note(_label)' : Display a label, but do not add a new parameter. # _ 'link(_alignement,_label,URL)' : Display a label that link to a specified URL. # _ 'separator()' : Display an horizontal separator. # # Type separators '()' can be replaced by '[]' or '{}' if necessary (for instance if parentheses are required in # an argument of the typedef, e.g in a text). You can also replace 'typedef' by '_typedef' to tell the plug-in not # to update the image preview when the corresponding parameter is modified. # # Use '_none_' as a special command or preview_command to tell the plug-in that the entry requires no G'MIC call. # #*** Specific rules for 'gmicol' (G'MIC web service) : # # - Same rules as for 'gmic_gimp', except that comment lines start with '#@gmicol'. # #----------------------------------------------------------------------------------------------------------------------- #--------------------------------- # #@gmic :: Global options # #--------------------------------- #@gmic debug : (*) #@gmic : Activate debug mode. #@gmic : When activated, the G'MIC interpreter becomes very verbose and outputs additionnal log #@gmic : messages about its internal state on the standard output (stdout). #@gmic : This option can be useful when debugging the execution of a custom command. #@gmic h : eq. to '-help'. : (*) h : -help $* #@gmic help : _command : (no args) : (*) #@gmic : Display help (optionally for specified command only) and exit. #@gmic : (eq. to '-h'). help : -skip ${1=""},${2=1} -if {!@#} -return -endif -y y -a y --_help $1,$2 -k[0] -if {narg(@{})} -_help[0] @{},0 -endif -rm _help : -skip ${1=""} -v -1 -if {!narg("$1")} -__help ascii -v + -e[] "" -v - -rm -u "" -return -endif # Global help. ({'"$1"'}) -autocrop[-1] {'-'} -if {@{-1,100%}=={']'}" && "i!={'['}} -l[-1] -s -,{'['} -k[0] -endl -endif command=@{-1,t} -rm[-1] # Help requested for a specific command. ks0="0" ks1="-k[0]" -if $2 -__help_header_ascii[] -endif -r 1,{h+1},1,1,0,0,0,1 -s +,{'"#@gmic "$command" :"'} -if {@#==1} -s +,{'"#@gmic "$command":"'} -endif -if {@#==1} -s +,{'"#@gmic "$command"\n"'} -endif -if {@#==1} -v + -e[] "\n[gmic] Command '"$command"' has no description. Try 'gmic -h' for global help.\n\n" -v - -rm -u "" -return -endif -rm[0] -a y -s -,10 stopflag=0 is_example=0 -_document_gmic_header_ascii[] 0 -repeat @# -l[$>] -if {h>7" && "{@{-1,0-5}'=='{'"#@gmic"'}}} -rows 7,100% -autocrop {'" "'} # Discard '#@gmic'. -if {i!={':'}} # Command declaration. -s -,{'": "'} -autocrop {'" "'} -if {@{0,t}'=='$command} -_document_gmic_declaration_ascii -if $_shortcut # Found shortcut command. -v + -e[] "\n -"$command": Equivalent to '"$_shortcutlink0"'." -v - -u $_shortcutlink0 -return -endif -else stopflag=1 -endif -else -rows 1,100% # Discard ':' char. -if {i=={':'}} stopflag=1 # Subsection -else -autocrop {'" "'} -if {i=={'$'}} # Example of use. -rows 1,100% -autocrop {'" "'} # Discard '$' character. -if $is_example -i[0] ({'" "'}) -else -i[0] ({'"\n Example(s): "'}) is_example=1 -endif -y[0] y -a y -endif -_document_gmic_description_ascii 0 -endif -endif -else stopflag=1 -endif ${ks{@#!=0}} -endl -if $stopflag -break -endif -done -v + -e[] "\n" -v - -rm -u "" __help : -m "_help_section : -_help_section_$1 \"$""1\"" -m "_help_paragraph : -_help_paragraph_$1 \"$""1\"" -_help_header_$1[] -_help_usage[] -document_gmic $1,"img/",0 -_help_examples[] -_help_footer_$1[] # Commands to output help in latex format. _help_header_latex : -if {narg($_gmic_is_beta)} strbeta=" (beta)" -else strbeta="" -endif -if {narg($_gmic_version)} strver=$_gmic_version -else strver=@{-strver} -endif -v + -e[] "\\documentclass[a4paper,11pt,twoside]{book} \n\\usepackage{hyperref,fancyhdr,graphicx,amssymb,amsmath,times,makeidx,listings} \n\\graphicspath{{img/}} \n\\pagestyle{fancyplain} \n\\lhead[\\fancyplain{}{\\textbf\\thepage}]{\\fancyplain{}{\\rightmark}} \n\\rhead[\\fancyplain{}{\\leftmark}]{\\fancyplain{}{\\textbf\\thepage}} \n\\cfoot{} \n\\setlength{\\textwidth}{5.875in} \n\\setlength{\\parindent}{0pc} \n\\setlength{\\hoffset}{-0.8cm} \n\\setcounter{tocdepth}{1} \n\\sloppy{} \n\\title{\\fbox{\\parbox{\\textwidth}{\\begin{center}\\vspace*{2cm}\\includegraphics[width=12cm]{logo3.jpg}\\\\\\vspace*{1cm}{\\Huge \\textbf{The Handbook}\\\\{\\small Version "$strver$strbeta"}\\\\\\vspace*{1cm}}\\end{center}}}} \n\\author{\\Large \\bf David Tschumperl\\'e} \n\\renewcommand\\indexname{Index of commands} \n\\makeindex \n\\lstset{columns=fullflexible,basicstyle=\\normalfont} \n\\begin{document} \n\\maketitle \n\\tableofcontents \n\\chapter*{Preamble} \n\\section*{License} \nThis document is distributed under the \\textbf{GNU Free Documentation License}, version 1.3.\\\\ \nRead the full license terms at \\texttt{http://www.gnu.org/licenses/fdl-1.3.txt}.\\\\~\\\\ \nAn online version of this documentation is available at:\\\\\\texttt{http://gmic.sourceforge.net/reference.shtml}. \n\\section*{Motivations} \nG'MIC is an open and full-featured framework for image processing, providing several different user interfaces to \nconvert/manipulate/filter/visualize generic image datasets, from 1d scalar signales to 3d+t sequences of multi-spectral volumetric images. \nTechnically speaking, what it does is: \n\\begin{itemize} \n\\item Define a lightweight but powerful script language (the G'MIC language) dedicated to the design of image processing pipelines. \n\\item Provide several user interfaces embedding the corresponding interpreter: \n\\begin{itemize} \n\\item A command-line executable 'gmic', to use the G'MIC framework from a shell. \nIn this setting, G'MIC may be seen as a direct (and friendly) competitor of the ImageMagick or GraphicsMagick software suites. \n\\item A plug-in 'gmic\\_gimp', to bring G'MIC capabilities to the GIMP image retouching software. \n\\item A web-service 'G'MIC Online', to allow users applying image processing algorithms directly in a web brower. \n\\item A Qt-based interface 'ZArt', for real-time manipulation of webcam images. \n\\item A C++ library 'libgmic', to be linked with third-party applications. \n\\end{itemize} \n\\end{itemize} \nG'MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. This includes of course color images, but also more complex data as image sequences or 3d(+t) volumetric float-valued datasets.\\\\ \n \nG'MIC is an open framework: the default language can be extended with custom G'MIC-written commands, defining thus new available image filters or effects. By the way, G'MIC already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000).\\\\ \n \nG'MIC has been designed with portability in mind and runs on different platforms (Windows, Unix, MacOSX). It is distributed under the CeCILL license (GPL-compatible). Since 2008, it is developed in the Image Team of the GREYC laboratory, in Caen/France, by permanent researchers working in the field of image processing on a daily basis. \n\\section*{Version} \n \n gmic: GREYC's Magic for Image Computing. \n \n Version "$strver$strbeta", Copyright (C) 2008-2013, David Tschumperl\\'e \n (http://gmic.sourceforge.net) \n\\chapter{Usage} " -v - _help_section_latex : -skip "$1" -v + -e[] "\\section{$1}" -v - _help_paragraph_latex : -skip "$1" -v + -e[] "\\small" -e[] "\\begin{lstlisting}" -e[] "$1" -e[] "\\end{lstlisting}" -e[] "\\normalsize" -v - _help_footer_latex : -v + -e[] " \n\\printindex \n~\\\\$\\square$~End of document. \n\n\\end{document}" -v - # Commands to output help in html format. _help_header_html : _section=0 -if {narg($_gmic_is_beta)} strbeta=" (beta)" -else strbeta="" -endif -if {narg($_gmic_version)} strver=$_gmic_version -else strver=@{-strver} -endif -v + -e[] " \n \n \n
\n
Reference
\n
\n

Preamble

\n \n

Table of contents

\n \n

Version

\n
gmic: GREYC's Magic for Image Computing.
\n
\n       Version "$strver$strbeta", Copyright (C) 2008-2013, David Tschumperle
\n       (http://gmic.sourceforge.net)
\n
" -v - -_help_section "Usage" _help_section_html : _section={$_section+1} -v + -e[] "

$1

" -v - _help_paragraph_html : -v + -e[] "
$*
" -v - _help_footer_html : -v + -e[] " \n
** G'MIC comes with ABSOLUTELY NO WARRANTY; for details visit http://gmic.sourceforge.net ** \n \n
\n
\n
\n
\n \n " -v - # Commands to output help in ascii format. _help_header_ascii : -__help_header_ascii _section=0 _space1="" _space2=" " -_help_section "Usage" __help_header_ascii : -if {narg($_gmic_is_beta)} strbeta=" (beta)" -else strbeta="" -endif -if {narg($_gmic_version)} strver=$_gmic_version -else strver=@{-strver} -endif -v + -e[] " \n gmic: GREYC's Magic for Image Computing. \n \n Version "$strver$strbeta", Copyright (C) 2008-2013, David Tschumperle. \n (http://gmic.sourceforge.net)" -v - _help_section_ascii : _section={$_section+1} {narg({'"$1"'})},1,1,1,{'-'} -v + -e[] "\n "$_section". $1" -e[] " "${_space{narg({'$_section'})}}@{-1,t}"\n" -v - -rm[-1] _help_paragraph_ascii : -v + -e[] "$*" -v - _help_footer_ascii : -v + -e[] " ** G'MIC comes with ABSOLUTELY NO WARRANTY; for details visit http://gmic.sourceforge.net **" -v - # Command to write general usage (used by all types of output). _help_usage : -_help_paragraph " gmic [command1 [arg1_1,arg1_2,..]] .. [commandN [argN_1,argN_2,..]] \n \n 'gmic' is an open-source interpreter of the G'MIC language, a script-based programming \n language dedicated to design image processing pipelines. It can be used to convert, \n manipulate, filter and visualize datasets made of one or several 1d/2d or 3d multi- \n spectral images. \n \n This documentation proposes a complete description of the G'MIC language basics and rules." -_help_section "Overall context" -_help_paragraph " - At any time, G'MIC manages one list of numbered (and optionally named) pixel-based \n images, entirely stored in computer memory. \n - The first image of the list has indice '0' and is denoted by '[0]'. The second image of \n the list is denoted by '[1]', the third by '[2]' and so on. \n - Negative indices are treated in a cyclic way: '[-1]' refers to the last image of the \n list, '[-2]' to the penultimate one, etc. Thus, if the list has 4 images, '[1]' and '[-3]' \n both designate the second image of the list. \n - A named image may be denoted by '[name]' if 'name' uses characters set [a-zA-Z0-9_] and \n does not start with a number. Image names can be set or reassigned at any moment during \n the processing pipeline (see commands '-name' and '-input'). \n - G'MIC defines a set of various commands and substitution mechanisms to allow the design \n of complex pipelines managing this list of images, in a very flexible way: \n You can insert or remove images in the list, rearrange image indices, process images \n (individually or as a group), merge image data together and output image files. \n - Such a pipeline can be written itself as a custom G'MIC command storable in a custom \n commands file, which can be re-used afterwards in another bigger pipeline if necessary." -_help_section "Image definition and terminology" -_help_paragraph " - In G'MIC, an image is modeled as a 1d, 2d, 3d or 4d array of scalar values, uniformly \n discretized on a rectangular/parallelepipedic domain. \n - The four dimensions of these arrays are respectively denoted by: \n . 'width', the number of image columns (size along the 'x'-axis). \n . 'height', the number of image rows (size along the 'y'-axis). \n . 'depth', the number of image slices (size along the 'z'-axis). \n The depth is equal to 1 for usual 2d color or grayscale images. \n . 'spectrum', the number of image channels (size along the 'c'-axis). \n The spectrum is respectively equal to 3 and 4 for usual RGB and RGBA color images. \n - There are no size limitations on each image dimensions. Particularly, the number of image \n slices or channels can be of arbitrary size within the limits of available memory. \n - The width, height and depth of an image are considered as 'spatial' dimensions, while the \n spectrum has a 'multi-spectral' meaning. Thus, a 4d image in G'MIC should be most often \n regarded as a 3d dataset of multi-spectral voxels. Most of the G'MIC commands will stick \n with this idea (e.g. command '-blur' will blur images only along the 'xyz' axes). \n - All pixel values of all images of the list have the same datatype. It can be one among: \n . 'bool': Stands for 'boolean'. Value range is { 0=false | 1=true }. \n . 'uchar': Stands for 'unsigned char'. Value range is [0,255] (8bits). \n This type of pixel coding is commonly used to store 8bits/channels RGB[A] images. \n . 'char': Value range is [-128,127] (8bits). \n . 'ushort': Stands for 'unsigned short'. Value range is [0,65535] (16bits). \n This type of pixel coding is commonly used to store 16bits/channels RGB[A] images. \n . 'short': Value range is [-32768,32767] (16bits). \n . 'uint': Stands for 'unsigned int'. Value range is [0,2^32-1] (32bits). \n . 'int': Value range is [-2^31,2^31-1] (32 bits). \n . 'float': Value range is [-3.4E38,+3.4E38] (32bits). \n This type of coding is able to store pixels as 32 bits float-valued numbers. This is \n the default datatype used by G'MIC image processing operations. \n . 'double': Value range is [-1.7E308,1.7E308] (64bits). \n This type of coding is able to store pixels as 64 bits float-valued numbers. \n - Considering pixel datatypes different than 'float' is generally useless, except to force \n the input/output of image data to a prescribed binary format. Hence, most G'MIC image \n image processing commands are available only for the default 'float' pixel datatype \n (see command '-type' if you need to switch to another pixel datatype)." -_help_section "Items of a processing pipeline" -_help_paragraph " - In G'MIC, an image processing pipeline is described as a sequence of items separated by \n the space character ' '. Such items are interpreted and executed from the left to the \n right. For instance, the expression: \n 'input.jpg -blur 3,0 -sharpen 10 -resize 200%,200% -output output.jpg' \n defines a valid pipeline composed of nine G'MIC items. \n - A G'MIC item is a string which represents either a command, a set of command arguments, \n a filename, or a special input string. \n - Escape characters '\\' and double quotes '\"' can be used (as usual) to define items \n containing spaces, or any other character sequences. For instance, the strings \n 'single\\ item' and '\"single item\"' define the same string item, with a space in it." -_help_section "Input data items" -_help_paragraph " - If a specified G'MIC item appears to be an existing filename, the corresponding image \n data are loaded and inserted at the end of the image list. \n - Special filenames '-' and '-.ext' stand for the standard input/output streams, optionally \n forced to be in a specific 'ext' file format (e.g. '-.jpg' or '-.png'). \n - The following special input strings may be used as G'MIC items to create and insert new \n images with prescribed values, at the end of the image list: \n . '[selection]' or '[selection]xN': Insert 1 or N copies of selected existing images. \n 'selection' may contain one or several images (see next section for details). \n . 'width[%],_height[%],_depth[%],_spectrum[%],_values': Insert a new image with \n specified size and values (adding '%' to a dimension means 'percentage of the size \n along the same axis, taken from the last image '[-1]''). Any specified dimension \n can be also written as '[image]', and is then set to the size (along the same axis) \n of the existing specified image [image]. 'values' can be either a sequence of numbers \n separated by commas ',', or a mathematical expression, as e.g. in input item \n '256,256,1,3,if(c==0,x,if(c==1,y,0))' which creates a 256x256 RGB color image with a \n spatial shading on the red and green channels. \n . '(v1,v2,..)': Insert a new image from specified prescribed values. \n Value separator inside parentheses can be ',' (column separator.), ';' (row sep.), \n '/' (slice sep.) or '^' (channel sep.). For instance, expression \n '(1,2,3;4,5,6;7,8,9)' creates a 3x3 matrix (scalar image), with values from 1 to 9. \n . '0': Insert a new 'empty' image, containing no pixel data. Empty images are used only \n in rare occasions. \n - Input item 'name=value' declares a new local or global variable 'name', or assign a new \n value to an existing variable. Variable names use characters set [a-zA-Z0-9_] and cannot \n start with a number. A variable definition is always local to the current command except \n when it starts by the underscore character '_'. In that case, it becomes also accessible \n by any command invoked outside the current command scope." -_help_section "Command items and selections" -_help_paragraph " - A G'MIC item starting by '-' designates a command, most of the time. Generally, commands \n perform image processing operations on one or several available images of the list. \n - Common commands have two equivalent names (regular and short). For instance, command \n names '-resize' and '-r' refer to the same image resizing action. \n - A G'MIC command may have mandatory or optional arguments. Command arguments must be \n specified in the next item on the command line. Commas ',' are used to separate multiple \n arguments, if any required. \n - The execution of a G'MIC command may be restricted only to a subset of the image list, by \n appending '[subset]' to the command name. Examples of valid syntaxes for 'subset' are: \n . '-com[0,1,3]': Apply command only on images [0],[1] and [3]. \n . '-com[3-5]': Apply command only on images [3] to [5] (i.e, [3],[4] and [5]). \n . '-com[50%-100%]': Apply command only on the second half of the image list. \n . '-com[0,-4--1]': Apply command only on the first and the four latest images. \n . '-com[0-9:3]': Apply command only on images [0] to [9], with a step of 3 \n (i.e. on images [0], [3], [6] and [9]). \n . '-com[0--1:2]': Apply command only on images of the list with even indices. \n . '-com[0,2-4,50%--1]': Apply command on images [0],[2],[3],[4] and on the second half \n of the image list. \n . '-com[^0,1]': Apply command on all images except the first two. \n . '-com[name1,name2]': Apply command on named images 'name1' and 'name2'. \n - Indices in selections are always sorted in increasing order, and duplicate indices are \n discarded. For instance, selections '[3-1,1-3]' and '[1,1,1,3,2]' are both equivalent to \n '[1-3]'. If you want to repeat a single command multiple times on an image, use a \n '-repeat..-done' loop. Inverting the order of images in a selection can be achieved by \n inverting first the order of the images in the list, with command '-reverse[selection]'. \n - G'MIC commands invoked without '[subset]' are applied on all images of the list. \n - A G'MIC command starting with '--' instead of '-' does not act 'in-place' but inserts its \n result as one or several new images at the end of the image list. \n - There are two different types of commands that can be run by the G'MIC interpreter: \n . Native commands, are hard-coded functionalities in the interpreter core. \n They are thus compiled as machine code and run quickly, most of the time. \n Omitting an argument when invoking a native command is not permitted, except if all \n following arguments are also omitted. For instance, call to '-plasma 10,,5' is invalid \n but '-plasma 10' is correct. \n . Custom commands, are defined as G'MIC pipelines of native or custom commands. \n They are interpreted by the G'MIC interpreter, and run slower than native commands. \n But omitting arguments when invoking a custom command is permitted. For instance, \n expressions '-flower ,,,100,,2' or '-flower ,' are correct. \n - A user may easily add its own custom commands to the G'MIC interpreter (see section \n 'Adding custom commands'). Native commands cannot be added unless you modify the G'MIC \n interpreter source code." -_help_section "Inputs / outputs properties" -_help_paragraph " - G'MIC is able to read/write most of the classical image file formats, including: \n . 2d grayscale/color files: .png, .jpeg, .gif, .pnm, .tif, .bmp, .. \n . 3d volumetric files: .dcm, .hdr, .nii, .pan, .inr, .pnk, .. \n . Image sequences: .mpeg, .avi, .mov, .ogg, .flv, .. \n . Generic ascii or binary data files: .cimg, .cimgz, .dlm, .asc, .pfm, .raw, .txt, .h. \n . 3d object files: .off. \n - When dealing with color images, G'MIC generally reads, writes and displays data using the \n usual RGB color space. \n - G'MIC is able to manage 3d objects that may be read from files or generated by G'MIC \n commands. They are stored as one-column scalar images containing the object data, in the \n following order: { magic_number; sizes; vertices; primitives; colors; opacities }. \n These 3d representations can be processed as regular float-valued images. \n (see command '-split3d' for accessing each of these 3d object data separately). \n - Be aware that usual file formats may be sometimes not adapted to store all the available \n image data, since G'MIC uses float-valued coding of image pixels. For instance, saving \n an image that was initially loaded as a 16bits/channel image, as a .jpg file will result \n in loss of information. Use the .cimg file extension (or .cimgz, its compressed \n version) to ensure that all data precision will be preserved when saving images. \n - File options can/must be set for these specific file formats: \n . Video files: Only sub-frames of an image sequence may be loaded, using the input \n expression 'filename.ext,[first_frame[%][,last_frame[%][,step]]]'. \n Output framerate and bitrate (in Kb/s) can be also set by using the output expression \n 'file.mpg,_fps,_bitrate'. \n . .raw binary files: Image dimensions and input pixel type may be specified when loading \n .raw files with input expresssion 'filename.raw[,type][,width][,height[,depth[,dim]]]]'. \n If no dimensions are specified, the resulting image is a one-column vector with \n maximum possible height. Pixel type can also be specified with the output \n expression 'file.raw[,type]'. \n 'type' can be { bool | uchar | char | ushort | short | uint | int | float | double }. \n . .yuv files: Image dimensions must be specified, and only sub-frames of an image \n sequence may be loaded, using the input expression \n 'filename.yuv,width,height[,first_frame[,last_frame[,step]]]'. \n . tiff files: Only sub-images of multi-pages tiff files can be loaded, using the input \n expression 'filename.tif,[first_frame,[last_frame,[step]]]'. \n . .gif files: Animated gif files can be saved, using the input expression \n 'filename.gif,fps,nb_loops'. \n Specify 'nb_loops=0' to get an infinite number of animation loops. \n . .jpeg files: The output quality may be specified (in %), using the output expression \n 'filename.jpg,30' (here, to get a 30% quality output). \n . .mnc files: The output header can set from another file, using the output expression \n 'filename.mnc,header_template.mnc'. \n . Filenames with extension '.gmic' are assumed to be G'MIC custom commands files. Loading \n such a file will add the commands it defines to the interpreter. \n . Inserting 'ext:' on the beginning of a filename (e.g. 'jpg:filename') forces G'MIC to \n read/write the file as it would have been done if it had the specified extension. \n - Some input/output formats and options may not be supported by your current version of \n 'gmic', depending on the configuration flags set for the build of the 'gmic' binaries." -_help_section "Substitution rules" -_help_paragraph " - G'MIC items containing '@', '$' or '{}' may be substituted before being interpreted. Use \n the substituting expressions below to access data from the interpreter environment: \n . '@#' is substituted by the current number of images in the list. \n . '@*' is substituted by the number of available cpus. \n . '@.' is substituted by the current version number of the G'MIC interpreter \n . '@^' is substituted by the current verbosity level. \n . '@%' is substituted by the pid of the current process. \n . '@|' is substituted by the current value (expressed in seconds) of a millisecond \n precision timer. \n . '@?' is substituted by the current data type of image pixels. \n . '@/' is substituted by the current number of levels in the command scope. \n . '@{/}' or '@{/,subset}' are substituted by the content of the global scope, or a \n subset of it. If specified subset refers to multiple scope items, they are separated \n by slashes '/'. \n . '@>' and '@<' are equivalent. They are both substituted by the number of nested \n 'repeat-done' loops that are currently running. \n . '@{>}' or '@{>,subset}' are substituted by the indice values (or a subset of them) of \n the running 'repeat-done' loops, expressed in the ascending order, starting from 0. \n If specified subset refers to multiple indices, they are separated by commas ','. \n . '@{<}' or '@{<,subset}' do the same but in descending order. \n . '@indice' or '@{indice,feature}' are substituted by the list of pixel values of the \n image [indice] (separated by commas), or by a specific feature (or subset) of it. \n 'indice' can be an indice or an image name. Requested 'featured' can be one of: \n . 'w': image width (number of image columns). \n . 'h': image height (number of image rows). \n . 'd': image depth (number of image slices). \n . 's': image spectrum (number of image channels). \n . 'wh': image width x image height. \n . 'whd': image width x image height x image depth. \n . 'whds': image width x image height x image depth x image spectrum. \n (i.e. number of values in the specified image, eq. to '#'). \n . 'r': image shared state (1, if the pixel buffer is shared, 0 otherwise). \n . 'n': image name or filename (if the image has been read from a file). \n . 'b': image basename (i.e. filename without the folder path nor extension). \n . 'x': image extension (i.e last characters after the last '.' in the filename). \n . 'f': image folder name. \n . '#': number of image values (i.e. width x height x depth x spectrum). \n . '+': sum of all pixel values. \n . '-': difference of all pixel values. \n . '*': product of all pixel values. \n . '/': quotient of all pixel values. \n . 'm': minimum pixel value. \n . 'M': maximum pixel value. \n . 'a': average pixel value. \n . 'v': variance of pixel values. \n . 't': text string built from the image values, regarded as ascii codes. \n . 'c': (x,y,z,c) coordinates of the minimum value, separated by commas ','. \n . 'C': (x,y,z,c) coordinates of the maximum value, separated by commas ','. \n . '(x[%],_y[%],_z[%],_c[%],_boundary)': pixel value at (x[%],y[%],z[%],c[%]), with \n specified boundary conditions { 0=dirichlet | 1=neumann | 2=cyclic }. \n . Any other 'feature' is considered either as a specified subset of image values, or \n as a mathematical expression to evaluate (associated to selected image). \n For instance, '@{-1,0-50%}' is substituted by the sequence of numerical values \n coming from the first half data of the last image, separated by commas ','. \n Expression '@{0,w+h}' is substituted by the sum of the width and height of the \n first image. \n . '@!' is substituted by the visibility state of the instant display window [0] \n (can be { 0=closed | 1=visible }). \n . '@{!,feature}' or '@{!indice,feature}' is substituted by a specific feature of the \n instant display window [0] (or [indice], if specified). Requested 'feature' can be: \n . 'w': display width (i.e. width of the display area managed by the window). \n . 'h': display height (i.e. height of the display area managed by the window). \n . 'wh': display width x display height. \n . 'd': window width (i.e. width of the window widget). \n . 'e': window height (i.e. height of the window widget). \n . 'de': window width x window height. \n . 'u': screen width (actually independent on the window size). \n .' v': screen height (actually independent on the window size). \n . 'uv': screen width x screen height. \n . 'x': X-coordinate of the mouse position (or -1, if outside the display area). \n . 'y': Y-coordinate of the mouse position (or -1, if outside the display area). \n . 'b': state of the mouse buttons { 1=left-but. | 2=right-but. | 4=middle-but. }. \n . 'o': state of the mouse wheel. \n . 'k': decimal code of the pressed key if any, 0 otherwise. \n . 'n': current normalization type of the instant display. \n . 'c': boolean (0 or 1) telling if the instant display has been closed recently. \n . 'r': boolean telling if the instant display has been resized recently. \n . 'm': boolean telling if the instant display has been moved recently. \n . Any other 'feature' stands for a keycode name in capital letters, and is substi- \n tuted by a boolean describing the current key state { 0=pressed | 1=released }. \n . '@{\"command line\"}' is substituted by the status value set by the execution of the \n specified command line (see command '-status'). \n . Expression '@{}' stands thus for the current status value. \n - '$name' and '${name}' are both substituted by the value of the specified named variable \n (set previously by item 'name=value'), or by the current positive indice of the named \n image '[name]', or by the value of the named OS environment variable (in this order). \n - '$>' and '$<' (resp. '${>}' and '${<}') are shortcuts respectively for '@{>,-1}' and \n '@{<,-1}'. They refer to the increasing/decreasing indice of the latest (currently \n running) 'repeat..done' loop. \n - Any other expression inside braces (as in '{expression}') is considered as a mathematical \n expression, and is evaluated, except for the three following cases: \n . If expression starts and ends by single quotes, it is substituted by the sequence of \n ascii codes that composes the specified string, separated by commas ','. For instance, \n item '{'foo'}' is substituted by '102,111,111'. \n . If expression starts and ends with backquotes '`', it is substituted by the string \n whose ascii codes are given by the list of values in between the backquotes. \n For instance, item '{`102,111,111`}' is substituted by 'foo'. \n . If expression contains operator ''=='' or ''!='', it is substituted by 0 or 1, whether \n the strings beside the operator are the same or not (case-sensitive). For instance, \n both items '{foo'=='foo}' and '{foo'!='FOO}' are substituted by '1'. \n . If expression starts with an underscore '_', it is substituted by the mathematical \n evaluation of the expression, truncated to a readable format. \n - Item substitution is never done in items between double quotes. One must break the quotes \n to enable substitution if needed, as in \"3+8 kg = \"{3+8}\" kg\". Using double quotes \n is then a convenient way to disable the substitutions mechanism in items, when necessary. \n - One can also disable the substitution mechanism on items outside double quotes, by \n escaping the '@','{','}' or '$' characters, as in '\\{3+4\\}\\ doesn't\\ evaluate'." -_help_section "Mathematical expressions" -_help_paragraph " - G'MIC has an embedded mathematical parser. It is used to evaluate expressions inside \n braces '{}', or formulas in commands that may take one as an argument (e.g. '-fill'). \n - When used in commands, a formula is evaluated for each pixel of the selected images. \n - The math parser understands the following set of functions, operators and variables: \n _ Usual operators: || (logical or), && (logical and), | (bitwise or), & (bitwise and), \n !=, ==, <=, >=, <, >, << (left bitwise shift), >> (right bitwise shift), -, +, *, /, \n % (modulo), ^ (power), ! (logical not), ~ (bitwise not). \n _ Usual functions: sin(), cos(), tan(), asin(), acos(), atan(), sinh(), cosh(), tanh(), \n log(), log2(), log10(), exp(), sign(), abs(), atan2(), round(), narg(), arg(), \n isval(), isnan(), isinf(), isint(), isbool(), rol() (left bit rotation), \n ror() (right bit rotation), min(), max(), sinc(), int(). \n Function 'atan2()' is the version of atan() with two arguments 'y,x' (as in C/C++). \n Function 'narg()' returns the number of specified arguments. \n Function 'arg(i,a_1,..,a_n)' returns the ith argument a_i. \n Functions 'min()' and 'max()' can be called with an arbitrary number of arguments. \n Functions 'isval()', 'isnan()', 'isinf()', 'isbool()' can be used to test the type of \n a given number or expression. \n _ The variable names below are pre-defined. They cannot be overloaded: \n . 'w': width of the associated image, if any (0 otherwise). \n . 'h': height of the associated image, if any (0 otherwise). \n . 'd': depth of the associated image, if any (0 otherwise). \n . 's': spectrum of the associated image, if any (0 otherwise). \n . 'x': current processed column of the associated image, if any (0 otherwise). \n . 'y': current processed row of the associated image, if any (0 otherwise). \n . 'z': current processed slice of the associated image, if any (0 otherwise). \n . 'c': current processed channel of the associated image, if any (0 otherwise). \n . 'i': current processed pixel value (i.e. value located at (x,y,z,c)) of the \n associated image, if any (0 otherwise). \n . 'im','iM','ia','iv': Respectively the minimum, maximum, average values and \n variance of the associated image, if any (0 otherwise). \n . 'xm','ym','zm','cm': The pixel coordinates of the minimum value in the associated \n image, if any (0 otherwise). \n . 'xM','yM','zM','cM': The pixel coordinates of the maximum value in the \n associated image, if any (0 otherwise). \n . 'pi': value of pi, i.e. 3.1415926.. \n . 'e': value of e, i.e. 2.71828.. \n . '?' or 'u': a random value between [0,1], following a uniform distribution. \n . 'g': a random value, following a gaussian distribution of variance 1 \n (roughly in [-5,5]). \n _ These special operators can be used: \n . ';': expression separator. The returned value is always the last encountered \n expression. For instance expression '1;2;pi' is evaluated as 'pi'. \n . '=': variable assignment. Variables in mathematical parser can only refer to. \n numerical values. Variable names are case-sensitive. Use this operator in \n conjunction with ';' to define complex evaluable expressions, such as \n 't=cos(x);3*t^2+2*t+1'. \n These variables remain local to the mathematical parser and cannot be accessed \n outside the evaluated expression. \n _ The following specific functions are also defined: \n . 'if(expr_cond,expr_then,expr_else)': return value of 'expr_then' or 'expr_else', \n depending on the value of 'expr_cond' (0=false, other=true). For instance, \n G'MIC command '-fill if(x%10==0,255,i)' will draw blank vertical lines on every \n 10th column of an image. \n . '?(max)' or '?(min,max)': return a random value between [0,max] or [min,max], \n following a uniform distribution. 'u(max)' and 'u(0,max)' mean the same. \n . 'i(_a,_b,_c,_d,_interpolation,_boundary)': return the value of the pixel located \n at position (a,b,c,d) in the associated image, if any (0 otherwise). \n Interpolation parameter can be { 0=nearest neighbor | other=linear }. \n Boundary conditions can be { 0=dirichlet | 1=neumann | 2=cyclic }. \n Omitted coordinates are replaced by their default values which are respectively \n x, y, z, c and 0. \n . 'j(_dx,_dy,_dz,_dc,_interpolation,_boundary)': does the same for the pixel located \n at position (x+dx,y+dy,z+dz,c+dc). \n For instance command '-fill 0.5*(i(x+1)-i(x-1))' will estimate the X-derivative \n of an image with a classical finite difference scheme. \n . If specified formula starts with '>' or '<', the operators 'i(..)' and 'j(..)' will return \n values of the image currently being modified, in forward ('>') or backward ('<') order. \n - The last image of the list is always associated to the evaluations of '{expressions}', \n e.g. G'MIC sequence '256,128 -f {w}' will create a 256x128 image filled with value 256." -_help_section "Image and data viewers" -_help_paragraph " - G'MIC has some very handy embedded visualization modules, for 1d signals \n (command '-plot'), 1d/2d/3d images (command '-display') and 3d objects \n (command '-display3d'). It enables an interactive view of the selected image data. \n - The following keyboard shortcuts are available in the interactive viewers: \n . CTRL+D: Increase window size. \n . CTRL+C: Decrease window size. \n . CTRL+R: Reset window size. \n . CTRL+F: Toggle fullscreen mode. \n . CTRL+S: Save current window snapshot as numbered file 'gmic_xxxx.bmp'. \n . CTRL+O: Save current instance of the viewed data, as numbered file 'gmic_xxxx.cimgz'. \n - Shortcuts specific to the 1d/2d/3d image viewer are: \n . CTRL+P: Play z-stack of frames as a movie (for volumetric 3d images). \n . CTRL+V: Enable/disable 3D view (for volumetric 3d images). \n . CTRL+(mousewheel): Zoom in/out. \n . SHIFT+(mousewheel): Go left/right. \n . ALT+(mousewheel): Go up/down. \n . Numeric PAD: Zoom in/out (+/-) and move through zoomed image (digits). \n . BACKSPACE: Reset zoom scale. \n - Shortcuts specific to the 3d object viewer are: \n . (mouse)+(left mouse button): Rotate 3d object. \n . (mouse)+(right mouse button): Zoom 3d object. \n . (mouse)+(middle mouse button): Shift 3d object. \n . (mousewheel): Zoom in/out. \n . CTRL+F1 .. CTRL+F6: Switch between different 3d rendering modes. \n . CTRL+Z: Enable/disable z-buffered rendering. \n . CTRL+A: Show/hide 3d axes. \n . CTRL+G: Save 3d object, as numbered file 'gmic_xxxx.off'. \n . CTRL+T: Switch between single/double-sided 3d modes." -_help_section "Adding custom commands" -_help_paragraph " - Custom commands can be defined by a user, through the use of G'MIC custom commands files. \n - A command file is a simple ascii text file, where each line starts either by \n 'command_name: command_definition' or 'command_definition (continuation)'. \n - Custom command names must use characters [a-zA-Z0-9_] and cannot start with a number. \n - Any ' \# comment' expression found in a custom commands file is discarded by the G'MIC \n interpreter, wherever it is located in a line. \n - In custom commands, the following $-expressions are substituted: \n . '$""*' is substituted by a verbatim copy of the specified arguments string. \n . '$""#' is substituted by the maximum indice of known arguments (either specified by the \n user or set to a default value in the custom command). \n . '$""?' is substituted by a string telling about the command subset restriction (only \n useful when custom commands need to output descriptive messages). \n . '$i' and '${i}' are both substituted by the i-th specified argument. Negative indices \n such as '${-j}' are allowed and refer to the j^th latest argument. '$""0' is substituted \n by the custom command name. \n . '${i=default}' is substituted by the value of $i (if defined) or by its new value set \n to 'default' otherwise ('default' may be a $-expression as well). \n . '${subset}' is substituted by the arguments values (separated by commas ',') of a \n specified argument subset. For instance expression '$""{2--2}' is substitued by all \n specified arguments except the first and the last one. Expression '$""{^0}' is then \n substituted by all arguments of the invoked command (eq. to '$""*' if all specified \n arguments have indeed a value). \n . '$""=var' is substituted by the set of instructions that will assign each argument $i \n to the named variable 'var$i' (for i in [0..$""#]). This is particularly useful when a \n custom command want to manage variable numbers of arguments. Variables names must \n use characters [a-zA-Z0-9_] and cannot start with a number. \n - These particular $-expressions are always substituted, even in double quoted items or \n when the dollar sign '$' is escaped with a backslash '\\'. To avoid substitution, place \n an empty double quoted string just after the '$' (as in '$\"\"1'). \n - Specifying arguments may be skipped when invoking a custom command, by replacing them by \n commas ',' as in expression '-flower ,,3'. Omitted arguments are set to their default \n values, which must be thus explicitly defined in the code of the corresponding custom \n command (using default argument expressions as '$""{1=default}'). \n - If one numbered argument requested in a custom command has no value, an error is thrown \n by the interpreter." -_help_section "List of commands" -_help_paragraph " All available G'MIC commands are listed below, classified by themes. \n When several choices of command arguments are possible, they appear separated by '|'. \n An argument specified inside '[]' or starting by '_' is optional except when standing for an \n existing image [image], where 'image' can be either an indice number or an image name. \n In this case, the '[]' characters are mandatory when writing the item. A command marked with \n '(*)' or '(+)' is a native command. '(*)' means the command is available for all pixel types, \n otherwise only for the default 'float' pixel type. \n Remember that native commands run faster than custom commands, so use then when possible. \n Note also that all images in this reference documentation are normalized in [0,255] before \n being displayed. You may need to do this manually (command '-normalize 0,255') if you want \n save image files having the same aspect than those displayed." _help_examples : -_help_section "Examples of use" -_help_paragraph " 'gmic' is a generic image processing tool which can be used in a wide variety of situations. \n The few examples below illustrate possible uses of this tool: \n \n - View a list of images: \n gmic file1.bmp file2.jpeg \n \n - Convert an image file: \n gmic input.bmp -o output.jpg \n \n - Create a volumetric image from a movie sequence: \n gmic input.mpg -a z -o output.hdr \n \n - Compute image gradient norm: \n gmic input.bmp -gradient_norm \n \n - Denoise a color image: \n gmic image.jpg -denoise 30,10 -o denoised.jpg \n \n - Compose two images using overlay layer blending: \n gmic image1.jpg image2.jpg -blend overlay -o blended.jpg \n \n - Evaluate a mathematical expression: \n gmic -e \"cos(pi/4)^2+sin(pi/4)^2={cos(pi/4)^2+sin(pi/4)^2}\" \n \n - Plot a 2d function: \n gmic 1000,1,1,2 -f \"X=3*(x-500)/500;X^2*sin(3*X^2)+if(c==0,u(0,-1),cos(X*10))\" -plot \n \n - Plot a 3d elevated function in random colors: \n gmic 128,128,1,3,\"?(0,255)\" -plasma 10,3 -blur 4 -sharpen 10000 \\ \n -elevation3d[-1] \"'X=(x-64)/6;Y=(y-64)/6;100*exp(-(X^2+Y^2)/30)*abs(cos(X)*sin(Y))'\" \n \n - Plot the isosurface of a 3d volume: \n gmic -m3d 5 -md3d 5 -db3d 0 -isosurface3d \"'x^2+y^2+abs(z)^abs(4*cos(x*y*z*3))'\",3 \n \n - Render a G'MIC 3d logo: \n gmic 1 -text G\\'MIC,0,0,57,1,1,1,1 -expand_xy 10,0 -blur 2 -n 0,100 --plasma 0.4 -+ \\ \n -blur 1 -elevation3d -0.1 -md3d 4 \n \n - Generate a 3d ring of torii: \n gmic -repeat 20 -torus3d 15,2 -col3d[-1] \"{?(60,255)},{?(60,255)},{?(60,255)}\" \\ \n -*3d[-1] 0.5,1 -if \"{$>%2}\" -r3d[-1] 0,1,0,90 -endif -+3d[-1] 70 -+3d \\ \n -r3d 0,0,1,18 -done -md3d 3 -m3d 5 -db3d 0 \n \n - Create a vase from a 3d isosurface: \n gmic -md3d 4 -isosurface3d \"'x^2+2*abs(y/2)*sin(2*y)^2+z^2-3',0\" -sphere3d 1.5 \\ \n --3d[-1] 0,5 -plane3d 15,15 -r3d[-1] 1,0,0,90 -c3d[-1] -+3d[-1] 0,3.2 \\ \n -col3d[-1] 180,150,255 -col3d[-2] 128,255,0 -col3d[-3] 255,128,0 -+3d \n \n - Display filtered webcam stream: \n gmic -apply_camera \\\"--mirror x --mirror y -+ -/ 4\\\" \n \n - Launch a set of G'MIC interactive demos: \n gmic -x_fisheye -x_fire G\\'MIC -x_tictactoe -rm -x_spline -x_mandelbrot 0 -x_light \\ \n -x_whirl , -x_life -x_jawbreaker , -x_blobs -x_tetris \n" #@gmic version #@gmic : Display current version number and exit. version : -v - -__help_header_ascii[] -v + -e[] "" #--------------------------------- # #@gmic :: Inputs / outputs # #--------------------------------- #@gmic apply_camera : _command,_camera_index>=0,_skip_frames>=0,_output_filename #@gmic : Apply specified command on live camera stream, and display it on display window [0]. #@gmic : Default values: 'command=""', 'camera_index=0' (default camera),'skip_frames=0' and 'filename=""'. apply_camera : -skip "${1=},${4=}" -check "${2=0}>=0 && ${3=0}>=0" -e[^-1] "Apply command '$1' on camera stream \#$2, with $3 frames skip and filename '$4'." -v - -l[] frame=0 -do -camera $2,1,$3 $1 -w[-1] -1,-1,-1,-1,"(Camera "$stream", "{w}x{h}")" -if {narg("$4")} -o[-1] @{-filename\ "$4",$frame} frame={$frame+1} -endif -if @{!,S} -o[-1] gmic_camera.png -endif -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,D}} -w[] {@{!,w}*1.5},{@{!,h}*1.5} -wait -1 -endif # Increase window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,C}} -w[] {@{!,w}/1.5},{@{!,h}/1.5} -wait -1 -endif # Decrease window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,R}} -w[] @{0,w},@{0,h} -wait -1 -endif # Reset window size. -rm[-1] -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -endl -v + #@gmic camera : _camera_index>=0,_nb_frames>0,_skip_frames>=0,release_camera={ 0 | 1 },_capture_width>=0,_capture_height>=0 : (*) #@gmic : Insert one or several frames from specified camera, with custom delay between frames (in ms). #@gmic : When 'release_camera==1', the camera stream is released instead of capturing new images. #@gmic : Default values: 'camera_index=0' (default camera), 'nb_frames=1', 'skip_frames=0', 'release_camera=0' and 'capture_width=capture_height=0' (default size). #@gmic m : eq. to '-command'. : (*) #@gmic command : filename : http[s]://URL : "string" : (*) #@gmic : Import G'MIC custom commands from specified file, URL or string. #@gmic : (eq. to '-m'). #@gmic : Imported commands are available directly after the '-command' invocation. #@gmic : $ image.jpg -command "foo : -mirror y -deform $""1" --foo[0] 5 --foo[0] 15 #@gmic d : eq. to '-display'. : (+) #@gmic display : _X,_Y,_Z : (+) #@gmic : Display selected images in an interactive viewer (use the instant window [0] if opened). #@gmic : Arguments 'X','Y','Z' determine the initial selection view, for 3d volumetric images. #@gmic : (eq. to '-d'). #@gmic d0 : eq. to '-display0'. d0 : -_display0 #@gmic display0 #@gmic : Display selected images without value normalization. #@gmic : (eq. to '-d0'). display0 : -_$0 _display0 : -v - w=0 h=0 d=0 s=0 -repeat @# -l[$>] w={$w+w} h={max($h,h)} d={max($d,d)} s={max($s,s)} -endl -done -if {@#==1} -w -1,-1,0,0,@{0,n}\ ($wx$hx$dx$s) -elif {@#==2} -w -1,-1,0,0,@{0,n},@{-1,n}\ ($wx$hx$dx$s) -else -w -1,-1,0,0,@{0,n},..,@{-1,n}\ ($wx$hx$dx$s) -endif -v + -d -v - -w[] 0 -v + #@gmic d3d : eq. to '-display3d'. : (+) #@gmic display3d : (+) #@gmic : Display selected 3d objects in an interactive viewer (use the instant window [0] if opened). #@gmic : (eq. to '-d3d'). #@gmic da : eq. to '-display_array'. da : -v - __s="$?" -v + -_display_array $* #@gmic display_array : _width>0,_height>0 #@gmic : Display images in interactive windows where pixel neighborhoods can be explored. #@gmic : Default values: 'width=13' and 'height=width'. display_array : -v - __s="$?" -v + -_$0 $* _display_array : -check ${1=13}>0" && "${2=$1}>0 -e[0--3] "Display $1x$2 array of pixel values for image"$__s"." -v - dxb={round($1/2,1,1)} dxf={$1-1-$dxb} dyb={round($2/2,1,1)} dyf={$2-1-$dyb} -repeat @# -l[$>] -if {w<128" && "h<128} -r 128,128,100%,100%,0,0,0.5,0.5 -endif # Manage cases of small and large images. x0=0 y0=0 w={w} h={h} wmax={0.9*@{!,u}} hmax={0.9*@{!,v}} -do -if {w>=$wmax||h>=$hmax} n=@{-1,n} -nm[-1] "Image "'@{-1,b}.@{-1,x}'" is too large, please select a sub-image." --select[-1] 2 x0={i(0,0)} y0={i(0,1)} w={1+i(0,3)-i(0,0)} h={1+i(0,4)-i(0,1)} -rm[-1] -nm[-1] $n -endif --z[-1] $x0,$y0,0,{$x0+$w-1},{$y0+$h-1},0 -round[-1] 1 -n[-1] 0,255 -while {w>=$wmax||h>=$hmax} x1=-1 y1=-1 c1=0 ox1=-1 oy1=-1 oc1=-1 x2=-1 y2=-1 c2=0 ox2=-1 oy2=-1 oc2=-1 x3=-1 y3=-1 c3=0 ox3=-1 oy3=-1 oc3=-1 c0=0 oxm=-1 oym=-1 -w[-1] -1,-1,0,0,@{-2,b}.@{-2,x} -do # Enter event loop. # Manage user interactions. -wait[0-3] oc0=$c0 -repeat 4 -if {$>" && "!@{!$>}" && "${x$>}>=0} -w$> 0 x$>=-1 y$>=-1 c$>=0 -endif -if @{!$>,o} c$>={(${c$>}+sign(@{!$>,o}))%s} -wait[$>] -1 -endif -if {@{!$>,SPACE}" || "@{!$>,ENTER}" || "@{!$>,ARROWRIGHT}" || "@{!$>,ARROWDOWN}} c$>={(${c$>}+1)%s} -wait[$>] -1 -endif -if {@{!$>,BACKSPACE}" || "@{!$>,ARROWLEFT}" || "@{!$>,ARROWUP}} c$>={(${c$>}-1)%s} -wait[$>] -1 -endif -done -if {$oc0!=$c0} c1=$c0 c2=$c0 c3=$c0 -endif xm=@{!,x} ym=@{!,y} -if {$xm>=0" && "@{!,b}&1} x1=$xm y1=$ym -endif -if {$xm>=0" && "@{!,b}&2} x2=$xm y2=$ym -endif -if {$xm>=0" && "@{!,b}&4} x3=$xm y3=$ym -endif # Generate main image view. -if {$xm>=0" && "($oxm!=$xm" || "$oym!=$ym)} -w[] -1,-1,-1,-1,@{-2,b}.@{-2,x}" - ("$xm,$ym")" -endif -if {$x1!=$ox1" || "$y1!=$oy1" || "$x2!=$ox2" || "$y2!=$oy2" || "$x3!=$ox3" || "$y3!=$oy3} [-1] -if {$x1>=0} xb={$x1-$dxb} yb={$y1-$dyb} xe={$x1+$dxf} ye={$y1+$dyf} -rectangle[-1] $xb,$yb,$xe,$ye,0.2,0,255,255 -rectangle[-1] $xb,$yb,$xe,$ye,1,0xFFFFFFFF,0,255,255 -endif -if {$x2>=0} xb={$x2-$dxb} yb={$y2-$dyb} xe={$x2+$dxf} ye={$y2+$dyf} -rectangle[-1] $xb,$yb,$xe,$ye,0.2,255,32,255 -rectangle[-1] $xb,$yb,$xe,$ye,1,0xFFFFFFFF,255,32,255 -endif -if {$x3>=0} xb={$x3-$dxb} yb={$y3-$dyb} xe={$x3+$dxf} ye={$y3+$dyf} -rectangle[-1] $xb,$yb,$xe,$ye,0.2,255,255,0 -rectangle[-1] $xb,$yb,$xe,$ye,1,0xFFFFFFFF,255,255,0 -endif -w[-1] @{-2,w},@{-2,h} -rm[-1] oxm=$xm oym=$ym -endif # Generate zoomed views. -if {$x1>=0" && "($ox1!=$x1" || "$oy1!=$y1" || "$oc1!=$c1)} --z[-2] {$x1-$dxb},{$y1-$dyb},0,$c1,{$x1+$dxf},{$y1+$dyf},0,$c1 --z[-2] {$x1-$dxb},{$y1-$dyb},0,{$x1+$dxf},{$y1+$dyf},0 -__display_array[-2,-1] $1,$2,0,255,255 -w1[-1] {w},{h},0,0,@{-3,b}" - ("$x1,$y1,c=$c1")" -rm[-1] ox1=$x1 oy1=$y1 oc1=$c1 -endif -if {$x2>=0" && "($ox2!=$x2" || "$oy2!=$y2" || "$oc2!=$c2)} --z[-2] {$x2-$dxb},{$y2-$dyb},0,$c2,{$x2+$dxf},{$y2+$dyf},0,$c2 --z[-2] {$x2-$dxb},{$y2-$dyb},0,{$x2+$dxf},{$y2+$dyf},0 -__display_array[-2,-1] $1,$2,255,32,255 -w2[-1] {w},{h},0,0,@{-3,b}" - ("$x2,$y2,c=$c2")" -rm[-1] ox2=$x2 oy2=$y2 oc2=$c2 -endif -if {$x3>=0" && "($ox3!=$x3" || "$oy3!=$y3" || "$oc3!=$c3)} --z[-2] {$x3-$dxb},{$y3-$dyb},0,$c3,{$x3+$dxf},{$y3+$dyf},0,$c3 --z[-2] {$x3-$dxb},{$y3-$dyb},0,{$x3+$dxf},{$y3+$dyf},0 -__display_array[-2,-1] $1,$2,255,255,0 -w3[-1] {w},{h},0,0,@{-3,b}" - ("$x3,$y3,c=$c3")" -rm[-1] ox3=$x3 oy3=$y3 oc3=$c3 -endif -while {@!" && "\ !@{!,ESC}" && "!@{!,Q}" && "\ !@{!1,ESC}" && "!@{!1,Q}" && "\ !@{!2,ESC}" && "!@{!2,Q}" && "\ !@{!3,ESC}" && "!@{!3,Q}} -k[0] -w 0 -w1 0 -w2 0 -w3 0 -endl -done -v + __display_array : -round[-2] 1 -c[-2] 0,999 -r[-1] 100%,100%,1,3,{if(s==1,1,0)} --luminance[-1] -r[-2] {$1*24},{$2*24} -grid[-2] {100/$1}%,{100/$2}%,0,0,1,0 xb={24*int($1/2)} yb={24*int($2/2)} xe={$xb+24} ye={$yb+24} -rectangle[-2] $xb,$yb,$xe,$ye,1,0xFFFFFFFF,$3,$4,$5 -repeat $2 yg=$> -repeat $1 xg=$> -t[-2] @{-3,($xg,$yg)},{5+$xg*24},{5+$yg*24},13,0.8,{if(@{-1,($xg,$yg)}>128,0,255)} -done -done -rm[-3,-1] #@gmic dfft : eq. to '-display_fft'. dfft : -_display_fft #@gmic display_fft #@gmic : Display fourier transform of selected images, with centered log-module and argument. #@gmic : (eq. to '-dfft'). #@gmic : $ image.jpg --display_fft display_fft : -_$0 _display_fft : -e[0--3] "Render fourier transform of image$? with centered log-module and argument." -v - -repeat @# -l[$>] -fftpolar -+[-2] 1 -log[-2] -n 0,255 -a x -endl -done -s x,2 -v + #@gmic dg : eq. to '-display_graph'. dg : -check "${1=640}>32 && ${2=480}>32" -skip ${3=1},${4=0},${5=0},${6=0},${7=0},${8=0},"${9=x-axis}","${10=y-axis}" -_display_graph ${1-8},"$9","$10" #@gmic display_graph : _width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel #@gmic : Render graph plot from selected image data. #@gmic : Default values: 'width=640', 'height=480', 'plot_type=1', 'vertex_type=1', 'xmin=xmax=ymin=ymax=0', 'xlabel="x-axis"' and 'ylabel="y-axis"'. #@gmic : $ 128,1,1,1,'cos(x/10+?)' --display_graph 400,300,3 display_graph : -check "${1=640}>32 && ${2=480}>32" -skip ${3=1},${4=0},${5=0},${6=0},${7=0},${8=0},"${9=x-axis}","${10=y-axis}" -_display_graph ${1-8},"$9","$10" _display_graph : -check "${1=640}>32 && ${2=480}>32" -skip ${3=1},${4=0},${5=0},${6=0},${7=0},${8=0},"${9=x-axis}","${10=y-axis}" -e[0--3] "Render $1x$2 graph plot from data of image$?." -v - -repeat @# -l[$>] nm=@{0,n} # Determine xmin,xmax/ymin,ymax. one={$3!=3} siz={w*h*d} -if {$5==$6} xmin=0 xmax={$siz-$one} -else xmin={min($5,$6)} xmax={max($5,$6)} -endif -if {$7==$8} ymin={im-(iM-im)/20} ymax={iM+(iM-im)/20} -else ymin={min($7,$8)} ymax={max($7,$8)} -endif # Create plot canvas. gw={$1-32} gh={$2-32} gg={($gw-$one)/($siz-$one)} $gw,$gh,1,3,255 -if {$siz<32} -grid[-1] $gg,$gg,0,0,0.25,0xCCCCCCCC,0 -else -grid[-1] 10%,10%,0,0,0.25,0xCCCCCCCC,0 -endif # Define color palette for curves. -if {@{-2,s}==1} (120,120,200) -elif {@{-2,s}<=3} (220,10,10;10,220,10;10,10,220) -else (0,255) -r[-1] 256,1,1,1,3 -map[-1] 2 -z[-1] 2,100% -permute[-1] cxyz -r[-1] 3,{max(3,@{-3,s})},1,1,0,2 -sh[-1] 0,2,0,0 -f[-1] 255,0,0,0,255,0,0,0,255 -rm[-1] -endif # Draw plot for each channel. -repeat @{-3,s} -sh[-3] $>,$> -graph[-3] [-1],$3,$4,$ymax,$ymin,1,@{-2,0-2} -rm[-1] -shift[-1] 0,-1 -done -rm[-3,-1] -line[-1] 0,0,100%,0,1,110 -line[-1] 100%,0,100%,100%,1,110 -line[-1] 100%,100%,0,100%,1,255 -line[-1] 0,100%,0,0,1,255 100%,100%,1,1,255 xmax_={$xmin+($xmax-$xmin)*($siz-$one)/($siz-1)} -axes[-1] $xmin,$xmax_,$ymax,$ymin,13,1,0 -if {$xmin>0} -axes[-1] 0,0,$ymax,$ymin,13,1,160 -endif -if {$xmax<0} -axes[-1] {w-1},{w-1},$ymax,$ymin,13,1,160 -endif -if {$ymin>0} -axes[-1] $xmin,$xmax_,{h-1},{h-1},13,1,160 -endif -if {$ymax<0} -axes[-1] $xmin,$xmax_,0,0,13,1,160 -endif --erode[-1] 3 -neq[-1] 255 -r[-2] 100%,100%,1,3 -j[-3] [-2],0,0,0,0,1,[-1],1 -rm[-2,-1] -frame[-1] 16,16,220 0 -t[-1] "$9",0,0,13,1,-220,-220,-220 -j[-2] [-1],{(@{-2,w}-w)/2},{@{-2,h}-16},0,0,-1 -rm[-1] 0 -t[-1] "$10",0,0,13,1,-220,-220,-220 -rotate[-1] -90 -j[-2] [-1],2,{(@{-2,h}-h)/2},0,0,-1 -rm[-1] -nm $nm,1 -endl -done -c 0,255 -v + #@gmic dh : eq. to '-display_histogram'. dh : -v - __s="$?" -v + -_display_histogram $* #@gmic display_histogram : _width>0,_height>0,_clusters>0,_min_value[%],_max_value[%],_show_axes={ 0 | 1 } #@gmic : Render a channel-by-channel histogram. #@gmic : (eq. to '-dh'). #@gmic : Default values: 'width=512', 'height=300', 'clusters=256', 'min_value=0%', 'max_value=100%' and 'show_axes=1'. #@gmic : $ image.jpg --display_histogram 512,300 display_histogram : -v - __s="$?" -v + -_$0 $* _display_histogram : -check "${1=512}>0 && ${2=300}>0 && ${3=256}>0" -skip ${4=0%},${5=100%},${6=1} -e[0--3] "Render $1x$2 channel-by-channel histogram of image"$__s", with $3 clusters, minimum value $4 and maximum value $5." -v - -repeat @# -l[$>] nm=@{0,n} -if @{-is_percent\ $4} m={im+(iM-im)*$4} -else m=$4 -endif -if @{-is_percent\ $5} M={im+(iM-im)*$5} -else M=$5 -endif -s c -histogram $3,$m,$M -a c vM={iM} $1,$2,1,{s},-255 -repeat {s} -sh[-2,-1] $>,$> -graph[-1] [-2],3,0,$vM,0,1,0 -rm[-2,-1] -done -rm[-2] -+ 255 -if $6 100%,100% -axes[-1] $m,$M,$vM,0,13,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -endif -nm $nm,1 -endl -done -v + #@gmic dp : eq. to '-display_polar'. dp : -v - __s="$?" -v + -_display_polar $* #@gmic display_polar : _width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end #@gmic : Render polar curve from selected image data. #@gmic : (eq. to '-dp'). #@gmic : 'outline_type' can be { r<0=dots with radius -r | 0=no outline | r>0=lines+dots with radius r }. #@gmic : 'fill_color' can be { -1=no fill | R,G,B=fill with specified color }. #@gmic : Default values: 'width=500', 'height=width', 'outline_type=1', 'fill_R=fill_G=fill_B=200', 'theta_start=0' and 'theta_end=360'. #@gmic : $ 300,1,1,1,'0.3+abs(cos(10*pi*x/w))+?(0.4)' -display_polar 512,512,4,200,255,200 #@gmic : $ 3000,1,1,1,'x^3/1e10' -display_polar 400,400,1,-1,,,0,{15*360} display_polar : -v - __s="$?" -v + -_$0 $* _display_polar : -check "${1=500}>32 && ${2=$1}>32" -skip ${3=1},${4=200},${5=$4},${6=$5},${7=0},${8=360} -e[0--3] "Render $1x$2 polar graph plot from data of image"$__s", with outline $4 and fill color ($4,$5,$6)." -v - -repeat @# -l[$>] nm=@{0,n} # Compute (x,y) coordinates of the polar curve points. M={max(abs(iM),abs(im))} -* {0.48*min($1,$2)/$M} -y y ({$7*pi/180};{-$8*pi/180}) -r[-1] 1,[-2],1,1,3 --sin[-1] -cos[-2] -*[-1] [-3] -*[-3,-2] -a[-2,-1] x N={h} -nm[-1] coords # Generate 3d object for curve outline. -if $3 ({'CImg3d'}) -+[-1] 0.5 ($N,$N) --z[coords] 0,2 1,$N,1,1,2 1,$N,1,1,'y' --+[-1] 1 -a[-3--1] x -=[-1] 0,2,100% 3,$N,1,1,0 1,$N,1,1,1 -y[-6--1] y -a[-6--1] y -nm[-1] _plot_polar_outline -endif # Generate 3d object for filling. -if {"$4>=0 && $5>=0 && $6>=0"} ({'CImg3d'}) -+[-1] 0.5 ({$N+1},$N) --z[coords] 0,-1,2,100% -z[-1] 0,2 1,$N,1,1,3 1,$N 1,$N,1,1,'1+y' --+[-1] 1 -a[-4--1] x -=[-1] 1,3,100% 3,$N,1,1,$4,$5,$6 1,$N,1,1,1 -y[-6--1] y -a[-6--1] y -nm[-1] _plot_polar_fill -endif -rm[coords] # Remove original curve coordinates. # Render graph image. {$1-32},{$2-32},1,3,255 L={0.1*max($1,$2)} -grid[-1] $L,$L,0,0,0.25,0xCCCCCCCC,0 # Draw background grid. -if {"$4>=0 && $5>=0 && $6>=0"} # Draw curve filling. -object3d[-1] [_plot_polar_fill],50%,50%,0,1,2,1,0 -rm[_plot_polar_fill] -endif -if $3 -if {$3>=0} # Draw curve outline. -object3d[-1] [_plot_polar_outline],50%,50%,0,1,1,0,0 -endif -if {$3!=0} # Draw curve vertices. -if {abs($3)>1} -circles3d[_plot_polar_outline] {abs($3)} -endif -object3d[-1] [_plot_polar_outline],50%,50%,0,0.2,2,0,0 -endif -rm[_plot_polar_outline] -endif # Draw axes and frame. nM={$M/0.96} 100%,100% -axes[-1] {-$nM},$nM,$nM,{-$nM},13,1,1 --dilate[-1] 3 --[-1] [-2] -*[-1] 200 -eq[-2] 0 -*[-3,-2] -+[-2,-1] -c[-1] 0,255 -frame[-1] 1,1,128 -frame[-1] 15,15,220 -nm $nm,1 -endl -done -v + #@gmic drgba : eq. to '-display_rgba'. drgba : -_display_rgba #@gmic display_rgba #@gmic : Render selected RGBA images over a checkerboard background. #@gmic : (eq. to '-drgba'). #@gmic : $ image.jpg --norm -threshold[-1] 40% -blur[-1] 3 -normalize[-1] 0,255 -append c -display_rgba display_rgba : -_$0 _display_rgba : -e[0--3] "Render RGBA image$? over a checkerboard background." -v - -to_a -repeat @# -l[$>] -i[0] (160,128;128,160) -nm[0] @{1,n} -r[0] 16,16 -r[0] [1],[1],1,{s-1},0,2 -blend alpha -endl -done -v + #@gmic dt : eq. to '-display_tensors'. dt : -v - __s="$?" -v + -_display_tensors $* #@gmic display_tensors : _size_factor>0,_ellipse_factor>=0,_colored_mode={ 0 | 1 } #@gmic : Render selected mask field of 2x2 tensors with ellipses. #@gmic : (eq. to '-dt'). #@gmic : Default values: 'size_factor=16', 'ellipse_factor=0.92', 'color_mode=1'. #@gmic : $ image.jpg -diffusiontensors 0.7,0.6 -crop 60,10,90,30 --display_tensors , display_tensors : -v - __s="$?" -v + -_$0 $* _display_tensors : -check "${1=16}>0 && ${2=0.92}>=0" -skip "${3=1}" -e[0--3] "Render field of 2x2 tensors from image"$__s", with size factor $1, ellipse factor $2 in "@{-arg\ 1+!$3,colored,masked}" mode." -v - -if {$3} -repeat @# -l[$>] --_display_tensors $1,$2,0 -s[0] c --min[0,2] -*[1] -1 -+[1,-1] -a[0-2] c -r[0] [-1],[-1] -n[0] 0,255 -* -endl -done -else -repeat @# -l[$>] w={w} h={h} -* {($2*$1/2)^2/max(abs(im),abs(iM))} # Normalize tensor values. -s c -i[-2] [-2] -a c -s yx -r 2,2,1,1,-1 # Decompose field into list of 2x2 matrices. (0.5,0;0,0.5) -+[^-1] [-1] -rm[-1] # Add 0.5*Id to ensure tensor positivity. -invert -y c -r $1,$1 # Optimized code for ellipses drawing. $1,$1,1,1,'x' --[-1] {w/2} $1,$1,1,1,'y' --[-1] {h/2} --sqr[-1] -*[-2] [-3] -sqr[-3] -i[-2] [-2] -a[-4--1] c -*[^-1] [-1] -rm[-1] -compose_channels + -le 1 -append_tiles $w,$h # Recompose ellipses as a tensor field. -endl -done -endif -v + #@gmic dw : eq. to '-display_warp'. dw : -v - __s="$?" -v + -_display_warp $* #@gmic display_warp : _cell_size>0 #@gmic : Render selected 2d warping fields. #@gmic : (eq. to '-dw'). #@gmic : Default value: 'cell_size=15'. #@gmic : $ image.jpg -luminance -blur 5 -gradient -append c -display_warp , display_warp : -v - __s="$?" -v + -_$0 $* _display_warp : -check "${1=15}>0" -e[0--3] "Render 2d warping field"$__s", with cell size $1." -v - -repeat @# -l[$>] -if {d!=1||s!=2} -error[0--3] "Invalid image ["{@#-$>-1}"]: Dimensions "{w}","{h}","{d}","{s}" does not represent a 2d field of 2d vectors." -endif -i[0] 100%,100%,1,1,1 -grid[0] $1,$1 -nm[0] @{1,n} -warp[0] [1],1,1,0 -rm[1] -endl -done -* 255 -v + #@gmic document_gmic : _format={ ascii | html | latex | xml | bash | images },_image_path,_write_wrapper={ 0 | 1 } #@gmic : Create documentation of .gmic command files (loaded as raw 'uchar' images), in specified format. #@gmic : Default values: 'format=ascii', 'image_path=""' and 'write_wrapper=1'.\n #@gmic : Example(s) : raw:file.gmic,uchar -document_gmic html,img document_gmic : -skip ${1="ascii"},${2=""},${3=1} -if {!@#} -return -endif -v -1 # Concatenate command data and split them into lines. _name=@{0,b} # Basename for the commands definition file. -if {@#>1} -i[1--2] (10) -endif -a y -m @{-1,t} -s -,10 # Output header. -_document_gmic_header_$1[] $3 # Define parsing variables. _subsection=0 # Indice of current subsection. _example=0 # Indice of current example. _command=0 # Indice of current command. _path="$2" # Path of example images. ks0="0" ks1="-k[0]" # Parse lines of the commands file. -repeat @# -l[$>] -if {h>7" && "{@{-1,0-5}'=='{'"#@gmic"'}}" && "(i(0,6)=={'" "'}" || "i(0,6)=={':'})} # Process only lines starting with '#@gmic'. -rows 7,100% -autocrop {'" "'} # Discard '#@gmic'. -if {i!={':'}} # Reached line as '#@gmic Command : Arguments_line1 : Arguments_line2 : (qualifier)'. _command={$_command+1} -s -,{'": "'} -autocrop {'" "'} -_document_gmic_declaration_$1 -else -rows 1,100% # Discard ':' char. -if {i=={':'}} # Reached line as '#@gmic :: Subsection name'. _subsection={$_subsection+1} -rows 1,100% -autocrop {'" "'} # Discard ':' character. -_document_gmic_subsection_$1 -else -autocrop {'" "'} -if {i=={'$'}} # Reached line as '#@gmic : $ Example of use'. _example={$_example+1} -rows 1,100% -autocrop {'" "'} # Discard '$' character. _filename=$_path$_name$_example.jpg -_document_gmic_example_$1 -else # Reached line as '#@gmic : description.' -_document_gmic_description_$1 -endif -endif -endif -endif ${ks{@#!=0}} -endl -done -rm -_document_gmic_footer_$1[] $3 # Define document_gmic commands for html output. _document_gmic_header_html : -if $1 -v + -e[] " \n \n \n \n \n \n \n" -v - -endif -m "don : -_document_gmic_desc_on_html" -m "doff : -_document_gmic_desc_off_html" -m "eon : -_document_gmic_ex_on_html" -m "eoff : -_document_gmic_ex_off_html" _is_desc=0 _is_ex=0 _shortcut=0 _document_gmic_desc_on_html : -v - -if $_is_desc -u "
" -else -u "

" _is_desc=1 -endif -v + _document_gmic_desc_off_html : -v - -if $_is_desc -u "

" _is_desc=0 -else -u "" -endif -v + _document_gmic_ex_on_html : -v - -if $_is_ex -u "" -else -u "
"\ "" _is_ex=1 -endif -v + _document_gmic_ex_off_html : -v - -if $_is_ex -u "
Example(s) of use:
" _is_ex=0 -else -u "" -endif -v + _document_gmic_subsection_html : -v + -e[] @{-eoff}@{-doff}"

** "@{0,t}"

" -v - _document_gmic_declaration_html : -if {{@{-1,t}'=='"(*)"}" || "{@{-1,t}'=='"(+)"}} qualifier=" "@{-1,t} -rm[-1] -else qualifier="" -endif s1="\n" s0=" |
" -if {@#>1" && "{@{-1,0-6}'=='{'"eq. to "'}}} # Declaration of a shortcut command. -rows[-1] 7,100% -autocrop[-1] {'.'} -autocrop[-1] {'" "'} -autocrop[-1] 39 _shortcut$_shortcut=@{0,t} _shortcutlink$_shortcut=@{-1,t} _shortcutqualifier$_shortcut=$qualifier _shortcut={$_shortcut+1} -else # Declaration of a regular command. -v + -e[] @{-eoff}@{-doff}"

  -"@{0,t}$qualifier":" -if {@#>1} -e[] "

" -repeat {@#-1} -e[] @{{1+$>},t}${s{$<==0}} -done -e[] "

" -else -e[] "" -endif -v - -endif _document_gmic_description_html : -if {@{-1,0-12}'=='{'"Default value"'}} # Reached line as '#@gmic : Default value(s) : ... '. -s +,{':'} -l[^0] -a y -endl -autocrop {':'} -autocrop {'" "'} -v + -if {@#>1} -e[] @{-don}"
"@{0,t}": "@{-1,t} -else -e[] @{-don}"
"@{0,t} -endif -v - -elif {@{-1,0-7}'=='{'"(eq. to "'}} # Reached line as '#@gmic : (eq. to -shortcut)'. -v + -e[] @{-don}""@{-1,t}"" -v - -else # Reached line as '#@gmic : description'. -if {(i<{'A'}" || "i>{'Z'})" && "i!=40" && "i!=39} -v + -e[] @{-don}" "@{-1,t} -v - -else -v + -e[] @{-don}@{-1,t} -v - -endif -endif _document_gmic_example_html : -if $_filename -else # Generate picture only if the file doesn't yet exist. -m "foo : "@{-1,t} -l[] -v -99 -reset -foo -v -1 -_document_gmic -o $_filename,85 -rm -endl -uncommand foo -endif -v + -e[] @{-eon}"
"\ "(view)
"@{-1,t}"
"@{-1,t}"" -v - _document_gmic_footer_html : -skip $1 -if $_shortcut # Document shortcuts. _subsection={$_subsection+1} ({'"Commands shortcuts"'}) -_document_gmic_subsection_html[-1] -rm[-1] -v + -e[] "

" -repeat $_shortcut -e[] "  -"${_shortcut$>}" "${_shortcutqualifier$>}":" -e[] "eq. to '"${_shortcutlink$>}"'
" -done -e[] "

" -v - -endif -v + -e[] @{-eoff}@{-doff}"

[ Total number of commands: "$_command" ]" -v - -uncommand don -uncommand doff -uncommand eon -uncommand eoff # Define document_gmic commands for XML output. _document_gmic_header_xml : -if $1 -v + -e[] " \n" -v - -endif -v + -e[] " \n"$_name" \n

\n List of commands" -v - -m "don : -_document_gmic_desc_on_xml" -m "doff : -_document_gmic_desc_off_xml" _is_subsection=0 _is_command=0 _is_desc=0 _document_gmic_desc_on_xml : -v - -if $_is_desc -u "" -else -u " \n" _is_desc=1 -endif -v + _document_gmic_desc_off_xml : -v - -if $_is_desc -u " \n" _is_desc=0 -else -u "" -endif -v + _document_gmic_subsection_xml : -v + -if $_is_subsection -if $_is_command -e[] @{-doff}" " -endif -e[] @{-doff}"" -endif -e[] @{-doff}" \n "@{0,t}"" -v - _is_subsection=1 _is_command=0 _document_gmic_declaration_xml : -_document_gmic_replace_xml -v + -if $_is_command -e[] @{-doff}" " -endif -e[] @{-doff}" " -v - _is_command=1 -if {{@{-1,t}'=='"(*)"}" || "{@{-1,t}'=='"(+)"}} qualifier=" "@{-1,t} -rm[-1] -else qualifier="" -endif s1="" s0=" |" -v + -e[] " "@{0,t}"" -if {@#>1} -e[] " " -repeat {@#-1} -e[] " "@{{1+$>},t}${s{$<==0}} -done -e[] " " -endif -v - _document_gmic_description_xml : -_document_gmic_replace_xml -v + -e[] @{-don}" "@{0,t} -v - _document_gmic_example_xml : -_document_gmic_replace_xml -if $_filename -else # Generate picture only if the file doesn't yet exist. -m "foo : "@{-1,t} -l[] -v -99 -reset -foo -v -1 -_document_gmic -o $_filename,85 -rm -endl -uncommand foo -endif -v + -e[] @{-doff}" " -e[] " "@{0,t}"" -e[] " "$_filename"" -e[] " " -v - _document_gmic_footer_xml : -skip $1 -v + -if $_is_command -e[] @{-doff}"" -endif -if $_is_subsection -e[] @{-doff}"" -endif -e[] @{-doff}"
\n" -v - -uncommand don -uncommand doff _document_gmic_replace_xml : -replace_seq {'&'},@{-quote\ {'&'}} # Replace '&' -replace_seq {'<'},@{-quote\ {'<'}} # Replace '<' -replace_seq {'>'},@{-quote\ {'>'}} # Replace '>' # Define document_gmic commands for LateX output. _document_gmic_header_latex : -if $1 -v + -e[] "\\documentclass[a4paper,10pt,twoside]{book} \n\\usepackage{hyperref,fancyhdr,graphicx,amssymb,amsmath,times,makeidx} \n\\graphicspath{{"$_path"}} \n\\pagestyle{fancyplain} \n\\lhead[\\fancyplain{}{\\textbf\\thepage}]{\\fancyplain{}{\\rightmark}} \n\\rhead[\\fancyplain{}{\\leftmark}]{\\fancyplain{}{\\textbf\\thepage}} \n\\cfoot{} \n\\setlength{\\textwidth}{5.875in} \n\\setlength{\\parindent}{0pc} \n\\setlength{\\hoffset}{-0.8cm} \n\\setcounter{tocdepth}{1} \n\\sloppy{} \n\\renewcommand\\indexname{Index of commands} \n\\makeindex \n\\begin{document} \n\\tableofcontents" -v - -endif -v + -e[] "\n\\chapter{List of commands}" -v - -m "eon : -_document_gmic_ex_on_latex" -m "eoff : -_document_gmic_ex_off_latex" _is_desc=0 _is_ex=0 _shortcut=0 _document_gmic_ex_on_latex : -v - -if $_is_ex -u "\\\\" -else -u "\\begin{center}" _is_ex=1 -endif -v + _document_gmic_ex_off_latex : -v - -if $_is_ex -u "\\end{center}" _is_ex=0 -else -u "" -endif -v + _document_gmic_subsection_latex : _is_desc=0 -_document_gmic_replace_latex -v + -e[] @{-eoff}"\n\\section{"@{0,t}"}" -v - _document_gmic_declaration_latex : _is_desc=0 -if {{@{-1,t}'=='"(*)"}" || "{@{-1,t}'=='"(+)"}} qualifier=@{-1,t} -rm[-1] -else qualifier="" -endif e1="\\\\~\\\\" e0="~~~$|$\\\\" s1="\\hspace*{2.2cm}" s0="" -_document_gmic_replace_latex -if {@#>1" && "{@{-1,0-6}'=='{'"eq. to "'}}} # Declaration of a shortcut command. -rows[-1] 7,100% -autocrop[-1] {'.'} -autocrop[-1] {'" "'} -autocrop[-1] 39 _shortcut$_shortcut=@{0,t} _shortcutlink$_shortcut=@{-1,t} _shortcutqualifier$_shortcut=$qualifier _shortcut={$_shortcut+1} -else # Declaration of a regular command. -v + -e[] @{-eoff}"\n\n\\subsection{\\emph{-"@{0,t}"\\index{-"@{0,t}"}} "$qualifier"}\\vspace*{-0.5em}" -if {@#>1} -e[] "~\\\\\\textbf{Arguments: } " -repeat {@#-1} -e[] ${s{$>!=0}}"{\\small \\texttt{"@{{1+$>},t}"}}"${e{$<==0}} -done -endif -v - -endif _document_gmic_description_latex : s0="" s1="~\\\\" s=${s$_is_desc} -_document_gmic_replace_latex -if {@{-1,0-12}'=='{'"Default value"'}} # Reached line as '#@gmic : Default value(s) : ... '. -s +,{':'} -l[^0] -a y -endl -autocrop {':'} -autocrop {'" "'} -if {@#>1} -replace_seq[1] @{-quote\ {'" and "'}},@{-quote\ {'"} and \\\\texttt{"'}} -v + -e[] @{-eoff}$s"~\\\\\\textbf{"@{0,t}"}: {\\small \\texttt{"@{-1,t}"}}" -v - -else -v + -e[] @{-eoff}$s"~\\\\"@{0,t} -v - -endif -elif {@{-1,0-7}'=='{'"(eq. to "'}} # Reached line as '#@gmic : (eq. to '-shortcut').'. -rows[-1] 8,100% -autocrop[-1] {'.'} -autocrop[-1] {')'} -autocrop[-1] {'" "'} -v + -e[] @{-eoff}$s"(\\emph{eq. to} {\\small \\texttt{"@{-1,t}"}})." -v - -else # Reached line as '#@gmic : description'. -if {(i<{'A'}" || "i>{'Z'})" && "i!=40" && "i!=39} -v + -e[] @{-eoff}@{-1,t} -v - -else -v + -e[] @{-eoff}$s@{-1,t} -v - -endif -endif _is_desc=1 _document_gmic_example_latex : _is_desc=0 -if $_filename -else # Generate picture only if the file doesn't yet exist. -m "foo : "@{-1,t} -l[] -v -99 -reset -foo -v -1 -_document_gmic -o $_filename,85 -rm -endl -uncommand foo -endif -_document_gmic_replace_latex -v + -e[] @{-eon}"\\includegraphics[keepaspectratio=true,height=7cm,width=\\textwidth]{"$_filename"}\\\\" -e[] "{\\footnotesize \\textbf{Example "$_example"~:} \\texttt{"@{-1,t}"}}" -v - _document_gmic_footer_latex : -if $_shortcut # Document shortcuts. ({'"Commands shortcuts"'}) -_document_gmic_subsection_latex[-1] -rm[-1] -v + -repeat $_shortcut -e[] "$\\bullet$~'\\texttt{-"${_shortcut$>}"}' "${_shortcutqualifier$>}"~is equivalent to~~'\\texttt{"${_shortcutlink$>}"}'.\\\\" -done -v - -endif -if $1 -v + -e[] " \n\\printindex \n~\\\\$\\square$~End of document. \n\n\\end{document}" -v - -endif -uncommand eon -uncommand eoff _document_gmic_replace_latex : -replace_seq {'\\'},@{-quote\ {'"\\\\textbackslash "'}} # Replace '\' -replace_seq {'_'},@{-quote\ {'\\\\_'}} # Replace '_' -replace_seq {'%'},@{-quote\ {'\\\\%'}} # Replace '%' -replace_seq {'#'},@{-quote\ {'\\\\%'}} # Replace '#' -replace_seq {'^'},@{-quote\ {'"\\\\textasciicircum "'}} # Replace '^' -replace_seq {'$'},@{-quote\ {'\\\\$'}} # Replace '$' -replace_seq {'\{'},@{-quote\ {'\\\\\{'}} # Replace '{' -replace_seq {'\}'},@{-quote\ {'\\\\\}'}} # Replace '}' -replace_seq {'&'},@{-quote\ {'\\\\&'}} # Replace '&' -replace_seq {'|'},@{-quote\ {'~$|$~'}} # Replace '|' -replace_seq {'<'},@{-quote\ {'$\<$'}} # Replace '<' -replace_seq {'>'},@{-quote\ {'$\>$'}} # Replace '>' # Define document_gmic commands for images-only output. _document_gmic_header_images : -skip $1 -v + -e[] "\n - Generate example images from set of commands '"$_name"'.\n" -v - _document_gmic_subsection_images : -_document_gmic_subsection_ascii _document_gmic_declaration_images : _command_name=@{0,t} _document_gmic_description_images : _document_gmic_example_images : -v + -e[] " . Command '-"$_command_name"': $ "@{-1,t} -v - -if $_filename -else # Generate picture only if the file doesn't yet exist. -m "foo : "@{-1,t} -l[] -v -1 -reset -v -99 -foo -v -1 -_document_gmic -o $_filename,85 -rm -endl -uncommand foo -endif _document_gmic_footer_images : -skip $1 -v + -e[] "\n - [ All done! ]\n\n" -v - # Define document_gmic commands for ascii output. _document_gmic_header_ascii : -skip $1 _shortcut=0 _document_gmic_subsection_ascii : -v + -e[] "\n ** "@{0,t}":" -v - _document_gmic_declaration_ascii : -if {{@{-1,t}'=='"(*)"}" || "{@{-1,t}'=='"(+)"}} qualifier=" "@{-1,t} -rm[-1] -else qualifier="" -endif -if {@#>1" && "{@{-1,0-6}'=='{'"eq. to "'}}} # Declaration of a shortcut command. -rows[-1] 7,100% -autocrop[-1] {'.'} -autocrop[-1] {'" "'} -autocrop[-1] 39 _shortcut$_shortcut=@{0,t} _shortcutlink$_shortcut=@{-1,t} _shortcutqualifier$_shortcut=$qualifier _shortcut={$_shortcut+1} -else # Declaration of a regular command. -v + -e[] "\n -"@{0,t}${qualifier}":" -v - -rm[0] -if @# s=" " -y x -repeat {@#-1} ({'" |"'}) -a[$>,-1] x -done # Insert ' |'. -repeat @# -l[$>] -s x,-80 -repeat {@#-1} ({'\\\\\n$s" "'}) -a[$>,-1] x -done # Split with '\\'. -a x -v + -e[] $s@{0,t} -v - -endl -done -endif -v + -e[] "" -v - -endif _document_gmic_description_ascii : s=" " -y x -s x,-96 -if {@#>1} -repeat {@#-1} ({'\\\\\n$s" "'}) -a[$>,-1] x -done -a x -endif -v + -repeat @# -e[] $s@{$>,t} -v - -done _document_gmic_example_ascii : _document_gmic_footer_ascii : -skip $1 -if $_shortcut # Document shortcuts. ({'"Commands shortcuts"'}) -_document_gmic_subsection_ascii[-1] -v + -e[] "" -v - -rm[-1] -v + -repeat $_shortcut -e[] " -"${_shortcut$>}" "${_shortcutqualifier$>}": eq. to '"${_shortcutlink$>}"'." -done -v - -endif -v + -e[] "\n [ Total number of commands: "$_command" ]" -v - # Define document_gmic commands for bash auto-completion script output. _document_gmic_header_bash : -skip $1 -v + -e[] "\# \n\# Bash completion rules for 'gmic'. \n\# \n\# This file has been generated automatically. \n\# Do not edit! \n\# \n\# This file should be copied/renamed in '/etc/bash_completion.d/gmic'. \n\# \n \n_"$_name"() \n{ \n\tlocal cur prev opts coms \n\tCOMPREPLY=() \n\tcur=\"${COMP_WORDS[COMP_CWORD]}\" \n\tprev=\"${COMP_WORDS[COMP_CWORD-1]}\" " -v - _opts= _coms= _argcommand=0 _shortcut=0 _nbopts=0 _nbcoms=0 _document_gmic_subsection_bash : _document_gmic_description_bash : _document_gmic_example_bash : _document_gmic_declaration_bash : _opts$_nbopts=-@{0,t}" "--@{0,t} _nbopts={$_nbopts+1} _coms$_nbcoms=@{0,t} _nbcoms={$_nbcoms+1} -if {{@{0,t}'=='"input"}" || "{@{0,t}'=='"i"}" || "\ # Manage special commands (remove arguments). {@{0,t}'=='"output"}" || "{@{0,t}'=='"o"}" || "\ {@{0,t}'=='"command"}" || "{@{0,t}'=='"m"}} -return -endif -repeat @# -if {{@{$<,t}'=='"(*)"}||{@{$<,t}'=='"(+)"}} -rm[$<] -endif -done # Discard '(*)' and '(+)' qualifiers. -if {@#==2" && "{@{-1,0-6}'=='{'"eq. to "'}}} # Command is a shortcut. -rows[-1] 7,100% -autocrop[-1] {'.'} -autocrop[-1] {'" "'} -autocrop[-1] 39 -autocrop[-1] {'-'} _shortcut$_shortcut=@{0,t} _shortcutlink$_shortcut=@{-str2hex\ @{1,t}} -rm[-1] _shortcut={$_shortcut+1} -elif {@#>1} # Command is regular and has arguments. _command$_argcommand=@{0,t} -if {@{0,t}'=='"help"} _argument$_argcommand="$coms\" -- \"$cur" # Manage help command. -else -if {@#==2} ({'>'}) -endif # Add shadow parameter when single argument. -discard[^0] {'" "'} -i[2--2] ({'" "'}) -a[^0] y _argument$_argcommand=@{1,t} -endif _argumentlink@{-str2hex\ @{0,t}}=${_argument$_argcommand} _argcommand={$_argcommand+1} -endif _document_gmic_footer_bash : -skip $1 -v + -e[] "\topts=\"\\" -repeat $_nbopts -e[] "\t "${_opts$>}\\ -done -e[] "\t \"" -e[] "\n\tcoms=\"\\" -repeat $_nbcoms -e[] "\t "${_coms$>}\\ -done -e[] "\t \"" -e[] "\n\tcase \"${prev}\" in" -repeat $_argcommand # Regular commands with arguments. -e[] "\t\t\"-"${_command$>}"\" | \"--"${_command$>}"\")" -e[] "\t\tCOMPREPLY=( $(compgen -W \""${_argument$>}"\") )\n\t\treturn 0\n\t\t;;" -done -repeat $_shortcut # Shortcut commands (with arguments). -if {narg(${_argumentlink${_shortcutlink$>}})} -e[] "\t\t\"-"${_shortcut$>}"\" | \"--"${_shortcut$>}"\")" -e[] "\t\tCOMPREPLY=( $(compgen -W \""${_argumentlink${_shortcutlink$>}}"\") )\n\t\treturn 0\n\t\t;;" -endif -done -e[] "\tesac" -e[] "\n\tif [[ \"$cur\" == -* ]] ; then \n\t\tCOMPREPLY=( $(compgen -W \"$opts\" -- \"$cur\") ) \n\telse \n\t\t_filedir \n\tfi \n \n} \n complete -F _"$_name" -o filenames gmic" -v - # Generate a single image from a list of images, for the reference documentation. _document_gmic : -repeat @# -l[$>] W$>={w} H$>={h} D$>={d} S$>={s} IS_3D$>=@{-is_3d} -endl -done -repeat @# -l[$>] -if @{-is_3d} -+3d 0 -r3d 1,1,0,-80 -r3d 0,1,0,80 -snapshot3d 400 -else -n 0,255 -endif -endl -done --append_tiles , -if {w>900} r={round(900*100/w,0.1)} -r[^-1] $r%,$r%,1,100%,2 -endif -rm[-1] -repeat @# -l[$>] -if {s==1} -r {w},{h},1,3 -else -r {w},{h},1,3,0 -endif -if {w<=h&&h<256} -r2dy 256,2 -elif {h<=w&&w<256} -r2dx 256,2 -endif -if {w<=h&&h>512} -r2dy 512,2 -elif {h<=w&&w>512} -r2dx 512,2 -endif -if {h<48} -r 100%,48 -endif -if {w<48} -r 48,100% -endif -frame 1,1,0 -frame 4,4,255 -endl -done N=@# -repeat $N -l[$>] {w},24,1,3,255 -if {w>75} -if {$N>1} -if {w>110} -t[-1] Image\ [$>]:,3,3,17 -else -t[-1] [$>]:,3,3,17 -endif -endif -if ${IS_3D$>} 0 -t[-1] (3d\ object),0,0,13,1,255 -else 0 -t[-1] (${W$>}x${H$>}x${D$>}x${S$>}),0,0,13,1,255 -endif -negative[-1] -n[-1] 0,255 -+[-1] 164 -c[-1] 0,255 -to_rgb[-1] -j[-2] [-1],{@{-2,w}-w-5},{@{-2,h}-h-5} -rm[-1] -else -t[-1] [$>]:,3,3,17 -endif -rv[-2,-1] -a[-2,-1] y -endl -done -- 255 -append_tiles , -+ 255 -if {w<256} -- 255 -r 256,100%,1,3,0,0,0.5,0.5 -+ 255 -endif -if {h<256} -- 255 -r 100%,256,1,3,0,0,0.5,0.5 -+ 255 -endif #@gmic e : eq. to '-echo'. : (*) #@gmic echo : message : (*) #@gmic : Output specified message, on the error output. #@gmic : (eq. to '-e'). #@gmic : Command subset (if any) stands for displayed scope indices instead of image indices. #@gmic echo_file : filename,message #@gmic : Output specified message, appending it to specified output file. #@gmic : (similar to '-echo' for specified output file stream). echo_file : -skip ${2='\n'} -v - ({"'${2--1}\n'"}) -o[-1] raw:$1,uchar -rm[-1] -v + #@gmic echo_stdout : message #@gmic : Output specified message, on the standard output (stdout). #@gmic : (similar to '-echo' for output on standard output instead of standard error). echo_stdout : -v - ({"'$*\n'"}) -o[-1] -.raw,uchar -rm[-1] -v + #@gmic function1d : 0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn #@gmic : Input continuous 1d function from specified list of keypoints (xk,yk) #@gmic : in range [0,max(xk)] (xk are positive integers). #@gmic : Default values: 'smoothness=1' and 'x0=y0=0'. #@gmic : $ -function1d 1,0,0,10,30,40,20,70,30,80,0 --display_graph 400,300 function1d : -check "${1=1}>=0 && $1<=1" -skip ${2=0},${3=0} -e[^-1] "Input continuous 1d function, with smoothness $1 and keypoints (${2--1})." -v - # Normalize input coordinates. -if {$#<5} {max(0,$2)+1},1,1,1,$3 -v + -return -endif (${2--1}) -r[-1] 2,{w/2},1,1,-1 -sort[-1] +,y -s[-1] x,2 -round[-2] 1 -a[-2,-1] x # Estimate pointwise forward/backward slopes. --shift[-1] 0,1,0,0,1 --[-1] [-2] -*[-1] -1 # Backward derivatives. --shift[-2] 0,-1,0,0,1 --[-1] [-3] # Forward derivatives. --*[-2] {$1/2} --*[-2] {1-$1/2} -+[-2,-1] # Forward tangents. -*[-3] {1-$1/2} -*[-2] {$1/2} -+[-3,-2] # Backward tangents. -s[-2,-1] x -+[-4,-2] 1e-10 -/[-3] [-4] -/[-1] [-2] -rm[-4,-2] # Forward and backward slopes. -a[-3--1] x # Append slopes to coordinates. # Compute multi-spline curve. {@{-1,(0,{h-1})}+1} -repeat {@{-2,h}-1} xstart={if($>,@{-2,0},0)} -_function1d @{-2,0-1},@{-2,3},@{-2,4-6},$xstart,@{-2,4} -j[-2] [-1],$xstart -rm[-1] -shift[-2] 0,-1 -done -rm[-2] -nm[-1] "[1d function (${2--1})]" -v + # Generate single spline function from specified coordinates (x0,y0,s0)-(x1,y1,s1), in range [t0..t1] _function1d : ({$1^3},{$1^2},$1,1;\ {3*$1^2},{2*$1},1,0;\ {$4^3},{$4^2},$4,1;\ {3*$4^2},{2*$4},1,0) ($2;$3;$5;$6) -solve[-1] [-2] -rm[-2] -transpose[-1] ($7,$8) -r[-1] {1+$8-$7},1,1,1,3 --^[-1] 3 --^[-2] 2 --f[-1] 1 -mv[-4] -1 -a[-4--1] y -**[-2,-1] #@gmic gmicky #@gmic : Load a new image of the G'MIC mascot 'Gmicky'. #@gmic : $ -gmicky gmicky : -e[^-1] "Load image of the G'MIC mascot 'Gmicky'." -v - -i http://gmic.sourceforge.net/img/gmicky_large.cimgz -nm[-1] [gmicky] -v + #@gmic gmicky_wilber #@gmic : Load a new image of the G'MIC mascot 'Gmicky' together with GIMP mascot 'Wilber'. #@gmic : $ -gmicky_wilber gmicky_wilber : -e[^-1] "Load image of the G'MIC mascot 'Gmicky' together with GIMP mascot 'Wilber'." -v - -i http://gmic.sourceforge.net/img/gmicky_wilber_large.cimgz -nm[-1] [gmicky_wilber] -v + #@gmic i : eq. to '-input'. : (*) #@gmic input : [type:]filename : [type:]http://URL : [selection]x_nb_copies>0 : { width>0[%] | [image_w] },{ _height>0[%] | [image_h] },{ _depth>0[%] | [image_d] },{ _spectrum>0[%] | [image_s] },_{ value1,_value2,.. | 'formula' } : (value1{,|;|/|^}value2{,|;|/|^}..) : 0 : (*) #@gmic : Insert a new image taken from a filename or from a copy of an existing image ['indice']," #@gmic : or insert new image with specified dimensions and values. Single quotes may be omitted in #@gmic : 'formula'. Specifying argument '0' inserts an 'empty' image. #@gmic : (eq. to '-i' | (no args)). #@gmic : Default values: 'nb_copies=1', 'height=depth=spectrum=1' and 'value1=0'. #@gmic : $ -input image.jpg #@gmic : $ -i (1,2,3;4,5,6;7,8,9^9,8,7;6,5,4;3,2,1) #@gmic : $ image.jpg (1,2,3;4,5,6;7,8,9) (255^128^64) 400,400,1,3,'if(x>w/2,x,y)*c' #@gmic o : eq. to '-output'. : (*) #@gmic output : [type:]filename,_format_options : (*) #@gmic : Output selected images as one or several numbered file(s). #@gmic : (eq. to '-o'). #@gmic : Default value: 'format_options'=(undefined). #@gmic on : eq. to '-outputn'. on : -v - __s="$?" -v + -_outputn $* #@gmic outputn : filename #@gmic : Output selected images as automatically numbered filenames in repeat..done loops. #@gmic : (eq. to '-on'). outputn : -v - __s="$?" -v + -_$0 $* _outputn : -v - filename=@{-filename\ "$1",@{>}} -v + -e[0--3] "Output image"$__s" as file '"$filename"'." -v - -o $filename -v + #@gmic op : eq. to '-outputp'. op : -v - __s="$?" -v + -_outputp $* #@gmic outputp : prefix #@gmic : Output selected images as prefixed versions of their original filenames. #@gmic : (eq. to '-op'). #@gmic : Default value: 'prefix=_'. outputp : -v - __s="$?" -v + -_$0 $* _outputp : -skip ${1="_"} -if {@#>1} -e[0--4] "Output image"$__s" as their initial locations, prefixed by '$1'." -else -e[0--4] "Output image"$__s" as its initial location, prefixed by '$1'." -endif -v - -repeat @# -o[$>] @{$>,f}$1@{$>,b}.@{$>,x} -done -v + #@gmic ow : eq. to '-outputw'. ow : -v - __s="$?" -v + -_outputw $* #@gmic outputw #@gmic : Output selected images by overwritting their original location. #@gmic : (eq. to '-ow'). outputw : -v - __s="$?" -v + -_$0 $* _outputw : -if {@#>1} -e[0--4] "Output image"$__s" as their initial location." -else -e[0--4] "Output image"$__s" as its initial location." -endif -v - -repeat @# -o[$>] @{$>,n} -done -v + #@gmic plot : _plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax : 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax : (+) #@gmic : Display selected image or formula in an interactive viewer (use the instant window [0] if opened). #@gmic : 'plot_type' can be { 0=none | 1=lines | 2=splines | 3=bar }. #@gmic : 'vertex_type' can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }. #@gmic : 'xmin','xmax','ymin','ymax' set the coordinates of the displayed xy-axes. #@gmic : Default values: 'plot_type=1', 'vertex_type=1' and 'xmin=xmax=ymin=ymax=0 (auto)'. #@gmic p : eq. to '-print'. : (*) #@gmic print : (*) #@gmic : Output information on selected images, on the standard error (stderr). #@gmic : (eq. to '-p'). #@gmic rainbow_lut #@gmic : Input a 256-entries RGB colormap of rainbow colors. #@gmic : $ image.jpg -rainbow_lut --luminance[-2] -map[-1] [-2] rainbow_lut : -e[^-1] "Input RGB colormap of 256 rainbow colors." -v - (2,10,13,13,15,16,15,15,18,23,26,31,33,37,38,39,42,42,44,45,44,44,45,45,44,42,44,45,45,49,50,52,54,55,56,57,\ 56,56,57,57,58,57,58,58,59,58,60,59,58,59,59,59,59,59,60,60,59,59,59,59,60,59,59,59,59,59,59,59,58,58,58,56,\ 56,54,51,48,44,39,33,20,5,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,25,50,66,81,90,102,109,118,129,137,144,152,158,168,178,183,190,199,207,\ 213,220,227,230,236,242,246,250,255,255,253,253,253,252,251,250,250,249,248,248,247,248,246,246,246,245,246,\ 245,245,245,246,246,246,246,246,246,246,246,245,245,245,245,245,244,245,244,245,245,245,245,245,245,245,245,\ 245,244,244,245,245,243,239,235,230,226,220,216,211,204,201,194,190,184,176,171,164,160,152,144,138,130,122,\ 114,107,96,87,78,69,57,50,46,38,31,19,5^3,10,14,15,17,18,19,18,19,23,25,30,31,35,37,39,42,44,45,48,49,50,51,\ 52,53,56,59,63,66,66,68,69,71,73,74,75,76,76,77,78,79,79,80,81,81,82,82,83,84,84,84,84,84,85,85,86,86,86,86,\ 87,88,87,86,86,86,86,88,89,89,90,92,92,94,96,99,102,104,107,111,117,120,126,130,136,142,149,155,161,167,172,\ 176,178,179,179,178,178,178,178,177,177,177,176,176,176,176,175,173,173,174,173,172,171,171,171,171,171,171,\ 171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,173,173,173,175,176,178,178,178,181,182,184,\ 186,186,190,192,193,195,198,200,201,204,206,209,211,208,206,202,197,194,190,185,182,178,172,167,162,157,152,\ 144,139,132,127,121,115,108,102,98,92,87,79,75,69,64,62,58,55,52,50,49,47,47,47,47,47,47,47,47,46,46,46,46,\ 45,44,44,42,42,41,41,40,39,38,37,36,34,31,30,29,30,30,31,32,32,32,33,33,34,34,33,34,33,32,31,31,30,29,26,25,\ 23,21,19,15,13,13,16,18,18,18,17,15,13,12,9,2^6,19,25,32,41,49,55,65,71,79,84,90,96,102,106,111,117,121,128,\ 132,134,139,143,146,149,152,155,156,157,159,159,160,161,162,163,164,164,165,166,167,166,165,166,166,167,167,\ 168,168,168,169,169,169,169,170,170,170,170,170,170,170,171,170,170,170,170,170,171,171,172,173,173,173,175,\ 177,179,180,183,185,187,190,193,198,201,206,213,219,225,227,227,223,218,214,204,199,192,184,179,172,168,162,\ 156,151,145,139,133,126,120,113,106,98,90,85,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,84,84,82,82,82,\ 82,82,83,83,81,81,81,80,80,78,78,78,76,74,73,73,71,72,69,68,67,65,62,59,58,56,51,50,49,45,43,40,38,37,35,32,\ 31,32,32,33,33,34,34,35,36,36,37,38,39,42,44,45,46,46,47,48,49,48,48,48,48,48,48,48,48,48,48,47,47,47,47,46,\ 45,45,43,43,42,41,40,39,38,37,38,38,37,37,38,38,38,38,39,40,39,40,39,40,40,39,39,38,38,37,35,34,32,30,28,26,\ 23,20,16,14,12,16,16,18,18,17,16,14,13,9,2) -nm[-1] [rainbow\ lut] -v + #@gmic roddy #@gmic : Load a new image of the G'MIC Rodilius mascot 'Roddy'. #@gmic : $ -roddy roddy : -e[^-1] "Load image of the G'MIC Rodilius mascot 'Roddy'." -v - -i http://gmic.sourceforge.net/img/roddy_large.cimgz -nm[-1] [roddy] -v + #@gmic remove_duplicates #@gmic : Remove duplicates images in the selected images list. #@gmic : $ (1,2,3,4,2,4,3,1,3,4,2,1) -split x -remove_duplicates -append x remove_duplicates : -e[^-1] "Remove duplicates images in selected list of image$?." -v - -repeat @# base=$> off=0 -repeat {@#-$>-1} comp={$base+1+$>-$off} -if {$comp>=@#} -break -endif ---[$base,$comp] -abs[-1] is_duplicate={!@{-1,+}} -rm[-1] -if $is_duplicate -rm[$comp] off={$off+1} -endif -done -done -v + #@gmic remove_empty #@gmic : Remove empty images in the selected image list. remove_empty : -e[^-1] "Remove empty images in selected list of image$?." -v - -repeat @# -if {!@{$<,whds}} -rm[$<] -endif -done -v + #@gmic select : feature_type,_X,_Y,_Z : (+) #@gmic : Interactively select a feature from selected images (use the instant window [0] if opened). #@gmic : 'feature_type' can be { 0=point | 1=segment | 2=rectangle | 3=ellipse }. #@gmic : Arguments 'X','Y','Z' determine the initial selection view, for 3d volumetric images. #@gmic : The retrieved feature is returned as a 3d or 6d vector containing the feature coordinates. #@gmic sh : eq. to '-shared'. : (*) #@gmic shared : x0[%],x1[%],y[%],z[%],v[%] : y0[%],y1[%],z[%],v[%] : z0[%],z1[%],v[%] : v0[%],v1[%] : (no args) : (*) #@gmic : Insert shared buffers from (opt. points/rows/planes/channels of) selected images. #@gmic : (eq. to '-sh'). #@gmic : $ image.jpg --shared 1,1 -blur[-1] 3 -remove[-1] #@gmic : $ image.jpg -repeat {s} --shared 25%,75%,0,$> -mirror[-1] x -remove[-1] -done #@gmic srand : value : (no args) : (*) #@gmic : Set random generator seed. #@gmic : If no argument is specified, a random value is used as the random generator seed. #@gmic testimage2d : _width>0,_height>0,_spectrum>0 #@gmic : Input a 2d synthetic image. #@gmic : Default values: 'width=512', 'height=width' and 'spectrum=3'. #@gmic : $ -testimage2d 512 testimage2d : -check "${1=512}>0 && ${2=$1}>0 && ${3=3}>0" -e[^-1] "Input 2d synthetic image of size $1x$2x$3." -v - Dmax2={0.15*min($1,$2)^2} $1,$2,1,$3,'X=x-w/2;Y=y-h/2;a=atan2(Y,X);if(X^2+Y^2<=$Dmax2,255*abs(cos(c+200*(x/w-0.5)*(y/h-0.5))),850*(a%(0.1*(c+1))))' -polygon[-1] 4,20%,20%,60%,20%,70%,70%,35%,45%,0.9,0,255,0 -torus3d {$1/7},{$1/20} -r3d[-1] 0,1,1,80 -col3d[-1] 128,200,255 -object3d[-2] [-1],30%,70%,0,1,5,0,0 -rm[-1] -nm[-1] "[2d test image]" -v + #@gmic text2img : text,_line_separator #@gmic : Input a 2d image whose values are ASCII characters of specified input text. #@gmic : Default value: 'line_separator= '. #@gmic : $ -text2img "There are 4 words" text2img : -skip "${2= }" -e[^-1] "Input image from text \"$1\", with line separator '$2'." -v - ({'"$1"'}) -l[-1] -s -,{'"$2"'} -y x -a y -nm "[\"$1\"]" -endl -v + #@gmic type : datatype : (*) #@gmic : Set pixel datatype for all images of the list. #@gmic : 'datatype' can be { bool | uchar | char | ushort | short | uint | int | float | double }. #@gmic uncommand : command_name : * : (*) #@gmic : Discard last definition of specified custom command. #@gmic : Set argument to '*' for discarding all existing custom commands. #@gmic uniform_distribution : nb_levels>=1,spectrum>=1 #@gmic : Input set of uniformly distributed N-d points in [0,1]^N. #@gmic : $ -uniform_distribution 64,3 -* 255 --distribution3d -circles3d[-1] 10 uniform_distribution : -check "isint($1) && $1>0 && isint($2) && $2>0" -e[^1] "Input set of $1 uniformly distributed $2-d points in [0,1]^$2." -v - n={round($1^(1/$2),1,1)} (0,1) -r[-1] $n,1,1,1,3 -repeat {$2-1} --channels[-1] 100% -r[-1] {$n*w},1,1,1,1 -r[-2] [-1],1,1,100%,0,2 -a[-2,-1] c -done -r[-1] $1,1,1,$2,1 -nm[-1] "[uniform $2d distribution]" -v + #@gmic up : eq. to '-update'. up : -_update #@gmic update #@gmic : Update commands from the latest definition file on the G'MIC server. #@gmic : This requires an active Internet connection and an access to the external #@gmic : tools 'curl' or 'wget'. #@gmic : (eq. to '-up'). update : -_$0 _update : -e[0--3] "Update commands from the latest definition file on the G'MIC server." -v - -m http://gmic.sourceforge.net/update@..gmic -v + #@gmic v : eq. to '-verbose.' : (*) #@gmic verbose : level : { + | - } : (*) #@gmic : Set or increment/decrement the verbosity level. #@gmic : (eq. to '-v'). #@gmic : When 'level'>=0, G'MIC log messages are displayed on the standard error (stderr). #@gmic : Default value for the verbosity level is 0. #@gmic wait : delay : (no args) : (+) #@gmic : Wait for a given delay (in ms) or for a user event occuring on the selected instant window. #@gmic : 'delay' can be { <0=delay+flush | 0=event | >0=delay }. #@gmic : Command subset (if any) stands for instant window indices instead of image indices. #@gmic warn : message : (*) #@gmic : Print specified warning message, on the standard error (stderr). #@gmic : Command subset (if any) stands for displayed scope indices instead of image indices. #@gmic w : eq. to '-window'. : (+) #@gmic window : _width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_title : (+) #@gmic : Display selected images into an instant window with specified size, normalization type, #@gmic : fullscreen mode and title. #@gmic : (eq. to '-w'). #@gmic : If 'width' or 'height' is set to -1, the corresponding dimension is adjusted to the window #@gmic : or image size. #@gmic : 'width'=0 or 'height'=0 closes the instant window. #@gmic : 'normalization' can be { -1=keep same | 0=none | 1=always | 2=1st-time | 3=auto }. #@gmic : 'fullscreen' can be { -1=keep same | 0=no | 1=yes }. #@gmic : You can manage up to 10 different instant windows by using the numbered variants #@gmic : '-w0' (default, eq. to '-w'),'-w1',..,'-w9' of the command '-w'. #@gmic : Default values: 'width=height=normalization=fullscreen=-1' and 'title=(undefined)'. #--------------------------------- # #@gmic :: List manipulation # #--------------------------------- #@gmic k : eq. to '-keep'. : (*) #@gmic keep : (*) #@gmic : Keep only selected images. #@gmic : (eq. to '-k'). #@gmic : $ image.jpg -split x -keep[0-50%:2] -append x #@gmic : $ image.jpg -split x -keep[^30%-70%] -append x #@gmic mv : eq. to '-move'. : (*) #@gmic move : position[%] : (*) #@gmic : Move selected images at specified position. #@gmic : (eq. to '-mv'). #@gmic : $ image.jpg -split x,3 -move[1] 0 #@gmic : $ image.jpg -split x -move[50%--1:2] 0 -append x #@gmic nm : eq. to '-name'. : (*) #@gmic name : name,_is_modified={ 0 | 1 } : (*) #@gmic : Set name of selected images. #@gmic : (eq. to '-nm'). #@gmic : Argument 'is_modified' tells about the modified state of selected images. #@gmic : Default value: 'is_modified=0'. #@gmic : $ image.jpg -name image -blur[image] 2 #@gmic rm : eq. to '-remove'. : (*) #@gmic remove : (*) #@gmic : Remove selected images. #@gmic : (eq. to '-rm'). #@gmic : $ image.jpg -split x -remove[30%-70%] -append x #@gmic : $ image.jpg -split x -remove[0-50%:2] -append x #@gmic rv : eq. to '-reverse'. : (*) #@gmic reverse : (*) #@gmic : Reverse positions of selected images. #@gmic : (eq. to '-rv'). #@gmic : $ image.jpg -split x,3 -reverse[-2,-1] #@gmic : $ image.jpg -split x,-16 -reverse[50%-100%] -append x #@gmic sort_list : _ordering={ + | - },_criterion #@gmic : Sort list of selected images according to the specified image criterion. #@gmic : Default values: 'ordering=+', 'criterion=i'. #@gmic : $ (1;4;7;3;9;2;4;7;6;3;9;1;0;3;3;2) -split y -sort_list + -append y sort_list : -skip ${1=+},${2=i} -e[^-1] "Sort list of image$? in "@{-arg\ 1+{$1'=='+},descending,ascending}" order, "\ "according to the image criterion '$2'." -v - -if @# i=@# -repeat @# (@{$>,$2}) -done -a[$i--1] y --f[-1] 'y' -a[-2,-1] x -sort[-1] $1,y -z[-1] 1,1 -repeat {h} nm$>=@{$>,n} -nm[$>] sortlist$> -done -repeat {h} -mv[sortlist{i(0,$>)}] -1 -done -repeat {h} -nm[$>] ${nm{i(0,$>)}} -done -rm[-1] -endif -v + #@gmic sort_str #@gmic : Sort selected images (viewed as a list of strings) in lexicographic order. sort_str : -e[^-1] "Sort image$? in lexicographic order." -v - -y y -a x -repeat {round(h/4,1,1)} y={4*$>} -repeat @# -l[$<] --rows $y,{$y+3} -f[1] 'if(i>=97&&i<=122,i-32,i)' --[-1] 32 -c[-1] 0,63 -s[-1] y -*[-2] 64 -*[-3] 4096 -*[-4] 262144 -+[-4--1] -rv -a y -sort +,x --rows 0 -rows[0] 1,100% -label[1] 0 -%[1] 2 -s[1] +,0 N={@#-1} x0=0 -repeat {@#-1} x1={$x0+@{{1+$>},h}} --z[0] $x0,{$x1-1} x0=$x1 -done -rm[0-$N] -endl -done -done -s x -v + #--------------------------------- # #@gmic :: Mathematical operators # #--------------------------------- #@gmic abs : (+) #@gmic : Compute the pointwise absolute values of selected images. #@gmic : $ image.jpg --sub {ia} -abs[-1] #@gmic : $ 300,1,1,1,'cos(20*x/w)' --abs -display_graph 400,300 #@gmic acos : (+) #@gmic : Compute the pointwise arc-cosine of selected images. #@gmic : $ image.jpg --normalize -1,1 -acos[-1] #@gmic : $ 300,1,1,1,'x/w+0.1*u' --acos -display_graph 400,300 #@gmic + : eq. to '-add'. : (+) #@gmic add : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Add specified value, image or mathematical expression to selected images, #@gmic : or compute the pointwise sum of selected images. #@gmic : (eq. to '-+'). #@gmic : $ image.jpg --add 30% -cut 0,255 #@gmic : $ image.jpg --blur 5 -normalize 0,255 -add[1] [0] #@gmic : $ image.jpg -add '80*cos(80*(x/w-0.5)*(y/w-0.5)+c)' -cut 0,255 #@gmic : $ image.jpg -repeat 9 --rotate[0] {$>*36},1,0,50%,50% -done -add -div 10 #@gmic and : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise AND of selected images with specified value, image or mathematical #@gmic : expression, or compute the pointwise sequential bitwise AND of selected images. #@gmic : $ image.jpg -and {128+64} #@gmic : $ image.jpg --mirror x -and #@gmic asin : (+) #@gmic : Compute the pointwise arc-sine of selected images. #@gmic : $ image.jpg --normalize -1,1 -asin[-1] #@gmic : $ 300,1,1,1,'x/w+0.1*u' --asin -display_graph 400,300 #@gmic atan : (+) #@gmic : Compute the pointwise arc-tangent of selected images. #@gmic : $ image.jpg --normalize 0,8 -atan[-1] #@gmic : $ 300,1,1,1,'4*x/w+u' --atan -display_graph 400,300 #@gmic atan2 : [x_argument] : (+) #@gmic : Compute the pointwise oriented arc-tangent of selected images. #@gmic : Each selected image is regarded as the y-argument of the arc-tangent function, while the #@gmic : specified image gives the corresponding x-argument. #@gmic : $ (-1,1) (-1;1) -resize 400,400,1,1,3 -atan2[1] [0] -keep[1] -mod {pi/8} #@gmic << : eq. to '-bsl'. : (+) #@gmic bsl : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise left shift of selected images with specified value, image or #@gmic : mathematical expression, or compute the pointwise sequential bitwise left shift of #@gmic : selected images. #@gmic : (eq. to '-<<'). #@gmic : $ image.jpg -bsl 'round(3*x/w,0)' -cut 0,255 #@gmic >> : eq. to '-bsr'. : (+) #@gmic bsr : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise right shift of selected images with specified value, image or" #@gmic : mathematical expression, or compute the pointwise sequential bitwise right shift of #@gmic : selected images. #@gmic : (eq. to '->>'). #@gmic : $ image.jpg -bsr 'round(3*x/w,0)' -cut 0,255 #@gmic cos : (+) #@gmic : Compute the pointwise cosine of selected images. #@gmic : $ image.jpg --normalize 0,{2*pi} -cos[-1] #@gmic : $ 300,1,1,1,'20*x/w+u' --cos -display_graph 400,300 #@gmic cosh : (+) #@gmic : Compute the pointwise hyperbolic cosine of selected images. #@gmic : $ image.jpg --normalize -3,3 -cosh[-1] #@gmic : $ 300,1,1,1,'4*x/w+u' --cosh -display_graph 400,300 #@gmic / : eq. to '-div'. : (+) #@gmic div : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Divide selected image by specified value, image or mathematical expression, #@gmic : or compute the pointwise quotient of selected images. #@gmic : (eq. to '-/'). #@gmic : $ image.jpg -div '1+abs(cos(x/10)*sin(y/10))' #@gmic : $ image.jpg --luminance --div #@gmic == : eq. to '-eq'. : (+) #@gmic eq : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean equality of selected images with specified value, image or #@gmic : mathematical expression, or compute the boolean equality of selected images. #@gmic : (eq. to '-=='). #@gmic : $ image.jpg -round 40 -eq {round(ia,40)} #@gmic : $ image.jpg --mirror x -eq #@gmic exp : (+) #@gmic : Compute the pointwise exponential of selected images. #@gmic : $ image.jpg --normalize 0,2 -exp[-1] #@gmic : $ 300,1,1,1,'7*x/w+u' --exp -display_graph 400,300 #@gmic >= : eq. to '-ge'. : (+) #@gmic ge : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean 'greater or equal than' of selected images with specified value, image #@gmic : or mathematical expression, or compute the boolean 'greater or equal than' of selected images. #@gmic : (eq. to '->='). #@gmic : $ image.jpg -ge {ia} #@gmic : $ image.jpg --mirror x -ge #@gmic > : eq. to '-gt'. : (+) #@gmic gt : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean 'greater than' of selected images with specified value, image or #@gmic : mathematical expression, or compute the boolean 'greater than' of selected images. #@gmic : (eq. to '->'). #@gmic : $ image.jpg -gt {ia} #@gmic : $ image.jpg --mirror x -gt #@gmic <= : eq. to '-le'. : (+) #@gmic le : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean 'less or equal than' of selected images with specified value, image or #@gmic : mathematical expression, or compute the boolean 'less or equal than' of selected images. #@gmic : (eq. to '-<='). #@gmic : $ image.jpg -le {ia} #@gmic : $ image.jpg --mirror x -le #@gmic < : eq. to '-lt'. : (+) #@gmic lt : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean 'less than' of selected images with specified value, image or #@gmic : mathematical expression, or compute the boolean 'less than' of selected images. #@gmic : (eq. to '-<'). #@gmic : $ image.jpg -lt {ia} #@gmic : $ image.jpg --mirror x -lt #@gmic log : (+) #@gmic : Compute the pointwise base-e logarithm of selected images. #@gmic : $ image.jpg --add 1 -log[-1] #@gmic : $ 300,1,1,1,'7*x/w+u' --log -display_graph 400,300 #@gmic log10 : (+) #@gmic : Compute the pointwise base-10 logarithm of selected images. #@gmic : $ image.jpg --add 1 -log10[-1] #@gmic : $ 300,1,1,1,'7*x/w+u' --log10 -display_graph 400,300 #@gmic log2 : (+) #@gmic : Compute the pointwise base-2 logarithm of selected images #@gmic : $ image.jpg --add 1 -log2[-1] #@gmic : $ 300,1,1,1,'7*x/w+u' --log2 -display_graph 400,300 #@gmic max : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the maximum between selected images and specified value, image or #@gmic : mathematical expression, or compute the pointwise maxima between selected images. #@gmic : $ image.jpg --mirror x -max #@gmic : $ image.jpg -max 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R' #@gmic // : eq. to '-mdiv'. : (+) #@gmic mdiv : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the matrix division of selected matrices/vectors by specified value, image or #@gmic : mathematical expression, or compute the matrix division of selected images. #@gmic : (eq. to '-//'). #@gmic min : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the minimum between selected images and specified value, image or #@gmic : mathematical expression, or compute the pointwise minima between selected images. #@gmic : $ image.jpg --mirror x -min #@gmic : $ image.jpg -min 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R' #@gmic % : eq. to '-mod'. : (+) #@gmic mod : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the modulo of selected images with specified value, image or mathematical #@gmic : expression, or compute the pointwise sequential modulo of selected images. #@gmic : (eq. to '-%'). #@gmic : $ image.jpg --mirror x -mod #@gmic : $ image.jpg -mod 'R=((x/w-0.5)^2+(y/h-0.5)^2)^0.5;255*R' #@gmic ** : eq. to '-mmul'. : (+) #@gmic mmul : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the matrix right multiplication of selected matrices/vectors by specified value, image or #@gmic : mathematical expression, or compute the matrix right multiplication of selected images. #@gmic : (eq. to '-**'). #@gmic : $ (0,1,0;0,0,1;1,0,0) (1;2;3) --mmul #@gmic * : eq. to '-mul'. : (+) #@gmic mul : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Multiply selected images by specified value, image or mathematical expression, #@gmic : or compute the pointwise product of selected images. #@gmic : (eq. to '-*'). #@gmic : $ image.jpg --mul 2 -cut 0,255 #@gmic : $ image.jpg (1,2,3,4,5,6,7,8) -resize[-1] [0] -mul[0] [-1] #@gmic : $ image.jpg -mul '1-3*abs(x/w-0.5)' -cut 0,255 #@gmic : $ image.jpg --luminance -negative[-1] --mul #@gmic != : eq. to '-neq'. : (+) #@gmic neq : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the boolean inequality of selected images with specified value, image or #@gmic : mathematical expression, or compute the boolean inequality of selected images. #@gmic : (eq. to '-!='). #@gmic : $ image.jpg -round 40 -neq {round(ia,40)} #@gmic or : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise OR of selected images with specified value, image or mathematical #@gmic : expression, or compute the pointwise sequential bitwise OR of selected images. #@gmic : $ image.jpg -or 128 #@gmic : $ image.jpg --mirror x -or #@gmic ^ : eq. to '-pow'. : (+) #@gmic pow : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Raise selected image to the power of specified value, image or mathematical #@gmic : expression, or compute the pointwise sequential powers of selected images. #@gmic : (eq. to '-^'). #@gmic : $ image.jpg -div 255 --pow 0.5 -mul 255 #@gmic : $ image.jpg -gradient -pow 2 -add -pow 0.2 #@gmic rol : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise left rotation of selected images with specified value, image or #@gmic : mathematical expression, or compute the pointwise sequential bitwise left rotation of #@gmic : selected images. #@gmic : $ image.jpg -rol 'round(3*x/w,0)' -cut 0,255 #@gmic ror : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise right rotation of selected images with specified value, image or #@gmic : mathematical expression, or compute the pointwise sequential bitwise right rotation of #@gmic : selected images. #@gmic : $ image.jpg -ror 'round(3*x/w,0)' -cut 0,255 #@gmic sign : (+) #@gmic : Compute the pointwise sign of selected images. #@gmic : $ image.jpg --sub {ia} -sign[-1] #@gmic : $ 300,1,1,1,'cos(20*x/w+u)' --sign -display_graph 400,300 #@gmic sin : (+) #@gmic : Compute the pointwise sine of selected images. #@gmic : $ image.jpg --normalize 0,{2*pi} -sin[-1] #@gmic : $ 300,1,1,1,'20*x/w+u' --sin -display_graph 400,300 #@gmic sinc : (+) #@gmic : Compute the pointwise sinc function of selected images. #@gmic : $ image.jpg --normalize {-2*pi},{2*pi} -sinc[-1] #@gmic : $ 300,1,1,1,'20*x/w+u' --sinc -display_graph 400,300 #@gmic sinh : (+) #@gmic : Compute the pointwise hyperbolic sine of selected images. #@gmic : $ image.jpg --normalize -3,3 -sinh[-1] #@gmic : $ 300,1,1,1,'4*x/w+u' --sinh -display_graph 400,300 #@gmic sqr : (+) #@gmic : Compute the pointwise square function of selected images. #@gmic : $ image.jpg --sqr #@gmic : $ 300,1,1,1,'40*x/w+u' --sqr -display_graph 400,300 #@gmic sqrt : (+) #@gmic : Compute the pointwise square root of selected images. #@gmic : $ image.jpg --sqrt #@gmic : $ 300,1,1,1,'40*x/w+u' --sqrt -display_graph 400,300 #@gmic - : eq. to '-sub'. : (+) #@gmic sub : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Subtract specified value, image or mathematical expression to selected images, #@gmic : or compute the pointwise difference of selected images. #@gmic : (eq. to '--'). #@gmic : $ image.jpg --sub 30% -cut 0,255 #@gmic : $ image.jpg --mirror x -sub[-1] [0] #@gmic : $ image.jpg -sub 'i(w/2+0.9*(x-w/2),y)' #@gmic : $ image.jpg --mirror x -sub #@gmic tan : (+) #@gmic : Compute the pointwise tangent of selected images. #@gmic : $ image.jpg --normalize {-0.47*pi},{0.47*pi} -tan[-1] #@gmic : $ 300,1,1,1,'20*x/w+u' --tan -display_graph 400,300 #@gmic tanh : (+) #@gmic : Compute the pointwise hyperbolic tangent of selected images. #@gmic : $ image.jpg --normalize -3,3 -tanh[-1] #@gmic : $ 300,1,1,1,'4*x/w+u' --tanh -display_graph 400,300 #@gmic xor : value[%] : [image] : 'formula' : (no args) : (+) #@gmic : Compute the bitwise XOR of selected images with specified value, image or mathematical #@gmic : expression, or compute the pointwise sequential bitwise XOR of selected images. #@gmic : $ image.jpg -xor 128 #@gmic : $ image.jpg --mirror x -xor #--------------------------------- # #@gmic :: Values manipulation # #--------------------------------- #@gmic apply_curve : 0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN #@gmic : Apply curve transformation to image values. #@gmic : Default values: 'smoothness=1', 'x0=0', 'y0=100'. #@gmic : $ image.jpg --apply_curve 1,0,0,128,255,255,0 apply_curve : -check "${1=1}>=0 && $1<=1" -skip ${2=0},${3=100} -e[^-1] "Apply intensity curve with smoothness $1 and keypoints (${2--1}) on image$?." -v - -function1d ${^0} -map[^-1] [-1] -rm[-1] -v + #@gmic apply_gamma : gamma>=0 #@gmic : Apply gamma correction to selected images. #@gmic : $ image.jpg --apply_gamma 2 apply_gamma : -check $1>=0 -e[^-1] "Apply Gamma-correction to image$?, with gamma $1." -if {$1==1} -return -endif -v - -repeat @# -l[$>] mM={im},{iM} -n 0,1 -^ {1/$1} -n $mM -endl -done -v + #@gmic balance_gamma : _ref_color1,... #@gmic : Apply color balance transformation on selected image, with respect to specified reference color. #@gmic : Default values: 'ref_color1=128'. #@gmic : $ image.jpg --balance_gamma 128,64,64 balance_gamma : -skip ${1=128} -e[^-1] "Apply color balance transformation on image$?, with gamma curve and reference color ("${^0}")." -v - -repeat @# -l[$>] (${^0}) -r[-1] @{-2,s},1,1,1,0,1 -s[-2] c -/[-1] 255 -repeat {@#-1} -/[$>] 255 -^[$>] {log(@{-1,$>})/log(@{$>,a})} -*[$>] 255 -done -rm[-1] -a c -n 0,255 -endl -done -v + #@gmic complex2polar #@gmic : Compute complex to polar transforms of selected images. #@gmic : $ image.jpg --fft -complex2polar[-2,-1] -log[-2] -shift[-2] 50%,50%,0,0,2 -remove[-1] complex2polar : -e[^-1] "Compute complex to polar transforms of image$?." -v - -repeat {int(@#/2)} -l[{2*$>},{2*$>+1}] -r[1] [0],3 --atan2[1] [0] -nm[-1] @{1,n},1 -sqr[-3,-2] -+[-3,-2] -sqrt[-2] -endl -done -v + #@gmic cumul #@gmic : Compute the cumulative function of specified image data. #@gmic : $ image.jpg --histogram 256 --cumul[-1] -display_graph[-2,-1] 400,300,3 cumul : -e[^-1] "Compute cumulative of function$?." -v - -repeat @# -l[$>] dim={w},{h},{d},{s} -y x -repeat {round(log2(w),1,1)} --shift[-1] {2^$>} -+[-2,-1] -done -r $dim,-1 -endl -done -v + #@gmic c : eq. to '-cut'. : (+) #@gmic cut : { value0[%] | [image0] },{ value1[%] | [image1] } : [image] : (no args) : (+) #@gmic : Cut values of selected images in specified range. #@gmic : (eq. to '-c'). #@gmic : (noargs) runs interactive mode (uses the instant window [0] if opened). #@gmic : $ image.jpg --add 30% -cut[-1] 0,255 #@gmic : $ image.jpg --cut 25%,75% #@gmic discard : value,_remove_if_not_found = { 0 | 1 }. #@gmic : Remove specified value in selected images and return results as single-column vector. #@gmic : Default value: 'remove_if_not_found=0'. #@gmic : $ (1;2;3;4;3;2;1) --discard 2 discard : -skip ${2=0} -e[^-1] "Remove value $1 in image$?." -v - -repeat @# -l[$>] -s -,$1 -a y -if {!@#" && "!$2} 1,1,1,1,$1 -endif -endl -done -v + #@gmic eigen2tensor #@gmic : Recompose selected pairs of eigenvalues/eigenvectors as 2x2 or 3x3 tensor fields. eigen2tensor : -e[^-1] "Recompose pairs in eigen field$? as 2x2 or 3x3 tensor fields." -v - -repeat {@#/2} -l[$>,{$>+1}] nm=@{0,n} -if {s==2} # 2d tensors. -s[-1] c --sqr[-1] -*[-2] [-3] -sqr[-3] # u^2 uv v^2 -sh[-1] --*[-3] -1 -sh[-5] # v^2 -uv u^2 -a[-3--1] c -a[-4--2] c -sh[-3] 0,0 -*[-3,-1] # l1*(u^2;uv;v^2) -sh[-3] 1,1 -*[-2,-1] # l2*(v^2;-uv;u^2) -rm[-3] -+[-2,-1] -elif {s==6} # 3d tensors. -s[-1] c -l[-6--4] --sqr[-2] --*[-2,-3] --sqr[-3] -*[-5] [-6] -*[-4] [-6] -sqr[-6] -a c -endl -l[-3--1] --sqr[-2] --*[-2,-3] --sqr[-3] -*[-5] [-6] -*[-4] [-6] -sqr[-6] -a c -endl -s[-3] c --[-5] [-3] --[-4] [-3] -*[-2] [-5] -*[-1] [-4] (1^0^0^1^0^1) -r[-1] [-3] -*[-1] [-4] -rm[-6--4] -+[-3--1] -else -error[0--3] "Invalid image ["{@#-$>-1}"] : Dimensions "{w}","{h}","{d}","{s}" does not represent a field of 2d or 3d eigenvectors." -endif -nm $nm,1 -endl -done -v + #@gmic endian : (*) #@gmic : Reverse data endianness of selected images. #@gmic equalize : _nb_levels>0[%],_value_min[%],_value_max[%] #@gmic : Equalize histograms of selected images. #@gmic : If value range is specified, the equalization is done only for pixels in the specified #@gmic : value range. #@gmic : Default values: 'value_min=0%' and 'value_max=100%'. #@gmic : $ image.jpg --equalize 256 #@gmic : $ image.jpg --equalize 4,0,128 #@gmic f : eq. to '-fill'. : (+) #@gmic fill : value1,_value2,.. : [image] : 'formula' : (+) #@gmic : Fill selected images with values read from the specified value list, existing image #@gmic : or mathematical expression. Single quotes may be omitted in 'formula'. #@gmic : (eq. to '-f'). #@gmic : $ 4,4 -fill 1,2,3,4,5,6,7 #@gmic : $ 4,4 (1,2,3,4,5,6,7) -fill[-2] [-1] #@gmic : $ 400,400,1,3 -fill "X=x-w/2; Y=y-h/2; R=sqrt(X^2+Y^2); a=atan2(Y,X); if (R<=180,255*abs(cos(c+200*(x/w-0.5)*(y/h-0.5))),850*(a%(0.1*(c+1))))" #@gmic float2int8 #@gmic : Convert selected float-valued images to 8bits integer representations. float2int8 : -e[^-1] "Convert float-valued image$? to 8bits integer representations." -v - -repeat @# -l[$>] -s c -repeat @# -l[$>] m={im} M={iM} -quantize 16777216,0,1 -->> 8 -and[-1] 255 --and[-2] 255 ->>[-3] 16 ({'$m,$M'}) -a y -endl -done -a c -endl -done -v + #@gmic int82float #@gmic : Convert selected 8bits integer representations to float-valued images. int82float : -e[^-1] "Convert 8bits integer representation$? to float-valued image$?." -v - -repeat @# -l[$>] -s c -repeat @# -l[$>] -sh[-1] {h-1},{h-1},0,0 m=@{-1,t} -rm[-1] -rows 0,{h-2} -s y,3 -*[-3] 65536 -*[-2] 256 -or -n $m -endl -done -a c -endl -done -v + #@gmic index : { [palette] | predefined_palette },0<=_dithering<=1,_map_palette={ 0 | 1 } : (+) #@gmic : Index selected vector-valued images by specified vector-valued palette. #@gmic : 'predefined_palette' can be { 0=default | 1=HSV | 2=lines | 3=hot | 4=cool | 5=jet | 6=flag | 7=cube }. #@gmic : Default values: 'dithering=0' and 'map_palette=0'. #@gmic : $ image.jpg --index 1,1,1 #@gmic : $ image.jpg (0;255;255^0;128;255^0;0;255) --index[-2] [-1],1,1 #@gmic image_integral #@gmic : Compute the image integral (summed area table) of selected images. #@gmic : $ image.jpg --image_integral image_integral : -e[^-1] "Compute the image integral of image$?." -v - -f '>i+i(x-1,y)' -f '>i+i(x,y-1)' -v + #@gmic map : [palette] : predefined_palette : (+) #@gmic : Map specified vector-valued palette to selected indexed scalar images. #@gmic : 'predefined_palette' can be { 0=default | 1=HSV | 2=lines | 3=hot | 4=cool | 5=jet | 6=flag | 7=cube }. #@gmic : $ image.jpg --luminance -map[-1] 3 #@gmic : $ image.jpg --rgb2ycbcr -split[-1] c (0,255,0) -resize[-1] 256,1,1,1,3 -map[-4] [-1] -remove[-1] -append[-3--1] c -ycbcr2rgb[-1] #@gmic map_clut #@gmic : Map RGB color LUT image (regarded as the last image) to all other selected images. #@gmic : $ image.jpg -uniform_distribution {2^5},3 -mirror[-1] x --map_clut map_clut : -e[^-1] "Map color LUT image, using image$?." -if {@#<2} -return -endif -v - -to_color[0--2] -to_rgb[-1] l={round((w*h*d)^(1/3))} -r[-1] $l,$l,$l,3,-1 -repeat {@#-1} -l[$>,-1] -split_opacity[0] -/[0] {256/$l} --warp[-1] [0],0,1,1 -rm[0] -mv[-1] 0 -a[^-1] c -endl -done -rm[-1] -v + #@gmic mix_channels : (a00,...,aMN) #@gmic : Apply specified matrix to channels of selected images. #@gmic : $ image.jpg --mix_channels (0,1,0;1,0,0;0,0,1) mix_channels : -e[^-1] "Apply matrix $1 to channels of image$?." -v - -repeat @# -l[$>] nm=@{0,n} whd={w},{h},{d} -r {w*h*d},{s},1,1,-1 -i[0] ${^0} -** -r $whd,{h},-1 -nm $nm,1 -endl -done -v + #@gmic negative #@gmic : Compute negative of selected images. #@gmic : $ image.jpg --negative negative : -e[^-1] "Compute negative of image$?." -v - -repeat @# -l[$>] -- {iM} -endl -done -* -1 -v + #@gmic noise : std_variation>=0[%],_noise_type : (+) #@gmic : Add random noise to selected images. #@gmic : 'noise_type' can be { 0=gaussian | 1=uniform | 2=salt&pepper | 3=poisson | 4=rice }. #@gmic : Default value: 'noise_type=0'. #@gmic : $ image.jpg --noise[0] 50,0 --noise[0] 50,1 --noise[0] 10,2 -cut 0,255 #@gmic : $ 300,300,1,3 [0] -noise[0] 20,0 -noise[1] 20,1 --histogram 100 -display_graph[-2,-1] 400,300,3 #@gmic norm #@gmic : Compute the pointwise euclidean norm of vector-valued pixels in selected images. #@gmic : $ image.jpg --norm norm : -e[^-1] "Compute pointwise euclidean norm of vectors, in image$?." -v - -sqr -compose_channels + -sqrt -v + #@gmic n : eq. to '-normalize'. : (+) #@gmic normalize : { value0[%] | [image0] },{ value1[%] | [image1] } : [image] : (+) #@gmic : Linearly normalize values of selected images in specified range. #@gmic : (eq. to '-n'). #@gmic : $ image.jpg -split x,2 -normalize[-1] 64,196 -append x #@gmic normalize_sum #@gmic : Normalize selected images with a unitary sum. #@gmic : $ image.jpg --histogram[-1] 256 -normalize_sum[-1] -display_graph[-1] 400,300 normalize_sum : -e[^-1] "Normalize image$? with a unitary sum." -v - -repeat @# sum=@{$>,+} -if {$sum!=0} -/[$>] $sum -endif -done -v + #@gmic orientation #@gmic : Compute the pointwise orientation of vector-valued pixels in selected images. #@gmic : $ image.jpg --orientation --norm[-2] -negative[-1] -mul[-2] [-1] -reverse[-2,-1] orientation : -e[^-1] "Compute pointwise orientation vectors, in image$?." -v - -repeat @# --norm[$>] -replace[-1] 0,1 -/[$>,-1] -done -v + #@gmic otsu : _nb_levels>0 #@gmic : Hard-threshold image using Otsu's method. #@gmic : Default value: 'nb_levels=256'. #@gmic : $ image.jpg -luminance --otsu , otsu : -check "isint(${1=256}) && $1>0" -e[^-1] "Hard-threshold image$? using Otsu's method, with $1 histogram levels." -v - -n 0,{$1-1} -repeat @# -l[$>] --histogram $1 total=@{-1,+} --*[-1] 'x' sum=@{-1,+} -rm[-1] sumB=0 wB=0 wF=0 varMax=0 threshold=0 -repeat $1 wB={$wB+@{-1,$>}} -if {$wB==0} -continue -endif wF={$total-$wB} -if {$wF==0} -break -endif sumB={$sumB+$>*@{-1,$>}} mB={$sumB/$wB} mF={($sum-$sumB)/$wF} varBetween={$wB*$wF*($mB-$mF)^2} -if {$varBetween>$varMax} varMax=$varBetween threshold=$> -endif -done -rm[-1] -ge[-1] $threshold -v + -e[] " > Threshold for image ["$>"] ("@{-1,b}") : "$threshold -v - -endl -done -v + #@gmic polar2complex #@gmic : Compute polar to complex transforms of selected images. polar2complex : -e[^-1] "Compute polar to complex transforms of image$?." -v - -repeat {int(@#/2)} -l[{2*$>},{2*$>+1}] -r[1] [0],3 --sin[-1] -cos[-2] -*[-1] [-3] -*[-3,-2] -endl -done -v + #@gmic quantize : nb_levels>=1,_keep_values={ 0 | 1 },_is_uniform={ 0 | 1 } #@gmic : Quantize selected images. #@gmic : Default value: 'keep_values=1' and 'is_uniform=0'. #@gmic : $ image.jpg -luminance --quantize 3 #@gmic : $ 200,200,1,1,'cos(x/10)*sin(y/10)' --quantize[0] 6 --quantize[0] 4 --quantize[0] 3 --quantize[0] 2 quantize : -check "isint($1) && $1>=1" -skip ${2=1},${3=0} -e[^-1] "Quantize image$? using $1 levels, "@{-arg\ 1+!$2,with,without}" keeping value range." -v - -repeat @# -l[$>] -if $3 # Uniform quantization. -if {s==1} # Greyscale image. -if $2 mM={im},{iM} -n 0,$1 -round 1,-1 -min {$1-1} -n $mM -else -n 0,$1 -round 1,-1 -min {$1-1} -endif -else mM={im},{iM} -uniform_distribution $1,{s} -n[-1] $mM -index[-2] [-1],0,$2 -rm[-1] -endif -else --colormap $1,0 -index[-2] [-1],0,$2 -rm[-1] # Non-uniform quantization. -endif -endl -done -v + #@gmic rand : { value0[%] | [image0] },{ value1[%] | [image1] } : [image] : (+) #@gmic : Fill selected images with random values uniformly distributed in the specified range. #@gmic : $ 400,400,1,3 -rand -10,10 --blur 10 -sign[-1] #@gmic replace : value_src,value_dest #@gmic : Replace pixel values in selected images. #@gmic : $ (1;2;3;4) --replace 2,3 replace : -e[^-1] "Replace pixel values $1 with $2 in image$?." -v - -repeat @# -l[$>] --== $1 -*[-1] {$2-$1} -+ -endl -done -v + #@gmic replace_inf : _expression #@gmic : Replace all infinite values in selected images by specified expression. #@gmic : $ (0;1;2) -log --replace_inf 2 replace_inf : -e[^-1] "Replace all infinite values in image$? by expression '$1'." -v - -f "if(i==i+1,$1,i)" -v + #@gmic replace_nan : _expression #@gmic : Replace all NaN values in selected images by specified expression. #@gmic : $ (-1;0;2) -sqrt --replace_nan 2 replace_nan : -e[^-1] "Replace all NaN values in images$? by expression '$1'." -v - -f "if(i>=0 || i<=0,i,$1)" -v + #@gmic replace_seq : "search_seq","replace_seq" #@gmic : Search and replace a sequence of values in selected images. #@gmic : $ (1;2;3;4;5) --replace_seq "2,3,4","7,8" replace_seq : -e[^-1] "Replace value sequence '$1' by value sequence '$2' in image$?." -v - ($1) ($2) -repeat {@#-2} -l[$>,-2,-1] -s[0] +,$1 -s y,-@{-2,w} -repeat {@#-2} -if {@{$>,t}'=='@{-2,t}} -rows[$>] 0,{w-1} -f[$>] [-1] -endif -done -a[0--3] y -endl -done -rm[-2,-1] -v + #@gmic round : rounding_value>=0,_rounding_type : (no args) : (+) #@gmic : Round values of selected images. #@gmic : 'rounding_type' can be { -1=backward | 0=nearest | 1=forward }. #@gmic : Default value: 'rounding_type=0'. #@gmic : $ image.jpg --round 100 #@gmic : $ image.jpg -mul {pi/180} -sin --round #@gmic roundify : gamma>=0 #@gmic : Apply roundify transformation on float-valued data, with specified gamma. #@gmic : Default value: 'gamma=0'. #@gmic : $ 1000 -fill '4*x/w' -repeat 5 --roundify[0] {$>*0.2} -done -append c -display_graph 400,300 roundify : -check $1>=0 -e[^-1] "Roundify image$?, with gamma $1." -if {$1==1} -return -endif -v - -repeat @# -l[$>] --round 1 --[-2] [-1] --*[-2] 2 -abs[-1] -^[-1] $1 -sign[-3] -*[-3,-1] -*[-2] 0.5 -+ -endl -done -v + #@gmic = : eq. to '-set'. : (+) #@gmic set : value,_x[%],_y[%],_z[%],_c[%] : (*) #@gmic : Set pixel value in selected images, at specified coordinates. #@gmic : (eq. to '-='). #@gmic : If specified coordinates are outside the image bounds, no action is performed. #@gmic : Default values: 'x=y=z=c=0'. #@gmic : $ 2,2 -set 1,0,0 -set 2,1,0 -set 3,0,1 -set 4,1,1 #@gmic : $ image.jpg -repeat 10000 -set 255,{?(100)}%,{?(100)}%,0,{?(100)}% -done #@gmic threshold : value[%],_is_soft : (no args) : (+) #@gmic : Threshold values of selected images. #@gmic : 'soft' can be { 0=hard-thresholding | 1=soft-thresholding }. #@gmic : (noargs) runs interactive mode (uses the instant window [0] if opened). #@gmic : Default value: 'is_soft=0'. #@gmic : $ image.jpg --threshold[0] 50% --threshold[0] 50%,1 #@gmic t2 : eq. to '-threshold2'. t2 : -v - __s="$?" -v + -_threshold2 $* #@gmic threshold2 : min[%],max[%] #@gmic : Threshold selected images between the two given values. #@gmic : (eq. to '-t2'). #@gmic : $ image.jpg --threshold2 25%,75% threshold2 : -v - __s="$?" -v + -_$0 $* _threshold2 : -e[0--3] "Hard-threshold image"$__s" between values $1 and $2." -v - -repeat @# -l[$>] m=$1 M=$2 -if @{-is_percent\ $1} m={im+(iM-im)*$m} -endif -if @{-is_percent\ $2} M={im+(iM-im)*$M} -endif -- {0.5*($m+$M)} -abs -le {0.5*abs($M-$m)} -endl -done -v + #@gmic vector2tensor #@gmic : Convert selected vector fields to corresponding diffusion tensor fields. vector2tensor : -e[^-1] "Convert vector field$? to diffusion tensor field$?." -v - -repeat @# -l[$>] -s c -if {@#==2} --sqr[-1] -*[-2] [-3] -sqr[-3] -elif {@#==3} --sqr[-2] --*[-3] [-2] --sqr[-3] -*[-5,-4] [-6] -sqr[-6] -else -error[0--4] "Invalid image ["{@#-$>-1}"] : Dimensions "{w}","{h}","{d}","{s}" does not represent a field of 2d or 3d vectors." -endif -a c -endl -done -v + #--------------------------------- # #@gmic :: Colors manipulation # #--------------------------------- #@gmic apply_channels : "command",_channels={ all=0 | rgba=1 | rgb=2 | y=3 | cbcr=4 | cb=5 | cr=6 | l=7 | ab=8 | a=9 | b=10 | h=11 | s=12 | v=13 | k=14 | cg=15 | ch=16 | c=17 | H=18 | r=19 | g=20 | b=21 | alpha==22 },_normalize={ 0=cut | 1=normalize } #@gmic : Apply specified command on chosen normalized channels of each selected images. #@gmic : Default value: 'normalize=0'. #@gmic : $ image.jpg --apply_channels "-equalize 256 -blur 2",5 apply_channels : -skip ${3=0} # All components. -if {{$2'=='all}" || "{$2'=='0}} -e[^-1] "Apply command '$1' on image$?." -v - -repeat @# -l[$>] -_apply_channels "$1" -if $3 -n 0,255 -else -c 0,255 -endif -endl -done # RGBA. -elif {{$2'=='rgba}" || "{$2'=='1}} -e[^-1] "Apply command '$1' on RGBA channels of image$?." -v - -to_rgba -repeat @# -l[$>] -_apply_channels "$1" -if $3 -n 0,255 -else -c 0,255 -endif -endl -done # RGB. -elif {{$2'=='rgb}" || "{$2'=='2}} -e[^-1] "Apply command '$1' on RGB channels of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -_apply_channels[0] "$1" -if $3 -n[0] 0,255 -else -c[0] 0,255 -endif -to_rgb[0] -a c -endl -done # Y. -elif {{$2'=='y}" || "{$2'=='3}} -e[^-1] "Apply command '$1' on luminance Y of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2ycbcr[0] -s[0] c -_apply_channels[0] "$1" -channels[0] 0 -if $3 -n[0] 0,255 -else -c[0] 0,255 -endif -a[0-2] c -ycbcr2rgb[0] -a c -endl -done # CbCr. -elif {{$2'=='cbcr}" || "{$2'=='4}} -e[^-1] "Apply command '$1' on blue and red chrominances CbCr of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2ycbcr[0] -s[0] c -a[1,2] c -_apply_channels[1] "$1" -channels[1] 0,1 -if $3 -n[1] 0,255 -else -c[1] 0,255 -endif -a[0-1] c -ycbcr2rgb[0] -a c -endl -done # Cb. -elif {{$2'=='cb}" || "{$2'=='5}} -e[^-1] "Apply command '$1' on blue chrominance Cb of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2ycbcr[0] -s[0] c -_apply_channels[1] "$1" -channels[1] 0 -if $3 -n[1] 0,255 -else -c[1] 0,255 -endif -a[0-2] c -ycbcr2rgb[0] -a c -endl -done # Cr. -elif {{$2'=='cr}" || "{$2'=='6}} -e[^-1] "Apply command '$1' on red chrominance Cr of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2ycbcr[0] -s[0] c -_apply_channels[2] "$1" -channels[2] 0 -if $3 -n[2] 0,255 -else -c[2] 0,255 -endif -a[0-2] c -ycbcr2rgb[0] -a c -endl -done # L. -elif {{$2'=='l}" || "{$2'=='7}} -e[^-1] "Apply command '$1' on lightness L of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lab[0] -s[0] c -*[0] 2.55 -_apply_channels[0] "$1" -channels[0] 0 -/[0] 2.55 -if $3 -n[0] 0,100 -else -c[0] 0,100 -endif -a[0-2] c -lab2rgb[0] -a c -endl -done # a-b. -elif {{$2'=='ab}" || "{$2'=='8}} -e[^-1] "Apply command '$1' on a-b channels of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lab[0] -s[0] c -+[1] 86 -*[1] 1.38587 -+[2] 108 -*[2] 1.25616 -a[1,2] c -_apply_channels[1] "$1" -channels[1] 0,1 -s[1] c -/[1] 1.38587 --[1] 86 -/[2] 1.25616 --[2] 108 -if $3 -n[1] -86,98 -n[2] -108,95 -endif -a[0-2] c -lab2rgb[0] -a c -endl -done # a. -elif {{$2'=='a}" || "{$2'=='9}} -e[^-1] "Apply command '$1' on a-channel of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lab[0] -s[0] c -+[1] 86 -*[1] 1.38587 -_apply_channels[1] "$1" -channels[1] 0 -/[1] 1.38587 --[1] 86 -if $3 -n[1] -86,98 -endif -a[0-2] c -lab2rgb[0] -a c -endl -done # b. -elif {{$2'=='b}" || "{$2'=='10}} -e[^-1] "Apply command '$1' on b-channel of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lab[0] -s[0] c -+[2] 108 -*[2] 1.25616 -_apply_channels[2] "$1" -channels[2] 0 -/[2] 1.25616 --[2] 108 -if $3 -n[1] -108,95 -endif -a[0-2] c -lab2rgb[0] -a c -endl -done # H. -elif {{$2'=='h}" || "{$2'=='11}} -e[^-1] "Apply command '$1' on hue H of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2hsv[0] -s[0] c -*[0] 0.708333 -_apply_channels[0] "$1" -channels[0] 0 -/[0] 0.708333 -if $3 -n[0] 0,360 -else -%[0] 360 -endif -a[0-2] c -hsv2rgb[0] -a c -endl -done # S. -elif {{$2'=='s}" || "{$2'=='12}} -e[^-1] "Apply command '$1' on saturation S of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2hsv[0] -s[0] c -*[1] 255 -_apply_channels[1] "$1" -channels[1] 0 -/[1] 255 -if $3 -n[1] 0,1 -else -c[1] 0,1 -endif -a[0-2] c -hsv2rgb[0] -a c -endl -done # V. -elif {{$2'=='v}" || "{$2'=='13}} -e[^-1] "Apply command '$1' on value V of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2hsv[0] -s[0] c -*[2] 255 -_apply_channels[2] "$1" -channels[2] 0 -/[2] 255 -if $3 -n[2] 0,1 -else -c[2] 0,1 -endif -a[0-2] c -hsv2rgb[0] -a c -endl -done # K. -elif {{$2'=='k" || "{$2'=='14}} -e[^-1] "Apply command '$1' on key channel K of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2cmyk[0] -s[0] c -_apply_channels[3] "$1" -channels[3] 0 -if $3 -n[3] 0,255 -else -c[3] 0,255 -endif -a[0-3] c -cmyk2rgb[0] -a c -endl -done # Cg. -elif {{$2'=='cg}" || "{$2'=='15}} -e[^-1] "Apply command(s) '$1' on green chrominance Cg of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -s[0] c -rv[1,2] -a[0-2] c -rgb2ycbcr[0] -s[0] c -_apply_channels[1] "$1" -channels[1] 0 -if $3 -n[1] 0,255 -else -c[1] 0,255 -endif -a[0-2] c -ycbcr2rgb[0] -s[0] c -rv[1,2] -a c -endl -done # c-h. -elif {{$2'=='ch}" || "{$2'=='16}} -e[^-1] "Apply command '$1' on c-h channels of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lch[0] -s[0] c -*[1] 2.55 -+[2] {pi} -*[2] {255/(2*pi)} -a[1,2] c -_apply_channels[1] "$1" -channels[1] 0,1 -s[1] c -/[1] 2.55 -/[2] {255/(2*pi)} --[2] {pi} -if $3 -n[1] 0,100 -n[2] -{pi},{pi} -endif -a[0-2] c -lch2rgb[0] -a c -endl -done # c. -elif {{$2'=='c}" || "{$2'=='17}} -e[^-1] "Apply command '$1' on c-channel of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lch[0] -s[0] c -*[1] 2.55 -_apply_channels[1] "$1" -channels[1] 0 -/[1] 2.55 -if $3 -n[1] 0,100 -else -c[1] 0,100 -endif -a[0-2] c -lch2rgb[0] -a c -endl -done # H. -elif {{$2'=='h}" || "{$2'=='18}} -e[^-1] "Apply command '$1' on h-channel of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -rgb2lch[0] -s[0] c -+[2] {pi} -*[2] {255/(2*pi)} -_apply_channels[2] "$1" -channels[2] 0 -/[2] {255/(2*pi)} --[2] {pi} -if $3 -n[2] -{pi},{pi} -endif -a[0-2] c -lch2rgb[0] -a c -endl -done # Red. -elif {{$2'=='r}" || "{$2'=='19}} -e[^-1] "Apply command '$1' on red channel R of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -s[0] c -_apply_channels[0] "$1" -if $3 -n[0] 0,255 -else -c[0] 0,255 -endif -to_gray[0] -a c -endl -done # Green. -elif {{$2'=='g}" || "{$2'=='20}} -e[^-1] "Apply command '$1' on green channel G of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -s[0] c -_apply_channels[1] "$1" -if $3 -n[1] 0,255 -else -c[1] 0,255 -endif -to_gray[1] -a c -endl -done # Blue. -elif {{$2'=='b}" || "{$2'=='21}} -e[^-1] "Apply command '$1' on blue channel B of image$?." -v - -repeat @# -l[$>] -split_opacity -to_rgb[0] -s[0] c -_apply_channels[2] "$1" -if $3 -n[2] 0,255 -else -c[2] 0,255 -endif -to_gray[2] -a c -endl -done # Alpha. -elif {{$2'=='alpha}" || "{$2'=='22}} -e[^-1] "Apply command '$1' on alpha channel A of image$?." -v - -repeat @# -l[$>] -to_rgba -s c -_apply_channels[3] "$1" -if $3 -n[3] 0,255 -else -c[3] 0,255 -endif -to_gray[3] -a c -endl -done -endif -v + _apply_channels : $* -k[0] #@gmic autoindex : nb_colors>0,0<=_dithering<=1,_method={ 0=median-cut | 1=k-means } #@gmic : Index selected vector-valued images by adapted colormaps. #@gmic : Default values: 'dithering=0' and 'method=0'. #@gmic : $ image.jpg --autoindex[0] 4 --autoindex[0] 8 --autoindex[0] 16 autoindex : -check "isint($1) && $1>0 && ${2=0}>=0" -skip ${3=0} -e[^-1] "Index colors in images$? by adapted colormap with $1 entries, dithering level $2 and "\ @{-arg\ 1+!$3,k-means,median-cut}" method." -v - -repeat @# -l[$>] -if {w>h} -if {w>256} --r2dx 256 -else [0] -endif -else -if {h>256} --r2dy 256 -else [0] -endif -endif -colormap[1] $1,$3,0 -index[0] [1],$2,1 -rm[1] -endl -done -v + #@gmic bayer2rgb : _GM_smoothness,_RB_smoothness1,_RB_smoothness2 #@gmic : Transform selected RGB-Bayer sampled images to color images. #@gmic : Default values: 'GM_smoothness=RB_smoothness=1' and 'RB_smoothness2=0.5'. #@gmic : $ image.jpg -rgb2bayer 0 --bayer2rgb 1,1,0.5 bayer2rgb : -skip ${1=1},${2=1},${3=0.5} -e[^-1] "Transform RGB-Bayer image$? to color images, with smoothness ($1,$2,$3)." -v - -channels 0 -repeat @# -l[$>] # Expand image size to avoid problems with borders. -expand_x {"2 + 4*$1"},0 -expand_y {"2 + 4*$1"},0 # Compute green-magenta chromaticity. (-1,1;1,-1) -r[-1] [-2],[-2],1,1,0,2 --*[-2] [-1] (0.25,0.5,0.25) -convolve[-2] [-1] -transpose[-1] -convolve[-2] [-1] -rm[-1] -b[-1] $1 -*[-2] [-1] --[-3,-2] # Compute red-blue chromaticity. (1,-1) -r[-1] [-2],[-2],1,1,0,2 # Horizontal estimate -*[-1] [-3] (0.25,0.5,0.25) -convolve[-2] [-1] -transpose[-1] -convolve[-2] [-1] -rm[-1] -blur_y[-1] $2 -blur_x[-1] $3 (1;-1) -r[-1] [-2],[-2],1,1,0,2 # Vertical estimate -*[-1] [-4] (0.25,0.5,0.25) -convolve[-2] [-1] -transpose[-1] -convolve[-2] [-1] -rm[-1] -blur_x[-1] $2 -blur_y[-1] $3 -+[-2,-1] -/[-1] 2 # Luminance reconstruction. (2,0;0,-2) -r[-1] [-2],[-2],1,1,0,2 -*[-1] [-2] --[-4,-1] # RGB reconstruction. -a[-3--1] c -mix_rgb[-1] 1,-1,2,1,1,0,1,-1,-2 # Shrink to original image size. -shrink_x {"2 + 4*$1"},0 -shrink_y {"2 + 4*$1"},0 -c 0,255 -endl -done -v + #@gmic cmy2rgb #@gmic : Convert selected images from CMY to RGB colorbases. cmy2rgb : -e[^-1] "Convert image$? from CMY to RGB color bases." -v - -rgb2cmy -v + #@gmic cmyk2rgb #@gmic : Convert selected images from CMYK to RGB colorbases. cmyk2rgb : -e[^-1] "Convert image$? from CMYK to RGB color bases." -v - -repeat @# -l[$>] -s c --/[-1] -255 -+[-1] 1 -*[0-2] [-1] -rm[-1] -+[0-2] [-1] -rm[-1] -a c -cmy2rgb -endl -done -v + #@gmic colormap : nb_levels>=1,_method={ 0=median-cut | 1=k-means },_sort_vectors={ 0 | 1 } #@gmic : Estimate best-fitting colormap with 'nb_colors' entries, to index selected images. #@gmic : Default value: 'method=0' and 'sort_vectors=1'. #@gmic : $ image.jpg --colormap[0] 4 --colormap[0] 8 --colormap[0] 16 colormap : -check "isint($1) && $1>0" -skip ${2=0},${3=1} -e[^-1] "Estimate colormap with $1 entries for image$?, by "@{-arg\ 1+!$2,k-means,median-cut}" method." -v - -repeat @# -l[$>] -r {w*h},1,1,100%,-1 -if {!$2} -_colormap $1 # Just run the median-cut algorithm. -else m={im} M={iM} -n[-1] 0,255 # Keep track of the initial statistics. --_colormap $1 --index[-2] [-1] -*[-1] 256 -+[-3,-1] # Initialize k-means labels and add them on the image. # Start k-means iterations. -do -repeat {s} # Estimate new colormap. -sh[0] $>,$> --histogram[-1] {$1*256},0,{$1*256-1} -rm[-2] -i[-2] 256,1,1,1,'x' -r[-2] {w},1,1,1,0,2 -*[-2] [-1] -r[-2,-1] $1,1,1,1,2 -max[-1] 0.01 -/[-2,-1] -done -a[2--1] c --[-2] [-1] -abs[-2] diff={@{-2,+}/w} -rm[-2] # Compute colormap difference. -and[-2] 255 --index[-2] [-1],0,0 -*[-1] 256 -+[-3,-1] # Compute new k-means labels. -while {$diff>0.5} -rm[-2] -*[-1] {($M-$m)/255} -+[-1] $m # Convert colormap values back to initial value range. -endif -if $3 --norm -rv -a y -sort +,x -rows 1 -endif # Sort colors by increasing norm. -nm "[colormap of "@{-1,b}"]" -endl -done -v + _colormap : # Implementation of the median-cut algorithm. -repeat {$1-1} @#,{s} -repeat {@#-1} # Compute box variances along all axes and find highest one (without a single element). n=$> -repeat @{$n,s} -sh[$n] $>,$> -=[-2] {if(w>1,iv,-1)},$n,$> -rm[-1] -done -done c=@{-1,C} b=@{-arg\ 1,$c} # Indice of box with highest variance. a=@{-arg\ 2,$c} # Indice of axe with highest variance inside box 'b'. -rm[-1] -shift[$b] 0,0,0,{-$a},2 -sort[$b] +,x -shift[$b] 0,0,0,$a,2 -s[$b] x,2 # Split selected box along its median axis. -done -r 1,1,1,100%,2 -a x # Average value in each box and append as final colormap. #@gmic compose_channels #@gmic : Compose all channels of each selected image, using specified arithmetic operator (+,-,or,min,...). #@gmic : Default value: '1=+'. #@gmic : $ image.jpg --compose_channels and compose_channels : -skip ${1="+"} -e[^-1] "Compose all channels of image$?, with operator '$1'." -v - -repeat @# -l[$>] -sh 0,0 -repeat {@{-2,s}-1} -sh[-2] {$>+1},{$>+1} -l[-2,-1] -$1 -endl -done -rm[-1] -r 100%,100%,100%,1,-1 -endl -done -v + #@gmic direction2rgb #@gmic : Compute RGB representation of selected 2d direction fields. #@gmic : $ image.jpg -luminance -gradient -append c -blur 2 -orientation --direction2rgb direction2rgb : -e[^-1] "Compute RGB representation of 2d direction field$?." -v - -channels 0,1 -repeat @# -l[$>] nm=@{0,n} -s c -complex2polar -round[-2] 0.001 -*[-1] {180/pi} -%[-1] 360 100%,100%,1,1,1 -mv[-3] @# -if {im!=iM} -n[-1] 0,1 -else -f[-1] 1 -endif -a c -hsv2rgb -nm $nm,1 -endl -done -v + #@gmic ditheredbw #@gmic : Create dithered B&W version of selected images. #@gmic : $ image.jpg --equalize 256 -ditheredbw[-1] ditheredbw : -e[^-1] "Create dithered B&W version of image$?." -v - -repeat @# -l[$>] -split_opacity -luminance[0] -n[0] 0,255 (0,255) -index[0] [-1],1,1 -rm[-1] -a c -endl -done -v + #@gmic fc : eq. to '-fill_color'. fc : -v - __s="$?" -v + -_fill_color $* #@gmic fill_color : col1,...,colN #@gmic : Fill selected images with specified color. #@gmic : (eq. to '-fc'). #@gmic : $ image.jpg --fill_color 255,0,255 fill_color : -v - __s="$?" -v + -_$0 $* _fill_color : -e[0--3] "Fill image"$__s" with color (${^0})." -v - -repeat @# -l[$>] -repeat {s} -sh[-1] $>,$> -f[-1] {arg(1+$>,${^0})} -rm[-1] -done -nm @{-1,n},1 -endl -done -v + #@gmic gradient2rgb : _is_orientation={ 0 | 1 } #@gmic : Compute RGB representation of 2d gradient of selected images. #@gmic : Default value: 'is_orientation=0'. #@gmic : $ image.jpg --gradient2rgb 0 -equalize[-1] 256 gradient2rgb : -check "isbool(${1=0})" -arg 1+!$1,"orientation ","" -e[^-1] "Compute RGB representation of 2d gradient "@{}"of image$?." -v - -norm -repeat @# -l[$>] -if $1 -gradient_orientation 2 -else -g xy -endif -a c -direction2rgb -endl -done -v + #@gmic hsi2rgb : (+) #@gmic : Convert selected images from HSI to RGB colorbases. #@gmic hsi82rgb #@gmic : Convert selected images from HSI8 to RGB color bases. hsi82rgb : -e[^-1] "Convert image$? from HSI8 to RGB color bases." -v - -_hsx82rgb -hsi2rgb -v + #@gmic hsl2rgb : (+) #@gmic : Convert selected images from HSL to RGB colorbases. #@gmic hsl82rgb #@gmic : Convert selected images from HSL8 to RGB color bases. hsl82rgb : -e[^-1] "Convert image$? from HSL8 to RGB color bases." -v - -_hsx82rgb -hsl2rgb -v + #@gmic hsv2rgb : (+) #@gmic : Convert selected images from HSV to RGB colorbases. #@gmic : $ (0,360;0,360^0,0;1,1^1,1;1,1) -resize 400,400,1,3,3 -hsv2rgb #@gmic hsv82rgb #@gmic : Convert selected images from HSV8 to RGB color bases. hsv82rgb : -e[^-1] "Convert image$? from HSV8 to RGB color bases." -v - -_hsx82rgb -hsv2rgb -v + _hsx82rgb : -repeat @# -sh[$>] 0,0 -/[-1] 0.708333 -rm[-1] -sh[$>] 1,2 -/[-1] 255 -rm[-1] -done -v + #@gmic lab2lch #@gmic : Convert selected images from Lab to Lch color bases. lab2lch : -e[^-1] "Convert image$? from Lab to Lch color bases." -v - -r 100%,100%,100%,3 -repeat @# -l[$>] -s c -complex2polar[-2,-1] -a c -endl -done -v + #@gmic lab2rgb : (+) #@gmic : Convert selected images from Lab to RGB colorbases. #@gmic : $ (50,50;50,50^-3,3;-3,3^-3,-3;3,3) -resize 400,400,1,3,3 -lab2rgb #@gmic lab82rgb #@gmic : Convert selected images from Lab8 to RGB color bases. lab82rgb : -e[^-1] "Convert image$? from Lab8 to RGB color bases." -v - -repeat @# -sh[$>] 0,0 -/[-1] 2.55 -rm[-1] -sh[$>] 1,1 -/[-1] 1.275 --[-1] 100 -rm[-1] -sh[$>] 2,2 -/[-1] 1.15909 --[-1] 110 -rm[-1] -done -lab2rgb -v + #@gmic lch2lab #@gmic : Convert selected images from Lch to Lab color bases. lch2lab : -e[^-1] "Convert image$? from Lch to Lab color bases." -v - -r 100%,100%,100%,3 -repeat @# -l[$>] -s c -polar2complex[-2,-1] -a c -endl -done -v + #@gmic lch2rgb #@gmic : Convert selected images from Lch to RGB color bases. lch2rgb : -e[^-1] "Convert image$? from Lch to RGB color bases." -v - -lch2lab -lab2rgb -v + #@gmic lch82rgb #@gmic : Convert selected images from Lch8 to RGB color bases. lch82rgb : -e[^-1] "Convert image$? from Lch8 to RGB color bases." -v - -repeat @# -sh[$>] 0,0 -/[-1] 2.55 -rm[-1] -sh[$>] 1,1 -/[-1] 1.88889 -rm[-1] -sh[$>] 2,2 -/[-1] 40.5845 --[-1] 3.14159 -rm[-1] -done -lch2rgb -v + #@gmic luminance #@gmic : Compute luminance of selected sRGB images. #@gmic : $ image.jpg --luminance luminance : -e[^-1] "Compute luminance of image$?." -v - -remove_opacity -srgb2rgb -repeat @# -l[$>] -if {s==3} -sh 0,0 -sh[0] 1,1 -sh[0] 2,2 -*[1] 0.299 -*[2] 0.587 -*[3] 0.114 -+[1-3] -rm[1] -elif {s!=1} -norm -n 0,255 -endif -endl -done -channels 0 -rgb2srgb -v + #@gmic mix_rgb : a11,a12,a13,a21,a22,a23,a31,a32,a33 #@gmic : Apply 3x3 specified matrix to RGB colors of selected images. #@gmic : Default values: 'a11=1', 'a12=a13=a21=0', 'a22=1', 'a23=a31=a32=0' and 'a33=1'. #@gmic : $ image.jpg --mix_rgb 0,1,0,1,0,0,0,0,1 mix_rgb : -skip ${1=1},${2=0},${3=0},${4=0},${5=1},${6=0},${7=0},${8=0},${9=1} -e[^-1] "Apply matrix [ $1 $2 $3 ; $4 $5 $6 ; $7 $8 $9 ] to RGB colors of image$?." -v - -r 100%,100%,1,3,0,2 -mix_channels ($1,$2,$3;$4,$5,$6;$7,$8,$9) -v + #@gmic pseudogray : _max_increment>=0,_JND_threshold>=0,_bits_depth>0 #@gmic : Generate pseudogray colormap with specified increment and perceptual threshold. #@gmic : If 'JND_threshold' is 0, no perceptual constraints are applied. #@gmic : Default values: 'max_increment=5', 'JND_threshold=2.3' and 'bits_depth=8'. #@gmic : $ -pseudogray 5 pseudogray : -check "isint(${1=5}) && $1>=0 && ${2=2.3}>=0 && isint(${3=8}) && $3>0" -e[^-1] "Generate pseudogray colormap with increment $1, JND threshold $2 and $3 bits depth." -v - # Generate all possible sRGB colors with given increments. {round(2^$3)},1,1,3,'x' -if {!$1} -n[-1] 0,255 -v + -return -endif {$1+1},{$1+1},{$1+1},1,'x' --f[-1] 'y' --f[-1] 'z' -a[-3--1] c -r[-1] {w*h*d},1,1,3,-1 -f[-1] 'R=i(x,0,0,0);G=i(x,0,0,1);B=i(x,0,0,2);if(min(R,G,B),-1,i)' -permute[-1] cxyz -discard[-1] -1 -r[-1] 3,{h/3},1,1,-1 -permute[-1] yzcx -r[-2] {w*100}% -r[-1] [-2],0,2 -+[-2,-1] -f[-1] 'R=i(x,0,0,0);G=i(x,0,0,1);B=i(x,0,0,2);if(max(R,G,B)>2^$3-1,-1,i)' -permute[-1] cxyz -discard[-1] -1 -r[-1] 3,{h/3},1,1,-1 -permute[-1] yzcx -n[-1] 0,255 --srgb2rgb[-1] -rgb2lab[-1] -rv[-2,-1] -a[-2,-1] y -sort[-1] +,x # Sort by increasing lightness. -if {!$2} -rows[-1] 1 -else # Add perceptual constraint if requested. # Constraint 1 : keep colors close enough to equivalent 'pure' grays. -s[-1] y -rv[-2,-1] [-1] -sh[-1] 1,2 -f[-1] 0 -rm[-1] --[-2,-1] -norm[-1] -le[-1] $2 -*[-1] 'x+1' -discard[-1] 0 --[-1] 1 -map[-1] [-2] -rm[-2] # Constraint 2 : remove neighboring colors that are above the JND. -repeat 10000 --srgb2rgb[-1] -rgb2lab[-1] --shift[-1] 0,{1-2*($>%2)},0,0,1 --[-2,-1] -norm[-1] -le[-1] $2 -if {im} -rm[-1] -break -endif -*[-1] 'y+1' -discard[-1] 0 --[-1] 1 -map[-1] [-2] -rm[-2] -done -transpose[-1] -endif -v + #@gmic replace_color : tolerance[%]>=0,smoothness[%]>=0,src1,src2,...,dest1,dest2,... #@gmic : Replace pixels from/to specified colors in selected images. #@gmic : $ image.jpg --replace_color 40,3,204,153,110,255,0,0 replace_color : -check "$1>=0 && $2>=0" -v - -l[] (${3--1}) -y c -s c,2 col1=@0 col2=@1 -rm -endl -v + -e[^-1] "Replace color ("$col1") by color ("$col2") in image$?, with tolerance $1 and smoothness $2." -v - -repeat @# -l[$>] 1,1,1,100%,$col1 -r[1] [0] -if $1 --[1] [0] -norm[1] -le[1] $1 -else -==[1] [0] -l[1] -s c -and -endl -endif -b[1] $2 1,1,1,@{0,s},$col2 -r[2] [0] -j[0] [2],0,0,0,0,1,[1] -k[0] -endl -done -v + #@gmic rgb2bayer : _start_pattern=0,_color_grid=0 #@gmic : Transform selected color images to RGB-Bayer sampled images. #@gmic : Default values: 'start_pattern=0' and 'color_grid=0'. #@gmic : $ image.jpg --rgb2bayer 0 rgb2bayer : -skip ${1=0},${2=0} -e[^-1] "Transform image$? to a RGB-Bayer "@{-arg\ 1+!$2,color,monochrome}" grid, starting from pattern '$1'." -v - -to_rgb -repeat @# -l[$>] -_rgb2bayer$1 -r[1] [0],0,2 -* -if {!$2} -s c -+ -endif -endl -done -v + _rgb2bayer0 : (1,0;0,0^0,1;1,0^0,0;0,1) _rgb2bayer1 : (0,0;0,1^0,1;1,0^1,0;0,0) _rgb2bayer2 : (0,0;1,0^1,0;0,1^0,1;0,0) _rgb2bayer3 : (0,1;0,0^1,0;0,1^0,0;1,0) #@gmic rgb2cmy #@gmic : Convert selected images from RGB to CMY colorbases. #@gmic : $ image.jpg -rgb2cmy -split c rgb2cmy : -e[^-1] "Convert image$? from RGB to CMY color bases." -v - -to_rgb -c 0,255 -* -1 -+ 255 -v + #@gmic rgb2cmyk #@gmic : Convert selected images from RGB to CMYK colorbases. #@gmic : $ image.jpg -rgb2cmyk -split c #@gmic : $ image.jpg -rgb2cmyk -split c -fill[3] 0 -append c -cmyk2rgb rgb2cmyk : -e[^-1] "Convert image$? from RGB to CMYK color bases." -v - -rgb2cmy -repeat @# -l[$>] -s c --min --[0-2] [-1] --/[-1] 255 --[-1] 1 -*[-1] -1 --eq[-1] 0 -+[-2,-1] -/[0-2] [-1] -rm[-1] -a c -endl -done -v + #@gmic rgb2hsi : (+) #@gmic : Convert selected images from RGB to HSI colorbases. #@gmic : $ image.jpg -rgb2hsi -split c #@gmic rgb2hsi8 #@gmic : Convert selected images from RGB to HSI8 color bases. #@gmic : $ image.jpg -rgb2hsi8 -split c rgb2hsi8 : -e[^-1] "Convert image$? from RGB to HSI8 color bases." -v - -rgb2hsi -_rgb2hsx8 -v + #@gmic rgb2hsl : (+) #@gmic : Convert selected images from RGB to HSL colorbases. #@gmic : $ image.jpg -rgb2hsl -split c #@gmic : $ image.jpg -rgb2hsl --split c -add[-3] 100 -mod[-3] 360 -append[-3--1] c -hsl2rgb #@gmic rgb2hsl8 #@gmic : Convert selected images from RGB to HSL8 color bases. #@gmic : $ image.jpg -rgb2hsl8 -split c rgb2hsl8 : -e[^-1] "Convert image$? from RGB to HSL8 color bases." -v - -rgb2hsl -_rgb2hsx8 -v + #@gmic rgb2hsv : (+) #@gmic : Convert selected images from RGB to HSV colorbases. #@gmic : $ image.jpg -rgb2hsv -split c #@gmic : $ image.jpg -rgb2hsv --split c -add[-2] 0.3 -cut[-2] 0,1 -append[-3--1] c -hsv2rgb #@gmic rgb2hsv8 #@gmic : Convert selected images from RGB to HSV8 color bases. #@gmic : $ image.jpg -rgb2hsv8 -split c rgb2hsv8 : -e[^-1] "Convert image$? from RGB to HSV8 color bases." -v - -rgb2hsv -_rgb2hsx8 -v + _rgb2hsx8 : -repeat @# -sh[$>] 0,0 -*[-1] 0.708333 -rm[-1] -sh[$>] 1,2 -*[-1] 255 -rm[-1] -done #@gmic rgb2lab : (+) #@gmic : Convert selected images from RGB to Lab colorbases. #@gmic : $ image.jpg -rgb2lab -split c #@gmic : $ image.jpg -rgb2lab --split c -mul[-2,-1] 2.5 -append[-3--1] c -lab2rgb #@gmic rgb2lab8 #@gmic : Convert selected images from RGB to Lab8 color bases. #@gmic : $ image.jpg -rgb2lab8 -split c rgb2lab8 : -e[^-1] "Convert image$? from RGB to Lab8 color bases." -v - -rgb2lab -repeat @# -sh[$>] 0,0 -*[-1] 2.55 -rm[-1] -sh[$>] 1,1 -+[-1] 100 -*[-1] 1.275 -rm[-1] -sh[$>] 2,2 -+[-1] 110 -*[-1] 1.15909 -rm[-1] -done -v + #@gmic rgb2lch #@gmic : Convert selected images from RGB to Lch color bases. #@gmic : $ image.jpg -rgb2lch -split c rgb2lch : -e[^-1] "Convert image$? from RGB to Lch color bases." -v - -rgb2lab -lab2lch -v + #@gmic rgb2lch8 #@gmic : Convert selected images from RGB to Lch8 color bases. #@gmic : $ image.jpg -rgb2lch8 -split c rgb2lch8 : -e[^-1] "Convert image$? from RGB to Lch8 color bases." -v - -rgb2lch -repeat @# -sh[$>] 0,0 -*[-1] 2.55 -rm[-1] -sh[$>] 1,1 -*[-1] 1.88889 -rm[-1] -sh[$>] 2,2 -+[-1] 3.14159 -*[-1] 40.5845 -rm[-1] -done -v + #@gmic rgb2luv #@gmic : Convert selected images from RGB to LUV color bases. #@gmic : $ image.jpg -rgb2luv -split c rgb2luv : -e[^-1] "Convert image$? from RGB to LUV color bases." -v - -repeat @# -l[$>] --rgb2xyz -rgb2lab[-2] -channels[-2] 0 -s[-1] c -*[-1] 3 --*[-2] 15 -+[-2,-1] -+[-1] [-3] -+[-1] 1e-8 # Z <- X+15Y+3Z -*[-3] 4 -*[-2] 9 -/[-3,-2] [-1] -rm[-1] --[-2] 0.2009 --[-1] 0.4610 --*[-3] 13 -*[-3] [-1] -*[-2,-1] -a c -endl -done -v + #@gmic rgb2srgb : (+) #@gmic : Convert selected images from RGB to sRGB colorbases. #@gmic rgb2xyz #@gmic : Convert selected images from RGB to XYZ colorbases. #@gmic : the D65 illuminant is used as the white point). #@gmic : $ image.jpg -rgb2xyz -split c rgb2xyz : -e[^-1] "Convert image$? from RGB to XYZ color bases." -v - -/ 255 -mix_rgb 0.412453,0.357580,0.180423,0.212671,0.715160,0.072169,0.019334,0.119193,0.950227 -v + #@gmic rgb2xyz8 #@gmic : Convert selected images from RGB to XYZ8 color bases. #@gmic : $ image.jpg -rgb2xyz8 -split c rgb2xyz8 : -e[^-1] "Convert image$? from RGB to XYZ8 color bases." -v - -rgb2xyz -repeat @# -sh[$>] 0,0 -*[-1] 255 -rm[-1] -sh[$>] 1,1 -*[-1] 255 -rm[-1] -sh[$>] 2,2 -*[-1] 231.8182 -rm[-1] -done -v + #@gmic rgb2ycbcr #@gmic : Convert selected images from RGB to YCbCr colorbases. #@gmic : $ image.jpg -rgb2ycbcr -split c rgb2ycbcr : -e[^-1] "Convert image$? from RGB to YCbCr color bases." -v - -mix_rgb 66,129,25,-38,-74,112,112,-94,-18 -+ 128 -/ 256 -repeat @# -l[$>] -sh 0,0 -+[-1] 16 -rm[-1] -sh 1,2 -+[-1] 128 -rm[-1] -endl -done -v + #@gmic rgb2yuv #@gmic : Convert selected images from RGB to YUV colorbases. #@gmic : $ image.jpg -rgb2yuv -split c rgb2yuv : -e[^-1] "Convert image$? from RGB to YUV color bases." -v - -/ 255 -mix_rgb 0.299,0.587,0.114,-0.14713,-0.28886,0.436,0.615,-0.51498,-0.10001 -v + #@gmic rgb2yuv8 #@gmic : Convert selected images from RGB to YUV8 color bases. #@gmic : $ image.jpg -rgb2yuv8 -split c rgb2yuv8 : -e[^-1] "Convert image$? from RGB to YUV8 color bases." -v - -rgb2yuv -repeat @# -sh[$>] 0,0 -*[-1] 255 -rm[-1] -sh[$>] 1,1 -+[-1] 0.44 -*[-1] 289.773 -rm[-1] -sh[$>] 2,2 -+[-1] 0.62 -*[-1] 205.645 -rm[-1] -done -v + #@gmic remove_opacity #@gmic : Remove opacity channel of selected images. remove_opacity : -e[^-1] "Remove opacity channel of image$?." -v - -repeat @# -l[$>] -if {s==2} -channels 0 -elif {s==4} -channels 0,2 -endif -nm @{-1,n},1 -endl -done -v + #@gmic select_color : tolerance[%]>=0,col1,..,colN #@gmic : Select pixels with specified color in selected images. #@gmic : $ image.jpg --select_color 40,204,153,110 select_color : -skip ${1=0} -e[^-1] "Select color (${2--1}) in image$?, with tolerance $1." -v - -repeat @# -l[$>] --fc ${2--1} -- -norm -le $1 -endl -done -v + #@gmic sepia #@gmic : Apply sepia tones effect on selected images. #@gmic : $ image.jpg --sepia sepia : -e[^-1] "Apply sepia tones effect on image$?." -v - (0,44,115,143,196,244^0,20,84,119,184,235^0,5,44,73,144,200) -r[-1] 256,1,1,3,3 -repeat {@#-1} -l[$>,-1] -split_opacity -luminance[0] -map[0] [-1] -a[^-1] c -endl -done -rm[-1] -v + #@gmic solarize #@gmic : Solarize selected images. #@gmic : $ image.jpg --solarize solarize : -e[^-1] "Solarize image$?." -v - -luminance -n 0,128 -map 1 -v + #@gmic split_opacity #@gmic : Split color and opacity parts of selected images. split_opacity : -e[^-1] "Split color and opacity parts of image$?." -v - -repeat @# -l[$<] -s c,{if(s==4,-3,if(s==2,-1,-s))} -endl -done -v + #@gmic srgb2rgb : (+) #@gmic : Convert selected images from sRGB to RGB colorbases. #@gmic to_a #@gmic : Force selected images to have an alpha channel. to_a : -e[^-1] "Force image$? to have an alpha channel." -v - -repeat @# -l[$>] -if {s==1||s==3} -channels 0,{s} -sh[-1] {s-1},{s-1} -f[-1] 255 -rm[-1] -endif -endl -done -v + #@gmic to_color #@gmic : Force selected images to be in color mode (RGB or RGBA). to_color : -e[^-1] "Force image$? to be in color mode." -v - -repeat @# -l[$>] -if {s>4} -error[] "Image ["@{<,-1}"] is not a G,GA,RGB or RGBA image." -elif {s==2} -r 100%,100%,1,4,0,1,0,0,0,1 -elif {s==1} -r 100%,100%,1,3,1 -endif -endl -done -v + #@gmic to_colormode : mode={ 0=adaptive | 1=G | 2=GA | 3=RGB | 4=RGBA } #@gmic : Force selected images to be in a given color mode. #@gmic : Default value: 'mode=0'. to_colormode : -skip ${1=0} -if {$1==1} -to_gray -elif {$1==2} -to_graya -elif {$1==3} -to_rgb -elif {$1==4} -to_rgba -else s=1 -repeat @# -if {@{$>,s}>4} -error "Image ["$>"] is not a G,GA,RGB or RGBA image." -else s={max($s,@{$>,s})} -endif -done -to_colormode $s -endif #@gmic to_gray #@gmic : Force selected images to be in GRAY mode. #@gmic : $ image.jpg --to_gray to_gray : -e[^-1] "Force image$? to be in GRAY mode." -v - -repeat @# -l[$>] -if {s>4} -error[] "Image ["@{<,-1}"] is not a G,GA,RGB or RGBA image." -elif {s>=3} -channels 0,2 -luminance -elif {s==2} -r 100%,100%,100%,1,0 -endif -endl -done -v + #@gmic to_graya #@gmic : Force selected images to be in GRAYA mode. to_graya : -e[^-1] "Force image$? to be in GRAYA mode." -v - -repeat @# -l[$>] -if {s>4} -error[] "Image ["@{<,-1}"] is not a G,GA,RGB or RGBA image." -elif {s==4} --channels 3 -channels[-2] 0,2 -luminance[-2] -a c -elif {s==3} -luminance -channels 0,1 -sh[-1] 1,1 -f[-1] 255 -rm[-1] -elif {s==1} -channels 0,1 -sh[-1] 1,1 -f[-1] 255 -rm[-1] -endif -endl -done -v + #@gmic to_pseudogray : _max_step>=0,_is_perceptual_constraint={ 0 | 1 },_bits_depth>0 #@gmic : Convert selected scalar images ([0-255]-valued) to pseudo-gray color images. #@gmic : Default parameters : 'max_step=5', 'is_perceptual_constraint=1' and 'bits_depth=8'. #@gmic : The original pseudo-gray technique has been introduced by Rich Franzen [http://r0k.us/graphics/pseudoGrey.html]. #@gmic : Extension of this technique to arbitrary increments for more tones, has been done by David Tschumperle. to_pseudogray : -check "isint(${1=5}) && $1>=0 && isint(${3=8}) && $3>0" -skip ${2=1} -e[^-1] "Convert scalar image$? to pseudo-gray color images, with steps $1." -v - -channels 0 -srgb2rgb -pseudogray $1,{2.3*$2},$3 # Compute colormap with 65336 entries, to have match corresponding lightness. --srgb2rgb[-1] -rgb2lab[-1] -channels[-1] 0 -*[-1] {65535/100} -round[-1] -rows[-1] 0,2 -rv[-2,-1] -permute[-1] xcyz -+[-1] 1 -a[-2,-1] y -pointcloud[-1] 0 --norm[-1] -neq[-1] 0 -distance[-1] 1 -*[-1] -1 -watershed[-2] [-1] -rm[-1] --[-1] 1 # Map colormap to images, with lightness preservation. -repeat {@#-1} -to_rgb[$>] -rgb2lab[$>] -channels[$>] 0 -*[$>] {65535/100} -round[$>] -c[$>] 0,65535 -map[$>] [-1] -done -rm[-1] -v + #@gmic to_rgb #@gmic : Force selected images to be in RGB mode. to_rgb : -e[^-1] "Force image$? to be in RGB mode." -v - -repeat @# -l[$>] -if {s>4} -error[] "Image ["@{<,-1}"] is not a G,GA,RGB or RGBA image." -elif {s==4} -channels 0,2 -elif {s==2} -channels 0,0 -r 100%,100%,100%,3 -elif {s==1} -r 100%,100%,100%,3 -endif -endl -done -v + #@gmic to_rgba #@gmic : Force selected images to be in RGBA mode. to_rgba : -e[^-1] "Force image$? to be in RGBA mode." -v - -repeat @# -l[$>] -if {s>4} -error[] "Image ["@{<,-1}"] is not a G,GA,RGB or RGBA image." -elif {s==3} -channels 0,3 -sh[-1] 3,3 -f[-1] 255 -rm[-1] -elif {s==2} -r 100%,100%,100%,4 -sh[-1] 2,2 -f[-1] [-2] -rm[-1] -elif {s==1} -r 100%,100%,100%,4 -sh[-1] 3,3 -f[-1] 255 -rm[-1] -endif -endl -done -v + #@gmic transfer_colors : _transfer_brightness={ 0 | 1 } #@gmic : Transfer colors of the first selected image to the other ones. #@gmic : Default value: 'transfer_brightness=0'. #@gmic : $ image.jpg --rand 0,255 -reverse --transfer_colors 1 transfer_colors : -skip ${1=0} -e[^-1] "Transfer colors of image [0] to image$?." -if {@#<2} -return -endif -v - -to_rgb[0] -to_colormode[^0] {max(3,@{-max_s})} -c 0,255 # Convert all images to RGB[A] -repeat @# -l[$>] -split_opacity -rgb2ycbcr[0] -a c -endl -done # Perform RGB[A] to YCbCr[A] conversion. -l[0] -s c -histogram_cumul 256,1,0,255 -a c -* 255 -endl # Compute channel-by-channel cumulative histogram of target image. -repeat {@#-1} -l[0,-1] -if $1 -repeat 3 -sh[0,1] $>,$> -equalize[-1] 256,0,255 -index[-1] [-2],0,0 -rm[-2,-1] -done # Transfer brightness + colors. -else -repeat 2 -sh[0,1] {$>+1},{$>+1} -equalize[-1] 256,0,255 -index[-1] [-2],0,0 -rm[-2,-1] -done # Transfer colors only. -endif -endl -mv[-1] 1 -done -rm[0] -repeat @# -l[$>] -split_opacity -ycbcr2rgb[0] -a c -endl -done # Perform YCbCr[A] to RGB[A] conversion. -v + _transfer_colors : # Check transfer_colors performance. -repeat @# -l[$>] -rgb2ycbcr -s c -histogram 256,0,255 -a c -dg 300,200 -endl -done #@gmic xyz2rgb #@gmic : Convert selected images from XYZ to RGB colorbases. xyz2rgb : -e[^-1] "Convert image$? from XYZ to RGB color bases." -v - -* 255 -mix_rgb 3.240479,-1.537150,-0.498535,-0.969256,1.875992,0.041556,0.055648,-0.204043,1.057311 -c 0,255 -v + #@gmic xyz82rgb #@gmic : Convert selected images from XYZ8 to RGB color bases. xyz82rgb : -e[^-1] "Convert image$? from XYZ8 to RGB color bases." -v - -repeat @# -sh[$>] 0,0 -/[-1] 255 -rm[-1] -sh[$>] 1,1 -/[-1] 255 -rm[-1] -sh[$>] 2,2 -/[-1] 231.8182 -rm[-1] -done -xyz2rgb -v + #@gmic ycbcr2rgb #@gmic : Convert selected images from YCbCr to RGB colorbases. ycbcr2rgb : -e[^-1] "Convert image$? from YCbCr to RGB color bases." -v - -repeat @# -l[$>] -sh 0,0 --[-1] 16 -rm[-1] -sh 1,2 --[-1] 128 -rm[-1] -endl -done -mix_rgb 298,0,409,298,-100,-208,298,516,0 -+ 128 -/ 256 -c 0,255 -v + #@gmic yuv2rgb #@gmic : Convert selected images from YUV to RGB colorbases. yuv2rgb : -e[^-1] "Convert image$? from YUV to RGB color bases." -v - -mix_rgb 1,0,1.13983,1,-0.39465,-0.5806,1,2.03211,0 -* 255 -v + #@gmic yuv82rgb #@gmic : Convert selected images from YUV8 to RGB color bases. yuv82rgb : -e[^-1] "Convert image$? from YUV8 to RGB color bases." -v - -repeat @# -sh[$>] 0,0 -/[-1] 255 -rm[-1] -sh[$>] 1,1 -/[-1] 289.773 --[-1] 0.44 -rm[-1] -sh[$>] 2,2 -/[-1] 205.645 --[-1] 0.62 -rm[-1] -done -yuv2rgb -v + #--------------------------------- # #@gmic :: Geometry manipulation # #--------------------------------- #@gmic a : eq. to '-append' : (*) #@gmic append : [image],axis,_alignment : axis,_alignment : (*) #@gmic : Append specified image to selected images, or all selected images together, along specified axis. #@gmic : (eq. to '-a'). #@gmic : 'axis' can be { x | y | z | c }. #@gmic : Usual 'alignment' values are { 0=left-justified | 0.5=centered | 1=right-justified }. #@gmic : Default value: 'alignment=0'. #@gmic : $ image.jpg -split y,10 -reverse -append y #@gmic : $ image.jpg -repeat 5 --rows[0] 0,{10+18*$>}% -done -rm[0] -append x,0.5 #@gmic : $ image.jpg -append[0] [0],y #@gmic append_tiles : _M>=0,_N>=0,0<=_x_alignment<=1,0<=_y_alignment<=1 #@gmic : Append MxN selected tiles as new images. #@gmic : If 'N' is set to 0, number of rows is estimated automatically. #@gmic : If 'M' is set to 0, number of columns is estimated automatically. #@gmic : If 'M' and 'N' are both set to '0', auto-mode is used. #@gmic : If 'M' or 'N' is set to 0, only a single image is produced. #@gmic : 'x_alignment' and 'y_aligment' tells about the alignment of tiles when they have different sizes. #@gmic : Default values: 'M=0', 'N=0', 'x_alignment=y_alignment=0.5'. #@gmic : $ image.jpg -split xy,4 -append_tiles , append_tiles : -check "isint(${1=0}) && isint(${2=0}) && ${3=0.5}>=0 && $3<=1 && ${4=$3}>=0 && $4<=1" -if {!$1&&!$2} # auto-mode -v - N={int(sqrt(@#))} M={round(@#/$N,1,1)} -v + -e[0--3] "Append image$? as a "${M}x${N}"-tiled image (auto-mode)." -v - MN={$M*$N} -if {@#%$MN} {$MN-(@#%$MN)} -s[-1] x -endif -elif {!$2} # auto-rows -v - M=$1 N={round(@#/$1,1,1)} -v + -e[0--3] "Append image$? as a "${M}x${N}"-tiled image." -v - -if {$M>@#} -v + -warn[0--3] "Missing images for having one row in a "${M}x${N}"-tiled image." -return -endif -if {@#%$M} {$M-(@#%$M)} -s[-1] x -endif -elif {!$1} # auto-columns -v - M={round(@#/$2,1,1)} N=$2 -v + -e[0--3] "Append image$? as a "${M}x${N}"-tiled image." -v - -if {$N>@#} -v + -warn[0--3] "Missing images for having one column in a "${M}x${N}"-tiled image." -return -endif -if {@#%$M} {$M-(@#%$M)} -s[-1] x -endif -else -e[0--3] "Append image$?, as $1x$2-tiled images." -v - M=$1 N=$2 -endif -if {!@#} -v + -return -endif MN={$M*$N} -repeat {int(@#/$MN)} -l[$>-{$>+$MN-1}] # Resize to best match for each column and row. $MN,1,1,2 -repeat $MN -point[-1] $>,0,0,1,@{$>,w},@{$>,h} -done -r[-1] $M,$N,1,2,-1 -s[-1] c -l[-2] -s y -max -endl -l[-1] -s x -max -endl i=0 -repeat $N y=$> -repeat $M -r[$i] @{-2,$>},@{-1,$y},100%,100%,0,0,$3,$4 i={$i+1} -done -done -rm[-2,-1] # Append images together. -repeat {int(@#/$M)} -a[$>-{$>+$M-1}] x -done -repeat {int(@#/$N)} -a[$>-{$>+$N-1}] y -done -endl -done -v + #@gmic autocrop : value1,value2,... : (no args) : (*) #@gmic : Autocrop selected images by specified vector-valued intensity. #@gmic : If no arguments are provided, cropping value is guessed. #@gmic : $ 400,400,1,3 -fill_color 64,128,255 -ellipse 50%,50%,120,120,0,1,255 --autocrop #@gmic autocrop_components : _threshold[%],_min_area[%]>=0,_is_high_connectivity={ 0 | 1 },_output_type={ 0=crop | 1=segmentation | 2=coordinates } #@gmic : Autocrop and extract connected components in selected images, according to a mask given as the last channel of #@gmic : each of the selected image (e.g. alpha-channel). #@gmic : Default values: 'threshold=0%', 'min_area=0.1%', 'is_high_connectivity=0' and 'output_type=1'. #@gmic : $ 256,256 -noise 0.1,2 -dilate_circ 20 -label_fg 0,1 -n 0,255 --neq 0 -*[-1] 255 -a c --autocrop_components , autocrop_components : -skip ${1=0%} -check "${2=0.1%}>=0 && isbool(${3=0}) && isint(${4=1}) && $4>=0 && $4<=2" -e[^-1] "Autocrop connected components from image$?, with threshold $1, minimal area $2, "@{-arg\ 1+$3,low,high}" connectivity "\ "and output type set to '"@{-arg\ 1+$4,crop,segmentation,coordinates}"'.\n" -v - -repeat @# -l[$>] min_area={max(1,round(if(@{-is_percent\ $2},$2*w*h,$2)))} --channels 100% -gt[-1] $1 -area_fg[-1] 0,$3 -ge[-1] $min_area # Discard background and small objects. --area[-1] 0,1 -lt[-1] $min_area -or[-2,-1] -label_fg[-1] 0,1 # Fill small holes in objects. # Extract detected objects. N={iM} -repeat {iM} n={1+$>} -v + -e[] "\r > "$n/$N -v - -rprogress {100*$n/$N} --==[1] $n --*[0,-1] -rm[-2] -if {$4==0} coords=@{-autocrop_coords[-1]\ auto} -rm[-1] --z[0] $coords -elif {$4==1} -autocrop[-1] -else coords=@{-autocrop_coords[-1]\ auto} -rm[-1] ($coords) -y[-1] y -endif -done -rm[0,1] -if {$4==2} -a x -endif -endl -done -v + #@gmic autocrop_seq : value1,value2,... | auto #@gmic : Autocrop selected images using the crop geometry of the last one by specified vector-valued intensity, #@gmic : or by automatic guessing the cropping value. #@gmic : Default value: auto mode. #@gmic : $ image.jpg --f[-1] 0 -ellipse[-1] 50%,50%,30%,20%,0,1,1 -autocrop_seq 0 autocrop_seq : -skip ${1=auto} -e[^-1] "Auto-crop image$? using crop geometry of last image by vector '$*'." -if {!@#} -return -endif -v - -if {@#==1} -_autocrop$is_auto ${1--1} -v + -return -endif coords=@{-autocrop_coords[-1]\ ${1--1}} x0={arg(1,$coords)} y0={arg(2,$coords)} z0={arg(3,$coords)} x1={arg(4,$coords)} y1={arg(5,$coords)} z1={arg(6,$coords)} -if {$x0>$x1" || "$y0>$y1" || "$z0>$z1} -i[0--2] 0 -rm[1--1:2] -else -crop $x0,$y0,$z0,$x1,$y1,$z1 -endif -v + #@gmic channels : { [image0] | c0[%] },_{ [image1] | c1[%] } : (*) #@gmic : Keep only specified channels of selected images. #@gmic : Dirichlet boundary is used when specified channels are out of range. #@gmic : $ image.jpg -channels 0,1 #@gmic : $ image.jpg -luminance -channels 0,2 #@gmic columns : { [image0] | x0[%] },_{ [image1] | x1[%] } : (*) #@gmic : Keep only specified columns of selected images. #@gmic : Dirichlet boundary is used when specified columns are out of range. #@gmic : $ image.jpg -columns -25%,50% #@gmic z : eq. to '-crop'. : (*) #@gmic crop : x0[%],x1[%],_boundary : x0[%],y0[%],x1[%],y1[%],_boundary : x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary : x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary : (noargs) : (*) #@gmic : Crop selected images with specified region coordinates. #@gmic : (eq. to '-z'). #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : (noargs) runs interactive mode (uses the instant window [0] if opened). #@gmic : Default value: 'boundary=0'. #@gmic : $ image.jpg --crop -230,-230,280,280,1 -crop[0] -230,-230,280,280,0 #@gmic : $ image.jpg -crop 25%,25%,75%,75% #@gmic diagonal #@gmic : Transform selected vectors as diagonal matrices. #@gmic : $ 1,10,1,1,'y' --diagonal diagonal : -e[^-1] "Transform vector$? as diagonal matrix." -v - -y y -repeat @# -r[$>] @{$>,h+1},100%,1,1,0 -r[$>] @{$>,h},100%,1,1,-1 -done -v + #@gmic elevate : _depth,_is_plain,_is_colored #@gmic : Elevate selected 2d images into 3d volumes. #@gmic : Default values: 'depth=64', 'is_plain=1' and 'is_colored=1'. elevate : -check "${1=64}>0" -skip ${2=1},${3=1} -e[^-1] "Elevate 2d image$? into $1-slices volume(s)." -v - -r 100%,100%,1,100% -repeat @# -l[$>] nm=@{0,n} --norm 100%,100%,$1,{if($3,@{0,s},1)} m=@{-2,m} d={@{-2,M}-$m} -repeat $1 -if $2 --ge[1] {$m+$d*($>+1)/$1} -else --t2[1] {$m+$d*$>/$1},{$m+$d*($>+1)/$1} -endif -r[-1] 100%,100%,1,[-2] -if $3 -*[-1] [0] -endif -j[-2] [-1],0,0,$> -rm[-1] -done -rm[0,1] -nm $nm,1 -endl -done -v + #@gmic expand_x : size_x>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Expand selected images along the x-axis. #@gmic : Default value: 'border=1'. #@gmic : $ image.jpg -expand_x 30,0 expand_x : -check "$1>=0 && ${2=1}>=0 && $2<=2" -e[^-1] "Expand image$? along the x-axis with size $1 and border conditions $2." -v - -repeat @# -r[$>] @{$>,w+2*$1},100%,100%,100%,0,$2,0.5,0.5,0.5 -done -v + #@gmic expand_xy : size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Expand selected images along the xy-axes. #@gmic : Default value: 'border=1'. #@gmic : $ image.jpg -expand_xy 30,0 expand_xy : -check "$1>=0 && ${2=1}>=0 && $2<=2" -e[^-1] "Expand image$? along the xy-axes with size $1 and border conditions $2." -v - -repeat @# -r[$>] @{$>,w+2*$1},@{$>,h+2*$1},100%,100%,0,$2,0.5,0.5,0.5 -done -v + #@gmic expand_xyz : size>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Expand selected images along the xyz-axes. #@gmic : Default value: 'border=1'. expand_xyz : -check "$1>=0 && ${2=1}>=0 && $2<=2" -e[^-1] "Expand image$? along the xyz-axes with size $1 and border conditions $2." -v - -repeat @# -r[$>] @{$>,w+2*$1},@{$>,h+2*$1},@{$>,d+2*$1},100%,0,$2,0.5,0.5,0.5 -done -v + #@gmic expand_y : size_y>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Expand selected images along the y-axis. #@gmic : Default value: 'border=1'. #@gmic : $ image.jpg -expand_y 30,0 expand_y : -check "$1>=0 && ${2=1}>=0 && $2<=2" -e[^-1] "Expand image$? along the y-axis with size $1 and border conditions $2." -v - -repeat @# -r[$>] 100%,@{$>,h+2*$1},100%,100%,0,$2,0.5,0.5,0.5 -done -v + #@gmic expand_z : size_z>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Expand selected images along the z-axis. #@gmic : Default value: 'border=1'. expand_z : -check "$1>=0 && ${2=1}>=0 && $2<=2" -e[^-1] "Expand image$? along the z-axis with size $1 and border conditions $2." -v - -repeat @# -r[$>] 100%,100%,@{$>,d+2*$1},100%,0,$2,0.5,0.5,0.5 -done -v + #@gmic mirror : { x | y | z }..{ x | y | z } : (*) #@gmic : Mirror selected images along specified axes. #@gmic : $ image.jpg --mirror y --mirror[0] c #@gmic : $ image.jpg --mirror x --mirror y -append_tiles 2,2 #@gmic permute : permutation_string : (*) #@gmic : Permute selected image axes by specified permutation. #@gmic : 'permutation' is a combination of the character set {x|y|z|c}, #@gmic : e.g. 'xycz', 'cxyz', .. #@gmic : $ image.jpg -permute yxzc #@gmic r : eq. to '-resize'. : (*) #@gmic resize : [image],_interpolation,_boundary,_ax,_ay,_az,_ac : {[image_w] | width>0[%]},_{[image_h] | height>0[%]},_{[image_d] | depth>0[%]},_{[image_s] | spectrum>0[%]},_interpolation,_boundary,_ax,_ay,_az,_ac : (noargs) : (*) #@gmic : Resize selected images with specified geometry. #@gmic : (eq. to '-r'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0 or 4' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : (noargs) runs interactive mode (uses the instant window [0] if opened). #@gmic : Default values: 'interpolation=1', 'boundary=0' and 'ax=ay=az=ac=0'. #@gmic : $ image.jpg (0,1;0,1^0,0;1,1^1,1;1,1) -resize[-1] [-2],3 -mul[-2] [-1] #@gmic : $ image.jpg --resize[-1] 256,128,1,3,2 --resize[-1] 120%,120%,1,3,0,1,0.5,0.5 --resize[-1] 120%,120%,1,3,0,0,0.2,0.2 --resize[-1] [0],[0],1,3,4 #@gmic pow2 : _interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images so that each dimension is a power of 2. #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=0', 'boundary=0' and 'ax=ay=az=ac=0'. #@gmic : $ image.jpg --resize_pow2[-1] 0 resize_pow2 : -check "isint(${1=0}) && $1>=-1 && $1<=6" -skip ${2=0},${3=0},${4=0},${5=0},${6=0} -e[^-1] "Resize image$? so that each dimension is a power of 2." -v - -repeat @# -r[$>] @{$>,2^(round(log2(w),1,1))},@{$>,2^(round(log2(h),1,1))},@{$>,2^(round(log2(d),1,1))},100%,${1-6} -done -v + #@gmic rr2d : eq. to '-resize_ratio2d'. rr2d : -v - __s="$?" -v + -_resize_ratio2d $* #@gmic resize_ratio2d : width>0,height>0,_mode={ 0=inside | 1=outside | 2=padded },0=<_interpolation<=6 #@gmic : Resize selected images while preserving their aspect ratio. #@gmic : (eq. to '-rr2d'). #@gmic : Default values: 'mode=0' and 'interpolation=6'. resize_ratio2d : -v - __s="$?" -v + -_$0 $* _resize_ratio2d : -check "$1>0 && $2>0 && ${3=0}>=0 && $3<=2 && ${4=6}>=0 && $4<=6" -e[0--3] "Resize 2d image"$__s" to $1x$2 with ratio-"@{-arg\ 1+$3,inside,outside,padded}\ " mode and interpolation type $4." -v - -repeat @# ratio=@{$>,if($3==1,max($1/w,$2/h),min($1/w,$2/h))} -r[$>] @{$>,w*$ratio},@{$>,h*$ratio},100%,100%,$4 -done -if {$3==2} -r $1,$2,100%,100%,0,0,0.5,0.5 -endif -v + #@gmic r2dx : eq. to '-resize2dx'. r2dx : -v - __s="$?" -v + -_resize2dx $* #@gmic resize2dx : width>0,_interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images along the x-axis, preserving 2d ratio. #@gmic : (eq. to '-r2dx'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'. #@gmic : $ image.jpg --resize2dx 100,2 -append x resize2dx : -v - __s="$?" -v + -_$0 $* _resize2dx : -check "$1>0 && ${2=3}>=0 && $2<=6 && ${3=0}>=0 && $3<=2 && ${4=0}>=0 && $4<=1 && ${5=0}>=0 && $5<=1 && ${6=0}>=0 && $6<=1 && ${7=0}>=0 && $7<=1" -e[0--3] "Resize 2d image"$__s" to $1 pixels along the x-axis, preserving 2d ratio." -v - -repeat @# -r[$>] $1,@{$>,max(1,h*$1/w)},100%,100%,${2-7} -done -v + #@gmic r2dy : eq. to '-resize2dy'. r2dy : -v - __s="$?" -v + -_resize2dy $* #@gmic resize2dy : height>0,_interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images along the y-axis, preserving 2d ratio. #@gmic : (eq. to '-r2dy'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'. #@gmic : $ image.jpg --resize2dy 100,2 -append x resize2dy : -v - __s="$?" -v + -_$0 $* _resize2dy : -check "$1>0 && ${2=3}>=0 && $2<=6 && ${3=0}>=0 && $3<=2 && ${4=0}>=0 && $4<=1 && ${5=0}>=0 && $5<=1 && ${6=0}>=0 && $6<=1 && ${7=0}>=0 && $7<=1" -e[0--3] "Resize 2d image"$__s" to $1 pixels along the y-axis, preserving 2d ratio." -v - -repeat @# -r[$>] @{$>,max(1,w*$1/h)},$1,100%,100%,${2-7} -done -v + #@gmic r3dx : eq. to '-resize3dx'. r3dx : -v - __s="$?" -v + -_resize3dx $* #@gmic resize3dx : width>0,_interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images along the x-axis, preserving 3d ratio. #@gmic : (eq. to '-r3dx'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'. resize3dx : -v - __s="$?" -v + -_$0 $* _resize3dx : -check "$1>0 && ${2=3}>=0 && $2<=6 && ${3=0}>=0 && $3<=2 && ${4=0}>=0 && $4<=1 && ${5=0}>=0 && $5<=1 && ${6=0}>=0 && $6<=1 && ${7=0}>=0 && $7<=1" -e[0--3] "Resize 3d image"$__s" to $1 pixels along the x-axis, preserving 3d ratio." -v - -repeat @# -r[$>] $1,@{$>,max(1,h*$1/w)},@{$>,max(1,d*$1/w)},100%,${2-7} -done -v + #@gmic r3dy : eq. to '-resize3dy'. r3dy : -v - __s="$?" -v + -_resize3dy $* #@gmic resize3dy : height>0,_interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images along the y-axis, preserving 3d ratio. #@gmic : (eq. to '-r3dy'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'. resize3dy : -v - __s="$?" -v + -_$0 $* _resize3dy : -check "$1>0 && ${2=3}>=0 && $2<=6 && ${3=0}>=0 && $3<=2 && ${4=0}>=0 && $4<=1 && ${5=0}>=0 && $5<=1 && ${6=0}>=0 && $6<=1 && ${7=0}>=0 && $7<=1" -e[0--3] "Resize 3d image"$__s" to $1 pixels along the y-axis, preserving 3d ratio." -v - -repeat @# -r[$>] @{$>,max(1,w*$1/h)},$1,@{$>,max(1,d*$1/h)},100%,${2-7} -done -v + #@gmic r3dz : eq. to '-resize3dz'. r3dz : -v - __s="$?" -v + -_resize3dz $* #@gmic resize3dz : depth>0,_interpolation,_boundary,_ax,_ay,_az,_ac #@gmic : Resize selected images along the z-axis, preserving 3d ratio. #@gmic : (eq. to '-r3dz'). #@gmic : 'interpolation' can be { -1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic | 6=lanczos }. #@gmic : 'boundary' has different meanings, according to the chosen 'interpolation' mode : #@gmic : . When 'interpolation=={ -1 | 1 | 2 | 4 }', 'boundary' is meaningless. #@gmic : . When 'interpolation==0', 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : . When 'interpolation=={ 3 | 5 | 6 }', 'boundary' can be { 0=none | 1=neumann }. #@gmic : 'ax,ay,az,ac' set the alignment mode along each axis when 'interpolation=0' #@gmic : (set to '0' by default, must be defined in range [0,1]). #@gmic : Default values: 'interpolation=3', 'boundary=0' and 'ax=ay=az=ac=0'. resize3dz : -v - __s="$?" -v + -_$0 $* _resize3dz : -check "$1>0 && ${2=3}>=0 && $2<=6 && ${3=0}>=0 && $3<=2 && ${4=0}>=0 && $4<=1 && ${5=0}>=0 && $5<=1 && ${6=0}>=0 && $6<=1 && ${7=0}>=0 && $7<=1" -e[0--3] "Resize 3d image"$__s" to $1 pixels along the z-axis, preserving 3d ratio." -v - -repeat @# -r[$>] @{$>,max(1,w*$1/d)},@{$>,max(1,h*$1/d)},$1,100%,${2-7} -done -v + #@gmic rotate : angle,_interpolation,_boundary,_cx[%],_cy[%],_zoom : (*) #@gmic : Rotate selected images with specified angle (in deg.). #@gmic : 'interpolation' can be { 0=none | 1=linear | 2=bicubic }. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : When rotation center ('cx','cy') is specified, the size of the image is preserved. #@gmic : Default values: 'boundary=0', 'interpolation=1', 'cx=cy=(undefined)' and 'zoom=1'. #@gmic : $ image.jpg --rotate -25,1,2,50%,50%,0.6 -rotate[0] 25 #@gmic rotate_tileable : angle,_max_size_factor>=0 #@gmic : Rotate selected images by specified angle and make them tileable. #@gmic : If resulting size of an image is too big, the image is replaced by a 1x1 image. #@gmic : Default values: 'max_size_factor=8'. rotate_tileable : -check ${2=8}>=0 -e[^-1] "Rotate image$? with angle $1° and make them tileable." -v - # Reduce angle to known fraction. angle={$1%360} -if {$angle>=270} -rotate 270 angle={$angle-270} -elif {$angle>=180} -rotate 180 angle={$angle-180} -elif {$angle>=90} -rotate 90 angle={$angle-90} -endif (0,1;1,8;1,7;1,6;1,5;1,4;1,5;1,3;2,5;1,2;2,5;3,5;2,3;3,4;4,5;1,1;5,4;7,5;3,2;8,5;9,5;2,1;3,1;4,1;5,1;6,1;7,1;8,1) # List of known fractions. -s[-1] x,2 --/[-2,-1] -atan[-1] -*[-1] {180/pi} # Compute corresponding angles. ($angle) -index[-1] [-2] -rm[-2] p=@{-3,@-1} q=@{-2,@-1} -rm[-3--1] # Find nearest fraction p/q to atan(angle). -if {!$p||!$q} -return -endif -repeat @# -l[$>] # Compute width and height of tile. theta={atan2($p,$q)} gcd=@{-gcd" "{h*$q},{w*$p}} pw={h*$q/$gcd} nw={round($pw*w/cos($theta))} gcd=@{-gcd" "{h*$p},{w*$q}} qh={w*$q/$gcd} nh={round($qh*h/cos($theta))} # Rotate and make tileable (may result in very large images!). -if {!$2" || "($nw<$2*w" && "$nh<$2*h)} -r {1.5*$nw},{1.5*$nh},1,100%,0,2 -rotate {$theta*180/pi},1,2,50%,50% -r $nw,$nh,1,100%,0,2,0.5,0.5 -else -rm 1 -endif -endl -done -v + #@gmic rows : { [image0] | y0[%] },_{ [image1] | y1[%] } : (*) #@gmic : Keep only specified rows of selected images. #@gmic : Dirichlet boundary is used when specified rows are out of range. #@gmic : $ image.jpg -rows -25%,50% #@gmic scale2x #@gmic : Resize selected images using the Scale2x algorithm. #@gmic : $ image.jpg -threshold 50% -resize 50%,50% --scale2x scale2x : -e[^-1] "Double xy-dimensions of image$?, using Scale2x algorithm." -v - -repeat @# -l[$>] -r 200%,200% -f "dx=x&1;dy=y&1;A=j(0,-2,0,0,0,1);B=j(2,0,0,0,0,1);C=j(-2,0,0,0,0,1);D=j(0,2,0,0,0,1);"\ "!dy*(!dx*if(C==A&&C!=D&&A!=B,A,i) + dx*if(A==B&&A!=C&&B!=D,B,i)) + dy*(dx*if(B==D&&B!=A&&D!=C,D,i) + !dx*if(D==C&&D!=B&&C!=A,C,i))" -endl -done -v + #@gmic scale3x #@gmic : Resize selected images using the Scale3x algorithm. #@gmic : $ image.jpg -threshold 50% -resize 33%,33% --scale3x scale3x : -e[^-1] "Triple xy-dimensions of image$?, using Scale3x algorithm." -v - -repeat @# -l[$>] -r 300%,300% -f "dx=x%3;dy=y%3;c0=!dx;c1=(dx==1);c2=(dx==2);"\ "A=j(-3,-3,0,0,0,1);B=j(0,-3,0,0,0,1);C=j(3,-3,0,0,0,1);"\ "D=j(-3,0,0,0,0,1);F=j(3,0,0,0,0,1);"\ "G=j(-3,3,0,0,0,1);H=j(0,3,0,0,0,1);I=j(3,3,0,0,0,1);"\ "!dy*(c0*if(D==B&&D!=H&&B!=F,D,i) + c1*if((D==B&&D!=H&&B!=F&&i!=C)||(B==F&&B!=D&&F!=H&&i!=A),B,i) + c2*if(B==F&&B!=D&&F!=H,F,i)) + "\ "(dy==1)*(c0*if((H==D&&H!=F&&D!=B&&i!=A)||(D==B&&D!=H&&B!=F&&i!=G),D,i) + c1*i + c2*if((B==F&&B!=D&&F!=H&&i!=I)||(F==H&&F!=B&&H!=D&&i!=C),F,i)) + "\ "(dy==2)*(c0*if(H==D&&H!=F&&D!=B,D,i) + c1*if((F==H&&F!=B&&H!=D&&i!=G)||(H==D&&H!=F&&D!=B&&i!=I),H,i) + c2*if(F==H&&F!=B&&H!=D,F,i))" -endl -done -v + #@gmic shift : vx[%],_vy[%],_vz[%],_vc[%],_boundary : (*) #@gmic : Shift selected images by specified displacement vector. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : Default value: 'boundary=0'. #@gmic : $ image.jpg --shift[0] 50%,50%,0,0,0 --shift[0] 50%,50%,0,0,1 --shift[0] 50%,50%,0,0,2 #@gmic shrink_x : size_x>=0 #@gmic : Shrink selected images along the x-axis. #@gmic : $ image.jpg -shrink_x 30 shrink_x : -check "$1>=0" -e[^-1] "Shrink image$? along the x-axis with size $1." -v - -repeat @# -z[$>] $1,@{$>,w-$1-1} -done -v + #@gmic shrink_xy : size>=0 #@gmic : Shrink selected images along the xy-axes. #@gmic : $ image.jpg -shrink_xy 30 shrink_xy : -check "$1>=0" -e[^-1] "Shrink image$? along the xy-axes with size $1." -v - -repeat @# -z[$>] $1,$1,@{$>,w-$1-1},@{$>,h-$1-1} -done -v + #@gmic shrink_xyz : size>=0 #@gmic : Shrink selected images along the xyz-axes. shrink_xyz : -check "$1>=0" -e[^-1] "Shrink image$? along the xyz-axes with size $1." -v - -repeat @# -z[$>] $1,$1,$1,@{$>,w-$1-1},@{$>,h-$1-1},@{$>,d-$1-1} -done -v + #@gmic shrink_y : size_y>=0 #@gmic : Shrink selected images along the y-axis. #@gmic : $ image.jpg -shrink_y 30 shrink_y : -check "$1>=0" -e[^-1] "Shrink image$? along the y-axis with size $1." -v - -repeat @# -z[$>] 0,$1,100%,@{$>,h-$1-1} -done -v + #@gmic shrink_z : size_z>=0 #@gmic : Shrink selected images along the z-axis. shrink_z : -check "$1>=0" -e[^-1] "Shrink image$? along the z-axis with size $1." -v - -repeat @# -z[$>] 0,0,$1,100%,100%,@{$>,d-$1-1} -done -v + #@gmic slices : { [image0] | z0[%] },_{ [image1] | z1[%] } : (*) #@gmic : Keep only specified slices of selected images. #@gmic : Dirichlet boundary is used when specified slices are out of range. #@gmic sort : _ordering={ + | - },_axis={ x | y | z | c } : (+) #@gmic : Sort pixel values of selected images. #@gmic : If 'axis' is specified, the sorting is done according to the data of the first column/row/slice/channel #@gmic : of selected images. #@gmic : Default values: 'ordering=+' and 'axis=(undefined)'. #@gmic : $ 64 -rand 0,100 --sort -display_graph 400,300,3 #@gmic s : eq. to '-split'. : (*) #@gmic split : { x | y | z | c }..{ x | y | z | c },_nb_parts : keep_splitting_values={ + | - },value1,value2,... : (*) #@gmic : Split selected images along specified axis, or sequence of scalar values. #@gmic : (eq. to '-s'). #@gmic : 'nb_parts' can be { 0=maximum split | >0=split in N parts | <0=split in parts of size -N }. #@gmic : Default value: 'nb_parts=0'. #@gmic : $ image.jpg -split c #@gmic : $ image.jpg -split y,3 #@gmic : $ image.jpg -split x,-128 #@gmic : $ 1,20,1,1,"1,2,3,4" --split -,2,3 -append[1--1] y #@gmic split_tiles : M!=0,_N!=0,_is_homogeneous={ 0 | 1 } #@gmic : Split selected images as a MxN array of tiles. #@gmic : If M or N is negative, it stands for the tile size instead. #@gmic : Default values: 'N=M' and 'is_homogeneous=0'. #@gmic : $ image.jpg --local -split_tiles 5,4 -blur 3,0 -sharpen 700 -append_tiles 4,5 -endlocal split_tiles : -skip ${2=$1},${3=0} -if $3 -e[^-1] "Split image$? as a $1x$2 array of homogeneous tiles." -else -e[^-1] "Split image$? as a $1x$2 array of tiles." -endif -v - -repeat @# -l[$<] -s y,$2 -s x,$1 -if $3 -r [0],[0],100%,100%,0 -endif -endl -done -v + #@gmic y : eq. to '-unroll'. : (*) #@gmic unroll : axis={ x | y | z | c } : (*) #@gmic : Unroll selected images along specified axis. #@gmic : (eq. to '-y'). #@gmic : $ (1,2,3;4,5,6;7,8,9) --unroll y #@gmic upscale_smart : width,_height,_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0 #@gmic : Upscale selected images with an edge-preserving algorithm. #@gmic : Default values: 'height=100%', 'depth=100%', 'smoothness=2', 'anisotropy=0.4' and 'sharpening=10'. #@gmic : $ image.jpg -resize2dy 100 --upscale_smart 500%,500% -append x upscale_smart : -skip ${2=100%},${3=100%} -check "${4=2}>=0 && ${5=0.4}>=0 && $5<=1 && ${6=10}>=0" -e[^-1] "Upscale image$? to $1x$2x$3, with smoothness $4, anisotropy $5 and sharpening $6." -v - -repeat @# -l[$>] w={w} h={h} --r[-1] $1,$2,$3,1,0 # Compute desired dimensions. -if {w<$w" && "h<$h} # Test for downscaling -rm[-1] -r[-1] $1,$2,$3,100%,2 -else -rm[-1] --diffusiontensors 0,$5,1.2,1.2 -r[-2,-1] $1,$2,$3,100%,5 -smooth[-2] [-1],$4 -rm[-1] -apply_channels "-sharpen[-1] $6,10",3,0 -endif -endl -done -v + #@gmic warp : [warping_field],_is_relative={ 0 | 1 },_interpolation,_boundary,_nb_frames>0 : (+) #@gmic : Warp selected image with specified displacement field. #@gmic : 'interpolation' can be { 0=nearest-neighbor | 1=linear | 2=cubic }. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann | 2=cyclic }. #@gmic : Default values: 'is_relative=0', 'interpolation=1', 'boundary=1' and 'nb_frames=1'. #@gmic : $ image.jpg 100%,100%,1,2,'X=x/w-0.5;Y=y/h-0.5;R=(X*X+Y*Y)^0.5;A=atan2(Y,X);130*R*if(c==0,cos(4*A),sin(8*A))' -warp[-2] [-1],1,1,0 -quiver[-1] [-1],10,0.2,1,1,100 #--------------------------------- # #@gmic :: Filtering # #--------------------------------- #@gmic bandpass : _min_freq[%],_max_freq[%] #@gmic : Apply bandpass filter to selected images. #@gmic : Default values: 'min_freq=0' and 'max_freq=20%'. #@gmic : $ image.jpg -bandpass 1%,3% bandpass : -skip ${1=0},${2=20%} -e[^-1] "Apply bandpass filter [$1,$2] to image$?." -v - -repeat @# -l[$>] 100%,100%,100% -f[-1] "sqrt((x/w-0.5)^2 + (y/h-0.5)^2 + (z/d-0.5)^2)" -n[-1] 0,1 -t2[-1] $1,$2 -shift[-1] {int(w/2)},{int(h/2)},50%,0,2 -fft[-2] -*[-3] [-1] -*[-2,-1] -ifft -rm[-1] -endl -done -v + #@gmic bilateral : [guide],std_variation_s>0[%],std_variation_r>0 : std_variation_s>0[%],std_variation_r>0 : (+) #@gmic : Blur selected images by anisotropic (eventually joint/cross) bilateral filtering. #@gmic : If a guide image is provided, it is used for computing the smoothing geometry in the cross bilateral filter. #@gmic : A guide image must be of the same xyz-size as the selected images. #@gmic : $ image.jpg [0] -repeat 5 -bilateral[-1] 10,10 -done #@gmic b : eq. to '-blur'. : (+) #@gmic blur : std_variation>=0[%],_boundary={ 0=dirichlet | 1=neumann },_kernel={ 0=quasi-gaussian (faster) | 1=gaussian } : (+) #@gmic : Blur selected images by a quasi-gaussian or gaussian filter (recursive implementation). #@gmic : (eq. to '-b'). #@gmic : Default value: 'boundary=1' and 'kernel=0'. #@gmic : $ image.jpg --blur 5,0 --blur[0] 5,1 #@gmic blur_angular : amplitude[%],_cx,_cy #@gmic : Apply angular blur on selected images. #@gmic : Default values: 'cx=cy=0.5'. #@gmic : $ image.jpg --blur_angular 2% blur_angular : -skip ${2=0.5},${3=0.5} -e[^-1] "Apply angular blur on image$?, with amplitude $1 and center ($2,$3)." -v - -euclidean2polar $2,$3,1.3,1 -expand_y 16,2 -blur_y $1 -shrink_y 16 -polar2euclidean $2,$3,1.3,1 -v + #@gmic blur_linear : amplitude1[%],_amplitude2[%],_angle,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Apply linear blur on selected images, with specified angle and amplitudes. #@gmic : Default values: 'amplitude2=0', 'angle=0' and 'boundary=1'. #@gmic : $ image.jpg --blur_linear 10,0,45 blur_linear : -skip ${2=0},${3=0},${4=1} -e[^-1] "Apply linear blur on image$?, with angle $3° and amplitudes ($1,$2)." -v - std1={if(@{-is_percent\ $1},$1*max(w,h),$1)} std2={if(@{-is_percent\ $2},$2*max(w,h),$2)} stdM={round(1.25*max($std1,$std2))} -if {$stdM<=0} -return -endif -repeat @# -l[$>] -expand_xy $stdM,{$4!=0} {2*$stdM},{2*$stdM} -gaussian[-1] $1,$2,$3 -normalize_sum[-1] -convolve_fft -shrink_xy $stdM -endl -done -v + #@gmic blur_radial : amplitude[%],_cx,_cy #@gmic : Apply radial blur on selected images. #@gmic : Default values: 'cx=cy=0.5'. #@gmic : $ image.jpg --blur_radial 2% blur_radial : -skip ${2=0.5},${3=0.5} -e[^-1] "Apply radial blur on image$?, with amplitude $1 and center ($2,$3)." -v - -euclidean2polar $2,$3,5,1 -blur_x $1 -polar2euclidean $2,$3,5,1 -v + #@gmic blur_selective : sigma>=0,_edges>0,_nb_scales>0 #@gmic : Blur selected images using selective gaussian scales. #@gmic : Default values: 'sigma=5', 'edges=0.5' and 'nb_scales=5'. #@gmic : $ image.jpg -noise 20 -cut 0,255 --l[-1] -repeat 4 -blur_selective , -done -endl blur_selective : -check "${1=5}>=0 && ${2=0.5}>=0 && isint(${3=5}) && $3>0" -e[^-1] "Blur image$? using $3 selective gaussian scales, with sigma $1 and edges $2." -v - -repeat @# -l[$>] nm=@{0,n} --gradient_norm -+[-1] 1 -^[-1] {-max(0.01,$2)} -quantize[-1] {$3+1},0,1 -min[-1] {$3-1} -r[-1] [-2] -/[-1] 100 -repeat $3 --==[-1] {$>/100} -*[-1] [-3] -+[-2,-1] -b[-2] {$1/($3+1)} -done -rm[-2] -nm $nm,1 -endl -done -v + #@gmic blur_x : amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Blur selected images along the x-axis. #@gmic : Default value: 'boundary=1'. #@gmic : $ image.jpg --blur_x 6 blur_x : -skip ${2=1} -e[^-1] "Blur image$? along the x-axis, with sigma $1 and "@{-arg\ 1+!$2,neumann,dirichlet}" boundary conditions." -v - -deriche $1,0,x,$2 -v + #@gmic blur_xy : amplitude_x[%],amplitude_y[%],_boundary={ 0=dirichlet | 1=neumann } #@gmic : Blur selected images along the X and Y axes. #@gmic : Default value: 'boundary=1'. #@gmic : $ image.jpg --blur_xy 6 blur_xy : -skip ${2=$1},${3=1} -e[^-1] "Blur image$? along the xy-axes, with sigma $1 and "@{-arg\ 1+!$2,neumann,dirichlet}" boundary conditions." -v - -deriche $1,0,x,$3 -deriche $2,0,y,$3 -v + #@gmic blur_xyz : amplitude_x[%],amplitude_y[%],amplitude_z,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Blur selected images along the X, Y and Z axes. #@gmic : Default value: 'boundary=1'. blur_xyz : -skip ${4=1} -e[^-1] "Blur image$? along the xyz-axes, with sigma $1 and "@{-arg\ 1+!$2,neumann,dirichlet}" boundary conditions." -v - -deriche $1,0,x,$4 -deriche $2,0,y,$4 -deriche $3,0,z,$4 -v + #@gmic blur_y : amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Blur selected images along the y-axis. #@gmic : Default value: 'boundary=1'. #@gmic : $ image.jpg --blur_y 6 blur_y : -skip ${2=1} -e[^-1] "Blur image$? along the y-axis, with sigma $1 and "@{-arg\ 1+!$2,neumann,dirichlet}" boundary conditions." -v - -deriche $1,0,y,$2 -v + #@gmic blur_z : amplitude[%]>=0,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Blur selected images along the z-axis. #@gmic : Default value: 'boundary=1'. blur_z : -skip ${2=1} -e[^-1] "Blur image$? along the z-axis, with sigma $1 and "@{-arg\ 1+!$2,neumann,dirichlet}" boundary conditions." -v - -deriche $1,0,z,$2 -v + #@gmic bokeh : _amplitude>=0,_smoothness>=0,0<=_density<=100,_bokeh_size>0,0<=_bokeh_outline_size<=100,_bokeh_outline_amplitude>=0,_bokeh_smoothness>=0 #@gmic : Create a Bokeh effect from selected images. #@gmic : Default values: 'amplitude=200', 'smoothness=2', 'density=0.2', 'bokeh_size=24', 'bokeh_outline_size=10', 'bokeh_outline_amplitude=1' and 'bokeh_smoothness=0.1'. #@gmic : $ image.jpg --bokeh , bokeh : -check "${1=200}>=0 && ${2=2}>=0 && ${3=0.2}>=0 && $3<=100 && ${4=24}>0 && ${5=10}>=0 && $5<=100 && ${6=2}>=0 && ${7=1}>=0 && ${8=0.1}>=0" -e[^-1] "Apply bokeh effect to image$?, with amplitude $1, smoothness $2, density $3%, bokeh size $4, bokeh outline size $5 "\ "bokeh outline amplitude $6 and bokeh smoothness $7." -v - # Create bokeh kernel. 256,256 -=[-1] 1,50%,50% -distance[-1] 1 --lt[-1] 70% -t2[-2] 70%,{70-$5*70/100}% -*[-2] $6 -+[-2,-1] -r[-1] $4,$4,1,1,2 -expand_xy[-1] {3*$7},0 -b[-1] $7,0 --gt[-1] 0.1 -*[-2,-1] -autocrop[-1] -normalize_sum[-1] # Apply bokeh effect. -repeat {@#-1} -l[$>,-1] --remove_pixels[0] {100-$3} -convolve[-1] [-2],0 -n[-1] 0,$1 -b[0] $2 -+[0,-1] -c[0] 0,255 -endl -done -rm[-1] -v + #@gmic compose_freq #@gmic : Compose selected low and high frequency parts into new images. #@gmic : $ image.jpg -split_freq 2% -mirror[-1] x -compose_freq compose_freq : -e[^-1] "Compose low and high frequency part$? into new images." -v - -repeat {int(@#/2)} -+[$>,{$>+1}] -done -v + #@gmic convolve : [mask],_boundary,_is_normalized={ 0 | 1 } : (+) #@gmic : Convolve selected images by specified mask. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg (0,1,0;1,-4,1;0,1,0) -convolve[-2] [-1] -keep[-2] #@gmic : $ image.jpg (0,1,0) -resize[-1] 130,1,1,1,3 --convolve[0] [1] #@gmic convolve_fft #@gmic : Convolve selected images two-by-two through fourier transforms. #@gmic : $ image.jpg 100%,100% -gaussian[-1] 20,1,45 --convolve_fft convolve_fft : -e[^-1] "Convolve image$? two-by-two through fourier transforms." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] w2={int(@{0,w}/2)} h2={int(@{0,h}/2)} d2={int(@{0,d}/2)} -r[1] [0],[0],[0],1,0,0,0.5,0.5,0.5,0.5 -shift[1] -$w2,-$h2,-$d2,0,2 -fft[0] -fft[2] --*[-4] [-1] --*[-4] [-3] -+[-2,-1] -*[-5,-3] -*[-3,-2] --[-3,-2] -ifft -rm[-1] -endl -done -v + #@gmic correlate : [mask],_boundary,_is_normalized={ 0 | 1 } : (+) #@gmic : Correlate selected images by specified mask. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg (0,1,0;1,-4,1;0,1,0) -correlate[-2] [-1] -keep[-2] #@gmic : $ image.jpg --crop 40%,40%,60%,60% --correlate[0] [-1],0,1 #@gmic cross_correlation #@gmic : Compute cross-correlation using two-by-two selected images. #@gmic : $ image.jpg --shift -30,-20 -cross_correlation cross_correlation : -e[^-1] "Compute cross-correlation using two-by-two image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] -norm -fft[-2] -fft[-1] [-2,-1] -*[-2] [-5] -*[-1] [-6] --[-2,-1] -*[-5,-3] -*[-3,-2] -+[-3,-2] -ifft -rm[-1] -endl -done -v + #@gmic curvature #@gmic : Compute isophote curvatures on selected images. #@gmic : $ image.jpg -blur 10 -curvature curvature : -e[^-1] "Compute isophote curvatures on image$?." -v - -repeat @# -l[$>] -if {d==1} --g xy,0 -hessian[-3] xxxyyy # ixx ixy iyy ix iy -*[-3] [-2] -*[-4] [-1] -*[-4] -2 # ixx -2iyixy ixiyy ix iy -+[-4,-3] -*[-3] [-2] # ixx -2ixiyixy+ix^2iyy ix iy -sqr[-2,-1] -*[-4] [-1] -+[-4,-3] # iy^2ixx-2ixiyixy+ix^2iyy ix^2 iy^2 -+[-2,-1] -+[-1] 0.1 -^[-1] 1.5 -/ # (iy^2ixx+2ixiyixy+ix^2iyy)/(ix^2+iy^2) -else --inn --gradient_norm[-2] -laplacian[-3] # inn+iee inn in --[-3,-2] -+[-1] 0.1 -/[-2,-1] # iee in --inn[-1] -laplacian[-2] -- # iee/in -endif -endl -done -v + #@gmic deblur : amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={ 0=Tikhonov | 1=meancurv. | 2=TV } #@gmic : Deblur image using a regularized Jansson-Van Cittert algorithm. #@gmic : Default values: 'nb_iter=10', 'dt=20', 'regul=0.7' and 'regul_type=1'. #@gmic : $ image.jpg -blur 3 --deblur 3,40,20,0.01 deblur : -check "${2=10}>=0 && ${3=20}>=0 && ${4=0.7}>=0" -skip ${5=1} -e[^-1] "Deblur image$? with a regularized Jansson-Van Cittert algorithm, with sigma $1, $2 iterations, time step $3 and regularization $4." -v - -repeat @# -l[$>] nm=@{0,n} [0] -repeat $2 -if {$5>=2} --curvature[-1] # TV regularization. -elif {$5>=1} --iee[-1] # Meancurv. regularization. -else --laplacian[-1] # Tikhonov regularization. -endif -*[-1] $4 --b[-2] $1 --[-1] [-4] # Data fidelity term. --[-2,-1] -*[-1] {$3/(0.0001+max(abs(@{-1,m}),abs(@{-1,M})))} # Adaptive time step. -+[-2,-1] # Update image. -done -rm[-2] -nm $nm,1 -endl -done -v + #@gmic deblur_goldmeinel : sigma>=0, _nb_iter>=0, _acceleration>=0, _kernel_type={ 0=quasi-gaussian (faster) | 1=gaussian }. #@gmic : Deblur selected images using Gold-Meinel algorithm #@gmic : Default values: 'nb_iter=8', 'acceleration=1' and 'kernel_type=1'. #@gmic : $ image.jpg --blur 1 --deblur_goldmeinel[-1] 1 ###### : (contribution from Jérôme Boulanger). deblur_goldmeinel : -check "$1>=0 && ${2=8}>=0 && ${3=1}>=0" -skip ${4=1} -e[^-1] "Deblur image$? using Gold-Meinel algorithm, with sigma $1, $2 iterations, acceleration $3 and "@{-arg\ 1+!$4,"",quasi-}"gaussian kernel." -v - -repeat @# -l[$>] [0] -repeat $2 --b[-1] $1,1,$4 --/[0,-1] -rm[-2] -^[-1] $3 -*[-1,-2] # u *= f / Hu -done -rm[0] -endl -done -v + #@gmic deblur_richardsonlucy : sigma>=0, nb_iter>=0, _kernel_type={ 0=quasi-gaussian (faster) | 1=gaussian }. #@gmic : Deblur selected images using Richardson-Lucy algorithm. #@gmic : Default values: 'nb_iter=50' and 'kernel_type=1'. #@gmic : $ image.jpg --blur 1 --deblur_richardsonlucy[-1] 1 ###### : (contribution from Jérôme Boulanger). deblur_richardsonlucy : -check "$1>=0 && ${2=50}>=0" -skip ${3=1} -e[^-1] "Deblur image$? using Richardson-Lucy algorithm, with sigma $1, $2 iterations and "@{-arg\ 1+!$3,"",quasi-}"gaussian kernel." -v - -repeat @# -l[$>] [0] -repeat $2 --b[-1] $1,1,{$3!=0} --/[0,-1] -rm[-2] -b[-1] $1,1,{$3!=0} -*[-1,-2] # u *= H ( f / Hu ) -done -rm[0] -endl -done -v + #@gmic deconvolve_fft #@gmic : Deconvolve selected images two-by-two through fourier transforms. deconvolve_fft : -e[^-1] "Deconvolve image$? two-by-two through fourier transforms." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] w2={int(@{0,w}/2)} h2={int(@{0,h}/2)} d2={int(@{0,d}/2)} -r[1] [0],[0],[0],1,0,0,0.5,0.5,0.5,0.5 -shift[1] -$w2,-$h2,-$d2,0,2 -fft[0] -fft[1] # a b a' b' --sqr[-2] --sqr[-2] -+[-2,-1] -+[-1] 1e-5 # a b a' b' (a'^2+b'^2) --*[-4] [-3] # a b a' b' (a'^2+b'^2) ba' --*[-6] [-3] # a b a' b' (a'^2+b'^2) ba' ab' --[-2,-1] # a b a' b' (a'^2+b'^2) ba'-ab' -*[-6,-4] # aa' b b' (a'^2+b'^2) ba'-ab' -*[-4,-3] # aa' bb' (a'^2+b'^2) ba'-ab' -+[-4,-3] # aa'+bb' (a'^2+b'^2) ba'-ab' -/[-1] [-2] -/[-3,-2] # divide (aa'+bb') and (ba'-ab') by (a'^2+b'^2) -ifft -rm[-1] -endl -done -v + #@gmic deinterlace : _method={ 0 | 1 } #@gmic : Deinterlace selected images ('method' can be { 0=standard or 1=motion-compensated }). #@gmic : Default value: 'method=0'. #@gmic : $ image.jpg --rotate 3,1,1,50%,50% -resize 100%,50% -resize 100%,200%,1,3,4 -shift[-1] 0,1 -add --deinterlace 1 deinterlace : -skip ${1=0} -e[^-1] "Deinterlace image$? with "@{-arg\ 1+!$1,motion-compensated,standard}" method." -v - -repeat @# -l[$>] wh={w},{h} -s y -a[0--1:2] y -a[^0] y -r[-2] [-1],0 -r 100%,200%,1,100%,5 -if {$1!=0} --displacement[-1] [-2],0.05 -warp[-3] [-1],1,1,1 -rm[-1] -endif -+ -/ 2 -c 0,255 -r $wh -endl -done -v + #@gmic denoise : std_variation_s>=0,_std_variation_p>=0,_patch_size>=0,_lookup_size>=0,_smoothness,_fast_approx={ 0 | 1 } : (+) #@gmic : Denoise selected images by non-local patch averaging. #@gmic : Default values: 'std_variation_p=10', 'patch_size=5', 'lookup_size=6' and 'smoothness=1'. #@gmic : $ image.jpg --denoise 5,5,8 #@gmic denoise_haar : _threshold>=0,_nb_scales>=0,_cycle_spinning>0 #@gmic : Denoise selected image using haar-wavelet thresholding with cycle spinning. #@gmic : Set 'nb_scales==0' to automatically determine the optimal number of scales. #@gmic : Default values: 'threshold=1.4', 'nb_scale=0' and 'cycle_spinning=10'. #@gmic : $ image.jpg -noise 20 -c 0,255 --denoise_haar[-1] 0.8 denoise_haar : -check "${1=1.4}>=0 && isint(${2=0}) && $2>=0 && isint(${3=10}) && $3>0" -e[^-1] "Denoise image$? using haar-wavelet thresholding, with threshold $1, "\ @{-arg\ 1+($2>0),auto,$2}" scales and $3 spinning cycles." -v - -repeat @# -l[$>] nm=@{0,n} nb_scales={min(if($2,$2,32),int(log2(min(w,h))-1))} w={w} h={h} d={d} sigma=@{-variance_noise} -r {round(w,2^($nb_scales+1),1)},{round(h,2^($nb_scales+1),1)},{if(d==1,1,round(d,2^($nb_scales+1),1))},100%,0,0 --f 0 -repeat $3 dx={round(?(0,{4*$nb_scales}))} dy={round(?(0,{4*$nb_scales}))} dz={if($d==1,0,round(?(0,{4*$nb_scales})))} --shift[0] $dx,$dy,$dz,0,2 -haar[-1] $nb_scales -threshold[-1] {$1*$sigma},1 -ihaar[-1] $nb_scales -shift[-1] {-$dx},{-$dy},{-$dz},0,2 -+[-2,-1] -done -rm[0] -/ $3 -r $w,$h,$d,100%,0 -nm $nm,1 -endl -done -v + #@gmic deriche : std_variation>=0[%],order={ 0 | 1 | 2 },axis={ x | y | z | c },_boundary : (+) #@gmic : Apply Deriche recursive filter with specified standard deviation, order, axis and border #@gmic : conditions on selected images. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default value: 'boundary=1'. #@gmic : $ image.jpg --deriche 3,1,x #@gmic : $ image.jpg --deriche 30,0,x -deriche[-2] 30,0,y -add #@gmic dilate : size>=0 : size_x>=0,size_y>=0,size_z>=0 : [mask],_boundary,_is_normalized={ 0 | 1 } : (+) #@gmic : Dilate selected images by a rectangular or the specified structuring element. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default values: 'size_z=1', 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --dilate 10 #@gmic dilate_circ : _size>=0,_boundary,_is_normalized={ 0 | 1 } #@gmic : Apply circular dilation of selected image by specified size. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --dilate_circ 7 dilate_circ : -check $1>=0 -skip ${2=1},${3=0} -e[^-1] "Apply circular dilation of image$? by size $1, boundary $2 and is_normalized $3." -if {$1<2} -return -endif -v - -_dt_circle[] $1 -dilate[^-1] [-1],$2,$3 -rm[-1] -v + #@gmic dilate_oct : _size>=0,_boundary,_is_normalized={ 0 | 1 } #@gmic : Apply octagonal dilation of selected image by specified size. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --dilate_oct 7 dilate_oct : -check $1>=0 -skip ${2=1},${3=0} -e[^-1] "Apply octagonal dilation of image$? by size $1, boundary $2 and is_normalized $3." -v - -if {$1<2} -return -endif -if {$1&1} ss={$1} -else ss={$1+1} -endif -i[0] (0,1,0;1,1,1;0,1,0) -i[1] (1,1,1;1,1,1;1,1,1) -repeat {@#-2} r={round(($ss-1)*sqrt(2)/(1+sqrt(2))/2)} q={round(($ss-1)/(1+sqrt(2))/2)} -if {$r>0} -repeat $r -dilate[-1] [0],$2,$3 -done -endif -if {$q>0} -repeat $q -dilate[-1] [1],$2,$3 -done -endif -mv[-1] 2 -done -rm[0,1] -v + _kr_circle : -if {$1%2==0} -i 2,2,1,1,1 -else -i 1,1,1,1,1 -endif -r[-1] $1,$1,1,1,0,0,0.5,0.5 -distance[-1] 1 -round[-1] 0.5 -t2[-1] 0,{$1/2} _jf_circle : {round($1)},{round($1)} center={0.5*(w-1)} -f[-1] 'sqrt((x-$center)^2+(y-$center)^2)' -if {!(w%2)} -round[-1] 0.0001,-1 t1={sqrt(((round($1)-1)/2)^2+0.25)} t2={sqrt(((round($1)+1)/2)^2+0.25)} k={$1-round($1)+0.5} t={$t1+($t2-$t1)*$k} -t2[-1] 0,$t -else -t2[-1] 0,{$1/2-0.25} -endif _dt_circle : ir={round($1)} -if {$ir<2} $ir,$ir,1,1,1 -else {int($ir/2)+($ir%2)},{int($ir/2)+($ir%2)} -=[-1] 1,100%,100% -distance[-1] 1 -le[-1] {(i+0.4)/sqrt(2)} --mirror[-1] x -if {$ir>1&&($ir%2)} -r[-1] {w-1},100%,1,1,0,0,1 -endif -a[-2,-1] x --mirror[-1] y -if {$ir>1&&($ir%2)} -r[-1] 100%,{h-1},1,1,0,0,0,1 -endif -a[-2,-1] y -endif _dt_diamond : ir={round($1)} -if {$ir<2} $ir,$ir,1,1,1 -else {int($ir/2)+($ir%2)},{int($ir/2)+($ir%2)} -=[-1] 1,100%,100% -distance[-1] 1,1 -le[-1] {i/2} --mirror[-1] x -if {$ir>1&&($ir%2)} -r[-1] {w-1},100%,1,1,0,0,1 -endif -a[-2,-1] x --mirror[-1] y -if {$ir>1&&($ir%2)} -r[-1] 100%,{h-1},1,1,0,0,0,1 -endif -a[-2,-1] y -endif #@gmic divergence #@gmic : Compute divergence of selected vector fields. #@gmic : $ image.jpg -luminance --gradient -a[-2,-1] c -divergence[-1] divergence : -e[^-1] "Compute divergence of vector field$?." -v - -repeat @# -l[$>] -if {s==1} -g x,0 -elif {s==2} -s c -g[-2] x,0 -g[-1] y,0 -+ -elif {s==3} -s c -g[-3] x,0 -g[-2] y,0 -g[-1] z,0 -+ -else -error[] "Cannot compute divergence of image ["$>"] (has "{s}">3 channels)." -endif -endl -done -v + #@gmic dog : _sigma1>=0[%],_sigma2>=0[%] #@gmic : Compute difference of gaussian on selected images. #@gmic : Default values: 'sigma1=2%' and 'sigma2=3%'. #@gmic : $ image.jpg --dog 2,3 dog : -skip ${1=2%},${2=3%} -e[^-1] "Compute difference of gaussian on image$?, with standard deviations $1 and $2." -v - -repeat @# -l[$>] [0] -parallel "-b[0] $1","-b[1] $2" -- -norm -endl -done -v + #@gmic diffusiontensors : _sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={ 0 | 1 } #@gmic : Compute the diffusion tensors of selected images for edge-preserving smoothing algorithms. #@gmic : Default values: 'sharpness=0.7', 'anisotropy=0.3', 'alpha=0.6', 'sigma=1.1' and 'is_sqrt=0'. #@gmic : $ image.jpg -diffusiontensors 0.8 -abs -pow 0.2 diffusiontensors : -check "${1=0.7}>=0 && ${2=0.3}>=0 && $2<=1" -skip ${3=0.6},${4=1.1},${5=0} -e[^-1] "Compute diffusion tensors for image$?, with sharpness $1, anisotropy $2, alpha $3 and sigma $4." -v - p1={if($5,0.5,1)*max($1,1e-5)} p2={$p1/(1e-7+1-$2)} -b $3 -n 0,255 -structuretensors 2 -b $4 -repeat @# -l[$>] -eigen -max[-2] 0 -if {s==2} -s[-2] c -+[-3,-2] -+[-2] 1 --^[-2] -$p1 -^[-3] -$p2 -a[-3,-1] c # 2d -else -s[-2] c -+[-4--2] -+[-2] 1 --^[-2] -$p1 -r[-1] 100%,100%,100%,2 -^[-3] -$p2 -a[-3,-1] c # 3d -endif -eigen2tensor -endl -done -v + #@gmic edges : _threshold[%]>=0 #@gmic : Estimate contours of selected images. #@gmic : Default value: 'edges=15%' #@gmic : $ image.jpg --edges 15% edges : -skip ${1=15%} -e[^-1] "Estimate image contours of image$?, with threshold $1." -v - -gradient_norm -b 0.5 -ge $1 -distance 0 -equalize 256 -negative -c 30%,70% -n 0,1 -v + #@gmic eikonal : nb_iterations>=0,_band_size>=0 : (+) #@gmic : Compute iterations of the eikonal equation (signed distance function) on selected images. #@gmic : When 'band_size==0', the algorithm performs on all image pixels. #@gmic : Default value: 'band_size=0'. #@gmic : $ image.jpg -blur 3 -threshold 50% -eikonal 40 #@gmic erode : size>=0 : size_x>=0,size_y>=0,_size_z>=0 : [mask],_boundary,_is_normalized={ 0 | 1 } : (+) #@gmic : Erode selected images by a rectangular or the specified structuring element. #@gmic : boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default values: 'size_z=1', 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --erode 10 #@gmic erode_circ : _size>=0,_boundary,_is_normalized={ 0 | 1 } #@gmic : Apply circular erosion of selected images by specified size. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --erode_circ 7 erode_circ : -check $1>=0 -skip ${2=1},${3=0} -e[^-1] "Apply circular erosion of image$? by size $1, boundary $2 and is_normalized $3." -if {$1<2} -return -endif -v - -_dt_circle[] $1 -erode[^-1] [-1],$2,$3 -rm[-1] -v + #@gmic erode_oct : _size>=0,_boundary,_is_normalized={ 0 | 1 } #@gmic : Apply octagonal erosion of selected images by specified size. #@gmic : Default values: 'boundary=1' and 'is_normalized=0'. #@gmic : $ image.jpg --erode_oct 7 erode_oct : -check $1>=0 -skip ${2=1},${3=0} -e[^-1] "Apply octagonal erosion of image$? by size $1, boundary $2 and is_normalized $3." -v - -if {$1<2} -return -endif -if {$1&1} ss={$1} -else ss={$1+1} -endif -i[0] (0,1,0;1,1,1;0,1,0) -i[1] (1,1,1;1,1,1;1,1,1) -repeat {@#-2} r={round(($ss-1)*sqrt(2)/(1+sqrt(2))/2)} q={round(($ss-1)/(1+sqrt(2))/2)} -if {$r>0} -repeat $r -erode[-1] [0],$2,$3 -done -endif -if {$q>0} -repeat $q -erode[-1] [1],$2,$3 -done -endif -mv[-1] 2 -done -rm[0,1] -v + #@gmic fft : (+) #@gmic : Compute the direct fourier transform (real and imaginary parts) of selected images. #@gmic : $ image.jpg -luminance --fft -append[-2,-1] c -norm[-1] -log[-1] -shift[-1] 50%,50%,0,0,2 #@gmic : $ image.jpg -fft -shift 50%,50%,0,0,2 -ellipse 50%,50%,30,30,0,1,0 -shift -50%,-50%,0,0,2 -ifft -remove[-1] #@gmic g : eq. to '-gradient'. : (+) #@gmic gradient : { x | y | z }..{ x | y | z },_scheme : (no args) : (+) #@gmic : Compute the gradient components (first derivatives) of selected images. #@gmic : (eq. to '-g'). #@gmic : 'scheme' can be { -1=backward | 0=centered | 1=forward | 2=sobel | 3=rotation-invariant (default) | 4=deriche | 5=vanvliet }. #@gmic : (no args) compute all significant 2d/3d components. #@gmic : Default value: 'scheme=3'. #@gmic : $ image.jpg -gradient #@gmic gradient_orientation : _dimension={1,2,3} #@gmic : Compute N-d gradient orientation of selected images. #@gmic : Default value: 'dimension=3'. #@gmic : $ image.jpg --gradient_orientation 2 gradient_orientation : -check "${1=3}==1 || $1==2 || $1==3" -e[^-1] "Compute $1-d gradient orientation of image$?." -v - -repeat @# -l[$<] -if {$1==1} -g x --abs[-1] -+[-1] 1e-8 -/ -elif {$1==2} -g xy --sqr -+[-2,-1] -+[-1] 1e-8 -sqrt[-1] -/[-3] [-1] -/[-2,-1] -else -g xyz --sqr -+[-3--1] -+[-1] 1e-8 -sqrt[-1] -/[-4,-3] [-1] -/[-2,-1] -endif -endl -done -v + #@gmic gradient_norm #@gmic : Compute gradient norm of selected images. #@gmic : $ image.jpg --gradient_norm -equalize[-1] 256 gradient_norm : -e[^-1] "Compute gradient norm of image$?." -v - -repeat @# -l[$>] --g x -sqr[-1] --g[-2] y -sqr[-1] -+[-2,-1] -g[-2] z -sqr[-2] -+[-2,-1] s={s} -s[-1] c -+[-$s--1] -sqrt[-1] -endl -done -v + #@gmic haar : scale>0 #@gmic : Compute the direct haar multiscale wavelet transform of selected images. haar : -check "isint(${1=1}) && $1>=0" -e[^-1] "Compute haar transform of image$? with $1 scales." -v - -repeat @# -l[$>] -_haar -repeat {$1-1} w={max(0,round(w/2^(1+$>))-1)} h={max(0,round(h/2^(1+$>))-1)} d={max(0,round(d/2^(1+$>))-1)} --z 0,0,0,$w,$h,$d -_haar[-1] -j[-2] [-1] -rm[-1] -done -endl -done -v + _haar : # Mono-scale direct haar transform. -_haar_x -_haar_y -_haar_z _haar_x : # Direct haar transform along the x-axis. -if {w<=1} -return -endif -if {w%2} -error[0--6] "Invalid image width="{w}" (is not even)." -endif --shift -1 -r 50% ---[1] [0] -+[0,1] -/ {sqrt(2)} -a x _haar_y : # Direct haar transform along the y-axis. -if {h<=1} -return -endif -if {h%2} -error[0--6] "Invalid image height="{h}" (is not even)." -endif --shift 0,-1 -r 100%,50% ---[1] [0] -+[0,1] -/ {sqrt(2)} -a y _haar_z : # Direct haar transform along the z-axis. -if {d<=1} -return -endif -if {d%2} -error[0--6] "Invalid image depth="{h}" (is not even)." -endif --shift 0,0,-1 -r 100%,100%,50% ---[1] [0] -+[0,1] -/ {sqrt(2)} -a z #@gmic heat_flow : _nb_iter>=0,_dt,_keep_sequence={ 0 | 1 } #@gmic : Apply iterations of the heat flow on selected images. #@gmic : Default values: 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. #@gmic : $ image.jpg --heat_flow 20 heat_flow : -skip ${1=10},${2=30},${3=0} -e[^-1] "Apply $1 iterations of the heat flow on image$?, with time step $2." -v - -pde_flow $1,$2,laplacian,$3 -v + #@gmic hessian : { xx | xy | xz | yy | yz | zz }..{ xx | xy | xz | yy | yz | zz } : (no args) : (+) #@gmic : Compute the hessian components (second derivatives) of selected images. #@gmic : (no args) compute all significant components. #@gmic : $ image.jpg -hessian #@gmic iee #@gmic : Compute gradient-orthogonal-directed 2nd derivative of image(s). #@gmic : $ image.jpg -iee iee : -e[^-1] "Compute gradient-orthogonal-directed 2nd derivative of image$?." -v - -repeat @# -l[$>] -if {d==1} --g xy,0 -hessian[-3] xxxyyy # ixx ixy iyy ix iy -*[-3] [-2] -*[-4] [-1] -*[-4] -2 # ixx -2iyixy ixiyy ix iy -+[-4,-3] -*[-3] [-2] # ixx -2ixiyixy+ix^2iyy ix iy -sqr[-2,-1] -*[-4] [-1] -+[-4,-3] # iy^2ixx-2ixiyixy+ix^2iyy ix^2 iy^2 -+[-2,-1] -+[-1] 1e-8 -/ # (iy^2ixx+2ixiyixy+ix^2iyy)/(ix^2+iy^2) -else --inn -laplacian[-2] -- -endif -endl -done -v + #@gmic ifft : (+) #@gmic : Compute the inverse fourier transform (real and imaginary parts) of selected images. #@gmic ihaar : scale>0 #@gmic : Compute the inverse haar multiscale wavelet transform of selected images. ihaar : -check "isint(${1=1}) && $1>=0" -e[^-1] "Compute inverse haar transform of image$? with $1 scales." -v - -repeat @# -l[$>] -repeat {$1-1} w={max(0,round(w/2^(1+$<))-1)} h={max(0,round(h/2^(1+$<))-1)} d={max(0,round(d/2^(1+$<))-1)} --z 0,0,0,$w,$h,$d -_ihaar[-1] -j[-2] [-1] -rm[-1] -done -_ihaar -endl -done -v + _ihaar : # Mono-scale inverse haar transform. -_ihaar_x -_ihaar_y -_ihaar_z _ihaar_x : # Inverse haar transform along the x-axis. -if {w<=1} -return -endif -if {w%2} -error[0--6] "Invalid image width="{w}" (is not even)." -endif -s x,2 -r 200% (-1,1) -*[-2,-1] -+ -/ {sqrt(2)} _ihaar_y : # Inverse haar transform along the y-axis. -if {h<=1} -return -endif -if {h%2} -error "Invalid image height="{h}" (is not even)." -endif -s y,2 -r 100%,200% (-1;1) -r[-1] @{-2,w} -*[-2,-1] -+ -/ {sqrt(2)} _ihaar_z : # Inverse haar transform along the z-axis. -if {d<=1} -return -endif -if {d%2} -error "Invalid image depth="{h}" (is not even)." -endif -s z,2 -r 100%,100%,200% (-1/1) -r[-1] @{-2,w},@{-2,h} -*[-2,-1] -+ -/ {sqrt(2)} #@gmic inn #@gmic : Compute gradient-directed 2nd derivative of image(s). #@gmic : $ image.jpg -inn inn : -e[^-1] "Compute gradient-directed 2nd derivative of image$?." -v - -repeat @# -l[$>] -if {d==1} --g xy,0 -hessian[-3] xxxyyy # ixx ixy iyy ix iy -*[-5] [-2] -*[-4] [-1] -*[-4] 2 # ixixx 2iyixy iyy ix iy -+[-5,-4] -*[-4] [-2] # ix^2ixx+2ixiyixy iyy ix iy -sqr[-2,-1] -*[-3] [-1] -+[-4,-3] # ix^2ixx+2ixiyixy+iy^2iyy ix^2 iy^2 -+[-2,-1] -+[-1] 1e-8 -/ # (ix^2ixx+2ixiyixy+iy^2iyy)/(ix^2+iy^2) -else --g xyz,0 -hessian[-4] xxxyxzyyyzzz # ixx ixy ixz iyy iyz izz ix iy iz -*[-9] [-3] -*[-8] [-2] -*[-8] 2 -*[-7] [-1] -*[-7] 2 # ixixx 2iyixy 2izixz iyy iyz izz ix iy iz -+[-9--7] -*[-7] [-3] # ix^2ixx+2ixiyixy+2ixizixy iyy iyz izz ix iy iz -*[-6] [-2] -*[-5] [-1] -*[-5] 2 # ix^2ixx+2ixiyixy+2ixizixy iyiyy 2iziyz izz ix iy iz -+[-6,-5] -*[-5] [-2] -+[-6,-5] # ix^2ixx+2ixiyixy+2ixizixy+iy^2iyy+2iyiziyz izz ix iy iz -sqr[-3--1] -*[-4] [-1] -+[-5,-4] # ix^2ixx+2ixiyixy+2ixizixy+iy^2iyy+2iyiziyz+iz^2izz ix^2 iy^2 iz^2 -+[-3--1] -+[-1] 1e-8 -/ # (ix^2ixx+2ixiyixy+2ixizixy+iy^2iyy+2iyiziyz+iz^2izz)/(ix^2+iy^2+iz^2) -endif -endl -done -v + #@gmic inpaint : [mask] : (+) #@gmic : Inpaint selected images by specified mask. #@gmic : $ image.jpg 100%,100% -ellipse 50%,50%,30,30,0,1,255 -ellipse 20%,20%,30,10,0,1,255 --inpaint[-2] [-1] -remove[-2] #@gmic inpaint_flow : _nb_iter1>=0,_nb_iter2>=0,_dt>=0,_alpha,_sigma #@gmic : Apply iteration of the inpainting flow on selected images. #@gmic : Default values: 'nb_iter1=4', 'nb_iter2=15', 'dt=15', 'alpha=1' and 'sigma=3'. #@gmic : $ image.jpg 100%,100% -ellipse[-1] 30%,30%,40,30,0,1,255 -reverse -inpaint_flow , inpaint_flow : -skip ${1=4},${2=15},${3=15},${4=1},${5=3} -e[^-1] "Apply $1 iteration of the inpainting flow on image$?." -v - -norm[0] -quantize[0] 2,1,1 -n[0] 0,1 -repeat @# -if $> -l[0,$>] -r[0] [1] -inpaint[1] [0] -repeat $1 --diffusiontensors[1] 0,1,$4,$5,0 -*[2] [0] -smooth[1] [2],$2,$3,0 -rm[2] -done -endl -endif -done -v + #@gmic kuwahara : size>0 #@gmic : Apply Kuwahara filter of specified size on selected images. #@gmic : $ image.jpg --kuwahara 5 kuwahara : -check $1>0 -e[^-1] "Apply Kuwahara filter of size $1 on image$?." -v - -repeat @# -l[$>] s={s} --dilate $1 -compose_channels[-1] min --erode[0] $1 -compose_channels[-1] max --[-2,-1] $1,1,1,1,{1/$1} -convolve[0] [-1] -transpose[-1] -convolve[0] [-1] -rm[-1] p={int($1/2)} -a[-2,-1] c -f "v1=i(x-"$p",y-"$p",0,"$s",0,1); \ v2=i(x+"$p",y-"$p",0,"$s",0,1); \ v3=i(x-"$p",y+"$p",0,"$s",0,1); \ v4=i(x+"$p",y+"$p",0,"$s",0,1); \ vm=min(v1,v2,v3,v4); \ if(c>="$s",i, \ if(vm==v1,i(x-"$p",y-"$p",0,c,0,1), if(vm==v2,i(x+"$p",y-"$p",0,c,0,1), if(vm==v3,i(x-"$p",y+"$p",0,c,0,1), i(x+"$p",y+"$p",0,c,0,1)))))" -channels 0,{s-2} -endl -done -v + #@gmic laplacian #@gmic : Compute Laplacian of selected images. #@gmic : $ image.jpg -laplacian laplacian : -e[^-1] "Compute Laplacian of image $?." -v - -repeat @# -l[$>] -hessian @{-arg\ 1+(d==1),xxyyzz,xxyy} -+ -endl -done -v + #@gmic lic : _amplitude>0,_channels>0 #@gmic : Render LIC representation of selected vector fields. #@gmic : Default values: 'amplitude=30' and 'channels=1'. #@gmic : $ 400,400,1,2,'if(c==0,x-w/2,y-h/2)' --lic 200,3 -quiver[-2] [-2],10,-13,1,1,255 lic : -skip ${1=30},${2=1} -e[^-1] "Render LIC representation of 2d vector field$?, with amplitude $1 and $2 channel(s)." -v - -repeat @# -l[$>] nm=@{0,n} -channels 0,1 -/ {max(abs(@{-1,m}),abs(@{-1,M}))} -vector2tensor 100%,100%,100%,$2 -rand[-1] 0,255 -smooth[-1] [-2],$1 -rm[-2] -equalize 256 -nm $nm,1 -endl -done -v + #@gmic map_tones : _threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0 #@gmic : Apply tone mapping operator on selected images, based on Poisson equation. #@gmic : Default values: 'threshold=0.1', 'gamma=0.8', 'smoothness=0.5' and 'nb_iter=30'. #@gmic : $ image.jpg --map_tones , map_tones : -skip ${1=0.1},${2=0.8},${3=0.5},${4=30} -e[^-1] "Apply tone mapping operator on image$?, with threshold $1, gamma $2, smoothness $3 and $4 iterations." -v - -repeat @# -l[$>] # Estimate target divergence for each channel. --l -s c -repeat @# -l[$>] -g xy,1 -a c --norm -orientation[-2] m={im} M={iM} -b[-1] $3 -n[-1] $m,$M -*[-1] 'alpha=$1*iM;(alpha/(1e-10+i))*(i/(1e-10+alpha))^$2' -* -s c -g[-2] x,-1 -g[-1] y,-1 -+ -endl -done -a c -* 0.25 -endl # Start Poisson-PDE iterations -repeat $4 --laplacian[-2] -*[-1] 0.25 -+[-1] [-3] --[-1] [-2] -*[-1] 800 -+[-3,-1] -/[-2] 801 -c[-2] 0,255 -done -rm[-1] -endl -done -v + #@gmic map_tones_fast : _radius[%]>=0,_power>=0 #@gmic : Apply fast tone mapping operator on selected images. #@gmic : Default values: 'radius=3%' and 'power=0.3'. #@gmic : $ image.jpg --map_tones_fast , map_tones_fast : -check "${1=3%}>=0 && ${2=0.3}>=0" -e[^-1] "Apply fast tone mapping operator on image$?, with radius $1 and power $2." -v - -repeat @# -l[$>] --luminance -b[-1] $1 -n 0,1 --*[-1] 2 --[-1] 1 -abs[-1] -*[-1] {$2*log(10)} -exp[-1] -le[-2] 0.5 -r[-1] [-3] --*[-3] -1 -+[-1] 1 -^[-1] [-2] -*[-1] -1 -+[-1] 1 -*[-1] [-3] -^[-4,-2] -eq[-2] 0 -*[-3,-2] -+ -endl -done -n 0,255 -v + #@gmic meancurvature_flow : _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 } #@gmic : Apply iterations of the mean curvature flow on selected images. #@gmic : Default values: 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. #@gmic : $ image.jpg --meancurvature_flow 20 meancurvature_flow : -skip ${1=10},${2=30},${3=0} -e[^-1] "Apply $1 iterations of the mean curvature flow on image$?, with time step $2." -v - -pde_flow $1,$2,iee,$3 -v + #@gmic median : radius>=0 : (+) #@gmic : Apply median filter of specified radius on selected images. #@gmic : $ image.jpg --median 5 #@gmic normalize_local : _amplitude>=0,_radius>0,_n_smooth>=0[%],_a_smooth>=0[%],_is_cut={ 0 | 1 },_min=0,_max=255 #@gmic : Normalize selected images locally. #@gmic : Default values: 'amplitude=3', 'radius=16', 'n_smooth=4%', 'a_smooth=2%', 'is_cut=1', 'min=0' and 'max=255'. #@gmic : $ image.jpg --normalize_local 8,10 normalize_local : -check "${1=3}>=0 && ${2=16}>0 && isbool(${5=1})" -skip ${3=4%},${4=2%},${6=0},${7=255} -e[^-1] "Normalize image$? locally, with amplitude $1, radius $2, neighborhood smoothness $3 and average smoothness $4." -v - -repeat @# -l[$>] --l -erode {2*$2+1} -s c -min -endl --l[-2] -dilate {2*$2+1} -s c -max -endl --b[-3] $4 -b[-3,-2] $3 ---[-2] [-3] -+[-1] 0.01 --[-5] [-4] -/[-5,-1] -*[-3,-2] {$1+1} -*[-1] -$1 -+[-3] [-1] -+[-2,-1] -if $5 -max[-2] $6 -min[-1] $7 -endif --[-1] [-2] -*[-3,-1] -+ -if $5 -c $6,$7 -endif -endl -done -v + #@gmic normalized_cross_correlation #@gmic : Compute normalized cross-correlation using two-by-two selected images. #@gmic : $ image.jpg --shift -30,-20 -normalized_cross_correlation normalized_cross_correlation : -e[^-1] "Compute normalized cross-correlation using two-by-two image$?." -v - -norm -repeat {int(@#/2)} -l[$>,{$>+1}] -fft[-2] -fft[-1] [-2,-1] -mul[-2] [-5] -mul[-1] [-6] --[-2,-1] -*[-5,-3] -*[-3,-2] -+[-3,-2] [-2,-1] -a[-2,-1] c -norm[-1] -/[-3] [-1] -/[-2,-1] -ifft -rm[-1] -endl -done -v + #@gmic phase_correlation #@gmic : Estimate translation vector using two-by-two selected images. #@gmic : $ image.jpg --shift -30,-20 --phase_correlation -unroll[-1] y phase_correlation : -e[^-1] "Estimate translation vector using two-by-two image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] -normalized_cross_correlation (@{-1,C}) -*[-1] 2 -s[-1] x -rm[-1] -if {@-3>@{-4,w}} --[-3] @{-4,w} --[-3] @{-4,w} -endif -if {@-2>@{-4,h}} --[-2] @{-4,h} --[-2] @{-4,h} -endif -if {@-1>@{-4,d}} --[-1] @{-4,d} --[-1] @{-4,d} -endif -a[-3--1] c -rm[-2] -/ 2 -* -1 -nm [phase\ correlation] -endl -done -v + #@gmic pde_flow : _nb_iter>=0,_dt,_velocity_command,_keep_sequence={ 0 | 1 } #@gmic : Apply iterations of a generic PDE flow on selected images. #@gmic : Default values: 'nb_iter=10', 'dt=30', 'velocity_command=laplacian' and 'keep_sequence=0'. #@gmic : $ image.jpg --pde_flow 20 pde_flow : -skip ${1=10},${2=30},${3=laplacian},${4=0} -e[^-1] "Apply $1 iterations of the velocity flow '$3' on image$?, with time step $2." -v - -repeat @# -l[$<] -repeat $1 --$3[-1] -*[-1] {$2/(0.01+max(abs(im),abs(iM)))} -if $4 -+[-1] [-2] -else -+[-2,-1] -endif -done -if $4 -rm[0] -endif -a x -endl -done -if $4 -s x,$1 -endif -v + #@gmic red_eye : 0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1 #@gmic : Attenuate red-eye effect in selected images. #@gmic : Default values: 'threshold=75', 'smoothness=3.5' and 'attenuation=0.1'. #@gmic : $ image.jpg --red_eye , red_eye : -skip ${1=75},${2=3.5},${3=0.1} -e[^-1] "Attenuate red-eye effect in image$?, with threshold $1, smoothness $2 and attenuation $3." -v - -to_rgb -rgb2ycbcr -repeat @# -l[$>] -s c --[-1] 128 --ge[-1] $1% -b[-1] $2 -sqrt[-1] -*[-1] -1 -+[-1] 1 -n[-1] $3,1 -*[-2,-1] -+[-1] 128 -a c -ycbcr2rgb -endl -done -v + #@gmic remove_hotpixels : _mask_size>0, _threshold[%]>0 #@gmic : Remove hot pixels in selected images. #@gmic : Default values: 'mask_size=3' and 'threshold=10%'. #@gmic : $ image.jpg -noise 10,2 --remove_hotpixels , remove_hotpixels : -check ${1=3}>0 -skip ${2=10%} -e[^-1] "Remove hot pixels in image$?, with mask size $1 and threshold $2." -v - -repeat @# -l[$>] --median $1 --- -abs[-1] -ge[-1] $2 -*[-2] [-1] -==[-1] 0 -*[-3,-1] -+ -endl -done -v + #@gmic remove_pixels : density>=0,_pixel_sum>=0 #@gmic : Remove (i.e. set to 0) specified density (in percent) of non-zero pixels to 0. #@gmic : Specified density is regarded against 'pixel_sum' except if it is set to '0' #@gmic : (in this case, 'pixel_sum' has default value 'width*height'). #@gmic : Default value: 'density=10', 'pixel_sum=0'. #@gmic : $ image.jpg --remove_pixels 50 remove_pixels : -check "${1=10}>=0 && ${2=0}>=0" -e[^-1] "Remove $1% of non-zero pixels of image$?." -v - -repeat @# -l[$>] --norm -gt[-1] 0 -if $2 rate={$1*$2/max(1e-8,@{-1,+})} -else rate={$1*w*h/max(1e-8,@{-1,+})} -endif -rm[-1] 100%,100% -rand[-1] 0,1 -ge[-1] $rate% -* -endl -done -v + #@gmic repair : [mask],_patch_size>=1,_lookup_size>=1,_lookup_increment>=1,_blend_size>=0,0<=_blend_threshold<=1,_blend_decay>=0,_blend_scales>=1,_is_blend_outer={ 0 | 1 } : (+) #@gmic : Repair masked image pixels in selected images, by patch-based inpainting. #@gmic : Beware, this is a very time consuming command. #@gmic : Default values : 'patch_size=11', 'lookup_size=22', 'lookup_increment=1', 'blend_size=0', 'blend_threshold=0', 'blend_decay=0.05', 'blend_scales=10' and 'is_blend_outer=0'. #@gmic : $ image.jpg 100%,100% -circle 30%,30%,30,1,255,0,255 -circle 70%,70%,50,1,255,0,255 --repair[0] [1],17,24,2,30,0 -rm[1] #@gmic sharpen : amplitude>=0 : amplitude>=0,edge>=0,_alpha,_sigma : (+) #@gmic : Sharpen selected images by inverse diffusion or shock filters methods. #@gmic : 'edge' must be specified to enable shock-filter method. #@gmic : Default values: 'alpha=0' and 'sigma=0'. #@gmic : $ image.jpg --sharpen 300 #@gmic : $ image.jpg -blur 5 --sharpen[-1] 300,1 #@gmic smooth : amplitude>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dl>0,_da>0,_precision>0,interpolation,_fast_approx={ 0 | 1 } : nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 : [tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={ 0 | 1 } : [tensor_field],_nb_iters>=0,_dt>0,0 : (+) #@gmic : Smooth selected images anisotropically using diffusion PDE's, with specified field of #@gmic : diffusion tensors. #@gmic : 'anisotropy' must be in [0,1]. #@gmic : 'interpolation' can be { 0=nearest | 1=linear | 2=runge-kutta }. #@gmic : Default values: 'sharpness=0.7', 'anisotropy=0.3', 'alpha=0.6', 'sigma=1.1', 'dl=0.8', 'da=30', 'precision=2', 'interpolation=0' and 'fast_approx=1'. #@gmic : $ image.jpg [0] -repeat 3 -smooth[-1] 20 -done #@gmic : $ image.jpg 100%,100%,1,2 -rand[-1] -100,100 -repeat 2 -smooth[-1] 100,0.2,1,4,4 -done --warp[0] [-1],1,1 #@gmic split_freq : smoothness>0[%] #@gmic : Split selected images into low and high frequency parts. #@gmic : $ image.jpg -split_freq 2% split_freq : -e[^-1] "Split image$? into low and high frequency parts, with smoothness $1." -v - -repeat @# -l[$>] --b $1 --[0] [1] -rv -endl -done -v + #@gmic solidify #@gmic : Replace transparent regions of a RGBA image by morphologically interpolated color. #@gmic : $ image.jpg --luminance -ge[-1] 120 -*[-1] 255 -append c --solidify -display_rgba solidify : -e[^-1] "Replace transparent regions of RGBA image$? by morphologically interpolated colors." -v - -repeat @# -l[$>] nm=@{0,n} -to_a [-1] -split_opacity[-2] -ge[-2] 50% -*[-1] [-2] -replace_color[-1] 0,0,0,0,0,0,-1,-1,-1,-1 -to_rgb[-1] -do --dilate[-1] 3 -replace_color[-2] 0,0,-1,-1,-1,1000,1000,1000 -erode[-2] 3 -replace_color[-2] 0,0,1000,1000,1000,-1,-1,-1 -+[-2,-1] -/[-1] 2 -j[-1] [-3],0,0,0,0,1,[-2] -while {im<0} -k[-1] -nm $nm,1 -endl -done -v + #@gmic solidify_linear : _sigma>=1,_dsigma>=1,0<=_precision<=1 #@gmic : Replace transparent regions of a RGBA image by linearly interpolated color. #@gmic : Default values: 'sigma=1.5', 'dsigma=1' and 'precision=0.5'. #@gmic : $ image.jpg --luminance -ge[-1] 120 -*[-1] 255 -append c --solidify_linear , -display_rgba solidify_linear : -check "${1=1.5}>=1 && ${2=1}>=1 && ${3=0.5}>=0 && $3<=1" -e[^-1] "Replace transparent regions of RGBA image$? by linearly interpolated colors, with sigma $1, dsigma $2 and precision $3." -v - -repeat @# -l[$>] -split_opacity -if {@#>1} -ge[-1] 50% -*[-2] [-1] sigma=$1 -do N={v=round(3*$sigma);min(33,max(3,v+1-(v%2)))} $N,$N -=[-1] 1,50%,50% -distance[-1] 1 -*[-1] {-1/$sigma^2} -exp[-1] -normalize_sum[-1] --convolve[-3,-2] [-1] -rm[-3] -max[-1] 1e-5 -/[-2,-1] --dilate[-2] {v=round((1/3-$N/6)*$3+$N/2);max(3,v+1-(v%2))} --[-3] [-1] -*[-2] [-3] -rm[-3] --[-3,-2] sigma={$sigma*$2} -while {!im} -rm[-1] -endif -endl -done -v + #@gmic solve_poisson : "laplacian_command",_nb_iterations>=0,_time_step>0,_nb_scales>=0 #@gmic : Solve Poisson equation so that applying '-laplacian[n]' is close to the result of '-laplacian_command[n]'. #@gmic : Solving is performed using a multi-scale gradient descent algorithm. #@gmic : If 'nb_scales=0', the number of scales is automatically determined. #@gmic : Default values: 'nb_iterations=60', 'dt=5' and 'nb_scales=0'. #@gmic : $ image.jpg -m "foo : -gradient x" --solve_poisson foo --foo[0] --laplacian[1] solve_poisson : -check "${2=60}>=0 && ${3=5}>0 && ${4=0}>=0" -e[^-1] "Solve Poisson equation for image$?, for laplacian command '$1', with $2 iterations, time step $3 and "@{-arg\ 1+($4==0),$4,auto}" scales." -v - -repeat @# -l[$>] [0] -repeat {if($4,$4,int(max(log2(max(w,h))-1,1)))} f={2^$<} -r[1] @{0,max(1,w/$f)},@{0,max(1,h/$f)},1,100%,3 --r[0] [1],2 -l[-1] -$1 -k[0] -endl -repeat $2 --laplacian[-2] --[-1] [-2] -*[-1] {$3/max(1e-8,abs(im),abs(iM))} -+[-3,-1] -done -rm[-1] -done -rm[0] -endl -done -v + #@gmic structuretensors : _scheme : (+) #@gmic : Compute the structure tensor field of selected images. #@gmic : 'scheme' can be { 0=centered | 1=forward-backward1 | 2=forward-backward2 }. #@gmic : Default value: 'scheme=2'. #@gmic : $ image.jpg -structuretensors -abs -pow 0.2 #@gmic tv_flow : _nb_iter>=0,_dt,_sequence_flag={ 0 | 1 } #@gmic : Apply iterations of the total variation flow on selected images. #@gmic : Default values: 'nb_iter=10', 'dt=30' and 'keep_sequence=0'. #@gmic : $ image.jpg --tv_flow 40 tv_flow : -skip ${1=10},${2=30},${3=0} -e[^-1] "Apply $1 iterations of the total variation flow on image$?, with time step $2." -v - -pde_flow $1,$2,curvature,$3 -v + #@gmic unsharp : radius[%]>=0,_amount>=0,_threshold[%]>=0 #@gmic : Apply unsharp mask on selected images. #@gmic : Default values: 'amount=2' and 'threshold=0'. #@gmic : $ image.jpg -blur 3 --unsharp 1.5,15 -cut 0,255 unsharp : -check "${2=2}>=0" -skip ${3=0} -e[^-1] "Apply unsharp mask on image$?, with radius $1, amount $2 and threshold $3." -v - -repeat @# --b[$>] $1 --[-1] [$>] -if $3 --norm[-1] -ge[-1] $3 -*[-2,-1] -endif -*[-1] $2 --[$>,-1] -done -v + #@gmic unsharp_octave : _nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0 #@gmic : Apply octave sharpening on selected images. #@gmic : Default values: 'nb_scales=4', 'radius=1', 'amount=2' and 'threshold=0'. #@gmic : $ image.jpg -blur 3 --unsharp_octave 4,5,15 -cut 0,255 unsharp_octave : -check "${1=4}>0 && ${3=2}>=0" -skip ${2=1},${4=0} -e[^-1] "Apply octave sharpening on image$?, with $1 scales, radius $2, amount $3 and threshold $4." -v - -repeat @# -l[$>] nm=@{0,n} --f 0 weight=0 -repeat $1 --unsharp[0] {$2*2^-@{<,-1}},$3,$4 -*[-1] {2^-$>} weight={$weight+2^-$>} -+[1,-1] -done -rm[0] -/ $weight -nm $nm,1 -endl -done -v + #@gmic vanvliet : std_variation>=0[%],order={ 0 | 1 | 2 | 3 },axis={ x | y | z | c },_boundary : (+) #@gmic : Apply Vanvliet recursive filter with specified standard deviation, order, axis and border #@gmic : conditions on selected images. #@gmic : 'boundary' can be { 0=dirichlet | 1=neumann }. #@gmic : Default value: 'boundary=1'. #@gmic : $ image.jpg --vanvliet 3,1,x #@gmic : $ image.jpg --vanvliet 30,0,x -vanvliet[-2] 30,0,y -add #@gmic watermark_fourier : text,_size>0 #@gmic : Add a textual watermark in the frequency domain of selected images. #@gmic : Default value: 'size=32'. #@gmic : $ image.jpg --watermark_fourier "Watermarked!" --display_fft -remove[-3,-1] -normalize 0,255 -append[-4,-2] y -append[-2,-1] y watermark_fourier : -check ${2=32}>0 -e[^-1] "Add textual watermark '$1' with size $2 in the frequency domain of image$?." -v - -i[0] 0 -t[0] "$1",0,0,$2,1,1 -ge[0] 0.5 -autocrop[0] 0 -repeat {@#-1} w2={int(w/2)} h2={int(h/2)} -fft[-1] -shift[-2,-1] $w2,$h2,0,0,2 [0],[0],1,{s} -j[-3,-2] [-1],3,3,0,0,1,[0] -mirror[0] x -j[-3,-2] [-1],{@{-2,w}-2-@{0,w}},3,0,0,1,[0] -mirror[0] y -j[-3,-2] [-1],{@{-2,w}-2-@{0,w}},{@{-2,h}-2-@{0,h}},0,0,1,[0] -mirror[0] x -j[-3,-2] [-1],3,{@{-2,h}-2-@{0,h}},0,0,1,[0] -mirror[0] y -rm[-1] -shift[-2,-1] -$w2,-$h2,0,0,2 -ifft[-2,-1] -rm[-1] -mv[-1] 1 -done -rm[0] -v + #@gmic watershed : [priority_image],_fill_lines={ 0 | 1 } : (+) #@gmic : Compute the watershed transform of selected images. #@gmic : Default value: 'fill_lines=1'. #@gmic : $ 400,400 -noise 0.2,2 --distance 1 -mul[-1] -1 -label[-2] 0 -watershed[-2] [-1] -mod[-2] 256 -map[-2] 0 -reverse #--------------------------------- # #@gmic :: Features extraction # #--------------------------------- #@gmic area : tolerance>=0,is_high_connectivity={ 0 | 1 } #@gmic : Compute area of connected components in selected images. #@gmic : Default values: 'is_high_connectivity=0'. #@gmic : $ image.jpg -luminance -stencil[-1] 1 --area 0 area : -check "$1>=0" -skip ${2=0} -e[^-1] "Compute area of connected components in image$?, with tolerance $1 and "@{-arg\ 1+!$2,high,low}" connectivity." -v - -repeat @# -l[$>] -s c -repeat @# -label[$>] $1,$2 nb=@{$>,1+iM} --histogram[$>] $nb,0,{$nb-1} -map[$>] [-1] -rm[-1] -done -a c -endl -done -v + #@gmic area_fg : tolerance>=0,is_high_connectivity={ 0 | 1 } #@gmic : Compute area of connected components for non-zero values in selected images. #@gmic : Similar to '-area' except that 0-valued pixels are not considered. #@gmic : Default values: 'is_high_connectivity=0'. #@gmic : $ image.jpg -luminance -stencil[-1] 1 --area_fg 0 area_fg : -check "$1>=0" -skip ${2=0} -e[^-1] "Compute area of foreground connected components in image$?, with tolerance $1 and "@{-arg\ 1+!$2,high,low}" connectivity." -v - -repeat @# -l[$>] -s c -repeat @# -label_fg[$>] $1,$2 nb=@{$>,1+iM} --histogram[$>] $nb,0,{$nb-1} -=[-1] 0 -map[$>] [-1] -rm[-1] -done -a c -endl -done -v + #@gmic barycenter #@gmic : Compute the barycenter vector of pixel values. #@gmic : $ 256,256 -ellipse 50%,50%,20%,20%,0,1,1 -deform 20 --barycenter --ellipse[-2] @{-1,0,1},5,5,0,10 barycenter : -e[^-1] "Compute the barycenter vector of pixel values of image$?." -v - -norm -repeat @# -l[$>] nm=@{0,b} sum=@{-1,+} -if {$sum>0} -if {d>1} --* 'z' z=@{-1,+} -rm[-1] -else z=0 -endif -if {h>1} --* 'y' y=@{-1,+} -rm[-1] -else y=0 -endif -* 'x' x=@{-1,+} -rm[-1] ({$x/$sum};{$y/$sum};{$z/$sum}) -else ({w/2},{h/2},{d/2}) -rm[-2] -endif -nm "[barycenter of '"$nm"']" -endl -done -v + #@gmic displacement : [source_image],_smoothness,_precision>=0,_nb_scales>=0,iteration_max>=0,is_backward={ 0 | 1 } : (+) #@gmic : Estimate displacement field between specified source and selected images. #@gmic : If 'smoothness>=0', regularization type is set to isotropic, else to anisotropic. #@gmic : If 'nbscales==0', the number of needed scales is estimated from the image size. #@gmic : Default values: 'smoothness=0.1', 'precision=5', 'nb_scales=0', 'iteration_max=10000' and 'is_backward=1'. #@gmic : $ image.jpg --rotate 3,1,0,50%,50%,0.9 --displacement[-1] [-2] -quiver[-1] [-1],15,-20,1,1,{1.5*iM} #@gmic distance : isovalue[%],_metric : isovalue[%],[custom_metric] : x[%]>=0,y[%]>=0,z[%]>=0 : (+) #@gmic : Compute the unsigned distance function to specified isovalue or coordinates. #@gmic : 'metric' can be { 0=chebyshev | 1=manhattan | 2=euclidean | 3=squared-euclidean }. #@gmic : A custom metric for chamfer distances can be specified as a 2d or 3d image. #@gmic : If arguments 'x','y','z' are provided, the image stands for a potential map used to #@gmic : determine the distance map to specified point (x,y,z). #@gmic : Default value: 'metric=2'. #@gmic : $ image.jpg -threshold 20% -distance 0 -pow 0.3 #@gmic : $ 400,400 -set 1,50%,50% --distance[0] 1,2 --distance[0] 1,1 -distance[0] 1,0 -mod 32 -threshold 16 -append c #@gmic : $ image.jpg -luminance -distance 50%,50%,50% #@gmic float2fft8 #@gmic : Convert selected float-valued images to 8bits fourier representations. float2fft8 : -e[^-1] "Convert float-valued image$? to 8bits fourier representations." -v - -repeat @# -l[$>] -fftpolar -+[-2] 1 -log[-2] -float2int8[-2,-1] -a y -endl -done -v + #@gmic fft82float #@gmic : Convert selected 8bits fourier representations to float-valued images. fft82float : -e[^-1] "Convert float-valued image$? to 8bits fourier representations." -v - -repeat @# -l[$>] -s y,2 -int82float -exp[-2] --[-2] 1 -ifftpolar -endl -done -v + #@gmic fftpolar #@gmic : Compute fourier transform of selected images, as centered magnitude/phase images. #@gmic : $ image.jpg -fftpolar -ellipse 50%,50%,10,10,0,1,0 -ifftpolar fftpolar : -e[^-1] "Compute fourier transform of image$?, as centered magnitude/phase images." -v - -repeat @# -l[$<] -fft -complex2polar -shift {-int(w/2)},{-int(h/2)},{-int(d/2)},0,2 -endl -done -v + #@gmic histogram : nb_levels>0[%],_value0[%],_value1[%] : (+) #@gmic : Compute the histogram of selected images. #@gmic : If value range is set, the histogram is estimated only for pixels in the specified #@gmic : value range. Argument 'value1' must be specified if 'value0' is set. #@gmic : Default values: 'value0=0%' and 'value1=100%'. #@gmic : $ image.jpg --histogram 64 -display_graph[-1] 400,300,3 #@gmic histogram_cumul : _nb_levels>0,_is_normalized={ 0 | 1 },_val0[%],_val1[%] #@gmic : Compute cumulative histogram of selected images. #@gmic : Default values: 'nb_levels=256', 'is_normalized=0' and 'val0=val1=0'. #@gmic : $ image.jpg --histogram_cumul 256 -histogram[0] 256 -display_graph 400,300,3 histogram_cumul : -check ${1=256}>0 -skip ${2=0} -skip ${3=0},${4=0} -arg 1+!$2,"normalized ","" -e[^-1] "Compute "@{}"cumulative histogram of image$?, using $1 levels." -v - -histogram $1,$3,$4 -cumul -if $2 -repeat @# -/[$>] @{$>,M} -done -endif -v + #@gmic histogram_pointwise : nb_levels>0[%],_value0[%],_value1[%] #@gmic : Compute the histogram of each vector-valued point of selected images. #@gmic : If value range is set, the histogram is estimated only for values in the specified #@gmic : value range. #@gmic : Default values: 'value0=0%' and 'value1=100%'. histogram_pointwise : -skip ${2=0%},${3=100%} -e[^-1] "Compute the pointwise histogram of vector-valued points in image$?, with $1 levels." -v - -repeat @# -l[$>] nm=@{0,n} nb_levels={round(if(@{-is_percent\ $1},(iM-im)*$1,$1))} value0={if(@{-is_percent\ $2},im+(iM-im)*$2,$2)} value1={if(@{-is_percent\ $3},im+(iM-im)*$3,$3)} -- $value0 -* {$nb_levels/max(1,abs($value1-$value0))} -c 0,{$nb_levels-1} -round w={w} h={h} d={d} -r {w*h*d},{s},1,1,-1 -i[-2] (0,{w-1}) -r[-2] [-1],[-1],1,1,3 -round[-2] -r[-2,-1] 300%,100%,1,1,4 -shift[-1] 1 -+[-2,-1] -y[-1] y -i[-2] ({'CImg3d'},{h/3},{h/3}) (1,0;1,{h/3-1}) -r[-1] 2,@{-2,h/3},1,1,3 -round[-1] 3,100%,1,1,1 1,100%,1,1,-1 -y[-5,-3,-2] y -a[-5--1] y {$w*$h*$d},$nb_levels -object3d[-1] [-2],0,0,0,1,0,0,0 -rm[-2] -r $w,$h,$d,$nb_levels,-1 -nm $nm,1 -endl -done -v + #@gmic hough : _width>0,_height>0,gradient_norm_voting={ 0 | 1 } #@gmic : Compute hough transform (theta,rho) of selected images. #@gmic : Default values: 'width=512', 'height=width' and 'gradient_norm_voting=1'. #@gmic : $ image.jpg --blur[-1] 1.5 -hough[-1] 400,400 -blur[-1] 0.5 -+[-1] 1 -log[-1] hough : -check "${1=512}>0 && ${2=$1}>0" -skip ${3=1} -e[^-1] "Compute $1x$2 hough transform of image$?, "@{-arg\ 1+!$3,with,without}" gradient norm voting." -v - -slices 50% -luminance -repeat @# -l[$>] nm=@{0,n} rhomax={sqrt(w^2+h^2)/2} -g (0,{w-1}) (0;{@{-2,h}-1}) -r[-2,-1] @{-3,w},@{-3,h},1,1,3 --[-2] {w/2} --[-1] {h/2} -complex2polar[-4--1] --[-1] [-3] -polar2complex[-2,-1] -rm[-1] --lt[-1] 0 -*[-1] {pi} -+[-3,-1] -abs[-1] -%[-2] {2*pi} -*[-1] {$2/$rhomax} -*[-2] {0.5*$1/pi} -y[-3--1] x {w} -mv[-4] @# -if {!$3} -f[-1] 1 -endif -a y -pointcloud 1 -r $1,$2,1,1,0 -nm $nm,1 -endl -done -v + #@gmic ifftpolar #@gmic : Compute inverse fourier transform of selected images, from centered magnitude/phase images. ifftpolar : -e[^-1] "Compute inverse fourier transform of image$?, from centered magnitude/phase images." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] -shift {int(w/2)},{int(h/2)},{int(d/2)},0,2 -polar2complex -ifft -rm[-1] -endl -done -v + #@gmic isophotes : _nb_levels>0 #@gmic : Render isophotes of selected images on a transparent background. #@gmic : Default value: 'nb_levels=64' #@gmic : $ image.jpg -blur 2 -isophotes 6 -dilate_circ 5 -display_rgba isophotes : -skip ${1=64} -e[^-1] "Render isophote maps from images$?, with $1 levels." -v - -to_rgba -repeat @# -l[$>] --luminance -repeat $1 --isoline3d[1] {$>*255/($1-1)} -done -rm[1] -+3d[^0] -col3d[-1] 1 [0],[0] -object3d[-1] [-2],0,0,0,1,0,0,0 -rm[-2] -* -endl -done -v + #@gmic label : tolerance>=0,is_high_connectivity={ 0 | 1 } : (+) #@gmic : Label connected components in selected images. #@gmic : Default values: 'tolerance=0' and 'is_high_connectivity=0'. #@gmic : $ image.jpg -luminance -threshold 60% -label 0 -normalize 0,255 -map 0 #@gmic : $ 400,400 -set 1,50%,50% -distance 1 -mod 16 -threshold 8 -label 0 -mod 255 -map 2 #@gmic label_fg : tolerance>=0,is_high_connectivity={ 0 | 1 } #@gmic : Label connected components for non-zero values (foreground) in selected images. #@gmic : Similar to '-label' except that 0-valued pixels are not labeled. #@gmic : Default value: 'is_high_connectivity=0'. label_fg : -check "$1>=0" -skip ${2=0} -e[^-1] "Label foreground connected components on image [1], with tolerance $1 and "@{-arg\ 1+!$2,high,low}" connectivity." -v - -repeat @# -l[$>] -if {d>1} --z -1,-1,-1,{w-1},{h-1},{d-1} -label[-1] $1,$2 -z[-1] 1,1,1,{w-1},{h-1},{d-1} -else --z -1,-1,{w-1},{h-1} -label[-1] $1,$2 -z[-1] 1,1,{w-1},{h-1} -endif -neq[-2] 0 -* --histogram {1+iM} -neq[-1] 0 -*[-1] 'x' -rows[-1] -1,0 -label[-1] 0 -rows[-1] 1,1 -map[-2] [-1] -rm[-1] -endl -done -v + #@gmic max_patch : _patch_size>=1 #@gmic : Return locations of maximal values in local patch-based neighborhood of given size for selected images. #@gmic : Default value: 'patch_size=16'. #@gmic : $ image.jpg -norm --max_patch 16 max_patch : -check "isint(${1=16}) && $1>=1" -e[^-1] "Return locations of maximal values in local patch neighborhood of size $1, in image$?." -v - -repeat @# --dilate[$>] $1 -==[$>,-1] -done -v + #@gmic min_patch : _patch_size>=1 #@gmic : Return locations of minimal values in local patch-based neighborhood of given size for selected images. #@gmic : Default value: 'patch_size=16'. #@gmic : $ image.jpg -norm --min_patch 16 min_patch : -check "isint(${1=16}) && $1>=1" -e[^-1] "Return locations of minimal values in local patch neighborhood of size $1, in image$?." -v - -repeat @# --erode[$>] $1 -==[$>,-1] -done -v + #@gmic minimal_path : x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0 #@gmic : Compute minimal path between two points on selected potential maps. #@gmic : $ image.jpg --gradient_norm -f[-1] 1/(1+i) -minimal_path[-1] 0,0,0,100%,100%,0 -pointcloud[-1] 0 -*[-1] 280 -to_rgb[-1] -resize[-1] [-2],0 -or minimal_path : -check "$1>=0 && $2>=0 && $3>=0" -e[^-1] "Compute minimal path between points ($1,$2,$3) and ($4,$5,$6) for potential map$?." -v - -repeat @# -l[$>] nm=@{0,n} -distance ${4-6} x={round(if(@{-is_percent\ $1},$1*(w-1),$1))} y={round(if(@{-is_percent\ $2},$2*(h-1),$2))} z={round(if(@{-is_percent\ $3},$3*(d-1),$3))} ($x;$y;$z) -do p=@{0,($x,$y,$z,1)} -if {$p==1} x={$x-1} -elif {$p==2} x={$x+1} -elif {$p==3} y={$y-1} -elif {$p==4} y={$y+1} -elif {$p==5} z={$z-1} -elif {$p==6} z={$z+1} -endif ($x;$y;$z) -while $p -rm[0,-1] -a x -nm $nm,1 -endl -done -v + #@gmic mse : : (*) #@gmic : Compute MSE (Mean-Squared Error) matrix between selected images. #@gmic : $ image.jpg --noise 30 --noise[0] 35 --noise[0] 38 -cut[-1] 0,255 -mse #@gmic patches : patch_width>0,patch_height>0,patch_depth>0,x0,y0,z0,_x1,_y1,_z1,...,_xN,_yN,_zN #@gmic : Extract N+1 patches from selected images, centered at specified locations. #@gmic : $ image.jpg --patches 64,64,1,153,124,0,184,240,0,217,126,0,275,38,0 patches : -check "isint($1) && $1>0 && isint($2) && $2>0 && isint($3) && $3>0" -e[^-1] "Extract $1x$2x$3 patches from image$?, at locations (${4--1})." -v - (${4--1}) -r[-1] 3,{w/3},1,1,-1 -permute[-1] yzcx N={w} H={int(sqrt(w))} W={round(w/$H,1,1)} -r[-1] {$W*$H},1,1,3,0 -r[-1] $W,$H,1,3,-1 -r[-1] {w*$1},{h*$2},{d*$3} $1,$2,$3,1,x-{int($1/2)} --f[-1] y-{int($2/2)} --f[-1] z-{int($3/2)} -a[-3--1] c -r[-1] [-2],0,2 -+[-2,-1] -repeat {@#-1} -warp[$>] [-1],0,0,0 -done -rm[-1] -repeat @# -l[$<] -s y,$H -s x,$W -k[0-{$N-1}] -endl -done -v + #@gmic plot2value #@gmic : Retrieve values from selected 2d graph plots. #@gmic : $ 400,300,1,1,'if(y>300*abs(cos(x/10+2*?)),1,0)' --plot2value --display_graph[-1] 400,300 plot2value : -e[^-1] "Retrieve values from 2d graph plot$?." -v - -repeat @# -l[$>] -s c -ge 50% -repeat @# -l[$>] (1,{w}) -r[1] [0],3 -* -histogram {w},1,{w} -endl -done -a c -endl -done -v + #@gmic pointcloud : _type = { -X=-X-opacity | 0=binary | 1=cumulative | 2=label } #@gmic : Convert a Nx1, Nx2, Nx3 or NxM image as a point cloud in a 1d/2d or 3d binary image. #@gmic : If 'M'>3, the 3-to-M lines sets the (M-3)-dimensional color at each point. #@gmic : Default value: 'type=0'. #@gmic : $ 3000,2 -rand 0,400 --pointcloud 0 -dilate[-1] 3 #@gmic : $ 3000,2 -rand 0,400 {w} {w},3 -rand[-1] 0,255 -append y --pointcloud 0 -dilate[-1] 3 pointcloud : -check "${1=0}<3" -e[^-1] "Convert image$? to point clouds, in "@{-arg\ 2+($1>=0)*$1-($1<0),{-$1}-opacity,binary,cumulative,labeling}" mode." -v - -repeat @# -l[$>] nm=@{0,n} -if {"d>1 || s>1"} -error "Invalid input image "{w}x{h}x{d}x{s}". Should be NxMx1x1." -endif # Retrieve coordinates and color infos. -rows 0,{max(2,h-1)} -sh[-1] 0,0,0,0 -round[-1] dx={iM+1} -sh[-2] 1,1,0,0 -round[-1] dy={iM+1} -sh[-3] 2,2,0,0 -round[-1] dz={iM+1} -*[-1] $dy -+[-2] [-1] -f[-1] 0 -rm[-3--1] # Create corresponding 3d object (manage large point clouds). -s x,-1000000 -repeat @# -l[$>] nbp={w} -if {h>3} --rows 3,100% -rows[-2] 0,2 -else 100%,1,1,1,1 -if {$1==2} -f[-1] 1+x -endif -endif spectrum={h} -i[-2] (-128;1;1;{h}) -r[-2] {w} -a[-2,-1] y -i[-3] ({'CImg3d'}) -transpose[-3--1] -i[-3] ($nbp;$nbp) # Header -i[-2] 1,$nbp,1,1,1 -i[-2] 1,$nbp,1,1,y -a[-3,-2] x # Vertices and primitives. 1,$nbp,1,1,{if($1<0,-$1,if($1==1,-1,1))} # Opacities. -y[-4--2] y -a y # Merge object attributes. -endl -done -+3d # Draw corresponding point cloud. $dx,{$dy*$dz},1,$spectrum -object3d[-1] [-2],0,0,0,1,0,0,0 -rm[-2] -r[-1] $dx,$dy,$dz,100%,-1 -nm $nm,1 -endl -done -v + #@gmic psnr : _max_value : (+) #@gmic : Compute PSNR (Peak Signal-to-Noise Ratio) matrix between selected images. #@gmic : Default value: 'max_value=255'. #@gmic : $ image.jpg --noise 30 --noise[0] 35 --noise[0] 38 -cut[-1] 0,255 -psnr 255 -replace_inf 0 psnr : -skip ${1=255} -e[^-1] "Compute the "@#x@#" matrix of PSNR values, from image$? with maximum value $1." -v - -mse -log10 -- {log10($1*$1)} -* -10 -nm[-1] [PSNR] -v + #@gmic segment_watershed : _threshold>=0,_fill_lines={ 0 | 1 } #@gmic : Apply watershed segmentation on selected images. #@gmic : Default values: 'threshold=2' and 'fill_lines=1'. #@gmic : $ image.jpg --segment_watershed 2,0 segment_watershed : -check "${1=2}>=0" -skip ${2=1} -e[^-1] "Apply watershed segmentation on image$?, with edge threshold $1." -v - -repeat @# -l[$>] -+ {1+@{-1,m}} --gradient_norm -if {d>1} --f[-1] "if(i<$1 && i=0 #@gmic : Compute skeleton of binary shapes using distance transform. #@gmic : Default value: 'smoothness=0'. #@gmic : $ image.jpg -threshold 50% --skeleton 0 skeleton : -check ${1=0}>=0 -e[^-1] "Compute skeleton of binary image$?." -v - -ge 50% -distance 0 -b $1 -sharpen 1e10 -ge 100% -repeat @# --erode[$>] 2 --[$>,-1] -done -v + #@gmic ssd_patch : _use_fourier={ 0 | 1 },_boundary_conditions={ 0=dirichlet | 1=neumann } #@gmic : Compute field of SSD between an image and a patch, taken as consecutive selected images. #@gmic : Argument 'boundary_conditions' is valid only when 'use_fourier=0'. #@gmic : Default value: 'use_fourier=0' and 'boundary_conditions=0'. #@gmic : $ image.jpg --crop 20%,20%,35%,35% --ssd_patch 0,0 ssd_patch : -skip ${1=0},${2=0} -e[^-1] "Compute field of SSD between images and patchs using "@{-arg\ 1+!$1,fourier,spatial}" mode, in image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] -r 100%,100%,100%,@{-max_s} -s c -repeat {@#/2} -l[$>,{-1-$<}] --sqr[1] val=@{-1,+} -rm[-1] # Sum J(p,q)^2 --sqr[0] --f[1] 1 -if $1 -convolve_fft[-2,-1] # Sum I(x+p,y+q)^2 -mirror[1] xyz -convolve_fft[0,1] # Sum I(x+p,y+q).J(p,q) -else -correlate[-2] [-1],$2 -rm[-1] # Sum I(x+p,y+q)^2 -correlate[0] [1],$2 -rm[1] # Sum I(x+p,y+q).J(p,q) -endif -*[0] -2 -+[0,1] -+ $val -endl -done -+ -endl -done -v + #@gmic thinning #@gmic : Compute skeleton of binary shapes using morphological thinning #@gmic : (This is a quite slow iterative proces) #@gmic : $ image.jpg -threshold 50% --thinning thinning : -e[^-1] "Compute skeleton of binary image$?, using morphological thinning." -v - -ge 50% -* 2 -- 1 (-1,-1,-1;0,1,0;1,1,1) (0,-1,-1;1,1,-1;0,1,0) --rotate[-2,-1] 90 --rotate[-2,-1] 90 --rotate[-2,-1] 90 -repeat {@#-8} # Start skeleton refinement. bavg=@{-9,+} -repeat 99999 --correlate[-9] [-8] -ge[-1] 7 -*[-1] 2 --[-10,-1] --correlate[-9] [-7] -ge[-1] 6 -*[-1] 2 --[-10,-1] --correlate[-9] [-6] -ge[-1] 7 -*[-1] 2 --[-10,-1] --correlate[-9] [-5] -ge[-1] 6 -*[-1] 2 --[-10,-1] --correlate[-9] [-4] -ge[-1] 7 -*[-1] 2 --[-10,-1] --correlate[-9] [-3] -ge[-1] 6 -*[-1] 2 --[-10,-1] --correlate[-9] [-2] -ge[-1] 7 -*[-1] 2 --[-10,-1] --correlate[-9] [-1] -ge[-1] 6 -*[-1] 2 --[-10,-1] aavg=@{-9,+} -if {$aavg==$bavg} -break -endif bavg=$aavg -done -mv[-9] 0 -done -rm[-8--1] -+ 1 -/ 2 -v + #@gmic tones : N>0 #@gmic : Get N tones masks from selected images. #@gmic : $ image.jpg --tones 3 tones : -check $1>0 -e[^-1] "Get $1 tones masks from image$?." -v - -norm -n 0,{$1-1} -round 1 -repeat @# -l[$<] -repeat {$1-1} --==[0] {1+$>} -done -==[0] 0 -endl -done -v + #@gmic topographic_map : _nb_levels>0,_smoothness #@gmic : Render selected images as topographic maps. #@gmic : Default values: 'nb_levels=16' and 'smoothness=2'. #@gmic : $ image.jpg --topographic_map 10 topographic_map : -check "isint(${1=16}) && $1>0" -skip ${2=2} -e[^-1] "Render topographic maps from image$?, with $1 levels and smoothness $2." -v - -repeat @# -l[$>] --b $2 -isophotes[-1] $1 -compose_channels[-1] + -==[-1] 0 -blend shapeaverage0 -endl -done -v + #--------------------------------- # #@gmic :: Image drawing # #--------------------------------- #@gmic axes : x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,.. : (+) #@gmic : Draw xy-axes on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. #@gmic : To draw only one x-axis at row Y, set both 'y0' and 'y1' to Y. #@gmic : To draw only one y-axis at column X, set both 'x0' and 'x1' to X. #@gmic : Default values: 'font_height=13', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ 400,400,1,3,255 -axes -1,1,1,-1 #@gmic ball : _R,_G,_B #@gmic : Draw a colored RGBA ball sprite on selected images. #@gmic : Default values: 'R=255', 'G=R' and 'B=R'. #@gmic : $ 32,32 64,64 200,200 256,256 -ball 255,164,100 ball : -skip ${1=255},${2=$1},${3=$2} -e[^-1] "Draw ball sprite on image$?, with color ($1,$2,$3)." -v - -to_rgba -repeat @# -l[$>] mwh={min(w,h)} -sh 3,3 -f[-1] 0 -rm[-1] -ellipse {0.5*$mwh},{0.5*$mwh},{0.5*$mwh-4},{0.5*$mwh-4},0,1,$1,$2,$3,1 -sh 0,2 -*[-1] '($mwh+y-x)/(2*w)' -rm[-1] -ellipse {$mwh*0.7},{$mwh*0.3},{min(30,$mwh*$mwh/512)},{min(30,$mwh*$mwh/512)},0,{min($mwh/64,1)},255,255,255,1 -sh 0,2 -b[-1] {0.02*$mwh} -rm[-1] -sh 3,3 -*[-2] [-1] -dilate[-1] 3 -rm[-1] -sh 0,2 -+[-1] 'if(i&&(!j(-1)||!j(1)||!j(0,-1)||!j(0,1)),if(c==0,$1,if(c==1,$2,$3))/6,0)' -rm[-1] -endl -done -v + #@gmic chessboard : size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,..,_color2,.. #@gmic : Draw chessboard on selected images. #@gmic : Default values: 'size2=size1', 'offset1=offset2=0', 'angle=0', 'opacity=1', 'color1=0' and 'color2=255'. #@gmic : $ image.jpg -chessboard 32,32,0,0,25,0.3,255,128,0,0,128,255 chessboard : -check "$1>0 && ${2=$1}>0" -skip ${3=0},${4=0},${5=0},${6=1},${7=0},${8=255} -e[^-1] "Draw chessboard on image$?, with sizes ($1,$2), offsets ($3,$4), angle $5°, opacity $6 and colors (${7--1})." -v - -i[0] (${7--1}) -r[0] {@{0,w}/2},1,1,2,-1 -permute[0] cyzx -repeat {@#-1} w={w} h={h} theta={$5*pi/180} ($3,{$3+$w-1};$3,{$3+$w-1}^$4,$4;{$4+$h-1},{$4+$h-1}) -r[-1] $w,$h,1,2,3 -r[-1] {$w*$h},2,1,1,-1 -i[-2] ({cos($theta)},{-sin($theta)};{sin($theta)},{cos($theta)}) -**[-2,-1] -r[-1] $w,$h,1,2,-1 -%[-1] {$1+$2} ->=[-1] $1 -s[-1] c -xor[-2,-1] -map[-1] [0] -r[-1] 100%,100%,1,[-2] -j[-2] [-1],0,0,0,0,$6 -rm[-1] -mv[-1] 1 -done -rm[0] -v + #@gmic cie1931 #@gmic : Draw CIE-1931 chromaticity diagram on selected images. #@gmic : $ 500,400,1,3 -cie1931 cie1931 : -e[^-1] "Draw CIE-1931 chromaticity diagram on image$?." -v - # Generate convex hull of visible colors, as a 3d object. (67.5;73.5;109.5;103.5;51.5;100.5;37;36) # Header (280,420,0;171,829,0;158,820,0;153,816,0;147,811,0;140,804,0;132,794,0;121,776,0;106,747,0;88,701,0;\ # Vertices. 65,633,0;42,539,0;20,421,0;5,295,0;0,179,0;4,115,0;10,83,0;16,61,0;25,38,0;35,21,0;47,10,0;58,3,0;\ 71,0,0;92,1,0;111,7,0;151,28,0;189,52,0;226,79,0;262,109,0;298,141,0;334,175,0;370,209,0;405,244,0;\ 441,279,0;475,313,0;509,347,0;731,568,0) xM=731 yM=829 2,{h-1},1,1,3,0 1,{h},1,1,'y' --+[-1] 1 -%[-1] {h} -+[-2,-1] 1 -a[-3--1] x # Primitives. 3,{h},1,1,160 1,{h},1,1,1 # Colors + opacities. -y[-4--2] y -a[-5--1] y -mv[-1] 0 # Generate RGB triangle of displayable colors. xR=636 yR=504 xG=297 yG=234 xB=147 yB=774 512,512,1,3 -triangle_shade[-1] 0,0,{w-1},0,0,{h-1},""255,0,0,""0,255,0,""0,0,255 -rgb2srgb[-1] --compose_channels[-1] max -+[-1] 1e-8 -/[-2,-1] -*[-1] 255 -i[-2] (67.5;73.5;109.5;103.5;51.5;100.5;3;1;$xR;$yR;-0.01;$xG;$yG;-0.01;$xB;$yB;-0.01;9;0;1;2;0;0;511;0;0;511;-128;512;512;3) -y[-1] y (1) -a[-3--1] y -mv[-1] 1 # Draw chroma diagram. -repeat {@#-2} -to_rgb[-1] -fc[-1] 255,255,255 -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,1,0 100%,100%,1,3 --*3d[0,1] {(w-8)/$xM},{(h-32)/$yM} -object3d[-3] [-1],2,30,0,1,2 --neq[-3] 0 -distance[-1] 1 -*[-1] -1 -watershed[-4] [-1] -rm[-1] -/[-3] 1.5 -object3d[-3] [-1],2,30,0,1,2 -p3d[-1] 1 -p3d[-1] 2 -col3d[-1] 128 -object3d[-3] [-1],2,30,0,1,1 -rm[-1] @{-2,w},@{-2,h} -object3d[-1] [-2],2,30,0,1,2 -rm[-2] --erode[-1] 4 --[-1] [-2] -eq[-1] 0 -*[-3,-1] -a[-2,-1] c -blend[-2,-1] alpha 100%,100%,1,1,255 -axes[-1] 0,0.75,0.85,0,13,1 --erode[-1] 3 -negative[-1] -to_rgb[-2] -j[-3] [-2],0,0,0,0,1,[-1],400 -rm[-2,-1] -mv[-1] 2 -done -rm[0,1] -v + #@gmic circle : x[%],y[%],R[%],_opacity,_pattern,_color1,.. #@gmic : Draw specified colored circle on selected images. #@gmic : A radius of '100%' stands for 'sqrt(width^2+height^2)'. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. If a pattern is specified, the circle is #@gmic : drawn outlined instead of filled. #@gmic : Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -repeat 300 -circle {?(100)}%,{?(100)}%,{?(30)},0.3,@{-RGB} -done -circle 50%,50%,100,0.7,255 circle : -skip ${4=1},${5=0} -v - ({'"$5"'}) is_pattern={@{-1,0-1}'=='{'0x'}} -rm[-1] -v + -if $is_pattern -e[0--3] "Draw outlined circle at ($1,$2) with radius $3 on image$?, with opacity $4 and color (${6--1})." -else -e[0--3] "Draw filled circle at ($1,$2) with radius $3 on image$?, with opacity $4 and color (${5--1})." -endif -v - -ellipse $1,$2,$3,$3,0,${4--1} -v + #@gmic ellipse : x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,.. : (+) #@gmic : Draw specified colored ellipse on selected images. #@gmic : A radius of '100%' stands for 'sqrt(width^2+height^2)'. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. If a pattern is specified, the ellipse is #@gmic : drawn outlined instead of filled. #@gmic : Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -repeat 300 -ellipse {?(100)}%,{?(100)}%,{?(30)},{?(30)},{?(180)},0.3,@{-RGB} -done -ellipse 50%,50%,100,100,0,0.7,255 #@gmic flood : x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={ 0 | 1 },_opacity,_color1,.. : (+) #@gmic : Flood-fill selected images using specified value and tolerance. #@gmic : Default values: 'y=z=0', 'tolerance=0', 'is_high_connectivity=0', 'opacity=1' and 'color1=0'. #@gmic : $ image.jpg -repeat 1000 -flood {?(100)}%,{?(100)}%,0,20,0,1,@{-RGB} -done #@gmic gaussian : _sigma1[%],_sigma2[%],_angle #@gmic : Draw a centered gaussian on selected images, with specified standard deviations and orientation. #@gmic : Default values: 'sigma1=3', 'sigma2=sigma1' and 'angle=0'. #@gmic : $ 400,400 -gaussian 100,30,45 gaussian : -skip ${1=3},${2=$1},${3=0} -e[^-1] "Draw centered gaussian on image$? with standard deviations ($1,$2) and angle $3°." -v - u={cos($3*pi/180)} v={sin($3*pi/180)} dmax={max(w,h)} -if {isval($1)} l1=$1 -else l1={${1}10000*$dmax/100} -endif -if {isval($2)} l2=$2 -else l2={${2}10000*$dmax/100} -endif l1={1/(2*max(1/3,$l1)^2)} l2={1/(2*max(1/3,$l2)^2)} A={$l1*$u*$u+$l2*$v*$v} B={($l1-$l2)*$u*$v} C={$l1*$v*$v+$l2*$u*$u} -repeat @# -l[$>] nm=@{0,n} w={w} h={h} ds={d},{s} -rm ({-$w/2},{$w/2}) -r $w,$h,1,1,3 -f[-1] "Y=y-"{$h/2};$A"*i*i+2*"$B"*i*Y+"$C*"Y*Y" -* -1 -exp -r $w,$h,$ds -nm $nm,1 -endl -done -v + #@gmic graph : [function_image],_plot_type,_vertex_type,_ymin,_ymax,_opacity,_pattern,_color1,.. : 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_opacity,_pattern,_color1,.. : (+) #@gmic : Draw specified function graph on selected images. #@gmic : 'plot_type' can be { 0=none | 1=lines | 2=splines | 3=bar }. #@gmic : 'vertex_type' can be { 0=none | 1=points | 2,3=crosses | 4,5=circles | 6,7=squares }. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. #@gmic : Default values: 'plot_type=1', 'vertex_type=1', 'ymin=ymax=0 (auto)', 'opacity=1', 'pattern=(undefined)' #@gmic : and 'color1=0'. #@gmic : $ image.jpg --rows 50% -blur[-1] 3 -s[-1] c -div[0] 1.5 -graph[0] [1],2,0,0,0,1,255,0,0 -graph[0] [2],2,0,0,0,1,0,255,0 -graph[0] [3],2,0,0,0,1,0,0,255 -keep[0] #@gmic grid : size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,.. #@gmic : Draw xy-grid on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. #@gmic : Default values: 'offset_x=offset_y=0', 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -grid 10%,10%,0,0,0.5,255 #@gmic : $ 400,400,1,3,255 -grid 10%,10%,0,0,0.3,0xCCCCCCCC,128,32,16 grid : -check "$1>=0 && $2>=0" -skip ${3=0},${4=0},${5=1},${6=0} -v - ({'"$6"'}) is_pattern={@{-1,0-1}'=='{'0x'}} -rm[-1] -v + -if $is_pattern -e[0--3] "Draw xy-grid on image$?, with sizes ($1,$2), offsets ($3,$4), opacity $5, pattern $6 and color (${7--1})." -v - pattern=$6 color=${7--1} -else -e[0--3] "Draw xy-grid on image$?, with sizes ($1,$2), offsets ($3,$4), opacity $5, and color (${6--1})." -v - pattern=0xFFFFFFFF color=${6--1} -endif is_percentsx=@{-is_percent\ $1} is_percentsy=@{-is_percent\ $2} is_percentox=@{-is_percent\ $3} is_percentoy=@{-is_percent\ $4} -repeat @# -l[$>] w={w} h={h} s={s} # Draw grid along x-axis. size={if($is_percentsx,max(1,w*$1),$1)} -if {$size>=1} offset={if($is_percentox,$size*$3,$3)} ({'CImg3d'}) -+[-1] 0.5 # Header 1,{1+int($w/$size)},1,1,'y' -*[-1] $size -+[-1] {$offset%$size} # Points 1,{h},1,1,{$h/2} -a[-2,-1] x -z[-1] 0,2 n={h} -i[-2] ($n;$n) (1,0;1,{$n-1}) -r[-1] 2,$n,1,1,3 -round[-1] # Primitives (-128;1;$h;$s) 1,$h,1,$s -line[-1] 0,0,0,100%,1,$pattern,$color # Colors. -if {$n>1} 1,{4*($n-1)},1,1,-128,0,0,0 -endif (-128;1;$h;1) 1,$h,1,1 -line[-1] 0,0,0,100%,1,$pattern,1 # Opacities. -if {$n>1} 1,{4*($n-1)},1,1,-128,0,0,0 -endif -y[^0] y -a[^0] y -object3d[0] [1],0,0,0,$5,0,0,0 -rm[1] # Merge and draw. -endif # Draw grid along y-axis. size={if($is_percentsy,max(1,h*$2),$2)} -if {$size>=1} offset={if($is_percentoy,$size*$4,$4)} ({'CImg3d'}) -+[-1] 0.5 # Header 1,{1+int($h/$size)},1,1,'y' -*[-1] $size -+[-1] {$offset%$size} # Points. -i[-2] 1,{h},1,1,{$w/2} -a[-2,-1] x -z[-1] 0,2 n={h} -i[-2] ($n;$n) (1,0;1,{$n-1}) -r[-1] 2,$n,1,1,3 -round[-1] # Primitives. (-128;$w;1;$s) $w,1,1,$s -line[-1] 0,0,100%,0,1,$pattern,$color # Colors. -if {$n>1} 1,{4*($n-1)},1,1,-128,0,0,0 -endif (-128;$w;1;1) $w,1,1,1 -line[-1] 0,0,100%,0,1,$pattern,1 # Opacities -if {$n>1} 1,{4*($n-1)},1,1,-128,0,0,0 -endif -y[^0] y -a[^0] y -object3d[-2] [-1],0,0,0,$5,0,0,0 -rm[-1] # Merge and draw. -endif -endl -done -v + #@gmic j : eq. to '-image'. : (+) #@gmic image : [sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask : (+) #@gmic : Draw specified sprite image on selected images. #@gmic : (eq. to '-j'). #@gmic : Default values: 'x=y=z=c=0', 'opacity=1', 'sprite_mask=(undefined)' and 'max_opacity_mask=1'. #@gmic : $ image.jpg --crop 40%,40%,60%,60% -resize[-1] 200%,200%,1,3,5 -frame[-1] 2,2,0 -image[0] [-1],30%,30% -keep[0] #@gmic line : x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,.. : (+) #@gmic : Draw specified colored line on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. #@gmic : Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -repeat 500 -line 50%,50%,{?(w)},{?(h)},0.5,@{-RGB} -done -line 0,0,100%,100%,1,0xCCCCCCCC,255 -line 100%,0,0,100%,1,0xCCCCCCCC,255 #@gmic mandelbrot : z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={ 0 | 1 },_c0r,_c0i,_opacity : (+) #@gmic : Draw mandelbrot/julia fractal on selected images. #@gmic : Default values: 'iteration_max=100', 'is_julia=0', 'c0r=c0i=0' and 'opacity=1'. #@gmic : $ 400,400 -mandelbrot -2.5,-2,2,2,1024 -map 0 --blur 2 -elevation3d[-1] -0.2 #@gmic marble : _image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0 #@gmic : Render marble like pattern on selected images. #@gmic : Default values: 'image_weight=0.2', 'pattern_weight=0.1', 'angle=45', 'amplitude=0', 'sharpness=0.4', 'anisotropy=0.8', #@gmic : 'alpha=0.6', 'sigma=1.1' and 'cut_low=cut_high=0'. #@gmic : $ image.jpg --marble , marble : -skip ${1=0.2},${2=0.1},${3=45},${4=0},${5=0.4},${6=0.8},${7=0.6},${8=1.1},${9=0%},${10=100%} -e[^-1] "Render marble like pattern on image$?, with image weight $1, pattern weight $2, angle $3°, amplitude $4, "\ "sharpness $5, anisotropy $6, alpha $7, sigma $8, and cut ($9,$10)." -v - sx={$2*sin($3*pi/180)} sy={$2*cos($3*pi/180)} -f sin(x*$sx+y*$sy+i*$1) -if {$4} -smooth $4,$5,$6,$7,$8 -endif -c $9,$10 -n 0,255 -v + #@gmic maze : _width>0,_height>0,_cell_size>0 #@gmic : Input maze with specified size. #@gmic : $ -maze 30,20 -negative -n 0,255 maze : -check "isint(${1=15}) && $1>0 && isint(${2=$1}) && $2>0 && isint(${3=24}) && $3>0" -e[^-1] "Input $1x$2 maze." -v - ({round(?($1-1))},{round(?($2-1))}) # Starting cell. $1,$2,1,1,15 --f[-1] 0 -a[-2,-1] c # Starting maze data. -_generate_maze $1,$2 -_render_maze[-1] $3 -nm[-1] [maze] -v + _generate_maze : # Start opening walls. -do x=@{-2,-2} y=@{-2,-1} # Coords of the current cell. -=[-1] 1,$x,$y,0,1 # Mark current cell as visited. # Check for neighboring cells that are candidate for opening wall, and select one random. is_candidate=0 up=-1 -if {i($x,$y)&8" && "$y>0" && "!i($x,$y-1,0,1)} up=$x,{$y-1},8 is_candidate=1 -endif # Up. down=-1 -if {i($x,$y)&4" && "$y<$2-1" && "!i($x,$y+1,0,1)} down=$x,{$y+1},4 is_candidate=1 -endif # Down. left=-1 -if {i($x,$y)&2" && "$x>0" && "!i($x-1,$y,0,1)} left={$x-1},$y,2 is_candidate=1 -endif # Left. right=-1 -if {i($x,$y)&1" && "$x<$1-1" && "!i($x+1,$y,0,1)} right={$x+1},$y,1 is_candidate=1 -endif # Right. -if $is_candidate ($up,$down,$left,$right) -discard[-1] -1 -r[-1] 3,{h/3},1,1,-1 -shift[-1] 0,{?(4)},0,0,2 -rows[-1] 0,0 -mv[-1] -2 -endif # Remove wall between the current and chosen neighboring cells. -if $is_candidate -if {@{-2,-1}==8} -=[-1] {i($x,$y)&7},$x,$y -=[-1] {i($x,$y-1)&11},$x,{$y-1} # Remove up wall. -elif {@{-2,-1}==4} -=[-1] {i($x,$y)&11},$x,$y -=[-1] {i($x,$y+1)&7},$x,{$y+1} # Remove down wall. -elif {@{-2,-1}==2} -=[-1] {i($x,$y)&13},$x,$y -=[-1] {i($x-1,$y)&14},{$x-1},$y # Remove left wall. -else -=[-1] {i($x,$y)&14},$x,$y -=[-1] {i($x+1,$y)&13},{$x+1},$y # Remove right wall. -endif -z[-2] 0,1 -a[-3,-2] y # Add neighboring cell to stack of cells to explore. -else # No candidate : remove current cell from cells to explore. -if {@{-2,h}==1} -break -endif -rows[-2] 0,{@{-2,h}-2} -endif -while 1 -rm[-2] -channels[-1] 0 _render_maze : # Create the 16 configurations of walls. -i[0] $1,$1 -i[1] [0]x15 -line[8-15] 0,0,100%,0,1,1 -line[4-7,12-15] 0,100%,100%,100%,1,1 -line[2-3,6-7,10-11,14-15] 0,0,0,100%,1,1 -line[1-15:2] 100%,0,100%,100%,1,1 # Map the wall data with them. -a[0-15] x -r[-1] {w*$1},{h*$1} -*[-1] $1 -channels[-1] 0,1 $1,$1,1,1,x $1,$1,1,1,y -a[-2,-1] c -r[-1] [-2],[-2],1,2,0,2 -+[-2,-1] -warp[-2] [-1],0,0,0 -rm[-1] #@gmic maze_mask : _cellsize>0 #@gmic : Input maze according to size and shape of selected mask images. #@gmic : Mask may contain disconnected shapes. #@gmic : $ 0 -text "G'MIC",0,0,57,1,1 -dilate 3 -autocrop 0 -frame 1,1,0 -maze_mask 8 -dilate 3 -negative -* 255 maze_mask : -check "isint(${1=24}) && $1>0" -e[^-1] "Input masked maze from image$? with cell size $1." -v - -norm -ge 50% -repeat @# -l[$>] -do --rand[0] 0,1 -*[-1] [0] ({xM},{yM}) -rm[-2] # Select one starting point in the mask. --flood[0] @-1,0,0,0,1,2 -ge[-1] 2 --negative[-1] -*[-2] 15 -a[-2,-1] c -flood[0] @-2,0,0,0,1,0 -_generate_maze {w},{h} -while @{0,M} -rm[0] -+ -_render_maze[-1] $1 -nm[-1] [maze] -endl -done -v + #@gmic object3d : [object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double3d={ 0 | 1 },_is_zbuffer={ 0 | 1 },_focale,_light_x,_light_y,_light_z,_specular_lightness,_specular_shininess : (+) #@gmic : Draw specified 3d object on selected images. #@gmic : 'rendering_mode' can be { 0=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=phong-shaded }. #@gmic : Default values: 'x=y=z=0', 'opacity=1' and 'is_zbuffer=1'. All other arguments take their default values from the 3d environment variables. #@gmic : $ image.jpg -torus3d 100,10 -cone3d 30,-120 -add3d[-2,-1] -rotate3d[-1] 1,1,0,60 -object3d[0] [-1],50%,50% -keep[0] #@gmic pack_sprites : _nb_scales>=0,0<=_min_scale<=100,_allow_rotation={ 0=0° | 1=180° | 2=90° | 3=any },_spacing,_precision>=0,,max_iterations>=0 #@gmic : Try to randomly pack as much sprites as possible onto the 'empty' areas of an image. #@gmic : Sprites can be eventually rotated and scaled during the packing process. #@gmic : First selected image is the canvas that will be filled with the sprites. #@gmic : Its last channel must be a binary mask whose zero values represent potential locations for drawing the sprites. #@gmic : All other selected images represent the sprites considered for packing. #@gmic : Their last channel must be a binary mask that represents the sprite shape (i.e. a 8-connected component). #@gmic : The order of sprite packing follows the order of specified sprites in the image list. #@gmic : Sprite packing is done on random locations and iteratively with decreasing scales. #@gmic : 'nb_scales' sets the number of decreasing scales considered for all specified sprites to be packed. #@gmic : 'min_scale' (in %) sets the minimal size considered for packing (specified as a percentage of the original sprite size). #@gmic : 'spacing' can be positive or negative. #@gmic : 'precision' tells about the desired number of failed trials before ending the filling process. #@gmic : Default values: 'nb_scales=5', 'min_scale=25', 'allow_rotation=3', 'spacing=1', 'precision=7' and 'max_iterations=256'. #@gmic : $ 512,512,1,3,"min(255,y*c/2)" 100%,100% -circle 50%,50%,100,1,255 -append c image.jpg -resize2dy[-1] 24 -to_rgba -pack_sprites 3,25 pack_sprites : -check "isint(${1=5}) && $1>=0 && ${2=25}>=0 && $2<=100 && isint(${3=3}) && $3>=0 && $3<=3 && isint(${4=1}) && isint(${5=7}) && $5>=0 && isint(${6=256}) && $6>=0" -e[^-1] "Randomly pack image$? with $1 scales, minimum scale $2%, "@{-arg\ 1+$3,no,180°,90°,any}" rotation, spacing $4, precision $5 and $6 maximum iterations." -v - N={@#-1} is_first_time=1 -repeat @# -r[$>] 100%,100%,1,{max(2,@{$>,s})} -done # Ensure all images have a binary shape mask. # Start iterations over scales. -repeat $1 -rprogress {$>*100/$1} nb_attempts=0 # Generate all sprites for current scale. ratio={if($1>1,$2+(100-$2)*$}] w={w*$ratio} h={h*$ratio} -if {$w<1||$h<1} -rm -else -r $w,$h,1,100%,2 -sh[-1] 100%,100% -neq[-1] 0 area{1+$>}=@{-1,+} -rm[-1] -endif -endl -done # Pack rescaled sprites together. -l[0,{$N+1}--1] -repeat $6 # Compute reference sprite. ind={1+($>%$N)} area=${area$ind} -if {$3==0} [$ind] -elif {$3==1} --rotate[$ind] {round(?)*180} -elif {$3==2} --rotate[$ind] {round(?(3))*90} -else --rotate[$ind] {?*360} --sh[-1] 100%,100% -neq[-1] 0 area=@{-1,+} -rm[-1] -endif # Get binary map of possible locations. --channels[0] 100% -eq[-1] 0 -if {$4>1} -erode[-1] {2*$4-1} -elif {$4<1} -dilate[-1] {-2*$4+3} -endif # Generate random skeleton-oriented point cloud. --rectangle[-1] 0,0,100%,100%,1,0xFFFFFFFF,0 -if $is_first_time -noise[-1] 0.1,2 -endif -distance[-1] 0 -noise[-1] 1,1 -max_patch[-1] {round(1.5*@{$ind,max(w,h)})} -*[-1] [-2] -pointcloud3d[-1] # Subdivide point cloud if multiple sprites. -if {$N>1} -l[-1] -s3d -/[1] $N -round[1] -max[1] 1 n=@{1,0} -r[2] 3,{@{2,h}/3},1,1,-1 -i[2] 1,@{2,h} -rand[2] 0,1 -a[2,3] x -sort[2] +,y -z[2] 1,3 -r[2] 3,$n,1,1 -y[2] y -r[3] 1,{2*$n},1,1,0 -r[4] 1,{3*$n},1,1,0 -r[5] 1,$n,1,1,0 -a y -endl -endif # Create 3d cloud of sprites. n=@{-1,7} -if $n -s3d[-1] -rm[-2,-1] -if {$3==0} # No rotation allowed. [-6] -i[-2] (-128;{w};{h};{s}) -if {$n>1} 4,{$n-1},1,1,-128,0,0,0 -endif --channels[-2] 100% -i[-2] (-128;{w};{h};{s}) -if {$n>1} [-3] -endif -elif {$3==1} # 180° rotation allowed. --rotate[-6] {round(?(1))*180} -i[-2] (-128;{w};{h};{s}) -if {$n>1} --rotate[-1] 180 -i[-2] (-128;{w};{h};{s}) -endif -if {$n>2} 4,{$n-2},1,1,-128,0,0,0 1,100% -rand[-1] 0,1 -round[-1] 1 -j[-2] [-1],1 -rm[-1] -endif --channels[-4] 100% -i[-2] (-128;{w};{h};{s}) -if {$n>1} --channels[-4] 100% -i[-2] (-128;{w};{h};{s}) -endif -if {$n>2} [-5] -endif -else # 90° rotation (or more) allowed. --rotate[-6] {round(?(3))*90} -i[-2] (-128;{w};{h};{s}) -if {$n>1} --rotate[-1] 90 -i[-2] (-128;{w};{h};{s}) -endif -if {$n>2} --rotate[-1] 90 -i[-2] (-128;{w};{h};{s}) -endif -if {$n>3} --rotate[-1] 90 -i[-2] (-128;{w};{h};{s}) -endif -if {$n>4} 4,{$n-4},1,1,-128,0,0,0 1,100% -rand[-1] 0,3 -round[-1] 1 -j[-2] [-1],1 -rm[-1] -endif --channels[-8] 100% -i[-2] (-128;{w};{h};{s}) -if {$n>1} --channels[-8] 100% -i[-2] (-128;{w};{h};{s}) -endif -if {$n>2} --channels[-8] 100% -i[-2] (-128;{w};{h};{s}) -endif -if {$n>3} --channels[-8] 100% -i[-2] (-128;{w};{h};{s}) -endif -if {$n>4} [-9] -endif -endif -y[{$N+3}--1] y -a[{$N+3}--1] y -endif -rm[-3] # Delete reference sprite. # Draw cloud and detect non-intersecting sprites. [0] -sh[-1] 100%,100% -f[-1] 1 --[-1] [-4] -object3d[-2] [-3],0,0,0,1,2,0,0 -rm[-3,-1] -sh[-1] 100%,100% -area_fg[-1] 0,1 -eq[-1] $area -*[-1] [-3] -rm[-3] -sh[-2] 0,@{-2,s-2} -*[-1] [-2] -rm[-1] # Draw selected sprites on rendering image. -if {iM} -j[0] [-2],0,0,0,0,1,[-1] -rm[-2,-1] -else -rm[-2,-1] nb_attempts={$nb_attempts+1} -if {$nb_attempts>$5} -break -else -continue -endif -endif -done -k[0] -endl -done -k[0] -v + #@gmic piechart : label_height>=0,label_R,label_G,label_B,"label1",value1,R1,G1,B1,...,"labelN",valueN,RN,GN,BN #@gmic : Draw pie chart on selected (RGB) images. #@gmic : $ image.jpg -piechart 25,0,0,0,"Red",55,255,0,0,"Green",40,0,255,0,"Blue",30,128,128,255,"Other",5,128,128,128 piechart : -check $1>=0 -e[^-1] "Draw pie chart on image$?, with label height $1 and color ($2,$3,$4)." -v - $=arg -repeat @# -l[$>] -ellipse 50%,50%,{w/2-1},{h/2-1},0,1,1 -ellipse 50%,50%,{w/2-1},{h/2-1},0,1,0xFFFFFFFF (${6--1:5}) -normalize_sum[-1] theta=0 -if {w>1} -repeat {w} xe={0.5*@{-2,w}*(1+cos($theta))} ye={0.5*@{-2,h}*(1+sin($theta))} -line[-2] 50%,50%,$xe,$ye theta={$theta-2*pi*i($>)} -done -endif theta=0 -repeat {w} -if {i($>)} ntheta={$theta-2*pi*i($>)} xc={0.5*@{-2,w}*(1+0.5*cos(0.5*($ntheta+$theta)))} yc={0.5*@{-2,h}*(1+0.5*sin(0.5*($ntheta+$theta)))} xf={0.5*@{-2,w}*(1+0.8*cos(0.5*($ntheta+$theta)))} yf={0.5*@{-2,h}*(1+0.8*sin(0.5*($ntheta+$theta)))} -flood[-2] $xf,$yf,0,0,0,1,${arg{7+5*$>}},${arg{8+5*$>}},${arg{9+5*$>}} -if {abs($ntheta-$theta)>0.1} 0 -t[-1] ${arg{5+5*$>}},0,0,$1,1,1 ($2^$3^$4) -r[-1] [-2],[-2],1,3 -*[-1] [-2] -j[-4] [-1],{$xc-w/2},{$yc-h/2},0,0,1,[-2] -rm[-2,-1] -endif theta=$ntheta -endif -done -rm[-1] -endl -done -v + #@gmic plasma : alpha,_beta,_scale>=0 : (+) #@gmic : Draw a random colored plasma on selected images. #@gmic : Default values: 'beta=1' and 'scale=8'. #@gmic : $ 400,400,1,3 -plasma 1 #@gmic point : x[%],y[%],_z[%],_opacity,_color1,.. : (+) #@gmic : Set specified colored pixel on selected images. #@gmic : Default values: 'z=0', 'opacity=1' and 'color1=0'. #@gmic : $ image.jpg -repeat 10000 -point {?(100)}%,{?(100)}%,0,1,@{-RGB} -done #@gmic polka_dots : diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,... #@gmic : Draw dots pattern on selected images. #@gmic : Default values: 'density=20', 'offset1=offset2=50', 'angle=0', 'aliasing=10', 'shading=1', 'opacity=1' and 'color=255'. #@gmic : $ image.jpg -polka_dots 10,15,0,0,20,10,1,0.5,0,128,255 polka_dots : -check $1>=0 -skip ${2=20},${3=50},${4=50},${5=0},${6=10},${7=1},${8=1},${9=255} -e[^-1] "Draw polka dots on image$?, with diameter $1, density $2, angle $3°, shift ($4,$5), aliasing $6 and shading $7." -v - theta={$5*pi/180} ct={cos($theta)} st={sin($theta)} mid1={$1/2} mid2={$2/2} -i[0] (${9--1}) -y[0] c -repeat {@#-1} WH={max(w,h)} 100%,100%,100%,1,"xn = 100*x/"$WH"-$3; yn = 100*y/"$WH"-$4; \ xr = xn*"$ct"-yn*"$st"; yr = xn*"$st"+yn*"$ct"; \ xc = xr%$2-"$mid2"; yc = yr%$2-"$mid2"; \ "$mid1"-sqrt(xc*xc+yc*yc)" -*[-1] $6 -c[-1] 0,$7 -n[-1] 0,$8 (${9--1}) -y[-1] c -r[-1] [-2],[-2],[-2] -j[-3] [-1],0,0,0,0,1,[-2] -rm[-2,-1] -mv[-1] 1 -done -rm[0] -v + #@gmic polygon : N>=1,x1[%],y1[%],..,xN[%],yN[%],_opacity,_pattern,_color1,.. : (+) #@gmic : Draw specified colored N-vertices polygon on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. If a pattern is specified, the polygon is #@gmic : drawn outlined instead of filled. #@gmic : Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -polygon 4,20%,20%,80%,30%,80%,70%,20%,80%,0.3,0,255,0 -polygon 4,20%,20%,80%,30%,80%,70%,20%,80%,1,0xCCCCCCCC,255 #@gmic : $ image.jpg 2,16,1,1,'?(if(x,@{-1,h},@{-1,w}))' -polygon[-2] {h},@-1,0.6,255,0,255 -remove[-1] #@gmic quiver : [function_image],_sampling>0,_factor,_is_arrow={ 0 | 1 },_opacity,_pattern,_color1,.. : (+) #@gmic : Draw specified 2d vector/orientation field on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. #@gmic : Default values: 'sampling=25', 'factor=-20', 'is_arrow=1', 'opacity=1', 'pattern=(undefined)' #@gmic : and 'color1=0'. #@gmic : $ 100,100,1,2,'if(c==0,x-w/2,y-h/2)' 500,500,1,3,255 -quiver[-1] [-2],10 #@gmic : $ image.jpg --resize2dy 600 -luminance[0] -gradient[0] -mul[1] -1 -reverse[0,1] -append[0,1] c -blur[0] 8 -orientation[0] -quiver[1] [0],10,10,1,0.8,255 #@gmic rectangle : x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,.. #@gmic : Draw specified colored rectangle on selected images. #@gmic : 'pattern' is an hexadecimal number starting with '0x' which can be omitted #@gmic : even if a color is specified. If a pattern is specified, the rectangle is #@gmic : drawn outlined instead of filled. #@gmic : Default values: 'opacity=1', 'pattern=(undefined)' and 'color1=0'. #@gmic : $ image.jpg -repeat 30 -rectangle {?(100)}%,{?(100)}%,{?(100)}%,{?(100)}%,0.3,@{-RGB} -done rectangle : -skip ${5=1},${6=0} -v - ({'"$5"'}) is_pattern={@{-1,0-1}'=='{'0x'}} -rm[-1] -v + -if $is_pattern -e[0--3] "Draw outlined rectangle from ($1,$2) to ($3,$4) on image$?, with opacity $5 and color (${7--1})." -else -e[0--3] "Draw filled rectangle from ($1,$2) to ($3,$4) on image$?, with opacity $5 and color (${6--1})." -endif -v - -polygon 4,$1,$2,$3,$2,$3,$4,$1,$4,${5--1} -v + #@gmic rorschach : 'smoothness[%]>=0','mirroring={ 0=none | 1=x | 2=y | 3=xy } #@gmic : Render rorschach-like inkblots on selected images. #@gmic : Default values: 'smoothness=5%' and 'mirroring=1'. #@gmic : $ 400,400 -rorschach 3% rorschach : -check "${1=5%}>=0 && isint(${2=1}) && $2>=0 && $2<=3" -e[^-1] "Render rorschach-like inkblots on image$?, with smoothness $1 and "@{-arg\ 1+$2,no,x,y,xy}"-mirroring." -v - -if {$2==0} # No mirroring. -rand -1,1 -b $1 -ge 0 -elif {$2==1} # X-mirroring. -repeat @# -l[$>] w={w} -columns 0,{w/2-1} -rand -1,1 -b $1 -ge 0 --mirror x -if {$w%2} -columns[-1] 1,100% -endif -a x -endl -done -elif {$2==2} # Y-mirroring. -repeat @# -l[$>] h={h} -rows 0,{h/2-1} -rand -1,1 -b $1 -ge 0 --mirror y -if {$h%2} -rows[-1] 1,100% -endif -a y -endl -done -elif {$2==3} # XY-mirroring. -repeat @# -l[$>] w={w} h={h} -z 0,0,{w/2-1},{h/2-1} -rand -1,1 -b $1 -ge 0 --mirror x -if {$w%2} -columns[-1] 1,100% -endif -a x --mirror y -if {$h%2} -rows[-1] 1,100% -endif -a y -endl -done -endif -v + #@gmic sierpinski : recursion_level>=0 #@gmic : Draw Sierpinski triangle on selected images. #@gmic : Default value: 'recursion_level=7'. #@gmic : $ image.jpg -sierpinski 7 sierpinski : -check ${1=7}>=0 -skip ${2=50},${3=0},${4=0},${5=100},${6=100},${7=100} -e[^-1] "Draw Sierpinski triangle of degree $1 on image$?." -v - -_sierpinski ${2-7},$1 -v + _sierpinski : -if {$7<=0} -polygon 3,$1%,$2%,$3%,$4%,$5%,$6%,1,255 -return -endif -_sierpinski $1,$2,{($1+$3)/2},{($2+$4)/2},{($1+$5)/2},{($2+$6)/2},{$7-1} -_sierpinski {($1+$3)/2},{($2+$4)/2},$3,$4,{($3+$5)/2},{($4+$6)/2},{$7-1} -_sierpinski {($1+$5)/2},{($2+$6)/2},$5,$6,{($3+$5)/2},{($4+$6)/2},{$7-1} #@gmic snowflake : _recursion>=0,_x0,_y0,_x1,_y1,_x2,_y2,_opacity,_col1,..._colN #@gmic : Draw a Koch snowflake on selected images. #@gmic : Default values: 'recursion=4', 'x0=20', 'y0=70', 'x1=80', 'y1=70', 'x2=50', 'y2=10', 'opacity=1' and 'col1=255'. #@gmic : $ image.jpg -snowflake 4 snowflake : -check ${1=4}>=0 -skip ${2=20},${3=70},${4=80},${5=70},${6=50},${7=10},${8=1},${9=255} -v - -polygon 3,$2%,$3%,$4%,$5%,$6%,$7%,${8--1} -_snowflake $1,$2,$3,$6,$7,${8--1} -_snowflake $1,$6,$7,$4,$5,${8--1} -_snowflake $1,$4,$5,$2,$3,${8--1} -v + _snowflake : x0={$2+($4-$2)/3} y0={$3+($5-$3)/3} x1={$2+2*($4-$2)/3} y1={$3+2*($5-$3)/3} c={cos(-pi/3)} s={sin(-pi/3)} x2={$x0+($x1-$x0)*$c-($y1-$y0)*$s} y2={$y0+($x1-$x0)*$s+($y1-$y0)*$c} -polygon 3,$x0%,$y0%,$x1%,$y1%,$x2%,$y2%,${6--1} -if $1 -_snowflake {$1-1},$2,$3,$x0,$y0,${6--1} -_snowflake {$1-1},$x0,$y0,$x2,$y2,${6--1} -_snowflake {$1-1},$x2,$y2,$x1,$y1,${6--1} -_snowflake {$1-1},$x1,$y1,$4,$5,${6--1} -endif #@gmic spiralbw #@gmic : Draw (squared) spiral on selected images. #@gmic : $ 16,16 -spiralbw spiralbw : -e[^-1] "Draw (squared) black and white spiral on image$?." -v - -channels 0 -f "r=min(x,y,w-1-x,h-1-y); 2*r*(w+h-2*r-1) + if(min(x,h-1-y)>=min(w-1-x,y),x+y,2*(w+h-2-2*r)-x-y)" -v + #@gmic spline : x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_nb_vertices>=2,_opacity,_color1,.. #@gmic : Draw specified colored spline curve on selected images. #@gmic : Default values: 'nb_vertices=256', 'opacity=1' and 'color1=0'. #@gmic : $ image.jpg -repeat 30 -spline {?(100)}%,{?(100)}%,{?(-600,600)},{?(-600,600)},{?(100)}%,{?(100)}%,{?(-600,600)},{?(-600,600)},256,0.3,255 -done spline : -skip ${9=256},${10=1},${11=0} -e[^-1] "Draw spline from ($1,$2) [$3,$4] to ($5,$6) [$7,$8] on image$?, with $9 vertices, opacity $10 and color (${11--1})." -v - -repeat @# -l[$>] x0={if(@{"-is_percent $1"},$1*(w-1),$1)} y0={if(@{"-is_percent $2"},$2*(h-1),$2)} u0={if(@{"-is_percent $3"},$3*(w-1),$3)} v0={if(@{"-is_percent $4"},$4*(h-1),$4)} x1={if(@{"-is_percent $5"},$5*(w-1),$5)} y1={if(@{"-is_percent $6"},$6*(h-1),$6)} u1={if(@{"-is_percent $7"},$7*(w-1),$7)} v1={if(@{"-is_percent $8"},$8*(h-1),$8)} -spline3d $x0,$y0,0,$u0,$v0,0,$x1,$y1,0,$u1,$v1,0,$9 -sh[-1] 8,{8+3*$9-1},0,0 -round[-1] -rm[-1] -col3d[1] ${11--1} -object3d[0] [1],0,0,0,$10,1,0,0 -rm[1] -endl -done -v + #@gmic t : eq. to '-text'. : (+) #@gmic text : text,_x[%],_y[%],_font_height>=0,_opacity,_color1,.. : (+) #@gmic : Draw specified colored text string on selected images. #@gmic : (eq. to '-t'). #@gmic : Exact pre-defined sizes are '13','24','32' and '57'. Any other size is interpolated. #@gmic : Specifying an empty target image resizes it to new dimensions such that the image contains #@gmic : the entire text string. #@gmic : Default values: 'opacity=1' and 'color1=0'. #@gmic : $ image.jpg -resize2dy 600 y=0 -repeat 30 -text {2*$>}" : This is a nice text, isn't it ?",10,$y,{2*$>},0.9,255 y={$y+2*$>} -done #@gmic : $ 0 -text "G'MIC",0,0,24,1,255 #@gmic text_outline : text,_x[%],_y[%],_font_height>0,_outline>=0,_opacity,_color1,.. #@gmic : Draw specified colored and outlined text string on selected images. #@gmic : Default values: 'x=y=2', 'font_height=13', 'outline=2', 'opacity=1' and 'color1=255'. #@gmic : $ image.jpg -text_outline "Hi there!",10,10,52,3 text_outline : -skip ${2=2},${3=2},${4=13},${5=2},${6=1},${7=255},${8=$-1},${9=$-1} -e[^-1] "Draw outlined text '$1' at position ($2,$3) on image$?, with font height $4, outline $5, opacity $6 and color ${7--1}." -v - -if $5 0 -t[-1] "$1",0,0,$4,1,1 -expand_xy[-1] {1+$5},0 --dilate[-1] {2*$5+1} (${7--1}) -y[-1] c -r[-1] 2,1,1,100%,0,0,1 -map[-3] [-1] -rm[-1] -repeat {@#-2} -if @{$>,w} -j[$>] [-2],$2,$3,0,0,$6,[-1] -else -rm[$>] -i[$>] [-2] -endif -done -rm[-2,-1] -else -t "$1",${2-4},${6--1} -endif -v + #@gmic triangle_shade : x0,y0,x1,y0,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,.... #@gmic : Draw triangle with interpolated colors on selected images. #@gmic : $ image.jpg -triangle_shade 20,20,400,100,120,200,255,0,0,0,255,0,0,0,255 triangle_shade : -e[^-1] "Draw triangle ($1,$2)-($3,$4)-($5,$6) with interpolated colors on image$?." -v - # Find mapping coefficients for each color. -l[] ($1,$2,1;$3,$4,1;$5,$6,1) (${7--1}) -r[-1] {w/3},3,1,1,-1 -s[-1] x -solve[^0] [0] -rm[0] -a c -endl -polygon[^-1] 3,${1-6},1,-65535 # Mask images with triangle. -repeat {@#-1} -l[$>,-1] -repeat @{0,s} a={i(0,0,0,$>)} b={i(0,1,0,$>)} c={i(0,2,0,$>)} -sh[0] $>,$> -f[-1] 'if(i==-65535,$a*x+$b*y+$c,i)' -rm[-1] -done -endl -done -rm[-1] -v + #@gmic truchet : _scale>0,_radius>=0,_pattern_type={ 0=straight | 1=curved } #@gmic : Fill selected images with random truchet patterns. #@gmic : Default values: 'scale=32', 'radius=5' and 'pattern_type=1'. #@gmic : $ 400,300 -truchet , truchet : -check "isint(${1=32}) && $1>0 && ${2=3}>=0" -skip ${3=1} -e[^-1] "Render "@{-arg\ 1+!$3,curved,straight}" truchet patterns in image$?, with scale $1 and radius $2." -v - -repeat @# -l[$>] nm=@{0,n} w={w} h={h} s={s} -rm $1,$1 -= 1,0,0 -= 1,100%,100% -distance 1,{1+$3} M={int(iM/2)} # Generate truchet pattern and its mirrored version. -t2 {$M-$2/2-($1%2)},{$M+$2/2} --mirror y -a x {round($w/$1,1,1)},{round($h/$1,1,1)} -rand[-1] 0,1 -ge[-1] 50% -r[-1] {w*$1},{h*$1} -*[-1] $1 -channels[-1] 0,1 (0,{$1-1}) -r[-1] $1,$1,1,1,3 --transpose[-1] -a[-2,-1] c -r[-1] [-2],0,2 -+[-2,-1] -warp[-2] [-1] -rm[-1] -ge 50% -r $w,$h,1,1,0 -r 100%,100%,1,$s -nm $nm,1 -endl -done -v + #@gmic turbulence : _radius>0,_octaves={1,2,3...,12},_alpha>0,_difference={-10,10},_mode={0,1,2,3} #@gmic : Render fractal noise or turbulence on selected images. #@gmic : Default values: 'radius=32', 'octaves=6', 'alpha=3', 'difference=0' and 'mode=0'. #@gmic : $ 400,400,1,3 -turbulence 16 turbulence : -check "${1=32}>0 && ${2=6}>0" -skip ${3=3},${4=0},${5=0} -e[^-1] "Render fractal noise or turbulence on image$?, with radius $1, octaves $2, damping per octave $3, difference $4 and mode $5." -v - -repeat @# -l[$>] nm=@{0,n} -if {$4} [-1] -endif -f[-1] 0 --noise[-1] 10,0 -b[-1] $1,0 -if {$5==0||$5==1} --[-1] @{-1,a} -abs[-1] -elif {$5==3||$5==4} -^[-1] 2 -elif {$5==5} -^[-1] 3 -endif -repeat {$2-1} --noise[-2] 10,0 -b[-1] {$1/2^$>},0 -if {$5==0} --[-1] @{-1,a} -abs[-1] -elif {$5==4} -^[-1] 2 -elif {$5==5} -^[-1] 3 -endif -*[-2] $3 -+[-2--1] -done -n[-1] 0,255 -rm[-2] -if {$4} -*[-1] $4 -mv[-2] 2 -- -n[-1] 0,255 -endif -nm $nm,1 -endl -done -v + #@gmic yinyang #@gmic : Draw a yin-yang symbol on selected images. #@gmic : $ 400,400 -yinyang yinyang : -e[^-1] "Draw yin-yang symbol on image$?." -v - -f 0 -repeat @# -l[$>] s={s} -channels 0 r={round(0.95*min(w,h)/4)} --line 50%,0,50%,50%,1,2 -ellipse[-1] 50%,{h/2-$r},$r,$r,0,1,2 -line[-1] 50%,50%,50%,100%,1,1 -ellipse[-1] 50%,{h/2+$r},$r,$r,0,1,1 -flood[-1] {w/2-$r},50%,0,0,0,1,2 -flood[-1] {w/2+$r},50%,0,0,0,1,1 -ellipse[-2] 50%,50%,{2*$r},{2*$r},0,1,1 -* -ellipse[-1] 50%,{h/2-$r},{$r/3},{$r/3},0,1,1 -ellipse[-1] 50%,{h/2+$r},{$r/3},{$r/3},0,1,2 -r 100%,100%,1,$s -endl -done -v + #--------------------------------- # #@gmic :: Matrix computation # #--------------------------------- #@gmic dijkstra : starting_node>=0,ending_node>=0 : (+) #@gmic : Compute minimal distances and pathes from specified adjacency matrices by the Dijkstra algorithm. #@gmic eigen : (+) #@gmic : Compute the eigenvalues and eigenvectors of selected symmetric matrices or matrix fields. #@gmic : If one selected image has 3 or 6 channels, it is regarded as a field of 2x2 or 3x3 symmetric matrices, #@gmic : whose eigen elements are computed at each point of the field. #@gmic : $ (1,0,0;0,2,0;0,0,3) --eigen #@gmic : $ image.jpg -structuretensors -blur 2 -eigen -split[0] c #@gmic invert : (+) #@gmic : Compute the inverse of the selected matrices. #@gmic : $ (0,1,0;0,0,1;1,0,0) --invert #@gmic solve : [image] : (+) #@gmic : Solve linear system AX = B for selected B-vectors and specified A-matrix. #@gmic : If the system is under- or over-determined, least square solution is returned. #@gmic : $ (0,1,0;1,0,0;0,0,1) (1;2;3) --solve[-1] [-2] #@gmic svd : (+) #@gmic : Compute SVD decomposition of selected matrices. #@gmic : $ 10,10,1,1,'if(x==y,x+?(-0.2,0.2),0)' --svd #@gmic transpose #@gmic : Transpose selected matrices. #@gmic : $ image.jpg --transpose transpose : -e[^-1] "Transpose image$?." -v - -permute yxzc -v + #@gmic trisolve : [image] : (+) #@gmic : Solve tridiagonal system AX = B for selected B-vectors and specified tridiagonal A-matrix. #@gmic : Tridiagonal matrix must be stored as a 3 column vector, where 2nd column contains the #@gmic : diagonal coefficients, while 1st and 3rd columns contain the left and right coefficients. #@gmic : $ (0,0,1;1,0,0;0,1,0) (1;2;3) --trisolve[-1] [-2] #--------------------------------- # #@gmic :: 3d rendering # #--------------------------------- #@gmic +3d : eq. to '-add3d'. : (+) #@gmic add3d : tx,_ty,_tz : [object3d] : (noargs) : (+) #@gmic : Shift selected 3d objects with specified displacement vector, or merge them with specified #@gmic : 3d object, or merge all selected 3d objects together. #@gmic : (eq. to '-+3d'). #@gmic : Default values: 'ty=tz=0'. #@gmic : $ -sphere3d 10 -repeat 5 --add3d[-1] 10,{?(-10,10)},0 -color3d[-1] @{-RGB} -done -add3d #@gmic : $ -repeat 20 -torus3d 15,2 -color3d[-1] @{-RGB} -mul3d[-1] 0.5,1 -if {$>%2} -rotate3d[-1] 0,1,0,90 -endif -add3d[-1] 70 -add3d -rotate3d[-1] 0,0,1,18 -done -double3d 0 #@gmic animate3d : _width>0,_height>0,_dx,_dy,_dz,_zoom>=0,_filename #@gmic : Animate selected 3d objects in a window. animate3d : -skip ${1=640},${2=480},${3=0},${4=10},${5=0},"${7=""}" -check ${6=1}>=0 -e[^-1] "Animate 3d object$?, in a $1x$2 window with angle velocities ($3,$4,$5)." -v - -repeat @# --l[$>] -n3d -*3d {$6*min($1,$2)/1.5} -c3d ax=0 ay=0 az=0 frame=0 -do --r3d 1,0,0,$ax -r3d[-1] 0,1,0,$ay -r3d[-1] 0,0,1,$az ax={$ax+$3} ay={$ay+$4} az={$az+$5} $1,$2,1,3,-1 -object3d[-1] [-2],50%,50%,0,1 -if {narg("$7")} -to_rgba[-1] -replace_color[-1] 0,0,-1,-1,-1,255,64,64,64,0 -o[-1] @{-filename\ "$7",$>,$frame} frame={$frame+1} -else -replace[-1] -1,64 -endif -w[-1] {w},{h},0,0,@{0,n} -wait 20 -k[0] -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm -w 0 -endl -done -v + #@gmic apply_camera3d : pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z #@gmic : Apply 3d camera matrix to selected 3d objects. #@gmic : Default values: 'target_x=0', 'target_y=0', 'target_z=0', 'up_x=0', 'up_y=-1' and 'up_z=0'. apply_camera3d : -skip ${4=0},${5=0},${6=0},${7=0},${8=-1},${9=0} -e[^-1] "Apply 3d camera matrix to 3d object$?, with camera position ($1,$2,$3), target position ($4,$5,$6) and up-vector ($7,$8,$9)." -v - ({$4-$1}^{$5-$2}^{$6-$3}) # f. ($7^$8^$9) # up. -orientation[-2,-1] # f/|f| and up/|up|. -_cross3d @-2,@-1 # s = f x up -_cross3d @-1,@-3 # u = s x f -rm[-3] -y[-3--1] x -mv[-2,-1] -3 -a[-3--1] y -z[-1] 0,3 # Rotation matrix R. --3d[^-1] $1,$2,$3 -apply_pose3d[^-1] @-1 -rm[-1] --3d 0,0,800 -v + _cross3d : ({$2*$6-$3*$5};{$3*$4-$1*$6};{$1*$5-$2*$4}) #@gmic apply_pose3d : p1,..,p12 #@gmic : Apply 3d pose matrix to selected 3d objects. #@gmic : $ -torus3d 100,20 -apply_pose3d 0.152437,1.20666,-0.546366,0,-0.535962,0.559129,1.08531,0,1.21132,0.0955431,0.548966,0,0,0,-206,1 -snapshot3d 400 apply_pose3d : -e[^-1] "Apply 3d pose matrix [ $1,$2,$3,$4; $5,$6,$7,$8; $9,$10,$11,$12 ] to 3d object$?." -v - -repeat @# -l[$>] -if @{-is_3d} -s3d -r[2] 3,@{2,h/3},1,1,-1 -i[3] 1,@{2,h},1,1,1 -a[2,3] x -i[3] ($1,$5,$9;$2,$6,$10;$3,$7,$11;$4,$8,$12) -**[2,3] -r[2] 1,@{2,3*h},1,1,-1 -a y -else -error "Image ["{@#-$>-1}"] does not represent a 3d object." -endif -endl -done -v + #@gmic axes3d : _size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z #@gmic : Input 3d axes with specified sizes along the x,y and z orientations. #@gmic : Default values: 'size_x=size_y=size_z=1', 'font_size=24', 'label_x=X', 'label_y=Y' and 'label_z=Z'. #@gmic : $ -axes3d , axes3d : -check ${4=24}>0 -skip ${1=1},${2=$1},${3=$2},"${5=X},${6=Y},${7=Z}" -e[^-1] "Input 3d axes with sizes ($1,$2,$3)." -v - -l[] m={max(abs($1),abs($2),abs($3))/40} m2={2*$m} m3={1.2*$m2} -_axes3d "O",$4 --3d[-1] $m3,$m3,$m3 -if $1 -line3d 0,0,0,$1,0,0 -cone3d $m,{2*$m},16 -r3d[-1] 0,1,0,-90 -+3d[-1] {$1-$m2},0,0 -_axes3d "$5",$4 -+3d[-1] {$1+$m3},0,0 -endif -if $2 -line3d 0,0,0,0,$2,0 -cone3d $m,{2*$m},16 -r3d[-1] 1,0,0,90 -+3d[-1] 0,{$2-$m2},0 -_axes3d "$6",$4 -+3d[-1] 0,{$2+$m3},0 -endif -if $3 -line3d 0,0,0,0,0,$3 -cone3d $m,{2*$m},16 -+3d[-1] 0,0,{$3-$m2} -_axes3d "$7",$4 -+3d[-1] 0,0,{$3+$m3} -endif -+3d -nm [3d\ axes] -endl -v + _axes3d : 0 -t[-1] "$1",2,0,$2,1,1 --dilate[-1] 3 -*[-2] 255 -r[-2] 100%,100%,1,3 -i[-3] (67.5;73.5;109.5;103.5;51.5;100.5;1;1;0;0;0;1;0;-128;{w};{h};3) -i[-2] (-128;{w};{h};1) -y[-3,-1] y -a[-4--1] y #@gmic b3d : eq. to '-background3d'. : (+) #@gmic background3d : R,_G,_B : [image] : (no args) : (+) #@gmic : Define background from specified color or existing image for interactive 3d viewer. #@gmic : (eq. to '-b3d'). #@gmic : (no args) resets the background to default. #@gmic box3d : _size_x,_size_y,_size_z #@gmic : Input 3d box at (0,0,0), with specified geometry. #@gmic : Default values: 'size_x=1' and 'size_z=size_y=size_x'. #@gmic : $ -box3d 100,40,30 --primitives3d 1 -color3d[-2] @{-RGB} box3d : -skip ${1=1},${2=$1},${3=$2} -e[^-1] "Input 3d box, with size ($1,$2,$3)." -v - 1,86,1,1,\ 67.5,73.5,109.5,103.5,51.5,100.5,8,6,\ 0,0,0,$1,0,0,$1,$2,0,0,$2,0,\ 0,0,$3,$1,0,$3,$1,$2,$3,0,$2,$3,\ 4,0,3,2,1,4,4,5,6,7,4,0,1,5,4,4,3,7,6,2,4,0,4,7,3,4,1,2,6,5,\ 200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,\ 1,1,1,1,1,1 -nm[-1] [3d\ box] -v + #@gmic c3d : eq. to '-center3d'. c3d : -_center3d #@gmic center3d #@gmic : Center selected 3d objects at (0,0,0). #@gmic : (eq. to '-c3d'). #@gmic : $ -repeat 100 -circle3d {?(100)},{?(100)},{?(100)},2 -done -add3d -color3d[-1] 255,0,0 --center3d -color3d[-1] 0,255,0 -add3d center3d : -_$0 _center3d : -e[0--3] "Center 3d object$?." -v - -repeat @# -l[$>] n={i(0,6)} -if {$n>0} -sh 8,{7+3*$n},0,0 -r[-1] 3,{h/3},1,1,-1 -s[-1] x --[-3] @{-3,(iM+im)/2} --[-2] @{-2,(iM+im)/2} --[-1] {(iM+im)/2} -a[-3--1] x -y[-1] y -j[-2] [-1],0,8 -rm[-1] -endif -endl -done -v + #@gmic circle3d : _x0,_y0,_z0,_radius>=0 #@gmic : Input 3d circle at specified coordinates. #@gmic : Default values: 'x0=y0=z0=0' and 'radius=1'. #@gmic : $ -repeat 500 a={$>*pi/250} -circle3d {cos(3*$a)},{sin(2*$a)},0,{$a/50} -color3d[-1] @{-RGB},0.4 -done -add3d circle3d : -skip ${1=0},${2=0},${3=0},${4=1} -e[^-1] "Input 3d circle at position ($1,$2,$3) with radius $4." -v - r={$4/sqrt(3)} 1,24,1,1,\ 67.5,73.5,109.5,103.5,51.5,100.5,2,1,\ {$1-$r},{$2-$r},{$3-$r},\ {$1+$r},{$2+$r},{$3+$r},\ 5,0,1,0,0,0,200,200,200,1 -nm[-1] [3d\ circle] -v + #@gmic circles3d : _radius>=0 #@gmic : Convert specified 3d objects to sets of 3d circles with specified radius. #@gmic : $ image.jpg -luminance -resize2dy 40 -threshold 50% -* 255 -pointcloud3d -color3d[-1] 255,255,255 -circles3d 0.7 circles3d : -check ${1=1}>=0 -e[^-1] "Convert 3d object$? to sets of 3d circles with radius $1." -v - -p3d 0 -repeat @# -l[$>] nbv=@{-1,6} nbp=@{-1,7} -if {$nbv&&$nbp} --3d {$1/2},0,0 --+3d $1,0,0 -+3d nbp2=@{-1,7} -s3d -=[1] $nbp,0,1 -r[3] 2,$nbp2,1,1,-1 -columns[3] 1,1 -s[3] y,2 -i[3] 1,$nbp,1,1,5 -a[3-5] x -columns[3] 0,5 -y[3] y -rows[4] 0,{3*$nbp-1} -rows[5] 0,{$nbp-1} -a y -endif -endl -done -v + #@gmic col3d : eq. to '-color3d'. : (+) #@gmic color3d : R,_G,_B,_opacity : (+) #@gmic : Set color and opacity of selected 3d objects. #@gmic : (eq. to '-col3d'). #@gmic : Default value: 'opacity=(undefined)'. #@gmic : $ -torus3d 100,10 -double3d 0 -repeat 7 --rotate3d[-1] 1,0,0,20 -color3d[-1] @{-RGB} -done -add3d #@gmic colorcube3d #@gmic : Input 3d color cube. #@gmic : $ -colorcube3d -mode3d 2 --primitives3d 1 colorcube3d : -e[^-1] "Input 3d RGB-color cube." -v - (67.5;73.5;109.5;103.5;51.5;100.5;8;6) (0;0;0;\ 255;0;0;\ 255;255;0;\ 0;255;0;\ 0;0;255;\ 255;0;255;\ 255;255;255;\ 0;255;255) (12;0;3;2;1;0;0;0;63;63;63;63;0;\ 12;1;2;6;5;0;0;0;63;63;63;63;0;\ 12;0;4;7;3;0;0;63;0;63;63;0;63;\ 12;4;5;6;7;0;0;63;0;63;63;0;63;\ 12;0;1;5;4;0;0;63;0;63;63;0;63;\ 12;3;7;6;2;0;0;0;63;63;63;63;0) (0,255;0,255^0,0;255,255^0,0;0,0) (255,255;255,255^0,0;255,255^0,255;0,255) (0,0;0,0^0,0;255,255^0,255;0,255) (0,255;0,255^0,0;255,255^255,255;255,255) (0,255;0,255^0,0;0,0^0,0;255,255) (0,255;0,255^255,255;255,255^0,0;255,255) -r[-6--1] 64,64,1,3,3 -y[-6--1] y -i[-7--2] (-128;64;64;3) (1;1;1;1;1;1) -a[-16--1] y -nm[-1] [3d\ colorcube] -v + #@gmic cone3d : _radius,_height,_nb_subdivisions>0 #@gmic : Input 3d cone at (0,0,0), with specified geometry. #@gmic : Default value: 'radius=1','height=1' and 'nb_subdivisions=24'. #@gmic : $ -cone3d 10,40 --primitives3d 1 -color3d[-2] @{-RGB} cone3d : -check ${3=24}>0 -skip ${1=1},${2=1} -e[^-1] "Input 3d cone, with radius $1, height $2 and $3 subdivisions." -v - # Header. (67.5;73.5;109.5;103.5;51.5;100.5) ({$3+2};{2*$3}) # Vertices. (0,0,0;0,0,$2) (0;{2*pi}) -r[-1] 1,{$3+1},1,1,3 -rows[-1] 0,{$3-1} --sin[-1] -cos[-2] -*[-2,-1] $1 -a[-2,-1] x -z[-1] 0,2 -a[-2,-1] y # Primitives. 1,$3,1,1,'y' --shift[-1] 0,-1 -+[-2,-1] 2 2,$3,1,1,3,0 [-2] [-4] -a[-3--1] x -i[-4] 2,$3,1,1,3,1 -a[-4--2] x -a[-2,-1] y # Colors / opacities. 3,{h},1,1,200 1,{h},1,1,1 -y[-4--2] y -a[-6--1] y -nm[-1] [3d\ cone] -v + #@gmic cup3d : _resolution>0 #@gmic : Input 3d cup object. #@gmic : $ -cup3d , cup3d : -check ${1=128}>0 -e[^-1] "Input 3d cup, with resolution $1." -v - 100,200 -ellipse[-1] 0%,0%,40%,40%,0,1,1 -ellipse[-1] 0,0,35%,35%,0,1,0 -polygon[-1] 4,0,45%,8%,45%,20%,90%,0,90%,1,1 -ellipse[-1] 0%,100%,30%,10%,0,1,1 -b[-1] 0.1% -lathe3d[-1] $1,2 -nm[-1] [3d\ cup] -v + #@gmic cylinder3d : _radius,_height,_nb_subdivisions>0 #@gmic : Input 3d cylinder at (0,0,0), with specified geometry. #@gmic : Default value: 'radius=1','height=1' and 'nb_subdivisions=24'. #@gmic : $ -cylinder3d 10,40 --primitives3d 1 -color3d[-2] @{-RGB} cylinder3d : -check ${3=24}>0 -skip ${1=1},${2=1} -e[^-1] "Input 3d cylinder, with radius $1, height $2 and $3 subdivisions." -v - # Header. (67.5;73.5;109.5;103.5;51.5;100.5) ({2*$3+2};{3*$3}) # Vertices. (0,0,0;0,0,$2) (0;{2*pi}) -r[-1] 1,{$3+1},1,1,3 -rows[-1] 0,{$3-1} --sin[-1] -cos[-2] -*[-2,-1] $1 -a[-2,-1] x --z[-1] 0,2 1,$3,1,1,$2 -a[-3,-1] x -a[-3--1] y # Primitives. 1,$3,1,1,'y' --shift[-1] 0,-1 -+[-2,-1] 2 2,$3,1,1,3,1 [-3] [-3] -a[-3--1] x 2,$3,1,1,3,0 [-3] [-5] -+[-2,-1] $3 -a[-3--1] x --+[-4,-3] $3 -i[-7] 1,$3,1,1,4 -rv[-6,-5] -a[-7--5,-2,-1] x # Colors / opacities. 3,{3*$3},1,1,200 1,{h},1,1,1 -y[-6--2] y -a[-8--1] y -nm[-1] [3d\ cylinder] -v + #@gmic distribution3d #@gmic : Get 3d color distribution of selected images. #@gmic : $ image.jpg -distribution3d -colorcube3d -primitives3d[-1] 1 -add3d distribution3d : -e[^-1] "Get 3d color distribution of image$?." -v - -to_rgb -permute "cxyz" -y y -repeat @# -l[$>] nbp={h/3} -i[-2] (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. $nbp;$nbp) # Number of vertices and primitives. (1,0;1,{$nbp-1}) -r[-1] 2,$nbp,1,1,3 -round[-1] 1 -y[-1] y # Primitives. [-2] # Colors. 1,$nbp,1,1,1 # Opacities. -a y -nm[-1] [3d\ distribution] # Build 3d object. -endl -done -v + #@gmic /3d : eq. to '-div3d'. : (+) #@gmic div3d : factor : factor_x,factor_y,_factor_z : (+) #@gmic : Scale selected 3d objects isotropically or anisotropically, with the inverse of specified #@gmic : factors. #@gmic : (eq. to '-/3d'). #@gmic : Default value: 'factor_z=0'. #@gmic : $ -torus3d 5,2 -repeat 5 --add3d[-1] 12,0,0 -div3d[-1] 1.2 -color3d[-1] @{-RGB} -done -add3d #@gmic db3d : eq. to '-double3d'. : (+) #@gmic double3d : is_doubled={ 0 | 1 } : (+) #@gmic : Enable/disable double-sided mode for 3d rendering. #@gmic : (eq. to '-db3d'). #@gmic : $ -mode3d 1 -repeat 2 -torus3d 100,30 -rotate3d[-1] 1,1,0,60 -double3d $> -snapshot3d[-1] 400 -done #@gmic elevation3d : z-factor : [elevation_map] : 'formula' : (no args) : (+) #@gmic : Build 3d elevation of selected images, with a specified elevation map. #@gmic : When invoked with (no args) or 'z-factor', the elevation map is computed as the pointwise L2 norm of the #@gmic : pixel values. Otherwise, the elevation map is taken from the specified image or formula. #@gmic : $ image.jpg -blur 5 -elevation3d 0.5 #@gmic : $ 128,128,1,3,?(255) -plasma 10,3 -blur 4 -sharpen 10000 -elevation3d[-1] 'X=(x-64)/6;Y=(y-64)/6;100*exp(-(X^2+Y^2)/30)*abs(cos(X)*sin(Y))' #@gmic empty3d #@gmic : Input empty 3d object. #@gmic : $ -empty3d empty3d : -e[^-1] "Input empty 3d object." -v - (67.5;73.5;109.5;103.5;51.5;100.5;0;0) -nm[-1] [3d\ empty] -v + #@gmic extrude3d : _depth>0,_resolution>0,_smoothness[%]>=0 #@gmic : Generate extruded 3d object from selected binary XY-profiles. #@gmic : Default values: 'depth=16', 'resolution=1024' and 'smoothness=0.5%'. #@gmic : $ image.jpg -threshold 50% -extrude3d 16 extrude3d : -check "${1=16}>0 && ${2=1024}>0 && ${3=0.5%}>=0" -e[^-1] "Generate extruded 3d object from XY-profile$?, with depth $1, resolution $2 and smoothness $3." -v - -norm -n 0,1 -autocrop 0 -repeat @# -l[$>] nm=@{0,n} wr={round(max(1,if(w>h,min($2,w),min($2,h)*w/h)))} hr={round(max(1,if(w>h,min($2,w)*h/w,min($2,h))))} fact={$1/max(w/$wr,h/$hr)} -b $3,0 -r $wr,$hr,1,1,2 -expand_xyz 1,0 -isosurface3d 50% -*3d 1,1,$fact -rv3d -nm $nm,1 -endl -done -v + #@gmic f3d : eq. to '-focale3d'. : (+) #@gmic focale3d : focale : (+) #@gmic : Set 3d focale. #@gmic : (eq. to '-f3d'). #@gmic : Set 'focale' to 0 to enable parallel projection (instead of perspective). #@gmic : Set negative 'focale' will disable 3d sprite zooming. #@gmic : Default value: 'focale=700'. #@gmic : $ -repeat 5 -torus3d 100,30 -rotate3d[-1] 1,1,0,60 -focale3d {$<*90} -snapshot3d[-1] 400 -done -remove[0] #@gmic gaussians3d : _size>0,_opacity #@gmic : Convert selected 3d objects into set of 3d gaussian-shaped sprites. #@gmic : $ image.jpg -r2dy 32 -distribution3d -gaussians3d 20 -colorcube3d -primitives3d[-1] 1 -+3d gaussians3d : -check "${1=32}>0" -skip ${2=0.3} -e[^-1] "Convert 3d object$? into sets of gaussian-shaped 3d sprites, with size $1 and opacity $2." -v - -p3d 2 -p3d 0 -repeat @# -l[$>] nm=@{0,n} -s3d nbv={h} -rm[-1] (-128;$1;$1;1) $1,$1 -gaussian[-1] 35%,35%,0 -c[-1] 30%,100% -n[-1] 0,$2 -y[-1] y -a[-2,-1] y # First opacity is generated. -if {$nbv>1} 4,{$nbv-1},1,1,-128,0,0,0 -y[-2,-1] y -a[-2,-1] y -endif # Other ones are shared copies of the first one. -a y -nm $nm,1 -endl -done -v + #@gmic gmic3d #@gmic : Input a 3d G'MIC logo. #@gmic : $ -gmic3d --primitives3d 1 gmic3d : -e[^-1] "Input 3d G'MIC logo." -v - -text3d G,60,20,2 -col3d[-1] 16,64,255 -text3d \',60,20,2 -+3d[-1] 30 -col3d[-1] 64,128,255 -text3d M,60,20,2 -+3d[-1] 40 -col3d[-1] 96,196,255 -text3d I,60,20,2 -+3d[-1] 70 -col3d[-1] 64,128,255 -text3d C,60,20,2 -+3d[-1] 95 -col3d[-1] 16,64,255 -sphere3d 8 -+3d[-1] 85,-10,15 -col3d[-1] 192,128,255 -+3d[-6--1] -c3d[-1] -repeat 30 -box3d {min(3+@{<,-1}/2,10)} -col3d[-1] {30*$>},{20+80*$>},{10*$>},0.5 -r3d[-1] 1,1,1,{$>*12} -+3d[-1] {80*cos(0.5+1.02*$>*12*pi/180)},{30*sin(0.8+$>*12*pi/180)},{2*$>-75} -done -+3d[-30--1] -+3d[-1] 0,5,30 -+3d[-2--1] -nm[-1] [3d\ gmic] -v + #@gmic gyroid3d : _resolution>0,_zoom #@gmic : Input 3d gyroid at (0,0,0), with specified resolution. #@gmic : Default values: 'resolution=32' and 'zoom=5'. #@gmic : $ -gyroid3d 48 --primitives3d 1 gyroid3d : -check ${1=32}>0 -skip ${2=5} -e[^-1] "Input 3d gyroid, with resolution $1 and range $2." -v - -isosurface3d "'0.49*(\ cos( 2*x + y + z - pi) + cos( 2*x - y + z - pi)\ + cos(- 2*x + y - z - pi) + cos(- 2*x - y - z - pi)\ + cos( x + 2*y + z - pi) + cos( x + 2*y - z - pi)\ + cos(- x - 2*y + z - pi) + cos(- x - 2*y - z - pi)\ + cos( x + y + 2*z - pi) + cos(- x + y + 2*z - pi)\ + cos( x - y - 2*z - pi) + cos(- x - y - 2*z - pi)\ + cos(- 2*x + y + z) + cos( 2*x + y - z)\ + cos(- 2*x - y + z) + cos( 2*x - y - z)\ + cos(- x + 2*y + z) + cos( x - 2*y + z)\ + cos(- x + 2*y - z) + cos( x - 2*y - z)\ + cos( x - y + 2*z) + cos( x + y - 2*z)\ + cos(- x - y + 2*z) + cos(- x + y - 2*z)\ ) + 0.27*( \ cos(- 2*x + 2*y - pi) + cos( 2*x - 2*y - pi)\ + cos( 2*x + 2*y - pi) + cos(- 2*x - 2*y - pi)\ + cos(- 2*y + 2*z - pi) + cos( 2*y - 2*z - pi)\ + cos( 2*y + 2*z - pi) + cos(- 2*y - 2*z - pi)\ + cos(- 2*z + 2*x - pi) + cos( 2*z - 2*x - pi)\ + cos( 2*z + 2*x - pi) + cos(- 2*z - 2*x - pi)\ ) - 0.69'",0,{-$2},{-$2},{-$2},$2,$2,$2,$1,$1,$1 -c3d[-1] -n3d[-1] -nm[-1] [3d\ gyroid] -v + #@gmic histogram3d #@gmic : Get 3d color histogram of selected images. #@gmic : $ image.jpg -histogram3d -colorcube3d -primitives3d[-1] 1 -add3d histogram3d : -e[^-1] "Get 3d color histogram of image$?." -v - -to_rgb -repeat @# -r[-1] {w*h},3,1,1,-1 -pointcloud[-1] 1 -n[-1] 0,255 -map[-1] 3 -pointcloud3d[-1] -nm[-1] "[3d histogram]" -mv[-1] 0 -done -v + #@gmic image6cube3d #@gmic : Generate 3d mapped cubes from 6-sets of selected images. #@gmic : $ image.jpg -animate flower,"30,0","30,5",6 -image6cube3d image6cube3d : -e[^-1] "Generate 3d mapped cubes from image$?." -v - M={max(@{-max_wh})} -r $M,$M,1,3 -imageplane3d -n3d -c3d -repeat {int(@#/6)} -+3d[-6] 0,0,-0.5 -r3d[-5] 1,0,0,180 -+3d[-5] 0,0,0.5 -r3d[-4] 0,1,0,-90 -+3d[-4] -0.5,0,0 -r3d[-3] 0,1,0,90 -+3d[-3] 0.5,0,0 -r3d[-2] 1,0,0,90 -+3d[-2] 0,-0.5,0 -r3d[-1] 1,0,0,-90 -+3d[-1] 0,0.5,0 -+3d[-6--1] -nm[-1] "[3d image cube]" -mv[-1] 0 -done -v + #@gmic imagecube3d #@gmic : Generate 3d mapped cubes from selected images. #@gmic : $ image.jpg -imagecube3d imagecube3d : -e[^-1] "Generate 3d mapped cubes from image$?." -v - -slices 50% -to_rgb -repeat @# -l[$>] nm=@{0,n} w1={w-1} h1={h-1} -i[-2] (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. 8;6;\ # Number of vertices and primitives. -0.5;-0.5;-0.5;\ # Vertex coordinates. 0.5;-0.5;-0.5;\ 0.5;0.5;-0.5;\ -0.5;0.5;-0.5;\ -0.5;-0.5;0.5;\ 0.5;-0.5;0.5;\ 0.5;0.5;0.5;\ -0.5;0.5;0.5;\ 12;0;3;2;1;0;0;0;$h1;$w1;$h1;$w1;0;\ # Primitives description. 12;1;2;6;5;0;0;0;$h1;$w1;$h1;$w1;0;\ 12;5;6;7;4;0;0;0;$h1;$w1;$h1;$w1;0;\ 12;4;7;3;0;0;0;0;$h1;$w1;$h1;$w1;0;\ 12;4;0;1;5;0;0;0;$h1;$w1;$h1;$w1;0;\ 12;3;7;6;2;0;0;0;$h1;$w1;$h1;$w1;0;\ -128;{w};{h};{s}) # Texture map for the first face. -y[-1] y (-128;0;0;0;-128;0;0;0;-128;0;0;0;-128;0;0;0;-128;0;0;0;1;1;1;1;1;1) # Other faces and opacities. -a y -nm $nm,1 -endl -done -v + #@gmic imageplane3d #@gmic : Generate 3d mapped planes from selected images. #@gmic : $ image.jpg -imageplane3d imageplane3d : -e[^-1] "Generate 3d mapped planes from image$?." -v - -slices 50% -to_rgb -repeat @# -l[$>] nm=@{0,n} w1={w-1} h1={h-1} -i[-2] (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. 4;1;\ # Number of vertices and primitives. 0;0;0;\ # Vertex coordinates. {w};0;0;\ {w};{h};0;\ {0};{h};0;\ 12;0;3;2;1;0;0;0;$h1;$w1;$h1;$w1;0;\ # Primitives description. -128;{w};{h};{s}) # Texture map. -y[-1] y (1) # Opacity. -a y -nm $nm,1 -endl -done -v + #@gmic imagepyramid3d #@gmic : Generate 3d mapped pyramides from selected images. #@gmic : $ image.jpg -imagepyramid3d imagepyramid3d : -e[^-1] "Generate 3d mapped pyramids from image$?." -v - -repeat @# -l[$>] nm=@{0,n} w1={w-1} h1={h-1} w2={w/2} -i[-2] (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. 5;5;\ # Number of vertices and primitives. -0.5;-0.5;-0.5;\ # Vertex coordinates. 0.5;-0.5;-0.5;\ 0.5;0.5;-0.5;\ -0.5;0.5;-0.5;\ 0;0;0.5;\ 12;0;3;2;1;0;0;0;$h1;$w1;$h1;$w1;0;\ # Primitives description. 9;0;4;3;0;$h1;$w2;0;$w1;$h1;\ 9;1;4;0;0;$h1;$w2;0;$w1;$h1;\ 9;2;4;1;0;$h1;$w2;0;$w1;$h1;\ 9;3;4;2;0;$h1;$w2;0;$w1;$h1;\ -128;{w};{h};{s}) # Texture map for the first face. -y[-1] y (-128;0;0;0;-128;0;0;0;-128;0;0;0;-128;0;0;0;1;1;1;1;1) # Other faces and opacities. -a y -nm $nm,1 -endl -done -v + #@gmic imagerubik3d : _xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100 #@gmic : Generate 3d mapped rubik's cubes from selected images. #@gmic : Default values: 'xy_tiles=3', 'xy_shift=5' and 'z_shift=5'. #@gmic : $ image.jpg -imagerubik3d , imagerubik3d : -check "${1=3}>=1 && ${2=5}>=0 && $2<=100 && ${3=5}>=0 && $3<=100" -e[^-1] "Generate 3d mapped rubik's cubes from image$? with $1 xy-tiles, xy-shift $2 and z-shift $3." -v - -repeat @# -l[$>] nm=@{0,n} # Generate primary 3d side. ({'CImg3d'}) -+[-1] 0.5 (8,5) (0,0,0;\ 100,0,0;\ 100,100,0;\ 0,100,0;\ $2,$2,{-$3};\ {100-$2},$2,{-$3};\ {100-$2},{100-$2},{-$3};\ $2,{100-$2},{-$3}) (4,4,7,6,5;\ 4,0,4,5,1;\ 4,3,2,6,7;\ 4,0,3,7,4;\ 4,1,5,6,2) 3,5,1,1,200 1,5,1,1,1 -y[-6--1] y -a[-6--1] y -repeat {$1-1} --+3d[-1] 100 -done -+3d[-$1--1] # Duplicate along X -repeat {$1-1} --+3d[-1] 0,100 -done -+3d[-$1--1] # Duplicate along Y -t3d[-1] [-2] -rm[-2] -/3d[-1] $1 --3d[-1] 50,50,50 --r3d[-1] 0,1,0,-90 --r3d[-1] 0,1,0,-90 --r3d[-1] 0,1,0,-90 # Generate the 5 other sides. --r3d[-1] 0,0,1,-90 --r3d[-1] 0,0,1,180 -+3d -nm $nm,1 -endl -done -v + #@gmic imagesphere3d : _resolution1>=3,_resolution2>=3 #@gmic : Generate 3d mapped sphere from selected images. #@gmic : Default values: 'resolution1=32' and 'resolutions2=16'. #@gmic : $ image.jpg -imagesphere3d 32,16 imagesphere3d : -check "${1=32}>=3 && ${2=16}>=3" -e[^-1] "Generate 3d mapped sphere from image$?, with resolutions ($1,$2)." -v - -to_rgb -repeat @# -l[$>] nm=@{0,n} # Generate object header. tw={w-1} th={h-1} # Maximum texture xy-coordinates. nbv={2+$1*($2-2)} # Number of vertices. nbp={$1*($2-1)} # Number of primitives. (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. $nbv;$nbp) # Number of vertices and primitives. # Define sphere vertices. (0;0;1) (0;0;-1) (0,{2*pi};0,{2*pi}^0,0;{pi},{pi}) -r[-1] {$1+1},$2,1,2,3 -z[-1] 0,1,{w-2},{h-2} -s[-1] c --sin[-1] --sin[-3] -*[-2,-1] --cos[-2] -sin[-3] -cos[-4] -*[-4,-3] -a[-3--1] c -permute[-1] cxyz -y[-1] y -a[-3--1] y # Define sphere primitives (triangles and quadrangles). -repeat $1 tx0={$>*$tw/$1} tx1={($>+1)*$tw/$1} ty1={$th/($2-1)} (9;0;{2+$>};{2+($>+1)%$1};{$tw/2};0;$tx0;$ty1;$tx1;$ty1) # Textured triangle from 1st pole. -repeat {$2-3} ty0=$ty1 ty1={($>+2)*$th/($2-1)} i0={2+$>*$1+@{>,-2}} i1={2+$>*$1+(@{>,-2}+1)%$1} (12;$i0;{$i0+$1};{$i1+$1};$i1;$tx0;$ty0;$tx0;$ty1;$tx1;$ty1;$tx1;$ty0) # Textured quadrangle. -done (9;1;{2+$1*($2-3)+($>+1)%$1};{2+$1*($2-3)+$>};{$tw/2};$th;$tx1;$ty1;$tx0;$ty1) # Textured triangle from 2nd pole. -done -a[-$nbp--1] y # Define sphere textures, opacities and generate object. -mv[-4] @# -i[-2] (-128;{w};{h};3) -y[-1] y 1,{4*($nbp-1)},1,1,-128,0,0,0 1,$nbp,1,1,1 -a y -nm $nm,1 -endl -done -v + #@gmic isoline3d : isovalue[%] : 'formula',value,_x0,_y0,_x1,_y1,_size_x>0[%],_size_y>0[%] : (+) #@gmic : Extract 3d isolines with specified value from selected images or from specified formula. #@gmic : Default values: 'x0=y0=-3', 'x1=y1=3' and 'size_x=size_y=256'. #@gmic : $ image.jpg -blur 1 -isoline3d 50% #@gmic : $ -isoline3d 'X=x-w/2;Y=y-h/2;(X^2+Y^2)%20',10,-10,-10,10,10 #@gmic isosurface3d : isovalue[%] : 'formula',value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x>0[%],_size_y>0[%],_size_z>0[%] : (+) #@gmic : Extract 3d isosurfaces with specified value from selected images or from specified formula. #@gmic : Default values: 'x0=y0=z0=-3', 'x1=y1=z1=3' and 'size_x=size_y=size_z=32'. #@gmic : $ image.jpg -resize2dy 128 -luminance -threshold 50% -expand_z 2,0 -blur 1 -isosurface3d 50% -mul3d 1,1,30 #@gmic : $ -isosurface3d 'x^2+y^2+abs(z)^abs(4*cos(x*y*z*3))',3 #@gmic label_points3d : _label_size>0,_opacity #@gmic : Add a numbered label to all vertices of selected 3d objects. #@gmic : Default values: 'label_size=13' and 'opacity=0.8'. #@gmic : $ -torus3d 100,40,6,6 -label_points3d 24,1 -mode3d 1 label_points3d : -check ${1=13}>0 -skip ${2=0.8} -e[^-1] "Label vertices of 3d object$?." -v - -repeat @# --p3d[$>] 0 -l[-1] -s3d -rm[-3--1] nbp=@{-2,0} -=[-2] $nbp,0,1 # Set correct number of primitives (1,0;1,{$nbp-1}) -r[-1] 2,$nbp,1,1,3 -r[-1] 1,{2*h},1,1,-1 # Create new primitive data -repeat $nbp # Create texture labels as primitive colors. 0 -t[-1] $>,0,0,$1,1,255,255,255 -autocrop[-1] 0 -i[-2] (-128;{w};{h};3) -y[-1] y -done -repeat $nbp # Create texture masks as primitive opacities. 0 -t[-1] $>,0,0,$1,1,$2 -autocrop[-1] 0 -i[-2] (-128;{w};{h};1) -y[-1] y -done -a y # Merge final object data. -endl -+3d[$>,-1] -done -v + #@gmic lathe3d : _resolution>0,_smoothness[%]>=0,_max_angle>=0 #@gmic : Generate 3d object from selected binary XY-profiles. #@gmic : Default values: 'resolution=128', 'smoothness=0.5%' and 'max_angle=361'. #@gmic : $ 300,300 -rand -1,1 -blur 40 -sign -normalize 0,255 -lathe3d , lathe3d : -check "${1=128}>0 && ${2=0.5%}>=0 && ${3=361}>=0" -e[^-1] "Generate lathed 3d object from XY-profile$?, with resolution $1, smoothness $2 and maximum angle $3°." -v - tmax={($3-180)*pi/180} -norm -n 0,1 -autocrop 0 -repeat @# -l[$>] wr={max(1,w2=2*w;if(w2>h,min($1,w2),min($1,h)*w2/h))} hr={max(1,w2=2*w;if(w2>h,min($1,w2)*h/w2,min($1,h)))} rmax={sqrt(($wr)^2+($hr)^2)/2} $wr,1,$wr,1,"xc=x-w/2; zc=z-d/2; t=atan2(zc,xc); if(t>"$tmax","$rmax",sqrt(xc*xc+zc*zc))" -*[-1] {2*(@{-2,w}-1)/(w-1)} -r[-1] $wr,$hr,$wr (0;{@{-2,h}-1}) -r[-1] $wr,$hr,$wr,1,3 -a[-2--1] c -warp[-2] [-1],0,1,0 -rm[-1] -expand_xyz 10,0 -b $2 -isosurface3d 50% -rv3d -endl -done -v + #@gmic l3d : eq. to '-light3d'. : (+) #@gmic light3d : position_x,position_y,position_z : [texture] : (no args) : (+) #@gmic : Set the light coordinates or the light texture for 3d rendering. #@gmic : (eq. to '-l3d'). #@gmic : (noargs) resets the 3d light to default. #@gmic : $ -torus3d 100,30 -double3d 0 -specs3d 1.2 -repeat 5 -light3d {$>*100},0,-300 --snapshot3d[0] 400 -done -remove[0] #@gmic line3d : x0,y0,z0,x1,y1,z1 #@gmic : Input 3d line at specified coordinates. #@gmic : $ -repeat 100 a={$>*pi/50} -line3d 0,0,0,{cos(3*$a)},{sin(2*$a)},0 -color3d[-1] @{-RGB} -done -add3d line3d : -e[^-1] "Input 3d line (${1-3})-(${4-6})." -v - 1,21,1,1,67.5,73.5,109.5,103.5,51.5,100.5,2,1,${1-6},2,0,1,200,200,200,1 -nm[-1] [3d\ line] -v + #@gmic lissajous3d : resolution>1,a,A,b,B,c,C #@gmic : Input 3d lissajous curves (x(t)=sin(a*t+A*2*pi),y(t)=sin(b*t+B*2*pi),z(t)=sin(c*t+C*2*pi)). #@gmic : Default values: 'resolution=1024', 'a=2', 'A=0', 'b=1', 'B=0', 'c=0' and 'C=0'. #@gmic : $ -lissajous3d , lissajous3d : -check ${1=1024}>1 -skip ${2=2},${3=0},${4=1},${5=0},${6=0},${7=0} -e[^-1] "Input 3d lissajous curve, with resolution $1, (a,A)=($2,$3), (b,B)=($4,$5) and (c,C)=($6,$7)." -v - res={round($1)} # Define object header and vertices. (67.5;73.5;109.5;103.5;51.5;100.5;$res;{$res-1}) (0,{2*pi}) -r[-1] $res,1,1,1,3 [-1]x2 -*[-3] $2 -+[-3] {$3*2*pi} -*[-2] $4 -+[-2] {$5*2*pi} -*[-1] $6 -+[-1] {$7*2*pi} -a[-3--1] y -sin[-1] -transpose[-1] -r[-1] 1,{w*h},1,1,-1 # Define object primitives, colors and opacities. 1,{$res-1},1,1,2 (0;{$res-2}) -r[-1] 1,{$res-1},1,1,3 --+[-1] 1 -a[-3--1] x -round[-1] 1 -r[-1] 1,{w*h},1,1,-1 1,{3*($res-1)},1,1,200 1,{$res-1},1,1,1 -a[-5--1] y -nm[-1] [3d\ lissajou] -v + #@gmic m3d : eq. to '-mode3d'. : (+) #@gmic mode3d : mode : (+) #@gmic : Set static 3d rendering mode. #@gmic : (eq. to '-m3d'). #@gmic : 'mode' can be { -1=bounding-box | 0=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=phong-shaded }."); #@gmic : Bounding-box mode ('mode==1') is active only for the interactive 3d viewer. #@gmic : $ (0,1,2,3,4,5) -double3d 0 -repeat {w} -torus3d 100,30 -rotate3d[-1] 1,1,0,60 -mode3d @{0,$>} -snapshot3d[-1] 300 -done -remove[0] #@gmic md3d : eq. to '-moded3d'. : (+) #@gmic moded3d : mode : (+) #@gmic : Set dynamic 3d rendering mode for interactive 3d viewer. #@gmic : (eq. to '-md3d'). #@gmic : 'mode' can be { -1=bounding-box | 0=dots | 1=wireframe | 2=flat | 3=flat-shaded | 4=gouraud-shaded | 5=phong-shaded }. #@gmic *3d : eq. to '-mul3d'. : (+) #@gmic mul3d : factor : factor_x,factor_y,_factor_z : (+) #@gmic : Scale selected 3d objects isotropically or anisotropically, with specified factors. #@gmic : (eq. to '-*3d'). #@gmic : Default value: 'factor_z=0'. #@gmic : $ -torus3d 5,2 -repeat 5 --add3d[-1] 10,0,0 -mul3d[-1] 1.2 -color3d[-1] @{-RGB} -done -add3d #@gmic n3d : eq. to '-normalize3d'. n3d : -_normalize3d #@gmic normalize3d #@gmic : Normalize selected 3d objects to unit size. #@gmic : (eq. to '-n3d'). #@gmic : $ -repeat 100 -circle3d {?(3)},{?(3)},{?(3)},0.1 -done -add3d -color3d[-1] 255,0,0 --normalize3d[-1] -color3d[-1] 0,255,0 -add3d normalize3d : -_$0 _normalize3d : -e[0--3] "Normalize size of 3d object$?." -v - -repeat @# -l[$>] n={i(0,6)} -if {$n>0} -sh 8,{7+3*$n},0,0 -r[-1] 3,{h/3},1,1,-1 -s[-1] x -sh[-4] 8,{7+3*$n},0,0 -/[-1] {val=max(@{-3,iM}-@{-3,im},@{-2,iM}-@{-2,im},iM-im);if(val,val,1)} -rm[-4--1] -endif -nm @{0,n},1 -endl -done -v + #@gmic o3d : eq. to '-opacity3d'. : (+) #@gmic opacity3d : opacity : (+) #@gmic : Set opacity of selected 3d objects. #@gmic : (eq. to '-o3d'). #@gmic : $ -torus3d 100,10 -double3d 0 -repeat 7 --rotate3d[-1] 1,0,0,20 -opacity3d[-1] {?} -done -add3d #@gmic parametric3d : _x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_isovalue>=0 #@gmic : Input 3d object from specified parametric surface (x(a,b),y(a,b),z(a,b)). #@gmic : Default values: 'x=(2+cos(b))*sin(a)', 'y=(2+cos(b))*cos(a)', 'c=sin(b)', 'amin=-pi', 'amax='pi', 'bmin=-pi', 'bmax='pi', #@gmic : 'res_a=512', 'res_b=res_a', 'res_x=64', 'res_y=res_x', 'res_z=res_y', 'smoothness=2%' and 'isovalue=10%'. #@gmic : $ -parametric3d , parametric3d : -skip "${1=(2+cos(b))*sin(a)}","${2=(2+cos(b))*cos(a)}","${3=sin(b)}" -skip ${4={-pi}},${5={pi}},${6={-pi}},${7={pi}} -check "${8=512}>0 && ${9=$8}>0 && ${10=64}>0 && ${11=$10}>0 && ${12=$11}>0 && \ ${13=2%}>=0 && ${14=10%}>=0" -e[^-1] "Input 3d object from parametric surface ($1,$2,$3)." -v - # Compute (x(a,b),y(a,b),z(a,b)) and normalize it. ($4,$5;$4,$5^$6,$6;$7,$7) -r[-1] $8,$9,1,2,3 -channels[-1] 0,2 -f[-1] "a=i(x,y,0,0);b=i(x,y,0,1);if(c==0,$1,if(c==1,$2,$3))" -sh[-1] 0,0 xmin={im} xmax={iM} -n[-1] 16,{$10-17} -rm[-1] -sh[-1] 1,1 ymin={im} ymax={iM} -n[-1] 16,{$11-17} -rm[-1] -sh[-1] 2,2 zmin={im} zmax={iM} -n[-1] 16,{$12-17} -rm[-1] -r[-1] {w*h},3,1,1,-1 # Extract 3d surface. -pointcloud[-1] 1 -r[-1] $10,$11,$12,1,0 -b[-1] $13,0 -isosurface3d[-1] $14 -c3d[-1] -n3d[-1] -*3d[-1] {$xmax-$xmin},{$ymax-$ymin},{$zmax-$zmin} -nm[-1] [3d\ parametric] -v + #@gmic pca_patch3d : _patch_size>0,_M>0,_N>0,_normalize_input={ 0 | 1 },_normalize_output={ 0 | 1 },_lambda_xy #@gmic : Get 3d patch-pca representation of selected images. #@gmic : The 3d patch-pca is estimated from M patches on the input image, and displayed as a cloud of N 3d points. #@gmic : Default values: 'patch_size=7', 'M=1000', 'N=3000', 'normalize_input=1', 'normalize_output=0', and 'lambda_xy=0'. #@gmic : $ image.jpg -pca_patch3d 7 pca_patch3d : -check "isint(${1=7}) && $1>0 && isint(${2=1000}) && $2>0 && isint(${3=3000}) && $3>0" -skip ${4=1},${5=0},${6=0} -e[^-1] "Get 3d patch-pca representation"@{-arg\ 1+(@#>1),s,""}" of image$?, from $2 $1x$1 input patchs, with $3 output patchs, input normalization "@{-arg\ 1+!$4,enabled,disabled}", output normalization "@{-arg\ 1+!$5,enabled,disabled}" and lambda_xy $6." -v - P1={int($1/2)} # Backward half-patch size. P2={$1-$P1-1} # Forward half-patch size. -n 0,255 -round 1 -repeat @# -l[$>] nm=@{0,n} s={s} # Pick set of M random located patchs. 1,$2 -rand[-1] 0,@{0,w-1} --rand[-1] 0,@{0,h-1} --f[-1] 0 -a[-3--1] x -round[-1] 1 --patches[0] $1,$1,1,@-1 -y[2--1] y -a[2--1] x -z[1] 0,1 -transpose[1] -*[1] $6 -a[1,2] y -s[^0] x # Normalize patch coordinates by using average and standard deviation. --+[^0] -/[-1] $2 --[1--2] [-1] -rm[-1] -a[^0] x -if $4 -l[-1] -s y -/ 'sqrt(1e-8+iv)' -a y -endl -endif # Do PCA for dimension reduction. --transpose[-1] -**[-2,-1] -eigen[-1] -rows[-2] 0,2 -columns[-1] 0,2 -transpose[-1] -if $5 -sqrt[-2] -/[-2] @{-2,M} -r[-2] [-1] -/[-1] [-2] -endif -rm[-2] # Pick set of N random located patchs. -repeat $3 x={round(?(@{0,w}))} y={round(?(@{0,h}))} ({$6*$x};{$6*$y}) --z[0] {$x-$P1},{$y-$P1},{$x+$P2},{$y+$P2},1 -y[-1] y -a[-2,-1] y -done # Generate 3d representation of the projected patch set. --a[2--1] x -**[1,-1] -transpose[1] # Vertex coordinates. -rows[2--1] 2,100% # Colors -if {$s!=3} -r[2--1] $1,$1,1,{min(3,$s)},-1 -r[2--1] $1,$1,1,3,{if($s!=1,0,1)} -y[2--1] y -endif -i[2--2] (-128;$1;$1;3) -a[2--1] y -rm[0] # Remove input image (now useless). -i[0] ({'CImg3d'}) # Header. -i[1] ($3;$3) # Geometry. -i[3] 2,$3,1,1,if(x==0,1,y) # Primitives. 1,$3,1,1,1 # Opacities. -y y -a[-6--1] y # Merge as a 3d object. -nm $nm,1 -endl -done -v + #@gmic plane3d : _size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0 #@gmic : Input 3d plane at (0,0,0), with specified geometry. #@gmic : Default values: 'size_x=1', 'size_y=size_x' and 'nb_subdivisions_x=nb_subdivisions_y=24'. #@gmic : $ -plane3d 50,30 --primitives3d 1 -color3d[-2] @{-RGB} plane3d : -check "${3=24}>0 && ${4=24}>0" -skip ${1=1},${2=$1} -e[^-1] "Input 3d plane, with size (${1,2}) and subdivisions (${3,4})." -v - {$3+1},{$4+1} -elevation3d[-1] 0 -*3d[-1] {$1/$3},{$2/$4} -col3d[-1] 200 -nm[-1] [3d\ plane] -v + #@gmic point3d : x0,y0,z0 #@gmic : Input 3d point at specified coordinates. #@gmic : $ -repeat 1000 a={$>*pi/500} -point3d {cos(3*$a)},{sin(2*$a)},0 -color3d[-1] @{-RGB} -done -add3d point3d : -e[^-1] "Input 3d point ($1,$2,$3)." -v - 1,17,1,1,67.5,73.5,109.5,103.5,51.5,100.5,1,1,${1-3},1,0,200,200,200,1 -nm[-1] [3d\ point] -v + #@gmic pointcloud3d #@gmic : Convert selected planar or volumetric images to 3d point clouds. #@gmic : $ image.jpg -luminance -resize2dy 100 -threshold 50% -* 255 -pointcloud3d -color3d[-1] 255,255,255 pointcloud3d : -e[^-1] "Convert image$? to 3d point clouds." -v - -repeat @# -l[$>] nm=@{0,n} -s z -repeat @# -l[$>] --norm -!=[-1] 0 -i[-2] (1,{w};1,{w}^1,1;{h},{h}) -r[-2] [-1],[-1],1,2,3 -*[-2,-1] -round[-1] -permute[-1] cxyz -l[-1] -s -,0 -a y is_points=@# -endl -if $is_points --[-1] 1 -r[-1] 2,{h/2},1,1,-1 -permute[-1] cyzx --warp[-2] [-1],0,0 -rm[-3] -permute[-2] cyzx -i[-2] 1,{h},1,1,$> -a[-3,-2] x # Coordinates. -i[-3] ({'CImg3d'}) -i[-3] ({h},{h}) # Header and size. -i[-2] 1,{h},1,1,1 -i[-2] 1,{h},1,1,y -a[-3,-2] x # Primitives. -permute[-1] cyzx # Colors. -if {w==1} -r[-1] 3,{h},1,1 -elif {w>3} -i[-2] 4,{h},1,1,-128,1,1,{w} -a[-2,-1] x -else -r[-1] 3,{h},1,1,0 -endif 1,{h},1,1,1 # Opacities. -y[-6--1] y -a[-6--1] y -else -rm -empty3d -endif -endl -done -+3d -nm $nm,1 -endl -done -v + #@gmic pose3d : value1,..,value16 : (noargs) : (+) #@gmic : Set the coefficients of the 3d pose matrix. #@gmic : (noargs) resets the 3d pose matrix to default. #@gmic p3d : eq. to '-primitives3d'. : (+) #@gmic primitives3d : mode : (+) #@gmic : Convert primitives of selected 3d objects. #@gmic : (eq. to '-p3d'). #@gmic : 'mode' can be { 0=points | 1=segments | 2=non-textured }. #@gmic : $ -sphere3d 30 -primitives3d 1 -torus3d 50,10 -color3d[-1] @{-RGB} -add3d #@gmic projections3d : _x[%],_y[%],_z[%],_is_bounding_box={ 0 | 1 } #@gmic : Generate 3d xy,xz,yz projection planes from specified volumetric images. projections3d : -skip ${1=50%},${2=50%},${3=50%},${4=1} -e[^-1] "Generate 3d xy,xz,yz projection planes from image$?." -v - -n 0,255 -repeat @# -l[$>] w={w} h={h} d={d} x={if(@{-is_percent\ $1},$1*w,$1)} y={if(@{-is_percent\ $2},$2*h,$2)} z={if(@{-is_percent\ $3},$3*d,$3)} --rows $2,$2 -r[-1] {w},{d},1,100%,-1 --columns[-2] $1,$1 -permute[-1] zyxc -slices[-3] $3,$3 -r[-3--1] 100%,100%,1,3 -imageplane3d[-3--1] -r3d[-1] 0,1,0,90 -r3d[-2] 1,0,0,-90 -+3d[-3] 0,0,$z -+3d[-2] 0,$y,0 -+3d[-1] $x,0,0 -+3d[-3--1] -o3d[-1] 0.8 -if $4 -box3d $w,$h,$d -p3d[-1] 1 -o3d[-1] 0.4 -+3d[-2,-1] -endif -endl -done -v + #@gmic pyramid3d : width,height #@gmic : Input 3d pyramid at (0,0,0), with specified geometry. #@gmic : $ -pyramid3d 100,100 --primitives3d 1 -color3d[-2] @{-RGB} pyramid3d : -e[^-1] "Input new 3d pyramid, with width $1 and height $2." -v - (67.5;73.5;109.5;103.5;51.5;100.5;\ # Magick number for CImg3d. 5;5;\ # Number of vertices and primitives. {-$1/2};{-$1/2};{-$2/2};\ # Vertex coordinates. {$1/2};{-$1/2};{-$2/2};\ {$1/2};{$1/2};{-$2/2};\ {-$1/2};{$1/2};{-$2/2};\ 0;0;{$2/2};\ 4;0;3;2;1;\ # Primitives description. 3;0;4;3;\ 3;1;4;0;\ 3;2;4;1;\ 3;3;4;2) 1,15,1,1,200 1,5,1,1,1 -a[-3--1] y -nm[-1] [3d\ pyramid] -v + #@gmic quadrangle3d : x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3 #@gmic : Input 3d quadrangle at specified coordinates. #@gmic : $ -quadrangle3d -10,-10,10,10,-10,10,10,10,10,-10,10,10 -repeat 10 --rotate3d[-1] 0,1,0,30 -color3d[-1] @{-RGB},0.6 -done -add3d -mode3d 2 quadrangle3d : -e[^-1] "Input 3d quadrangle ($1,$2,$3)-($4,$5,$6)-($7,$8,$9)-($10,$11,$12)." -v - 1,29,1,1,67.5,73.5,109.5,103.5,51.5,100.5,4,1,${1-12},4,0,1,2,3,200,200,200,1 -nm[-1] [3d\ quadrangle] -v + #@gmic rv3d : eq. to '-reverse3d'. : (+) #@gmic reverse3d : (+) #@gmic : Reverse primitive orientations of selected 3d objects. #@gmic : (eq. to '-rv3d'). #@gmic : $ -torus3d 100,40 -double3d 0 --reverse3d #@gmic r3d : eq. to '-rotate3d'. : (+) #@gmic rotate3d : u,v,w,angle : (+) #@gmic : Rotate selected 3d objects around specified axis with specified angle (in deg.). #@gmic : (eq. to '-r3d'). #@gmic : $ -torus3d 100,10 -double3d 0 -repeat 7 --rotate3d[-1] 1,0,0,20 -done -add3d #@gmic rotation3d : u,v,w,angle #@gmic : Input 3x3 rotation matrix with specified axis and angle (in deg). #@gmic : $ -rotation3d 1,0,0,0 -rotation3d 1,0,0,90 -rotation3d 1,0,0,180 rotation3d : -e[^-1] "Input 3d rotation matrix around axis ($1,$2,$3) with angle $4°." -v - ($1^$2^$3^0) -orientation[-1] -y[-1] x -*[-1] {sin($4*pi/360)} -=[-1] {cos($4*pi/360)},3 xx={i(0)*i(0)} xy={i(0)*i(1)} xz={i(0)*i(2)} xw={i(0)*i(3)} yy={i(1)*i(1)} yz={i(1)*i(2)} yw={i(1)*i(3)} zz={i(2)*i(2)} zw={i(2)*i(3)} -rm[-1] ({1-2*($yy+$zz)},{2*($xy+$zw)},{2*($xz-$yw)};\ {2*($xy-$zw)},{1-2*($xx+$zz)},{2*($yz+$xw)};\ {2*($xz+$yw)},{2*($yz-$xw)},{1-2*($xx+$yy)}) -nm[-1] [3d\ rotation] -v + #@gmic sierpinski3d : _recursion_level>=0,_width,_height #@gmic : Input 3d Sierpinski pyramid. #@gmic : $ -sierpinski3d 3 --primitives3d 1 -color3d[-2] @{-RGB} sierpinski3d : -check ${1=4}>=0 -skip ${2=1},${3=1} -e[^-1] "Input 3d Sierpinski pyramid of degree $1, with width $2 and height $3." -v - -l[] -_sierpinski3d {-$2/2},{-$2/2},{-$3/2},{$2/2},{-$2/2},{-$3/2},{$2/2},{$2/2},{-$3/2},{-$2/2},{$2/2},{-$3/2},0,0,{$3/2},$1 -+3d -endl -nm[-1] [3d\ sierpinski] -v + _sierpinski3d : -if {$16<=0} (67.5;73.5;109.5;103.5;51.5;100.5;\ 5;5;\ $1;$2;$3;\ $4;$5;$6;\ $7;$8;$9;\ $10;$11;$12;\ $13;$14;$15;\ 4;0;3;2;1;\ 3;0;4;3;\ 3;1;4;0;\ 3;2;4;1;\ 3;3;4;2) 1,15,1,1,200 1,5,1,1,1 -a[-3--1] y -return -endif -_sierpinski3d $1,$2,$3,\ {($1+$4)/2},{($2+$5)/2},{($3+$6)/2},\ {($1+$4+$7+$10)/4},{($2+$5+$8+$11)/4},{($3+$6+$9+$12)/4},\ {($1+$10)/2},{($2+$11)/2},{($3+$12)/2},\ {($1+$13)/2},{($2+$14)/2},{($3+$15)/2},\ {$16-1} -_sierpinski3d {($1+$4)/2},{($2+$5)/2},{($3+$6)/2},\ $4,$5,$6,\ {($4+$7)/2},{($5+$8)/2},{($6+$9)/2},\ {($1+$4+$7+$10)/4},{($2+$5+$8+$11)/4},{($3+$6+$9+$12)/4},\ {($4+$13)/2},{($5+$14)/2},{($6+$15)/2},\ {$16-1} -_sierpinski3d {($1+$4+$7+$10)/4},{($2+$5+$8+$11)/4},{($3+$6+$9+$12)/4},\ {($4+$7)/2},{($5+$8)/2},{($6+$9)/2},\ $7,$8,$9,\ {($7+$10)/2},{($8+$11)/2},{($9+$12)/2},\ {($7+$13)/2},{($8+$14)/2},{($9+$15)/2},\ {$16-1} -_sierpinski3d {($1+$10)/2},{($2+$11)/2},{($3+$12)/2},\ {($1+$4+$7+$10)/4},{($2+$5+$8+$11)/4},{($3+$6+$9+$12)/4},\ {($7+$10)/2},{($8+$11)/2},{($9+$12)/2},\ $10,$11,$12,\ {($10+$13)/2},{($11+$14)/2},{($12+$15)/2},\ {$16-1} -_sierpinski3d {($1+$13)/2},{($2+$14)/2},{($3+$15)/2},\ {($4+$13)/2},{($5+$14)/2},{($6+$15)/2},\ {($7+$13)/2},{($8+$14)/2},{($9+$15)/2},\ {($10+$13)/2},{($11+$14)/2},{($12+$15)/2},\ $13,$14,$15,\ {$16-1} #@gmic snapshot3d : _size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB #@gmic : Take 2d snapshots of selected 3d objects. #@gmic : Set 'zoom' to 0 to disable object auto-scaling. #@gmic : Default values: 'size=512', 'zoom=1' and 'backgroundR=backgroundG=backgroundB=(undefined)'. #@gmic : $ -torus3d 100,20 -snapshot3d 400,1.2,128,64,32 snapshot3d : -check "${1=512}>0 && ${2=1}>=0" -skip ${3=""} -if {narg($3)} -e[0--3] "Take $1x$1 snapshot$? of 3d object$?, with zoom factor $2 and background color ${3--1}." -else -e[0--3] "Take $1x$1 snapshot$? of 3d object$?, with zoom factor $2." -endif -v - -repeat @# -l[$>] -if {$2!=0} -c3d -n3d -*3d {3*$1*$2/4} -endif -if {narg($3)} (${3--1}) -y[-1] c -else 1,2,1,3,32,64,32,116,64,96 -endif -r[-1] $1,$1,1,3,3 -object3d[-1] [-2],50%,50%,0,1 -nm[-1] @{-2,n},1 -rm[-2] -endl -done -v + #@gmic sl3d : eq. to '-specl3d'. : (+) #@gmic specl3d : value>=0 : (+) #@gmic : Set lightness of 3d specular light. #@gmic : (eq. to '-sl3d'). #@gmic : $ (0,0.3,0.6,0.9,1.2) -repeat {w} -torus3d 100,30 -rotate3d[-1] 1,1,0,60 -color3d[-1] 255,0,0 -specl3d @{0,$>} -snapshot3d[-1] 400 -done -remove[0] #@gmic ss3d : eq. to '-specs3d'. : (+) #@gmic specs3d : value>=0 : (+) #@gmic : Set shininess of 3d specular light. #@gmic : (eq. to '-ss3d'). #@gmic : $ (0,0.3,0.6,0.9,1.2) -repeat {w} -torus3d 100,30 -rotate3d[-1] 1,1,0,60 -color3d[-1] 255,0,0 -specs3d @{0,$>} -snapshot3d[-1] 400 -done -remove[0] #@gmic sphere3d : radius,_nb_recursions>=0 : (+) #@gmic : Input 3d sphere at (0,0,0), with specified geometry. #@gmic : Default value: 'nb_recursions=3'. #@gmic : $ -sphere3d 100 --primitives3d 1 -color3d[-2] @{-RGB} #@gmic spherical3d : _nb_azimuth>=3,_nb_zenith>=3,_radius_function(phi,theta) #@gmic : Input 3d spherical object at (0,0,0), with specified geometry. #@gmic : Default values: 'nb_zenith=nb_azimut=64' and 'radius_function="abs(1+0.5*cos(3*phi)*sin(4*theta))"'. #@gmic : $ -spherical3d 64 --primitives3d 1 spherical3d : -check "${1=64}>=3 && ${2=$1}>=3" -skip "${3=abs(1+0.5*cos(3*phi)*sin(4*theta))}" -e[^-1] "Input 3d spherical object, with subdivisions ($1,$2) and height function '$3'." -v - ({'CImg3d'}) -y[-1] y # Magic number. n1={round($1)} n2={round($2)} # Define 3d vertices. $n1,{$n2-1},1,3,"phi=2*pi*(x+0.5)/w;\ theta=-pi/2+pi*(y+0.5)/h;\ cp=cos(phi);\ sp=sin(phi);\ ct=cos(theta);\ ($3)*if(c==0,ct*cp,if(c==1,ct*sp,sin(theta)))" -r[-1] {w*h},3,1,1,-1 -permute[-1] yxzc -i[-2] (0,0,{phi=0;theta=-pi/2;-$3};0,0,{phi=0;theta=pi/2;$3}) -a[-2,-1] y # Add the two poles. nbv={h} -y[-1] y # Define 3d primitives. $n1,{$n2-2},1,4,"nx=(x+1)%w;ny=(y+1);2+if(c==0,x+y*"$n1",if(c==1,nx+y*"$n1",if(c==2,nx+ny*"$n1",x+ny*"$n1")))" -r[-1] {w*h},4,1,1,-1 -permute[-1] yxzc -i[-2] 1,{h},1,1,4 -a[-2,-1] x 2,$n1,1,1,3,0 1,$n1,1,1,'y' --+[-1] 1 -%[-1] {h} 2,$n1,1,1,3,1 [-3,-2] # Connect the two poles. -+[-5,-4] 2 -rv[-5,-4] -+[-2,-1] {$nbv-$n1} -a[-3--1] x -a[-4--2] x nbp={h+@{-2,h}+@{-3,h}} -y[-3--1] y -a[-3--1] y # Define other object information (properties, colors and opacities). -i[-3] ($nbv;$nbp) 1,{3*$nbp},1,1,200 1,$nbp,1,1,1 -a[-2,-1] y # Append as a 3d object. -a[-5--1] y -nm[-1] "[3d spherical surface '$3']" -v + #@gmic s3d : eq. to '-split3d'. : (+) #@gmic spline3d : x0[%],y0[%],z0[%],u0[%],v0[%],w0[%],x1[%],y1[%],z1[%],u1[%],v1[%],w1[%],_nb_vertices>=2 #@gmic : Input 3d spline with specified geometry. #@gmic : Default values: 'nb_vertices=128'. #@gmic : $ -repeat 100 -spline3d {?},{?},{?},{?},{?},{?},{?},{?},{?},{?},{?},{?},128 -color3d[-1] @{-RGB} -done -box3d 1 -primitives3d[-1] 1 -+3d spline3d : -check ${13=128}>=2 -e[^-1] "Input new 3d spline from (${1-3}) [${4-6}] to (${7-9}) [${10-12}] with $13 vertices." -v - ({'CImg3d'}) -+[-1] 0.5 # Header. ($13;{$13-1}) # Nb vertices / primitives. # Define vertices. 1,$13,1,1,1 (0;1) -r[-1] 1,$13,1,1,3 --sqr[-1] --*[-2,-1] -a[-4--1] x --*[-1] '$2,$5,{3*(($8)-($2))-2*($5)-($11)},{($5)+($11)+2*(($2)-($8))}' -l[-1] -s x -+ -endl --*[-2] '$3,$6,{3*(($9)-($3))-2*($6)-($12)},{($6)+($12)+2*(($3)-($9))}' -l[-1] -s x -+ -endl -*[-3] '$1,$4,{3*(($7)-($1))-2*($4)-($10)},{($4)+($10)+2*(($1)-($7))}' -l[-3] -s x -+ -endl -a[-3--1] x 1,{$13-1},1,1,2 (0,1;{$13-2},{$13-1}) -r[-1] 2,[-2],1,1,3 -round[-1] -a[-2,-1] x # Primitives. 1,{3*($13-1)},1,1,200 1,{$13-1},1,1,1 # Colors / opacities. -y[-3,-4,-6] y -a[-6--1] y -v + #@gmic split3d : (+) #@gmic : Split selected 3d objects into 6 feature vectors : #@gmic : { header, sizes, vertices, primitives, colors, opacities }. #@gmic : (eq. to '-s3d'). #@gmic : To recreate the 3d object, append these 6 images along the y-axis. #@gmic : $ -box3d 100 --split3d #@gmic sprite3d #@gmic : Convert selected images as 3d sprites. #@gmic : Selected image with alpha channels are managed. #@gmic : $ image.jpg -sprite3d sprite3d : -e[^-1] "Convert image$? as 3d sprites." -v - -repeat @# -l[$>] nm=@{0,n} -split_opacity -i[0] (67.5;73.5;109.5;103.5;51.5;100.5;1;1;0;0;0;1;0;-128;{w};{h};@{0,s}) -y[1] y -if {@#==2} (1) -a y -else -/[-1] 255 -i[-2] (-128;{w};{h};{s}) -y[-1] y -endif -a y -nm $nm,1 -endl -done -v + #@gmic sprites3d #@gmic : Convert selected 3d objects as sprites clouds, where the specified 2d sprite is the last selected image. #@gmic : If the selected sprite has a 4th channel, it stands for the sprite alpha-channel (in [0,255]). #@gmic : $ -torus3d 100,20 image.jpg -resize2dy[-1] 64 100%,100% -gaussian[-1] 30%,30% -*[-1] 255 -append[-2,-1] c --sprites3d -drgba[-2] sprites3d : -e[^-1] "Convert image$? as 3d sprites clouds." -v - -repeat {@#-1} -if {!@{$>,(0,7)}} -continue -endif # Do nothing if 3d object is initially empty. [-1] -l[$>,-1] -s3d[0] N=@{1,0} -=[1] $N,0,1 -rm[3-5] -i[3] (1,0;1,{$N-1}) -r[3] 2,$N,1,1,3 -round[3] -if {s==4} -s[-1] c,-3 -/[-1] 255 -i[-3] (-128;{w};{h};3) -if {$N>1} -i[-2] 1,{4*($N-1)},1,1,-128,0,0,0 -endif -i[-2] (-128;{w};{h};1) -if {$N>1} 1,{4*($N-1)},1,1,-128,0,0,0 -endif -else -i[-2] (-128;{w};{h};{s}) -y[-3,-1] y -if {$N>1} 1,{4*($N-1)},1,1,-128,0,0,0 -endif 1,$N,1,1,1 -endif -y y -a y -endl -done -rm[-1] -v + #@gmic star3d : nb_branches>0,0<=thickness<=1 #@gmic : Input 3d star at (0,0,0), with specified geometry. #@gmic : Default values: 'nb_branches=5' and 'thickness=0.38'. #@gmic : $ -star3d , --primitives3d 1 -color3d[-2] @{-RGB} star3d : -check "${1=5}>0 && ${2=0.38}>=0 && $2<=1" -e[^-1] "Input 3d star, with $1 branches and thickness $2." -v - N={2*$1} ({'CImg3d'}) -+[-1] 0.5 ({$N+1};$N) ({-pi/2};{3*pi/2}) -r[-1] 1,{$N+1},1,1,3 -rows[-1] 0,{h-2} --sin[-1] -cos[-2] -a[-2,-1] x (1,1;$2,$2) -*[-2,-1] -z[-1] 0,2 -r[-1] 3,{h+1},1,1,0 (3,$N,1,0;3,$N,$N,{$N-1}) -r[-1] 4,$N,1,1,3 -=[-1] 0,2,100% 3,$N,1,1,200 1,$N,1,1,1 -y[-6,-4--2] y -a[-6--1] y -nm[-1] [3d\ star] -v + #@gmic streamline3d : x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 } : 'formula',x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={ 0 | 1 },_is_oriented={ 0 | 1 } : (+) #@gmic : Extract 3d streamlines from selected vector fields or from specified formula. #@gmic : 'interpolation' can be { 0=nearest integer | 1=1st-order | 2=2nd-order | 3=4th-order }. #@gmic : Default values: 'dl=0.1', 'interpolation=2', 'is_backward=0' and 'is_oriented=0'. #@gmic : $ 100,100,100,3 -rand -10,10 -blur 3 -repeat 300 --streamline3d[0] {?(100)},{?(100)},{?(100)},1000,1,1 -color3d[-1] @{-RGB} -done -rm[0] -box3d 100 -primitives3d[-1] 1 -add3d #@gmic -3d : eq. to '-sub3d'. : (+) #@gmic sub3d : tx,_ty,_tz : (+) #@gmic : Shift selected 3d objects with the opposite of specified displacement vector. #@gmic : (eq. to '--3d'). #@gmic : Default values: 'ty=tz=0'. #@gmic : $ -sphere3d 10 -repeat 5 --sub3d[-1] 10,{?(-10,10)},0 -color3d[-1] @{-RGB} -done -add3d #@gmic superformula3d : resolution>1,m>=1,n1,n2,n3 #@gmic : Input 2d superformula curve as a 3d object. #@gmic : Default values: 'resolution=1024', 'm=8', 'n1=1', 'n2=5' and 'n3=8'. #@gmic : $ -superformula3d , superformula3d : -check "${1=1024}>1 && ${2=8}>=1" -skip ${3=1},${4=5},${5=8} -e[^-1] "Input 2d superformula curve, with resolution $1, m=$2 and (n1,n2,n3)=($3,$4,$5)." -v - res={round($1)} # Define object header and vertices. (67.5;73.5;109.5;103.5;51.5;100.5;$res;{$res-1}) (0,{2*pi}) -r[-1] $res,1,1,1,3 [-1] -*[-1] {$2/4} --sin[-1] -cos[-2] -abs[-2,-1] -^[-2] $4 -^[-1] $5 -+[-2,-1] -^[-1] {-1/$3} --sin[-2] -cos[-3] -*[-1] [-2] -*[-3,-2] -n[-2,-1] -1,1 -a[-2,-1] y -rows[-1] 0,2 -transpose[-1] -r[-1] 1,{w*h},1,1,-1 # Define object primitives, colors and opacities. 1,{$res-1},1,1,2 (0;{$res-2}) -r[-1] 1,{$res-1},1,1,3 --+[-1] 1 -a[-3--1] x -round[-1] 1 -r[-1] 1,{w*h},1,1,-1 1,{3*($res-1)},1,1,200 1,{$res-1},1,1,1 -a[-5--1] y -nm[-1] [3d\ superformula] -v + #@gmic text_pointcloud3d : _"text1",_"text2",_smoothness #@gmic : Input 3d text pointcloud from the two specified strings. #@gmic : Default values: 'text1="text1"', 'text2="text2"' and 'smoothness=1'. #@gmic : $ -text_pointcloud3d "G'MIC","Rocks!" text_pointcloud3d : -skip ${1="text1"},${2="text2"},${3=1} -e[^-1] "Input 3d pointcloud text object from strings '$1' and '$2', with smoothness $3." -v - 0 -t[-1] "$1",0,0,57,1,1 0 -t[-1] "$2",0,0,57,1,1 -mirror[-1] y -expand_xy[-2,-1] 2,0 -dilate[-2,-1] 2 -permute[-1] zyxc -r[-2,-1] @{-max_whd} -and[-2,-1] 100%,100% -rand[-1] 0,{@{-2,d}-1} -round[-1] -r[-1] [-2] -f[-1] 'if(z==i,1,0)' -distance[-1] 1 -+[-1] 1 --f[-1] 1 -rv[-2,-1] -/[-2,-1] -*[-1] [-2] --dilate[-1] 0,0,{d} -==[-2,-1] -*[-1] [-2] 1,100%,100% -rand[-1] 0,{@{-2,w}-1} -round[-1] -r[-1] [-2] -f[-1] 'if(x==i,1,0)' -distance[-1] 1 -+[-1] 1 --f[-1] 1 -rv[-2,-1] -/[-2,-1] -*[-1] [-3] --dilate[-1] 0,0,{d} -==[-2,-1] -*[-3,-1] -or[-2,-1] -b[-1] $3 -isosurface3d[-1] 25% -c3d[-1] -n3d[-1] -nm[-1] "[3d text pointcloud]" -v + #@gmic text3d : text,_font_height>0,_depth>0,_smoothness #@gmic : Input a 3d text object from specified text. #@gmic : Default values: 'font_height=57', 'depth=10' and 'smoothness=1.5'. #@gmic : $ -text3d "G'MIC as a\n3D logo!" text3d : -skip ${2=57},${3=10},${4=1.5} -e[^-1] "Input 3d text object '$1' with size $2, depth $3 and smoothness $4." -v - 0 -t[-1] "$1",0,0,$2,1,1 -autocrop[-1] 0 -r[-1] 100%,100%,$3 -expand_xyz[-1] 10,0 -b[-1] $4 -isosurface3d[-1] 40% -rv3d[-1] -nm[-1] "[3d text '$1']" -v + #@gmic t3d : eq. to '-texturize3d'. : (+) #@gmic texturize3d : [ind_texture],_[ind_coords] : (+) #@gmic : Texturize selected 3d objects with specified texture and coordinates. #@gmic : (eq. to '-t3d'). #@gmic : When '[ind_coords]' is omitted, default XY texture projection is performed. #@gmic : Default value: 'ind_coords=(undefined)'. #@gmic : $ image.jpg -torus3d 100,30 -texturize3d[-1] [-2] -keep[-1] #@gmic torus3d : _radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2 #@gmic : Input 3d torus at (0,0,0), with specified geometry. #@gmic : Default values: 'radius1=1', 'radius2=0.3', 'nb_subdivisions1=24' and 'nb_subdivisions2=12'. #@gmic : $ -torus3d 10,3 --primitives3d 1 -color3d[-2] @{-RGB} torus3d : -check "${3=24}>2 && ${4=12}>2" -skip ${1=1},${2=0.3} -e[^-1] "Input 3d torus, with radii ($1,$2) and subdivisions ($3,$4)." -v - # Header. nbp={$3*$4} 1,8,1,1,67.5,73.5,109.5,103.5,51.5,100.5,$nbp,{$4*$3} # Vertices. (0;{2*pi}) --y[-1] x -r[-2] 1,{$3+1},1,1,3 -z[-2] 0,0,0,{$3-1} -r[-1] {$4+1},1,1,1,3 -z[-1] 0,{$4-1} --sin[-2,-1] -cos[-4,-3] -r[-4--1] $4,$3 -*[-3] $2 -+[-3] $1 -*[-1] $2 -*[-4] [-3] -*[-3,-2] -y[-3--1] y -a[-3--1] x # Primitives. 1,$3,1,1,'y' -*[-1] $4 --shift[-1] 0,-1 $4,1,1,1,'x' --shift[-1] -1 -r[-4--1] $4,$3 --+[-4,-1] -+[-2] [-4] -+[-5] [-3] -+[-4,-3] -y[-4--1] y -i[-5] 1,{h},1,1,4 -a[-5--1] x # Colors / opacities. 3,{h},1,1,200 1,{h},1,1,1 -y[-4--2] y -a[-5--1] y -nm[-1] [3d\ torus] -v + #@gmic triangle3d : x0,y0,z0,x1,y1,z1,x2,y2,z2 #@gmic : Input 3d triangle at specified coordinates. #@gmic : $ -repeat 100 a={$>*pi/50} -triangle3d 0,0,0,0,0,3,{cos(3*$a)},{sin(2*$a)},0 -color3d[-1] @{-RGB} -done -add3d triangle3d : -e[^-1] "Input 3d triangle ($1,$2,$3)-($4,$5,$6)-($7,$8,$9)." -v - 1,25,1,1,67.5,73.5,109.5,103.5,51.5,100.5,3,1,${1-9},3,0,1,2,200,200,200,1 -nm[-1] [3d\ triangle] -v + #@gmic volume3d #@gmic : Transform selected 3d volumetric images as 3d parallelepipedic objects. #@gmic : $ image.jpg -animate blur,0,5,30 -a z -volume3d volume3d : -e[^-1] "Transform image$? as 3d parallelepipedic objects." -v - -repeat @# -l[$>] w={w} h={h} d={d} --slices 0 --slices[0] 100% -mirror[-1] y --columns[0] 0 --columns[0] 100% -permute[-2,-1] zyxc -mirror[-2] x --rows[0] 0 --rows[0] 100% -permute[-2,-1] xzyc -mirror[-2] y -rm[0] -image6cube3d -*3d $w,$h,$d -endl -done -v + #@gmic weird3d : _resolution>0 #@gmic : Input 3d weird object at (0,0,0), with specified resolution. #@gmic : Default value: 'resolution=32'. #@gmic : $ -weird3d 48 --primitives3d 1 -color3d[-2] @{-RGB} weird3d : -skip ${1=32} -e[^-1] "Input 3d weird object, with resolution $1." -v - -isosurface3d "'\ T = 1.61803399;\ 2 - (cos(x + T*y) + cos(x - T*y) + cos(y + T*z) + cos(y - T*z) + cos(z - T*x) + cos(z + T*x))\ '",0,-4.7,-4.7,-4.7,4.7,4.7,4.7,$1,$1,$1 -c3d[-1] -n3d[-1] -nm[-1] [3d\ weird] -v + #------------------------------- # #@gmic :: Program controls # #------------------------------- #@gmic apply_parallel : "command" : (*) #@gmic : Apply specified command on each of the selected images, by parallelizing it for all image of the list. #@gmic : $ image.jpg --mirror x --mirror y -apply_parallel "-blur 3" apply_parallel : -v - -if {@.>1570} M=@* -else M=8 -endif -v + -e[^-1] "Execute command '$*' on all image$? in parallel, using "$M" threads." -v - -m "_apply_parallel : $*" N=@# -l[] -repeat $M ({'-_apply_parallel[$>]'}) -done -if {@#>1} -i[1--2] ({','}) -endif -a x arg0=@{-1,t} -rm -if {$N%$M} -repeat {$N%$M} ({'-_apply_parallel[$>]'}) -done -if {@#>1} -i[1--2] ({','}) -endif -a x arg1=@{-1,t} -rm -endif -endl -repeat {round(@#/$M,1,1)} -l[{$M*$>}-{min($M*$>+$M-1,@#-1)}] -parallel ${arg{@#!=$M}} -endl -done -uncommand _apply_parallel -v + #@gmic apply_parallel_overlap : "command",overlap[%],nb_threads={ 0=auto | 1 | 2 | 4 | 8 | 16 } #@gmic : Apply specified command on each of the selected images, by parallelizing it on 'nb_threads' overlapped sub-images. #@gmic : 'nb_threads' must be a power of 2. #@gmic : Default values: 'overlap=0','nb_threads=0'. #@gmic : $ image.jpg --apply_parallel_overlap "-smooth 500,0,1",16 apply_parallel_overlap : -check "${2=0}>=0 && isint(${3=0}) && $3>=0" -v - -if {@.>1570} N={if($3,max(1,round($3)),@*)} -else N={if($3,max(1,round($3)),4)} -endif N={2^int(log2(min(16,$N)))} -v + -e[^-1] "Apply parallelized command '$1' on image$?, with overlap $2 and "$N" threads." -v - -repeat @# -l[$>] -_apply_parallel_overlap$N "$1",$2 -endl -done -v + _apply_parallel_overlap1 : $1 _apply_parallel_overlap2 : -if {w>=h} ovx={round(if(@{"-is_percent $2"},w*$2,$2))} w2={int(w/2)} --z[0] {$w2-$ovx},100% -z[0] 0,{$w2+$ovx-1} -parallel "-l[0] $1 -endl","-l[1] $1 -endl" -z[0] 0,@{0,w-1-$ovx} -z[1] $ovx,100% -a x -else ovy={round(if(@{"-is_percent $2"},h*$2,$2))} h2={int(h/2)} --rows[0] {$h2-$ovy},100% -rows[0] 0,{$h2+$ovy-1} -parallel "-l[0] $1 -endl","-l[1] $1 -endl" -rows[0] 0,@{0,h-1-$ovy} -rows[1] $ovy,100% -a y -endif _apply_parallel_overlap4 : ovx={round(if(@{"-is_percent $2"},w*$2,$2))} w2={int(w/2)} ovy={round(if(@{"-is_percent $2"},h*$2,$2))} h2={int(h/2)} --z[0] {$w2-$ovx},0,100%,{$h2+$ovy-1} --z[0] 0,{$h2-$ovy},{$w2+$ovx-1},100% --z[0] {$w2-$ovx},{$h2-$ovy},100%,100% -z[0] 0,0,{$w2+$ovx-1},{$h2+$ovy-1} -parallel "-l[0] $1 -endl","-l[1] $1 -endl","-l[2] $1 -endl","-l[3] $1 -endl" -z[0] 0,0,@{0,w-1-$ovx},@{0,h-1-$ovy} -z[1] $ovx,0,100%,@{1,h-1-$ovy} -z[2] 0,$ovy,@{2,w-1-$ovx},100% -z[3] $ovx,$ovy,100%,100% -a[0,1] x -a[1,2] x -a y _apply_parallel_overlap8 : -_apply_parallel_overlap2 "-_apply_parallel_overlap4 \"$1\",$2",$2 _apply_parallel_overlap16 : -_apply_parallel_overlap4 "-_apply_parallel_overlap4 \"$1\",$2",$2 #@gmic check : expression : (*) #@gmic : Evaluate specified expression and display an error message if evaluated to false. #@gmic : If 'expression' is not evaluable, it is regarded as a filename and checked if it exists. #@gmic continue : (*) #@gmic : Go to end of current block 'repeat..done', 'do..while' or 'local..endlocal'. #@gmic : $ image.jpg -repeat 10 -blur 1 -if {1==1} -continue -endif -deform 10 -done #@gmic break : (*) #@gmic : Break current 'repeat..done', 'do..while' or 'local..endlocal' block. #@gmic : $ image.jpg -repeat 10 -blur 1 -if {1==1} -break -endif -deform 10 -done #@gmic do : (*) #@gmic : Start a 'do..while' block. #@gmic : $ image.jpg -luminance i={ia+2} -do -set 255,{?(100)}%,{?(100)}% -while {ia<$i} #@gmic done : (*) #@gmic : End a 'repeat..done' block, and go to associated '-repeat' position, if iterations remain. #@gmic elif : boolean : filename : (*) #@gmic : Start a 'elif..[else]..endif' block if previous '-if' was not verified #@gmic : and test if specified boolean is true, or if specified filename exists. #@gmic : 'boolean' can be a float number standing for { 0=false | other=true }. #@gmic else : (*) #@gmic : Execute following commands if previous '-if' or '-elif' conditions failed. #@gmic endif : (*) #@gmic : End a 'if..[elif]..[else]..endif' block. #@gmic endl : eq. to '-endlocal'. : (*) #@gmic endlocal : (*) #@gmic : End a 'local..endlocal' block. #@gmic : (eq. to '-endl'). #@gmic error : message : (*) #@gmic : Print specified error message on the standard error (stderr) and exit interpreter, except #@gmic : if error is caught by a '-onfail' command. #@gmic : Command subset (if any) stands for displayed scope indices instead of image indices. #@gmic x : eq. to '-exec'. : (*) #@gmic exec : command : (*) #@gmic : Execute external command using a system call. #@gmic : The status value is then set to the error code returned by the system call. #@gmic : (eq. to '-x'). #@gmic if : boolean : filename : (*) #@gmic : Start a 'if..[elif]..[else]..endif' block and test if specified boolean is true, #@gmic : or if specified filename exists. #@gmic : 'boolean' can be a float number standing for { 0=false | other=true }. #@gmic : $ image.jpg -if {ia<64} -add 50% -elif {ia<128} -add 25% -elif {ia<192} -sub 25% -else -sub 50% -endif -cut 0,255 #@gmic l : eq. to '-local'. : (*) #@gmic local : (*) #@gmic : Start a 'local..[onfail]..endlocal' block, with selected images. #@gmic : (eq. to '-l'). #@gmic : $ image.jpg -local[] 300,300,1,3 -rand[0] 0,255 -blur 4 -sharpen 1000 -endlocal #@gmic : $ image.jpg --local -repeat 3 -deform 20 -done -endlocal #@gmic onfail : (*) #@gmic : Execute following commands when an error is encountered in the body of the 'local..endlocal' block. #@gmic : The status value is set with the corresponding error message. #@gmic : $ image.jpg --local -blur -3 -onfail -mirror x -endlocal #@gmic parallel : "command1","command2",... : (*) #@gmic : Execute specified commands in parallel, each in a different thread. #@gmic : All running threads share the current list of images. #@gmic : $ image.jpg [0] -parallel "-blur[0] 3","-mirror[1] c" # The implementation of '-parallel' below may replace the native command for older versions of G'MIC (<1.5.7.0). parallel : -v - $=arg -repeat $# -_parallel ${arg{1+$>}} -done -v + _parallel : $* #@gmic progress : 0<=value<=100 : -1 : (*) #@gmic : Set the progress indice of the current processing pipeline. #@gmic : This command is useful only when G'MIC is used by an embedding application. #@gmic q : eq. to '-quit'. : (*) #@gmic quit : (*) #@gmic : Quit interpreter. #@gmic : (eq. to '-q'). #@gmic repeat : nb_iterations : (*) #@gmic : Start iterations of a 'repeat..done' block. #@gmic : $ image.jpg -split y -repeat @# -shift[$>] $<,0,0,0,2 -done -append y #@gmic : $ image.jpg -mode3d 2 -repeat 4 -imagecube3d -rotate3d 1,1,0,40 -snapshot3d 400,1.4 -done #@gmic return : (*) #@gmic : Return from current custom command. #@gmic rprogress : 0<=value<=100 | -1 | "command",0<=value_min<=100,0<=value_max<=100 #@gmic : Set the progress indice of the current processing pipeline (relatively to #@gmic : previously defined progress bounds), or call the specified command with #@gmic : specified progress bounds. rprogress : -skip ${2=""} -v - -if {!narg($_progress_bounds)} _progress_bounds=0,100 -endif m={arg(-2,$_progress_bounds)} M={arg(-1,$_progress_bounds)} -if {$#==2&&!narg($2)} # 1 argument -> Set progress bar. -v + -e[0--3] "Set relative progress indice to $1%." -v - -progress {if($1<0,-1,min(100,max(0,$m+($M-$m)*$1%)))} -elif {$#==3} # 3 arguments -> Call command with specified bounds. nm={min($2,$-1)} nM={max($2,$-1)} -v + -e[0--3] "Call command '$1' with progress bounds ["$nm,$nM"]." -v - -progress $m _progress_bounds=$_progress_bounds,{$m+$nm*($M-$m)/100},{$m+$nM*($M-$m)/100} # Push new bounds. -_rprogress "$1" -progress $M ($_progress_bounds) _progress_bounds=@{-1,0--3} -rm[-1] # Pop bounds. -else -error[0--3] "Command '-rprogress' : Invalid argument '$*'." -endif -v + _rprogress : $* #@gmic skip : item : (*) #@gmic : Do nothing but skip specified item. #@gmic u : eq. to '-status'. : (*) #@gmic status : value : (*) #@gmic : Set current status value. Used to define a returning value in a function. #@gmic : (eq. to '-u'). #@gmic : $ image.jpg -command "foo : u0=Dark u1=Bright -status ${u{ia>=128}}" -text_outline @{-foo},2,2,24,2,1,255 #@gmic while : boolean : filename : (*) #@gmic : End a 'do..while' block and go back to associated '-do' #@gmic : if specified boolean is true or if specified filename exists. #@gmic : 'boolean' can be a float number standing for { 0=false | other=true }. #---------------------------------- # #@gmic :: Arrays, tiles and frames # #---------------------------------- #@gmic array : M>0,_N>0,_expand_type={ 0=min | 1=max | 2=all } #@gmic : Create MxN array from selected images. #@gmic : Default values: 'N=M' and 'expand_type=0'. #@gmic : $ image.jpg -array 3,2,2 array : -check "isint($1) && $1>0 && isint(${2=$1}) && $2>0" -skip ${3=0} -e[^-1] "Create $1x$2 array from image$?, with expand type $3." -v - r0={100/max($1,$2)} r1={100/min($1,$2)} r2=100 -r ${r$3}%,${r$3}%,1,100%,2 -r {$1*100}%,{$2*100}%,1,100%,0,2 -v + #@gmic array_fade : M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0=min | 1=max | 2=all} #@gmic : Create MxN array from selected images. #@gmic : Default values: 'N=M', 'fade_start=60', 'fade_end=90' and 'expand_type=1'. #@gmic : $ image.jpg -array_fade 3,2 array_fade : -skip ${2=$1},${3=60},${4=90},${5=1} -e[^-1] "Create $1x$2 array of ($3%,$4%) faded tiles from image$?, with expand type $5." -v - -repeat @# -l[$>] [-1] -shift[-2] 50%,50%,1,1,2 -fade_diamond $3,$4 -endl -done -array $1,$2,$5 -v + #@gmic array_mirror : N>=0,_dir={ 0=x | 1=y | 2=xy | 3=tri-xy },_expand_type={ 0 | 1 } #@gmic : Create 2^Nx2^N array from selected images. #@gmic : Default values: 'dir=2' and 'expand_type=0'. #@gmic : $ image.jpg -array_mirror 2 array_mirror : -skip ${2=2},${3=0} -e[^-1] "Create a 2^$1x2^$1 mirrored-array from image$?, with expand type $2." -v - -repeat $1 -if {$3==0} -if {$2>=3} -r 33%,33%,100%,100%,2 -else -r 50%,50%,100%,100%,2 -endif -endif -repeat @# -l[$>] -if {$2==0} --mirror x -a x -elif {$2==1} --mirror y -a y -else --mirror x -a x --mirror y -a y -if {$2==3} -r 150%,150%,1,100%,0,2,1,1 -endif -endif -endl -done -done -v + #@gmic array_random : Ms>0,_Ns>0,_Md>0,_Nd>0 #@gmic : Create MdxNd array of tiles from selected MsxNs source arrays. #@gmic : Default values: 'Ns=Ms', 'Md=Ms' and 'Nd=Ns'. #@gmic : $ image.jpg --array_random 8,8,15,10 array_random : -skip ${2=$1},${3=$1},${4=$2} -e[^-1] "Create $3x$4 array of tiles from $1x$2 array$?." -v - -repeat @# -l[$>] nm=@{0,n} -split_tiles $1,$2 -repeat $3 -repeat $4 [{?($1*$2-1)}] -done -done -rm[0-{$1*$2-1}] -append_tiles $3,$4 -nm $nm,1 -endl -done -v + #@gmic frame : eq. to '-frame_xy'. frame : -check "$1>=0 && ${2=$1}>=0" -skip ${3=255},${4=$3},${5=$4},${6=255} -v - __s="?" -v + -_frame_xy ${1--1} #@gmic frame_blur : _sharpness>0,_size>=0,_smoothness,_shading,_blur #@gmic : Draw RGBA-colored round frame in selected images. #@gmic : Default values: 'sharpness=10', 'size=30', 'smoothness=0', 'shading=1' and 'blur=3%'. #@gmic : $ image.jpg -frame_blur 3,30,8,10% frame_blur : -skip ${1=10},${2=30},${3=0},${4=1},${5=3%} -e[^-1] "Draw round frame on image$?, with sharpness $1, size $2, smoothness $3, shading $4 and blur $5." -v - -to_rgba -repeat @# -l[$>] nm=@{0,n} 100%,100%,1,1,"-(abs(x/w-0.5)^$1 + abs(y/h-0.5)^$1)^(1/$1)" -ge[-1] $2% -if $4 -distance[-1] 1 -n[-1] 0,1 -*[-1] -1 -+[-1] 1 -^[-1] {1/$4} -endif -b[-1] $3 --b[-2] $5 -mv[-1] -3 -blend_fade -nm $nm,1 -endl -done -v + #@gmic frame_cube : _depth>=0,_x_center,_y_center,_left_side={0=normal | 1=mirror-x | 2=mirror-y | 3=mirror-xy},_right_side,_lower_side,_upper_side #@gmic : Insert 3d frames in selected images. #@gmic : Default values: 'depth=1', 'x_center=y_center=0' and 'left_side=right_side,lower_side=upper_side=0'. #@gmic : $ image.jpg -frame_cube , frame_cube : -check "${1=1}>=0" -skip ${2=0},${3=0},${4=0},${5=0},${6=0},${7=0} -e[^-1] "Insert 3d frame in image$?, with depth $1, center ($2,$3) and orientations (${4--1})." -v - -repeat @# -l[$>] nm=@{0,n} -split_opacity -if {@#==2} -frame_cube ${1--1} -a c # Manage image with alpha-channel. -else m={max(w,h)} w={w} h={h} s={s} -imageplane3d -c3d -/3d[-1] $w,$h,1 --_frame_cube[0] $4 -r3d[-1] 0,1,0,90 -+3d[-1] -0.5,0,-0.5 # Left side. --_frame_cube[0] $5 -r3d[-1] 0,1,0,-90 -+3d[-1] 0.5,0,-0.5 # Right side. --_frame_cube[0] $6 -r3d[-1] 1,0,0,90 -+3d[-1] 0,0.5,-0.5 # Lower side. --_frame_cube[0] $7 -r3d[-1] 1,0,0,-90 -+3d[-1] 0,-0.5,-0.5 # Upper side. -+3d 0,0,1 -+3d -*3d $w,$h,$m # Append sides together. f=1000 cx=$2*$w/2*($f+$m*$1)/$f cy=$3*$h/2*($f+$m*$1)/$f -s3d -r[2] 3,{@{2,h}/3},1,1,-1 -f[2] "if(i(2,y)<0.5,i,i+if(x==0,"$cx",if(x==1,"$cy",($1-1)*"$m")))" -y[2] y -a y -*3d 2 {2*$w},{2*$h},1,$s -f3d {2*$f} -object3d[-1] [-2],50%,50%,0,1,2,0,0 -rm[-2] -r $w,$h,1,100%,2 -endif -nm $nm,1 -endl -done -v + _frame_cube : -if {$1==1} -r3d[-1] 0,1,0,180 -rv3d[-1] -elif {$1==2} -r3d[-1] 1,0,0,180 -rv3d[-1] -elif {$1==3} -r3d[-1] 0,0,1,180 -endif #@gmic frame_fuzzy : size_x>=0,_size_y>=0,_fuzzyness>=0,_smoothness>=0,_R,_G,_B,_A #@gmic : Draw RGBA-colored fuzzy frame in selected images. #@gmic : Default values: 'size_y=size_x', 'fuzzyness=5', 'smoothness=1' and 'R=G=B=A=255'. #@gmic : $ image.jpg -frame_fuzzy 20 frame_fuzzy : -skip ${2=$1},${3=5},${4=1},${5=255},${6=$5},${7=$6},${8=255} -e[^-1] "Draw $1x$2 fuzzy frame on image$?, with fuzzyness $3, smoothness $4 and RGBA color ($5,$6,$7,$8)." -v - -to_rgba -repeat @# -l[$>] nm=@{0,n} -i[0] ($1;$2) -*[0] 2 ($5^$6^$7^$8) -r[-1] [-2] 100%,100% -rectangle[-1] 0,0,100%,@{0,1},1,1 -rectangle[-1] 0,0,@{0,0},100%,1,1 -rm[0] -shift[-1] -$1,-$2,0,0,2 -spread[-1] $3 -b[-1] $4 -_fade 50,80 -nm $nm,1 -endl -done -v + #@gmic frame_painting : _size[%]>=0,0<=_contrast<=1,_profile_smoothness[%]>=0,_R,_G,_B,_vignette_size[%]>=0,_vignette_contrast>=0,_defects_contrast>=0,0<=_defects_density<=100,_defects_size>=0,_defects_smoothness[%]>=0,_serial_number #@gmic : Add a painting frame to selected images. #@gmic : Default values: 'size=10%', 'contrast=0.4', 'profile_smoothness=6%', 'R=225', 'G=200', 'B=120', 'vignette_size=2%', 'vignette_contrast=400', 'defects_contrast=50', 'defects_density=10', 'defects_size=1', 'defects_smoothness=0.5%' and 'serial_number=123456789'. #@gmic : $ image.jpg -frame_painting , frame_painting : -check "${1=10%}>=0 && ${2=0.4}>=0 && $2<=1 && ${3=6%}>=0 && ${7=2%}>=0 && ${8=400}>=0 && ${9=50}>=0 && ${10=10}>=0 && $10<=100 && ${11=1}>=0 && ${12=0.5%}>=0" -skip ${4=225},${5=200},${6=120},${13=123456789} -e[^-1] "Add painting frame to image$?, with size $1, contrast $2, profile smoothness $3, color (${4-6}), vignette size $7, "\ "vignette strength $8, defects contrast $9, defects density $10, defects size $11, defects smoothness $12 and serial number $13." -v - -repeat @# -l[$>] -if {!$1} -return -endif $1,$1 s={max(w,h)} -rm[-1] # Determine size of the frame. ({'@{-dec2bin\ $13}'}) --[-1] {'0'} -r[-1] $s # Generate frame profile from serial number. -transpose[-1] -b[-1] $3 -n[-1] {1-$2},{1+$2} --r[-1] {@{-2,w}+2*$s},100%,1,1 # Upper frame. --mirror[-1] y # Lower frame. -mv[-3] @# -transpose[-1] -r[-1] 100%,{@{-4,h}+2*$s},1,1 # Left frame. --mirror[-1] x # Right frame. [-3],[-3],1,1,1 -polygon[-1] 3,0,0,{$s-1},{$s-1},0,{$s-1},1,0 -polygon[-1] 3,100%,0,{w-$s},100%,100%,100%,1,0 # Upper/lower mask. [-2],[-2],1,1,1 -polygon[-1] 3,1,0,100%,{$s-2},100%,0 -polygon[-1] 3,1,100%,100%,{h-$s+1},100%,100%,1,0 # Left/right mask. -_frame_painting[-6--3] ${4-6},${9-12} # Add colors + defects. # Build full frame picture. {@{-7,w}+2*$s},{@{-7,h}+2*$s},1,3 -j[-1] [-7],0,0,0,0,1,[-3],1 -rm[-7] -mirror[-3] y -j[-1] [-6],0,{h-$s},0,0,1,[-3],1 -rm[-6,-3] -j[-1] [-4],0,0,0,0,1,[-2],1 -rm[-4] -mirror[-2] x -j[-1] [-3],{w-$s},0,0,0,1,[-2],1 -rm[-3,-2] [-2],[-2],1,1,-255 -r[-1] [-2],[-2],1,1,0,0,0.5,0.5 -+[-1] 255 --b[-1] $7 -n[-1] 0,$8 -max[-2,-1] -c[-1] 0,255 # Frame opacity. -a[-2--1] c -r[-2] [-1],[-1],1,100%,0,0,0.5,0.5 -blend alpha # Insert initial image into frame picture. -endl -done -v + _frame_painting : # Add color + texture to each frame part. -repeat @# -l[$>] --*[-1] $2 --*[-2] $3 -*[-3] $1 -a[-3--1] c 100%,100% i=0 -do -rand[-1] 0,1 -remove_pixels[-1] {100-$5} -b[-1] $6 -ge[-1] 50% i={$i+1} -while {"m=$5/200;(iam+0.2) && "$i"<10"} -b[-1] $7 -g[-1] -+[-2,-1] -n[-1] -$4,$4 -+[-2,-1] -c[-1] 0,255 -endl -done #@gmic frame_pattern : M>=3,_pattern = { 0=first image | 1=self },_constrain_size = { 0 | 1 } #@gmic : Insert selected pattern frame in selected images. #@gmic : Default values: 'pattern=0' and 'constrain_size=0'. #@gmic : $ image.jpg -frame_pattern 8 frame_pattern : -check $1>=3 -skip ${2=0},${3=0} -v - -to_colormode 0 -if {@#==1||$2} # Self-framing -v + -e[^-1] "Insert $1x$1 self-pattern frame on image$?." -v - -repeat @# -l[$>] wh={w},{h} --r {w/($1-2)},{h/($1-2)},1,100%,2 -r[-2] {$1*w},{$1*h},1,100%,0,0,0.5,0.5 [-1]x{$1+2} -a[{-$1-2}--1] x -j[-3] [-1],0,0 -j[-3] [-1],0,{@{-3,h}-1-h} -rm[-1] [-1]x{$1+1} -a[{-$1-2}--1] y -j[-2] [-1],0,0 -j[-2] [-1],{@{-2,w}-1-w} -rm[-1] -if $3 -r $wh,1,100%,2 -endif -endl -done -else # Frame from image[0] -v + -e[^-1] "Insert $1x$1 pattern frame on image$?, using first image." -v - -repeat {@#-1} wh={w},{h} --r[0] {w/($1-2)},{h/($1-2)},1,100%,2 -r[-2] {@{-2,w}+2*w},{@{-2,h}+2*h},1,100%,0,0,0.5,0.5 [-1]x{$1+2} -a[{-$1-2}--1] x -j[-3] [-1],0,0 -j[-3] [-1],0,{@{-3,h}-1-h} -rm[-1] [-1]x{$1+1} -a[{-$1-2}--1] y -j[-2] [-1],0,0 -j[-2] [-1],{@{-2,w}-1-w} -rm[-1] -if $3 -r[-1] $wh,1,100%,2 -endif -mv[-1] 1 -done -rm[0] -endif -v + #@gmic frame_round : _sharpness>0,_size>=0,_smoothness,_shading,_R,_G,_B,_A #@gmic : Draw RGBA-colored round frame in selected images. #@gmic : Default values: 'sharpness=10', 'size=10', 'smoothness=0', 'shading=0' and 'R=G=B=A=255'. #@gmic : $ image.jpg -frame_round 10 frame_round : -skip ${1=10},${2=10},${3=0},${4=0},${5=255},${6=$5},${7=$6},${8=255} -e[^-1] "Draw round frame on image$?, with sharpness $1, size $2, smoothness $3, shading $4 and RGBA color ($5,$6,$7,$8)." -v - -to_rgba -repeat @# -l[$>] nm=@{0,n} 100%,100%,1,1,"-(abs(x/w-0.5)^$1 + abs(y/h-0.5)^$1)^(1/$1)" -ge[-1] $2% -if $4 -distance[-1] 1 -n[-1] 0,1 -*[-1] -1 -+[-1] 1 -^[-1] {1/$4} -endif -b[-1] $3 -i[-3] 100%,100%,1,4 -fc[-3] $5,$6,$7,$8 -blend_fade -nm $nm,1 -endl -done -v + #@gmic frame_x : size_x[%]>=0,_col1,...,_colN #@gmic : Insert colored frame along the x-axis in selected images. #@gmic : Default values: 'col1=col2=col3=255' and 'col4=255'. #@gmic : $ image.jpg -frame_x 20,255,0,255 frame_x : -check "$1>=0" -skip ${2=255},${3=$2},${4=$3},${5=255} -e[^-1] "Insert $1 outer frame in image$? along the x-axis, with color (${2--1})." -_frame $1,0,0,${2--1} #@gmic frame_xy : size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN #@gmic : Insert colored frame along the x-axis in selected images. #@gmic : Default values: 'size_y=size_x', 'col1=col2=col3=255' and 'col4=255'. #@gmic : (eq. to '-frame'). #@gmic : $ image.jpg -frame_xy 1,1,0 -frame_xy 20,10,255,0,255 frame_xy : -check "$1>=0 && ${2=$1}>=0" -skip ${3=255},${4=$3},${5=$4},${6=255} -v - __s="$?" -v + -_$0 ${1--1} _frame_xy : -e[0--3] "Insert $1x$2 outer frame in image"$__s" along the xy-axes, with color (${3--1})." -_frame $1,$2,0,${3--1} #@gmic frame_xyz : size_x[%]>=0,_size_y[%]>=0,_size_z[%]>=0_col1,...,_colN #@gmic : Insert colored frame along the x-axis in selected images. #@gmic : Default values: 'size_y=size_x=size_z', 'col1=col2=col3=255' and 'col4=255'. frame_xyz : -check "$1>=0 && ${2=$1}>=0 && ${3=$2}>=0" -skip ${4=255},${5=$4},${6=$5},${7=255} -e[^-1] "Insert $1x$2x$3 outer frame in image$? along the xyz-axes, with color (${4--1})." -_frame $1,$2,$3,${4--1} #@gmic frame_y : size_y[%]>=0,_col1,...,_colN #@gmic : Insert colored frame along the y-axis in selected images. #@gmic : Default values: 'col1=col2=col3=255' and 'col4=255'. #@gmic : $ image.jpg -frame_y 20,255,0,255 frame_y : -check "$1>=0" -skip ${2=255},${3=$2},${4=$3},${5=255} -e[^-1] "Insert $1 outer frame in image$? along the y-axis, with color (${2--1})." -_frame 0,$1,0,${2--1} _frame : -v - -repeat @# -l[$>] w={round($1*if(@{-is_percent\ $1},w,1))} h={round($2*if(@{-is_percent\ $2},h,1))} d={round($3*if(@{-is_percent\ $3},d,1))} -r {w+2*$w},{h+2*$h},{d+2*$d},100%,0,0,0.5,0.5,0.5 -if {$w} $w,100%,100%,100% -fc[-1] ${4--1} -j[0] [1] -j[0] [1],@{0,w-$w} -rm[-1] -endif -if {$h} 100%,$h,100%,100% -fc[-1] ${4--1} -j[0] [1] -j[0] [1],0,@{0,h-$h} -rm[-1] -endif -if {$d} 100%,100%,$d,100% -fc[-1] ${4--1} -j[0] [1] -j[0] [1],0,0,@{0,d-$d} -rm[-1] -endif -endl -done -v + #@gmic imagegrid : M>0,_N>0 #@gmic : Create MxN image grid from selected images. #@gmic : Default value: 'N=M'. #@gmic : $ image.jpg -imagegrid 16 imagegrid : -skip ${2=$1} -e[^-1] "Create $1x$2 image grid from image$?." -v - -repeat @# -l[$>] ({w},{h}) ($1,$2) -/[-2,-1] -round[-1] 1 -r[-2] @-1,[-2],[-2],2 -rm[-1] ({w},{h}) ($1,$2) -*[-2,-1] -r[-2] @-1,[-2],[-2],2 -rm[-1] $1,$2,1,[-1],1 -shift[-1] 1,1 -r[-1] [-2],0,2 -* -endl -done -v + #@gmic linearize_tiles : M>0,_N>0 #@gmic : Linearize MxN tiles on selected images. #@gmic : Default value: 'N=M'. #@gmic : $ image.jpg --linearize_tiles 16 linearize_tiles : -check "$1>0 && ${2=$1}>0" -e[^-1] "Linearize $1x$2 tiles on image$?." -v - -repeat @# -l[$>] nm=@{0,n} s={s} -split_tiles $1,$2 -s c # Split as tiles for all channels. -repeat @# -l[$>] wh={w},{h} --f x --f[-1] y --f[-1] 1 -y y -a[^0] x -solve[-2] [-1] -rm[-1] $wh,1,1,@{-1,0}"*x + "@{-1,1}"*y + "@{-1,2} -rm[-2] -endl -done -repeat {int(@#/$s)} -a[-$s--1] c -mv[-1] 0 -done -append_tiles $1,$2 -nm $nm,1 -endl -done -v + #@gmic quadratize_tiles : M>0,_N>0 #@gmic : Quadratize MxN tiles on selected images. #@gmic : Default value: 'N=M'. #@gmic : $ image.jpg --quadratize_tiles 16 quadratize_tiles : -check "$1>0 && ${2=$1}>0" -e[^-1] "Quadratize $1x$2 tiles on image$?." -v - -repeat @# -l[$>] nm=@{0,n} s={s} -split_tiles $1,$2 -s c # Split as tiles for all channels. -repeat @# -l[$>] wh={w},{h} --f x^2 --f[-1] y^2 --f[-1] x*y --f[-1] x --f[-1] y --f[-1] 1 -y y -a[^0] x -solve[-2] [-1] -rm[-1] $wh,1,1,@{-1,0}"*x^2 + "@{-1,1}"*y^2 + "@{-1,2}"*x*y +"@{-1,3}"*x + "@{-1,4}"*y + "@{-1,5} -rm[-2] -endl -done -repeat {int(@#/$s)} -a[-$s--1] c -mv[-1] 0 -done -append_tiles $1,$2 -nm $nm,1 -endl -done -v + #@gmic rotate_tiles : angle,_M>0,N>0 #@gmic : Apply MxN tiled-rotation effect on selected images. #@gmic : Default values: 'M=8' and 'N=M'. #@gmic : $ image.jpg -to_rgba -rotate_tiles 10,8 -drop_shadow 10,10 -display_rgba rotate_tiles : -skip ${2=8},${3=$2} -e[^-1] "Apply $2x$3 tiled-rotation effect on image$?, with angle $1°." -v - -split_tiles $2,$3,1 -rotate $1 -append_tiles $2,$3 -v + #@gmic shift_tiles : M>0,_N>0,_amplitude #@gmic : Apply MxN tiled-shift effect on selected images. #@gmic : Default values: 'N=M' and 'amplitude=20'. #@gmic : $ image.jpg --shift_tiles 8,8,10 shift_tiles : -check "${2=$1}>=0" -skip ${3=20} -e[^-1] "Apply $1x$2 tiled-shift effect on image$?, with amplitude $3." -v - -repeat @# -l[$>] $1,$2,1,2 -noise[-1] $3 -r[-1] [-2],[-2],1,2 -warp[-2] [-1],1,1,0 -rm[-1] -endl -done -v + #@gmic taquin : M>0,_N>0 #@gmic : Create MxN taquin puzzle from selected images. #@gmic : Default value: 'N=M'. #@gmic : $ image.jpg --taquin 8 taquin : -skip ${2=$1} -e[^-1] "Create $1x$2 taquin puzzle from image $?." -v - -repeat @# -l[$>] nm=@{0,n} -split_tiles $1,$2,1 -repeat {$1*$2} -mv[$>] {?(@#)} -done -append_tiles $1,$2 -nm $nm,1 -endl -done -v + #@gmic tunnel : _level>=0,_factor>0,_cx,_cy,_opacity,_angle #@gmic : Apply tunnel effect on selected images. #@gmic : Default values: 'level=9', 'factor=80%', 'cx=cy=0.5', 'opacity=1' and 'angle=0' #@gmic : $ image.jpg --tunnel 20 tunnel : -check "${1=9}>=0 && ${2=80%}>0" -skip ${3=0.5},${4=0.5},${5=0.1},${6=0} -e[^-1] "Apply tunnel effect on image$?, with depth $1, factor $2, centering ($3,$4), opacity $5 and angle $6." -v - -repeat @# -l[$>] -repeat $1 --r[-1] $2,$2,1,100%,5 -if $6 100%,100%,1,1,1 -rotate[-2,-1] $6,1,0 -erode[-1] 3 -j[-3] [-2],{(@{-3,w}-w)*$3},{(@{-3,h}-h)*$4},0,0,$5,[-1] -rm[-2,-1] -else -j[-2] [-1],{(@{-2,w}-w)*$3},{(@{-2,h}-h)*$4},0,0,$5 -rm[-1] -endif -done -endl -done -c 0,255 -v + #----------------------------- # #@gmic :: Artistic # #----------------------------- #@gmic boxfitting : _min_box_size>=1,_max_box_size>=0,_initial_density>=0,_nb_attempts>=1 #@gmic : Apply box fitting effect on selected images, as displayed the web page: #@gmic : [http://www.complexification.net/gallery/machines/boxFittingImg/] #@gmic : Default values: 'min_box_size=1', 'max_box_size=0', 'initial_density=0.1' and 'nb_tries=3'. #@gmic : $ image.jpg --boxfitting , boxfitting : -check "isint(${1=3}) && $1>=1 && isint(${2=0}) && $2>=0 && ${3=0.1}>=0 && isint(${4=3}) && $4>=1" -e[^-1] "Apply box fitting effect on image$?, with box sizes ($1,$2), density $3 and $4 attempts." -v - min_size=$1 max_size={if($2,$2,max(w,h))} -repeat @# -l[$>] nb_attempts=0 prec=5 100%,100% -repeat 1e8 # Add random non-intersecting squares with min size. -if {$><1} # Takes random points for the first iteration. 100%,100% -noise[-1] {max(1e-3,$3)},2 -else # Then, try to take points near the median axis of the distance function otherwise. --distance[-1] 1 --rand[-1] 0,1 -*[-2,-1] -max_patch[-1] {round($prec*$min_size)} prec={max(1,$prec*0.9)} -endif # Discard new squares that intersect something. -dilate[-1] $min_size -area_fg[-1] 0,1 -eq[-1] {($min_size)^2} --dilate[-2] 3 -eq[-1] 0 -*[-2,-1] -area_fg[-1] 0,1 -eq[-1] {($min_size)^2} -if {!iM} nb_attempts={$nb_attempts+1} -if {$nb_attempts>$4} -rm[-1] -break -endif # If no new squares have been placed. -else nb_attempts=0 -endif -+[-2,-1] # Make current squares grown until max square size is reached. -repeat {int(($max_size-$min_size)/2)} --dilate[-1] 3 -area_fg[-1] 0,1 -eq[-1] {($min_size+2*$>+2)^2} -if {!iM} -rm[-1] -break -endif # No more squares to grow. -or[-2,-1] -done -done -blend shapeaverage0 -endl -done -v + #@gmic cartoon : _smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0 #@gmic : Apply cartoon effect on selected images. #@gmic : Default values: 'smoothness=3', 'sharpening=150', 'threshold=20', 'thickness=0.25', 'color=1.5' and 'quantization=8'. #@gmic : $ image.jpg --cartoon 3,80,15 cartoon : -skip ${1=3},${2=150},${3=20},${4=0.25},${5=1.5},${6=8} -e[^-1] "Apply cartoon effect on image$?, with smoothness $1, sharpening $2, threshold $3, thickness $4, color $5 and quantization $6." -v - -repeat @# -l[$>] -split_opacity -l[0] -to_rgb -b $1 -sharpen $2,1 -c 0,255 -n 0,255 --edges $3 -b[-1] $4 -ge[-1] 0.9 -rgb2lab[-2] -s[-2] c -*[-3,-2] $5 -a[-4--2] c -lab2rgb[-2] -quantize[-2] $6,1,0 -n[-2] 0,255 -* -endl -a c -endl -done -v + #@gmic circlism : _radius_min>0,_radius_max>0,_smoothness[%]>=0,_radius_linearity>=0,_location_linearity>=0,_shape={0=squares | 1=diamonds | 2=circle } #@gmic : Apply circlism effect on selected images (effect inspired by Ben Heine). #@gmic : Default values: 'radius_min=2', 'radius_max=20', 'smoothness=1', 'radius_linearity=0.4', 'location_linearity=3' and 'shape=1'. #@gmic : $ image.jpg --circlism , circlism : -check "${1=2}>0 && ${2=20}>0 && ${3=1}>=0 && ${4=0.4}>0 && ${5=3}>=0" -skip ${6=2} -e[^-1] "Apply circlism effect on image$?, with radii ($1,$2), smoothness $3, radius linearity $4 and location linearity $5.\n" -v - -repeat @# -l[$>] --gradient_norm -b[-1] $3 -n[-1] 0,1 --^[-1] $5 -^[-2] $4 sumg0=@{-1,+} 100%,100% it=0 failed=0 noedges=0 svg="-1,-1" -do --distance[-1] 1,3 -if $noedges xyzc=@{-1,C} -else --*[-3,-1] xyzc=@{-1,C} -rm[-1] -endif n=@{-4,($xyzc)} x={arg(1,$xyzc)} y={arg(2,$xyzc)} r={min(max($1,$2*(1-$n)),sqrt(@{-1,($xyzc)})-2)} -rm[-1] -if {$r>=$1} -if {$6==2} # Fill with circles. -ellipse[-1] $x,$y,$r,$r,0,1,1 -ellipse[-2] $x,$y,{$r+$1},{$r+$1},0,1,-1 -elif {$6==1} # Fill with squares. x0={$x-$r/2} y0={$y-$r/2} x1={$x+$r/2} y1={$y+$r/2} -rectangle[-1] $x0,$y0,$x1,$y1,1,1 x0={$x-($r+$1)/2} y0={$y-($r+$1)/2} x1={$x+($r+$1)/2} y1={$y+($r+$1)/2} -rectangle[-2] $x0,$y0,$x1,$y1,1,-1 -else # Fill with diamonds. x0={round($x-$r/2)} y0={round($y-$r/2)} x1={round($x+$r/2)} y1={round($y+$r/2)} -polygon[-1] 4,$x0,$y,$x,$y0,$x1,$y,$x,$y1,1,1 x0={round($x-($r+$1)/2)} y0={round($y-($r+$1)/2)} x1={round($x+($r+$1)/2)} y1={round($y+($r+$1)/2)} -polygon[-2] 4,$x0,$y,$x,$y0,$x1,$y,$x,$y1,1,-1 -endif failed=0 -else -=[-2] -1,$x,$y failed={$failed+1} -if {$failed==100} failed=0 -if $noedges n=-1 -else noedges=1 -endif -endif -endif it={$it+1} -if {!($it%50)} p={round(100*(($sumg0-@{-2,+})/@{-2,wh})^3)} -rprogress $p -v + -e[] "\r "$p% -v - -endif -while {$n>=0} -rm[-3,-2] -rprogress -1 -blend shapeaverage0 -endl -done -v + #@gmic color_ellipses : _count>0,_radius>=0,_opacity>=0 #@gmic : Add random color ellipses to selected images. #@gmic : Default values: 'count=400', 'radius=5' and 'opacity=0.1'. #@gmic : $ image.jpg --color_ellipses ,,0.15 color_ellipses : -skip ${1=1400},${2=5},${3=0.1} -e[^-1] "Add $1 random color ellipses to image$?, with maximum radius $2 and opacity $1." -v - -repeat $1 -ellipse {?(0,100)}%,{?(0,100)}%,{?(0,$2)}%,{?(0,$2)}%,{?(0,360)},$3,{?(60,255)},{?(60,255)},{?(60,255)},255 -done -v + #@gmic cubism : _density>=0,0<=_thickness<=50,_max_angle,_opacity,_smoothness>=0 #@gmic : Apply cubism effect on selected images. #@gmic : Default values: 'density=50', 'thickness=10', 'max_angle=75', 'opacity=0.7' and 'smoothness=0'. #@gmic : $ image.jpg --cubism , cubism : -check "${1=50}>=0 && ${2=10}>=0 && $2<=50 && ${5=0}>=0" -skip ${3=75},${4=0.7} -e[^-1] "Apply cubism effect on image$?, with density $1, thickness $2, maximum angle $3°, opacity $4 and smoothness $5." -if {"!$1 || !$2 || !$3 || !$4"} -return -endif -v - -repeat @# -l[$>] w={w} h={h} s={s} P={round($2*max(w,h)/200)} N={round(1.5*$1*w*h/(4*$P)/100)} # Define Header + nb vertices / primitives. ({'CImg3d'}) -+[-1] 0.5 ({4*$N};$N) # Generate list of random points. 1,$N -rand[-1] $P,{$w-1-$P} --rand[-1] $P,{$h-1-$P} -a[-2,-1] x -round[-1] # Generate list of primitives. --+[-1] '-$P,-$P' --+[-2] '$P,-$P' --+[-3] '$P,$P' --+[-4] '-$P,$P' -a[-4--1] x -i[-2] (12,0,1,2,3;12,{4*($N-1)},{4*($N-1)+1},{4*($N-1)+2},{4*($N-1)+3}) -r[-2] 5,$N,1,1,3 -round[-2] 1 -a[-2,-1] x # Generate list of vertices. 1,$N -rand[-1] {225-$3},{225+$3} -*[-1] {pi/180} --sin[-1] -cos[-2] --*[-1] -1 [-3] -a[-4--3] x -a[-2,-1] x -z[-4,-2,-1] 0,2 --*[-2,-1] -1 -a[-4--1] x -*[-1] {sqrt(2)*$P} -r[-3] 400%,100%,1,1,0,2 -+[-3,-1] # Generate materials. (-128;$w;$h;$s) --b[0] $5 -if {$N>1} 4,{$N-1},1,1,-128,0,0,0 -endif 1,$N,1,1,1 # Apply effect on current image. -y[1--1] y -a[1--1] y -rv3d[-1] -if {$4>=1} -object3d[0] [1],0,0,0,1,2,0,0 -rm[1] -else --object3d[0] [1],0,0,0,1,2,0,0 -rm[1] -blend alpha,$4 -endif -endl -done -v + #@gmic dotsbw : _nb_scales>0,0<=_resolution<=100,_radius_factor>=0 #@gmic : Apply B&W dots effect on selected images. #@gmic : Default values: 'nb_scales=16', 'resolution=10' and 'radius_factor=1'. #@gmic : $ image.jpg --dotsbw , --blend shapeaverage0 dotsbw : -check "isint(${1=16}) && $1>0 && ${2=10}>0 && $2<100 && ${3=1}>=0" -e[^-1] "Apply B&W dots effect on image$?, with $1 scale(s), resolution $2% and radius factor %3." -v - -remove_opacity -norm -repeat @# -l[$>] w={w} h={h} -r $2%,$2%,1,1,2 dx={round($w/w)} dy={round($h/h)} -n 0,255 -n 0,{$1-1} -round $w,$h -nm[-1] @{0,n} -repeat $1 --==[0] $> -r[-1] $w,$h,1,1,4,0,0.5,0.5 -distance[-1] 1 -le[-1] {0.65*$3*$dx*$>/$1-1} -or[-2,-1] -done -rm[0] -endl -done -* 255 -v + #@gmic draw_whirl : _amplitude>=0 #@gmic : Apply whirl drawing effect on selected images. #@gmic : Default value: 'amplitude=100'. #@gmic : $ image.jpg --draw_whirl , draw_whirl : -skip ${1=100} -e[^-1] "Apply whirl drawing effect on image$? with amplitude $1." -v - -repeat @# -l[$>] 100%,100% -noise[-1] 70,2 -*[-1] 255 -r[-1] [-2] -and[-1,-2] -smooth[-1] $1,0,1,2,2 -sqrt[-1] -n[-1] 0,255 -equalize[-1] 256 -endl -done -v + #@gmic drawing : _amplitude>=0 #@gmic : Apply drawing effect on selected images. #@gmic : Default value: 'amplitude=200'. #@gmic : $ image.jpg --drawing , drawing : -skip ${1=200} -e[^-1] "Apply drawing effect on image$? with amplitude $1." -v - -repeat @# -l[$>] -split_opacity -l[0] -to_rgb -smooth $1,0.2,1,3,3 -b 2 -sharpen 1000 [0] -r[0] 20,20,1,3,2 -equalize[0] 256 -index[1] [0],1,1 -nm[1] @{0,n},1 -rm[0] -endl -a c -endl -done -v + #@gmic drop_shadow : _offset_x[%],_offset_y[%],_smoothness[%]>=0,0<=_curvature<=1,_expand_size={ 0 | 1 } #@gmic : Drop shadow behind selected images. #@gmic : Default values: 'offset_x=20', 'offset_y=offset_x', 'smoothness=5', 'curvature=0' and 'expand_size=1'. #@gmic : $ image.jpg -drop_shadow 10,20,5,0.5 -expand_xy 20,0 -display_rgba drop_shadow : -check "${3=5}>=0 && ${4=0}>=0 && $4<=1" -skip ${1=20},${2=$1},${5=1} -e[^-1] "Drop shadow behind image$?, with offsets ($1,$2), smoothness $3 and curvature $4." -v - -to_a -repeat @# -l[$>] dx={if(@{-is_percent\ $1},w*$1,$1)} dy={if(@{-is_percent\ $2},h*$2,$2)} sigma={if(@{-is_percent\ $3},max(w,h)*$3,$3)} w={w} h={h} s={s} --channels 100% coords=@{-autocrop_coords[-1]\ 0} -rm[-1] -crop $coords # Crop part with opaque pixels. -r {w+abs($dx)},{h+abs($dy)},1,100%,0,0,{if($dx>0,0,1)},{if($dy>0,0,1)} -r[-1] {w+4*$sigma},{h+4*$sigma},1,100%,0,0,0.5,0.5 --channels[-1] 100% -if {!$4} -shift[-1] $dx,$dy # Flat shadow. -else # Curved shadow. (0;{pi}) -r[-1] [-2],3 -sin[-1] -*[-1] -$4 -+[-1] 1 -*[-1] $dx (0,{pi}) -r[-1] [-2],3 -sin[-1] -*[-1] -$4 -+[-1] 1 -*[-1] $dy -a[-2,-1] c -warp[-2] [-1],1,0,0 -rm[-1] -endif -b[-1] $sigma,0 -r[-1] 100%,100%,1,2,0,0,0,0,0,1 -mv[-1] 0 -blend alpha --channels[-1] 100% -ge[-1] 1 -* -autocrop 0 -if {!$5} $w,$h,1,$s -j[-1] [-2],{arg(1,$coords)},{arg(2,$coords)} -rm[-2] -endif -endl -done -v + #@gmic ellipsionism : _R>0[%],_r>0[%],_smoothness>=0[%],_opacity,_outline>0,_density>0 #@gmic : Apply ellipsionism filter to selected images. #@gmic : Default values: 'R=10', 'r=3', 'smoothness=1%', 'opacity=0.7', 'outlise=8' and 'density=0.6'. #@gmic : $ image.jpg --ellipsionism , ellipsionism : -check "${1=10}>0 && ${2=3}>0 && ${5=8}>0 && ${6=0.6}>0" -skip ${3=1%},${4=0.7} -e[^-1] "Apply ellipsionism filter to image$?, with radii ($1,$2), smoothness $3, opacity $4 and outline $5." -v - -to_rgba -repeat @# -l[$>] # Compute contour angle. --luminance -g[-1] xy -a[-2,-1] c -b[-1] $3 -orientation[-1] -sh[-1] 0,0 -sh[-2] 1,1 -atan2[-1] [-2] -*[-1] {180/pi} -+[-1] 90 -rm[-2,-1] -channels[-1] 1,1 # Render ellipses. [-2],[-2],1,[-2] -repeat {$6*w*h/max($1,$2)} xy={?(w)},{?(h)} -ellipse[-1] $xy,$1,$2,@{-2,($xy)},$4,\ @{-3,($xy,0,0)},@{-3,($xy,0,1)},@{-3,($xy,0,2)},@{-3,($xy,0,3)} -ellipse[-1] $xy,$1,$2,@{-2,($xy)},$4,0x1,\ {@{-3,($xy,0,0)}/$5},{@{-3,($xy,0,1)}/$5},{@{-3,($xy,0,2)}/$5},{@{-3,($xy,0,3)}/$5} -done -rm[-2] # Renormalize and prepare next image. -n[-1] [-2] -blend[-2,-1] alpha -endl -done -v + #@gmic fire_edges : _edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0 #@gmic : Generate fire effect from edges of selected images. #@gmic : Default values: 'edges=0.7', 'attenuation=0.25', 'smoothness=0.5', 'threshold=25', 'nb_frames=1', 'starting_frame=20' and 'frame_skip=0'. #@gmic : $ image.jpg -fire_edges , fire_edges : -check "${1=0.7}>=0 && ${2=0.25}>=0 && $2<=1 && ${3=0.5}>=0 && ${4=25}>=0 && ${5=1}>0 && ${6=20}>=0 && ${7=0}>=0" -e[^-1] "Generate fire effect from edges of image$?, with edges $1, attenuation $2, smoothness $3, threshold $4, "\ "$5 frames, starting frame $6 and frame skip $7." -v - -repeat @# -l[$>] nm=@{0,n} -norm --gradient_norm -n[-1] 0,1 -roundify[-1] $1 -f[0] 0 (0,0,0;0,0,0;1,1,1;0,1,0) -*[-1] {(1-$2^4)/4} -repeat {$5*(1+$7)+$6} @{0,w},@{0,h} -rand[-1] 0,255 -*[-1] [1] -b[-1] $3 -if $4 -ge[-1] $4% -else -equalize[-1] 256 -endif -n[-1] 0,255 -j[0] [-1],0,0,0,0,1,[1],1 -rm[-1] -correlate[0] [2] -if {$>>=$6" && "($>-$6)%($7+1)==0} [0] -endif -done -rm[0-2] -nm $nm,1 -endl -done (0,255,255,255,255^0,0,255,255,255^0,0,0,128,255) -r[-1] 256,1,1,3,3 -map[^-1] [-1] -rm[-1] -v + #@gmic glow : _amplitude>=0 #@gmic : Add soft glow on selected images. #@gmic : Default value: 'amplitude=1%'. #@gmic : $ image.jpg --glow , glow : -skip ${1=1%} -e[^-1] "Add soft glow on image$?, with amplitude $1." -v - -repeat @# -l[$>] -split_opacity --b[0] $1 -n[-1] [0] -blend_edges[0,-1] 1 -a c -endl -done -v + #@gmic halftone : nb_levels>=2,_size_dark>=2,_size_bright>=2,_shape={ 0=square | 1=diamond | 2=circle | 3=inv-square | 4=inv-diamond | 5=inv-circle },_smoothness[%]>=0 #@gmic : Apply halftone dithering to selected images. #@gmic : Default values: 'nb_levels=5', 'size_dark=8', 'size_bright=8', 'shape=5' and 'smoothnesss=0'. #@gmic : $ image.jpg --halftone , halftone : -check "${1=5}>=2 && ${2=8}>=2 && ${3=8}>=2 && ${5=0}>=0" -skip ${4=5} -v - s0="square" s1="diamond" s2="circle" s3="inv-square" s4="inv-diamond" s5="inv-circle" -v + -e[^-1] "Apply halftone dithering to image$?, with $1 levels, dark size $3, bright size $4, "${s$4}" shape and smoothness $5." -v - -repeat @# -l[$>] -s c -repeat @# -l[$>] (0,255) -a y -quantize $1,0 -rows 0,{h-2} -repeat $1 s={round(($2*$<+$3*$>)/($1-1))} $s,$s -=[-1] 1,50%,50% -distance[-1] 1,{$4%3} --shift[-1] 50%,50%,0,0,2 -min[-2,-1] -if {$4>=3} -lt[-1] {100*$} -else -lt[-1] {100*$>/($1-1.1)}% -*[-1] 255 --[-1] $> -endif -r[-1] [-2],0,2 -b[-1] $5 --eq[-2] $> -*[-2,-1] -+[-2,-1] -done -endl -done -a c -endl -done -v + #@gmic hardsketchbw : _amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={ 0 | 1 } #@gmic : Apply hard B&W sketch effect on selected images. #@gmic : Default values: 'amplitude=1000', 'sampling=3', 'opacity=0.1', 'edge_threshold=20' and 'is_fast=0'. #@gmic : $ image.jpg --hardsketchbw 200,70,0.1,10 -median[-1] 2 --local -reverse -blur[-1] 3 -blend overlay -endl hardsketchbw : -skip ${1=300},${2=50},${3=0.1},${4=20},${5=0} -e[^-1] "Apply hard B&W sketch effect on image$?, with amplitude $1, density $2, opacity $3 and edge threshold $4." -if {!$2} -channels 0 -f 255 -return -endif -v - -luminance -n 0,1 -if $5 # Fast version. -repeat @# -l[$>] nm=@{0,n} -g xy -rv -*[-2] -1 -a c -if $4 --norm -ge[-1] $4% -* -endif 100%,100%,1,1,255 -quiver[-1] [-2],{max(1,10-$2/6)},$1,0,$3 -rm[-2] -nm $nm,1 -endl -done -else # Slower version. -repeat @# -l[$>] nm=@{0,n} # Isolate starting points and tangents. w={w} h={h} -g xy -rv -*[-2] -1 -a c -* $1 --norm -ge[-1] $4% 100%,100% -noise[-1] $2,2 -*[-2,-1] # Retrieve points coordinates and corresponding tangents. -pointcloud3d[-1] -s3d[-1] -rm[-6--5,-3--1] -r[-1] 3,{h/3},1,1,-1 -s[-1] x -rm[-1] -a[-2,-1] c -warp[-2] [-1],0,0 ---[-1] [-2] -+[-3,-2] -s[-2,-1] c # Convert as a 3d object and render on white background. -i[-3] 1,{h} 1,{h} -a[-6--1] x -i[-2] ({'CImg3d'}) -i[-2] ({2*h},{h}) 1,{h},1,1,2 1,{h},1,1,2*y --+[-1] 1 -a[-3--1] x 3,{h} 1,{h},1,1,$3 -y[-6--1] y -a[-6--1] y $w,$h,1,1,255 -object3d[-1] [-2],0,0,0,1,1,0,0 -rm[-2] -nm $nm,1 -endl -done -endif -v + #@gmic hearts : _density>=0 #@gmic : Apply heart effect on selected images. #@gmic : Default value: 'density=10'. #@gmic : $ image.jpg --hearts , hearts : -skip ${1=10} -e[^-1] "Apply heart filter on image$?, with density $1." -v - -repeat @# -l[$>] 100%,100%,1 -noise[-1] $1,2 -r[-1] [-2] -n[-1] 0,1 -*[-1,-2] -_heart9x7 -mirror[-1] y -dilate[-2] [-1] -rm[-1] -endl -done -v + _heart9x7 : (0,1,1,0,0,0,1,1,0;1,1,1,1,0,1,1,1,1;1,1,1,1,1,1,1,1,1;0,1,1,1,1,1,1,1,0;0,0,1,1,1,1,1,0,0;0,0,0,1,1,1,0,0,0;0,0,0,0,1,0,0,0,0) #@gmic houghsketchbw : _density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0 #@gmic : Apply hough B&W sketch effect on selected images. #@gmic : Default values: 'density=8', 'radius=5', 'threshold=80', 'opacity=0.1' and 'votesize=100%'. #@gmic : $ image.jpg --houghsketchbw , houghsketchbw : -check "${1=8}>=0 && ${2=5}>=0 && ${3=80}>=0 && $3<=100 && ${4=0.1}>=0 && $4<=1 && ${5=100%}>0" -e[^-1] "Apply hough B&W sketch effect on image$?, with density $1, radius $2, threshold $3, opacity $4 and votesize $5." -v - -luminance -repeat @# -l[$>] nm=@{0,n} # Compute normalized Hough transform. res={round(if(@{-is_percent\ $5},$5*max(w,h),$5))} w={w} h={h} rhomax={sqrt(w^2+h^2)/2} -hough $res,$res -n 0,255 # Retrieve coordinates of maximas in hough space. -normalize_local[-1] $1,$2 -ge[-1] $3% -pointcloud3d[-1] -s3d[-1] -rm[-6--5,-3--1] -r[-1] 3,{h/3},1,1,-1 -columns[-1] 0,1 # Convert to (x0,y0)-(x1,y1) line coordinates. -s[-1] x,2 -*[-2] {2*pi/$res} # theta -*[-1] {$rhomax/$res} # rho --cos[-2] -*[-1] [-2] -+[-1] {$w/2} # x --sin[-3] -*[-1] [-3] -+[-1] {$h/2} # y -rm[-3] # Remove rho -i[-3] [-3] -cos[-4] -sin[-3] -*[-4,-3] 10000 # cos(t) sin(t) --+[-2] [-3] # x + sin(t) ---[-2] [-5] # y - cos(t) --[-4] [-5] # x - sin(t) -+[-3] [-6] # y + cos(t) -rm[-6,-5] # Transform as a 3d object. -i[-3] 1,{h} 1,{h} -a[-6--1] x # Vertices -i[-2] ({'CImg3d'}) -i[-2] ({2*h},{h}) # Header and size. 1,{h},1,1,2 1,{h},1,1,2*y --+[-1] 1 -a[-3--1] x # Primitives. 3,{h},1,1,0 1,{h},1,1,$4 # Colors and opacities -y[-6--1] y -a[-6--1] y # Render on a white image. $w,$h,1,1,255 -object3d[-1] [-2],0,0,0,1,1,0,0 -rm[-2] -nm $nm,1 -endl -done -v + #@gmic lightrays : 100<=_density<=0,_cx,_cy,_ray_length>=0,_ray_attenuation>=0 #@gmic : Generate ray lights from the edges of selected images. #@gmic : Defaults values : 'density=50%', 'cx=0.5', 'cy=0.5', 'ray_length=0.9' and 'ray_attenuation=0.5'. #@gmic : $ image.jpg --lightrays , -+ -c 0,255 lightrays : -check "${1=50}>=0 && $1<=100 && ${4=1} && ${5=1}>=0" -skip ${2=0.5},${3=0.5} -e[^-1] "Generate ray lights from image$?, with density $1, center ($2,$3), ray length $4 and attenuation $5." -v - -repeat @# -l[$>] -gradient_norm -* -1 -lt $1% -euclidean2polar $2,$3 -repeat {log2(w)} --shift[-1] {2^$>} -+[-2,-1] -done -function1d 0.5,0,1,{$4*w},1,{1+($4+1-$5)*w},0 -r[-1] @{-2,w},1,1,1,0 (1,{w}) -r[-1] @{-2,w},1,1,1,3 -/[-2,-1] -r[-1] [-2] -*[-2,-1] -polar2euclidean $2,$3 -n 0,255 -endl -done -v + #@gmic light_relief : _ambient_light,_specular_lightness,_specular_size,_light_smoothness,_darkness,_xl,_yl,_zl,_zscale,_opacity_bumpmap={ 0 | 1 } #@gmic : Apply relief light to selected images. #@gmic : Default values(s) : 'ambient_light=0.3', 'specular_lightness=0.5', 'specular_size=0.2', 'darkness=0', 'xl=0.2', 'yl=zl=0.5', #@gmic : 'zscale=1', 'opacity=1' and 'opacity_bumpmap=0'. #@gmic : $ image.jpg --blur 2 -light_relief[-1] 0.3,4,0.1,0 light_relief : -skip ${1=0.3},${2=0.5},${3=0.2},${4=0},${5=0.2},${6=0.5},${7=0.5},${8=1},${9=1},${10=0} -e[^-1] "Apply relief light to image$?." -v - -repeat @# -l[$>] ({-$6},{1-$6};{-$6},{1-$6}^{-$7},{-$7};{1-$7},{1-$7}^$8,$8;$8,$8) -r[-1] [-2],[-2],1,3,3 # Create light vector field. -if $10 --channels[-2] 3 -to_rgb[-3] -else --to_rgb[-2] -norm[-1] -endif -b[-1] $5% -g[-1] xy 100%,100%,1,1,$9 -a[-3--1] c # Create normal vector field. -orientation[-2,-1] -*[-2,-1] -s[-1] c -+[-3--1] # Normalized scalar product. 100%,100% -=[-1] 1,{$6*100}%,{$7*100}% -distance[-1] 1 -sqr[-1] -*[-1] -1 # Compute specular attenuation. -/[-1] {($3*max(w,h))^2} -exp[-1] -*[-1] $2 -+[-1] $1 -*[-2,-1] --[-1] $4 -*[-1] @{-2,M} -split_opacity[0] -+[0,-1] -a c -c 0,255 -endl -done -v + #@gmic mosaic : _density>=0,_edges={ 0 | 1 } #@gmic : Create random mosaic from selected images. #@gmic : Default values: 'density=0.8' and 'edges=1'. #@gmic : $ image.jpg --mosaic , mosaic : -skip ${1=0.8},${2=1} -e[^-1] "Apply mosaic effect on image$?, with density $1." -v - -repeat @# -l[$>] label0={1+im} -+ $label0 100%,100% -noise[-1] {$1*2},2 -*[-2] [-1] -distance[-1] 1 -*[-1] -1 -watershed[-2] [-1],{if($2,0,1)} -rm[-1] -if $2 --l[-1] -gt 0 -s c -and -endl --[-2] $label0 -*[-2,-1] -else --[-1] $label0 -endif -endl -done -v + #@gmic old_photo #@gmic : Apply old photo effect on selected images. #@gmic : $ image.jpg --old_photo old_photo : -e[^-1] "Apply old photo effect on image$?." -v - -noise 20 -bilateral 30,60 -b 2 -sharpen 100 -frame_fuzzy 20,20,6,3 -to_rgb -shadow_patch 0.75 -n 0,255 -sepia -v + #@gmic pencilbw : _size>=0,_amplitude>=0 #@gmic : Apply B&W pencil effect on selected images. #@gmic : Default values: 'size=0.3' and 'amplitude=60'. #@gmic : $ image.jpg --pencilbw , pencilbw : -skip ${1=0.3},${2=60} -e[^-1] "Apply B&W pencil effect on image$?, with size $1 and amplitude $2." -v - -repeat @# -l[$>] -split_opacity -l[0] -norm -b $1 -sharpen 4000 -smooth $2,0,1 -equalize 256 -sqrt -n 0,255 -endl -a c -endl -done -v + #@gmic polaroid : _size1>=0,_size2>=0 #@gmic : Create polaroid effect in selected images. #@gmic : Default values: 'size1=10' and 'size2=20'. #@gmic : $ image.jpg -to_rgba -polaroid 5,30 -rotate 20 -drop_shadow , -display_rgba polaroid : -check "${1=10}>=0 && ${2=20}>=0" -e[^-1] "Create polaroid effect in image$?, with borders sizes $1 and $2." -v - -- 255 -r {100+$1}%,{100+$1}%,1,100%,0,0,0.5,0.5 -r 100%,{100+$2}%,1,100%,0,0,0 -+ 255 -v + #@gmic poster_edges : 0<=_edge_threshold<=100,0<=_edge_shade<=100,_edge_thickness>=0,_edge_antialiasing>=0,0<=_posterization_level<=15,_posterization_antialiasing>=0 #@gmic : Apply poster edges effect on selected images. #@gmic : Default values: 'edge_threshold=40', 'edge_shade=5', 'edge_thickness=0.5', 'edge_antialiasing=10', 'posterization_level=12' and 'posterization_antialiasing=0'. #@gmic : $ image.jpg --poster_edges , poster_edges : -check "${1=40}>=0 && $1<=100 && ${2=5}>=0 && $2<=100 && ${3=0.5}>=0 && ${4=10}>=0 && ${5=12}>=0 && $5<=15 && ${6=0}>=0" -v - -repeat @# -l[$>] -split_opacity -l[0] --gradient xy,1 -a[-2,-1] c -norm[-1] -b[-1] $3 -n[-1] 0,255 -apply_curve[-1] 1,0,1,{max(0,(100-($1%)^0.1*100)*255%)},0.99,{min(255,(101-($1%)^0.1*100+$2)*255%)},0.01,255,0 -c[-1] 0,1 -if $4 -smooth[-1] {min(50,$4)},0,1,{$4/40},{$4/40},0.8,90 -endif -if $5 -autoindex[0] {round((4-sqrt($5+1))*32+2)} -endif -if $6 -smooth[0] {min(50,$6)},0,1,{$6/40},{$6/40},0.8,90 -endif -* -endl -a c -endl -done -v + #@gmic rodilius : 0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={ 0=darker | 1=brighter } #@gmic : Apply rodilius (fractalius-like) filter on selected images. #@gmic : Default values: 'amplitude=10', 'thickness=10', 'sharpness=400', 'nb_orientations=7', 'offset=0' and 'color_mode=1'. #@gmic : $ image.jpg --rodilius 12,10,300,10 -normalize_local[-1] 10,6 rodilius : -check "${1=10}>=0 && $1<=200 && ${2=10}>=0 && $2<=100 && ${3=400}>=0 && ${4=7}>0" -skip ${5=0},${6=1} -e[^-1] "Apply rodilius filter on image$? with amplitude $1, thickness $2, sharpness $3, $4 orientations, offset $5 and "\ @{-arg\ 1+!$6,brighter,darker}" color mode." -v - -repeat @# -l[$>] -split_opacity -rv -if {!$6} -negative[-1] -endif --f[-1] 0 -nm[-1] @{-2,n} -repeat {round($4)} angle={$5+$>*180/round($4)} --blur_linear[-2] $1%,{$1*$2/100}%,$angle,1 -b[-1] 0.7 -sharpen[-1] $3 -max[-2,-1] -done -rm[-2] -if {!$6} -negative[-1] -endif -rv -a c -endl -done -v + #@gmic stained_glass : _edges[%]>=0, shading>=0, is_thin_separators={ 0 | 1 } #@gmic : Generate stained glass from selected images. #@gmic : Default values: 'edges=40%', 'shading=0.2' and 'is_precise=0'. #@gmic : $ image.jpg --stained_glass , stained_glass : -check "${1=40%}>=0 && ${2=0.2}>=0" -skip ${3=0} -e[^-1] "Apply stained glass effect on image$?, with edges $1, shading $2 and thin-separators "@{-arg\ 1+!$3,enabled,disabled}"." -v - -repeat @# -l[$>] im={1+im} -+ $im # Ensure positiveness of image labels. --gradient_norm -ge[-1] $1 -*[-2] [-1] -distance[-1] 1 -sharpen[-1] 1e10 -neq[-1] 0 -if $3 -skeleton[-1] 0 -endif -distance[-1] 1 -watershed[-2] [-1] --[-2] $im -n[-1] 0,1 -^[-1] $2 -* -endl -done -v + #@gmic stars : _density[%]>=0,_depth>=0,_size>0,_nb_branches>=1,0<=_thickness<=1,_smoothness[%]>=0,_R,_G,_B,_opacity #@gmic : Add random stars to selected images. #@gmic : Default values: 'density=10%', 'depth=1', 'size=32', 'nb_branches=5', 'thickness=0.38', 'smoothness=0.5', 'R=G=B=200' and 'opacity=1'. #@gmic : $ image.jpg -stars , stars : -check "${1=10%}>=0 && ${2=1}>=0 && ${3=32}>0 && ${4=5}>=1 && ${5=0.38}>=0 && $5<=1 && ${6=0.5}>=0" -skip ${7=200},${8=$7},${9=$8},${10=1} -e[^-1] "Add $1 random stars to image$?, with depth $2, size $3, $4 branches, thickness $5, smoothness $6, color ($7,$8,$9) and opacity $10." -v - # Generate star sprites. -star3d $4,$5 -col3d[-1] 255 -*3d[-1] $3 -l[-1] -repeat 4 {round(2*$3)},{round(2*$3)} -object3d[-1] [0],50%,50%,0,1,2,0,0 -r3d[0] 0,0,1,90 -done -rm[0] -endl -autocrop[-4--1] 0 -r2dy[-4--1] $3 -b[-4--1] $6,0 -r[-4--1] 100%,100%,1,4 -repeat 4 -sh[{-1-$>}] 0,2 -fc[-1] $7,$8,$9 -rm[-1] -done # Draw stars on selected images. -repeat {@#-1} [-4--1] -l[$>,-4--1] N={round(if(@{-is_percent\ $1},w*h*$1,$1)/4,1,1)} -repeat 4 2,$N -rand[-1] -1,1 1,$N -rand[-1] 0,1 -a[-2,-1] x -i[-2] ({'CImg3d'}) -+[-2] 0.5 -i[-2] ($N;$N) (1,0;1,{$N-1}) -r[-1] 2,$N,1,1,3 -round[-1] 4,$N,1,1,1 -y[-5,-3--1] y -a[-5--1] y -rv[-2,-1] -sprites3d[-2,-1] -*3d[-1] {0.75*@{0,w}},{0.75*@{0,h}},{1000*$2} -object3d[0] [-1],50%,50%,0,$10,0,0,0 -rm[-1] -done -endl -done -rm[-4--1] -v + #@gmic sketchbw #@gmic : _nb_orients>0,_start_angle,_angle_range>=0,_length>=0,_threshold>=0, #@gmic : _opacity,_bgfactor>=0,_density>0,_sharpness>=0, #@gmic : _anisotropy>=0,_smoothness>=0,_coherence>=0,_is_boost={ 0 | 1 },_is_curved={ 0 | 1 }\n #@gmic : Apply sketch effect to selected images. #@gmic : Default values: 'nb_orients=2', 'start_angle=45', 'angle_range=180', 'length=30', 'threshold=1', 'opacity=0.03', #@gmic : 'bgfactor=0', 'density=0.6', 'sharpness=0.1', 'anisotropy=0.6', 'smoothness=0.25', 'coherence=1', 'is_boost=0' and 'is_curved=1'. #@gmic : $ image.jpg --sketchbw 1 --local -reverse -blur[-1] 3 -blend overlay -endl sketchbw : -check "${1=2}>0 && ${3=180}>=0 && ${4=30}>=0 && ${5=1}>=0 && ${7=0}>=0 && ${8=0.6}>0 && ${9=0.1}>=0 && ${10=0.6}>=0 && ${11=0.25}>=0 && ${12=1}>=0" -skip ${2=45},${6=0.03},${13=0},${14=1} -e[^-1] "Apply B&W sketch effect on image$?." -v - -diffusiontensors $9,$10,$11,$12 w=1 h=1 -i[0] 1 -m3d 0 -repeat {@#-1} -/[-1] {max(iM,im)} -s[-1] c # Normalize and split tensor coefficients. 100%,100%,1,1,255 -nm[-1] @{-4,n},1 # Create rendering B&W image. -if {$w!=w||$h!=h} # Create set of random coordinates, if necessary. -rm[0] {$8*w*h/($1*sqrt($4))} --rand[-1] 0,{@{-2,h}-1} -rand[-2] 0,{@{-3,w}-1} -a[-2,-1] y -mv[-1] 0 w={w} h={h} -endif -if $14 # Render sketch with curved strokes -repeat $1 alpha={($2+$>*$3/$1)*pi/180} --*[-4] {cos($alpha)} --*[-4] {sin($alpha)} -+[-2,-1] --*[-4] {cos($alpha)} --*[-4] {sin($alpha)} -+[-2,-1] -a[-2,-1] c -channels[-1] 0,2 -if $13 -orientation[-1] -endif -repeat @{0,w} xy=@{0,($>,0)},@{0,($>,1)} -if {@{-5,($xy)}+@{-3,($xy)}<$5} opac=$6 -else opac={$7*$6} -endif -if $opac --streamline3d[-1] $xy,0,$4,0.8,0,0,1 -col3d[-1] 0 -object3d[-3] [-1],0,0,0,$opac,1,0,0 -rm[-1] --streamline3d[-1] $xy,0,$4,0.8,0,1,1 -col3d[-1] 0 -object3d[-3] [-1],0,0,0,$opac,1,0,0 -rm[-1] -endif -done -rm[-1] -done -else # Render sketch with straight strokes -repeat $1 alpha={($2+$>*$3/$1)*pi/180} --*[-4] {cos($alpha)} --*[-4] {sin($alpha)} -+[-2,-1] --*[-4] {cos($alpha)} --*[-4] {sin($alpha)} -+[-2,-1] -a[-2,-1] c -if $13 -orientation[-1] -endif -repeat @{0,w} x=@{0,($>,0)} y=@{0,($>,1)} -if {@{-5,($x,$y)}+@{-3,($x,$y)}<$5} opac=$6 -else opac={$7*$6} -endif -if $opac -line[-2] {$x-$4*@{-1,($x,$y,0,0)}},{$y-$4*@{-1,($x,$y,0,1)}},\ {$x+$4*@{-1,($x,$y,0,0)}},{$y+$4*@{-1,($x,$y,0,1)}},\ {3*$opac},0 -endif -done -rm[-1] -done -endif -rm[-4--2] -mv[-1] 1 -done -rm[0] -v + #@gmic sponge : _size>0 #@gmic : Apply sponge effect on selected images. #@gmic : Default value: 'size=13'. #@gmic : $ image.jpg --sponge , sponge : -skip ${1=13} -e[^-1] "Apply sponge filter on image$?, with brush size $1." -v - -repeat @# -l[$>] 100%,100%,1,1 -noise[-1] 20,2 -r[-1] [-2] -n[-1] 0,1 -*[-1,-2] -_circle $1 -dilate[-2] [-1] -rm[-1] -endl -done -v + _circle : -if {$1%2==0} -i 2,2 -else -i 1 -endif -+[-1] 1 -r[-1] $1,$1,1,1,0,0,0.5,0.5 -distance[-1] 1 -n[-1] 0,1 -sqrt[-1] -c[-1] 0.85,0.86 -*[-1] -1 -n[-1] 0,1 #@gmic stencil : _radius[%]>=0,_smoothness>=0,_iterations>=0 #@gmic : Apply stencil filter on selected images. #@gmic : Default values: 'radius=3', 'smoothness=1' and 'iterations=8'. #@gmic : $ image.jpg --stencil 1,10,3 stencil : -check "${1=3}>=0 && ${2=1}>=0 && ${3=8}>=0" -e[^-1] "Apply stencil filter on image$?, with radius $1, smoothness $2 and $3 iterations." -v - -n 0,1 -repeat $3 -b $1 -unsharp {$1+$2},1000 -c 0,255 -done -v + #@gmic stencilbw : _edges>=0,_smoothness>=0 #@gmic : Apply B&W stencil effect on selected images. #@gmic : Default values: 'edges=15' and 'smoothness=10'. #@gmic : $ image.jpg --stencilbw 40,4 stencilbw : -skip ${1=15},${2=10} -e[^-1] "Apply B&W stencil effect on image$?, with edges $1 and smoothness $2." -v - -repeat @# -l[$>] -split_opacity -luminance[0] -n[0] 0,255 --edges[0] $1 -quantize[0] 3,0,1 -b[0] $2 -sharpen[0] 1000000 -n[0] 0,1 -*[0,-1] -n[0] 0,255 -a c -endl -done -v + #@gmic tetris : _scale>0 #@gmic : Apply tetris effect on selected images. #@gmic : Default value: 'scale=10'. #@gmic : $ image.jpg --tetris 10 tetris : -skip ${1=10} -e[^-1] "Apply tetris effect on image$?, with scale $1." -v - -repeat @# -l[$>] wh={w},{h},1,{s} -r $1%,$1%,$1%,100%,2 -n 0,255 -quantize 10,1,0 -r $wh -b 2 -sharpen 300,1 -endl -done -v + #@gmic warhol : _M>0,_N>0,_smoothness>=0,_color>=0 #@gmic : Create MxN Andy Warhol-like artwork from selected images. #@gmic : Default values: 'M=3', 'N=M', 'smoothness=2' and 'color=20'. #@gmic : $ image.jpg --warhol 5,3,3,40 warhol : -skip ${1=3},${2=$1},${3=2},${4=20} -e[^-1] "Create $1x$2 Andy Warhol-like artwork from image$?." -v - r0={100/max($1,$2)} -repeat @# -l[$>] -norm -b $3 -r $r0%,$r0%,1,100%,2 -quantize 6 -n 0,5 -round 1 -repeat $1 -repeat $2 (0,1,2,3,4,5) -n[-1] 32,224 6,1,1,2,128 -noise[-1] $4,0 -c[-1] 0,255 -a[-2,-1] c -ycbcr2rgb[-1] --map[0] [-1] -rm[-2] -done -done -append_tiles[^0] $1,$2 -nm[1] @{0,n},1 -rm[0] -endl -done -v + #@gmic weave : _density>=0,0<=_thickness<=100,0<=_shadow<=100,_shading>=0,_fibers_amplitude>=0,_fibers_smoothness>=0,_angle,-1<=_x_curvature<=1,-1<=_y_curvature<=1 #@gmic : Apply weave effect to the selected images. #@gmic : 'angle' can be { 0=0° | 1=22.5° | 2=45° | 3=67.5° }. #@gmic : Default values: 'density=6', 'thickness=65', 'shadow=40', 'shading=0.5', 'fibers_amplitude=0', 'fibers_smoothness=0', 'angle=0' and 'curvature_x=curvature_y=0' #@gmic : $ image.jpg --weave , weave : -check "${1=6}>=0 && ${2=65}>=0 && $2<=100 && ${3=40}>=0 && $3<=100 && ${4=0.5}>=0" -check "${5=0}>=0 && ${6=0}>=0 && ${7=0}>=0 && $7<=3 && ${8=0}>=-1 && $8<=1 && ${9=0}>=-1 && $9<=1" -e[^-1] "Apply weave effect to image$?, with $1 strips, thickness $2, shadow $3, shading $4, "\ "fibers amplitude $5 and fibers smoothness $6, angle "{$7*22.5}"° and curvatures ($8,$9)." -v - -repeat @# -l[$>] -split_opacity -l[0] w={round(max(w,h)/$1,1,1)} h=$w s={(100-$3)*255%} p={max(0.01,$4)} # Create patterns. 1,$h -=[-1] 1,0,50% -distance[-1] 1 -^[-1] $p -c[-1] 50%,100% -r[-1] {max(1,round($2*$w%))},100% $w,1 -=[-1] 1,50% -distance[-1] 1 -^[-1] $p -c[-1] 50%,100% -*[-1] -1 -r[-1] 100%,{max(1,round($2*$h%))} --*[-1] -1 --*[-3] -1 -n[-4,-2] 0,$s -n[-3,-1] $s,255 {w},1 1,[-3] -rand[-2,-1] 0,1 -b[-2,-1] $6% -n[-2,-1] -$5,$5 -r[-1] [-4] -+[-5] [-1] -+[-4,-1] -+[-5] [-1] -+[-2,-1] --f[-3] 255 -a[-4,-1] c --f[-1] 255 -a[-2,-1] c amp_x={$8*($w-w)/2} amp_y={$9*($w-w)/2} -r[-4--1] $w,$h,1,100%,0,0,0.5,0.5 -f[-4] 'i(x+$amp_x*sin(y/h*pi),y,0,c,1,2)' -f[-1] 'i(x-$amp_x*sin(y/h*pi),y,0,c,1,2)' -f[-3] 'i(x,y+$amp_y*sin(x/w*pi),0,c,1,2)' -f[-2] 'i(x,y-$amp_y*sin(x/w*pi),0,c,1,2)' -blend[-4,-3] alpha -blend[-2,-1] alpha -c[-2,-1] 0,255 # Render full pattern and merge. -/[-2,-1] 255 [-1] [-3] -a[-4,-2] x -a[-2,-1] x -a[-2,-1] y -rotate_tileable[-1] {$7*22.5} -r[-1] [-2],[-2],1,1,0,2 -*[-2,-1] -endl -a c -endl -done -v + #@gmic whirls : _texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0 #@gmic : Add random whirl texture to selected images. #@gmic : Default values: 'texture=3', 'smoothness=6', 'darkness=0.5' and 'lightness=1.8'. #@gmic : $ image.jpg --whirls , whirls : -skip ${1=3},${2=6},${3=0.5},${4=1.8} -e[^-1] "Add random whirl texture to image$?, with texture $1, smoothness $2, darkness $3 and lightness $4." -v - -repeat @# -l[$>] 100%,100% -noise[-1] 0.3,2 -repeat $1 -b[-1] $2 -gradient_norm[-1] -^[-1] 0.2 -done -n[-1] $3,$4 -r[-1] [-2] -* -c 0,255 -endl -done -v + #------------------------------------ # #@gmic :: Warpings # #------------------------------------ #@gmic euclidean2polar : _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Apply euclidean to polar transform on selected images. #@gmic : Default values: 'cx=cy=0.5', 'n=1' and 'boundary=1'. #@gmic : $ image.jpg --euclidean2polar , euclidean2polar : -skip ${1=0.5},${2=0.5},${3=1},${4=1} -e[^-1] "Apply euclidean to polar transform on image$?." -v - -repeat @# -l[$>] ({w},{h}) ($1,$2) -*[-2,-1] ({"sqrt(max("@{-1,0}","@{-2,w}"-"@{-1,0}")^2 + max("@{-1,1}","@{-2,h}"-"@{-1,1}")^2)"}) -a[-2,-1] x [-2],[-2],1,1,@{-1,2}"*(x/w)^$3*cos(y*2*pi/h)" -+[-1] @{-2,0} [-1],[-1],1,1,@{-2,2}"*(x/w)^$3*sin(y*2*pi/h)" -+[-1] @{-3,1} -rm[-3] -a[-2,-1] c -warp[-2] [-1],0,1,$4 -rm[-1] -endl -done -v + #@gmic deform : _amplitude>=0 #@gmic : Apply random smooth deformation on selected images. #@gmic : Default value: 'amplitude=10'. #@gmic : $ image.jpg --deform[0] 10 --deform[0] 20 deform : -skip ${1=10} -e[^-1] "Apply random smooth deformation on image$?, with amplitude $1." -v - -repeat @# -l[$>] 2%,2%,1,2 -noise[-1] $1 -r[-1] [-2],[-2],1,2,5 -warp[-2] [-1],1,1,1 -rm[-1] -endl -done -v + #@gmic fisheye : _x,_y,0<=_radius<=100,_amplitude>=0 #@gmic : Apply fish-eye deformation on selected images. #@gmic : Default values: 'x=y=50', 'radius=50' and 'amplitude=1.2'. #@gmic : $ image.jpg --fisheye , fisheye : -skip ${1=50},${2=50},${3=50},${4=1.2} -e[^-1] "Apply Fish-eye effect on image$?, centered at ($1%,$2%) with radius $3% and amplitude $4." -if {$4==0} -return -endif -v - -repeat @# -l[$>] 100%,100%,1,1 -=[-1] 1,$1%,$2% -distance[-1] 1 -c[-1] 0,$3% -*[-1] -1 -n[-1] 0,1 -^[-1] {1/$4} -i[-2] ({-$1/100},{1-$1/100};{-$1/100},{1-$1/100}^{-$2/100},{-$2/100};{1-$2/100},{1-$2/100}) -r[-2] [-1],[-1],1,2,3 -n[-1] 0,{max(w,h)} -*[-2,-1] -warp[-2] [-1],1,1,1 -rm[-1] -endl -done -v + #@gmic flower : _amplitude,_frequency,_offset_r[%],_angle,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Apply flower deformation on selected images. #@gmic : Default values: 'amplitude=30', 'frequency=6', 'offset_r=0', 'angle=0', 'cx=cy=0.5' and 'boundary=2'. #@gmic : $ image.jpg -flower , flower : -skip ${1=30},${2=6},${3=0},${4=0},${5=0.5},${6=0.5},${7=2} -e[^-1] "Apply flower deformation on image$?, with amplitude $1, frequency $2, offset $3, angle $4° and center ($1,$2)." -v - -repeat @# -l[$>] -euclidean2polar $5,$6,1,$7 -shift $3,0,0,0,2 100%,100%,1,1,y -/[-1] {h} -*[-1] $2 ({$4/360}) -+[-2] @-1 -rm[-1] -*[-1] 6.2831853 -sin[-1] -*[-1] $1 -*[-1] {w} -/[-1] 100 -channels[-1] 0,1 -warp[-2] [-1],1,1,$7 -rm[-1] -polar2euclidean $5,$6,1,1 -endl -done -v + #@gmic kaleidoscope : _cx,_cy,_radius,_angle,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Create kaleidoscope effect from selected images. #@gmic : Default values: 'cx=cy=0.5', 'radius=100', 'angle=30' and 'boundary=1'. #@gmic : $ image.jpg --kaleidoscope , kaleidoscope : -skip ${1=0.5},${2=0.5},${3=100},${4=30},${5=1} -e[^-1] "Create kaleidoscope effect from image$?, with center ($1,$2), radius $3, angle $4°." -v - -euclidean2polar $1,$2,1,$5 -repeat @# -l[$>] --columns 0,$3% -rows[-1] 0,$4% -r[-1] [-2],0,2 -nm[1] @{0,n} -rm[0] -endl -done -polar2euclidean $1,$2,1,$5 -v + #@gmic map_sphere : _width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0 #@gmic : Map selected images on a sphere. #@gmic : Default values: 'width=height=512', 'radius=100', 'dilation=0.5', 'fading=0' and 'fading_power=0.5'. #@gmic : $ image.jpg --map_sphere , map_sphere : -check "${1=512}>0 && ${2=512}>0 && ${5=0}>=0 && ${6=0.5}>=0" -skip ${3=100},${4=0.5} -e[^-1] "Map image$? on spheres in $1x$2 images, with radius $3, dilation $4 and fading $5." -v - r2={($3*min($1,$2)/200)^2} # Compute squared radius. -repeat @# -l[$>] -i[-2] 100%,1,1,100%,0 -nm[0] @{1,n} -a y # Add one border line to have a sphere exterior. ({-$1/2},{$1/2}) ({-$2/2};{$2/2}) -r[-2,-1] $1,$2,1,1,3 -atan2[-1] [-2] -rm[-2] # Compute theta angle. $1,$2 -=[-1] 1,50%,50% -distance[-1] 1,3 -/[-1] $r2 -sqrt[-1] -c[-1] 0,1 -asin[-1] # Compute phi angle. -+[-2] {pi} -*[-2] {(@{-3,w}-1)/(2*pi)} # Normalize theta to X-coordinates -*[-1] {2/pi} -^[-1] $4 -*[-1] {@{-3,h}-1} -*[-1] -1 -+[-1] {@{-3,h}-1} # Normalize phi to Y-coordinates -if $5 --ge[-1] 1 -distance[-1] 1 -c[-1] 0,$5% -n[-1] 0,1 -^[-1] $6 -c[-2] 1,100% --[-2,-1] -endif -a[-2,-1] c -warp[-2] [-1],0,1,1 -rm[-1] # Apply image warping -endl -done -v + #@gmic polar2euclidean : _cx,_cy,_n>0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Apply polar to euclidean transform on selected images. #@gmic : Default values: 'cx=cy=0.5', 'n=1' and 'boundary=1'. #@gmic : $ image.jpg --euclidean2polar , -mirror[-1] x -polar2euclidean[-1] , polar2euclidean : -skip ${1=0.5},${2=0.5},${3=1},${4=1} -e[^-1] "Apply polar to euclidean transform on image$?." -v - -repeat @# -l[$>] ({w},{h}) ($1,$2) -*[-2,-1] ({"sqrt(max("@{-1,0}","@{-2,w}"-"@{-1,0}")^2 + max("@{-1,1}","@{-2,h}"-"@{-1,1}")^2)"}) -a[-2,-1] x [-2],[-2],1,1,"w*(sqrt((x-"@{-1,0}")^2 + (y-"@{-1,1}")^2)/"@{-1,2}")^(1/$3)" [-1],[-1],1,1,"(atan2(y-"@{-2,1}",x-"@{-2,0}")*h/(2*pi)+h)%h" -rm[-3] -a[-2,-1] c -warp[-2] [-1],0,1,$4 -rm[-1] -endl -done -v + #@gmic raindrops : _amplitude,_density>=0,_wavelength>=0,_merging_steps>=0 #@gmic : Apply raindrops deformation on selected images. #@gmic : Default values : 'amplitude=80','density=0.1', 'wavelength=1' and 'merging_steps=0'. #@gmic : $ image.jpg --raindrops , raindrops : -check "${2=0.1}>=0 && ${3=1}>=0 && isint(${4=0}) && $4>=0" -skip ${1=80} -e[^-1] "Apply raindrops deformation on image$?, with amplitude $1, density $2, wavelength $3 and $4 merging steps." -v - -repeat @# -l[$>] 100%,100% -noise[-1] $2,2 -distance[-1] 1 -f[-1] 'cos(i)/(1+i/$3)' -if $4 -i[-2] (0,1,0;1,0,1;0,1,0) -/[-2] 2 [-1] -repeat $4 --convolve[-1] [-3],1 --[-1] [-3] -rm[-3] -w[-1] -done -rm[-3,-2] -endif -gradient[-1] -a[-2,-1] c -*[-1] {$1/(1e-5+max(abs(im),abs(iM)))} -warp[-2] [-1],1 -rm[-1] -endl -done -v + #@gmic ripple : _amplitude,_frequency,_shape={ 0=bloc | 1=triangle | 2=sine | 3=sine+ | 4=random },_angle,_offset #@gmic : Apply ripple deformation on selected images. #@gmic : Default values: 'amplitude=10', 'frequency=10', 'shape=2', 'angle=0' and 'offset=0'. #@gmic : $ image.jpg --ripple , ripple : -skip ${1=10},${2=20},${3=2},${4=0},${5=0} -e[^-1] "Apply ripple deformation on image$?, with amplitude $1, frequency $2, shape $3, angle $4° and offset $5." -v - theta={$4*pi/180} C={cos($theta)} S={-sin($theta)} -repeat @# -l[$>] 100%,100%,1,1,"x" --[-1] {w/2} 100%,100%,1,1,'y' --[-1] {h/2-$5} -*[-2] $S -*[-1] $C -+[-2,-1] # Generate rotated Y. -_ripple$3[-1] $1,$2 # Generate warp field. --*[-1] {-$S} -*[-2] $C -a[-2,-1] c # Rotate warp field. -warp[-2] [-1],1 -rm[-1] -endl -done -v + _ripple0 : -f {$1/2}*"(1-2*(i%"{2*$2}"<$2))" _ripple1 : -f "I=(i%$2)/$2;$1*(2*if(I<0.5,I,1-I)-0.5)" _ripple2 : -f {-$1/2}*"cos(i*"{2*pi/$2}")" _ripple3 : -f {-$1/2}*"abs(cos(i*"{2*pi/$2}"))" _ripple4 : -skip $* -n 0,{h-1} 1,{h} -rand[-1] {-$1/2},{$1/2} m={im} M={iM} -b[-1] {$2/10} -n[-1] $m,$M -map[-2] [-1] -rm[-1] #@gmic rotoidoscope : _cx,_cy,_tiles>0,_smoothness[%]>=0,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Create rotational kaleidoscope effect from selected images. #@gmic : Default values: 'cx=cy=50%', 'tiles=10', 'smoothness=1' and 'boundary=1'. #@gmic : $ image.jpg --rotoidoscope , rotoidoscope : -skip ${1=50%},${2=50%},${5=1} -check "${3=10}>0 && ${4=1}>=0" -e[^-1] "Create rotational kaleidoscope effect from image$?, with center ($1,$2), $3 tiles and smoothness $4." -v - -repeat @# -l[$>] -repeat $3 --rotate[0] {360/$3},1,$5,$1,$2 -blend_edges $4 -done -endl -done -v + #@gmic symmetrize : _x[%],_y[%],_angle,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic },_is_antisymmetry={ 0 | 1 },_swap_sides={ 0 | 1 } #@gmic : Symmetrize selected image regarding specified axis. #@gmic : Default values: 'x=y=50%', 'angle=90', 'boundary=1', 'is_antisymmetry=0' and 'swap_sides=0'. #@gmic : $ image.jpg --symmetrize 50%,50%,45 --symmetrize[-1] 50%,50%,-45 symmetrize : -skip ${1=50%},${2=50%},${3=90},${4=1},${5=0},${6=0} -e[^-1] "Symmetrize image$?, regarding axis ($1,$2,$3°)." -v - theta={$3*pi/180} u={cos($theta)} v={sin($theta)} -if $6 symmetry_cond=A<0 -else symmetry_cond=A>0 -endif -repeat @# -l[$>] x0={if(@{-is_percent\ $1},w*$1,$1)} y0={if(@{-is_percent\ $2},h*$2,$2)} -if $5 -f 'A=($y0-y)*$u-($x0-x)*$v;X=x+2*($x0-x);Y=y+2*($y0-y);if($symmetry_cond,i(X,Y,z,c,1,$4),i)' -else -f 'A=($y0-y)*$u-($x0-x)*$v;X=x-2*$v*A;Y=y+2*$u*A;if($symmetry_cond,i(X,Y,z,c,1,$4),i)' -endif -endl -done -v + #@gmic transform_polar : "expr_radius",_"expr_angle",_x_center,_y_center,_boundary={ 0=dirichlet | 1=neumann } #@gmic : Apply user-defined transform on polar representation of selected images. #@gmic : Default values: 'expr_radius=R-r', 'expr_rangle=a', 'x_center=y_center=50' and 'boundary=1'. #@gmic : $ image.jpg --transform_polar[0] R*(r/R)^2,a --transform_polar[0] r,2*a transform_polar : -skip "${1=R-r}","${2=a}",${3=50},${4=50},${5=1} -e[^-1] "Apply custom polar transform with 'new_r = $1', 'new_a = $2', centered at ($3%,$4%)." -v - -repeat @# -l[$>] R={"sqrt((max($3,100-$3)*w/100)^2 + (max($4,100-$4)*h/100)^2)"} w={"$3*w/100"} h={"$4*h/100"} -f "R ="$R"; r = sqrt((x-"$w")^2 + (y-"$h")^2); a = atan2(y-"$h",x-"$w"); nr = $1; na = $2; i("$w" + nr*cos(na), "$h" + nr*sin(na), z, c, 1,$5)" -endl -done -v + #@gmic twirl : _amplitude,_cx,_cy,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Apply twirl deformation on selected images. #@gmic : Default values: 'amplitude=1', 'cx=cy=0.5' and 'boundary=1'. #@gmic : $ image.jpg --twirl 0.6 twirl : -skip ${1=1},${2=0.5},${3=0.5},${4=1} -e[^-1] "Apply twirl deformation on image$?, with amplitude $1 and center at ($2%,$3%)." -v - -euclidean2polar $2,$3,1,$4 -repeat @# [$>],[$>],1,1,$1*x -channels[-1] -1,0 -warp[$>] [-1],1,1,2 -rm[-1] -done -polar2euclidean $2,$3,1,1 -v + #@gmic warp_perspective : _x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Warp selected images with perspective deformation. #@gmic : Default values: 'x-angle=1.5', 'y-angle=0', 'zoom=1', 'x-center=y-center=50' and 'boundary=2'. #@gmic : $ image.jpg --warp_perspective , warp_perspective : -skip ${1=1.5},${2=0},${3=1},${4=50},${5=50},${6=2} -e[^-1] "Apply perspective warp on image$?, with angles ($1°,$2°), zoom $3 and offsets ($4,$5)." -v - -repeat @# -l[$>] (0,100) --[-1] $4 -/[-1] 100 (0;100) --[-1] $5 -/[-1] 100 -r[-2,-1] [-3],[-3],[-3],1,3 --*[-2] $2 --*[-2] $1 -+[-2,-1] -+[-1] $3 -/[-3] [-1] -/[-2,-1] -*[-2] 100 -+[-2] $4 -/[-2] 100 -*[-2] @{-3,w} -*[-1] 100 -+[-1] $5 -/[-1] 100 -*[-1] @{-3,h} -a[-2,-1] c -warp[-2] [-1],0,1,$6 -rm[-1] -endl -done -v + #@gmic water : _amplitude>=0,_smoothness>=0 #@gmic : Apply water deformation on selected images. #@gmic : Default values: 'amplitude=30' and 'smoothness=1.5'. #@gmic : $ image.jpg --water , water : -skip ${1=30},${2=1.5} -e[^-1] "Apply water deformation on image$?, with amplitude $1 and smoothness $2." -v - -repeat @# -l[$>] 25%,25%,25%,1 -noise[-1] $1 -g[-1] xyz -+[-1,-2,-3] -b[-1] $2 -*[-1] 2 -r[-1] [-2],[-2],1,2,3 -warp[-2] [-1],1 -rm[-1] -endl -done -v + #@gmic wave : _amplitude>=0,_frequency>=0,_center_x,_center_y #@gmic : Apply wave deformation on selected images. #@gmic : Default values: 'amplitude=4', 'frequency=0.4' and 'center_x=center_y=50'. #@gmic : $ image.jpg --wave , wave : -skip ${1=4},${2=0.4},${3=50},${4=50} -e[^-1] "Apply wave deformation on image$?, with amplitude $1, frequency $2 and center at ($3%,$4%)." -v - -repeat @# -l[$>] 100%,100% -=[-1] 1,$3%,$4% -distance[-1] 1 -*[-1] $2 --sin[-1] -cos[-2] -a[-2,-1] c -*[-1] $1 -warp[-2] [-1],1 -rm[-1] -endl -done -v + #@gmic wind : _amplitude>=0,_angle,0<=_attenuation<=1,_threshold #@gmic : Apply wind effect on selected images. #@gmic : Default values: 'amplitude=20', 'angle=0', 'attenuation=0.7' and 'threshold=20'. #@gmic : $ image.jpg --wind , wind : -check "isint(${1=20}) && $1>=0 && ${3=0.7}>=0 && $3<=1" -skip "${2=0},${4=20}" -e[^-1] "Apply wind effect on image$?, with amplitude $1, angle "{round($2/45)*45}" deg., attenuation $3 and threshold $4." -v - -if {!$1} -return -endif dxdy=@{-_wind{round($2/45)%8}} fact={(1-$3)^(1/$1)} -repeat @# -l[$>] --gradient_norm -ge[-1] $4% sum=@{-1,+} -r[-1] 100%,100%,1,[-2] -*[-1] [-2] -repeat $1 -shift[-1] $dxdy,0,0,0 -max[-2] [-1] -*[-1] $fact -remove_pixels[-1] {100/$1},$sum -done -rm[-1] -endl -done -v + _wind0 : -u 1,0 _wind1 : -u 1,1 _wind2 : -u 0,1 _wind3 : -u -1,1 _wind4 : -u -1,0 _wind5 : -u -1,-1 _wind6 : -u 0,-1 _wind7 : -u 1,-1 #@gmic zoom : _factor,_cx,_cy,_cz,_boundary={ 0=dirichlet | 1=neumann | 2=cyclic } #@gmic : Apply zoom factor to selected images. #@gmic : Default values: 'factor=1', 'cx=cy=cz=0.5' and 'boundary=0'. #@gmic : $ image.jpg --zoom[0] 0.6 --zoom[0] 1.5 zoom : -skip ${1=2},${2=0.5},${3=0.5},${4=0.5},${5=0} -e[^-1] "Apply zoom effect on image$?, with factor $1 and center ($2,$3)." -v - -repeat @# -l[$>] -if {d==1} # 2d image. ({(w-1)*$2*(1-1/$1)},{(w-1)*($2+(1-$2)/$1)}) ({(@{-2,h}-1)*$3*(1-1/$1)};{(@{-2,h}-1)*($3+(1-$3)/$1)}) -r[-2--1] [-3],[-3],1,1,3 -a[-2--1] c -warp[-2] [-1],0,1,$5 -else # 3d image. ({(w-1)*$2*(1-1/$1)},{(w-1)*($2+(1-$2)/$1)}) ({(@{-2,h}-1)*$3*(1-1/$1)};{(@{-2,h}-1)*($3+(1-$3)/$1)}) ({(@{-3,d}-1)*$4*(1-1/$1)}/{(@{-3,d}-1)*($4+(1-$4)/$1)}) -r[-3--1] [-4],[-4],[-4],1,3 -a[-3--1] c -warp[-2] [-1],0,1,$5 -endif -rm[-1] -endl -done -v + #----------------------------- # #@gmic :: Degradations # #----------------------------- #@gmic cracks : _density>=0,_amplitude,_relief={ 0 | 1 } #@gmic : Add random cracks to selected images. #@gmic : Default values: 'density=0.2', 'amplitude=40' and 'relief=0'. #@gmic : $ image.jpg --cracks 0.2,60,1 cracks : -skip ${1=0.2},${2=40},${3=0} -e[^-1] "Add random cracks to image$?, with density $1." -v - -repeat @# -l[$>] ({im},{iM}) [-2],[-2],1,1 -noise[-1] $1,2 -distance[-1] 1 -sharpen[-1] 10000 -if $3 -g[-1] xy -+[-2,-1] -n[-1] -1,1 -else -n[-1] 0,1 -endif -*[-1] $2 -+[-3,-1] -c[-2] @-1 -rm[-1] -endl -done -v + #@gmic light_patch : _density>0,_darkness>=0,_lightness>=0 #@gmic : Add light patches to selected images. #@gmic : Default values: 'density=10', 'darkness=0.9' and 'lightness=1.7'. #@gmic : $ image.jpg --light_patch 20,0.9,4 light_patch : -skip ${1=10},${2=0.9},${3=1.7} -e[^-1] "Apply light patches to image$?, with density $1, darkness $2 and lightness $3." -v - -repeat @# -l[$>] -n 0,255 $1,$1 -noise[-1] 40 -r[-1] [-2],5 -c[-1] 0,255 -n[-1] $2,$3 -* -c 0,255 -endl -done -v + #@gmic noise_hurl : _amplitude>=0 #@gmic : Add hurl noise to selected images. #@gmic : Default value: 'amplitude=10'. #@gmic : $ image.jpg --noise_hurl , noise_hurl : -skip ${1=10} -e[^-1] "Add hurl noise to image$?, with amplitude $1%." -v - -repeat @# -l[$>] --f 0 -noise[-1] 10 -n[-1] @{-2,m},@{-2,M} 100%,100%,1,1,-2 -noise[-1] $1,2 -ge[-1] 0 -r[-1] [-2] -*[-2] [-1] -*[-1] -1 -+[-1] 1 -*[-3,-1] -+ -endl -done -v + #@gmic pixelize : _scale_x>0,_scale_y>0,_scale_z>0 #@gmic : Pixelize selected images with specified scales. #@gmic : Default values: 'scale_x=20' and 'scale_y=scale_z=scale_x'. #@gmic : $ image.jpg --pixelize , pixelize : -skip ${1=20},${2=$1},${3=$1} -e[^-1] "Pixelize image$? with scales ($1%,$2%,$3%)." -v - -repeat @# -l[$>] whd={w},{h},{d} -r $1%,$2%,$3%,100%,2 -r $whd -endl -done -v + #@gmic shade_stripes : _frequency>=0,_direction={ 0=horizontal | 1=vertical },_darkness>=0,_lightness>=0 #@gmic : Add shade stripes to selected images. #@gmic : Default values: 'frequency=5', 'direction=1', 'darkness=0.8' and 'lightness=2'. #@gmic : $ image.jpg --shade_stripes 30 shade_stripes : -skip ${1=5},${2=1},${3=0.8},${4=2} -e[^-1] "Add "@{-arg\ 1+!$2,vertical,horizontal}" shaded stripes to image$?, with frequency $1, darkness $3 and lightness $4." -v - -n 0,255 -repeat @# -l[$>] {max(1,w*($2!=0))},{max(1,h*($2==0))} -noise[-1] $1,2 -distance[-1] 1 -r[-1] [-2] -n[-1] $3,$4 -* -c 0,255 -endl -done -v + #@gmic shadow_patch : _opacity>=0 #@gmic : Add shadow patches to selected images. #@gmic : Default value: 'opacity=0.7'. #@gmic : $ image.jpg --shadow_patch 0.4 shadow_patch : -skip ${1=0.7} -e[^-1] "Apply shadow patches to image$?, with opacity $1." -v - -repeat @# -l[$>] 100%,100%,1,1 -shift[-1] -2,-2 -shift[-1] 1,1 -plasma[-1] 3,0.3,8 -abs[-1] -b[-1] 1 -c[-1] 3%,15% -r[-1] [-2] -n[-1] $1,1 -* -endl -done -v + #@gmic spread : _dx>=0,_dy>=0,_dz>=0 #@gmic : Spread pixel values of selected images randomly along x,y and z. #@gmic : Default values: 'dx=3', 'dy=dx' and 'dz=0'. #@gmic : $ image.jpg --spread 3 spread : -skip ${1=3},${2=$1},${3=0} -e[^-1] "Spread pixel of image$? randomly, with amplitudes ($1,$2,$3)." -v - -repeat @# -l[$>] 100%,100%,100%,3 -sh[-1] 0,0 -rand[-1] {-$1},$1 -rm[-1] -sh[-1] 1,1 -rand[-1] {-$2},$2 -rm[-1] -sh[-1] 2,2 -rand[-1] {-$3},$3 -rm[-1] -warp[-2] [-1],1 -rm[-1] -endl -done -v + #@gmic stripes_y : _frequency>=0 #@gmic : Add vertical stripes to selected images. #@gmic : Default value: 'frequency=10'. #@gmic : $ image.jpg --stripes_y , stripes_y : -skip ${1=10} -e[^-1] "Add vertical stripes to image$?, with frequency $1." -v - -repeat @# -l[$>] -n 0,255 100% -noise[-1] $1,2 -*[-1] 255 -r[-1] [-2] -*[-1] 0.15 -+ -c 0,255 -endl -done -v + #@gmic texturize_canvas : _amplitude>=0,_fibrousness>=0,_emboss_level>=0 #@gmic : Add paint canvas texture to selected images. #@gmic : Default values: 'amplitude=20', 'fibrousness=3' and 'emboss_level=0.6'. #@gmic : $ image.jpg --texturize_canvas , texturize_canvas : -check "${1=20}>=0 && ${2=3}>=0 && ${3=0.6}>=0 && ${4=80}" -e[^-1] "Add canvas texture to image$?, with amplitude $1, fibrousness $2 and emboss level $3." -repeat @# -l[$>] {w},{h} -rand[-1] 0,255 --blur_x[-1] $2 -blur_y[-2] $2 -+[-2,-1] -g[-1] -a[-2,-1] c --compose_channels[-1] + -orientation[-2] -compose_channels[-2] + -n[-2] $3,1 -n[-1] 0,255 -sharpen[-1] 80 -*[-2,-1] -n[-1] -$1,$1 -+ -c 0,255 -endl -done -v + #@gmic texturize_paper #@gmic : Add paper texture to selected images. #@gmic : $ image.jpg --texturize_paper texturize_paper : -e[^-1] "Add paper texture to image$?." -v - -repeat @# -l[$>] [-1] 30%,30% -noise[-1] 1,2 -r[-1] [-2],[-2],[-2],1,0 -ifft[-1] -rm[-1] -shift[-1] 50%,50%,50%,0,2 -sharpen[-1] 1 -n[-1] 1,1.2 -r[-1] [-2] -*[-2,-1] -c[-1] [-2],[-2] -rm[-2] -endl -done -v + #@gmic vignette : _strength>=0,0<=_radius_min<=100,0<=_radius_max<=100 #@gmic : Add vignette effect to selected images. #@gmic : Default values: 'strength=100', 'radius_min=70' and 'radius_max=90'. #@gmic : $ image.jpg --vignette , vignette : -check "${1=100}>=0 && ${2=70}>=0 && $2<=100 && ${3=90}>=0 && $3<=100" -e[^-1] "Add vignette effect to image$?, with strength $1 and size $2." -v - -repeat @# -l[$>] mM={im},{iM} d={max(w,h)} $d,$d -=[-1] 1,50%,50% -distance[-1] 1 -r[-1] [-2],2 -c[-1] $2%,$3% -n[-1] 0,$1 -- -c $mM -endl -done -v + #@gmic watermark_visible : _text,0<_opacity<1,_size>0,_angle,_mode={ 0=remove | 1=add },_smoothness>=0 #@gmic : Add or remove a visible watermark on selected images (value range must be [0,255]). #@gmic : Default values: 'text=(C) G'MIC', 'opacity=0.3', 'size=57', 'angle=25', 'mode=1' and 'smoothness=0'. #@gmic : $ image.jpg --watermark_visible ,0.7 watermark_visible : -skip "${1=\251\ G'MIC}" -check "${2=0.3}>0 && $2<1 && ${3=57}>0 && ${6=0.5}>=0" -skip ${4=25},${5=1} -e[^-1] @{-arg\ 1+!$5,Add,Remove}" visible watermark '$1' on image$?, with opacity $2, size $3, angle $4°." -v - -repeat @# -l[$>] 0 -t[-1] "$1",0,0,$3,1,255 -rotate[-1] $4,0,0 -b[-1] $6 -n[-1] 0,255 -r[-1] [-2],0,2 -+[-1] [-2] -c[-1] 0,255 # Generate opaque watermark image -if $5 -*[-1] $2 -*[-2] {1-$2} -+ # Add watermark -else -*[-1] $2 -- -/ {1-$2} # Remove watermark -endif -c 0,255 -endl -done -v + #-------------------------------------- # #@gmic :: Blending and fading # #-------------------------------------- #@gmic blend : blending_mode,0<=_opacity<=1,_revert_layer_order={ 0 | 1 } #@gmic : Blend selected G,GA,RGB or RGBA images, two-by-two, using specified mode. #@gmic : 'blending_mode' can be { add | alpha | and | average | blue | burn | darken | difference | #@gmic : divide | dodge | exclusion | freeze | grainextract | grainmerge | green | hardlight | #@gmic : hardmix | hue | interpolation | lighten | lightness | linearburn | linearlight | luminance | #@gmic : multiply | negation | or | overlay | pinlight | red | reflect | saturation | #@gmic : screen | shapeaverage | shapeaverage0 | softburn | softdodge | softlight | stamp | subtract | value | #@gmic : vividlight | xor }. #@gmic : Default values: 'blending_mode=alpha', 'opacity=1' and 'revert_layers=0'. #@gmic : $ image.jpg --drop_shadow , -resize2dy[-1] 200 -rotate[-1] 20 --blend alpha -drgba[-2] #@gmic : $ image.jpg -testimage2d {w},{h} -blend overlay #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex add,alpha,and,average,blue,burn,darken #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex difference,divide,dodge,exclusion,freeze,grainextract,grainmerge #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex green,hardlight,hardmix,hue,interpolation,lighten,lightness #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex linearburn,linearlight,luminance,multiply,negation,or,overlay #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex pinlight,red,reflect,saturation,screen,shapeaverage,softburn #@gmic : $ -m "ex : $""=arg -repeat $""# --blend[0,1] ${arg{$>+1}} -text_outline[-1] Mode:\" \"${arg{$>+1}},2,2,24,2,1,255 -done" image.jpg -testimage2d {w},{h} -ex softdodge,softlight,stamp,subtract,value,vividlight,xor blend : -skip ${1=alpha},${2=1},${3=0},${4=1} -v - s0="" s1="(reverted layers) " -v + -e[^-1] "Blend image$? two-by-two, using '$1' mode "${s{$3!=0}}"and opacity $2." -v - -l[] code=@{-_blend_$1} -onfail -v + -error[0--2] "Unknown blending mode '$1' requested." -endl -repeat {int(@#/2)} -l[$>,{$>+1}] -if $3 -rv -endif -r[1] [0],[0],[0],100%,0,0,0.5,0.5 # Align spatial dimensions for mask and base image. s={s0=if(@{0,s}<3,1,3);s1=if(s<3,1,3);max(s0,s1)} # Target color format (G or RGB). -to_colormode[0] {$s+1-(@{0,s}%2)} # Target format (G,GA,RGB or RGBA). -to_colormode[1] {$s+1-(s%2)} # Mask format (G,GA,RGB or RGBA). -if {@{0,s}==2||@{0,s}==4} # Target has alpha. -if {s==2||s==4} # Mask has alpha. -sh[0,1] 0,{s-2} -_blend[2,3] $code -rm[2,3] -if {$1'=='alpha} # Special blending code for alpha-mode. -sh[0,1] 0,{@{0,s}-2} -sh[0,1] 100%,100% -*[2,4] -*[3,4] -rm[2,3] --channels[1] 100% -sh[1] 100%,100% -f[3] 255 -rm[3] -j[0] [1],0,0,0,0,{max(0,min(1,$2))},[2],255 -rm[1,2] -sh[0] 0,{s-2} -sh[0] 100%,100% -+[2] 1e-10 -/[1,2] -rm[1] -c 0,255 -else -sh[1] 0,{s-2} -sh[1] 100%,100% -j[0] [2],0,0,0,0,{max(0,min(1,$2))},[3],255 -rm[^0] -endif -else # Mask has no alpha. -sh[0] 0,{@{0,s}-2} -rv[1,2] -_blend[1,2] $code -j[1] [2],0,0,0,0,{max(0,min(1,$2))} -rm[^0] -endif -else # Target has no alpha. -if {s==2||s==4} # Mask has alpha. -sh[1] 0,{s-2} -_blend[0,2] $code -rm[2] -sh[1] 100%,100% -j[0] [1],0,0,0,0,{max(0,min(1,$2))},[2],255 -rm[^0] -else # Mask has no alpha. -_blend $code -j[0] [1],0,0,0,0,{max(0,min(1,$2))} -rm[1] -endif -endif -endl -done -v + _blend : $* _blend_alpha : -u "" _blend_and : -u "-and[1] [0]" _blend_add : -u "-+[1] [0] -c[1] 0,255" _blend_average : -u "-+[1] [0] -/[1] 2" _blend_blue : -u "-sh[0] 0,1 -j[1] [2] -rm[2]" _blend_burn : -u "---[0] 255 -+[1] 0.1 -/[2] [1] -rm[1] -+[1] 1 -*[1] 255 -c[1] 0,255" _blend_darken : -u "-min[1] [0]" _blend_difference : -u "--[1] [0] -abs[1]" _blend_divide : -u "-+[1] 0.1 -^[1] -1 -*[1] [0] -*[1] 255 -c[1] 0,255" _blend_dodge : -u "--[1] 255.1 -^[1] -1 -*[1] [0] -*[1] -255 -c[1] 0,255" _blend_exclusion : -u "--*[0,1] -/[2] -127.5 -+[1,2] -+[1] [0]" _blend_freeze : -u "-*[1] -255 --[1] 0.1 ---[0] 255 -sqr[2] -/[2] [1] -rm[1] -+[1] 1 -*[1] 255 -c[1] 0,255" _blend_grainextract : -u "--[1] [0] -*[1] -1 -+[1] 128 -c[1] 0,255" _blend_grainmerge : -u "-+[1] [0] --[1] 128 -c[1] 0,255" _blend_green : -u "-sh[0] 0,0 -sh[0] 2,2 -j[1] [2] -j[1] [3],0,0,0,2 -rm[2,3]" _blend_hardlight : -u "--*[0,1] -/[2] 127.5 --+[0,1] -*[3] 2 --[3] 255 --[3] [2] -gt[1] 128 "\ "-j[2] [3],0,0,0,0,1,[1] -rm[1,3] -c[1] 0,255" _blend_hardmix : -u "-+[1] [0] -ge[1] 255 -*[1] 255" _blend_hue : -u "-to_color --sh 0,2 -rgb2hsv[2,3] -sh[2] 1,2 -j[1] [4],0,0,0,1 -rm[4] -hsv2rgb[2,3] -rm[2,3]" _blend_interpolation : -u "--*[0] {pi/255} -*[1] {pi/255} -cos[1,2] -+[1,2] --[1] 2 -*[1] -63.75 -c[1] 0,255" _blend_lighten : -u "-max[1] [0]" _blend_lightness : -u "-to_color --sh 0,2 -rgb2lab[2,3] -sh[2] 1,2 -j[1] [4],0,0,0,1 -rm[4] -lab2rgb[2,3] -rm[2,3]" _blend_luminance : -u "-to_color --sh 0,2 -rgb2ycbcr[2,3] -sh[2] 1,2 -j[1] [4],0,0,0,1 -rm[4] -ycbcr2rgb[2,3] -rm[2,3]" _blend_linearburn : -u "-+[1] [0] --[1] 255 -c[-1] 0,255" _blend_linearlight : -u "-*[1] 2 -+[1] [0] --[1] 255 -c[1] 0,255" _blend_multiply : -u "-*[1] [0] -/[1] 255" _blend_negation : -u "-+[1] [0] --[1] 255 -abs[1] -*[1] -1 -+[1] 255" _blend_or : -u "-or[1] [0]" _blend_overlay : -u "--*[0,1] -/[2] 127.5 -+[1] [0] -*[1] 2 --[1] 255 --[1] [2] --lt[0] 128 -j[1] [2],0,0,0,0,1,[3] -rm[2,3] -c[1] 0,255" _blend_pinlight : -u "-*[1] 2 --blend darken --[1] 256 --blend[0,1] lighten -ge[1] 0 "\ "-j[2] [3],0,0,0,0,1,[1] -rm[1,3]" _blend_reflect : -u "--[1] 255.1 -*[1] -1 --sqr[0] -/[2] [1] -rm[1] -c[1] 0,255" _blend_red : -u "-sh[0] 1,100% -j[1] [2],0,0,0,1 -rm[2]" _blend_saturation : -u "-to_color --sh 0,2 -rgb2hsv[2,3] -shift[2,3] 0,0,0,-1,2 -sh[2] 1,2 -j[1] [4],0,0,0,1 -rm[4] -shift[2,3] 0,0,0,1,2 -hsv2rgb[2,3] -rm[2,3]" _blend_screen : -u "---[0] 255 --[1] 255 -*[1,2] -/[1] 255 -*[1] -1 -+[1] 255" _blend_shapeaverage : -u "-norm[1] -label[1] 0 N={iM+1} "\ "-repeat @{0,s} --channels[0] $> m={im} M={iM} -n[-1] 0,{1-1/256} -+[-1] [1] -histogram[-1] {$N*256},0,{$N-1/256} "\ "-i[-2] 256,1,1,1,'x*($M-$m)/255+$m' -r[-2] [-1],0,2 -*[-2] [-1] -r[-2,-1] $N,1,1,1,2 -+[-1] 1e-8 -/[-2,-1] -done "\ "-a[2--1] c -map[1] [2] -rm[2]" _blend_shapeaverage0 : # Same as shapeaverage except that background values (i.e. 0) are kept to black. -u "-norm[1] --neq[1] 0 -label[1] 0 N=@{1,iM+1} "\ "-repeat @{0,s} --channels[0] $> m={im} M={iM} -n[-1] 0,{1-1/256} -+[-1] [1] -histogram[-1] {$N*256},0,{$N-1/256} "\ "-i[-2] 256,1,1,1,'x*($M-$m)/255+$m' -r[-2] [-1],0,2 -*[-2] [-1] -r[-2,-1] $N,1,1,1,2 -+[-1] 1e-8 -/[-2,-1] -done "\ "-a[3--1] c -map[1] [3] -rm[3] -*[1,2]" _blend_softburn : -u "---[0] 255.1 -^[2] -1 -*[2] [1] -*[2] -127.5 ---[0] 255 --+[1] 0.1 -/[3,4] -*[3] 127.5 -+[3] 255 -+[1] [0] -gt[1] 255 "\ "-j[2] [3],0,0,0,0,1,[1] -rm[1,3] -c[1] 0,255" _blend_softdodge : -u "---[1] 255.1 -^[2] -1 -*[2] [0] -*[2] -127.5 ---[1] 255 --+[0] 0.1 -/[3,4] -*[3] 127.5 -+[3] 255 -+[1] [0] -gt[1] 255 "\ "-j[2] [3],0,0,0,0,1,[1] -rm[1,3] -c[1] 0,255" _blend_softlight : -u "--/[0] 255 -/[1] 255 --sqr[-1] -*[2] [1] -*[1] [3] -*[1] -2 -*[2] 2 -+[1-3] -*[1] 255 -c[1] 0,255" _blend_stamp : -u "-*[1] 2 -+[1] [0] --[1] 255 -c[1] 0,255" _blend_subtract : -u "--[1] [0] -*[1] -1 -c[1] 0,255" _blend_value : -u "-to_color --sh 0,2 -rgb2hsv[2,3] -sh[2] 0,1 -j[1] [4] -rm[4] -hsv2rgb[2,3] -rm[2,3]" _blend_vividlight : -u "-*[1] 2 --blend burn --[1] 256 --blend[0,1] dodge -ge[1] 0 "\ "-j[2] [3],0,0,0,0,1,[1] -rm[1,3]" _blend_xor : -u "-xor[1] [0]" #@gmic blend_edges : smoothness[%]>=0 #@gmic : Blend selected images togethers using 'edges' mode. #@gmic : $ image.jpg -testimage2d {w},{h} --blend_edges 0.8 blend_edges : -check {$1>=0} -e[^-1] "Blend image$? using 'edges' mode, with smoothness $1." -if {@#>1} -v - -to_rgb -r[^0] [0],0,0,0.5,0.5 -repeat @# -l[$>] --gradient_norm -+[-1] 1 -b[-1] $1 -n[-1] 1,10 -sqr[-1] -s[-2] c -*[-4--2] [-1] -a[-4--1] c -endl -done -r[^0] [0],0,0,0.5,0.5 -+ -s[-1] c -/[-4--2] [-1] -rm[-1] -a[-3--1] c -v + -endif #@gmic blend_fade #@gmic : Blend selected images togethers using a given fading pattern (defined as the latest image). #@gmic : $ image.jpg -testimage2d {w},{h} 100%,100%,1,1,'cos(y/10)' -normalize[-1] 0,1 --blend_fade blend_fade : -e[^-1] "Blend image$? using 'fade' mode." -v - -r[^0] @{-max_whd},100%,3 -r[1--2] 100%,100%,100%,@{-max_s} -channels[-1] 0 -repeat {@#-1} ---[-1] $> -abs[-1] --[-1] 1 -*[-1] -1 -max[-1] 0 -*[$>,-1] -done -rm[-1] -+ -v + #@gmic blend_median #@gmic : Blend selected images together using 'median' mode. #@gmic : $ image.jpg -testimage2d {w},{h} --mirror[0] y --blend_median blend_median : -e[^-1] "Blend image$? using 'median' mode." -v - -to_colormode 0 -r @{-max_whd},100%,0,0,0.5,0.5,0.5 whd={w},{h},{d} -r 100%,{h*d},1,100%,-1 -if {@#==2} -+ -/ 2 -elif {@#>2} -permute xycz -a c -repeat {s} # Perform simple bubble sort along the c-axis for each pixel. -repeat {s-1-$>} -sh[-1] $>,$> --sh[-2] {$>+1},{$>+1} --gt[-2,-1] --j[-3] [-2],0,0,0,0,1,[-1] -j[-3] [-4],0,0,0,0,1,[-2] -j[-4] [-1] -rm[-4--1] -done -done -if {s%2} -channels 50% -else -channels {s/2-1},{s/2} -compose_channels + -/ 2 -endif -permute xycz -endif -r[-1] $whd,100%,-1 -v + _fade : -r[-2] [-3],5 -r[-1] [-2],3 -c[-1] $1%,$2% -n[-1] 0,1 -j[-3] [-2],0,0,0,0,1,[-1] -rm[-2,-1] #@gmic fade_diamond : 0<=_start<=100,0<=_end<=100 #@gmic : Create diamond fading from selected images. #@gmic : Default values: 'start=80' and 'end=90'. #@gmic : $ image.jpg -testimage2d {w},{h} --fade_diamond 80,85 fade_diamond : -skip ${1=70},${2=90} -e[^-1] "Create ($1%,$2%) diamond-shaped fading from image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] (0,1,0;1,1,1;0,1,0) -_fade $1,$2 -endl -done -v + #@gmic fade_linear : _angle,0<=_start<=100,0<=_end<=100 #@gmic : Create linear fading from selected images. #@gmic : Default values: 'angle=45', 'start=30' and 'end=70'. #@gmic : $ image.jpg -testimage2d {w},{h} --fade_linear 45,48,52 fade_linear : -skip ${1=45},${2=30},${3=70} -e[^-1] "Create ($2%,$3%) linear fading from image$?, with angle $1°." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] 64,64,1,1,"x*cos($1*pi/180) + y*sin($1*pi/180)" -_fade $2,$3 -endl -done -v + #@gmic fade_radial : 0<=_start<=100,0<=_end<=100 #@gmic : Create radial fading from selected images. #@gmic : Default values: 'start=30' and 'end=70'. #@gmic : $ image.jpg -testimage2d {w},{h} --fade_radial 30,70 fade_radial : -skip ${1=30},${2=70} -e[^-1] "Create ($1%,$2%) radial fading from image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] 100%,100% -=[-1] 1,50%,50% -distance[-1] 1 -_fade $1,$2 -endl -done -v + #@gmic fade_x : 0<=_start<=100,0<=_end<=100 #@gmic : Create horizontal fading from selected images. #@gmic : Default values: 'start=30' and 'end=70'. #@gmic : $ image.jpg -testimage2d {w},{h} --fade_x 30,70 fade_x : -skip ${1=30},${2=70} -e[^-1] "Create ($1%,$2%) horizontal fading from image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] (0,1) -_fade $1,$2 -endl -done -v + #@gmic fade_y : 0<=_start<=100,0<=_end<=100 #@gmic : Create vertical fading from selected images. #@gmic : Default values: 'start=30' and 'end=70'. #@gmic : $ image.jpg -testimage2d {w},{h} --fade_y 30,70 fade_y : -skip ${1=30},${2=70} -e[^-1] "Create ($1%,$2%) vertical fading from image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] (0;1) -_fade $1,$2 -endl -done -v + #@gmic fade_z : 0<=_start<=100,0<=_end<=100 #@gmic : Create transversal fading from selected images. #@gmic : Default values: 'start=30' and 'end=70'. fade_z : -skip ${1=30},${2=70} -e[^-1] "Create ($1%,$2%) transversal fading from image$?." -v - -repeat {int(@#/2)} -l[$>,{$>+1}] (0/1) -_fade $1,$2 -endl -done -v + #--------------------------------------------- # #@gmic :: Image sequences # #--------------------------------------------- #@gmic animate : filter_name,"param1_start,..,paramN_start","param1_end,..,paramN_end",nb_frames>=0,_output_frames={ 0 | 1 },_output_filename : delay>0 #@gmic : Animate filter from starting parameters to ending parameters or animate selected images #@gmic : in a display window. #@gmic : Default value: 'delay=30'. #@gmic : $ image.jpg -animate flower,"0,3","20,8",9 animate : -skip ${1=30},${2=0},${3=""},${4=0},${5=1},"${6=}" -if {isval($1)} -if $2 -e[0--4] "Animate image$?, with a delay of $1 ms, and ping-pong mode." -else -e[0--4] "Animate image$?, with a delay of $1 ms." -endif -if {!@#} -return -endif -v - speed=$1 # Animation speed pause=-1 # Pause mode. direction=1 # Animation direction. frame=0 # Current frame. -do -w[$frame] -1,-1,1,0,@{$frame,b}.@{$frame,x} frame={$frame+$direction} -if $2 -if {$frame==-1} frame=0 direction=1 -elif {$frame==@#} frame={@#-1} direction=-1 -endif -else frame={$frame%@#} -endif -wait $speed -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,D}} -w[] {@{!,w}*1.5},{@{!,h}*1.5} -wait -1 -endif # Increase window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,C}} -w[] {@{!,w}/1.5},{@{!,h}/1.5} -wait -1 -endif # Decrease window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,R}} -w[] @{0,w},@{0,h} -wait -1 -endif # Reset window size. -if @{!,o} speed={min(500,max(10,$speed-10*@{!,o}))} -wait -1 -endif -if @{!,SPACE} -if {$pause>=0} direction=$pause pause=-1 -else pause=$direction direction=0 -endif -wait -1 -endif -while {@!" && "!@{!,Q}" && "!@{!,ESC}} -v + -else -e[0--3] "Compute animated version of filter '$1', from parameters $2 to $3 with $4 frames." -if {!($5||narg("$6"))} -return -endif -v - ($2) ($3) -y[-2,-1] x -a[-2,-1] y -r[-1] 100%,$4,1,1,3 -mv[-1] 0 -rprogress 0 -repeat {@#-1} -v + -e[] " > Animate image ["$>"]" -v - -repeat $4 --l[0,1] -$1[-1] @{0,{$>*@{0,w}}-{($>+1)*@{0,w}-1}} -rm[0] -if {narg("$6")} -o @{-filename\ "$6",@{>,-2},$>} -endif -if {!$5} -rm -endif -rprogress {100*($>+1)/$4} -v + -e[] "\r > Animate image ["@{>,-2}"] : Frame "{$>+1}"/$4 " -v - -endl -done -rm[1] -done -rm[0] -v + -endif #@gmic morph : nb_frames>0,_smoothness>=0,_precision>0 #@gmic : Create morphing sequence between selected images. #@gmic : Default values: 'smoothness=0.1' and 'precision=5'. #@gmic : $ image.jpg --rotate 20,1,1,50%,50% -morph 9 morph : -skip ${2=0.1},${3=5} -e[^-1] "Create morphing sequence between image$?, with $1 intra-frames, smoothness $2 and precision $3.\n" -v - -r[^0] [0],3 -i[0] (@#) --[0] 1 -repeat @0 -v + -e[] "\r > Morph image "$>" to image "{$>+1}". " -v - --equalize[-2,-1] 256 -n[-2,-1] 0,255 --displacement[-1] [-2],$2,$3 --warp[-5] [-1],1,1,1,$1 -a[-$1--1] z -rm[-2] --displacement[-3] [-2],$2,$3 --warp[-5] [-1],1,1,1,$1 -a[-$1--1] z -rm[-7--4,-2] (1/0) -r[-1] [-2],3 -*[-3] [-1] -*[-2,-1] -mirror[-1] z -+[-2,-1] -s[-1] z -mv[-$1--1] 1 -mv[1] @# -done -mv[-1] 1 -rm[0] -v + #@gmic register_nonrigid : _smoothness>=0,_precision>0,_nb_scale>=0 #@gmic : Register selected images with non-rigid warp. #@gmic : Default values: 'smoothness=0.2', 'precision=6' and 'nb_scale=0(auto)'. #@gmic : $ image.jpg --rotate 20,1,1,50%,50% --register_nonrigid , -remove[-2] register_nonrigid : -skip ${1=0.2},${2=5},${3=0} -e[^-1] "Register image$? with non-rigid warp, smoothness $1, precision $2 and $3 scale(s)." -v - --equalize[0] 256 -n[-1] 0,255 -mv[-1] 1 -repeat @# -if {$>>1} --equalize[-1] 256 -n[-1] 0,255 --displacement[1] [-1],$1,$2,$3 -rm[-2] -warp[-2] [-1],1,1,1 -rm[-1] -mv[-1] 2 -endif -done -rm[1] -v + #@gmic register_rigid : _smoothness>=0 #@gmic : Register selected images with rigid warp. #@gmic : Default value: 'smoothness=1'. #@gmic : $ image.jpg --shift 30,20 --register_rigid , -remove[-2] register_rigid : -skip ${1=1} -e[^-1] "Register image$? with rigid warp and smoothness $1." -v - --equalize[0] 256 -b[-1] $1 -n[-1] 0,255 -mv[-1] 1 -repeat @# -if {$>>1} --equalize[-1] 256 -b[-1] $1 -n[-1] 0,255 --phase_correlation[1,-1] -rm[-2] -*[-1] -1 -round[-1] 1 -shift[-2] @-1,0,1 -rm[-1] -mv[-1] 2 -endif -done -rm[1] -v + #@gmic transition_plasma : _nb_frames>=2,_scale>=0,_smoothness[%]>=0 #@gmic : Create plasma transition sequence between consecutive images. #@gmic : Default values: 'nb_frames=10', 'scale=5' and 'smoothness=0.5%'. #@gmic : $ image.jpg -testimage2d {w},{h} -transition_plasma 9 transition_plasma : -check "isint(${1=10}) && $1>=2 && isint(${2=5}) && $2>=0 && ${3=0.5%}>=0" -e[^-1] "Create plasma transition sequence between image$?, with $1 frames, scale $2, smoothness $3.\n" -v - -if {@#<2} -return -endif -slices 0 -r @{-max_whds},3 off=0 -repeat {@#-1} -l[{$>+$off},{$>+$off+1}] -v + -e[] "\r > Generate transition from image "$>" to image "{$>+1}". " -v - 100%,100% -plasma[-1] 1,0,$2 -n[-1] 0,1 -repeat {$1-2} --le[2] {($>+1)/$1} -b[-1] $3 [0] -j[-1] [1],0,0,0,0,1,[-2] -rm[-2] -rprogress {$>*100/($1-2)} -done -rm[2] -mv[2--1] 1 off={$off+$1-2} -endl -done -v + #@gmic transition3d : _nb_frames>=2,_nb_xtiles>0,_nb_ytiles>0,_axis_x,_axis_y,_axis_z,_is_antialias #@gmic : Create 3d transition sequence between selected consecutive images. #@gmic : 'axis_x', 'axis_y' and 'axis_z' can be set as mathematical expressions, depending on 'x' and 'y'. #@gmic : Default values: 'nb_frames=10', 'nb_xtiles=nb_ytiles=3', 'axis_x=1', 'axis_y=1', 'axis_z=0' and 'is_antialias=1'. #@gmic : $ image.jpg --blur 5 -transition3d 9 -drgba transition3d : -check "isint(${1=10}) && $1>=2 && isint(${2=3}) && $2>0 && isint(${3=$2}) && $3>0" -skip ${4=1},${5=1},${6=0},${7=1} -e[^-1] "Create 3d transition sequence between image$?, with $1 frames, $2x$3 tiles and rotation axis ($4,$5,$6).\n" -v - -if {@#<2} -return -endif -slices 0 -to_rgb -r @{-max_whds},3 off=0 -repeat {@#-1} -l[{$>+$off},{$>+$off+1}] -v + -e[] "\r > Generate transition from image "$>" to image "{$>+1}". " -v - # Create 3d rotation vectors. $2,$3,1,1,'$4' $2,$3,1,1,'$5' $2,$3,1,1,'$6' -a[-3--1] z -permute[-1] zxyc -r[-1] 3,{$2*$3},1,1,-1 -repeat {h} rot$>=@{-1,0-2} -shift[-1] 0,-1,0,0 -done -rm[-1] # Create 3d tiles. --split_tiles[-2,-1] $2,$3 -mv[0,1] @# N={$2*$3} i=0 y=0 -repeat $3 x=0 -repeat $2 lw=@{$i,w} lh=@{$i,h} -imageplane3d[$i] -imageplane3d[$N] -r3d[$N] ${rot$i},-180 -c3d[$i,$N] -+3d[$i,$N] x$i=$x y$i=$y x={$x+$lw} i={$i+1} -done y={$y+$lh} -done # Generate intermediate animation frames. -repeat {$1-2} -repeat $N -r3d[$>] ${rot$>},{180/($1-1)} --+3d[$>] ${x$>},${y$>},0 -done -+3d[-$N--1] -c3d[-1] -if $7 # Antialiased rendering. -i[-3] {2*@{-2,w}},{2*@{-2,h}},1,3,-1 -*3d[-1] 2 -object3d[-3] [-1],50%,50%,0,1,2,0,0 -rm[-1] -to_rgba[-2] -replace_color[-2] 0,0,-1,-1,-1,255,0,0,0,0 -r[-2] [-1],[-1],1,100%,2 -else # Standard rendering. -i[-3] @{-2,w},@{-2,h},1,3,-1 -object3d[-3] [-1],50%,50%,0,1,2,0,0 -rm[-1] -to_rgba[-2] -replace_color[-2] 0,0,-1,-1,-1,255,0,0,0,0 -endif -done -rm[0-{$N-1}] -nm[1--2] @{0,n} off={$off+$1-2} -endl -done -v + #----------------------------- # #@gmic :: Interactive demos # #----------------------------- #@gmic x_blobs #@gmic : Launch the blobs editor. x_blobs : -e[] "\n ------ Blobs editor --------------------------\n ----\n ---- Mouse to insert/move/delete blobs.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------------------" -v - # Create background image [0]. -rm (0;0^0;128^0;255) -r[-1] 350,350,1,3,3 -flower[-1] 30,8,0,0,0.5,0.5,1 -water[-1] 20 -w {w},{h},0,0,"[G'MIC] Blobs editor" # Start event loop. moving=-1 -do x=@{!,x} y=@{!,y} b=@{!,b} nearest=-1 # Render image of blobs and find nearest blob to mouse pointer. -if {@#>1} @{!,w},@{!,h},1,2 -repeat @{1,h} r={@{1,2}*(1+@{1,3}*cos(@{1,4}+@{1,5}*@|*1000))} -ellipse[-1] @{1,0,1},$r,$r,0,1,@{1,6-7} d={sqrt(($x-@{1,0})^2+($y-@{1,1})^2)} -if {$d<$r} nearest=$> -endif -shift[1] 0,-1,0,0,2 -done -b[-1] 15 --norm[-1] --ge[-1] 50 -le[-2] 40 -*[-3,-1] --*[0,-1] -rm[-2] -rv[-2,-1] -*[-1] 1.6 -c[-1] 0,255 -+[-2,-1] -w[-1] {w},{h} -rm[-1] -else --text_outline[0] "G'MIC Blobs Editor",65,40,24,3,1,200,128,255 -t[-1] "* Left mouse button : Create and move blobs.\n\n\ * Right mouse button : Remove blob.\n\n\ * Middle mouse button : Remove all blobs.\n\n\ * Key 'ESC' or 'Q' : Quit.\n\n\ * Colors and sizes of appearing blobs are\n chosen randomly",\ 60,120,13,1,255 -w[-1] {w},{h} -rm[-1] -endif -wait 20 # Manage blob insertion, removal or move. -if {$x<0||$y<0} -continue -endif -if {$b&1} -if {$nearest>=0" || "$moving>=0} # Move existing blob. -if {$moving<0} moving=$nearest -endif -=[1] $x,0,$moving -=[1] $y,1,$moving -else # Insert new blob. (@{!,x},@{!,y},{?(20,50)},{?(-0.3,0.3)},{?(0,pi/2)},{?(0,0.009)},{?(64,255)},{?(64,255)}) -a[^0] y moving={h-1} -endif -elif {$b&2} # Remove existing blob. -if {$nearest>=0} -l[1] -s y -rm[$nearest] -a y -endl nearest=-1 -endif -elif {$b&4} # Remove all blobs. -k[0] -else moving=-1 -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm -w 0 -v + #@gmic x_fire #@gmic : Launch the fire demo. x_fire : -skip "${1=G'MIC}" -e[] "\n ------ Fire demo ------------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - # Init image data. -i[0] 100,32 -w[0] 600,300,0,0,"[G'MIC] Fire demo" -i[1] (0,255,255,255,255^0,0,255,255,255^0,0,0,128,255) -r[1] 256,1,1,3,3 -i[2] (0,0,0;0,0,0;1,1,1;0,1,0) -*[2] 0.21 -text3d "$1",34,3,1 -mv[-1] 3 -c3d[3] -n3d[3] -*3d[3] 320 -col3d[3] 255,205,130 -db3d 0 -f3d 300 100,100 -rand[-1] 0,255 -ellipse[-1] 50%,50%,5,5,0,1,300 -b[-1] 10 -sharpen[-1] 1000 -shrink_xy[-1] 1 -n[-1] 0,255 -to_rgb[-1] -light3d [-1] -rm[-1] # Start animation loop. angle=0 -do -correlate[0] [2] # Apply fire effect. @{0,w},1 -rand[-1] 128,256 -j[0] [-1],0,{@{0,h}-1} -rm[-1] # Add new random values at the bottom line. --r[0] 400,200,1,1,3 -map[-1] [1] # Map fire palette --r3d[3] 0,1,0,$angle -object3d[-2] [-1],50%,50%,0,1,5,0,0 # Draw 3d object. -*3d[-1] 0.25,0.16,1 -object3d[0] [-1],50%,50%,0,1,3,0,0 -rm[-1] angle={$angle+3} # Update 3d angle. -w[-1] -rm[-1] -wait 40 # Display 3d object. -while {@!" && "!@{!,ESC}" && "!@{!,Q}} # Exit properly. -rm[0-3] -w 0 -v + #@gmic x_fireworks #@gmic : Launch the fireworks demo. x_fireworks : -e[] "\n ------ Fireworks demo -------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - -l[] time=0 (0;64^0;32^128;0) -r 256,128,1,3,3 # [-2] = Background (color gradient). [-1] # [-1] = Rendered image. -w[-1] 512,256,0,0,"[G'MIC] Fireworks demo" # Display window. -do # Start animation loop. time={$time-1} -if {@#==2\ ||\ $time<0} # Insert new rocket. -i[0] ({?(w)},\ # X-position {h},\ # Y-position {?(-3,3)},\ # X-velocity {?(2)-5},\ # Y-velocity {30+?(20)},\ # Time of explosion 1.5,\ # Radius 255,255,255) # Color time={?(40)} # Elapsed time until next rocket. -endif -*[-1] 0.99 # Create fading effect with previous frames. -j[-1] [-2],0,0,0,0,0.2 # Add background. i=0 -repeat {@#-2} to_be_removed=0 radius={if(@{$i,4}>0,@{$i,5}/3,@{$i,5}*(1+2*(@{$i,4}+2)/120))} -ellipse[-1] @{$i,0},@{$i,1},@{$i,5},{max(0.5,$radius)},{atan2(@{$i,3},@{$i,2})*180/pi},0.6,@{$i,6-8} # Draw rocket. (@{$i,2},@{$i,3},0,0.09,-1,0,0,0,0) -+[$i,-1] # Compute new position of the rocket. -if {@{$i,0}<0\ ||\ @{$i,0}>=w\ ||\ @{$i,1}>=h\ ||\ $radius<0} to_be_removed=1 -endif # Discard if rocket disappear. -if {@{$i,4}<0\ &&\ @{$i,4}>=-1} # In case of explosion -> Split current rocket into several colorful rockets. color={min(255,80+?(200))},{min(255,80+?(200))},{min(255,80+?(200))} radius={?(10)} N={5+?(10)} -repeat $N angle={$>*2*pi/$N} -i[-3] (@{$i,0,1},{2*cos($angle)+@{$i,2}/1.5},{2*sin($angle)+@{$i,3}/1.5},-2,$radius,$color) -done to_be_removed=1 -endif -if $to_be_removed -rm[$i] -else i={$i+1} -endif # If processed rocket has to be removed. -done -w[-1] -wait 20 # Display rendered frame. -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -endl -k[-1] -w[] 0 -v + #@gmic x_fisheye #@gmic : Launch fish-eye demo. x_fisheye : -e[] "\n ------ Fish-eye demo --------------------\n ----\n ---- Mouse pointer moves fish-eye center.\n ---- Mouse buttons set fish-eye size.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - -if {@#>0} -a x -n 0,255 -r2dy 220 -else 120,90,1,3 -rand[-1] 0,255 -plasma[-1] 0.3,3 -n 0,255 -t " G'MIC\nFISH-EYE\n DEMO",15,13,24,1,255 -scale2x -b 5 -sharpen 1000 -f i+150-4*abs(y-h/2) -c[-1] 0,255 -frame_fuzzy[-1] 15,10,15,1.5,0 -to_rgb[-1] -endif -torus3d 20,6 -col3d[-1] {?(30,255)},{?(30,255)},{?(30,255)} --r3d[-1] 1,0,0,90 -col3d[-1] {?(30,255)},{?(30,255)},{?(30,255)} -+3d[-1] 15 -+3d[-2,-1] -db3d 0 -c3d[-1] R=30 -w[-2] {2*@{-2,w}},{2*@{-2,h}},0,0,"[G'MIC] Fish-Eye Demo" -do -wait 40 -if {@{!,b}==1} R={min(80,$R+8)} -endif -if {@{!,b}==2} R={max(3,$R-8)} -endif --object3d[-2] [-1],{50+30*cos(@|*2.5)}%,{50+30*sin(@|*1.6)}%,{50+330*sin(@|*2.6)},0.7,3,0,0 -r3d[-2] 1,0.2,0.6,3 -if {@{!,x}>=0} -fisheye[-1] {@{!,x}*100/@{!,w}},{@{!,y}*100/@{!,h}},$R -endif -w[-1] -rm[-1] -if {@!==0" || "@{!,ESC}" || "@{!,Q}} -rm[-2,-1] -w 0 -v + -return -endif -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,D}} -w[] {@{!,w}*1.5},{@{!,h}*1.5} -wait -1 -endif -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,C}} -w[] {@{!,w}/1.5},{@{!,h}/1.5} -wait -1 -endif -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,R}} -w[] @{0,w},@{0,h} -wait -1 -endif -while 1 #@gmic x_fourier #@gmic : Launch fourier filtering demo. x_fourier : -e[] "\n ------ Fourier-filtering demo -----------------------------------\n ----\n ---- Mouse buttons on the right image to set min/max frequencies.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------------------------------" -v - -if {!@#} -testimage2d 256 -endif -repeat @# -l[$>] # Init variables. need_update=1 # need_update (boolean) freqmin=0 # min freq. (in %) freqmax=100 # max freq. (in %) -if {w>3*@{!,u}/5} -r2dx[-1] {3*@{!,u}/10} -endif # Reduce image size if necessary. -if {h>3*@{!,v}/5} -r2dy[-1] {3*@{!,v}/5} -endif # Compute fourier transform. --fft[-1] -nm[-2] real -nm[-1] imag # Generate log-magnitude image. --sqr[real,imag] -+[-2,-1] -sqrt[-1] -+[-1] 1 -log[-1] -n[-1] 0,255 -shift[-1] 50%,50%,0,0,2 -to_colormode[-1] @{-2,s} -nm[-1] logmag -w[0,-1] -1,-1,0,0,"[G'MIC] Fourier Filtering Demo" -if {!narg($first_time)} --l[-1] -r2dy 128 -frame 1,1,0 -alert "[G'MIC Fourier Filtering Demo]",\ "The G'MIC Fourier filtering demo illustrates the effect\n"\ "of bandpass frequency filtering on an image. Use your mouse\n"\ "buttons to select low and high bounds for the frequencies\n"\ "displayed on the Fourier representation of the image\n"\ "(right image).",\ "Start demo" -rm -endl first_time=0 -endif # Enter user event-loop. -do -if $need_update # If image must be updated. # Generated filtering mask. -i[mask] 100%,100% r={sqrt(w^2+h^2)*$freqmax/200} -ellipse[mask] 50%,50%,$r,$r,0,1,1 r={max(0,sqrt(w^2+h^2)*$freqmin/200-1)} -if $r -ellipse[mask] 50%,50%,$r,$r,0,1,0 -endif # Compute filtered log-magnitude. --*[logmag] [mask] -+[-1] [mask] -/[-1] 2 -n[-1] 0,255 # Compute filtered fourier representation. -shift[mask] -50%,-50%,0,0,2 --*[real,imag] [mask] -rm[-4] # Compute filtered image by inverse fourier. -ifft[-2,-1] -rm[-1] -n[-1] 0,255 # Display filtered image. -rv[-2,-1] -if @! -r[-2,-1] {@{!,w}/2},@{!,h} -endif -t[-1] "Freq. Min/Max = "{int($freqmin)}"% / "{int($freqmax)}"%",5,5,13,1,255 -w[-2,-1] #-1,-1,0,0,"[G'MIC] Fourier Filtering Demo" -rm[-2,-1] need_update=0 -endif -wait -if {@{!,b}" && "@{!,x}>=@{!,w}/2} # If mouse button pressed on the right pane. r={200*sqrt((@{!,x}-3*@{!,w}/4)^2+(@{!,y}-@{!,h}/2)^2)/\ # Compute selected radius (in %). sqrt((@{!,w}/2)^2+@{!,h}^2)} -if {@{!,b}&1} freqmax=$r # Update max freq. if left button. -else freqmin={max(0,$r-3)} # Update min freq. if other button. -endif -if {$freqmin>=$freqmax} freqmin=$freqmax -endif # Check that the min/max freq. are ordered. need_update=1 # Tell that the image must be updated. -endif -if @{!,r} need_update=1 -endif -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,D}} -w[] {@{!,w}*1.5},{@{!,h}*1.5} need_update=1 -endif # Increase window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,C}} -w[] {@{!,w}/1.5},{@{!,h}/1.5} need_update=1 -endif # Decrease window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,R}} -w[] {2*@{0,w}},@{0,h} need_update=1 -endif # Reset window size. -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm[-3--1] # Clean images. -endl -done -w 0 -rm -v + #@gmic x_histogram #@gmic : Launch histogram demo. x_histogram : -e[] "\n ------ Histogram demo -------------------------------\n ----\n ---- Mouse to set parameters.\n ---- Right button or key 'SPACE' to reset.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------------------" -v - -if {!@#} -testimage2d 300,300 -else -k[0] -to_rgb -r2dy 300,2 -if {w>800} -r 800,100%,1,3,2 -endif -n 0,255 -endif # Prepare image layout. --frame[-1] 1,1,0 300,{h},1,3,220 -t[-1] "Gamma :",5,0,16,1,0 -t[-1] "Contrast :",5,50,16,1,0 -t[-1] "Brightness :",5,100,16,1,0 -t[-1] "Smoothness :",5,150,16,1,0 -t[-1] "Sharpness :",5,200,16,1,0 -t[-1] "Clusters :",5,250,16,1,0 -a[-2,-1] x {w},200,1,3,255 -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,0 -rectangle[-1] 0,0,100%,100%,1,0xFFFFFFFF,0 -axes[-1] 0,255,1,0,13,1,0 -frame[-2,-1] 5,5,220 -a[-2,-1] y # Initialize variables. clusters=64 sharpness=0 smoothness=0 contrast=1 brightness=0 gamma=1 # Start event loop. -do # Render corrected image and insert it in canvas. [0] ia={ia} -if $gamma -/[-1] 255 -^[-1] {1/$gamma} -*[-1] 255 -endif --[-1] $ia -*[-1] $contrast -+[-1] $brightness -+[-1] $ia -b[-1] $smoothness -sharpen[-1] $sharpness -c[-1] 0,255 --j[-2] [-1],6,6 # Render parameter sliders. sx={@{0,w}+12} -_x_histogram[-1] {$gamma*100/4} -j[-2] [-1],$sx,25 -rm[-1] -_x_histogram[-1] {$contrast*100/4} -j[-2] [-1],$sx,75 -rm[-1] -_x_histogram[-1] {($brightness+128)*100/256} -j[-2] [-1],$sx,125 -rm[-1] -_x_histogram[-1] {$smoothness*100/10} -j[-2] [-1],$sx,175 -rm[-1] -_x_histogram[-1] {$sharpness*100/2000} -j[-2] [-1],$sx,225 -rm[-1] -_x_histogram[-1] {$clusters*100/256} -j[-2] [-1],$sx,275 -rm[-1] # Render corresponding histogram. --s[-2] c -histogram[-3--1] $clusters,0,255 -/[-3--1] {3*@{0,wh}/$clusters} -rm[-5] --z[-4] 5,317,{@{-4,w}-5},{@{-4,h}-6} -graph[-1] [-4],3,0,1,0,0.2,255,0,0 -graph[-1] [-3],3,0,1,0,0.2,0,255,0 -graph[-1] [-2],3,0,1,0,0.2,0,0,255 -rm[-4--2] -j[-2] [-1],5,317 -rm[-1] # Display rendering. -w[-1] {w},{h},0,0,"[G'MIC] Histogram demo" -rm[-1] -wait # Manage user interactions. -if {@{!,b}&1\ &&\ @{!,x}>=@{0,w}-10} -if {@{!,y}>=25\ &&\ @{!,y}<=42} gamma={max(0,min(4,(@{!,x}-$sx)*4/280))} -elif {@{!,y}>=75\ &&\ @{!,y}<=92} contrast={max(0,min(4,(@{!,x}-$sx)*4/280))} -elif {@{!,y}>=125\ &&\ @{!,y}<=142} brightness={max(-128,min(128,(@{!,x}-$sx)*256/280-128))} -elif {@{!,y}>=175\ &&\ @{!,y}<=192} smoothness={max(0,min(10,(@{!,x}-$sx)*10/280))} -elif {@{!,y}>=225\ &&\ @{!,y}<=242} sharpness={max(0,min(2000,(@{!,x}-$sx)*2000/280))} -elif {@{!,y}>=275\ &&\ @{!,y}<=292} clusters={max(2,min(256,(@{!,x}-$sx)*256/280))} -endif -endif -if {@{!,b}&2\ ||\ @{!,SPACE}} clusters=64 sharpness=0 smoothness=0 contrast=1 brightness=0 gamma=1 -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -w 0 -rm -v + _x_histogram : val={max(0,min(100,$1))} 280,2,1,3,255 -line[-1] 0,0,$val%,0,1,0,255,0 -line[-1] 0,1,$val%,1,1,240,255,62 -r[-1] 100%,16,1,3,3 0 -t[-1] {round($val)}%,0,0,20,1,1 --*[-1] -255 -+[-1] 255 -r[-1] 100%,100%,1,3 -j[-3] [-1],{(280-w)/2},{(16-h)/2},0,0,1,[-2] -rm[-2,-1] -r[-1] {w+2},{h+2},1,3,0,0,0.5,0.5 #@gmic x_hough #@gmic : Launch hough transform demo. x_hough : -e[] "\n ------ Hough-transform demo -----------------------------------\n ----\n ---- Mouse buttons on the vote image to draw corresponding line.\n ---- Mouse buttons on the image to vote for all lines crossing.\n ---- the clicked point.\n ---- Key 'SPACE' to reset the hough window.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------------------------------" -v - -if {!@#} -testimage2d 400 -endif -n 0,255 -repeat @# -l[$>] -r[-1] @{-fitscreen\ {w},{h}},1,100%,3 # Resize to fit screen if necessary. rhomax={sqrt(w^2+h^2)/2} --b[-1] 1.5 -hough[-1] 512,400 -b[-1] 0.5 -+[-1] 1 -log[-1] -n[-1] 0,255 -w[-2] -1,-1,0,0,"[G'MIC] Image" -w1[-1] -1,-1,0,0,"[G'MIC] Hough Transform" -if {!narg($first_time)} --l[0] -r2dy 128 -frame 1,1,0 -alert "[G'MIC Hough Transform]",\ "The G'MIC Hough transform demo illustrates the application\n"\ "of the Hough transform to detect lines in an image. Use your\n"\ "mouse buttons to explore the transform image and see how\n"\ "lines in images are represented by points in the transform.",\ "Start demo" -rm -endl first_time=0 -endif -do -wait -if @{!,b} # When clicking on the image. x0={@{!,x}-@{!,w}/2} y0={@{!,y}-@{!,h}/2} rho0={sqrt(($x0)^2+($y0)^2)} theta0={atan2($y0,$x0)} (0,{2*pi}) ($theta0,{$theta0-2*pi}) -r[-2,-1] @{-3,w},1,1,1,3 -cos[-1] -*[-1] $rho0 --lt[-1] 0 -abs[-2] -*[-1] {pi} -+[-3,-1] -%[-2] {2*pi} -*[-2] {0.5*@{-3,w}/pi} -*[-1] {@{-3,h}/$rhomax} -a[-2,-1] y -repeat {w} -point[-2] @{-1,($>,0)},@{-1,($>,1)},0,0.3,255 -done -rm[-1] -w1[-1] -elif {@{!1,x}>=0" && "@{!1,b}} # When clicking on the vote window. theta={@{!1,x}*2*pi/@{!1,w}} rho={@{!1,y}*$rhomax/@{!1,h}} x={@{-2,w}/2+$rho*cos($theta)} y={@{-2,h}/2+$rho*sin($theta)} x0={$x+1000*sin($theta)} y0={$y-1000*cos($theta)} x1={$x-1000*sin($theta)} y1={$y+1000*cos($theta)} [-2] -line[-1] $x0,$y0,$x1,$y1,1,0x0F0F0F0F,255 -line[-1] {$x0+1},$y0,$x1,$y1,1,0x0F0F0F0F,255 -line[-1] $x0,{$y0+1},$x1,$y1,1,0x0F0F0F0F,255 -line[-1] $x0,$y0,$x1,$y1,1,0xF0F0F0F0,0 -line[-1] {$x0+1},$y0,$x1,$y1,1,0xF0F0F0F0,0 -line[-1] $x0,{$y0+1},$x1,$y1,1,0xF0F0F0F0,0 -w[-1] -rm[-1] -elif {@{!,SPACE}" || "@{!1,SPACE}} -rm[-1] --b[-1] 1.5 -hough[-1] 512,400 -b[-1] 0.5 -+[-1] 1 -log[-1] -n[-1] 0,255 -w1[-1] -1,-1,0,0,"Hough Transform" -elif @{!,r} -w[-2] -elif @{!1,r} -w1[-1] -endif -while {@!" && "@{!1}" && "!@{!,ESC}" && "!@{!,Q}" && "!@{!1,ESC}" && "!@{!1,Q}} -rm[-1] -endl -if {!@!" || "!@{!1}} -break -endif -w0 0 -done -rm -v + #@gmic x_jawbreaker : 0<_width<20,0<_height<20,0<_balls<=8 #@gmic : Launch the Jawbreaker game. x_jawbreaker : -check "${1=12}>0 && $1<20 && ${2=13}>0 && $2<20 && ${3=5}>0 && $3<=8" -e[] "\n ------ Jawbreaker --------------------------------------------\n ----\n ---- The goal of the game is to remove the maximum number of\n ---- balls on the board, simply by clicking on them. But a\n ---- colored ball can disappear only if it is grouped with at\n ---- least one ball of the same color. The score is higher if\n ---- you destroy larger sets of connected colored balls.\n ----\n ---- Left mouse button to select/destroy balls on board.\n ---- Key 'BACKSPACE' or 'SPACE' to undo the last move.\n ---- Key 'S' to save snapshot of the current view.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - # Init images and variables. -i[board] $1,$2 -rand[board] 1,$3 -round[board] 1 -i[undo] [-1] -i[balls] 32,32 -ball[-1] 255,255,255 -autocrop[-1] 0 -expand_xy[-1] 1,0 -*[-1] 1.5 -c[-1] 0,255 -r[-1] {@{board,w}*w},{@{board,h}*h},1,1,0,2 -/[-1] 255 -i[back] {w},{h},1,3 -l[-1] -rand 0,255 -blur_xy 6,20 -equalize 100,0,255 -blur_xy 2,4 -sh 0,0 -sh[-2] 1,1 -sh[-3] 2,2 -/[-3] 4 -/[-2] 8 -/[-1] 2 -rm[-3--1] -endl -i[visu] [back] score=0 undoscore=0 render_board=1 shapescorey=0 shapescore=0 # Enter user-event loop. -do # Render board graphics. -if $render_board --abs[board] --[-1] 1 -*[-1] {360/$3} --ge[board] 0 -*[-1] 0.9 -r[-2,-1] [balls] [balls] -a[-3--1] c -hsv2rgb[-1] --compose_channels[-1] + -gt[-1] 0 -dilate[-1] 3 -j[visu] [back] -j[visu] [-2],0,0,0,0,1,[-1] -rm[-2,-1] -if {!$shapescorey} -w[visu] @{back,w},@{back,h},0,0,"[G'MIC] Jawbreaker (score : "$score")" -endif render_board=0 -endif # Add shape score sprite if necessary. -if $shapescorey --t[visu] "+"$shapescore,@{!,x},{@{!,y}-64+$shapescorey},32,{($shapescorey-1)/31},255 shapescorey={max(0,$shapescorey-1)} -w[-1] @{back,w},@{back,h},0,0,"[G'MIC] Jawbreaker (score : "$score")" -rm[-1] -wait 25 -else -wait -endif # Check for the end of the game. --f[board] "if(i,j(-1)==i || j(1)==i || j(0,1)==i || j(0,-1)==i,0)" -if {!@{-1,+}} -rm[-1] -break -endif -rm[-1] # Manage user-events -if @{!,r} render_board=1 # Will resize window to initial size, if resized. -elif @{!,S} -o[visu] gmic_jawbreaker.png # Save snapshot if requested. -elif {@{!,BACKSPACE}" || "@{!,SPACE}} # Manage undo move. -abs[undo] -j[board] [undo] score=$undoscore render_board=1 -elif {@{!,x}">=0 && "@{!,b}} # Manage button click. # Retrieve board coordinates. -wait -1 x={"int("@{!,x}"*"@{board,w}"/"@{!,w}")"} y={"int("@{!,y}"*"@{board,h}"/"@{!,h}")"} # When selecting a ball -> display selection and init new shape score sprite. -if {@{board,($x,$y)}>0} -abs[board] -flood[board] $x,$y,0,0,0,1,-@{board,($x,$y)} --ge[board] 0 --[-1] 1 shapescore={(@{-1,+}+1)^2} shapescorey={if($shapescore,32,0)} -rm[-1] # When confirming selection of a ball -> remove set of connected balls. -elif @{board,($x,$y)} --flood[board] $x,$y,0,0,0,1,-1 -==[-1] -1 -if {@{-1,+}>1} # If selected ball is connected to at least one ball. # Save undo state. -j[undo] [board] undoscore=$score # Manage board shifts (vertical and horizontal). -flood[board] $x,$y,0,0,0,1,0 -repeat @{board,w} --columns[board] $> -mirror[-1] y h=@{board,h} -l[-1] -s -,0 -a y -if @# -r 1,$h,1,1,0 -mirror y -else -i 1,$h -endif -endl -j[board] [-1],$> -rm[-1] -done -rows[board] -1,100% -f[board] "if(y==0,if(i(x,h-1),x,w),i)" -sort[board] +,x -rows[board] 1,100% # Update score. score={$score+int((@{-1,+}-1)^2)} -endif -rm[-1] # Remove selection mask. -else -abs[board] # Remove previous selection if clicked outside balls. -endif render_board=1 -endif -while {@!" && "!@{!,Q}" && "!@{!,ESC}} # Game over. -if {@!" && "!@{!,ESC}} -w[] @{visu,w},@{visu,h},0,0,"[G'MIC] Jawbreaker (final score : "$score")" -i[gameover] 230,85 -t[-1] "Game Over!",3,0,57,1,1 -t[-1] "Score : "$score,24,54,32,1,1 --dilate[-1] 5 -nm[-1] "mgameover" -*[-2] 255 -r[-2] 100%,100%,1,3 -repeat 25 --r[gameover,mgameover] {400-12*($>+1)}%,{400-12*($>+1)}% --j[visu] [-2],{(@{visu,w}-w)/2},{(@{visu,h}-h)/2},0,0,{$>/25},[-1] -w[-1] -rm[-3--1] -wait 25 -done -do -wait -if @{!,r} -w[] @{!,w},@{!,h} -wait -1 -endif -while {@!" && "!@{!,Q}" && "!@{!,ESC}" && "!@{!,b}} -rm[gameover,mgameover] -endif # End properly. -rm[board,undo,balls,back,visu] -w 0 -v + #@gmic x_life #@gmic : Launch the game of life. x_life : -e[] "\n ------ The game of life --------------------------------------\n ----\n ---- The goal is to create the biggest possible biological\n ---- system. You start with a stock of cells which you can\n ---- spread over the board. For each new cells created\n ---- simultaneously and spontaneously by your system, you\n ---- gain more new cells to scatter.\n ----\n ---- Left mouse button to scatter cells in stock.\n ---- Right mouse button to reset game.\n ---- Key 'S' to save snapshot of the current view.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - -i[0] 90,90,1,1,0 # Image[0] = game state. -i[1] [0] -f[1] 0 # Image[1] = generation counter. -i[2] 400,400,1,3 # Image[2] = visualization. -i[3] 1 # Image[3] = colormap (to be initialized). iteration=0 # Iteration counter. score=0 # Current score. bestscore=0 # Best score. stock=500 # Remaining cells. -w[0] 400,400,0,0,"[G'MIC] The Game of Life" # Initialize display window. # Start user-event loop. -do (1,1,1;1,0,1;1,1,1) --correlate[0] [-1],0 -rm[-2] # Count numbers of neighboring living cells. --t2[-1] 2,2 -and[-1] [0] -t2[-2] 3,3 -or[-2,-1] # Make the game evolve (kill or create cells). -rv[0,-1] # Update game state. -if {@{!,x}>0" && "@{!,b}==1" && "$stock>0} # Add random cells to the game if user presses mouse button. nb={?*7} -repeat $nb x={@{!,x}/@{!,w}*@{0,w}+?(-4,4)} y={@{!,y}/@{!,h}*@{0,h}+?(-3,3)} -=[0] 1,$x,$y -=[1] $iteration,$x,$y -point[2] {$x*@{2,w}/@{0,w}},{$y*@{2,h}/@{0,h}},0,0.8,255 -done stock={round(max(0,$stock-$nb))} -endif --[-1] [0] -*[-1] -1 # Compute difference between consecutive states. stock={$stock-2*(min(0,int(@{-1,+}/16*$score/150)))} # Increment available cells if the evolution is fast. -+[1] [0] # Increment generation counter for still existing cells. -min[-1] 0 -+[-1] 1 -*[1,-1] # Reset generation counter for died cells. -if {@{!,b}==2} # Reset game if right mouse button has been pressed. -f[0-2] 0 iteration=0 score=0 bestscore=0 stock=500 -rm[3] -i[3] 1 -endif -if {@{3,w}==1} # Create color palette if necessary. -rm[3] -i[3] {?(3,12)},1,1,3,?(100,255) -r[3] {?(100,300)}%,1,1,3,4 -point[3] 0,0,0,1,0 -r[3] {?(100,600)}%,1,1,3,5 -c[3] 0,255 -endif --r[1] @{2,w},@{2,h} -and[-1] 7 -b[-1] {1+$score*0.05} # Render colored image of the game and display it. -n[-1] 0,@{3,w} -map[-1] [3] -*[-1] 0.1 -+[2,-1] -/[2] 1.1 [2] -if {@{!,x}>0} # Add a small target icon at the mouse position. opac={0.7*min(1,$stock/500)} r={min(500,$stock)*cos($iteration)/100} -ellipse[-1] @{!,x},@{!,y},{15+$r},{15+$r},0,$opac,0,196,0 -ellipse[-1] @{!,x},@{!,y},{10+$r},{10+$r},0,$opac,32,64,16 -ellipse[-1] @{!,x},@{!,y},{5+$r},{5+$r},0,$opac,255,230,0 -endif -t[-1] "Living cells : "$score"\n"\ # Add score description. "Stock : "$stock"\n"\ "Score : "$bestscore,5,3,22,0.7,255 -w[-1] @{!,w},@{!,h} -if @{!,S} -o[-1] gmic_life.png -endif # Save snapshot if requested. -rm[-1] -if {!($iteration%10)} score=@{0,+} bestscore={max($score,$bestscore)} -endif # Re-compute current and best scores, every 10th iterations. -wait 60 iteration={$iteration+1} -while {@!" && "!@{!,ESC}" && "!@{!,Q}} # End game and quit properly. -rm[0-3] -w 0 -v + #@gmic x_light #@gmic : Launch the light demo. x_light : -e[] "\n ------ Light demo ------------------------\n ----\n ---- Move light position with mouse.\n ---- Mouse buttons fade light in/out.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - # Create warping and color images. 0 -t[-1] " G'MIC\nLight Demo",0,0,57,1,255 -expand_xy[-1] 15,0 -b[-1] 3 [-1] -n[-2] 0,1 -r[-2] 100%,100%,1,3 -sh[-2] 0,0 -*[-1] 120 -rm[-1] -sh[-2] 1,1 -*[-1] 70 -rm[-1] -sh[-2] 0,50%,0,2 -*[-1] 120 -rm[-1] 25%,25%,1,1 -rand[-1] -20,20 -smooth[-1] 10,0,1,1,4 -r[-1] [-2],3 -b[-1] 3 -n[-1] -60,60 -+[-2,-1] -g[-1] xy -a[-2,-1] c -n[-1] -150,150 -w[] {2*@{-2,w}},{2*@{-2,h}},0,0,"[G'MIC] Light Demo" # Init display window. # Create a large light image. light=70 512,512 -gaussian[-1] $light -n[-1] 0,255 t=0 # Start animation. -do # Manage light position and intensity. -if {@{!,x}>=0} X={round((w-@{!,x})/2)} Y={round((h-@{!,y})/2)} -else X={round((w-@{-2,w}*(1+cos(2*$t)))/2)} Y={round((h-@{-2,h}*(1+sin(2.5*$t)))/2)} t={$t+0.02} -endif -if {@{!,b}&1} light={min(200,$light+10)} -gaussian[-1] $light -n[-1] 0,255 -endif -if {@{!,b}&2} light={max(10,$light-10)} -gaussian[-1] $light -n[-1] 0,255 -endif # Render lightened image. --z[-1] $X,$Y,{$X+@{-2,w}-1},{$Y+@{-2,h}-1} -warp[-1] [-3],1,0,1 -r[-1] 100%,100%,1,3 -+[-1] [-4] -c[-1] 0,255 -w[-1] {2*w},{2*h} -rm[-1] -if {@{!,x}>=0" && "!@{!,b}} -wait -else -wait 20 -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -w[] 0 -rm[-3--1] -v + #@gmic x_mandelbrot : _julia={ 0 | 1 },_c0r,_c0i #@gmic : Launch Mandelbrot/Julia explorer. x_mandelbrot : -skip ${1=0},${2=0.317},${3=0.03} -e[] "\n ------ Mandelbrot/Julia explorer -----------------\n ----\n ---- Select zooming region with mouse.\n ---- Click once to reset zoom factor.\n ---- Keys 'ESC' or 'Q' to exit.\n ---- Key 'C' to print current fractal coordinates.\n ----\n --------------------------------------------------" # Init variables and display. -v - -rm -w 512,512,0,0 -_x_mandelbrot_coords $1 -_x_mandelbrot_palette # Start event loop. -do siz={min(@{!,w},@{!,h})} # Desired window dimension. $siz,$siz -mandelbrot[-1] @0,256,$1,{if($1,$2,0)},{if($1,$3,0)} -map[-1] [1] # Render fractal. -if $1 -w[-1] $siz,$siz,0,0,"[G'MIC] Julia set c=("@{0,0}","@{0,1}")-("@{0,2}","@{0,3}"), c0=($2,$3)" # Display on window. -else -w[-1] $siz,$siz,0,0,"[G'MIC] Mandelbrot set c=("@{0,0}","@{0,1}")-("@{0,2}","@{0,3}")" -endif w={w} h={h} -select[-1] 2 # Get the user selection. -if {@{-1,0}>0} # If valid selection found. M={max(@{-1,3}-@{-1,0},@{-1,4}-@{-1,1})} # Compute max dimension of selected rectangle. -if {$M<5} -_x_mandelbrot_coords $1 -rm[1] -_x_mandelbrot_palette -mv[-1] 1 # If selection too small, reset the view, -else ({@{0,0}+@{-1,0}*(@{0,2}-@{0,0})/$w};\ # Else compute new fractal coordinates. {@{0,1}+@{-1,1}*(@{0,3}-@{0,1})/$h};\ {@{0,0}+(@{-1,0}+$M)*(@{0,2}-@{0,0})/$w};\ {@{0,1}+(@{-1,1}+$M)*(@{0,3}-@{0,1})/$h}) -endif -rm[0] -mv[-1] 0 # Validate new coordinates. -endif -rm[-1] # Delete latest rendering. -if {@{!,C}} # If 'C' key has been pressed. -if $1 -v + -e[0--4] "Julia set, at c = ("@{0,0-1}")-("@{0,2-3}"), with c0 = ($2,$3)." -v - -else -v + -e[0--4] "Mandelbrot set, at c = ("@{0,0-1}")-("@{0,2-3}")." -v - -endif -endif -if {!@!" || "@{!,ESC}" || "@{!,Q}} -rm -w 0 -v + -return -endif -wait -1 -while 1 _x_mandelbrot_coords : -if $1 (-2;-2;2;2) -else (-2.1;-1.5;1.2;1.5) -endif _x_mandelbrot_palette : 6,1,1,3 -rand[-1] 20,255 -r[-1] 32,1,1,3,3 -r[-1] 1024,1,1,3,0,2 -=[-1] 0,0,0,0,0 -=[-1] 0,0,0,0,1 -=[-1] 0,0,0,0,2 #@gmic x_minesweeper : 8<=_width=<20,8<=_height<=20 #@gmic : Launch the Minesweeper game. x_minesweeper : -check "${1=20}>=8 && $1<=30 && ${2=$1}>=8 && $2<=30" -e[] "\n ------ Minesweeper -------------------------------------------\n ----\n ---- The goal is to clear the minefield without detonating a\n ---- mine.\n ----\n ---- Left mouse button to try clearing one square.\n ---- Right mouse button to flag or unflag a square.\n ---- Middle mouse button to reset mine field.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------\n" -v - # Generate random mine field and player board. # Labels : 0=mine, 1=empty, 2='1-near', 3='2-near', ..., 9='8-near', 10=still unknown. $1,$2 -noise[-1] 30,2 nb_mines=@{-1,+} (1,1,1;1,0,1;1,1,1) --convolve[-2] [-1],0 -rm[-2] -+[-1] 1 -==[-2] 0 -*[-2,-1] -nm[-1] field -do x={round(?(w-1))} y={round(?(h-1))} -while {i($x,$y)!=1} # Find a good starting point. --f[field] 11 -=[-1] 12,$x,$y -nm[-1] board # Generate sprite graphics. 24,24,1,3,200 -fc[-1] 255,180,130 -ellipse[-1] 12,12,4,4 -line[-1] 6,12,18,12 -line[-1] 12,6,12,18 -line[-1] 13,10,14,10,1,255 -line[-1] 13,11,14,11,1,255 -z[-1] 1,1,{w-2},{h-2} -frame[-1] 1,1,0 --fc[-1] 230,250,255 --t[-1] "1",10,5,13,1,0,196,0 --t[-2] "2",9,5,13,1,0,128,0 --t[-3] "3",9,5,13,1,0,0,255 --t[-4] "4",9,5,13,1,255,0,0 --t[-5] "5",9,5,13,1,200,0,0 --t[-6] "6",9,5,13,1,150,0,0 --t[-7] "7",9,5,13,1,128,0,0 --t[-8] "8",9,5,13,1,64,0,0 -erode[-8--1] 2 --f[-1] 'if(x<=1||y<=1||x>=w-2||y>=h-2,if(x=0\ &&\ $y>=0\ &&\ $x<@{board,w}\ &&\ $y<@{board,h}} -if {$b&1} # Try to clean square. started=1 val=@{field,($x,$y)} -if {$val==0} --==[field] 0 -j[board] [field],0,0,0,0,1,[-1] -rm[-1] failed=1 # Found a mine -> boom! -elif {$val==1} --flood[field] $x,$y,0,0,1,1,-1 -==[-1] -1 -dilate[-1] 3 -j[board] [field],0,0,0,0,1,[-1] -rm[-1] # Found an empty area. -else -=[board] $val,$x,$y # Close to one or several mines. -endif -elif {n=@{board,($x,$y)};$b&2" && "n>=10" && "n<=11} -=[board] {if(@{board,($x,$y)}==11,10,11)},$x,$y # Flag or unflag a square. -elif {$b&4} -f[board] 10 # Reset minefield. -endif -endif -if {$nb_mines==$nb_flags\ &&\ @{board,M}!=11} succeeded=1 -endif # Check if board is cleared. -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -w 0 -v + #@gmic x_minimal_path #@gmic : Launch the minimal path demo. x_minimal_path : -e[] "\n ------ Minimal path demo -------------------------------------\n ----\n ---- Click on two points to compute and display the minimal\n ---- path between those points. The ending point is then\n ---- chosen as the next starting point for another path.\n ---- Key 'S' to save snapshot of the current view.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - -if {!@#} -testimage2d 400 -endif -n 0,200 -repeat @# -l[$>] -w[0] -1,-1,0,0,"[G'MIC] Select starting point P0" -if {!narg($first_time)} --l[0] -r2dy 128 -frame 1,1,0 -alert "[G'MIC Minimal Path Demo]",\ "The G'MIC Minimal Path demo illustrates how minimal paths\n"\ "can be computed in images to detect and track edge points.\n"\ "Use your mouse to select desired starting and ending points,\n"\ "and see what is the minimal path computed between these points.",\ "Start demo" -rm -endl first_time=0 -endif --gradient_norm -b[-1] 1 -f[-1] exp(-i/10) -to_rgb[0] --select[0] 0 P0=@-1 -ellipse[0] @{-1,0,1},3,3,0,1,255,0,255 -ellipse[0] @{-1,0,1},3,3,0,1,0xFFFFFFFF,255,255,255 -rm[-1] -if {min($P0)>=0} p=1 -do -w[0] -1,-1,0,0,"[G'MIC] Select ending point P"$p --select[0] 0 -if {@{!,S}} -rm[-1] --text_outline[0] "Saving snapshot...",5,5,13,1,1,255,255,255 -w[-1] -rm[-1] -o[0] gmic_minimal_path.png -wait -1 -else P1=@-1 -ellipse[0] @{-1,0,1},3,3,0,1,255,0,255 -ellipse[0] @{-1,0,1},3,3,0,1,0xFFFFFFFF,255,255,255 -rm[-1] -if {min($P1)>=0} --text_outline[0] "Processing...",5,5,13,1,1,255,255,255 -w[-1] -rm[-1] --minimal_path[1] $P0,$P1 -pointcloud[-1] 0 -*[-1] 255 -r[-1] 100%,100%,1,[0],0,0,0,0,0,0.5 -r[-1] [0],0 -or[0,-1] P0=$P1 p={$p+1} -endif -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -endif -rm[1] -endl -done -w 0 -v + #@gmic x_pacman #@gmic : Launch pacman game. x_pacman : -e[] "\n ------ Pacman -----------------------------------------------\n ----\n ---- This is a G'MIC implementation of the pacman game.\n ----\n ---- Move the pacman to eat all pacdots on the different levels.\n ---- Eating a pacgum makes pacman invincible for 10 seconds,\n ---- which mean pacman can eat ghosts during this time.\n ---- Eating a ghost earns 100 pts.\n ---- Eating a cherry earns 10 pts.\n ---- Eating a strawberry earns 100 pts.\n ---- Eating an orange earns 1000 pts.\n ---- Eating a banana earns 5000 pts.\n ----\n ---- Arrow keys to control pacman.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - -rm # Initialize characters gfx. -m "_pacman_ghost_base_gfx : 31,19 -circle[-1] 15,15,15,1,1 31,12,1,1,'y<4+8*abs(cos(x*0.3+0.25*pi*$""1))' -a[-2,-1] y" -repeat 4 -_pacman_ghost_standard_gfx 255,0,0,$> -nm[-1] ghost0_$> -_pacman_ghost_standard_gfx 0,255,222,$> -nm[-1] ghost1_$> -_pacman_ghost_standard_gfx 255,184,222,$> -nm[-1] ghost2_$> -_pacman_ghost_standard_gfx 255,184,71,$> -nm[-1] ghost3_$> -_pacman_ghost_afraid_gfx $> -nm[-1] ghosta_$> -_pacman_ghost_base_gfx $> -r[-1] 16,16,1,1,2 -nm[-1] ghostm_$> -_pacman_ghost_standard_gfx 0,0,0,$> -nm[-1] ghostd_$> -_pacman_pacman_gfx $> -nm[-2] pacman_$> -nm[-1] pacmanm_$> -done --channels[ghostd_0] 0 -!=[-1] 0 -nm[-1] ghostdm -_pacman_cherry_gfx -nm[-1] fruit0 -_pacman_strawberry_gfx -nm[-1] fruit1 -_pacman_orange_gfx -nm[-1] fruit2 -_pacman_banana_gfx -nm[-1] fruit3 20,2,1,3,200 -nm[-1] gate score0="10" score1="100" score2="1000" score3="5000" score4="Argh!" -repeat 5 0 -t[-1] ${score$>},0,0,13,1,255,255,255 -autocrop[-1] 0 -expand_xy[-1] 1,0 --dilate[-1] 3 -nm[-1] scorem$> -nm[-2] score$> -done time4=255,255,255 time3=255,255,32 time2=255,128,32 time1=255,32,32 -repeat 11 0 -t[-1] $<" s",0,0,23,1,${time{min(4,round(($<+1)/2))}} -nm[-1] time$< -done 0 -t[-1] "Get Ready!",0,0,32,1,255 -autocrop[-1] 0 -expand_xy[-1] 4,0 --dilate[-1] 8 -r[-2] 100%,100%,1,3 -nm[-2] get_ready -nm[-1] get_readym 0 -t[-1] "Game\nOver!",0,0,57,1,255 -autocrop[-1] 0 -expand_xy[-1] 4,0 --dilate[-1] 8 -r[-2] 100%,100%,1,3 -nm[-2] game_over -nm[-1] game_overm # Start game. score=0 level=-1 lives=3 is_quit=0 -do # Build new level if necessary. -if {$level<0} _rlevel=33 _glevel=33 _blevel=255 -_pacman_map_level{((-$level-1)%6)+1} mw={w} mh={h} mw2={int(w/2)} mh2={int(h/2)} -if {$level<-6} -replace[-1] 3,2 -endif -nm[-1] map0 -i[map] [-1] # Precompute valid directions on each map point, and shortest path to the ghost's home. --shift[map] -1,0 --shift[map] 0,-1 --shift[map] 1,0 --shift[map] 0,1 -a[-4--1] z -!=[-1] 1 -nm[-1] can_go --==[map] 1 -distance[-1] $mw2,$mh2,0 -channels[-1] 1 -f[-1] 'if(i==2,0,if(i==4,1,if(i==1,2,i)))' -nm[-1] path --==[map] 2 pacdots=@{-1,+} -rm[-1] level={-$level} -endif # Render board gfx. -f[map] 'if(i>=4,0,i)' --==[map] 1 -expand_xy[-1] 1,0 -r[-1] 1600%,1600% -erode[-1] 9 -b[-1] 2 -g[-1] xy -abs[-2,-1] -+[-2,-1] -ge[-1] 80% -b[-1] 2 -n[-1] 0,1 -shrink_xy[-1] 16 --*[-1] $_glevel --*[-2] $_blevel -*[-3] $_rlevel -a[-3--1] c 16,16,1,1,'x' ---[map] 1 -max[-1] 0 -*[-1] 16 -r[-1] 1600%,1600% 16,16,1,1,'y' -r[-3,-1] [-2],0,2 -+[-2,-1] -a[-2,-1] c 16,16,1,3 -_pacman_pacdots_gfx -_pacman_pacgum_gfx -a[-3--1] y -warp[-1] [-2],0,0 -rm[-2] -or[-2,-1] -r[-1] 100%,{h+24},1,3,0,0,0,1 -t[-1] "Lives :",10,0,23,1,255 -t[-1] "Score :",{w-140},0,23,1,255 -if $lives --r[pacman_2] 12,12,1,4,2 -r[-1] {100*$lives}%,100%,1,4,0,2 -j[-2] [-1],90,7 -rm[-1] -endif -nm[-1] visu -w[visu] -1,-1,0,0,"[G'MIC] Pacman" 0 -t[-1] "Level "$level,0,0,57,1,1 -autocrop[-1] 0 -expand_xy[-1] 4,0 (0,255^0,255^0,0) --map[-2] [-1] -rm[-2] -dilate[-2] 8 -nm[-1] level_N -nm[-2] levelm_N -repeat 4 xg$>={16*$mw2} yg$>={16*$mh2+4*$>} dg$>=3 mg$>=0 -done xp={16*10} yp={16*21} dp=-1 pacgum_timer=-1 fruit_timer=@| dying_pacman=0 is_get_ready=1 xscore=0 yscore=0 nscore=0 oscore=0 # Start game interaction. -do # Display board graphics. t={int(6*@|)%4} left={if($pacgum_timer>=0,10-@|+$pacgum_timer,-1)} [visu] -repeat 4 mg=${mg$>} xg=${xg$>} yg={${yg$>}+24} -if {$mg==0} -j[-1] [ghost$>_$t],$xg,$yg,0,0,1,[ghostm_$t] -elif {$mg==1} t2={if($left>7,$t,if($left>3,int(12*@|)%4,int(24*@|)%4))} -j[-1] [ghosta_$t2],$xg,$yg,0,0,1,[ghostm_$t] -elif {$mg==2} -j[-1] [ghostd_$t],$xg,$yg,0,0,0.8,[ghostdm] -else -j[-1] [ghost$>_$t],$xg,$yg,0,0,{$mg-2},[ghostm_$t] -j[-1] [ghostd_$t],$xg,$yg,0,0,1,[ghostdm] -endif -done -if $dying_pacman -_pacman_pacman_gfx {$dying_pacman/2} -rotate[-2,-1] {90*(abs($dp)-1)} -j[-3] [-2],$xp,{24+$yp},0,0,1,[-1],255 -rm[-2,-1] dying_pacman={$dying_pacman+1} -if {$dying_pacman>64} -if {$lives!=1} -rm[-1] -break -endif -j[-1] [game_over],{(w-@{game_over,w})/2},{12+(h-@{game_over,h})/2},0,0,{min(1,($dying_pacman-64)/50)},[game_overm],255 -rectangle[-1] 90,7,101,18,1,0 -endif -else --rotate[pacman_$t,pacmanm_$t] {90*(abs($dp)-1)} -j[-3] [-2],$xp,{24+$yp},0,0,1,[-1],255 -rm[-2,-1] -if {$left>=0" && "($left>=5" || "$t<=2)} -j[-1] [time{round($left)}],{(w-@{time0,w})/2},1 -endif -endif -t[-1] $score,{w-65},1,22,1,255 -if {$is_get_ready} -j[-1] [level_N],{(w-@{level_N,w})/2},{12+(h-1.5*@{level_N,h})/2},0,0,1,[levelm_N] -if {int(@|*4)%2} -j[-1] [get_ready],{(w-@{get_ready,w})/2},{24+(h+@{get_ready,h})/2},0,0,1,[get_readym],255 -endif -endif -if {$oscore>0} -j[-1] [score$nscore],$xscore,$yscore,0,0,$oscore,[scorem$nscore],255 oscore={$oscore-0.04} yscore={$yscore-1} -endif -j[-1] [gate],158,223,0,0,0.6 -w[-1] -rm[-1] # Manage ghosts displacements and collisions. -repeat 4 xg=${xg$>} yg=${yg$>} dg=${dg$>} mg=${mg$>} -if {max(abs($xg-$xp),abs($yg-$yp))<=8} # Test collision between ghost and pacman. -if {$mg==0" && "!$dying_pacman} dying_pacman=1 # Was in normal mode -> dying pacman. xscore=$xp yscore={$yp+12} oscore=1 nscore=4 -elif {$mg==1} mg=2 mg$>=$mg score={$score+100} # Was in invicibility mode -> dying ghost. xscore=$xp yscore={$yp+12} oscore=1 nscore=1 -endif -endif -if {$mg>=2" && "($xg>>4)==$mw2" && "($yg>>4)==$mh2} # Check if dying ghost has returned to home. mg={$mg+0.01} -if {$mg>=3} mg=0 xg={$xg&-2} yg={$yg&-2} -endif mg$>=$mg -endif -if {!($xg&15)" && "!($yg&15)} # Check if ghost can take a new direction. ({?},{?},{?},{?};0,1,2,3) -if {$mg<2} -=[-1] {?(0.6,1)},{if($mg==0,dX0=$xp-$xg;dY0=$yp-$yg;if(abs(dX0)>abs(dY0),if(dX0>0,0,2),if(dY0>0,1,3)),\ # Try to chase pacman. dX1=$xp-$xg;dY1=$yp-$yg;if(abs(dX1)0,2,0),if(dY1>0,3,1)))} # Try to escape pacman. -=[-1] 0,{($dg+2)%4} -if $is_get_ready -=[-1] 0.8,@{path,({$xg>>4},{$yg>>4})} -endif -else -=[-1] 1,@{path,({$xg>>4},{$yg>>4})} # If dying ghost, follow the best path to home. -endif -sort[-1] -,x -repeat 4 d={i($>,1)} -if @{can_go,({$xg>>4},{$yg>>4},$d)} dg=$d -break -endif -done -rm[-1] # Try directions until it matches. dg$>=$d -endif u={D=${dg$>};(D==0)-(D==2)} v={D=${dg$>};(D==1)-(D==3)} xg$>={($xg+$u*(1+($mg==0)))%(16*$mw)} yg$>={($yg+$v*(1+($mg==0)))%(16*$mh)} -done -wait 22 # Manage pacman displacement. -if {!$dying_pacman} d={if(@{!,ARROWRIGHT},1,if(@{!,ARROWDOWN},2,if(@{!,ARROWLEFT},3,if(@{!,ARROWUP},4,$dp))))} -if {!($xp&15)" && "!($yp&15)} i=@{map,({$xp>>4},{$yp>>4})} -if {$i==2} score={$score+10} pacdots={$pacdots-1} # Pacdot eaten. -elif {$i==3} pacgum_timer=@| -repeat 4 -if {!${mg$>}} mg$>=1 dg$>={(${dg$>}+2)%4} -endif -done # Pacgum eaten. -elif {$i>=4} score={$score+${score{$i-4}}} xscore=$xp yscore={$yp+12} oscore=1 nscore={$i-4} # Fruit eaten. -endif -=[map] 0,{$xp>>4},{$yp>>4} 16,16,1,3 -j[visu] [-1],$xp,{24+$yp} -rm[-1] d={if(@{can_go,({$xp>>4},{$yp>>4},{abs($d)-1})},$d,$dp)} d={if(@{can_go,({$xp>>4},{$yp>>4},{abs($d)-1})},$d,-abs($dp))} dp=$d -else dp={if(abs($d-$dp)==2,$d,$dp)} # Allow to turn back on non-integer locations. -endif is_get_ready={if($dp>0,0,$is_get_ready)} u={($dp==1)-($dp==3)} v={($dp==2)-($dp==4)} xp={($xp+2*$u)%(16*$mw)} yp={($yp+2*$v)%(16*$mh)} -if {$pacgum_timer>=0" && "@|>$pacgum_timer+10} # Check if pacgum still has some effect. -repeat 4 xg$>={${xg$>}&-2} yg$>={${yg$>}&-2} mg$>={if(${mg$>}==1,0,${mg$>})} -done pacgum_timer=-1 -endif -if {!$is_get_ready" && "(@|-$fruit_timer)>=10} x={round(?(0,@{map0,w}))} y={round(?(0,@{map0,h}))} -if {!@{map,($x,$y)}" && "@{map0,($x,$y)}==2} n={min(3,int(abs(g*1.7)))} -=[map] {4+$n},$x,$y -j[visu] [fruit$n],{16*$x},{16*$y+24} fruit_timer=@| -endif -endif -endif -if {!@!" || "@{!,Q}" || "@{!,ESC}} is_quit=1 -endif -while {!$is_quit" && "$pacdots} -if $is_quit -break # Player asked to quit. -elif $pacdots # Player lost a life. lives={$lives-1} -else # Player achieved level. level={-$level-1} -wait[0] -1 -rm[map0,map,can_go,path] -endif -rm[visu,level_N,levelm_N] -while $lives -rm -w 0 -v + # The functions below create the various sprite gfx. _pacman_ghost_standard_gfx : -_pacman_ghost_base_gfx $4 (0,$1^0,$2^0,$3) -map[-2] [-1] -rm[-1] -ellipse[-1] 10,11,3,4,0,1,255 -ellipse[-1] 20,11,3,4,0,1,255 -r[-1] 16,16,1,3,2 -point[-1] 5,{7-($4>=2)},0,1,1 -point[-1] 10,{7-($4>=2)},0,1,1 _pacman_ghost_afraid_gfx : -_pacman_ghost_base_gfx $1 -if {$1<2} col=255,255,255 (0,0^0,0^0,208) -else col=255,0,0 (0,248^0,248^0,248) -endif -map[-2] [-1] -rm[-1] -r[-1] 16,16,1,3,2 -line[-1] 4,4,6,6,1,$col,255 -line[-1] 4,6,6,4,1,$col,255 -line[-1] 9,4,11,6,1,$col,255 -line[-1] 9,6,11,4,1,$col,255 -f[-1] 'if(y>=9&&y<=10&&x>=2&&x<=13&&((int((x+1)/2)+y)%2),arg(c+1,$col),i)' _pacman_pacman_gfx : 32,32,1,1,'X=x-15;Y=y-15;A=atan2(Y,X);R=sqrt(X^2+Y^2);R<15.5&&abs(A)>0.8*0.33*$1' (0,255^0,255^0,0^0,255) -map[-2] [-1] -rm[-1] -r[-1] 16,16,1,4,2 -s[-1] c,-3 _pacman_pacdots_gfx : (255^184^151) -r[-1] 4,4,1,3 -r[-1] 16,16,1,3,0,0,0.5,0.5 _pacman_pacgum_gfx : 16,16,1,3 -circle[-1] 7,7,7,1,255,128,64 _pacman_cherry_gfx : (0,0,0,0,0,0,0,0,0,0,1,1;0,0,0,0,0,0,0,0,1,1,1,1;0,0,0,0,0,0,1,1,0,1,0,0;0,0,0,0,0,1,0,0,0,1,0,0;\ 0,2,2,2,2,0,0,0,1,0,0,0;2,2,2,2,2,2,0,1,0,0,0,0;2,2,2,2,2,0,2,2,2,2,0,0;2,3,2,2,0,2,2,2,2,2,2,0;\ 2,2,3,2,0,2,2,2,2,2,2,0;0,2,2,2,0,2,3,2,2,2,2,0;0,0,0,0,0,2,2,3,2,2,2,0;0,0,0,0,0,0,2,2,2,2,0,0) (0,0,255,255^0,173,0,255^0,0,0,255) -map[-2] [-1] -rm[-1] -r2dy[-1] 14 -r[-1] 16,16,1,3,0,0,0.5,0.5 _pacman_strawberry_gfx : (0,0,0,0,0,3,0,0,0,0,0;0,0,1,1,1,3,1,1,1,0,0;0,2,2,1,1,1,1,1,2,2,0;2,2,2,2,1,1,1,2,2,3,2;\ 2,3,2,2,2,2,2,3,2,2,2;2,2,2,3,2,3,2,2,2,2,2;2,2,2,2,2,2,2,2,3,2,2;0,2,3,2,2,3,2,2,2,2,0;\ 0,2,2,2,2,2,2,2,2,2,0;0,0,2,2,3,2,2,3,0,0,0;0,0,0,2,2,2,2,2,0,0,0;0,0,0,0,0,2,0,0,0,0,0) (0,0,255,255^0,173,0,255^0,0,0,255) -map[-2] [-1] -rm[-1] -r2dy[-1] 14 -r[-1] 16,16,1,3,0,0,0.5,0.5 _pacman_orange_gfx : (0,0,0,0,0,1,0,1,1,0,0,0;0,0,0,0,0,1,1,1,1,1,1,0;0,0,0,0,0,1,3,1,1,1,0,0;0,0,2,2,2,1,2,2,2,2,0,0;\ 0,2,2,2,2,2,2,2,2,2,2,0;2,2,2,2,2,2,2,2,2,2,2,2;2,2,2,2,2,2,2,2,2,2,2,2;2,2,2,2,2,2,2,2,2,2,2,2;\ 2,2,2,2,2,2,2,2,2,2,2,2;2,2,2,2,2,2,2,2,2,2,2,2;0,2,2,2,2,2,2,2,2,2,2,0;0,2,2,2,2,2,2,2,2,2,2,0;\ 0,0,0,2,2,2,2,2,2,0,0,0) (0,0,255,255^0,173,173,255^0,0,0,255) -map[-2] [-1] -rm[-1] -r2dy[-1] 14 -r[-1] 16,16,1,3,0,0,0.5,0.5 _pacman_banana_gfx : (0,0,0,0,0,0,0,1,0;0,0,0,0,0,0,1,1,0;0,0,0,0,0,0,1,1,1;0,0,0,0,0,1,0,1,1;0,0,0,0,0,1,0,1,1;\ 0,0,0,0,1,0,1,1,1;0,0,0,0,1,0,1,1,1;0,0,0,1,0,1,2,1,0;0,0,1,0,1,2,1,1,0;0,1,0,1,2,1,1,0,0;\ 1,1,1,1,1,1,0,0,0;1,1,1,1,0,0,0,0,0) (0,255,255^0,173,255^0,0,255) -map[-2] [-1] -rm[-1] -r2dy[-1] 14 -r[-1] 16,16,1,3,0,0,0.5,0.5 _pacman_map_level1 : (1,1,1,1,1,1,1,1,1,1,1;1,2,2,2,2,2,1,2,2,2,2;1,3,1,1,1,2,1,2,1,1,1;1,2,1,1,1,2,1,2,1,1,1;\ 1,2,2,2,2,2,2,2,2,2,2;1,1,1,2,1,2,1,1,1,2,1;0,0,1,2,1,2,1,1,1,2,1;1,1,1,2,1,2,1,1,1,2,1;\ 0,0,0,2,1,2,2,2,2,2,1;1,1,1,2,1,1,1,0,1,1,1;0,0,1,2,1,1,1,0,1,1,1;0,0,1,2,0,0,0,0,0,0,0;\ 0,0,1,2,1,1,1,0,1,1,0;0,0,1,2,1,0,0,0,1,0,0;0,0,1,2,1,0,1,0,1,0,0;1,1,1,2,1,0,1,0,1,1,1;\ 0,0,0,2,0,0,1,0,0,0,0;1,1,1,2,1,1,1,1,1,0,1;0,0,1,2,2,2,2,2,0,0,1;0,0,1,2,1,1,1,2,1,1,1;\ 1,1,1,2,1,1,1,2,1,1,1;1,2,2,2,2,2,2,2,2,2,0;1,2,1,1,1,2,1,1,1,2,1;1,2,1,1,1,2,1,2,2,2,1;\ 1,3,1,1,1,2,1,2,1,1,1;1,2,1,1,1,2,1,2,1,1,1;1,2,2,2,2,2,2,2,2,2,2;1,1,1,1,1,1,1,1,1,1,1) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=33 _glevel=33 _blevel=255 _pacman_map_level2 : (1,1,1,1,1,1,1,1,1,1,1;1,2,2,2,2,2,2,2,2,2,2;1,3,1,2,1,1,1,2,1,1,1;1,2,1,2,1,1,1,2,1,2,2;\ 1,2,1,2,2,2,2,2,1,2,1;1,2,1,1,1,2,1,2,1,2,1;1,2,1,1,1,2,1,2,1,2,1;1,2,2,2,2,2,1,2,2,2,1;\ 1,1,1,2,1,1,1,1,1,0,1;0,0,1,2,1,1,1,1,1,0,1;0,0,1,2,1,1,1,1,1,0,1;0,0,1,2,2,2,1,0,0,0,0;\ 1,1,1,0,1,2,1,0,1,1,0;0,0,0,0,1,2,1,0,1,0,0;1,1,1,1,1,2,0,0,1,0,0;1,1,1,1,1,2,1,0,1,1,1;\ 0,0,0,0,1,2,1,0,0,0,0;1,1,1,2,2,2,1,1,1,0,1;0,0,1,2,1,2,2,2,0,0,1;0,0,1,2,1,1,1,2,1,0,1;\ 1,1,1,2,1,1,1,2,1,0,1;1,2,2,2,2,2,2,2,1,0,0;1,2,1,1,1,2,1,2,1,1,1;1,2,1,2,2,2,1,2,2,2,2;\ 1,3,1,2,1,1,1,1,1,2,1;1,2,1,2,1,1,1,1,1,2,1;1,2,2,2,2,2,2,2,2,2,1;1,1,1,1,1,1,1,1,1,1,1) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=200 _glevel=33 _blevel=33 _pacman_map_level3 : (1,1,1,1,1,1,1,1,1,1,1;0,0,0,0,0,0,1,2,2,2,2;1,1,1,1,1,0,1,2,1,1,1;1,1,1,1,1,0,1,2,1,1,1;\ 1,3,2,2,2,2,2,2,2,2,1;1,2,1,1,1,1,1,2,1,2,1;1,2,1,1,1,1,1,2,1,2,1;1,2,1,2,2,2,2,2,1,2,1;\ 1,2,1,2,1,1,1,0,1,2,1;1,2,2,2,2,2,1,0,1,2,2;1,1,1,1,1,2,1,0,1,1,1;1,2,2,2,2,2,1,0,0,0,0;\ 1,2,1,1,1,2,1,0,1,1,0;1,2,1,1,1,2,1,0,1,0,0;1,2,2,2,1,2,0,0,1,0,0;1,1,1,2,1,2,1,0,1,1,1;\ 0,0,1,2,1,2,1,0,0,0,0;0,0,1,2,1,2,1,1,0,1,1;0,0,1,2,1,2,1,1,0,1,1;0,0,1,2,2,2,2,2,2,1,1;\ 1,1,1,2,1,1,1,1,2,1,1;0,0,0,2,2,2,1,2,2,2,0;1,1,1,2,1,2,1,2,1,1,1;1,3,2,2,1,2,2,2,2,2,1;\ 1,2,1,1,1,2,1,1,1,2,1;1,2,1,1,1,2,1,1,1,2,1;1,2,2,2,2,2,2,2,2,2,2;1,1,1,1,1,1,1,1,1,1,1) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=33 _glevel=200 _blevel=255 _pacman_map_level4 : (1,1,1,1,1,1,1,1,1,0,0;1,2,2,2,2,2,2,2,1,0,0;1,2,1,1,2,1,1,2,1,0,0;1,2,1,1,2,1,1,2,1,0,0;\ 1,2,2,2,3,2,2,2,1,1,1;1,2,1,1,2,1,1,2,2,2,2;1,2,1,1,2,1,1,2,1,1,2;1,2,2,2,2,2,2,2,1,1,2;\ 1,2,1,1,2,1,1,2,2,2,2;1,2,1,1,2,1,1,2,1,1,2;1,2,2,2,2,2,2,2,1,1,2;1,1,1,0,0,0,0,0,0,0,0;\ 0,0,1,0,0,0,0,0,1,1,0;1,1,1,0,0,0,0,0,1,0,0;0,0,0,0,0,0,0,0,1,0,0;1,1,1,0,0,0,0,0,1,1,1;\ 1,1,1,0,0,0,0,0,0,0,0;1,2,0,0,0,0,0,0,0,0,0;1,2,1,1,2,1,1,2,1,1,2;1,2,1,1,2,1,1,2,1,1,2;\ 1,2,2,2,2,2,2,2,2,2,2;1,2,1,1,2,1,1,2,0,0,0;1,2,1,1,2,1,1,2,0,1,1;1,2,2,2,3,2,2,2,2,1,0;\ 1,2,1,1,2,1,1,2,1,1,0;1,2,1,1,2,1,1,2,1,0,0;1,2,2,2,2,2,2,2,1,0,0;1,1,1,1,1,1,1,1,1,0,0) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=200 _glevel=200 _blevel=33 _pacman_map_level5 : (1,1,1,1,1,1,1,1,1,1,1;1,2,2,2,2,2,2,2,1,2,2;1,3,1,1,1,1,1,2,1,2,1;1,2,1,1,1,1,1,2,1,2,1;\ 1,2,1,2,2,2,2,2,2,2,1;1,2,2,2,1,2,1,1,1,2,1;1,1,1,2,1,2,1,0,1,2,1;1,1,1,2,1,2,1,1,1,2,1;\ 0,0,0,0,1,2,2,2,2,2,2;1,2,1,0,1,1,1,0,1,1,1;1,2,1,0,1,1,1,0,1,1,1;1,2,1,0,0,0,0,0,0,0,0;\ 1,2,1,1,1,0,1,0,1,1,0;1,2,1,1,1,0,1,0,1,0,0;1,2,0,0,0,0,1,0,1,0,0;1,2,1,0,1,1,1,0,1,1,1;\ 1,2,1,0,0,0,0,0,0,0,0;1,2,1,1,1,0,1,1,1,0,1;1,2,2,2,2,2,1,2,2,2,1;1,1,1,2,1,2,1,2,1,1,1;\ 1,1,1,2,1,2,1,2,1,1,1;1,3,2,2,1,2,2,2,2,2,0;1,2,1,1,1,2,1,1,1,2,1;1,2,2,2,2,2,1,2,2,2,1;\ 1,2,1,1,1,2,1,2,1,1,1;1,2,1,1,1,2,1,2,1,1,1;1,2,2,2,2,2,1,2,2,2,2;1,1,1,1,1,1,1,1,1,1,1) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=200 _glevel=255 _blevel=33 _pacman_map_level6 : (1,1,1,1,1,1,1,1,1,1,1;1,2,2,2,2,2,2,2,2,2,2;1,2,1,1,2,1,1,1,1,1,1;1,3,2,2,2,2,2,2,2,2,2;\ 1,1,1,1,1,2,1,1,1,1,1;1,2,2,2,2,2,2,2,2,2,2;1,2,1,1,1,1,0,1,1,1,1;1,2,1,0,0,0,0,0,0,0,0;\ 1,2,1,0,1,1,1,0,1,1,1;0,2,1,0,1,2,2,2,2,2,2;1,2,0,0,1,2,1,1,0,1,1;1,2,1,0,0,2,1,0,0,0,0;\ 1,2,1,0,1,2,0,0,1,1,0;1,2,1,0,1,2,1,0,1,0,0;1,2,1,0,1,2,1,0,1,0,0;1,2,1,0,1,2,0,0,1,1,1;\ 1,2,1,0,0,2,1,0,0,0,0;1,2,0,0,1,2,1,1,0,1,1;0,2,1,0,1,2,2,2,2,2,2;1,2,1,0,1,1,1,0,1,1,1;\ 1,2,1,0,0,0,0,0,0,0,0;1,2,1,1,1,1,0,1,1,1,0;1,2,2,2,2,2,2,2,2,2,2;1,1,1,1,1,2,1,1,1,1,1;\ 1,3,2,2,2,2,2,2,2,2,2;1,2,1,1,2,1,1,1,1,1,1;1,2,2,2,2,2,2,2,2,2,2;1,1,1,1,1,1,1,1,1,1,1) --mirror[-1] x -crop[-1] 1,100% -a[-2,-1] x _rlevel=255 _glevel=130 _blevel=233 #@gmic x_paint #@gmic : Launch the interactive painter. x_paint : -e[] "\n ------ Interactive painter -----------------------\n ----\n ---- Use mouse to select color and brush.\n ---- Left button draws a colored stroke.\n ---- Right button fills a colored region.\n ---- Arrow keys or SPACE and BACKSPACE to swap\n ---- between available images.\n ---- Key 'S' to save snapshot of the current view.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------" -v - -to_rgb # Init variables and images. -if {!@#} -i[0] 512,512,1,3,255 -nm[0] "[New image]" -endif color=0,0,0 saturation=1 brushsize=3 brushopacity=0 brushangle=90 brushthickness=1 image=0 refresh_palette=1 refresh_image=1 refresh_brush=1 ox1=-1 oy1=-1 1 1 # Palette image [-2] and brush image [-1] # Start user event loop. -do # Open/refresh palette window. -if $refresh_palette -rm[-2] (0,359;0,359^$saturation,$saturation;$saturation,$saturation^1,1;0,0) -r[-1] 256,64,1,3,3 -hsv2rgb[-1] (255;0) -r[-1] 16,@{-2,h},1,3,3 -line[-1] 0,0,0,100%,1,0 -a[-2,-1] x {w},16,1,3 -t[-1] "Selected color",4,2,13,1,255 -rectangle[-1] 80,3,100,13,1,$color -rectangle[-1] 80,3,100,13,1,0xFFFFFFFF,255,255,255 -a[-2,-1] y -w2[-1] {w},{h},0,0,"Palette" -mv[-1] -2 refresh_palette=0 -endif # Open/refresh brush window. -if $refresh_brush -rm[-1] (32,64;64,32) -r[-1] 16,16,1,3,1 -r[-1] {8*48},{4*48},1,3,0,2 -repeat 4 -repeat 8 -ellipse[-1] {48*$>+24},{48*@{>,-2}+24},{2*$>+1},{(2*$>+1)*$brushthickness},$brushangle,{1-@{>,-2}/4},255 -done -done -rectangle[-1] {$brushsize*48},{$brushopacity*48},\ {$brushsize*48+47},{$brushopacity*48+47},\ 1,0xFFFFFFFF,255,128,128 {w},16,1,3 -line[-1] 0,50%,100%,50%,1,0x55555555,128,64,128 bx={$brushangle*w/180} -rectangle[-1] {$bx-16},20%,{$bx+16},80%,1,128 -line[-1] {$bx-16},20%,{$bx+16},20%,1,255 -line[-1] {$bx+16},20%,{$bx+16},80%,1,255 -line[-1] {$bx-16},80%,{$bx+16},80%,1,64 -line[-1] {$bx-16},20%,{$bx-16},80%,1,64 -a[-2,-1] y 16,{h-16},1,3 -line[-1] 50%,0,50%,100%,1,0x55555555,128,64,128 by={$brushthickness*(h-16)} -rectangle[-1] 20%,{$by-16},80%,{$by+16},1,128 -line[-1] 20%,{$by-16},80%,{$by-16},1,255 -line[-1] 80%,{$by-16},80%,{$by+16},1,255 -line[-1] 20%,{$by-16},20%,{$by+16},1,64 -line[-1] 20%,{$by+16},80%,{$by+16},1,64 -a[-2,-1] x -w3[-1] {w},{h},0,0,"Brush" refresh_brush=0 -endif # Open/refresh image window. -if $refresh_image -w1[$image] @{$image,w},@{$image,h},0,0,"Image "#$image" : "@{$image,b}.@{$image,x} refresh_image=0 -endif # Manage user events. x1=@{!1,x} y1=@{!1,y} x2=@{!2,x} y2=@{!2,y} x3=@{!3,x} y3=@{!3,y} -if {$x1>=0} # Event in the image window. -if {@{!1,b}&1} # Left button -> draw brush stroke. ox1={if($ox1<0,$x1,$ox1)} oy1={if($oy1<0,$y1,$oy1)} delta={max(abs($x1-$ox1),abs($y1-$oy1))} r1={2*$brushsize+1} r2={$r1*$brushthickness} dx={2*($x1-$ox1)/max(1,$delta)} dy={2*($y1-$oy1)/max(1,$delta)} o={1-($brushopacity/4)^0.04} -repeat {max(1,($delta+1)/2)} -ellipse[$image] {$ox1+$>*$dx},{$oy1+$>*$dy},$r1,$r2,$brushangle,$o,$color -done ox1=$x1 oy1=$y1 refresh_image=1 -else ox1=-1 oy1=-1 -if {@{!1,b}&2} # Right button -> fill region. -flood[$image] $x1,$y1,0,10,0,1,$color refresh_image=1 -endif -endif -endif -if {@{!1,ARROWRIGHT}" || "@{!2,ARROWRIGHT}" || "@{!3,ARROWRIGHT}" || "\ # Manage image selection. @{!1,ARROWUP}" || "@{!2,ARROWUP}" || "@{!3,ARROWUP}" || "\ @{!1,SPACE}" || "@{!2,SPACE}" || "@{!3,SPACE}} image={($image+1)%(@#-2)} refresh_image=1 -elif {@{!1,ARROWLEFT}" || "@{!2,ARROWLEFT}" || "@{!3,ARROWLEFT}" || "\ @{!1,ARROWDOWN}" || "@{!2,ARROWDOWN}" || "@{!3,ARROWDOWN}" || "\ @{!1,BACKSPACE}" || "@{!2,BACKSPACE}" || "@{!3,BACKSPACE}} image={($image-1)%(@#-2)} refresh_image=1 -endif -if @{!1,S} -o[$image] gmic_paint.png -endif # Save snapshot if requested. -if {@{!2,b}" && "$x2>=0" && "$y2<64} # Manage color selection from the palette window. -if {$x2>=256} saturation={1-$y2/63} -elif {$x2>=0} color=@{-2,($x2,$y2,0,0)},@{-2,($x2,$y2,0,1)},@{-2,($x2,$y2,0,2)} -endif refresh_palette=1 -endif -if {@{!3,b}" && "$x3>=0} # Manage brush selection. -if {$x3<384" && "$y3>=192} brushangle={$x3*180/(w-16)} # Bottom slider -> select brush angle. -elif {$x3>=384" && "$y3<192} brushthickness={$y3/(h-16)} # Right slider -> select brush thickness. -elif {$x3<384" && "$y3<192} brushsize={int($x3*8/(w-16))} brushopacity={int($y3*4/(h-16))} -endif refresh_brush=1 -endif -wait -while {@{!1}" && "!@{!1,Q}" && "!@{!1,ESC}} # Exit properly. -w1[] 0 -w2[] 0 -w3[] 0 -rm[-2,-1] -v + #@gmic x_plasma #@gmic : Launch the plasma demo. x_plasma : -e[] "\n ------ Plasma demo ----------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - -l[] # Init plasma backgrounds. N=8 -repeat $N 256,150,1,3 -rand[-1] 0,255 -plasma[-1] 1,0,7 -n[-1] 0,255 amp={?(-40,40)} freq={round(?(2,6))} dir$>={if(?<0.5,-1,1)*round(?(1,2))} 100%,100%,1,1,'$amp*cos(y*2*pi*$freq/h)' -done {w+2},100%,1,1,'x' 100%,100%,1,1,'Y=(y-60+5*cos(x/30)+10*sin(x/15));if(Y<0||Y>=32,-1,Y)' -a[-2,-1] c 0 -t[-1] "** Welcome to G'MIC, a powerful image processing framework **",0,0,32,1,255 -b[-1] 0.6 -n[-1] 0,255 M={w} # Start animation loop. -w[] {2*@{0,w}},{2*@{0,h}},0,0,"[G'MIC] Plasma demo" t=0 tt={-1.5*@{0,w}} -do tic=@| # Render interpolated background between two successive plasmas. a={int($t)} a2={2*$a} a21={$a2+1} b={($a+1)%$N} b2={2*$b} b21={$b2+1} --warp[$a2] [$a21],1,0,2 --warp[$b2] [$b21],1,0,2 -j[-2] [-1],0,0,0,0,{$t-$a} -rm[-1] -shift[$a21] 0,${dir$a},0,0,2 # Animate plasma background. -shift[$b21] 0,${dir$b},0,0,2 -if {int($t+0.005)>int($t)} dir$a={if(?<0.5,-1,1)*round(?(1,3))} -endif t={($t+(@|-$tic))%$N} # Render text scrolling. --z[-2] $tt,{$tt+w-1+2} -warp[-1] [-4],0,0,0 -r[-1] 100%,100%,1,3 --*[-1] -1 -+[-1] 255 -j[-3] [-1],0,0,0,0,1,[-2],255 -rm[-1] -j[-2] [-1],-2,-2,0,0,1,[-1],255 -rm[-1] tt={$tt+(@|-$tic)*100} # Animate scrolling. -if {$tt>=$M} tt={-1.5*@{0,w}} -endif # Display rendered frame. -w[-1] -rm[-1] -wait 20 -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm[{-2*$N-2}--1] -w[] 0 -endl -v + #@gmic x_quantize_rgb : _nbcolors>=2 #@gmic : Launch RGB colors quantization demo. x_quantize_rgb : -check "isint(${1=16}) && $1>1" -e[] "\n ------ RGB Quantization --------------------------------------\n ----\n ---- This demo shows how RGB colors can be quantified using\n ---- the k-means algorithm.\n ----\n ---- Left mouse button on 3d view rotates the color cube.\n ---- Right mouse button on 3d view toggles colors/clusters mode.\n ---- Left mouse button on image toggles dithering mode,\n ---- Left mouse button on colormap adds a random color.\n ---- Right mouse button on colormap removes a color.\n ---- Key 'R' init colormap with random values.\n ---- Key 'U' init colormap with uniform sampling.\n ---- Key 'M' init colormap with median-cut algorithm.\n ---- Key 'SPACE' does a single iteration of k-means and pauses.\n ---- Key 'ENTER' runs k-means algorithm.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - -if {!@#} -testimage2d 300 -endif # Create synthetic image if no input images. -k[0] -to_rgb -if {h>300} -r2dy 300 -round 1 -endif -nm[-1] img # Resize input image if necessary. --r {w*h},1,1,3,-1 -r[-1] {min(w,8192)},1,1,3 -nm[-1] colors # Get reduced set of image colors. $1,1,1,3 -rand[-1] 0,255 -round[-1] 1 -nm[-1] centroids # Initialize random centroids. -_x_quantize_rgb_3d (1,0,0,0;0,1,0,0;0,0,1,0) -nm[-1] pose3d # Init 3d object. -_x_quantize_rgb_text "Colors",clustering0 -_x_quantize_rgb_text "Clusters",clustering1 -_x_quantize_rgb_text "Dithering: off",dithering0 -_x_quantize_rgb_text "Dithering: on",dithering1 -if {@{img,h}<300} --r2dy[img] 300,1 -else [img] -endif # Generate visualization canvas. {w+315},365,1,3,255 -rm[-2] -rectangle[-1] 4,4,305,305,1,0xFFFFFFFF,0 -rectangle[-1] 309,4,{w-5},305,1,0xFFFFFFFF,0 -rectangle[-1] 4,309,{w-5},360,1,0xFFFFFFFF,0 [-1],[-1] -rectangle[-1] 310,5,{w-6},305,1,1 -rectangle[-1] 5,310,{w-6},360,1,2 300,300,1,1,'(y<<11)+(x<<2)+3' -j[-2] [-1],5,5 -rm[-1] -a[-2,-1] c -nm[-1] visu # Start k-means iterations. dithering=0 clustering=0 pause=1 s0=off s1=on -repeat 1e10 # Create and display visualization. -if {!narg($visu_3d)} # Update 3d vizualization. ---[centroids] 2 --+[centroids] 2 -a[-2,-1] x -permute[-1] cxyz -y[-1] y --[-1] 128 -j[obj3d] [-1],0,8 -rm[-1] # Update centroids position in 3d object. [obj3d] -if $clustering -if {@{colors,M}<256} --index[colors] [centroids] -*[-1] 256 -+[colors,-1] -endif # Estimate nearest centroids for all colors. --channels[colors] 0 ->>[-1] 8 -map[-1] 2 -permute[-1] cxyz -y[-1] y -j[-2] [-1],0,{@{-2,h}-$_N-h} -rm[-1] -endif -apply_pose3d[-1] @pose3d 300,300,1,3 -object3d[-1] [-2],50%,50%,100,1,2,0,0,300 -rm[-2] -j[-1] [clustering$clustering],2,0,0,0,1,[mclustering$clustering],255 -nm[-1] visu_3d -j[visu] [visu_3d],5,5 -endif -if {!narg($visu_img)} # Update indexed image. --index[img] [centroids],{0.7*$dithering},1 -if {h<300} -r2dy[-1] 300,1 -endif -j[-1] [dithering$dithering],2,0,0,0,1,[mdithering$dithering],255 -nm[-1] visu_img -j[visu] [visu_img],310,5 -endif -if {!narg($visu_centroids)} # Update colormap. --luminance[centroids] -a[-1] [centroids],y -sort[-1] +,x -rows[-1] 1 -r[-1] {@{visu,w}-10},50,1,3 0 -text[-1] "Colors: "@{centroids,w},2,0,13,1,255,255,255 --dilate[-1] 3 -j[-3] [-2],2,2,0,0,1,[-1],255 -rm[-2,-1] -nm[-1] visu_centroids -j[visu] [visu_centroids],5,310 -endif -w[visu] -1,-1,0,0,"[G'MIC] RGB quantization demo" # Check for user's interactions. x={int(@{!,x}*@{visu,w}/@{!,w})} y={int(@{!,y}*@{visu,h}/@{!,h})} b=@{!,b} i=@{visu,($x,$y,0,3)} -if {$b&1" && "$i==1} # Toggle dithering. dithering={!$dithering} -rm[visu_img] -wait -1 -elif {$b&1" && "$i==2} # Add new color. (@{-RGB}) -y[-1] c -a[centroids,-1] x -_x_quantize_rgb_3d -rm[visu_3d,visu_img,visu_centroids] -and[colors] 255 pause=1 -wait 100 -elif {$b&2" && "$i==2" && "@{centroids,w}>2} # Remove color. -r[centroids] {@{centroids,w}-1} -_x_quantize_rgb_3d -rm[visu_3d,visu_img,visu_centroids] -and[colors] 255 pause=1 -wait 100 -elif {$b&2" && "$i>=3} # Toggle clusters/colors mode. clustering={!$clustering} -rm[visu_3d] -wait -1 -elif @{!,M} # Init colormap with median-cut. --and[colors] 255 -colormap[-1] @{centroids,w},0,0 -rm[centroids] -nm[-1] centroids -_x_quantize_rgb_3d -rm[visu_3d,visu_img,visu_centroids] -and[colors] 255 pause=1 -wait -1 -elif @{!,R} # Init colormap with random values. -rand[centroids] 0,255 -round[centroids] 1 -_x_quantize_rgb_3d -rm[visu_3d,visu_img,visu_centroids] -and[colors] 255 pause=1 -wait -1 -elif @{!,U} # Init colormap with uniform sampling. -uniform_distribution @{centroids,w},3 -*[-1] 255 -rm[centroids] -nm[-1] centroids -_x_quantize_rgb_3d -rm[visu_3d,visu_img,visu_centroids] -and[colors] 255 pause=1 -wait -1 -elif @{!,ENTER} # Start k-means iterations. pause=0 -elif {$b&1" && "$i>=3} # Manage 3d view rotation. coords={@{visu,($x,$y,0,3)}-3} u1={(($coords>>2)&511)-150} v1={($coords>>11)-150} -if {!narg($u0)} u0=$u1 v0=$v1 -endif -if {$u0!=$u1" && "$v0!=$v1} n0={sqrt(($u0)^2+($v0)^2)} nu0={if($n0>135,$u0*135/$n0,$u0)} nv0={if($n0>135,$v0*135/$n0,$v0)} nw0={sqrt(max(0,18225-($nu0)^2-($nv0)^2))} n1={sqrt(($u1)^2+($v1)^2)} nu1={if($n1>135,$u1*135/$n1,$u1)} nv1={if($n1>135,$v1*135/$n1,$v1)} nw1={sqrt(max(0,18225-($nu1)^2-($nv1)^2))} u={$nv0*$nw1-$nw0*$nv1} v={$nw0*$nu1-$nu0*$nw1} w={$nv0*$nu1-$nu0*$nv1} n={sqrt(($u)^2+($v)^2+($w)^2)} -rotation3d[] $u,$v,$w,{asin($n/18225)*180/pi} -mv[pose3d] @# -**[-2,-1] -nm[-1] pose3d u0=$u1 v0=$v1 -rm[visu_3d] -endif -elif {!($b&1)} u0= -endif -if {!$pause" || "@{!,SPACE}} # Do one iteration of k-means. pause=@{!,SPACE} # Estimate new centroids positions. -and[colors] 255 --index[colors] [centroids] -*[-1] 256 -+[colors,-1] # Estimate nearest centroids for all colors. -repeat @{colors,s} # Recompute centroid positions. -sh[colors] $>,$> --histogram[-1] {@{centroids,w}*256},0,{@{centroids,w}*256-1} -rm[-2] -i[-2] 256,1,1,1,'x' -r[-2] {w},1,1,1,0,2 -*[-2] [-1] -r[-2,-1] @{centroids,w},1,1,1,2 -max[-1] 0.01 -/[-2,-1] -done -a[-@{colors,s}--1] c -rm[centroids] -nm[-1] centroids # Re-assign ununsed centroids. -->>[colors] 8 -channels[-1] 0 -histogram[-1] @{centroids,w},0,{@{centroids,w}-1} cmax=@{-1,xM} -repeat {w} -if {!i($>)} -point[centroids] $>,0,0,1,@{-at[centroids]\ $cmax} -point[centroids] $>,0,0,-0.001,@{-RGB} -endif -done -rm[-1] -c[centroids] 0,255 -if $visu_3d -rm[visu_3d] -endif -if $visu_img -rm[visu_img] -endif -if $visu_centroids -rm[visu_centroids] -endif -wait 20 -else -if $visu_img -wait -endif -endif -if {!@!" || "@{!,Q}" || "@{!,ESC}} -break -endif -done -rm -v + _x_quantize_rgb_3d : -if $obj3d -rm[obj3d] -endif --distribution3d[centroids] -circles3d[-1] 5 -col3d[-1] 255 # Pre-compute 3d object. -colorcube3d -p3d[-1] 1 --and[colors] 255 -distribution3d[-1] -o3d[-1] 0.8 -+3d[-3--1] --3d[-1] 128,128,128 -nm[-1] obj3d _N={i(0,7)} _x_quantize_rgb_text : 0 -text[-1] "$1",0,0,13,1,255 -r[-1] {w+2},15,1,1,0,0,0.5,0.5 --dilate[-1] 3 -to_rgb[-2] -nm[-2] $2 -nm[-1] m$2 #@gmic x_reflection3d #@gmic : Launch the 3d reflection demo. x_reflection3d : -e[] "\n ------ 3d reflection demo ---------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - # Render background. 128,256,1,3 -rand[-1] 0,255 -plasma[-1] 1,100 -blur_xy[-1] 30,2 -sh[-1] 0,0 -n[-1] 0,90 -rm[-1] -sh[-1] 1,1 -n[-1] 0,60 -rm[-1] -sh[-1] 2,2 -n[-1] 0,180 -rm[-1] --mirror[-1] x [-2,-1] -a[-4--1] x --luminance[-1] -mirror[-1] x -b[-1] 2 -n[-1] 0,255 # Create 3d objects. -torus3d 30,10 -col3d[-1] 255,200,0 -spherical3d 47,34,"80+20*abs(cos(2*theta))" -s3d[-1] -rm[-2] -i[-2] 3,{h},1,1,150,220,255,200,255,255 -y[-2] y -a[-6--1] y -spherical3d 47,34,"100*abs(1+0.6*cos(3*phi)*sin(4*theta))" -r3d[-2,-1] 0,1,0,90 -db3d 0 # Start animation loop. xb=0 xl=0 anim=0 -w[] 400,400,0,0,"[G'MIC] 3d reflection demo" -do tic=@| # Recreate 3d interpolated background object. --rows[-1] 8,{8+3*i(0,6)-1} --j[-3] [-1],0,8,0,0,{if($anim<250,0,0.5-0.5*cos(($anim-250)/100))} -rm[-2] # Render 3d background object (with flat colors). --z[-6] $xb,0,{$xb+255},255 -object3d[-1] [-2],75%,50%,0,1,3,0,0 # Render light reflection map. --z[-6] $xl,0,{$xl+255},255 xf={min(30,$anim-70)+20*cos(1.8*@|)} yf={50+20*sin(2.7*@|)} -object3d[-1] [-6],{20+$xf}%,$yf%,0,1,4,0,0 # Add light reflection to 3d background object. -l3d [-1] -rm[-1] --object3d[-1] [-2],75%,50%,0,1,5,0,0 -j[-2] [-1],0,0,0,0,0.6 -rm[-3,-1] # Add 3d foreground object. -object3d[-1] [-4],$xf%,$yf%,0,1,4,0,0 # Display frame and update animation variables. -w[-1] -rm[-1] xb={($xb+6)&255} xl={($xl-6)&255} anim={$anim+1} -r3d[-2,-1] {sin(0.5*@|)},{cos(@|)},1,{(@|-$tic)*33} -r3d[-3] -1,0.3,0.8,{(@|-$tic)*100} -wait 20 -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm[-5--1] -w[] 0 -v + #@gmic x_rubber3d #@gmic : Launch the 3d rubber demo. x_rubber3d : -e[] "\n ------ 3d rubber demo -------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------" -v - -rm -sphere3d 150,0 -torus3d 70,15 -cylinder3d 20,40 -col3d[-3] 200,200,200,0.3 -col3d[-2] 128,200,76 -col3d[-1] 200,128,76 -c3d[-3--1] -r3d[-1] 1,0,0,70 -+3d[-3--1] -+3d[-1] 10,-8,20 256,256,64,3 {w},{h},1,3,'if(c==0,x,if(c==1,y,y*@{1,d}/h))' {w},{h},1,3 frame=0 -do {w},{h},1,3 -fc[-1] 16,32,32 -object3d[-1] [0],50%,50%,0,1,3,0,0 -j[1] [-1],0,0,$frame -rm[-1] -r3d[0] 0.1,1,0.6,{3*cos(@|*1.25)} -r3d[0] 1,0.2,0.6,-1 --warp[1] [2],0,0 -*[3] 0.8 -*[-1] 0.2 -+[3,-1] -w[-1] {1.2*w},{1.2*h},0,0,"Rubber 3d" -wait 20 -sh[2] 2,2 --[-1] 1 -and[-1] {@{1,d}-1} -rm[-1] frame={($frame-1)%@{1,d}} -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm -w 0 -v + #@gmic x_shadebobs #@gmic : Launch the shade bobs demo. x_shadebobs : -e[] "\n ------ Shade bobs demo --------------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -------------------------------------------------" -v - -rm t=100 -w 512,512,0,0,"[G'MIC] Shade bobs" # Start animation loop. -do t={$t+0.015} -if {$t>4*pi" || "@{!,b}} # Reset motions variables if necessary. rx={?(-1,1)} ry={?(-1,1)} rz={?(-1,1)} rt={?(-1,1)} rcx={?(-0.6*0.6)} t=0 N={20+round(?(80))} R={(2+round(?(40)))*min(@{!,w},@{!,h})/300} -if $obj3d -rm[colormap,img,obj3d] -endif {4+round(?(12))},1,1,3 -noise[0] 255,2 -r[0] 256,1,1,3,3 -*[0] 255 -shift[0] 1 -nm[-1] colormap (67.5;73.5;109.5;103.5;51.5;100.5;{2*$N};$N) 3,{2*$N},1,1,0 1,$N,1,1,5 2,$N,1,1,'y+x*$N' -a[-2--1] x -z[-1] 0,5 4,$N,1,1,1 -y[-3--1] y -a[-4--1] y -nm[-1] obj3d @{!,w},@{!,h} -nm[-1] img -wait -1 -endif # Compute bobs coordinates. r={$ry+$rx*cos(6*$rz*$t)+(1-$rx)*sin(6*$rt*$t)} (0;{30*$ry*($N-1)}) ($t;{2*pi*($N-1)/$N+$t}) -r[-2,-1] 1,$N,1,1,3 -+[-2] {360*sin($rz*$t)} -*[-2] {pi/180} --sin[-2,-1] -cos[-4,-3] -*[-4,-2] $r -*[-3,-1] $rcx -+[-4,-3] -+[-2,-1] -*[-2] {@{!,w}/2} -*[-1] {@{!,h}/2} -a[-2,-1] x --+[-1] $R --[-2] $R -a[-2,-1] y -z[-1] 0,2 -y[-1] y -j[obj3d] [-1],0,8 -rm[-1] # Draw bobs, map colors and display. -object3d[img] [obj3d],50%,50%,0,-1,2,0,0 -and[img] 255 --map[img] [colormap] -w[-1] -rm[-1] -wait 20 -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm -w 0 -v + #@gmic x_spline #@gmic : Launch spline curve editor. x_spline : -e[] "\n ------ Spline curve editor --------------------------\n ----\n ---- Mouse to insert/move/delete points.\n ---- Key 'R' to reset the curve.\n ---- Key 'SPACE' to shows/hide spline curve.\n ---- Key 'P' to shows/hide control points.\n ---- Key 'ENTER' to shows/hide control polygon.\n ---- Key 'T' to shows/hide point tangents.\n ---- Key 'I' to shows/hide point indices.\n ---- Key 'C' to shows/hide point coordinates.\n ---- Keys '+' and '-' to increase/decrease roundness.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n -----------------------------------------------------" # Init display and variables. -v - -if @# -a x -n 0,255 -to_rgb -else (0;0^0;128^0;0) -r[-1] 512,512,1,3,3 -name[-1] "[G'MIC] Spline Editor" -endif -w[0] @{0,w},@{0,h},0,0,@{-1,n} -r[0] @{!,w},@{!,h},1,3,1 -i[1] 1 # Point coordinates roundness=0.5 # Curve roundness visuflags=23 # Visualisation flags nearest=-1 # Nearest point active=-1 # Active point # Start event loop. -do # Init coordinates [1] if necessary. -if {@{1,#}==1} -rm[1] roundness=0.5 nearest=-1 active=-1 -i[1] ({0.2*w},{0.2*h};\ {0.2*w},{0.8*h};\ {0.8*w},{0.8*h};\ {0.8*w},{0.2*h}) -endif # Estimate screen-normalized coordinates [2], curve tangents [3] and tangent orientations [4]. [1] ({@{!,w}/@{0,w}},{@{!,h}/@{0,h}}) -*[-2,-1] # Normalized coordinates. --shift[2] 0,-1,0,0,2 --shift[2] 0,1,0,0,2 --[-2,-1] -*[-1] $roundness # Curve tangents. --s[-1] x -sqr[-2,-1] -+[-2,-1] -sqrt[-1] -r[-1] 2 --/[-2,-1] -rm[-2] # Tangent orientations. # Display curve, control points, polygon and tangents. --r[0] @{!,w},@{!,h},1,3 -if {$visuflags&4} -polygon[-1] @{2,h},@2,0.3,128,200,255 -endif -repeat @{1,h} -line[-1] @{2,0-3},0.3,255,255,0 -if {$visuflags&1} -spline[-1] @{2,0-1},@{3,0-1},@{2,2-3},@{3,2-3},32,1,255 -endif -if {$visuflags&8} -line[-1] {@{2,0}-@{4,0}*20},{@{2,1}-@{4,1}*20},{@{2,0}+@{4,0}*20},{@{2,1}+@{4,1}*20},1,0,255,0 -endif -if {$visuflags&16} -t[-1] $>,{@{2,0}-3},{@{2,1}-18},13,1,255,255,0 -endif -if {$visuflags&32} -t[-1] "("{round(@{1,0})}","{round(@{1,1})}")",{@{2,0}-16},{@{2,1}+10},13,1,100,200,255 -endif -shift[1-4] 0,-1,0,0,2 -done -if {$visuflags"&2"} -repeat @{1,h} -ellipse[-1] @{2,0-1},4,4,0,1,0,0,0 -ellipse[-1] @{2,0-1},2,2,0,1,255,100,155 -shift[2] 0,1,0,0,2 -done -endif -w[-1] -rm[3,4,-1] -wait # Handle key events. -if @{!,SPACE} visuflags={$visuflags+if($visuflags&1,-1,1)} -wait -1 -endif # Show/hide spline. -if @{!,P} visuflags={$visuflags+if($visuflags&2,-2,2)} -wait -1 -endif # Show/hide points. -if @{!,ENTER} visuflags={$visuflags+if($visuflags&4,-4,4)} -wait -1 -endif # Show/hide polygon. -if @{!,T} visuflags={$visuflags+if($visuflags&8,-8,8)} -wait -1 -endif # Show/hide tangents. -if @{!,I} visuflags={$visuflags+if($visuflags&16,-16,16)} -wait -1 -endif # Show/hide indices. -if {@{!,C}" && "!@{!,CTRLLEFT}" && "!@{!,CTRLRIGHT}} visuflags={$visuflags+if($visuflags&32,-32,32)} -wait -1 -endif # Show/hide coordinates. -if {@{!,PADADD}" && "$roundness<1} roundness={$roundness*1.1} -wait -1 -endif # Increase roundness. -if {@{!,PADSUB}" && "$roundness>0.1} roundness={$roundness*0.9} -wait -1 -endif # Decrease roundness. -if {@{!,R}" && "!@{!,CTRLLEFT}" && "!@{!,CTRLRIGHT}} -rm[-1] -i[1] 1 -wait -1 -endif # Reset curve. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,D}} -w[] {@{!,w}*1.5},{@{!,h}*1.5} -endif # Increase window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,C}} -w[] {@{!,w}/1.5},{@{!,h}/1.5} -endif # Decrease window size. -if {(@{!,CTRLLEFT}" || "@{!,CTRLRIGHT})" && "@{!,R}} -w[] @{0,w},@{0,h} -endif # Reset window size. -if @{!,r} -w[] -endif # Resize window if necessary. # Set/unset active point. -if {@{!,b}==0} active=-1 # Unset active point if mouse button is released. -elif {@{!,x}>=0" && "@{!,b}" && "$active==-1} # Find new active point. [2] (@{!,x},@{!,y}) --[-2,-1] -sqr[-1] -s[-1] x -+[-2,-1] # Compute distance vector to points. (@{-1,c}) nearest=@{-1,1} -rm[-1] # Set nearest point. -if {@{-1,m}<64} active=$nearest -endif # Set it as active point, if near enough. -rm[-1] -endif -rm[2] # Move active point. -if {@{!,b}&1" && "@{!,x}>=0" && "$active!=-1} -=[1] {@{!,x}*@{0,w}/@{!,w}},0,$active -=[1] {@{!,y}*@{0,h}/@{!,h}},1,$active # Delete nearest point. -elif {@{!,b}&2" && "@{!,x}>=0" && "@{1,h}>3} -l[1] -s y -rm[$nearest] -a y -endl -wait -1 # Insert new active point. -elif {@{!,b}&1" && "@{!,x}>=0} xy=({@{!,x}*@{0,w}/@{!,w}},{@{!,y}*@{0,h}/@{!,h}}) # Point coordinates in the image basis. --shift[1] 0,-1,0,0,2 -+[-1] [1] -/[-1] 2 # Compute center of segments. $xy --[-2,-1] -sqr[-1] -s[-1] x -+[-2,-1] # Compute distance vector to segments. (@{-1,c}) ns=@{-1,1} -rm[-2,-1] # Get nearest segment. -l[1] -s y -i[{$ns+1}] $xy -a y -endl # Insert new point at right position. active={$ns+1} # Set new active point as newly inserted. -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} # Render spline as a tertiary mask for output. --shift[1] 0,-1,0,0,2 --shift[1] 0,1,0,0,2 --[-2,-1] -*[-1] $roundness [0],[0],1,1,2 -rm[0] -repeat @{1,h} -spline[-1] @{0,0-1},@{1,0-1},@{0,2-3},@{1,2-3},128,1,1 -shift[0] 0,-1,0,0,2 -shift[1] 0,-1,0,0,2 -done -flood[-1] 0,0,0,0,0,1,0 # Exit properly. -rm[0,1] -w 0 -v + #@gmic x_tetris #@gmic : Launch tetris game. x_tetris : -e[] "\n ------ Tetris --------------------------------------------\n ----\n ---- This is a G'MIC implementation of the Tetris game.\n ----\n ---- Arrow keys to move/rotate the triominos.\n ---- Key 'SPACE' to make the current triomino falling.\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------------------" -v - -rm # Init board and triominos shapes. -i[m0] 4,1,1,1,1,1,1,1 -i[m4] 3,2,1,1,1,0,0,1,1,1 -i[m8] 3,2,1,1,0,0,1,1,1,1 -i[m12] 2,2,1,1,1,1,1,1 -i[m16] 3,2,1,1,0,1,1,1,1,0 -i[m20] 3,2,1,1,0,1,0,1,1,1 -i[m24] 3,2,1,1,1,1,0,0,1,1 -if {?<0.25} # Enable extended set. -i[m28] 2,1,1,1,1,1 -i[m32] 2,2,1,1,1,1,0,1 -i[m36] 3,1,1,1,1,1,1 -i[m40] 1,1,1,1,1 -i[m44] 3,2,1,1,1,1,1,1,0,1 -i[m48] 3,3,1,1,1,1,1,1,0,1,1,1,1 -endif -repeat @# i={4*$>} -l[m$i] -repeat 3 --rotate[0] {90*($>+1)} -nm[-1] m{$i+$>+1} -done -endl -done N=@# # Render triomino colored sprites. -i[colors] 3,$N,1,1,'?(16,224)' -r[-1] 3,400% -i[mask] (0,-1,0;1,0,-1;0,1,0) -*[-1] 120 -repeat $N --r[m$>] 500%,500%,1,3 --correlate[-1] [mask],0 -r[-1] 200%,200%,1,1,3 -r[-2] [-1] -*[-2,-1] -c[-1] 30%,100% --r[m$>] [-1],[-1],1,3 --replace_color[-1] 0,0,1,1,1,@{colors,{3*$>}-{3*$>+2}} -rv[-3,-1] -+[-3,-1] -c[-2] 0,255 -channels[-1] 0 -*[-1] 255 -a[-2,-1] c -nm[-1] s$> -done -rm[colors,mask] fact={@{s0,w}/@{m0,w}} # Generate board and background. W=12 H=20 -i[board] $W,$H -i[curr_board] [board] -i[render] {$fact*$W},{$fact*$H},1,3 -i[curr_render] [render] --channels[-1] 0 -nm[-1] curr_render_mask --rows[render] 0,50% -plasma[-1] 1,2 -noise[-1] 20 -blur_y[-1] 40%,1 --mirror[-1] y -a[-2,-1] y -r[-1] [render] -n[-1] 0,64 -blur_x[-1] 1 100%,100% -noise[-1] 0.5,2 -b[-1] 1 -*[-1] 300 -+[-2,-1] -c[-1] 0,255 -nm[-1] background # Start game. time=@| score=0 fall_mode=0 gameover=0 n=-1 nn={round(?(0,$N-1))} -do -wait {if($fall_mode,-1,-20)} # In case of game over. -if $gameover --j[background] [curr_render],0,0,0,0,0.7,[curr_render_mask],255 -text_outline[-1] "Game\nOver!",30,30%,32,2,1,255 -w[-1] -rm[-1] -continue -endif # Check for completed lines and select new random triomino. -if {$n<0} -l[board] -s y i=-1 -repeat @# -if @{$<,m} i=$<,$i -endif -done 0 -rm[$i] -a y score={$score+2^(narg($i)-1)-1} -r $W,$H,1,1,0,0,0,1 -nm board -endl -if {narg($i)>1} -l[render] -s y,$H 0 -rm[$i] -a y -r {$fact*$W},{$fact*$H},1,3,0,0,0,1 -nm render -endl -endif n=$nn nn={round(?(0,$N-1))} x={$W/2} y=0 do_render=1 fall_mode=0 -endif # Render board at current time. -if $do_render -rm[curr_board,curr_render,curr_render_mask] -i[curr_board] [board] -j[curr_board] [m$n],{$x-int(@{m$n,w}/2)},$y,0,0,1,[m$n] -i[curr_render] [render] -sh[s$n] 3,3 -j[curr_render] [s$n],{$fact*($x-int(@{m$n,w}/2))},{$fact*$y},0,0,1,[-1],255 -rm[-1] --*[curr_board] 255 -r[-1] [curr_render],[curr_render] -nm[-1] curr_render_mask 0 -t[-1] "Score : "$score" Next :",4,0,32,1,164 -r[-1] 40%,40%,1,3,2 --neq[-1] 0 -*[-1] 255 -j[curr_render] [-2],0,0,0,0,1,[-1],255 -j[curr_render_mask] [-1],0,0,0,0,1,[-1],255 -rm[-2,-1] --*[m$nn] 196 -r[-1] 300%,300%,1,3 -j[curr_render,curr_render_mask] [-1],{@{curr_render,w}-w-4},3,0,0,1,[-1],196 -rm[-1] do_render=0 -endif --shift[background] 0,{-13*@|*1.04^$score},0,0,2 -j[-1] [curr_render],0,0,0,0,1,[curr_render_mask],255 -w[-1] {2*w},{2*h},0,0,"[G'MIC] Tetris" -rm[-1] # Manage user interactions. -if @{!,SPACE} fall_mode=1 -endif -if {@{!,ARROWUP}" || "@{!,ARROWLEFT}" || "@{!,ARROWRIGHT}} an={if(@{!,ARROWUP},n=$n+1;if(n%4,n,n-4),$n)} nx={w2=int(@{m$an,w}/2);max(w2,min($x-@{!,ARROWLEFT}+@{!,ARROWRIGHT},$W-(@{m$an,w}%2)-w2))} --j[board] [m$an],{$nx-int(@{m$an,w}/2)},$y,0,0,-1,[m$an] -if {@{-1,M}==1} x=$nx n=$an -endif -rm[-1] do_render=1 -endif -if {@{!,ARROWDOWN}" || "@|-$time>0.9^int($score/2)" || "$fall_mode} # Piece goes down. y={$y+1} --j[board] [m$n],{$x-int(@{m$n,w}/2)},$y,0,0,-1,[m$n] -if {@{-1,M}>1" || "$y+@{m$n,h}>$H} -if {$y<=1} gameover=1 -endif # Game over! -j[board] [curr_board] -j[render] [curr_render] n=-1 -endif -rm[-1] time=@| do_render=1 -endif -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm -w 0 -v + #@gmic x_tictactoe #@gmic : Launch tic-tac-toe game. x_tictactoe : -e[] "\n ------ Tic-Tac-Toe game -----------------\n ----\n ---- Use mouse to select positions of the\n ---- symbols. Close window to exit game.\n ----\n -----------------------------------------" -v - # Become quiet. # Allocate variables. message=0 # [-7] : State message. counter=0 # [-6] : Turn counter (0 to 8). player=0 # [-5] : Current player (0 or 1). state=0 # [-4] : Board state. tmp3=0 # [-3] : Temporary variable 3. tmp2=0 # [-2] : Temporary variable 2. tmp1=0 # [-1] : Temporary variable 1. -_x_tictactoe2 # Generate board. -w[-1] -1,-1,0,0," " # Init display window. # Start main loop. -do # Set state message depending on the current player. -if $player message="Tic-Tac-Toe (O to play)" -else message="Tic-Tac-Toe (X to play)" -endif # Select position by the user. -do # Enter event loop. -w[] {w},{h},0,0,"[G'MIC] "$message -wait # Wait for events and force window size if necessary. -if {!@!} -w[] 0 -rm -v + -return -endif # Quit properly if window has been closed. -if {@{!,b}&1" && "@{!,x}>20" && "@{!,y}>20" && "@{!,x}<400" && "@{!,y}<400} # If mouse button has been pressed on the board area. tmp3={int((@{!,x}-15)/130)} # Get x-coord of the selected position (0,1 or 2). tmp2={int((@{!,y}-15)/130)} # Get y-coord of the selected position (0,1 or 2). tmp1={4^($tmp2*3+$tmp3)} # Get state code of the selected position. -if {int($state/$tmp1)%4} tmp1=-1 -endif # Check availability of the selected position. -else tmp1=-1 -endif # If no mouse button, do nothing but loop. -while {$tmp1<0} # Go on until a valid position has been selected. # Draw symbol on selected position and update board state. -_x_tictactoe{$player%2} # Generate the symbol sprite and his mask. -j[-3] [-2],{"130*"$tmp3" + 15+?(-5,5)"},\ # Draw symbol at its position (with some fuzzyness). {"130*"$tmp2" + 15+?(-5,5)"},0,0,1,[-1] -rm[-2--1] # Delete the sprite and the mask (not needed anymore). -w[-1] # Update display window. state={$state+(1+$player)*$tmp1} # Update the board state. # Check for a winning configuration. (21,1344,86016,4161,16644,66576,65793,4368;\ # The list of winning configurations. 0,0,0,0,1,2,0,0;\ # Corresponding X coords for the stroke. 0,1,2,0,0,0,0,0;\ # Corresponding Y coords for the stroke. 3,3,3,4,4,4,5,6) # Corresponding indice of the stroke sprite. -repeat {w} # Start to check configurations. tmp1=@{-1,$>} # Save the current configuration code (used several times). -if {($state&$tmp1)==$tmp1||($state&(2*$tmp1))==2*$tmp1} # If a winner has been found. -_x_tictactoe@{-1,($>,3)} # Generate the stroke symbol and his mask. -j[-4] [-2],{130*@{-3,($>,1)}+?(-5,5)},\ # And display it on the board at its position. {130*@{-3,($>,2)}+?(-5,5)},0,0,1,[-1] -rm[-2--1] -if {($state&$tmp1)==$tmp1} -w[-2] -1,-1,0,0,"Tic-Tac-Toe (X won!)" -else -w[-2] -1,-1,0,0,"Tic-Tac-Toe (O won!)" # Update display window. -endif -do -wait -w[] @{!,w},@{!,h} -while @! # Wait for the window to be closed. -rm -w[] 0 -v + -return # And return properly. -endif -done # Go on until all configurations have been checked. -rm[-1] # Delete winning configuration data. player={($player+1)%2} # Select next player. counter={$counter+1} # Increment turn counter. -while {$counter<9} # Loop to next move until all positions have been filled. # Here, the game has been ended without winners. -w[] -1,-1,0,0,"Tic-Tac-Toe (Tied game!)" # Change window title. -do -wait -w[] @{!,w},@{!,h} -while @! # Wait for the window to be closed. -w[] 0 -rm -v + # Return properly. # Generate Tic-Tac-Toe graphics. _x_tictactoe : # Apply a hand-drawing effect. -spread[-1] 4 -b[-1] 6 -sharpen[-1] 0.8 -n[-1] 0,1 __x_tictactoe : # Apply color to last image and generate corresponding opacity mask. --f[-1] 1-i --n[-2] $2,255 --n[-3] $3,255 -n[-4] $1,255 -a[-4,-2,-1] c _x_tictactoe0 : # Generate a 'X' and his mask. 128,128,1,1,1 -line[-1] 15%,15%,85%,85%,1,0 -line[-1] 15%,85%,85%,15%,1,0 -erode[-1] 12 -_x_tictactoe -deform[-1] 4 -__x_tictactoe 40,40,160 _x_tictactoe1 : # Generate a 'O' and his mask. 128,128,1,1,1 -ellipse[-1] 50%,50%,22%,22%,0,1,0 -ellipse[-1] 50%,50%,15%,15%,0,1,1 -_x_tictactoe -deform[-1] 4 -__x_tictactoe 160,40,160 _x_tictactoe2 : # Generate the board. 391,391,1,1,"!(x%130) || !(y%130)" -r[-1] 421,421,1,1,0,0,0.5,0.5 -dilate[-1] 3 -_x_tictactoe -f[-1] 1-i 100%,100% -noise[-1] 10 -b[-1] 8,0 -sharpen[-1] 1.5 -n[-1] 220,255 -*[-2,-1] -to_rgb[-1] _x_tictactoe3 : # Generate an horizontal stroke and his mask. 421,130,1,1,1 -line[-1] 10%,60%,90%,60%,1,0 -erode[-1] 6 -_x_tictactoe -rotate[-1] {?(-6,6)},1,1,50%,50% -__x_tictactoe 180,10,10 _x_tictactoe4 : # Generate a vertical stroke and his mask. -_x_tictactoe3 -transpose[-2--1] _x_tictactoe5 : # Generate a ++ diagonal stroke and his mask. 421,421,1,1,1 -line[-1] 10%,10%,90%,90%,1,0 -erode[-1] 6 -_x_tictactoe -__x_tictactoe 180,10,10 _x_tictactoe6 : # Generate a +- diagonal stroke and his mask. 421,421,1,1,1 -line[-1] 10%,90%,90%,10%,1,0 -erode[-1] 6 -_x_tictactoe -__x_tictactoe 180,10,10 #@gmic x_whirl : _opacity>=0 #@gmic : Launch fractal whirl demo. #@gmic : Default values: 'opacity=0.2'. x_whirl : -check ${1=0.2}>=0 -e[] "\n ------ Fractal whirl demo ------------------------\n ----\n ---- Keys 'ESC' or 'Q' to exit.\n ----\n --------------------------------------------------" -v - 5,5,1,3 256,256,1,3 [-1] -w[-1] 512,512,0,0,"[G'MIC] Fractal whirl demo" tangle=0 tzoom=0 xc={(w-@{-3,w})/2} yc={(h-@{-3,h})/2} -do -rand[-3] 0,255 -j[-2] [-3],$xc,$yc,0,0 -rotate[-2] {8*sin($tangle)},0,0,{w/2+?(-2,2)},{h/2},{1.03+0.02*sin($tzoom)} tangle={$tangle+0.001} tzoom={$tzoom+0.02} -j[-1] [-2],0,0,0,0,$1 -w[-1] -wait 20 -while {@!" && "!@{!,ESC}" && "!@{!,Q}} -rm[-3,-2] -w[] 0 -v + #------------------------------------ # #@gmic :: PINK-library operators # #------------------------------------ _wrbytepnk : -output_pink3d ${1}.pnk _xpink : filename=@{-file_rand} prefix=pink. -if {!@{-is_windows}} -x "which "${prefix}${1}" >/dev/null 2>&1" -if {@{}!=0} prefix="" -x "which "$1" >/dev/null 2>&1" -if {@{}!=0} -error "executable (pink.)"$1" not found in PATH, status = "@{}"!! Returning!!\n" -return -endif -endif -output_pink3d ${filename}.pnk -x ${prefix}${1}" "${filename}".pnk $2 "${filename}"_o.pnk >/dev/null 2>&1" -else -output_pink3d ${filename}.pnk -x $1" "${filename}".pnk $2 "${filename}"_o.pnk" -endif status=@{} -file_rm ${filename}.pnk -if {$status!=0\ &&\ {$1'!='seuilauto} -error "exec Status is "${status}"." -return -elif ${filename}_o.pnk -i ${filename}_o.pnk -file_rm ${filename}_o.pnk -k[-1] -else -error "exec Error!!" -endif _xpinks : s=@{-1,s} -if {$s>1} -s[-1] c -endif -repeat @# -l[@{>,-1}] -_xpink $1,"$2" -k[-1] -endl -done -if {$s>1} -a[-$s--1] c -endif _xframe : -line 0%,0%,100%,0% -line 0%,100%,100%,100% -line 0%,0%,0%,100% -line 100%,0%,100%,100% #@gmic output_pink3d : filename #@gmic : Save selected images as P5-coded PPM files (PINK extension for 3d volumetric images). output_pink3d : -e[^-1] "Output image$? as file '$1' (in 3d pink extension of P5-coded PPM format)." -v - -if {@#==1} filename0="$1" -else -repeat @# filename$>=@{-filename\ "\"$1\"",$>} -done -endif -repeat @# -l[$>] -if {d==1} -o[-1] ppm:${filename$>} # 2d image, save as regular PPM format. -else # 3d image, save as PINK PPM extension. ({'P5\n{w}\ {h}\ {d}\n255\n'}) --channels[-2] 0 -y[-1] x -a[-2,-1] x -o[-1] raw:${filename$>},uchar -rm[-1] -endif -endl -done -v + #@gmic pink #@gmic : Pink wrapper name,p1, .. ,pn (requires the PINK library to be installed). #@gmic : (http://pinkhq.com/) #@gmic : prepares input, calls external "name input p1 ... pn output" and reads output (/tmp) #@gmic : $ image.jpg --pink asfr,5 -pink[0] asf,5 #@gmic : $ image.jpg --blur 2 -pink maxima,4 pink : -v - -if {$#>1} ({"'${2--1}'"}) -replace[-1] {','},{"' '"} p=@{-1,t} -rm[-1] -else p=" " -endif -v + -e[^-1] "Call pink package with cmd: \"$1$? "$p"$?\"." -v - -repeat @# -l[@{>,-1}] -_xpinks $1,$p -endl -done -v + #@gmic pink_grayskel : _connectivity={ 4 | 8 | 6 | 26 }, _lambda=0 #@gmic : (http://pinkhq.com/grayskel_8c.html) #@gmic : Grayscale homotopic skeleton (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'lambda=0'. #@gmic : $ image.jpg --pink_grayskel , --pink_grayskel[0] ,10 --pink_grayskel[0] ,100 -append_tiles 2 pink_grayskel : -skip ${1=4},${2=0} -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -repeat @# -l[@{>,-1}] -_xpinks "grayskel","null $1 $2" -endl -done #@gmic pink_heightmaxima : _connectivity={ 4 | 8 | 6 | 26 },_height=1 #@gmic : (http://pinkhq.com/heightmaxima_8c.html) #@gmic : Heightmaxima filtering (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'height=1'. #@gmic : $ image.jpg --blur 2 --pink_heightminima ,15 --pink_heightmaxima[0,1] ,15 --[-3,-1] --[-3,-1] -k[-1,-2] pink_heightmaxima : -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -skip ${2=1} -e[^-1] "Filter by heightmaxima exec with connectivity $1 height $2." -v - -repeat @# -l[@{>,-1}] s=@{-1,s} -if {$s>1} -s[-1] c -endif -repeat @# -l[@{>,-1}] -_xpink "heightmaxima","$1 $2" -k[-1] -endl -done -if {$s>1} -a[-$s--1] c -endif -endl -done -v + #@gmic pink_heightminima : _connectivity={ 4 | 8 | 6 | 26 },_height=1 #@gmic : (http://pinkhq.com/heightminima_8c.html) #@gmic : Heightminima filtering (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'height=1'. #@gmic : $ image.jpg --blur 2 --pink_heightminima ,15 --pink_heightmaxima[0,1] ,15 --[-3,-1] --[-3,-1] -k[-1,-2] pink_heightminima : -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -skip ${2=1} -e[^-1] "Apply filter by heightminima exec with connectivity $1 height $2." -v - -repeat @# -l[@{>,-1}] s=@{-1,s} -if {$s>1} -s[-1] c -endif -repeat @# -l[@{>,-1}] -_xpink "heightminima","$1 $2" -k[-1] -endl -done -if {$s>1} -a[-$s--1] c -endif -endl -done -v + #@gmic pink_htkern : _connectivity={ 4 | 8 | 6 | 26 }, _type={""|u} #@gmic : (http://pinkhq.com/htkern_8c.html) #@gmic : (http://pinkhq.com/htkernu_8c.html) #@gmic : Grayscale ultimate homotopic thinning/thickening without condition (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'type=""'. #@gmic : $ image.jpg --pink_htkern ,u --pink_htkern[0] , ---[-1,-2] -rm[0] pink_htkern : -skip ${1=4},${2=""} -repeat @# -l[@{>,-1}] -_xpinks htkern$2,"null $1" -endl -done #@gmic pink_lvkern : _connectivity={ 4 | 8 | 6 | 26 }, _type={""|u} #@gmic : (http://pinkhq.com/lvkern_8c.html) #@gmic : (http://pinkhq.com/lvkernu_8c.html) #@gmic : Grayscale ultimate leveling thinning/thickening without condition (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'type=""'. #@gmic : $ image.jpg -pink_lvkern ,u pink_lvkern : -skip ${1=4},${2=""} -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -repeat @# -l[@{>,-1}] -_xpinks lvkern${2},"null $1" -endl -done #@gmic pink_reg_minima : _connectivity={ 4 | 8 | 6 | 26 } #@gmic : (http://pinkhq.com/minima_8c.html) #@gmic : Regional minima (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4'. #@gmic : $ image.jpg --blur 2 -pink_reg_minima , pink_reg_minima : -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -e[^-1] "Compute regional minima exec with connectivity $1." -v - -repeat @# -l[@{>,-1}] s=@{-1,s} -if {$s>1} -s[-1] c -endif -repeat @# -l[@{>,-1}] -_xpink "minima","$1" -k[-1] -endl -done -if {$s>1} -a[-$s--1] c -endif -endl -done -v + #@gmic pink_skelcurv : _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={""} #@gmic : (http://pinkhq.com/skelcurv_8c.html) #@gmic : Curvilinear binary skeleton guided by a priority function or image (requires the PINK library to be installed). #@gmic : Default values: 'prio=0', 'connectivity=4' and 'inhibit=""'. #@gmic : $ image.jpg -threshold 50% {w},{h} -fill[-1] 'if(x>w/2,255,0)' tp=@{-path_tmp} -output[-1] ${tp}/inhibit.pgm -remove[-1] --pink_skelcurv[0] , --pink_skelcurv[0] ,,${tp}/inhibit.pgm -exec "rm "${tp}"/inhibit.pgm" #@gmic : $ image.jpg -threshold 50% --pink_skelcurv , --pink_skelcurv[-2] ,8 pink_skelcurv : -skip ${1=0},${2=4},${3=""} -e[^-1] "Curvilinear binary skeleton guided by a priority function or image from image$?, prio=$1, connectivity=$2, inhibit=$3." -repeat @# -l[@{>,-1}] -_xpinks "skelcurv","$1 $2 $3" -endl -done #@gmic pink_skelend : _connectivity={ 4 | 8 | 6 | 26 },_n=0 #@gmic : (http://pinkhq.com/skelend_8c.html) #@gmic : Homotopic skeleton of a 2d or 3d binary image with dynamic detection of end points (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4' and 'n=0'. #@gmic : $ image.jpg -threshold 50% --pink_skelend , --pink_skelend[-2] ,-1 pink_skelend : -skip ${1=4},${2=0} -repeat @# -l[@{>,-1}] -_xpinks "skelend","$1 $2" -endl -done #@gmic pink_skeleton : _prio={0|1|2|3|4|8|6|26},_connectivity={ 4 | 8 | 6 | 26 },_inhibit={""} #@gmic : (http://pinkhq.com/skeleton_8c.html) #@gmic : Ultimate binary skeleton guided by a priority image (requires the PINK library to be installed). #@gmic : Default values: 'prio=0', 'connectivity=4' and 'inhibit=""'. #@gmic : $ image.jpg -threshold 50% --pink_skeleton[-1] , pink_skeleton : -skip ${1=0},${2=4},${3=""} -repeat @# -l[@{>,-1}] -_xpinks "skeleton","$1 $2 $3" -endl -done #@gmic pink_skelpar : _algorithm={0..29},_nsteps=_1,_inhibit="" #@gmic : (http://pinkhq.com/skelpar_8c.html) #@gmic : Parallel binary skeleton (requires the PINK library to be installed). #@gmic : Default values: 'algorithm=4', 'nsteps=-1' and 'inhibit=""'. #@gmic : $ image.jpg -threshold 50% --pink_skelpar[-1] 0 --pink_skelpar[-1] 2 pink_skelpar : -skip ${1=4},${2=-1},${3=""} -repeat @# -l[@{>,-1}] -_xframe -_xpinks "skelpar","$1 $2 $3" -endl -done #@gmic pink_wshed : _connectivity={ 4 | 8 | 6 | 26 },_inverse={ 0 | 1 },_height=0 #@gmic : (http://pinkhq.com/wshedtopo_8c.html) #@gmic : Watershed (requires the PINK library to be installed). #@gmic : Default values: 'connectivity=4', 'inverse=0' and 'height=0'. #@gmic : $ image.jpg --pink_wshed ,1,5 -pink_wshed[0] ,,5 pink_wshed : -check "${1=4}==4 || $1==8 || $1==6 || $1==26" -skip ${2=0},${3=0} -e[^-1] "Compute wshedtopo exec with connectivity $1 inversion $2 height $3." -v - -repeat @# -l[@{>,-1}] s=@{-1,s} -if {$s>1} -s[-1] c -endif -if {d==1} -check "${1=4}==4 || $1==8" -repeat @# -l[@{>,-1}] -if {$2!=0} -negative -endif -fill max(min(i,255),0) -if {$3>=0} -pink heightminima,$1,$3 -endif -pink wshedtopo,$1 -if {$2!=0} -negative -endif -endl -done -else -check "$1==6 || $1==26" -repeat @# -l[@{>,-1}] -if {$2!=0} -negative -endif -fill max(min(i,255),0) -if {$3>=0} -pink heightminima,$1,$3 -endif -pink wshedtopo,$1 -if {$2!=0} -negative -endif -endl -done -endif -if {$s>1} -a[-$s--1] c -endif -endl -done -v + #------------------------------ # #@gmic :: Convenience functions # #------------------------------ #@gmic alert : _title,_message,_label_button1,_label_button2,... #@gmic : Display an alert box and wait for user's choice. #@gmic : If a single image is in the selection, it is used as an icon for the alert box. #@gmic : Default values: 'title=[G'MIC Alert]' and 'message=This is an alert box.'. alert : -skip "${1=[G'MIC Alert]},${2=This is an alert box.},${3=OK}" -if {@#==1} -e[0--3] "Display alert box, with image$?, title '$1', message '$2' and buttons '${3--1}'." -else -e[0--3] "Display alert box, with title '$1', message '$2' and buttons '${3--1}'." -endif -v - -if {@#==1} logo= -else logo=[] -endif --l$logo # Manage alert icon. -if {@#==1} -to_rgb -else # No logo provided, generate default logo (alert). 64,64 -polygon 3,50%,10%,10%,90%,90%,90%,1,1 -b 3 -ge 50% --erode[-1] 5 --[-1] [-2] -==[-1] 0 -polygon[-1] 4,47%,43%,53%,43%,53%,66%,47%,66%,1,0 -circle[-1] 50%,76%,2,1,0 --*[0] 255 [-1] 100%,100% -a[-3--1] c --[-1] '3*(y-h/2)' -*[-1] [-2] -rm[-2] -*[0] 255 -rv -a c -drop_shadow 3,3,1 -i[0] 100%,100%,1,3,200 -blend alpha -endif -channels -1,2 # Create buttons graphics. $=arg -repeat {$#-2} label=${arg{$>+3}} 0 -text[-1] $label,0,0,14,1,-200 -done -r[^0] {min(128,max(64,@{-max_w[^0]}+12))},{min(48,max(24,@{-max_h[^0]}+12))},1,1,0,0,0.5,0.5 -+[^0] 200 -to_rgb[^0] -mv[0] @# [0],[0],1,1,'(y-h/2)' -*[-1] -2 -c[-1] -30,30 -+[0--3] [-1] -rm[-1] -c[^-1] 0,255 # Add shading to buttons. -repeat {@#-1} -l[$<] # Create selected buttons. --rectangle 0,0,100%,100%,1,0xFFFFFFFF,0 -rectangle[-1] 1,1,{w-2},{h-2},1,0xFFFFFFFF,0 -line[-1] 2,{h-3},{w-3},{h-3},1,150 -line[-1] {w-3},{h-3},{w-3},2,1,150 -line[-1] 1,1,{w-3},1,1,255 -line[-1] 1,1,1,{h-3},1,255 -rectangle[-1] 4,4,{w-5},{h-5},1,0xAAAAAAAA,0 # Create clicked buttons. --shift[-2] 1,1,0,0,2 -rectangle[-1] 0,0,100%,100%,1,0xFFFFFFFF,0 -rectangle[-1] 1,1,{w-2},{h-2},1,0xFFFFFFFF,150 -rectangle[-1] 4,4,{w-5},{h-5},1,0xAAAAAAAA,0 # Create default aspect. -rectangle[-3] 0,0,100%,100%,1,0xFFFFFFFF,0 -line[-3] 1,{h-2},{w-2},{h-2},1,150 -line[-3] {w-2},{h-2},{w-2},1,1,150 -line[-3] 0,0,{w-2},0,1,255 -line[-3] 0,0,0,{h-2},1,255 # Create coordinates image. -i[0] 100%,100% -=[0] 1,0,0 -a c -endl -done # Render alert box graphics. --l -channels 0,3 -sh 1,100% --[50%--1] 200 -rm[50%--1] -frame 8,8,0 -if {@#<6} -a[^-1] x -else -append_tiles[^-1] , -endif 0 -text[-1] "$2",0,0,14,1,0,-200,-200,-200 -r[-1] {w+16},{h+8},1,4,0 -a[-2,-1] x,0.5 -rv -a y,0.5 -sh 1,100% -+[-1] 200 -rm[-1] -rectangle 0,0,100%,100%,1,0xFFFFFFFF,0 -line 0,0,{w-2},0,1,0,255,255,255 -line 0,0,0,{h-2},1,0,255,255,255 -endl -rm[-2] --channels[-1] 0 # Retrieve (x,y) coordinates of the buttons and fill active area. (0,{w-1}) (0;@{-2,h-1}) -r[-2,-1] [-3],3 -a[-2,-1] c -round[-1] -rv[-2,-1] -*[-2,-1] -discard[-1] 0 -r[-1] {h/2},2,1,1,-1 -channels[-2] 1,3 -rv[-2,-1] 100%,100% -repeat @{-3,w} x0=@{-3,($>,0)} y0=@{-3,($>,1)} -rectangle[-1] $x0,$y0,{$x0+@{0,w}-1},{$y0+@{0,h}-1},1,{1+$>} -done -a[-2,-1] c # Enter event loop. -repeat 9 -if {!@{!$>}} disp=$> -break -endif -done # Find available display window. -if {!narg($disp)} -error[0--4] "Cannot open display window for alert box." -endif selected={if($#==3,0,-1)} clicked=-1 -do # Render current view. --channels[-1] 0,2 -if {$clicked>=0} x0=@{-3,($clicked,0)} y0=@{-3,($clicked,1)} --sh[$clicked] 7,9 -j[-2] [-1],$x0,$y0 -rm[-1] -elif {$selected>=0} x0=@{-3,($selected,0)} y0=@{-3,($selected,1)} --sh[$selected] 4,6 -j[-2] [-1],$x0,$y0 -rm[-1] -endif -w$disp[-1] 100%,100%,0,0,"$1" -rm[-1] -wait # Handle user interactions. xm=@{!$disp,x} ym=@{!$disp,y} bm={@{!$disp,b}&1} val={i($xm,$ym,0,3)} -if {$bm" && "$val} clicked={$val-1} -elif {$bm" && "!$val" && "$clicked>=0} selected=$clicked clicked=-1 -elif {!$bm" && "$clicked>=0" && "$clicked==$val-1} -break -endif -if @{!$disp,ARROWRIGHT} selected={($selected+1)%@{-2,w}} -wait -1 -elif @{!$disp,ARROWLEFT} selected={($selected-1)%@{-2,w}+($selected==-1)} -wait -1 -elif {$selected>=0" && "@{!$disp,ENTER}} clicked=$selected -break -endif -while {@{!$disp}" && "!@{!$disp,ESC}} # Return result (indice of clicked button or '-1'). -w$disp 0 -rm -u $clicked -endl -v + #@gmic arg : n,_arg1,...,_argN #@gmic : Return the n-th argument of the specified argument list. #@gmic : 'n' can be an expression. arg : -v - $=arg -u ${arg{1+($1)}} -v + #@gmic at : _x,_y,_z #@gmic : Return a specified vector-valued point (x,y,z) from the latest of the selected images. at : -skip ${1=0},${2=0},${3=0} -v - --z[-1] ${1-3},${1-3} -u @-1 -rm[-1] -v + #@gmic autocrop_coords : value1,value2,... | auto #@gmic : Return coordinates (x0,y0,z0,x1,y1,z1) of the autocrop that could be performed on the latest of the selected images. #@gmic : Default value: 'auto' autocrop_coords : -skip ${1=auto} -v - is_auto={$1'=='auto} w={w} h={h} d={d} value={i(w-1,h-1,d-1)} --=[-1] {1+$value},100%,100%,100% -_autocrop$is_auto[-1] ${1--1} -=[-1] $value,100%,100%,100% x0={$w-w} y0={$h-h} z0={$d-d} -rm[-1] --_autocrop$is_auto[-1] ${1--1} x1={$x0+w-1} y1={$y0+h-1} z1={$z0+d-1} -rm[-1] -u $x0,$y0,$z0,$x1,$y1,$z1 -v + _autocrop0 : -autocrop $* _autocrop1 : -skip $* -autocrop #@gmic average_color #@gmic : Return the average color of the latest of the selected images. average_color : -v - res="" -repeat {s-1} -sh[-1] {1+$>},{1+$>} res=$res,{ia} -rm[-1] -done -sh[-1] 0,0 -u {ia}$res -rm[-1] -v + #@gmic basename : file_path,_variable_name_for_folder #@gmic : Return the basename of a file path, and opt. its folder location. #@gmic : When specified 'variable_name_for_folder' must starts by an underscore #@gmic : (global variable accessible from calling function). basename : -skip ${2=unused} -v - -l[] ({"'$1'"}) -replace 92,47 -s +,47 -if {i==47} -a y $2=@{-1,t} -u "" -elif {@#==1} -u @{-1,t} $2="" -else -a[^-1] y -u @{-1,t} $2=@{-2,t} -endif -rm -endl -v + #@gmic bin : binary_int1,... #@gmic : Print specified binary integers into their octal, decimal, hexadecimal and string representations. bin : -v - dec=@{-bin2dec\ ${^0}} -v + -e[^-1] "Convert binary integer"@{-arg\ 1+($#>1),"",s}" '${^0}' to octal '"@{-dec2oct\ $dec}"', decimal '"$dec"', hexadecimal '"@{-dec2hex\ $dec}"' and string '"@{-dec2str\ $dec}"'." #@gmic bin2dec : binary_int1,... #@gmic : Convert specified binary integers into their decimal representations. bin2dec : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _bin2dec : ({'@{-struncase\ $1}'}) is_negative=0 -if {@{-1,0}==45} -z[-1] 1,100% is_negative=1 -endif -f[-1] "if(i>=48 && i<=49,(i-48)*2^(w-1-x),nan)" -u {if($is_negative,-1,1)*@{-1,+}} -rm[-1] # compress_gmic # Compress .gmic custom command files for the 'gmic' command line tool, # by removing empty lines, and useless comments (non starting with '#@gmic'). compress_gmic : -e[] "" -v - head_std={'"#@gmic"'} -s -,10 N=@# -repeat @# -if {!($>%100)} -v + -e[] "\r Process : "{round($>/$N*100)}% -v - -endif -if {i=={'#'}} head=@{-1,0-{min(5,h-1)}} -if {{$head'!='$head_std}" || "(i(0,6)!={'" "'}" && "i(0,6)!={':'})} -rm[-1] -continue -endif -else -l[-1] -split +,32,35 -if {@#>2} -k[0] -endif -a y -endl -autocrop[-1] 32 -if {!w} -rm[-1] -continue -endif -endif -mv[-1] 0 -done -i[1--2] (10) -a y -v + -e[] "\r Process : 100%" # compress_gmic_gimp # Compress .gmic custom command files for the GIMP plug-in, # by removing empty lines, and useless comments (non starting with '#@gimp'). compress_gmic_gimp : -e[] "" -v - head_std={'"#@gimp"'} -s -,10 N=@# -repeat @# -if {!($>%100)} -v + -e[] "\r Process : "{round($>/$N*100)}% -v - -endif -if {i=={'#'}} head=@{-1,0-{min(5,h-1)}} -if {$head'!='$head_std} -rm[-1] -continue -endif -else -l[-1] -split +,32,35 -if {@#>2} -k[0] -endif -a y -endl -autocrop[-1] 32 -if {!w} -rm[-1] -continue -endif -endif -mv[-1] 0 -done -i[1--2] (10) -a y -v + -e[] "\r Process : 100%" #@gmic dec : decimal_int1,... #@gmic : Print specified decimal integers into their binary, octal, hexadecimal and string representations. dec : -e[^-1] "Convert decimal integer"@{-arg\ 1+($#>1),"",s}" '${^0}' to binary '"@{-dec2bin\ ${^0}}"', octal '"@{-dec2oct\ ${^0}}"', hexadecimal '"@{-dec2hex\ ${^0}}"' and string '"@{-dec2str\ ${^0}}"'." #@gmic dec2str : decimal_int1,... #@gmic : Convert specifial decimal integers into its string representation. dec2str : -v - -u {`${^0}`} -v + #@gmic dec2bin : decimal_int1,... #@gmic : Convert specified decimal integers into their binary representations. dec2bin : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _dec2bin : -check isint($1) res="" r={abs($1)} -do res={$r%2}$res r={int($r/2)} -while $r -u @{-arg\ 1+($1>=0),-,""}$res #@gmic dec2hex : decimal_int1,... #@gmic : Convert specified decimal integers into their hexadecimal representations. dec2hex : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _dec2hex : -check isint($1) res="" r={abs($1)} -do res=@{-_dec2hex_{$r%16}}$res r={int($r/16)} -while $r -u @{-arg\ 1+($1>=0),-,""}$res _dec2hex_0 : -u 0 _dec2hex_1 : -u 1 _dec2hex_2 : -u 2 _dec2hex_3 : -u 3 _dec2hex_4 : -u 4 _dec2hex_5 : -u 5 _dec2hex_6 : -u 6 _dec2hex_7 : -u 7 _dec2hex_8 : -u 8 _dec2hex_9 : -u 9 _dec2hex_10 : -u a _dec2hex_11 : -u b _dec2hex_12 : -u c _dec2hex_13 : -u d _dec2hex_14 : -u e _dec2hex_15 : -u f #@gmic dec2oct : decimal_int1,... #@gmic : Convert specified decimal integers into their octal representations. dec2oct : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _dec2oct : -check isint($1) res="" r={abs($1)} -do res={$r%8}$res r={int($r/8)} -while $r -u @{-arg\ 1+($1>=0),-,""}$res #@gmic fact : value #@gmic : Return the factorial of the specified value. fact : -check isint($1) -v - res=1 -repeat $1 res={$res*($>+1)} -done -u $res -v + #@gmic file_mv : filename_src,filename_dest #@gmic : Rename or move a file from a location $1 to another location $2. file_mv : -e[^-1] "Move file '$1' to location '$2'." -v - -if @{-is_windows} -x "move "$1" "$2 -else -x "mv "$1" "$2 -endif -v + #@gmic file_rand #@gmic : Return a random filename for storing temporary data. file_rand : -v - -do filename=@{-path_tmp}@{-file_slash}gmic@%{round(?(0,9))}{round(?(0,9))}{round(?(0,9))}{round(?(0,9))}{round(?(0,9))}{round(?(0,9))} -while $filename -u $filename -v + #@gmic file_rm : filename #@gmic : Delete a file. file_rm : -e[^-1] "Remove file '$1'." -v - -if @{-is_windows} 1 -nm[-1] "$1" dir=@{-1,f} base=@{-1,b} ext=@{-1,x} -rm[-1] com="" -if {narg($dir)} com="cd \""$dir"\\\" && " -endif -if {narg($ext)} com=${com}"del \""$base.$ext"\"" -else com=${com}"del \""$base"\"" -endif -x $com -else -x "rm -f \"$1\"" -endif -v + #@gmic file_slash #@gmic : Return '/' or '\' as a path separator for filenames. file_slash : -v - -if @{-is_windows} -u "\\" -else -u "/" -endif -v + #@gmic filename : filename,_number1,_number2,...,_numberN #@gmic : Return a filename numbered with specified indices. filename : -skip "${1=default}" -v - -if {$#==1} -u "$1" -else (${2--1}) -name[-1] "$1" -u @{-1,f}@{-1,b} -repeat {w} -u @{}_{int(i/100000)%10}{int(i/10000)%10}{int(i/1000)%10}{int(i/100)%10}{int(i/10)%10}{i%10} -shift[-1] -1 -done -if {narg({'@{-1,x}'})} -u @{}.@{-1,x} -endif -rm[-1] -endif -v + #@gmic fitratio_wh : min_width,min_height,ratio_wh #@gmic : Return a 2d size 'width,height' which is bigger than 'min_width,min_height' and has the specified w/h ratio. fitratio_wh : -v - -if {$3*$2>$1} -u {int($3*$2)},$2 -else -u $1,{int($1/$3)} -endif -v + #@gmic fitscreen : width,height,_depth #@gmic : Return the 'ideal' size WxH for a window intended to display an image of specified size on screen. fitscreen : -check "$1>0 && $2>0 && ${3=1}>0" -v - w={if($3>1,$1+$3,$1)} h={if($3>1,$2+$3,$2)} Mw={int(0.85*@{!,u})} Mh={int(0.85*@{!,v})} -if {$w<128} h={int($h*128/$w)} w=128 -endif -if {$h<128} w={int($w*128/$h)} h=128 -endif -if {$w>$Mw} h={max(1,int($h*$Mw/$w))} w=$Mw -endif -if {$h>$Mh} w={max(1,int($w*$Mh/$h))} h=$Mw -endif w={max($w,128)} h={max($h,128)} -u $w,$h -v + #@gmic gcd : a,b #@gmic : Return the GCD (greatest common divisor) between a and b. gcd : -check "isint($1) && isint($2) && $1*$2!=0" -v - -_gcd {max(abs($1),abs($2))},{min(abs($1),abs($2))} -v + _gcd : r={$1%$2} -if $r -u @{-_gcd\ $2,$r} -else -u $2 -endif #@gmic hex : hexadecimal_int1,... #@gmic : Print specified hexadecimal integers into their binary, octal, decimal and string representations. hex : -v - dec=@{-hex2dec\ ${^0}} -v + -e[^-1] "Convert hexadecimal integer"@{-arg\ 1+($#>1),s,""}" '${^0}' to binary '"@{-dec2bin\ $dec}"', octal '"@{-dec2oct\ $dec}"', decimal '"$dec"' and string '"@{-dec2str\ $dec}"'." #@gmic hex2dec : hexadecimal_int1,... #@gmic : Convert specified hexadecimal integers into their decimal representations. hex2dec : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _hex2dec : ({'@{-struncase\ $1}'}) is_negative=0 -if {@{-1,0}==45} -z[-1] 1,100% is_negative=1 -endif -f[-1] "if(i>=48 && i<=57,i-48,if(i>=97 && i<=102,i-87,nan))*16^(w-1-x)" -u {if($is_negative,-1,1)*@{-1,+}} -rm[-1] #@gmic hex2str : hexadecimal_string #@gmic : Convert specified hexadecimal string into a string. hex2str : -skip ${1=""} -v - -if {!narg("$1")} -return -endif ({'$*'}) -if {w<2} -rm[-1] -u "" -return -endif -r[-1] 2,{w/2},1,1,-1 -f[-1] 'if(i>=97,i-87,i-48)' -f[-1] 'if(x==0,i*16+i(x+1),0)' -columns[-1] 0 -u @{-1,t} -rm[-1] -v + #@gmic img2str #@gmic : Return the content of the latest of the selected image as a special G'MIC input string. img2str : -v - -u "(" -repeat {s} c=$> -repeat {d} z=$> -repeat {h} y=$> --crop[-1] 0,$y,$z,$c,100%,$y,$z,$c -u @{}@-1 -rm[-1] -if {$y!=h-1} -u @{}; -endif -e @{} -done -if {$z!=d-1} -u @{}/ -endif -done -if {$c!=s-1} -u @{}^ -endif -done -u @{}")" -v + #@gmic img2text : _line_separator #@gmic : Return text contained in a multi-line image. #@gmic : Default value: 'line_separator= '. img2text : -skip "${1= }" -v - --l -s y -s -,0 -y x -if {@#>1} -i[1--2] ({'"$1"'}) -endif -a x -u @{0,t} -rm -endl -v + #@gmic img82hex #@gmic : Convert selected 8bits-valued vectors into their hexadecimal representations (ascii-encoded). img82hex : -e[^-1] "Convert 8bits-valued vector$? into hexadecimal representations (ascii-encoded)." -v - -mod 256 -y y -repeat @# --f[$>] 'v=int(i)&15;v+if(v<10,48,87)' # lower digit. -f[$>] 'v=int(i)>>4;v+if(v<10,48,87)' # higher digit. -a[$>,-1] x -done -v + #@gmic hex2img8 #@gmic : Convert selected hexadecimal representations (ascii-encoded) into 8bits-valued vectors. hex2img8 : -e[^-1] "Convert hexadecimal representation$? (ascii-encoded) into 8bits-valued vectors." -v - -repeat @# -s[-1] x,2 -f[-2,-1] 'if(i>=97,i-87,i-48)' -*[-2] 16 -+[-2,-1] -mv[-1] 0 -done -v + #@gmic is_3d #@gmic : Return 1 if all of the selected image are 3d objects, 0 otherwise. is_3d : -v - res=0 -if @# res=1 -repeat @# -l[$>] -+3d 0 -onfail res=0 -endl -done -endif -u $res -v + #@gmic is_percent : string #@gmic : Return 1 if specified string ends with a '%', 0 otherwise. is_percent : -v - -u {arg(-1,{'"$1"'})==37} -v + #@gmic is_windows #@gmic : Return 1 if current computer OS is Windows, 0 otherwise. is_windows : -v - -u {narg($OS)==1" && "narg($WINDIR)==1} -v + #@gmic mad #@gmic : Return the MAD (Maximum Absolute Deviation) of the last selected image. #@gmic : The MAD is defined as MAD = med_i|x_i-med_j(x_j)| mad : -v - ---[-1] @{-med[-1]} -abs[-1] -med[-1] -u {1.4826*@{}} -rm[-1] -v + #@gmic max_w #@gmic : Return the maximal width between selected images. max_w : -v - -u {arg(1,@{-_max_whds\ 4})} -v + #@gmic max_h #@gmic : Return the maximal height between selected images. max_h : -v - -u {arg(2,@{-_max_whds\ 4})} -v + #@gmic max_d #@gmic : Return the maximal depth between selected images. max_d : -v - -u {arg(3,@{-_max_whds\ 4})} -v + #@gmic max_s #@gmic : Return the maximal spectrum between selected images. max_s : -v - -u {arg(4,@{-_max_whds\ 4})} -v + #@gmic max_wh #@gmic : Return the maximal wxh size of selected images. max_wh : -v - -_max_whds 2 -v + #@gmic max_whd #@gmic : Return the maximal wxhxd size of selected images. max_whd : -v - -_max_whds 3 -v + #@gmic max_whds #@gmic : Return the maximal wxhxdxs size of selected images. max_whds : -v - -_max_whds 4 -v + _max_whds : w=0 h=0 d=0 s=0 -repeat @# w={max($w,w)} h={max($h,h)} d={max($d,d)} s={max($s,s)} -mv[-1] 0 -done -if {$1>=4} -u $w,$h,$d,$s -elif {$1==3} -u $w,$h,$d -elif {$1==2} -u $w,$h -else -u $w -endif #@gmic med #@gmic : Return the median value of the last selected image. med : -v - --sort[-1] -u @{-1,{w*h*d*s/2}} -rm[-1] -v + #@gmic min_w #@gmic : Return the minimal width between selected images. min_w : -v - -u {arg(1,@{-_min_whds\ 4})} -v + #@gmic min_h #@gmic : Return the minimal height between selected images. min_h : -v - -u {arg(2,@{-_min_whds\ 4})} -v + #@gmic min_d #@gmic : Return the minimal depth between selected images. min_d : -v - -u {arg(3,@{-_min_whds\ 4})} -v + #@gmic min_s #@gmic : Return the minimal s size of selected images. min_s : -v - -_min_s @{-_min_whds\ 4} -v + _min_s : -u $4 #@gmic min_wh #@gmic : Return the minimal wxh size of selected images. min_wh : -v - -_min_whds 2 -v + #@gmic min_whd #@gmic : Return the minimal wxhxd size of selected images. min_whd : -v - -_min_whds 3 -v + #@gmic min_whds #@gmic : Return the minimal wxhxdxs size of selected images. min_whds : -v - -_min_whds 4 -v + _min_whds : w={w} h={h} d={d} s={s} -repeat @# w={min($w,w)} h={min($h,h)} d={min($d,d)} s={min($s,s)} -mv[-1] 0 -done -if {$1>=4} -u $w,$h,$d,$s -elif {$1==3} -u $w,$h,$d -elif {$1==2} -u $w,$h -else -u $w -endif #@gmic oct : octal_int1,... #@gmic : Print specified octal integers into their binary, decimal, hexadecimal and string representations. oct : -v - dec=@{-oct2dec\ ${^0}} -v + -e[^-1] "Convert octal integer"@{-arg\ 1+($#>1),"",s}" '${^0}' to binary '"@{-dec2bin\ $dec}"', decimal '"$dec"', hexadecimal '"@{-dec2hex\ $dec}"' and string '"@{-dec2str\ $dec}"'." #@gmic oct2dec : octal_int1,... #@gmic : Convert specified octal integers into their decimal representations. oct2dec : -v - res=@{-_$0\ $1} -repeat {$#-1} res=$res,@{-_$0\ @{-arg\ $>+2,${^0}}} -done -u $res -v + _oct2dec : ({'@{-struncase\ $1}'}) is_negative=0 -if {@{-1,0}==45} -z[-1] 1,100% is_negative=1 -endif -f[-1] "if(i>=48 && i<=55,(i-48)*8^(w-1-x),nan)" -u {if($is_negative,-1,1)*@{-1,+}} -rm[-1] #@gmic padint : number,_size>0 #@gmic : Return a integer with 'size' digits (eventually left-padded with '0'). padint : -skip ${2=4} -v - -u "" -repeat $2 -u @{}{int($1/10^$<)%10} -done -v + #@gmic path_tmp #@gmic : Return a path to store temporary files (whose value is OS-dependent). path_tmp : -v - -u "" -if {narg({'${TMP}'})} -u ${TMP} -elif {narg({'${TEMP}'})} -u ${TEMP} -elif {narg({'${TMPDIR}'})} -u ${TMPDIR} -elif {narg({'${HOME}'})} -u "/tmp" -else -u "" -endif -v + #@gmic path_user #@gmic : Return a path to store persistent configuration files for one user (whose value is OS-dependent). path_user : -v - -u "" -if {narg({'${APPDATA}'})} -u ${APPDATA} -elif {narg({'${HOME}'})} -u ${HOME} -else -u "" -endif -v + #@gmic quote : string #@gmic : Return a "quotified" version of the string. quote : -v - -u "$*" -v + #@gmic region_feature : region_label,feature,_default_value #@gmic : Return feature for a specified region. #@gmic : This function requires two images [img,region_label] in the selection. #@gmic : Argument 'feature' is a string that corresponds to the way the feature would #@gmic : be asked for the entire image. #@gmic : Default value: 'default_value=0'. #@gmic : $ image.jpg --luminance -quantize[-1] 2 -label[-1] 0,1 mean=@{"-region_feature[0,1] 10,\"{ia}\""} sum=@{"-region_feature[0,1] 10,\"@{-1,+}\""} region_feature : -skip "${3=0}" -v - s=@{-2,s} --channels[-1] 0 -==[-1] $1 -^[-1] -1 --[-1] 1 -r[-1] [-3] -+[-1] [-3] -l[-1] -s[-1] -,inf -a y # Keep only pixel values inside the selected region. -if @# -r[-1] 1,{h/$s},1,$s,-1 -u $2 -rm[-1] # If region is not empty, compute the feature. -else -u $3 # Otherwise set a default return value. -endif -endl -v + #@gmic reset #@gmic : Reset global parameters of the interpreter environment. reset : -e[^-1] "Reset global parameters of the interpreter environment." -v - -db3d 1 -b3d -m3d 4 -md3d -1 -f3d 700 -l3d -sl3d 0.15 -ss3d 0.8 -v + #@gmic RGB #@gmic : Return a random int-valued RGB color. RGB : -v - -u {round(?(255))},{round(?(255))},{round(?(255))} -v + #@gmic RGBA #@gmic : Return a random int-valued RGBA color. RGBA : -v - -u {round(?(255))},{round(?(255))},{round(?(255))},{round(?(255))} -v + #@gmic str : string #@gmic : Print specified string into its binary, octal, decimal and hexadecimal representations. str : -skip $1 -v - dec={'$*'} -v + -e[^-1] "Convert string '$*' to binary '"@{-dec2bin\ $dec}"', octal '"@{-dec2oct\ $dec}"', decimal '"$dec"' and hexadecimal '"@{-dec2hex\ $dec}"'." #@gmic str2hex : string #@gmic : Convert specified string into a sequence of hexadecimal values. str2hex : -v - ({'"$*"'}) -rows[-1] 0,1 -f[-1] 'if(y==0,int(i/16),i(x,y-1)%16)' -f[-1] 'if(i<=9,48+i,87+i)' -transpose[-1] -u @{-1,t} -rm[-1] -v + #@gmic stresc : val1,...,valN #@gmic : Return escaped string from specified ascii codes. stresc : -v - ($*) -c[-1] 32,255 -y[-1] y [-1] -f[-2] 'if(i==32||i==34||i==36||i==44||i==64||i==92||i==123||i==125,92,-1)' -a[-2,-1] x -discard[-1] -1 -u @{-1,t} -rm[-1] -v + #@gmic strcat : string1,string2,... #@gmic : Return the concatenation of all strings passed as arguments. strcat : -v - $=s res="$1" -repeat {$#-1} res=$res${s{$>+2}} -done -u $res -v + #@gmic strcmp : string1,string2 #@gmic : Return 1 if the two strings are equal, 0 otherwise. strcmp : -v - (0,{'"$1"'}) ({w},{'"$2"'}) -=[-2] {w} --[-2,-1] -abs[-1] -u {!@{-1,+}} -rm[-1] -v + #@gmic strlen : string1 #@gmic : Return the length of specified string argument. strlen : -v - ({'"$1"'}) -u {w} -rm[-1] -v + #@gmic strreplace : string,search,replace #@gmic : Search and replace substrings in an input string. strreplace : -v - ls=@{-strlen\ "$2"} lr={@{-strlen\ "$3"}-1} -l[] ({'"$1"'}) -s +,{'"$2"'} -s y,-$ls -repeat @# -if {@{$>,t}'=='"$2"} -rows[$>] 0,$lr -f[$>] {'"$3"'} -endif -done -a y -u @{-1,t} -rm -endl -v + #@gmic struncase : string #@gmic : Return a lower-case version of the specified string. struncase : -v - ({'"$*"'}) -+[-1] 'if(i>=65&&i<=90,32,0)' -u @{-1,t} -rm[-1] -v + #@gmic strver #@gmic : Return the current version number of the G'MIC interpreter, as a string. strver : -v - ({'@.'}) -r[-1] 7 -f[-1] 'if(x%2,{'.'},i)' -u @{-1,t} -rm[-1] -v + #@gmic tic #@gmic : Initialize tic-toc timer. #@gmic : Use it in conjunction with '-toc'. tic : -e[^-1] "Initialize timer." -v - __tic=@| -v + #@gmic toc #@gmic : Display elapsed time of the tic-toc timer since the last call to '-tic'. #@gmic : Use it in conjunction with '-tic'. toc : -e[^-1] "Elapsed time : "{_@|-$__tic}" s". #@gmic variance_noise #@gmic : Return the estimated noise variance of the last selected image. variance_noise : -v - --laplacian[-1] -u {@{-mad[-1]}/sqrt(if(d==1,20,42))} -rm[-1] -v + #----------------------------- # #@gmic :: Others # #----------------------------- #@gmic gpt : _scorefile,_number_of_sessions>=0 #@gmic : Generate score board for the GPT championship (GREYC Poker Tour). #@gmic : $ -gpt , gpt : -skip "${1=https://tschumperle.users.greyc.fr/gpt.raw}" -skip ${2=0},${3=0} -e[^-1] "Generate score board for GPT-like championship (GREYC Poker Tour), from file '$1'." -v - # Load score file and generate score field. #------------------------------------------ -rm -i raw:$1,uchar -s[-1] -,10 -transpose # Split score file into lines. -repeat @# -if {i=={'#'}} -rm[-1] -else -mv[-1] 0 -endif -done # Remove comment lines. -repeat @# -l[$>] -s -,{'\ '} -if @# -if {@#!=4} -error[0--4] "Invalid score file (line "{$>+1}" defines "@#" items instead of 4)." -endif player$>_name=@{0,t} player$>_url=@{1,t} player$>_file=@{2,t} (@{3,t}) -rm[0-3] -endif -endl -done -+ 1 -a y,1 -- 1 -if {$2>0} -z[-1] {max(0,w-$2)},100% # Keep only last Nth sessions. -elif {$2<0} -z[-1] {w-1-((w-1)%-$2)},100% # Keep only sessions of the last Nth-session tournament. -endif # Remove non-players in 'alternate' score boards. #------------------------------------------------ -if $2 -s y -repeat @# -if {@{$<,M}<0} i=$< -repeat {@#-$i} player{$i+$>}_name=${player{$i+$>+1}_name} player{$i+$>}_url=${player{$i+$>+1}_url} player{$i+$>}_file=${player{$i+$>+1}_file} -done -rm[$<] -endif -done -a y -endif -nm[-1] scores # Set global variables. #----------------------- row_height={if($2,24,48)} # Compute session winners and losers # (must be done before rounding scores to integers!). #---------------------------------------------------- --l[scores] -s y -max -endl --==[scores,-1] -rm[-2] -nm[-1] winners --l[scores] -replace[-1] -1,1e8 -s y -min -endl --==[scores,-1] -rm[-2] -nm[-1] losers --l[winners] -s y -+ -endl -nm[-1] nb_winners --l[losers] -s y -+ -endl -nm[-1] nb_losers # Compute players ranks for each session. # (must be done before rounding scores to integers!). #---------------------------------------- --l[scores] -s x -r 2,100%,1,1,0 -f 'if(x,y,i)' -sort -,y -r 3,100%,1,1,0,0,1,0 -f 'if(x,i,y+1)' -f '>if(x,i,if(i(1,y)==i(1,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -mirror x -sort +,y -z 1,2 -f 'if(i(0,y)==-1,-1,i)' -z 1,1 -a x -endl -nm[-1] ranks # Round scores to nearest integer. #--------------------------------- -round[scores] # Compute number of players per session. #--------------------------------------- --l[scores] -s x -discard -1 -f h -rows 0 -a x -endl -nm[-1] nb_players # Compute min and max scores per session. #---------------------------------------- --l[scores] -s y -max -endl -nm[-1] max_scores --l[scores] -replace[-1] -1,1e8 -s y -min -endl -nm[-1] min_scores # Compute number of games per player. #------------------------------------- --l[scores] -ge 0 -s x -+ -endl -nm[-1] nb_games # Compute index of first games. #------------------------------- --l[scores] -neq -1 -s y -* 'w-x' -f xM -a y -z 0,0 -endl -nm[-1] first_game # Compute absences malus. #------------------------- --lt[scores] 0 --l[-1] -s x -+ -endl --[-1] [first_game] # nb_absences since first played game. -l[-2] -f 'if(i,i,-x)' -s y -label 0 -repeat @# n={@{$>,M}} -if $n -histogram[$>] $n,1,$n -else -f[$>] 0 -endif -done -r 1,1,1,1,2 -a y -- 1 -max 0 -round -endl -*[-2,-1] -round[-1] -nm[-1] abs_malus # Compute player scores and corresponding ranks. #------------------------------------------------ --l[scores] -f 'if(i==-1,0,i-100)' -s x -+ -endl -if $3 -abs[-1] -endif --[-1] [abs_malus] --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,'y+1' -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -nm[-1] rank --shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] score sum_score=@{score,+} # Compute player best scores and corresponding ranks. #---------------------------------------------------- --l[scores] -s x -max -- 100 -endl --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,'y+1' -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] best_score # Compute previous player scores and corresponding ranks. #-------------------------------------------------------- --l[scores] -columns 0,{w-2} -f 'if(i==-1,0,i-100)' -s x -+ -endl --[-1] [abs_malus] -if $3 -abs[-1] -endif --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,'y+1' -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] previous_score # Compute player chips. #---------------------- --l[scores] -f 'if(i==-1,0,i-100)' -s x -+ -endl -nm[-1] chips sum_chips=@{chips,+} -v + -e "Sum of chips : "$sum_chips -e "Sum of scores : "$sum_score -v - # Compute player ranking trends. #------------------------------- ---[previous_score,score] -columns[-1] 1 -nm[-1] trend # Compute player highest chips count. #------------------------------------ --l[scores] -s y -discard -1 -unroll x -- 100 -cumul -f iM -a y -z 0,0 -endl --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,'y+1' -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] highest_chips # Compute player lowest chips count. #------------------------------------ --l[scores] -s y -discard -1 -unroll x -- 100 -cumul -f im -a y -z 0,0 -endl --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,'y+1' -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] lowest_chips # Compute player performances and corresponding ranks. #----------------------------------------------------- ---[scores] [min_scores] [max_scores] --[-1] [min_scores] -/[-2,-1] -*[-1] 100 -l[-1] -f 'if(i<0,-1,i)' -s y -discard -1 -f 'if(ia<0,0,ia)' -rows 0 -a y -round 1 -endl --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,y+1 -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] performance # Compute player average scores and corresponding ranks. #-------------------------------------------------------- --l[scores] -s y -discard -1 -- 100 -r 1,1,1,1,2 -a y -endl --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,y+1 -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] average # Compute player coffee balances and corresponding ranks. #-------------------------------------------------------- --!=[scores] -1 # Coffee won. --*[losers,nb_players] -/[-1] [nb_losers] # Coffee paid. --[-2,-1] -l[-1] -s x -+ -endl -round[-1] -*[-1] 0.4 --f[-1] y -a[-2,-1] x -sort[-1] -,y 1,100%,1,1,y+1 -a[-2,-1] x -mirror[-1] x -f[-1] '>if(x,i,if(i(2,y)==i(2,y-1),i(0,y-1),i))' # Manage ax-aequo ranks. -shift[-1] -1,0,0,0,2 -sort[-1] +,y -columns[-1] 1,100% -nm[-1] coffee_balance # Compute arrow sprites for trends. #---------------------------------- -cone3d 1.5,2 -r3d[-1] 0,1,0,90 -box3d 4,1,0 -+3d[-1] 0,-0.5 -+3d[-2,-1] -r3d[-1] 0,1,0,180 -c3d[-1] -*3d[-1] 17 -col3d[-1] 1 128,128 -object3d[-1] [-2],50%,50%,0,1,2 -nm[-1] arrow_eq_mask --*[-1] 200 --*[-2] 200 --*[-3] 200 -a[-3--1] c -nm[-1] arrow_eq -r3d[-3] 0,0,1,35 128,128 -object3d[-1] [-4],50%,50%,0,1,2 -nm[-1] arrow_up_mask --*[-1] 64 --*[-2] 255 --*[-3] 64 -a[-3--1] c -nm[-1] arrow_up -r3d[-5] 0,0,1,-70 128,128 -object3d[-1] [-6],50%,50%,0,1,2 -nm[-1] arrow_down_mask --*[-1] 255 --*[-2] 64 --*[-3] 32 -a[-3--1] c -nm[-1] arrow_down -dilate[arrow_eq_mask,arrow_up_mask,arrow_down_mask] 3 -rm[-7] # Render score board. #-------------------- board=@# # Row of labels. i=@# -_gpt_field "Rank",48,$row_height,16,1,6 -_gpt_field " ",$row_height,$row_height,16,1,6 -_gpt_field "Name",150,$row_height,16,1,6 -_gpt_field "Score",80,$row_height,16,1,6 -_gpt_field "Chips\n[malus]",80,$row_height,24,1,6 -_gpt_field "Played",48,$row_height,12,1,6 -_gpt_field "Won/\nLost",48,$row_height,24,1,6 -if $2 -_gpt_field "Trd",$row_height,$row_height,12,1,6 -else -_gpt_field "Trend",$row_height,$row_height,12,1,6 -endif -if $2 -_gpt_field "Stats",{2*$row_height},$row_height,12,1,6 -else -_gpt_field "Statistics",{4*$row_height+2},$row_height,12,1,6 -endif -_gpt_field "Last\n(rank)",64,$row_height,24,1,6 -_gpt_field "Best\n(rank)",64,$row_height,24,1,6 -_gpt_field "Highest\nchips (rank)",64,$row_height,24,1,6 -_gpt_field "Lowest\nchips (rank)",64,$row_height,24,1,6 -_gpt_field "Performance\n (rank)",64,$row_height,24,1,6 -_gpt_field "Average\n[std] (rank)",100,$row_height,24,1,6 -_gpt_field "Coffee balance\n (rank)",80,$row_height,24,1,6 -a[$i--1] x # Retrieve maximum ranks for every field. max_players=@{nb_players,M} --z[rank] 0,0 max_rank={iM} -rm[-1] --z[performance] 1,1 max_performance_rank={iM-1} -rm[-1] --z[best_score] 1,1 max_best_score_rank={iM-1} -rm[-1] --z[average] 1,1 max_average_rank={iM-1} -rm[-1] --z[coffee_balance] 1,1 max_coffee_balance_rank={iM} -rm[-1] # Loop on each player row. -repeat @{rank,h} p=@{rank,(1,$>)} n=@{nb_games,(0,$p)} c={if(@{nb_games,(0,$p)}==0,0,v=@{score,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_rank-1,4,if(v==$max_rank,5,0))))} i=@# # Rank. t_rank=@{score,(1,$p)} -_gpt_field $t_rank,48,$row_height,16,1,$c # Avatar. -if @{-path_tmp}/${player${p}_file} @{-path_tmp}/${player${p}_file} -else ${player${p}_url}${player${p}_file} -o[-1] @{-path_tmp}/${player${p}_file} -endif -to_rgb[-1] --[-1] 255 -rr2d[-1] {$row_height-2},{$row_height-2},2,2 -+[-1] 255 -frame[-1] 1,1,0 # Name. t_name=@{-_gpt_remove_underscore\ ${player${p}_name}} 0 -t[-1] $t_name,0,0,32,1,255,255,255 -r[-1] 100%,100%,1,4 -sh[-1] 0,2 -*[-1] '(2-c)*0.9*y/h' -rm[-1] -drop_shadow[-1] 1,1,1 -_gpt_field " ",225,{1.5*$row_height},20,1,$c -mv[-1] -2 -blend[-2,-1] alpha -r2dy[-1] $row_height -z[-1] 1,1,{w-2},{h-2} -frame[-1] 1,1,0 # Score. t_score=@{score,(0,$p)} -if {$t_score>0} t_score=+$t_score -endif -_gpt_field $t_score,80,$row_height,20,$n,$c # Chips [malus] t_chips=@{chips,(0,$p)} t_malus={-@{abs_malus,(0,$p)}} -if {$t_chips>0} t_chips=+$t_chips -endif -_gpt_field $t_chips\ [$t_malus],80,$row_height,16,$n,$c # Played t_nb_games=@{nb_games,(0,$p)} -_gpt_field $t_nb_games,48,$row_height,16,$n,$c # Won/lost. --rows[winners] $p t_won=@{-1,+} --rows[losers] $p t_lost=@{-1,+} -rm[-2,-1] -_gpt_field $t_won/$t_lost,48,$row_height,16,$n,$c # Trend. -if {!$n} {$row_height-2},{$row_height-2},1,3,255 -frame[-1] 1,1,0 -else t_trend={-@{trend,(0,$p)}} -_gpt_field " ",128,128,16,$n,$c -if {$t_trend>0} t_trend=+$t_trend -j[-1] [arrow_up],0,0,0,0,1,[arrow_up_mask] -elif {$t_trend<0} -j[-1] [arrow_down],0,0,0,0,1,[arrow_down_mask] -else -j[-1] [arrow_eq],0,0,0,0,1,[arrow_eq_mask] -endif -r2dy[-1] $row_height -if $2 -z[-1] 1,1,{w-2},{h-2} -frame[-1] 1,1,0 -else -if {$t_trend>0} -_gpt_field "\n\n "$t_trend,$row_height,$row_height,48,$n,0 -elif {$t_trend<0} -_gpt_field "\n\n"$t_trend" ",$row_height,$row_height,48,$n,0 -else -_gpt_field " ",$row_height,$row_height,48,$n,0 -endif -/[-1] 255 -*[-2,-1] -endif -endif # Statistics. -if {!$n} {if($2,2*$row_height,4*$row_height+2)},{$row_height},1,3,255 -else {3*$row_height},{1.5*$row_height},1,3,255 # Histogram of session ranks. --rows[ranks] $p,$p -histogram[-1] $max_players,1,$max_players -graph[-2] [-1],3,0,0,0,0.2,0,64,255 -rm[-1] # Plot of results. --rows[scores] $p -discard[-1] -1 --[-1] 100 -cumul[-1] sa={ia} sm={im} sM={iM} -grid[-2] {max(20,100/max(1,h-1))}%,10,0,0,0.6,0xCCCCCCCC,0 (0,0) -graph[-3] [-1],1,0,{$sM+10},{$sm-10},1,0 -rm[-1] ($sa,$sa) -graph[-3] [-1],1,0,{$sM+10},{$sm-10},1,0x55555555,0,150,0 -rm[-1] -graph[-2] [-1],2,0,{$sM+10},{$sm-10},1,255,32,48 -rm[-1] -r2dy[-1] {$row_height} # Pie-chart of sessions ranks. -if {!$2} 1,$row_height,1,3,0 # Separator --rows[ranks] $p -histogram[-1] $max_players,1,$max_players -y[-1] y ip=@# (1,10,255,242,153) (2,10,222,222,222) (3,10,232,209,196) ({$max_players-1},10,255,204,204) ($max_players,10,255,153,153) -if {$max_players==1} -rm[-4--1] -elif {$max_players==2} -rm[-3--1] -elif {$max_players==3} -rm[-2--1] -elif {$max_players==4} -rm[-2] -elif {$max_players>5} -a[-3,-2] y -r[-2] 100%,{$max_players-3},1,1,3 -round[-2] -endif -a[$ip--1] y -j[-1] [-2],1,0 -rm[-2] 256,256,1,3,255 -piechart[-1] 57,0,0,0,@-2,"abs.",{@{scores,w}-@{nb_games,(0,$p)}},255,255,255 -frame[-1] 10,10,255 1,$row_height,1,3,0 256,256,1,3,255 -piechart[-1] 57,0,0,0,@-4 -frame[-1] 10,10,255 -rm[-4] -r2dy[-3,-1] $row_height -a[-5--1] x -endif -endif -z[-1] 1,1,{w-2},{h-2} -frame[-1] 1,1,0 # Last score. t_last_score=@{scores,(100%,$p)} -if {$t_last_score==-1} t_last=abs. -else t_last_score={$t_last_score-100} -if {$t_last_score>0} t_last_score=+$t_last_score -endif t_last_rank=@{ranks,(100%,$p)} t_last=$t_last_score\ ($t_last_rank) -endif c={v=@{ranks,(100%,$p)};if(v>=1&&v<=3,v,if(v==@{nb_players,-1}-1,4,if(v==@{nb_players,-1},5,0)))} -_gpt_field $t_last,64,$row_height,16,$n,$c # Best score. t_best_score={v=@{best_score,(0,$p)};if(v==-1,-1,v)} t_best_rank=@{best_score,(1,$p)} -if {$t_best_score>0} t_best_score=+$t_best_score -elif {$t_best_score==-1} t_best_score=abs. -endif c={v=@{best_score,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_best_score_rank-1,4,if(v==$max_best_score_rank,5,0)))} -_gpt_field $t_best_score\ ($t_best_rank),64,$row_height,16,$n,$c # Highest chips. t_highest_chips={v=@{highest_chips,(0,$p)};if(v==-1,-1,v)} t_highest_rank=@{highest_chips,(1,$p)} -if {$t_highest_chips>0} t_highest_chips=+$t_highest_chips -elif {$t_highest_chips==-1} t_highest_chips=abs. -endif c={v=@{highest_chips,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_best_score_rank-1,4,if(v==$max_best_score_rank,5,0)))} -_gpt_field $t_highest_chips\ ($t_highest_rank),64,$row_height,16,$n,$c # Lowest chips. t_lowest_chips={v=@{lowest_chips,(0,$p)};if(v==-1,-1,v)} t_lowest_rank=@{lowest_chips,(1,$p)} -if {$t_lowest_chips>0} t_lowest_chips=+$t_lowest_chips -elif {$t_lowest_chips==-1} t_lowest_chips=abs. -endif c={v=@{lowest_chips,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_performance_rank,4,if(v==$max_performance_rank+1,5,0)))} -_gpt_field $t_lowest_chips\ ($t_lowest_rank),64,$row_height,16,$n,$c # Performance. t_performance=@{performance,(0,$p)} t_performance_rank=@{performance,(1,$p)} c={v=@{performance,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_performance_rank-1,4,if(v==$max_performance_rank,5,0)))} -_gpt_field $t_performance%\ ($t_performance_rank),64,$row_height,16,$n,$c # Average [std]. --rows[scores] $p -discard[-1] -1 t_average={if(i==-1,0,round(ia-100))} -if {$t_average>0} t_average=+$t_average -endif t_average_std={if(i==-1,0,round(sqrt(iv)))} -rm[-1] t_average_rank=@{average,(1,$p)} c={v=@{average,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_average_rank-1,4,if(v==$max_average_rank,5,0)))} -_gpt_field $t_average\ [$t_average_std]\ ($t_average_rank),100,$row_height,16,$n,$c # Coffee balance. t_coffee_balance={_@{coffee_balance,(0,$p)}} -if {$t_coffee_balance>0} t_coffee_balance=+$t_coffee_balance -endif t_coffee_rank=@{coffee_balance,(1,$p)} c={v=@{coffee_balance,(1,$p)};if(v>=1&&v<=3,v,if(v==$max_coffee_balance_rank-1,4,if(v==$max_coffee_balance_rank,5,0)))} -_gpt_field $t_coffee_balance\$\ ($t_coffee_rank),80,$row_height,16,$n,$c # Append all fields into a single row. -if {!$n} -f[$i,{$i+2}--1] "i*(0.7+0.3*(((x+y)%8)!=0))" -endif # Add hatches for absent player. -a[$i--1] x -done # Title. avg_nb_players={round(@{nb_players,a},0.5)} -if {$2==0} t_title="** GREYC Poker Tour ** Session \#"@{scores,w}" (avg. \#player = "$avg_nb_players")" -elif {$2>0} t_title="** GREYC Poker Tour ** Last "@{scores,w}" sessions (avg. \#player = "$avg_nb_players")" -else t_title="** GREYC Poker Tour ** Session \#"@{scores,w}"/"{-$2}" (avg. \#player = "$avg_nb_players")" -endif 0 -t[-1] $t_title,0,0,57,1,255 -r[-1] 100%,100%,1,4 -drop_shadow[-1] 5,5,2 -r2dy[-1] 24 -r[-1] {@{$board,w}-2},{1.5*$row_height-2},1,4,0,0,0.5,{if($2,0.9,0.6)} -i[-2] 1,3,1,3,32,0,64,32,64,128,64,200,256 -r[-2] [-1],[-1],1,3,3 -blend[-2,-1] alpha -if {$2>0} -shift[-1] 0,0,0,1,2 -elif {$2<0} -mirror[-1] c -endif -frame[-1] 1,1,0 -mv[-1] $board # Session winner(s). -if {!$2} --columns[scores] 100% --f[-1] y -a[-2,-1] x -sort[-1] -,y -f[-1] 'if(i(0,y)==i(0,0),i,-1)' -autocrop[-1] -1 -nm[-1] session_winners # Keep only winners. nb_session_winners={h} t_session_winners="" -repeat $nb_session_winners i=@{session_winners,(1,$>)} t_session_winners=${player${i}_name}"__"${t_session_winners} @{-path_tmp}/${player{@{session_winners,(1,$>)}}_file} --[-1] 255 -rr2d[-1] 56,56,2,2 -+[-1] 255 -frame[-1] 1,1,0 -done t_session_winners=@{-_gpt_remove_underscore\ $t_session_winners} 0 -t[-1] "Session winner"@{-if\ {$nb_session_winners==1}\ -u\ \"\"\ -else\ -u\ s\ -endif}" : "$t_session_winners,0,0,57,1,255 -r[-1] 100%,100%,1,4 -drop_shadow[-1] 5,5,2 -r2dy[-1] 24 -r[-1] {@{$board,w}-2},{1.5*$row_height-2},1,4,0,0,0.1,0.5 -i[-2] 1,2,1,3,0,128,128,255,64,128 -r[-2] [-1],[-1],1,3,3 -blend[-2,-1] alpha -if {$2>0} -shift[-1] 0,0,0,1,2 -elif {$2<0} -mirror[-1] c -endif -repeat $nb_session_winners -j[-1] [{-2-$<}],{w-64-$>*64},7 -done -frame[-1] 1,1,0 -mv[-1] {$board+1} -rm[-{$nb_session_winners+1}--1] -endif # Session loser(s). -if {!$2} --columns[losers] 100% --f[-1] y -a[-2,-1] x -sort[-1] -,y -f[-1] 'if(i(0,y),i,-1)' -autocrop[-1] -1 -nm[-1] session_losers # Keep only losers. nb_session_losers={h} t_session_losers="" -repeat $nb_session_losers i=@{session_losers,(1,$>)} t_session_losers=${player${i}_name}"__"${t_session_losers} @{-path_tmp}/${player{@{session_losers,(1,$>)}}_file} --[-1] 255 -rr2d[-1] 56,56,2,2 -+[-1] 255 -frame[-1] 1,1,0 -done t_session_losers=@{-_gpt_remove_underscore\ $t_session_losers} 0 -t[-1] "Session loser"@{-if\ {$nb_session_losers==1}\ -u\ \"\"\ -else\ -u\ s\ -endif}" : "$t_session_losers,0,0,57,1,255 -r[-1] 100%,100%,1,4 -drop_shadow[-1] 5,5,2 -r2dy[-1] 24 -r[-1] {@{$board,w}-2},{1.5*$row_height-2},1,4,0,0,0.1,0.5 -i[-2] 1,2,1,3,128,255,0,128,64,128 -r[-2] [-1],[-1],1,3,3 -blend[-2,-1] alpha -if {$2>0} -shift[-1] 0,0,0,1,2 -elif {$2<0} -mirror[-1] c -endif -repeat $nb_session_losers -j[-1] [{-2-$<}],{w-64-$>*64},7 -done -frame[-1] 1,1,0 -rm[-{$nb_session_losers+2}--2] -endif # Append rows together. -a[$board--1] y # Add final shadow. 100%,100%,1,1,255 -a[-2,-1] c -drop_shadow[-1] 6,6,4 -i[-2] {w},{h},1,3,255 -blend[-2,-1] alpha # Quit properly. -k[$board] -v + _gpt_remove_underscore : ({'"$1"'}) -replace[-1] {'_'},{'\ '} -u @{-1,t} -rm[-1] # $1 : Text - $2 : Width - $3 : Height - $4 : Font size - $5 : Text - $6 : Color code. _gpt_field : -if {!$5} {$2-2},{$3-2},1,3,255 -frame[-1] 1,1,0 -return -endif 0 -t[-1] "$1",0,0,57,1,1 -*[-1] -1 -+[-1] 1 -r2dy[-1] $4 --[-1] 1 -r[-1] {$2-2},{$3-2},1,1,0,0,0.5,0.5 -+[-1] 1 -frame[-1] 1,1,0 [-1]x2 -if {$6==1} -*[-3] 255 -*[-2] 242 -*[-1] 153 -elif {$6==2} -*[-3] 222 -*[-2] 222 -*[-1] 222 -elif {$6==3} -*[-3] 232 -*[-2] 209 -*[-1] 196 -elif {$6==4} -*[-3] 255 -*[-2] 204 -*[-1] 204 -elif {$6==5} -*[-3] 255 -*[-2] 153 -*[-1] 153 -elif {$6==6} -*[-3] 240 -*[-2] 240 -*[-1] 240 -else -*[-3--1] 255 -endif -a[-3--1] c #------------------------------------- # # Define menu entries for # the G'MIC plug-in for GIMP # #------------------------------------- # Function that returns the list of external sources to be included in the GIMP plug-in. gimp_filter_sources : ({'gmic'}) ({'http://gmic.sourceforge.net/update@..gmic'},1) # Override default filters. # Function used for filters based on parallelization with spatial splitting. gimp_parallel_overlap : -apply_parallel_overlap "$1",$3,{if($2,2^($2-1),0)} # Function that updates filters definitions on the G'MIC web server. # It sorts and merges filters from all available sources, and save # a single update file on the G'MIC server. It also print on the standart # output (stdout), the list of available filters. # $1 = update version number. # $2 = enable/disable filters list output on stdout. update_gmic_gimp : -skip ${1=@.},${2=1} -v - # Create substitution list to force filters having a particular location. -_update_gmic_gimp_move "/Enhancement/Local~contrast~enhancement","/Details" -_update_gmic_gimp_move "/Enhancement/YAG_effect","/Details" # Define useful sub-commands. -m "parent : -l[] ({'$""1'}) -s -,{'/'} -if @# -rm[-1] -endif -i[0--1] (47) -a y -u @{0,t} -rm -endl" # Command to return parent of a path. -m "_max : ({'\"$""1\"'}) ({'\"$""2\"'}) -f[-2,-1] 'if(i>=97&&i<=122,i-32,i)' -r[-2,-1] {max(w,@{-2,w})},1,1,1,0 --[-2,-1] -autocrop[-1] 0 "\ "-u {i>0} -rm[-1]" # Command to compare two strings (eq. to strcasecmp). -m "load_gmic : "\ "_nb_sources={$_nb_sources+1} filename=@{\"-basename $""1\"} "\ "-v + -e[] \" \"$_nb_sources\". \"$filename\" \" -v - "\ "-l[] "\ " -i raw:$""1,uchar -v + -e[] \" [retrieved from source '$""1']\n\" -v - "\ " -l "\ " -o raw:/tmp/$filename,uchar "\ " -x \"scp /tmp/\"$filename\" ronounours,gmic@web.sourceforge.net:htdocs/include/\" "\ " -v + -e[] \" [archived]\n\" -v - "\ " -onfail -v + -e[] \" [could not be archived!]\n\" -v - -endl "\ "-onfail -l[] "\ " source=http://gmic.sourceforge.net/include/$filename "\ " -i raw:$source,uchar -v + -e[] \" [retrieved from archive '\"$source\"']\n\" -v - "\ " -onfail -v + -e[] \" [error, not reachable!]\n\" -v -"\ " -endl -endl" # Copy latest command definitions on sourceforge server if necessary. -if {$1==@.} -v + -e[] "> Upload latest version of commands on Sourceforge server.\n" -v - -x "scp "$HOME/work/src/gmic/src/gmic_def.gmic" ronounours,gmic@web.sourceforge.net:htdocs/gmic_def."$1 -endif # Get command source files and archive them. -v + -e[] "> Load and archive .gmic source files.\n" -v - _nb_sources=0 -load_gmic http://gmic.sourceforge.net/gmic_def.$1 -load_gmic http://gmic.sourceforge.net/compatibility.gmic -load_gmic http://karo03.bplaced.net/gmic/karos.gmic # -load_gmic http://s406833247.websitehome.co.uk/gmic/photocomix.gmic -load_gmic http://gmic.sourceforge.net/photocomix.gmic -load_gmic http://gmic.sourceforge.net/ronounours.gmic -load_gmic http://www.saunalahti.fi/naggobot/naggobot.gmic -load_gmic http://www.iain.bplaced.net/iain_fergusson.gmic -load_gmic http://s406833247.websitehome.co.uk/gmic/garagecoder.gmic -load_gmic http://www.aljacom.com/~gmic/samj.gmic -load_gmic http://docgmic.tuxfamily.org/zonderr.gmic -load_gmic http://gmic.sourceforge.net/tomkeil.gmic -load_gmic http://www.h-ps.demon.co.uk/GMIC/jayprich.gmic -load_gmic https://raw.github.com/jboulanger/jboulanger-gmic/master/jboulanger.gmic # Merge them together. -i[0] (10) -i[2--1] ({"'\n#@gimp ________________\n'"}) -y y -a y -discard 13 -s +,{'"#@gimp"'} -repeat {int((@#-1)/2)} -a[{$>+1},{$>+2}] y -done -nm[0] !header # Parse filter tree. -v + -e[] "> Start source parsing.\n" -v - progress_factor={100/(@#-1)} merge_request=0 merge_start=0 nb_filters=0 offset=0 path=/ -repeat @# ind={$>-$offset} -if {@{{$ind-1},-1}==10" && "{{`@{$ind,0-5}`}'=='"#@gimp"}" && "(@{$ind,6}==32" || "@{$ind,6}=={'_'})} -l[$ind] # Line starts by '#@gimp[_] ' is_folder=0 -s +,10 --rows[0] 6,100% -if {i=={'_'}} -rows[-1] 3,100% -endif # Treat a localized filter as a regular filter. -autocrop[-1] 32 -if {i!={':'}} # Found a new filter or folder definition. -l[-1] # Format string by removing special character sequences. -replace_seq @{-quote\ {''}},32 -replace_seq @{-quote\ {''}},32 -replace_seq @{-quote\ {''}},32 -replace_seq @{-quote\ {''}},32 -replace {'/'},32 -replace {','},{';'} -s -,{':'} -autocrop[0] 32 -if {@#>1} # Found new filter. -k[0] -replace 32,{'~'} name=$path@{0,t} merge_request=1 nb_filters={$nb_filters+1} -v + -e[] " "$nb_filters". "$name" ("{round($>*$progress_factor)}"%)." -v - -else # Found new folder (opt. parent(s)). -if {i=={'_'}} # Folder has parents before creating it. -do path=@{"-parent[] "$path} -shift 0,-1,0,0 -while {i=={'_'}} -autocrop 0 -autocrop 32 -if {w} -replace 32,{'~'} path=$path@{0,t}/ -endif # Folder name specified after the underscore(s). -else # Folder name don't start with '_'. -autocrop 32 -replace 32,{'~'} path=$path@{0,t}/ -endif is_folder=1 -endif # -if {@#>1} -endl # -l[-1] -if $is_folder -rm[0] -i[0] (10) # Discard folder definition (will be recreated afterwards). -else -nm[0] $name -endif -endif # -if {i!={':'}} -rm[-1] -a y -endl -endif -if {$merge_request" && "$ind>0} # Merge previous lines. -a[$merge_start-{$ind-1}] y offset={$offset+$ind-$merge_start-1} merge_start={$merge_start+1} merge_request=0 -endif -done -a[$merge_start--1] y # Final merge. # Force filters to move if necessary. -v + -e[] "\n> Force filters to move, if necessary." -v - -repeat @# ind=$> -repeat $_nbm -if {@{$ind,n}'=='${_to_move$>}} -v + -e[] " "$ind". Move '"@{$ind,n}"' to '"${_move_to$>}"'." -v - -name[$ind] ${_move_to$>}/@{$ind,b} -endif -done -done # Sort filter code by lexicographical order. -v + -e[] "\n> Sort filters by lexicographic order." -v - -_update_gmic_gimp_sort 0,{@#-1} # Rebuild folder structure. -v + -e[] "> Rebuild folder structure." -v - -m "nb_levels : -l[] ({'$""1'}) -s -,{'/'} -u @# -rm -endl" # Command to count number of folders in a given path. path=/ -repeat @# -l[$>] npath=@{"-parent "@{0,n}} -if {$path'!='$npath} # Need to change the path. nc=@{"-nb_levels[] "$path} nn=@{"-nb_levels[] "$npath} # Get the minimal basis path in common and the number of up/down operations. nb_up=0 nb_down=0 basis=$path nbasis=$npath -do nc=@{"-nb_levels[] "$basis} nn=@{"-nb_levels[] "$nbasis} -if {$nc>$nn} basis=@{"-parent[] "$basis} nb_up={$nb_up+1} -elif {$nn>$nc} nbasis=@{"-parent[] "$nbasis} nb_down={$nb_down+1} -elif {$nbasis'!='$basis} basis=@{"-parent[] "$basis} nb_up={$nb_up+1} nbasis=@{"-parent[] "$nbasis} nb_down={$nb_down+1} -endif -while {$nbasis'!='$basis} # Deduce the G'MIC command to apply. command= -if $nb_up 1,$nb_up,1,1,{'_'} command="#@gimp "@{-1,t}"\n" -rm[-1] -endif -if $nb_down -l[] ({'$npath'}) -s -,{'/'} -k[-$nb_down--1] -replace {'~'},32 level={@{"-nb_levels "$path}-$nb_up} balise=@{"-if "{$level<=0" && "{$npath'!='/About/}}" -u b -else -u i -endif"} -repeat @# command=$command"#@gimp <"$balise">"@{$>,t}"\n" balise="i" -done -rm -endl -endif -if {narg($command)} name=@{0,n} -i[0] ({'$command'}) -y[0] y -a y -nm $name -endif path=$npath -endif -endl -done # Save reordered .gmic file. -v + -e[] "> Save output .gmic file.\n" -v - --a y -if {h>1} -r[-1] 1,{h-1},1,1,0,0,0,1 -endif # Remove leading '\n'. -o[-1] raw:$HOME/.update$1.gmic,uchar -x "scp "$HOME/.update$1.gmic" ronounours,gmic@web.sourceforge.net:htdocs/"update$1.gmic -rm[-1] # Display list of filters (sorted alphabetically) on stdout. -if $2 -v + -e[] "> Output list of filters in stdout.\n" -v - -exec "date +%Y,%m,%d >"@{-path_tmp}/date.dlm @{-path_tmp}/date.dlm -echo_stdout "*** List of filters in the G'MIC plug-in for GIMP ("$nb_filters" filters, on "{i}/{i(1)}/{i(2)}") ***\n" -rm[-1] -echo_stdout "* List of filters, sorted by path:\n" -repeat @# -l[$>] ({'@{0,n}'}) -if {i!={'!'}} -r[-1] {w-1},1,1,1,0,0,1 -replace_seq[-1] @{-quote\ {'&'}},{'&'} -replace_seq[-1] @{-quote\ {'"é"'}},{'e'} -replace_seq[-1] {'/'},@{-quote\ {'~/~'}} -replace[-1] {'~'},32 -echo_stdout[] " "@{-1,t} -endif -rm[-1] -endl -done -echo_stdout "\n* List of filters, sorted alphabetically:\n" -repeat @# name=@{$>,b} path=@{$>,f} -nm[$>] $name"~(in~'"$path"')" -done -_update_gmic_gimp_sort 0,{@#-1} -repeat @# -l[$>] ({'@{0,n}'}) -if {i!={'!'}} -replace_seq[-1] @{-quote\ {'&'}},{'&'} -replace_seq[-1] @{-quote\ {'"é"'}},{'e'} -replace[-1] {'~'},32 -echo_stdout[] " "@{-1,t} -endif -rm[-1] -endl -done -echo_stdout "\n*** End of list ***\n" -endif # All done, exiting. -rm -v + -e[] "> All done !\n" # String sorting algorithm (quicksort). _update_gmic_gimp_sort : mid={int(($1+$2)/2)} -if @{"-_max[] "@{$1,n},@{$mid,n}} -rv[$1,$mid] -endif -if @{"-_max[] "@{$mid,n},@{$2,n}} -rv[$2,$mid] -endif -if @{"-_max[] "@{$1,n},@{$mid,n}} -rv[$1,$mid] -endif -if {$2-$1>=3} pivot=@{$mid,n} i=$1 j=$2 -do -if @{"-_max[] "$pivot,@{$i,n}} -do i={$i+1} -while @{"-_max[] "$pivot,@{$i,n}} -endif -if @{"-_max[] "@{$j,n},$pivot} -do j={$j-1} -while @{"-_max[] "@{$j,n},$pivot} -endif -if {$i<=$j} -rv[$i,$j] i={$i+1} j={$j-1} -endif -while {$i<=$j} -if {$1<$j} -_update_gmic_gimp_sort $1,$j -endif -if {$i<$2} -_update_gmic_gimp_sort $i,$2 -endif -endif _update_gmic_gimp_move : -if {!narg($_nbm)} _nbm=0 -endif _to_move${_nbm}="$1" _move_to${_nbm}="$2" _nbm={$_nbm+1} # Generate a splitted preview, with arguments "command",_split_type. # 'split_type' can be { 0=no split | 1=forw. horiz. | 2=forw. vert. | 3=back. horiz. | 4=back. vert. | 5=dupl. horiz. | 6=dupl. vert. } _before : 33,11 -t[-1] "Before",1,-1,13,1,1 _after : 26,11 -t[-1] "After",1,-1,13,1,1 gimp_split_preview : -repeat @# -if {$2==0} -e[] "$1" -l[-1] $1 -endl -mv[-1] 0 -continue -endif # No split. -if {!($2%2)} # Vertical split. -s[-1] x,2 -if {$2==2} -l[-1] $1 -endl -to_colormode[-2,-1] 0 -_before -_after # Forward vertical. -elif {$2==4} -l[-2] $1 -endl -to_colormode[-2,-1] 0 -_after -_before # Backward vertical. -else -rm[-1] --l[-1] $1 -endl -to_colormode[-2,-1] 0 -_before -_after # Duplicate vertical. -endif -line[-3] 0,0,0,@{-3,h},1,0,0,0,255 -a[-4,-3] x -else # Horizontal split. -s[-1] y,2 -if {$2==1} -l[-1] $1 -endl -to_colormode[-2,-1] {max(@{-2,s},s)} -_before -_after # Forward horizontal. -elif {$2==3} -l[-2] $1 -endl -to_colormode[-2,-1] {max(@{-2,s},s)} -_after -_before # Backward horizontal. -else -rm[-1] --l[-1] $1 -endl -to_colormode[-2,-1] 0 -_before -_after # Duplicate horizontal. -endif -line[-3] 0,0,@{-3,w},0,1,0,0,0,255 -a[-4,-3] y -endif --dilate[-2,-1] 3 -*[-4,-3] 255 -to_colormode[-4,-3] @{-5,s} # If splited, display "before/after" text. -j[-5] [-4],1,1,0,0,0.8,[-2] -j[-5] [-3],{@{-5,w}-w-1},{@{-5,h}-h-1},0,0,0.8,[-1] -rm[-4--1] -mv[-1] 0 -done # Generate a 'no-preview' image. gimp_no_preview : -_gimp_no_preview "No preview\navailable","$*" _gimp_no_preview : -if {@#>0} -k[0] -else 256,256,1,1,128 -endif 118,50 -t[-1] "$1",2,1,24,1,255 -r[-1] [-2],[-2],1,1,0,0,0.5,0.5 -to_colormode[-1] @{-2,s} (1.5,0,1.5;0,0,0;1.5,0,1.5) -r[-1] [-3],3 -*[-3,-1] -c[-2] 0,255 -or -skip "$*" # Do not forget to ucomment this entry for a deprecated version of the G'MIC plug-in! # #@gimp UPDATE INFORMATION : _none_, gimp_logo_en # #@gimp : note = note{"A new version of the G'MIC plug-in for GIMP is available! # #@gimp : You are strongly encouraged to download and install this updated version, by clicking on one of the following urls :"} # #@gimp : note = note{"\nWindows version :"} # #@gimp : url = link{"Download G'MIC plug-in for Windows (32 bits)","http://downloads.sourceforge.net/gmic/gmic_gimp_win32.exe"} # #@gimp : url = link{"Download G'MIC plug-in for Windows (64 bits)","http://downloads.sourceforge.net/gmic/gmic_gimp_win64.zip"} # #@gimp : note = note{"Installation : unzip the archive files and copy them into folder\n # #@gimp : C:\\Program Files\\GIMP\\lib\\gimp\\2.0\\plug-ins\"} # #@gimp : note = note{"\nLinux version :"} # #@gimp : url = link{"Download plug-in for Linux (32 bits)","http://downloads.sourceforge.net/gmic/gmic_gimp_linux32.zip"} # #@gimp : url = link{"Download plug-in for Linux (64 bits)","http://downloads.sourceforge.net/gmic/gmic_gimp_linux64.zip"} # #@gimp : note = note{"Installation : unzip the archive files and copy them in folder\n # #@gimp : /usr/lib/gimp/2.0/plug-ins/"} # #@gimp : note = note{"\nNote that there will be no updated filters anymore for your current plug-in version. # #@gimp : Installing the G'MIC plug-in for GIMP is easy and fast, so there are no reasons not for doing it :).\n\n # #@gimp : Best regards,\n\n The G'MIC team."} #---------------------- # English translations #---------------------- #@gimp _About #------------------- #@gimp_en G'MIC for GIMP : _none_, gimp_logo_en #@gimp_en : note = note{" #@gimp_en : ( GREYC's Magic Image Converter )\n\nis proposed to you by"} #@gimp_en : note = link("David Tschumperl\303\251","http://tschumperle.users.greyc.fr/") #@gimp_en : note = link{"( IMAGE Team / GREYC Laboratory - CNRS UMR 6072 )","http://www.greyc.ensicaen.fr/EquipeImage"} #@gimp_en : note = note{" #@gimp_en : This plug-in is based on our open-source libraries G'MIC and CImg (C++ Template Image Processing Library), #@gimp_en : available at:"} #@gimp_en : note = link("http://gmic.sourceforge.net/") #@gimp_en : note = note{"and"} #@gimp_en : note = link("http://cimg.sourceforge.net/") #@gimp_en : note = note{"\n #@gimp_en : If you appreciate G'MIC, you are welcome to send us a nice postcard from your place, at:\n\n #@gimp_en : David Tschumperlé,\n Laboratoire GREYC (CNRS UMR 6072), Equipe Image,\n #@gimp_en : 6 Bd du Maréchal Juin,\n 14050 Caen Cedex / France.\n\n #@gimp_en : Postcards senders automatically enter the Friends Hall of Fame :) ! #@gimp_en : "} gimp_logo : -skip "${1=Plug-in for GIMP}" -if @# -k[0] -endif -to_rgb 0 -t[-1] "G'MIC",0,0,57,1,1 -label[-1] 0 6,1,1,3 -rand[-1] 150,255 -point[-1] 0 -map[-2] [-1] -rm[-1] -expand_xy[-1] 10,0 -b[-1] 2 -r[-1] 200%,200%,1,3,6 -sqr[-1] -c[-1] 0,60% -n[-1] 0,255 -warp_perspective[-1] 0.5,0,1,50,50,0 -shift[-1] 0,-10 100%,100% -noise[-1] 0.8,2 -*[-1] 180 --blur_linear[-1] 20,0,45,0 -*[-1] 20 -max[-3--1] -sh[-1] 2,2 (0;128) -r[-1] [-2],3 -+[-2,-1] -min[-1] 255 -rm[-1] -text_outline[-1] "$1",32%,75%,13,3,1,255 -frame[-1] 1,1,128 -mv[-1] 0 -if {@#>1} -*[^0] 0.45 -repeat {@#-1} -j[-1] [0],{(w-@{0,w})/2},{(h-@{0,h})/2} -mv[-1] 1 -done -rm[0] -endif gimp_logo_old : -if @# ratio={w/h} -else ratio=1 -endif -rm 118,44,1,1 -t "G'MIC",3,-6,57,1,255 -r 100%,100%,10,1 -r 100%,100%,20,1,0,0,0.5,0.5,0.5 -b 1.5 -isosurface3d 50% -col3d {?(150,255)},{?(150,255)},{?(150,255)} -sphere3d 8 -col3d[-1] {?(150,255)},{?(150,255)},{?(150,255)} -+3d[-1] 72,-6 -+3d -c3d[-1] -rv3d -db3d 0 -sl3d 0.2 -ss3d 1.3 -r3d[-1] 1,0,0,30 -f3d 120 -*3d[-1] 1.5 230,120,1,3 -object3d[-1] [-2],50%,30%,0,1,4 -rm[-2] -t "$1",12%,75%,24,1,255 -to_rgba -replace_color 0,0,0,0,0,255,0,0,0,0 -drop_shadow 6,6,2 -i[-2] @{-fitratio_wh\ 230,120,$ratio},1,3 -rand[-2] 0,255 -sh[-2] 0,0 -/[-1] 2 -rm[-1] -blur_radial[-2] 10 -sharpen[-2] 600 -r[-1] [-2],[-2],1,4,0,0,0.5,0.5 -blend alpha gimp_logo_en : -gimp_logo "Plug-in for GIMP\n "[@{-strver}] #@gimp_en Filters design : _none_, _none_ #@gimp_en : note = note{" #@gimp_en : G'MIC is an open image processing framework. Thus, including #@gimp_en : user-defined filters into this plug-in is possible.\n\n #@gimp_en : To do so, you need to create a .gmic #@gimp_en : file in your Home folder (or Applications Data/ on Windows, without the first dot). #@gimp_en : It will be read each time the plug-in is launched, or when the Refresh #@gimp_en : button (under the central pane) is pressed. It must be a regular ASCII file, containing the declarations and #@gimp_en : implementations of the filters (written in the G'MIC language) that will be added #@gimp_en : to the list of available ones.\n\n #@gimp_en : Existing filters are already defined this way."} #@gimp_en : note = note{" #@gimp_en : Writing a new filter in G'MIC is not particularly awful and #@gimp_en : can be generally done in very few lines.\n\n #@gimp_en : Example of a valid .gmic entry :\n\n #@gimp_en : #@gimp My effect : my_effect, my_effect\n #@gimp_en : #@gimp : Sigma = float(2,0,10)\n #@gimp_en : my_effect :\n --blur $1 -n 0,255 -xor\n\n #@gimp_en : By the way, you are encouraged to share your nice custom filters on the dedicated forum, #@gimp_en : for inclusion into next releases of G'MIC : #@gimp_en : "} #@gimp_en : note = link("Go to the G'MIC forum","http://www.flickr.com/groups/gmic/discuss/") #--------------------- # French translations #--------------------- #@gimp_fr G'MIC pour GIMP : _none_, gimp_logo_fr #@gimp_fr : note = note{" #@gimp_fr : ( GREYC's Magic Image Converter )\n\nvous est proposé par"} #@gimp_fr : note = link("David Tschumperl\303\251","http://tschumperle.users.greyc.fr/") #@gimp_fr : note = link{"( Equipe IMAGE / Laboratoire GREYC - CNRS UMR 6072 )","http://www.greyc.ensicaen.fr/EquipeImage"} #@gimp_fr : note = note{" #@gimp_fr : Ce greffon est basé sur nos bibliothèques libres G'MIC et CImg (C++ Template Image Processing Library), #@gimp_fr : disponibles aux adresses :"} #@gimp_fr : note = link("http://gmic.sourceforge.net/") #@gimp_fr : note = note{"et"} #@gimp_fr : note = link("http://cimg.sourceforge.net/") #@gimp_fr : note = note{"\n #@gimp_fr : Si vous appréciez G'MIC, vous pouvez nous le faire savoir en nous envoyant une jolie carte #@gimp_fr : postale de votre ville ou région, à l'adresse :\n\n #@gimp_fr : David Tschumperlé,\n Laboratoire GREYC (CNRS UMR 6072), Equipe Image,\n #@gimp_fr : 6 Bd du Maréchal Juin,\n 14050 Caen Cedex / France.\n\n #@gimp_fr : Envoyer une carte postale vous fera rentrer de facto dans le Friends Hall of Fame :) ! #@gimp_fr : "} gimp_logo_fr : -gimp_logo "Greffon pour GIMP\n "[@{-strver}] #@gimp_fr Création de filtres : _none_, _none_ #@gimp_fr : note = note{" #@gimp_fr : G'MIC est un système ouvert de traitement d'image. Il est ainsi possible #@gimp_fr : d'ajouter vos propres filtres personnalisés à l'intérieur même de ce greffon.\n\n #@gimp_fr : Pour cela, il vous suffit de créer un fichier .gmic #@gimp_fr : dans votre dossier Home (ou Applications Data/ sous Windows, sans le premier point). #@gimp_fr : Ce fichier va être lu à chaque démarrage du greffon, ou lorsque le bouton Actualiser #@gimp_fr : (sous le panneau central) sera cliqué. Ce fichier ASCII va contenir les déclarations et les #@gimp_fr : implémentations des filtres (écrits en langage G'MIC) qui vont s'ajouter à la liste des filtres disponibles.\n\n #@gimp_fr : Tous les filtres existants sont déjà définis de cette façon."} #@gimp_fr : note = note{" #@gimp_fr : Ecrire un filtre en langage G'MIC n'est pas particulièrement difficile (sans être trivial), #@gimp_fr : et ne nécessite souvent que quelques lignes.\n\n #@gimp_fr : Exemple de fichier .gmic valide :\n\n #@gimp_fr : #@gimp My effect : my_effect, my_effect, Sigma = float(2,0,10)\n #@gimp_fr : my_effect :\n --blur $1 -n 0,255 -xor\n\n #@gimp_fr : Vous êtes bien sûr encouragés à partager vos propres filtres sur le forum prévu à #@gimp_fr : cet effet, pour une inclusion éventuelle dans les prochaines versions de G'MIC : #@gimp_fr : "} #@gimp_fr : note = link("Participer au forum G'MIC","http://sourceforge.net/projects/gmic/forums/forum/849382") #---------------------- # Catalan translations #---------------------- #@gimp_ca G'MIC per al GIMP : _none_, gimp_logo_ca #@gimp_ca : note = note{" #@gimp_ca : ( GREYC's Magic Image Converter )\n\n és una gentilesa de"} #@gimp_ca : note = link("David Tschumperl\303\251","http://tschumperle.users.greyc.fr/") #@gimp_ca : note = link{"( IMAGE Team / GREYC Laboratory - CNRS UMR 6072 )","http://www.greyc.ensicaen.fr/EquipeImage"} #@gimp_ca : note = note{" #@gimp_ca : Aquest connector està basat en les biblioteques de codi obert G'MIC i CImg (C++ Template Image Processing Library), #@gimp_ca : disponibles a :"} #@gimp_ca : note = link("http://gmic.sourceforge.net/") #@gimp_ca : note = note{"i"} #@gimp_ca : note = link("http://cimg.sourceforge.net/") #@gimp_ca : note = note{"\n #@gimp_ca : Si t'agrada el G'MIC, pots enviar-nos una postal del lloc on vius, a :\n\n #@gimp_ca : David Tschumperlé,\n Laboratoire GREYC (CNRS UMR 6072), Equipe Image,\n #@gimp_ca : 6 Bd du Maréchal Juin,\n 14050 Caen Cedex / France.\n\n #@gimp_ca : Tot aquell que enviï una postal apareixerà al Friends Hall of Fame :) ! #@gimp_ca : "} gimp_logo_ca : -gimp_logo " per al GIMP\n "[@{-strver}] #@gimp_ca Filters design : _none_, _none_ #@gimp_ca : note = note{" #@gimp_ca : Si voleu podeu afegir els vostres filtres d'usuari al connector G'MIC :\n\n #@gimp_ca : Per a fer-ho, cal que creeu un fitxer .gmic (no oblideu el primer punt !) #@gimp_ca : a la vostra Carpeta d'inici (o a la carpeta Application Data al Windows). #@gimp_ca : El connector el llegirà cada vegada que s'arranqui, o quan premeu el botó Actualitzar els filtres. #@gimp_ca : Aquest fitxer ha de ser un arxiu de command del G'MIC, i ha de contindre les definicions de filtre #@gimp_ca : que han d'aparèixer a la llista de filtres."} #@gimp_ca : note = note{" #@gimp_ca : Escriure un nou filtre amb el llenguatge G'MIC no és trivial del tot (però tampoc una cosa inabastable), però #@gimp_ca : normalment es pot fer en unes quantes línies.\n\n #@gimp_ca : Example d'un fitxer .gmic vàlid :\n\n #@gimp_ca : #@gimp My effect : my_effect, my_effect, Sigma = float(2,0,10)\n #@gimp_ca : my_effect :\n --blur $1 -n 0,255 -xor\n\n #@gimp_ca : Per cert, us encoratgem a que compartiu els vostres filtres personalitzats al fòrum específic de G'MIC : #@gimp_ca : "} #@gimp_ca : note = link("Enlla\303\247a al f\303\262rum G'MIC","http://sourceforge.net/projects/gmic/forums/forum/849382") #---------------------- # Untranslated filters #---------------------- #@gimp Release notes : _none_, _none_ #@gimp : note = note{" #@gimp : - 2009/01/13 : version 1.3 (initial plug-in release).\n #@gimp : - 2010/09/03 : version 1.4.\n #@gimp : - 2011/07/07 : version 1.5.0.0.\n #@gimp : - 2012/03/01 : version 1.5.1.0.\n #@gimp : - 2012/10/15 : version 1.5.2.0.\n #@gimp : - 2013/01/07 : version 1.5.3.0.\n #@gimp : - 2013/01/28 : version 1.5.4.0.\n #@gimp : - 2013/03/08 : version 1.5.5.0.\n #@gimp : - 2013/06/03 : version 1.5.6.0.\n #@gimp : - 2013/09/09 : version 1.5.7.0.\n #@gimp : - 2013/09/17 : version 1.5.7.1 (Current stable).\n #@gimp : "} #@gimp : link = link("View latest changelog","http://www.flickr.com/groups/gmic/discuss/72157635509461123/") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/09/17.") #@gimp Contributors : _none_, _none_ #@gimp : note = note{" #@gimp : We would like to thank all these people who contributed to G'MIC in one way or another. #@gimp : A big hug to : \n\n #@gimp : - Sylvie Alexandre (packaging, testing & filters) #@gimp : - Partha Bagchi (packaging) #@gimp : - Sébastien Bougleux (debugging) #@gimp : - Jérome Boulanger (testing & code) #@gimp : - Claude Bulin (packaging) #@gimp : - Aurélien Ceyden (packaging) #@gimp : - François Collard (testing) #@gimp : - Patrick David (testing) #@gimp : - Maxime Daisy (code & testing) #@gimp : - Iain Fergusson (filters) #@gimp : - Roberto Ferramosca (packaging) #@gimp : - Jérome Ferrari (testing, code & tutorials) #@gimp : - Chris Fiedler (gfx) #@gimp : - Sébastien Fourey (ZArt code & G'MIC online) #@gimp : - Gentlemanbeggar (filters) #@gimp : - Claes Holmerson (tutorials) #@gimp : - Arto Huotari (filters) #@gimp : - Tom Keil (testing, filters & tutorials) #@gimp : - Andy Kelday (testing & filters) #@gimp : - Angelo Lama (testing & EKD integration) #@gimp : - Stéphane de la Linuxerie (design) #@gimp : - Mark (translation) #@gimp : - Mahvin (testing & design) #@gimp : - MareroQ (translation) #@gimp : - Ramon Miranda (translation) #@gimp : - Mauro Quercia (translation) #@gimp : - PhotoComiX (testing, translation & filters) #@gimp : - James Prichard (testing & filters) #@gimp : - Guilherme Razgriz (translation) #@gimp : - Karsten Rodenacker (packaging & code) #@gimp : - Dani Sardà (translation) #@gimp : - Yuri Shemanin (debugging) #@gimp : - Thorsten "otto" Stettin (packaging) #@gimp : - Stepanekos (translation) #@gimp : - Bernd Zeimetz (packaging) #@gimp : -"} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/30.") #@gimp Friends Hall of Fame : _none_, gimp_friends #@gimp : note = note{"\nDonators :"} #@gimp : note = note{" - We've received 15 donations from G'MIC mega-enthusiasts so far. #@gimp : You could be the 16th donator :)"} #@gimp : note = note{"Note: Donations are mainly used to help us making G'MIC more visible #@gimp : (cover expenses for open-source events, for instance). Also, it will motivate #@gimp : us to design more new image filters and effects. Feel free to donate #@gimp : if you appreciate G'MIC, by clicking on:"} #@gimp : link = link{"Make a donation to the G'MIC project","http://sourceforge.net/donate/index.php?group_id=234931"} #@gimp : sep = separator() #@gimp : note = note{" - A big hug goes to these donators (recently received first) :"} #@gimp : link = link(0,"[1] Christian Mariucci","") #@gimp : link = link(0,"[2] M. R.","") #@gimp : link = link(0,"[3] Mark Link","") #@gimp : link = link(0,"[4] Rolf Steinort","http://blog.meetthegimp.org/") #@gimp : link = link(0,"[5] Pat David","http://blog.patdavid.net/") #@gimp : link = link(0,"[6] Daniel Tauro","https://plus.google.com/112357088505488756823/posts") #@gimp : link = link(0,"[7] Ben Langhinrichs","http://geniisoft.com/") #@gimp : link = link(0,"[8] Paolo Pedaletti","http://www.openlabs.it/") #@gimp : link = link(0,"[9] Ricardo Corin","http://blog.photomontager.com") #@gimp : link = link(0,"[10] James Prichard","https://plus.google.com/115953666279509959258") #@gimp : link = link(0,"[11] Matt Jones","https://plus.google.com/116658221461047313647") #@gimp : link = link(0,"[12] Eddy Vervest","http://www.flickr.com/people/twekkel/") #@gimp : link = link(0,"[13] Steven Shupe","http://www.flickr.com/photos/ssshupe/") #@gimp : link = link(0,"[14] Flavio Casadei Della Chiesa","http://www.flaviocdc.net/wiki/") #@gimp : link = link(0,"[15] Lyle Kroll","http://www.artwanted.com/artist.cfm?artid=10918") #@gimp : sep = separator() #@gimp : note = note{"\nPostcard senders :"} #@gimp : note = note{" - We've received 21/b> postcards from G'MIC enthusiasts so far. #@gimp : You could be the 22th sender :)"} #@gimp : note = note{" - A big hug goes to these postcard senders (recently received first) :"} #@gimp : link = link(0,"[1] Akky [Gimpchat] - Australia","http://cimg.sourceforge.net/img/postcard47.jpg") #@gimp : link = link(0,"[2] Michel Thomas - Germany","http://cimg.sourceforge.net/img/postcard45.jpg") #@gimp : link = link(0,"[3] Pierre-Yves - Ile de Batz/France","http://cimg.sourceforge.net/img/postcard44.jpg") #@gimp : link = link(0,"[4] Family Hamacher - Trier/Germany","http://cimg.sourceforge.net/img/postcard43.jpg") #@gimp : link = link(0,"[5] Benoit Gauzere and Francois Lozes - Hokusai/Japan","http://cimg.sourceforge.net/img/postcard41.jpg") #@gimp : link = link(0,"[6] Dr. Rainer Teubner - Seligenstadt/Germany","http://cimg.sourceforge.net/img/postcard40.jpg") #@gimp : link = link(0,"[7] Mauro Mitrino - Mantova/Italy","http://cimg.sourceforge.net/img/postcard39.jpg") #@gimp : link = link(0,"[8] Werner Meier - Mettlach/Germany","http://cimg.sourceforge.net/img/postcard37.jpg") #@gimp : link = link(0,"[9] Arto Huotari - Helsinki/Finland","http://cimg.sourceforge.net/img/postcard36.jpg") #@gimp : link = link(0,"[10] Benoit Gauzere - California/USA","http://cimg.sourceforge.net/img/postcard33.jpg") #@gimp : link = link(0,"[11] Arkadi Gelfond - Foster City - California/USA","http://cimg.sourceforge.net/img/postcard30.jpg") #@gimp : link = link(0,"[12] Corinne Masimann - Neuchatel/Switzerland","http://cimg.sourceforge.net/img/postcard29.jpg") #@gimp : link = link(0,"[13] Mahvin - Portland/USA","http://cimg.sourceforge.net/img/postcard27.jpg") #@gimp : link = link(0,"[14] Vincent Roullier - Caen/France","http://cimg.sourceforge.net/img/postcard26.jpg") #@gimp : link = link(0,"[15] M???? - Munich/Germany","http://cimg.sourceforge.net/img/postcard24.jpg") #@gimp : link = link(0,"[16] F. Albior - Jaca/Spain","http://cimg.sourceforge.net/img/postcard23.jpg") #@gimp : link = link(0,"[17] PhotoComIX - Frascati/Italy","http://cimg.sourceforge.net/img/postcard22.jpg") #@gimp : link = link(0,"[18] Guy Poizat - Cabestany/France","http://cimg.sourceforge.net/img/postcard21.jpg") #@gimp : link = link(0,"[19] Institut for Biomathematik und Biometrie - Neuherberg/Germany","http://cimg.sourceforge.net/img/postcard20.jpg") #@gimp : link = link(0,"[20] Jaime - Barcelona/Spain","http://cimg.sourceforge.net/img/postcard14.jpg") #@gimp : link = link(0,"[21] Jean-Michel Webbe - Guadeloupe/France","http://cimg.sourceforge.net/img/postcard15.jpg") #@gimp : sep = separator() #@gimp : note = note{"\nMay the force be with you!"} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/04/26.") gimp_friends : -if @# ratio={w/h} -else ratio=1 -endif -rm -_heart80x73 -scale3x -r 150%,150%,1,1,0,0,0.5,0.5 --*[-1] 70 --*[-2] 110 --*[-3] 255 -*[-4] 255 -a c -blur_radial 4 -sharpen 300 -i[-2] @{-fitratio_wh\ {w},{h},$ratio},1,3 -rand[-2] 0,255 -sh[-2] 1,2 -/[-1] 2 -rm[-1] -blur_radial[-2] 10 -sharpen[-2] 600 -r[-1] [-2],[-2],1,4,0,0,0.5,0.5 -blend alpha 135,67,1,1,0 -t[-1] "Greetings to\n all G'MIC\n friends!",2,-2,24,1,1 --dilate[-1] 3 -*[-2] 255 -to_rgb[-2] -j[-3] [-2],{(@{-3,w}-@{-2,w})/2},{(@{-3,h}-@{-2,h})/2.2},0,0,1,[-1] -rm[-2,-1] _heart80x73 : 40,73,1,1,0 -ellipse 22,22,20,20,0,1,1 -polygon 3,7,37,42,72,42,27,1,1 --mirror x -a x #@gimp Gmicky / Roddy : gimp_gmicky, gimp_gmicky_preview #@gimp : Mascot image = choice("Gmicky","Gmicky & Wilber","Roddy") #@gimp : sep = separator() #@gimp : note = note{"Gmicky is the name of the G'MIC mascot. He is a small and cute tiger who knows how to do magic. #@gimp : Gmicky is a tiger, i.e. fast, agile and elegant, just as the G'MIC code is :). #@gimp : As many magicians, Gmicky knows lot of gimmicks (G'MIC), and he is a direct and friendly competitor of #@gimp : the ImageMagick's wizard, or the GraphicMagick's frog."} #@gimp : note = note{"Roddy is another mascot designed specifically for the Artistic / Rodilius filter of G'MIC."} #@gimp : note = note{"Gmicky and Roddy have been designed by "} #@gimp : link = link("Mahvelous Mahvin","http://www.mahvin.com/") #@gimp : sep = separator(), note = note("Authors: David Tschumperlé and Mahvin. Latest update: 2011/05/27.") gimp_gmicky : -rm -if {$1==0} -gmicky -elif {$1==1} -gmicky_wilber -else -roddy -endif gimp_gmicky_preview : w={w} h={h} -rm -if {$1==0} filename=@{-path_tmp}/gmicky_small.cimgz url=http://gmic.sourceforge.net/img/gmicky_small.cimgz -elif {$1==1} filename=@{-path_tmp}/gmicky_wilber_small.cimgz url=http://gmic.sourceforge.net/img/gmicky_wilber_small.cimgz -else filename=@{-path_tmp}/roddy_small.cimgz url=http://gmic.sourceforge.net/img/roddy_small.cimgz -endif -if $filename $filename -else -i $url -o $filename -endif -r2dy $h -- 255 -r $w,$h,1,3,0,0,0.5,0.5 -+ 255 #@gimp Filter sources : _none_, gimp_display_filter_sources #@gimp : note = note{"Here you can see the list of external filter sources currently enabled in your plug-in. #@gimp : Most of the time, there will be only two items listed there."} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/03.") gimp_display_filter_sources : -if @# -k[0] -f 0 -else 256,256 -endif -l[] -gimp_filter_sources -y x -a y -onfail (0) -endl -text[0] "Enabled external sources:\n--------------------------------",5,5,13,1,255 -repeat {h} --rows[-1] $> -if {@{-1,0-3}'=='{'http'}} -text[0] [{1+$>}]" "@{-1,t},5,{32+15*$>},13,1,255 -else -text[0] [{1+$>}]" "@{-1,t}" (local file)",5,{32+15*$>},13,1,255 -endif -rm[-1] -done -rm[-1] #@gimp _Arrays & tiles #-------------------------------- #@gimp Array [regular] : gimp_array, gimp_array_preview(1) #@gimp : X-tiles = int(2,1,10) #@gimp : Y-tiles = int(2,1,10) #@gimp : X-offset = float(0,0,100) #@gimp : Y-offset = float(0,0,100) #@gimp : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gimp : Size = _choice("Shrink", "Expand", "Repeat [Memory consuming!]") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_array : -shift -$3%,-$4%,0,0,2 -if {$5&1} -mirror x -endif -if {$5>1} -mirror y -endif -array $1,$2,$6 gimp_array_preview : -gimp_array $1,$2,$3,$4,$5,0 #@gimp Array [faded] : gimp_array_fade, gimp_array_fade_preview(1) #@gimp : X-tiles = int(2,1,10) #@gimp : Y-tiles = int(2,1,10) #@gimp : X-offset = float(0,0,100) #@gimp : Y-offset = float(0,0,100) #@gimp : Fade start = float(80,1,100) #@gimp : Fade end = float(90,1,100) #@gimp : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gimp : Size = _choice("Shrink", "Expand", "Repeat [Memory consuming!]") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_array_fade : -if {$7&1} -mirror x -endif -if {$7>1} -mirror y -endif -array_fade $1,$2,$5,$6,$8 -shift -$3%,-$4%,0,0,2 gimp_array_fade_preview : -gimp_array_fade $1,$2,$3,$4,$5,$6,$7,0 #@gimp Array [mirrored] : gimp_array_mirror, gimp_array_mirror_preview(1) #@gimp : Iterations = int(1,1,10) #@gimp : X-offset = float(0,0,100) #@gimp : Y-offset = float(0,0,100) #@gimp : Array mode = choice(2,"x-axis","y-axis","xy-axes","2xy-axes") #@gimp : Initialization = choice("Original","Mirror X","Mirror Y","Rotate 90 deg.","Rotate 180 deg.","Rotate 270 deg.") #@gimp : Expand size = _bool(false) #@gimp : Crop = int(0,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_array_mirror : -skip ${7=0} -if {$5==1} -mirror x -elif {$5==2} -mirror y -elif {$5==3} -rotate 90 -elif {$5==4} -rotate 180 -elif {$5==5} -rotate 270 -endif -if $7 -if {$4==0} -columns 0,{100-$7}% -elif {$4==1} -rows 0,{100-$7}% -elif {$4==2} -z 0,0,{100-$7}%,{100-$7}% -elif {$4==3} -z {$7/2}%,{$7/2}%,{100-$7/2}%,{100-$7/2}% -endif -endif -shift -$2%,-$3%,0,0,2 -array_mirror $1,$4,$6 gimp_array_mirror_preview : -gimp_array_mirror $1,$2,$3,$4,$5,0,$7 #@gimp Array [random] : array_random, array_random(1) #@gimp : Source X-tiles = int(5,1,20) #@gimp : Source Y-tiles = int(5,1,20) #@gimp : Destination X-tiles = int(7,1,20) #@gimp : Destination Y-tiles = int(7,1,20) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Array [random colors] : gimp_array_color, gimp_array_color(1) #@gimp : X-tiles = int(5,1,20) #@gimp : Y-tiles = int(5,1,20) #@gimp : Opacity = float(0.5,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_array_color : -repeat @# -l[-1] $1,$2,1,3 -rand[-1] 0,255 -to_colormode[-1] @{-2,s} -r[-1] [-2] -*[-1] $3 -*[-2] {1-$3} -+[-2,-1] -endl -mv[-1] 0 -done #@gimp Chessboard : gimp_chessboard, gimp_chessboard_preview(0) #@gimp : First size = int(64,1,512) #@gimp : Second size = int(64,1,512) #@gimp : First offset = int(0,0,512) #@gimp : Second offset = int(0,0,512) #@gimp : Angle = float(0,0,180) #@gimp : Opacity = float(0.5,0,1) #@gimp : First color = color(0,0,0,255) #@gimp : Second color = color(255,255,255,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_chessboard : -to_rgba -chessboard ${1-14} gimp_chessboard_preview : -gimp_split_preview "-gimp_chessboard $*",$-1 #@gimp Dices : gimp_dices, gimp_dices(0) #@gimp : Resolution = float(2,1,10) #@gimp : Size = int(24,8,64) #@gimp : Color model = choice(1,"Black dices","White dices","Dices with colored numbers","Dices with colored sides") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/27.") gimp_dices : # Create dice patterns. -repeat 6 {2*$2},{2*$2} -_dice$> -done -if {$3%2} -negative[-6--1] -endif -frame_round[-6--1] 10,10,0,0,128,128,128,0 -r2dy[-6--1] $2 -a[-6--1] x -repeat {@#-1} -l[$>,-1] # Prepare input images. --luminance[0] -rv[1,2] -r[0,1] {100*$1/$2}%,{100*$1/$2}%,1,100%,2 -quantize[1] 6,0 # Convert input image to dices pattern. -*[-2] $2 -channels[-2] 0,1 -r[-2] {$2*100}%,{$2*100}% $2,$2,1,2,'if(c,y,x)' -r[-1] [-3],[-3],1,2,0,2 -+[-3,-1] --warp[-1] [-2],0,0 -rm[-3] -if {$3<2} -rm[0] -mv[-1] 0 -else -r[0] [2],[2],1,100% -rv[0,-1] -blend[0,-1] multiply -endif -endl -done -rm[-1] _dice0 : -ellipse[-1] 50%,50%,5.2%,5.2%,0,1,255 _dice1 : -ellipse[-1] 25%,25%,5.2%,5.2%,0,1,255 -ellipse[-1] 75%,75%,5.2%,5.2%,0,1,255 _dice2 : -_dice1 -_dice0 _dice3 : -_dice1 -ellipse[-1] 25%,75%,5.2%,5.2%,0,1,255 -ellipse[-1] 75%,25%,5.2%,5.2%,0,1,255 _dice4 : -_dice3 -_dice0 _dice5 : -_dice3 -ellipse[-1] 25%,50%,5.2%,5.2%,0,1,255 -ellipse[-1] 75%,50%,5.2%,5.2%,0,1,255 #@gimp Extract objects : gimp_extract_objects, gimp_extract_objects_preview(1) #@gimp : X-background = float(0,0,100) #@gimp : Y-background = float(0,0,100) #@gimp : Color tolerance = int(20,0,256) #@gimp : Opacity threshold = int(50,0,100) #@gimp : Minimal area = float(0.3,0,5) #@gimp : Connectivity = choice("Low","High") #@gimp : Output type = _choice(1,"Crop","Segmentation") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/07/11.") #@gimp : note = link("Filter explained here","http://gimpchat.com/viewtopic.php?f=28&t=7905") gimp_extract_objects : -if $5 min_area=$5% -else min_area=5 -endif -repeat @# -l[$<] -to_rgba x={$1%*(w-1)} y={$2%*(h-1)} color=@{-at\ $x,$y} -if $7 -replace_color $3,0,$color,0,0,0,0 -autocrop_components $4%,$min_area,$6,$7 -else --replace_color $3,0,$color,0,0,0,0 -autocrop_components[-1] $4%,$min_area,$6,2 -repeat {w} --z[0] @{1,i($>,0)},@{1,i($>,1)},@{1,i($>,3)},@{1,i($>,4)} -done -rm[0,1] -endif -endl -done gimp_extract_objects_preview : -if $5 min_area=$5% -else min_area=5 -endif -repeat @# -l[$>] -to_rgba x={$1%*(w-1)} y={$2%*(h-1)} color=@{-at\ $x,$y} --replace_color $3,0,$color,0,0,0,0 -autocrop_components[-1] $4%,$min_area,$6,2 -repeat {w} xycoords=@{1,i($>,0)},@{1,i($>,1)},@{1,i($>,3)},@{1,i($>,4)} -rectangle[0] $xycoords,0.3,0,0,255,255 -rectangle[0] $xycoords,1,0xFFFFFFFF,0,0,0,255 -done -drgba[0] -text_outline[0] {w}" objects",2,2,13,2,0.3,255,255,255,255 -k[0] -circle $x,$y,3,1,0,255,0 -circle $x,$y,3,1,0xFFFFFFFF,0 -endl -done #@gimp Grid : gimp_imagegrid, gimp_imagegrid(0) #@gimp : X-size = int(10,2,100) #@gimp : Y-size = int(10,2,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_imagegrid : -imagegrid $1,$2 #@gimp Taquin : taquin, taquin(1) #@gimp : X-tiles = int(7,1,20) #@gimp : Y-tiles = int(7,1,20) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Tileable rotation : gimp_rotate_tileable, gimp_rotate_tileable(1) #@gimp : Angle = float(45,0,360) #@gimp : Maximum size factor = int(8,0,20) #@gimp : Array mode = choice(0,"None","x-axis","y-axis","xy-axes","2xy-axes") #@gimp : sep = separator(), note = note("Note: This filter implements the tileable rotation technique described by Peter Yu, at:") #@gimp : l = link("[Peter Yu] Create rotated tileable patterns","http://www.peteryu.ca/tutorials/gimp/rotate_tileable_patterns") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/05/26.") gimp_rotate_tileable : -if $3 -array_mirror 1,{$3-1},1 -endif -rotate_tileable $1,{if($3==0,$2,$2/2)} -repeat @# -if {@{$>,w}==1" && "@{$>,h}==1} -rm -_gimp_no_preview " Invalid\nimage size" -return -endif -done #@gimp Tiled rotation : gimp_rotate_tiles, gimp_rotate_tiles(1) #@gimp : X-tiles = int(5,1,80) #@gimp : Y-tiles = int(5,1,80) #@gimp : Angle = float(15,0,360) #@gimp : X-shadow = float(3,-20,20) #@gimp : Y-shadow = float(3,-20,20) #@gimp : Smoothness = float(1.8,0,5) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_rotate_tiles : -to_rgba -rotate_tiles $3,$1,$2 -drop_shadow $4%,$5%,$6% #@gimp Tiled normalization : gimp_normalize_tiles, gimp_normalize_tiles(1) #@gimp : X-tiles = int(25,1,80) #@gimp : Y-tiles = int(25,1,80) #@gimp : Minimal value = float(0,0,255) #@gimp : Maximal value = float(255,0,255) #@gimp : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_normalize_tiles : -repeat @# -l[-1] -split_tiles $1,$2 -n $3,$4 -append_tiles $1,$2 -endl -mv[-1] 0 -done gimp_normalize_tiles : -apply_channels "-_gimp_normalize_tiles ${1-4}",$-1 #@gimp Tiled random shifts : gimp_shift_tiles, gimp_shift_tiles(1) #@gimp : X-tiles = int(10,1,30) #@gimp : Y-tiles = int(10,1,30) #@gimp : Amplitude = float(10,0,100) #@gimp : Opacity = float(1,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_shift_tiles : -to_rgba -shift_tiles $1,$2,$3 -if {$4<1} -repeat @# -s[-1] c -*[-1] $4 -a[-4--1] c -mv[-1] 0 -done -endif #@gimp Tiled parameterization : gimp_parameterize_tiles, gimp_parameterize_tiles(1) #@gimp : X-tiles = int(10,1,30) #@gimp : Y-tiles = int(10,1,30) #@gimp : Fitting function = choice("Linear","Quadratic") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_parameterize_tiles : -if $3 -quadratize_tiles $1,$2 -else -linearize_tiles $1,$2 -endif -c 0,255 #@gimp Tiled isolation : gimp_isolate_tiles, gimp_isolate_tiles(0) #@gimp : X-size = float(10,0,100) #@gimp : Y-size = float(10,0,100) #@gimp : X-border = float(5,0,100) #@gimp : Y-border = float(5,0,100) #@gimp : Keep tiles square = bool(1) #@gimp : Keep borders square = bool(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/13.") gimp_isolate_tiles : -repeat @# -l[$>] -to_rgba -if $5 sx={round(min(w,h)*max($1,$2)/100)} sy=$sx -else sx={round(w*$1/100)} sy={round(h*$2/100)} -endif -if $6 bx={max($3,$4)} by=$bx -else bx=$3 by=$4 -endif -s x,-$sx -repeat @# -l[$>] -s y,-$sy -r 100%,{100+$by}%,1,100%,0,0,0.5,0.5 -a y -endl -done -r {100+$bx}%,100%,1,100%,0,0,0.5,0.5 -a x -endl -done #@gimp _Artistic #----------------------- #@gimp Bokeh : bokeh, gimp_bokeh_preview(0) #@gimp : note = note("Global parameters:") #@gimp : Amplitude = float(250,0,600) #@gimp : Smoothness = float(2,0,20) #@gimp : Density = float(0.5,0,5) #@gimp : sep = separator(), note = note("Bokeh shape:") #@gimp : Size = int(24,1,64) #@gimp : Outline size = float(10,0,100) #@gimp : Outline amplitude = float(2,0,10) #@gimp : Smoothness = float(0.7,0,5) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/04/24.") gimp_bokeh_preview : -gimp_split_preview "-bokeh $*",$-1 #@gimp Cartoon : cartoon, gimp_cartoon_preview(0) #@gimp : Smoothness = float(3,0,10) #@gimp : Sharpening = float(200,0,400) #@gimp : Edge threshold = float(20,1,30) #@gimp : Edge thickness = float(0.25,0,1) #@gimp : Color strength = float(1.5,0,3) #@gimp : Color quantization = int(8,2,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_cartoon_preview : -gimp_split_preview "-cartoon $*",$-1 #@gimp Cubism : gimp_cubism, gimp_cubism_preview(1) #@gimp : Iterations = int(2,0,10) #@gimp : Density = float(50,0,200) #@gimp : Thickness = float(10,0,50) #@gimp : Angle = float(90,0,360) #@gimp : Opacity = float(0.7,0.01,1) #@gimp : Smoothness = float(0,0,5) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/05.") gimp_cubism : -repeat $1 -cubism ${2--1} -done gimp_cubism_preview : -gimp_split_preview "-gimp_cubism $*",$-1 #@gimp Ellipsionism : gimp_ellipsionism, gimp_ellipsionism_preview(0) #@gimp : Primary radius = float(20,1,100) #@gimp : Secondary radius = float(10,1,100) #@gimp : Smoothness = float(0.5,0,10) #@gimp : Opacity = float(0.7,0,1) #@gimp : Outline = float(8,1,3) #@gimp : Density = float(0.5,0.1,2) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_ellipsionism : -ellipsionism ${^0} gimp_ellipsionism_preview : -gimp_split_preview "-gimp_ellipsionism $*",$-1 #@gimp Felt pen : gimp_feltpen, gimp_feltpen_preview(0) #@gimp : Amplitude = float(300,0,4000) #@gimp : Density = float(50,0,100) #@gimp : Smoothness = float(1,0,10) #@gimp : Opacity = float(0.1,0,1) #@gimp : Edge = float(20,0,100) #@gimp : Thickness = int(5,2,32) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/25.") gimp_feltpen : -repeat @# -l[$>] --gimp_hardsketchbw ${1-5},0,0 -blend hardlight -erode_oct $6 -endl -done gimp_feltpen_preview : -gimp_split_preview "-gimp_feltpen $*",$-1 #@gimp Kuwahara : gimp_kuwahara, gimp_kuwahara_preview(0) #@gimp : Iterations = int(2,1,20) #@gimp : Radius = int(5,1,30) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/05/31.") gimp_kuwahara : -apply_channels "-repeat $1 -kuwahara $2 -done",$3,0 gimp_kuwahara_preview : -gimp_split_preview "-gimp_kuwahara $*",$-1 #@gimp Lylejk's painting : gimp_lylejk_painting, gimp_lylejk_painting_preview(0) #@gimp : Iterations = int(2,1,20) #@gimp : Radius = int(4,1,30) #@gimp : Canvas = float(10,0,100) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Lyle Kroll, David Tschumperlé. Latest update: 2011/09/21.") #@gimp : note = link("Filter Explained here","http://www.gimpchat.com/viewtopic.php?f=10&t=2624") gimp_lylejk_painting : -repeat @# --_gimp_lylejk_painting[-1] 10,10.49,0.75,0 -smooth[-1] 300,0.26,1,0,7 -sharpen[-1] $3 [-1] -rv[-3--1] -blend[-2,-1] lighten,0.5 -blend[-2,-1] grainmerge,1 -gimp_kuwahara[-1] $1,$2,0 -texturize_canvas[-1] $3,4 -mv[-1] 0 -done gimp_lylejk_painting_preview : -gimp_split_preview "-gimp_lylejk_painting $*",$-1 _gimp_lylejk_painting : -apply_channels "-repeat $1 -b $3 -unsharp $3,$2 -c 0,255 -mv[-1] 0 -done",$4,0 #@gimp Painting : gimp_painting, gimp_painting_preview(0) #@gimp : Abstraction = int(5,1,10) #@gimp : Details scale = float(2.5,0,5) #@gimp : Color = float(1.5,0,4) #@gimp : Smoothness = float(50,0,1000) #@gimp : Sharpen shades = bool(1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Lyle Kroll, Angelo Lama, David Tschumperlé.\nLatest update: 2011/02/28.") gimp_painting : -skip ${4=0},${5=0} -repeat @# -l[$>] -to_colormode {max(3,s)} -split_opacity -rv -repeat $1 -gimp_normalize_local[-1] 10,6,5,20,1,3 -done -gimp_anisotropic_smoothing[-1] {100*$2},0.2,1,$2,{2*$2},0.8,90,2,0,1,1,2,1,16 -gimp_mix_lab[-1] 1,0,0,$3,0,0.5,$3,0,0.5,0,2,0 -if $5 -gimp_segment_watershed[-1] 10,1,0 -endif -smooth[-1] $4,0,1,1,1 -rv -a c -endl -done gimp_painting_preview : -gimp_split_preview "-gimp_painting $*",$-1 #@gimp Pen drawing : gimp_pen_drawing, gimp_pen_drawing_preview(0) #@gimp : Amplitude = float(10,0,30) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_pen_drawing : -drawing $1 gimp_pen_drawing_preview : -gimp_split_preview "-gimp_pen_drawing $*",$-1 #@gimp Poster edges : gimp_poster_edges, gimp_poster_edges_preview(0) #@gimp : Image smoothness = float(20,0,100) #@gimp : Edge threshold = float(60,0,100) #@gimp : Edge shade = float(5,0,30) #@gimp : Edge thickness = float(0,0,5) #@gimp : Edge antialiasing = float(10,0,100) #@gimp : Posterization level = int(0,0,15) #@gimp : Posterization antialiasing = float(0,0,100) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: David Tschumperlé and David Revoy. Latest update: 2012/11/30.") gimp_poster_edges : -if $1 -bilateral 10,$1 -endif -poster_edges ${2-7} gimp_poster_edges_preview : -gimp_split_preview "-gimp_poster_edges $*",$-1 #@gimp Rodilius : gimp_rodilius, gimp_rodilius_preview(1) #@gimp : Amplitude = float(10,0,30) #@gimp : Thickness = float(10,0,100) #@gimp : Sharpness = float(300,0,1000) #@gimp : Orientations = int(5,2,36) #@gimp : Offset = float(30,0,180) #@gimp : Smoothness = int(0,0,5) #@gimp : Color mode = choice(1,"Darker","Lighter") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Rod/GimpChat and David Tschumperlé. Latest update: 2013/03/05.") gimp_rodilius : -apply_channels "-rodilius ${1-5,7} -repeat $6 -smooth 10,0,1,1,1,0.8,45 -sharpen 30 -done -c 0,255",$8,0 gimp_rodilius_preview : -gimp_split_preview "-gimp_rodilius $*",$-1 #@gimp Shapeism : gimp_shapeism, gimp_shapeism_preview(0) #@gimp : Shape = choice(2,"Squares","Triangles","Circles","Diamond","Hexagon","Octagon","Stars","Custom") #@gimp : Branches = int(7,2,16) #@gimp : Thickness = float(0.38,0,1) #@gimp : Angle = float(0,0,360) #@gimp : note = note("Note: Parameters Branches, Thickness and Angle are used only for Custom shapes.") #@gimp : Antialiasing = bool(1) #@gimp : sep = separator() #@gimp : Scales = int(5,1,16) #@gimp : Maximal size = int(32,1,256) #@gimp : Minimal size = int(8,1,256) #@gimp : Allow angle = choice(3,"0 deg.","180 deg.","90 deg.","Any") #@gimp : Spacing = int(1,-5,5) #@gimp : Precision = int(5,1,10) #@gimp : Edges = float(0.5,0,2) #@gimp : Smoothness = float(1,0,10) #@gimp : Background = color(0,0,0,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/11.") gimp_shapeism : -repeat @# -l[$>] -to_rgb --gradient_norm -b[-1] $13% -pow[-1] $12 -quantize[-1] $6,0,0 100%,100%,1,2 -repeat $6 # Create map of possible locations. --channels[2] 100% --gt[1] $> -neq[-2] 0 -or[-2,-1] -a[2,-1] c # Create shape at given scale. size={if($6<=1,$7,$7+($8-$7)*$>/($6-1))} -if {$size<1} -break -endif -if $5 {2*$size},{2*$size} -_gimp_shapeism$1[-1] ${2-4} -r2dy[-1] $size -else $size,$size -_gimp_shapeism$1[-1] ${2-4} -endif --neq[-1] 0 -expand_xy[-2,-1] 1,0 -n[-2,-1] 0,1 -if {$10<1} -dilate[-1] 3 -endif [-1] -a[-3--1] c # Pack sprites for given scale -rprogress "-pack_sprites[-2,-1] 1,100,$9,$10,$11",{$>*100/$6},{($>+1)*100/$6} -channels[-1] 0,1 -done -rprogress 97 -rm[1] -channels[-1] 0 --neq[-1] 0 -blend[0,-1] shapeaverage0 -*[1] 255 -a c -i[0] 100%,100%,1,4 -fc[0] $14,$15,$16,$17 -blend alpha -rprogress 100 -endl -done gimp_shapeism_preview : -if @#>=1 -k[0] -else 256,256 -endif -_gimp_no_preview " ","$*" 50%,50% -_gimp_shapeism$1[-1] ${2-4} -frame[-1] 1,1,0 -ge[-1] 50% -n[-1] 0,255 -r[-1] 100%,100%,1,4 -r[-1] [0],0,0,0.5,0.5 -or _gimp_shapeism0 : # Square -f 255 -skip $* _gimp_shapeism1 : # Triangle -polygon 3,50%,0,0,100%,100%,100%,1,1 -skip $* _gimp_shapeism2 : # Circle -_dt_circle {w} -rm[-2] -skip $* _gimp_shapeism3 : # Diamond -_dt_diamond {w} -rm[-2] -skip $* _gimp_shapeism4 : # Hexagon -star3d 3,1 -*3d[-1] @{0,min(w,h)/2} -object3d[0] [-1],50%,50%,0,1,2,0 -k[0] -skip $* _gimp_shapeism5 : # Octogon -star3d 4,1 -*3d[-1] @{0,min(w,h)/2} -object3d[0] [-1],50%,50%,0,1,2,0 -k[0] -skip $* _gimp_shapeism6 : # Star -star3d 5 -*3d[-1] @{0,min(w,h)/2} -object3d[0] [-1],50%,50%,0,1,2,0 -k[0] -skip $* _gimp_shapeism7 : # Custom -star3d $1,$2 -*3d[-1] @{0,min(w,h)/2} -r3d[-1] 0,0,1,$3 -object3d[0] [-1],50%,50%,0,1,2,0 -k[0] #@gimp Warhol : warhol, warhol(1) #@gimp : X-tiles = int(3,1,10) #@gimp : Y-tiles = int(3,1,10) #@gimp : Smoothness = float(2,0,10) #@gimp : Color = float(40,0,60) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Whirl drawing : draw_whirl, gimp_draw_whirl_preview(0) #@gimp : Amplitude = float(20,0,100) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_draw_whirl_preview : -gimp_split_preview "-draw_whirl $*",$-1 #@gimp _Black & white #-------------------------------- #@gimp Black & White : gimp_blackandwhite, gimp_blackandwhite_preview(1) #@gimp : Red level = float(0.299,0,1) #@gimp : Red smoothness = float(0,0,10) #@gimp : Green level = float(0.587,0,1) #@gimp : Green smoothness = float(0,0,10) #@gimp : Blue level = float(0.114,0,1) #@gimp : Blue smoothness = float(0,0,10) #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,0,360) #@gimp : Saturation = float(0,0,1) #@gimp : sep = separator() #@gimp : Grain (shadows) = float(0,0,200) #@gimp : Grain (midtones) = float(0,0,200) #@gimp : Grain (highlights) = float(0,0,200) #@gimp : Grain tone fading = float(2,0,10) #@gimp : Grain scale = float(0,0,3) #@gimp : Grain type = choice("Gaussian","Uniform","Salt and pepper","Poisson") #@gimp : sep = separator() #@gimp : Local contrast = float(0,0,60) #@gimp : Radius = int(16,1,512) #@gimp : Contrast smoothness = float(4,0,10) #@gimp : sep = separator() #@gimp : Pseudo-gray dithering = int(0,0,5) #@gimp : Use maximum tones = bool(false) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/02/20.") gimp_blackandwhite : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -s[-1] c # Isolate opacity -*[-3] $1 -b[-3] $2% # Red contrast + smoothness -*[-2] $3 -b[-2] $4% # Green contrast + smoothness -*[-1] $5 -b[-1] $6% # Blue contrast + smoothness -+[-3--1] -/[-1] {$1+$3+$5} -c[-1] 0,255 # (R,G,B) -> B&W -apply_gamma[-1] $7 # Gamma correction --[-1] 128 -*[-1] $8 -+[-1] 128 -+[-1] $9 -c[-1] 0,255 # B&W contrast and brightness. 100%,100% [-1]x2 # Create noise for shadows, midtones and highlights. -noise[-3] 100,$17 -b[-3] $16% -n[-3] -$12,$12 # Scaled grain on shadows. -noise[-2] 100,$17 -b[-2] $16% -n[-2] -$13,$13 # Scaled grain on midtones. -noise[-1] 100,$17 -b[-1] $16% -n[-1] -$14,$14 # Scaled grain on highlights. --tones[-4] 3 -b[-3--1] $15% # Get smoothed tones. -*[-6,-3] -*[-4,-2] -*[-2,-1] # Get noisy tones. -+[-4--1] -c[-1] 0,255 # Compose them with the B&W image. -if {$10||$11} -/[-1] 255 -i[-2] 100%,100%,1,1,$11 -i[-3] 100%,100%,1,1,$10 -a[-3--1] c -hsv2rgb[-1] -endif -rv -a c -endl -mv[-1] 0 -done # Re-compose opacity and loop to next image. -if $18 -normalize_local $18,$19,$20,2%,1,0,255 -endif -if $22 -n 0,255 -endif -if $21 -to_pseudogray $21,1 -endif gimp_blackandwhite_preview : -gimp_split_preview "-gimp_blackandwhite $*",$-1 #@gimp Charcoal : gimp_charcoal, gimp_charcoal_preview(0) #@gimp : Granularity = int(65,0,800) #@gimp : Lowlights crossover point = int(70,0,255) #@gimp : Highlights crossover point = int(170,0,255) #@gimp : Boost contrast = bool(0) #@gimp : Resize image for optimum effect = bool(1) #@gimp : Add chalk highlights = bool(0) #@gimp : Minimal highlights = int(50,0,255) #@gimp : Maximal highlights = int(70,0,255) #@gimp : Background color = color(255,255,255) #@gimp : Foreground color = color(0,0,0) #@gimp : Invert background/foreground = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/17.") #@gimp : note = note("Inspired from the Charcoal script by micomicon :") #@gimp : link = link("http://registry.gimp.org/node/25078") gimp_charcoal : -repeat @# -l[$>] -split_opacity -l[0] -compose_channels max w={w} h={h} -if $5 -resize[-1] 150%,150%,1,1,6 -endif -if $4 -equalize[-1] 256 -n[-1] 0,255 -endif -sharpen {$1*3} -cut 0,255 -if $6 --t2 $7,$8 -endif # Add highlights layer if required. -t2[0] $2,$3 -if {!$15} -eq[0] 0 -endif -or --*[0] $10 --*[0] $11 -*[0] $9 -append[-3--1] c -replace_color 0,0,0,0,0,$12,$13,$14 -r $w,$h,1,100%,2 -endl -a c -endl -done gimp_charcoal_preview : -gimp_split_preview "-gimp_charcoal $*",$-1 #@gimp Colorize [comics] : gimp_colorize_comics, gimp_colorize_comics_preview(1) #@gimp : note = note("Layers ordering:") #@gimp : Input layers = choice{0,"Color spots + lineart","Lineart + color spots","Color spots + extrapolated colors + lineart","Lineart + color spots + extrapolated colors"} #@gimp : Output layers = _choice{1,"Single (merged)","Extrapolated colors + lineart","Lineart + extrapolated colors","Color spots + extrapolated colors + lineart","Lineart + color spots + extrapolated colors"} #@gimp : sep = separator() #@gimp : Smoothness = float(0.05,0,1) #@gimp : sep = separator(), note = note{"Note: You probably need to select All for the Input layers option on the left.\n #@gimp : Color spots = your layer with color indications.\n #@gimp : Lineart = your layer with line-art (b&w or transparent).\n #@gimp : Extrapolated colors = the G'MIC generated layer with flat colors.\n\n #@gimp : Warning: Do not rely too much on the preview, it is probably not accurate ! #@gimp : "} #@gimp : sep = separator(), note = note("Authors: David Tschumperlé, Timothée Giet, David Revoy. Latest update: 2013/06/19.") #@gimp : link = link(0.5,"More infos on this filter","http://www.gimpchat.com/viewtopic.php?f=28&t=7567") gimp_colorize_comics : -if {@#<2} -return -endif -if {$1<2} selection=0,1 -else selection=0,1,2 -endif -l[$selection] # Format input layers. -if {$1==0} # Color strokes + drawing -elif {$1==1} -rv # Drawing + color strokes -elif {$1==2} -rm[1] # Color strokes + extrapolated colors + drawing -elif {$1==3} -rm[2] -rv # Drawing + color strokes + extrapolated colors. -endif # Here we have only 'color strokes + drawing' -> process. --to_rgba[0] -split_opacity[-1] -+[-2] 1 -neq[-1] 0 -*[-2,-1] # Map of color labels to spread. --norm[1] -n[-1] 0,1 --histogram[-1] 2,0,1 -if {i(0)>i(1)} -*[-2] -1 -+[-2] 1 -endif -rm[-1] # Determine color model of the drawing. -b[-1] $3% -watershed[-2] [-1] -rm[-1] # Priority map. --[-1] 1 # Here we have 'color strokes + drawing + extrapolated colors'. # Format output layers. -if {$2==0} -rm[0] -rv -blend[0,1] multiply -elif {$2==1} -rm[0] -rv -elif {$2==2} -rm[0] -elif {$2==3} -rv[1,2] -elif {$2==4} -rv[0,1] -endif -endl gimp_colorize_comics_preview : -gimp_colorize_comics $1,0,$3 #@gimp Colorize [photographs] : gimp_recolorize, gimp_recolorize_preview(1) #@gimp : Smoothness = int(2,0,6) #@gimp : Anisotropy = float(0.2,0,1) #@gimp : Output mode = choice("Merge brightness/colors","Split brightness/colors") #@gimp : sep = separator() #@gimp : note = note{"Note: This filter needs two layers to work properly. The bottom layer must be a B&W image, while the #@gimp : top layer contains color patches that will be extrapolated in a smart way (edge-directed) to fill the entire image. At the end, #@gimp : you get a completely recolored image."} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/16.") gimp_recolorize : -repeat {int(@#/2)} -if $3 s=$>,{$>+1} -else s={2*$>},{2*$>+1} -endif -l[$s] -rv[0,1] -channels[0] 0 -to_rgb[-2] # Convert to pure gray. -to_rgba[-1] -split_opacity[-1] -neq[-1] 0 # Retrieve mask of color patchs. -srgb2rgb[-3,-2] -rgb2lab8[-3,-2] -channels[-3] 0 -channels[-2] 1,2 # Now, list is [0]=lightness / [1]=chroma / [2]=mask. -+[-2] 1 -*[-2] [-1] --gradient_norm[-3] -*[-1] -1 -watershed[-3] [-1] -rm[-1] --[-2] 1 # Get first estimate for the color interpolation. --diffusiontensors[-3] $2,1,0.5,0.5 -eq[-2] 0 -*[-1] [-2] -rm[-2] -smooth[-2] [-1],{$1*80},0.8,60 -rm[-1] -a[-2,-1] c -lab82rgb[-1] -rgb2srgb[-1] -if $3 -rgb2hsv[-1] -s[-1] c -i[2] 100%,100%,1,1,1 -i[3] 100%,100%,1,2,0 -a[0-2] c -a[^0] c -hsv2rgb -rv -endif -endl -done gimp_recolorize_preview : -gimp_recolorize $* -a x #@gimp Colorize [with colormap] : gimp_bwrecolorize, gimp_bwrecolorize_preview #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Normalize = bool(0) #@gimp : sep = separator() #@gimp : Gradient preset = choice("User-defined","Black to white","White to black","Sepia","Solarize") #@gimp : Interpolation type = choice(1,"Nearest","Linear","Cubic","Lanczos") #@gimp : Preserve initial brightness = bool(0) #@gimp : sep = separator(), note = note("User-defined gradient :") #@gimp : Number of tones = int(5,2,8) #@gimp : 1st tone = color(0,0,0,255) #@gimp : 2nd tone = color(43,25,55,255) #@gimp : 3rd tone = color(158,137,189,255) #@gimp : 4th tone = color(224,191,228,255) #@gimp : 5th tone = color(255,255,255,255) #@gimp : 6th tone = color(255,255,255,255) #@gimp : 7th tone = color(255,255,255,255) #@gimp : 8th tone = color(255,255,255,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_bwrecolorize : -remove_opacity -if $4 -n 0,255 -endif -if {$5==0} # User-defined gradient (${9--2}) -r[-1] 4,$8,1,1,-1 -permute[-1] yzcx -elif {$5==1} # Black to white (0,255^0,255^0,255^255,255) -elif {$5==2} # White to black (255,0^255,0^255,0^255,255) -elif {$5==3} # Sepia (0,44,115,143,196,244^0,20,84,119,184,235^0,5,44,73,144,200^255,255,255,255,255,255) -else # Solarize (0,359^1,1^1,1^255,255) -r[-1] 256,1,1,4,3 -sh[-1] 0,2 -hsv2rgb[-1] -rm[-1] -endif -if {$6==0} -r[-1] 256,1,1,4,1 -elif {$6==1} -r[-1] 256,1,1,4,3 -elif {$6==2} -r[-1] 256,1,1,4,5 -c[-1] 0,255 -else -r[-1] 256,1,1,4,6 -endif -if {$7==1} -sh[-1] 0,2 -rgb2hsv[-1] -sh[-1] 2,2 -f[-1] x/w -hsv2rgb[-2] -rm[-2,-1] -endif -l[^-1] -luminance -apply_gamma $1 -- 128 -* $2 -+ {$3+128} -c 0,255 -endl -map[^-1] [-1] -rm[-1] gimp_bwrecolorize_preview : -gimp_split_preview "-gimp_bwrecolorize ${^0}",$-1 #@gimp Dithering : gimp_ditheredbw, gimp_ditheredbw_preview(0) #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Smoothness = float(0,0,10) #@gimp : Hue = float(0,0,360) #@gimp : Saturation = float(0,0,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_ditheredbw : -repeat @# -l[$>] -split_opacity -l[0] -luminance -n 0,255 -apply_gamma $1 -- 128 -* $2 -+ 128 -+ $3 -b $4 -c 0,255 -ditheredbw -if {$5||$6} -/ 255 -i[0] 100%,100%,1,2 -fc[0] $5,$6 -a c -hsv2rgb -endif -endl -a c -endl -done gimp_ditheredbw_preview : -gimp_split_preview "-gimp_ditheredbw $*",$-1 #@gimp Hard sketch : gimp_hardsketchbw, gimp_hardsketchbw_preview(0) #@gimp : Amplitude = float(300,0,4000) #@gimp : Density = float(50,0,100) #@gimp : Smoothness = float(1,0,10) #@gimp : Opacity = float(0.1,0,1) #@gimp : Edge = float(20,0,100) #@gimp : Fast approximation = bool(0) #@gimp : Negative = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_hardsketchbw : -b $3 -hardsketchbw $1,$2,$4,$5,$6 -if $7 -negative -endif gimp_hardsketchbw_preview : -gimp_split_preview "-gimp_hardsketchbw $*",$-1 #@gimp Hough sketch : gimp_houghsketchbw, gimp_houghsketchbw_preview(0) #@gimp : Smoothness = float(1.25,0,10) #@gimp : Density = float(10,0,70) #@gimp : Radius = int(5,0,30) #@gimp : Threshold = float(80,0,100) #@gimp : Opacity = float(0.1,0,1) #@gimp : Negative = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/05/18.") gimp_houghsketchbw : -b $1 -n 0,255 -houghsketchbw ${2-5} -if $6 -negative -endif gimp_houghsketchbw_preview : -gimp_split_preview "-gimp_houghsketchbw $*",$-1 #@gimp Ink wash : gimp_ink_wash, gimp_ink_wash(0) #@gimp : note = note("Ink wash controls") #@gimp : Size = float(0.14,0,4) #@gimp : Amplitude = float(23,0,200) #@gimp : sep = separator() #@gimp : note = note("Check if you wish visual control on this step") #@gimp : SKIP all other steps = bool(false) #@gimp : note = note ("UNcheck to reactivate the other controls") #@gimp : sep = separator() #@gimp : Smoother Sharpness = float(0.5,0,2) #@gimp : Smoother Edge Protection = float(0.54,0,1) #@gimp : Smoother Softness = float(2.25,0,10) #@gimp : sep = separator() #@gimp : Stretch Contrast = choice("None","Automatic","Automatic & Contrast Mask","Manual Controls") #@gimp : note = note ("To activate the sliders below chose 'Manual Controls'") #@gimp :sep = separator() #@gimp : LN Amplititude = float(2,0,60) #@gimp : LN Size = float(6,0,64) #@gimp : LN Neightborhood-Smoothness = float(5,0,40) #@gimp : LN Average-Smoothness = float(20,0,40) #@gimp : sep = separator(), note = note("Author: PhotoComiX. Latest update: 2011/4/5.") #@gimp : note = link(0,"Forum thread about the filter discussion","http://gimpchat.com/viewtopic.php?f=10&t=914") gimp_ink_wash : -repeat @# -l[$>] -split_opacity -l[0] -gimp_pencilbw[-1] $1,$2,0,0,0 -if {$3==1} -continue -elif {$3==0} -gimp_anisotropic_smoothing[-1] 60,$4,$5,$6,1.1,0.8,30,2,0,1,1,0,1,16 -endif -if {$7==1} -normalize_local[-1] 2,6,5,24,1,0,255 -elif {$7==2} -normalize_local[-1] 2,6,5,24,1,0,255 -gimp_contrast_swm 2,0,0.512 -elif {$7==3} -gimp_normalize_local[-1] $8,$9,$10,$11,1,3,0 -endif -endl -a c -endl -done #@gimp Pencil : gimp_pencilbw, gimp_pencilbw_preview(0) #@gimp : Size = float(0.3,0,5) #@gimp : Amplitude = float(60,0,200) #@gimp : Hue = float(0,0,360) #@gimp : Saturation = float(0,0,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/03/05.") gimp_pencilbw : -pencilbw $1,$2 -if {$3||$4} -repeat @# -l[$>] -split_opacity -/[0] 255 -i[0] 100%,100%,1,1,$4 -i[0] 100%,100%,1,1,$3 -a[0-2] c -hsv2rgb[0] -a c -endl -done -endif gimp_pencilbw_preview : -gimp_split_preview "-gimp_pencilbw $*",$-1 #@gimp Pencil portrait : gimp_pencil_portraitbw, gimp_pencil_portraitbw_preview(0) #@gimp : Stroke length = float(30,0,500) #@gimp : Stroke angle = float(120,0,180) #@gimp : Contour threshold = float(1,0,3) #@gimp : Opacity = float(0.5,0,1) #@gimp : Color = color(144,79,21) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Ramon Miranda and David Tschumperlé. Latest update: 2012/12/11.") gimp_pencil_portraitbw : -repeat @# -l[$>] -split_opacity -l[0] --b 2% --blend divide -rm[-2] -luminance[-1] -gimp_ink_wash[-2] 0,167,0,0.5,0.54,2.25,0,2,6,5,20 --gimp_hardsketchbw[-1] 80,32,1.89,0.21,31.46,0,0 --gimp_sketchbw[-2] 1,$2,180,$1,$3,0.03,0,0.6,0.1,0.6,0.25,1,0,1,0 -blend[0,1] darken -blend[0,1] multiply,0.5 -blend[0,1] lighten,$4 -normalize_local , -to_rgb --fc ${5-7} -blend softlight -endl -a c -endl -done gimp_pencil_portraitbw_preview : -gimp_split_preview "-gimp_pencil_portraitbw $*",$-1 #@gimp Sketch : gimp_sketchbw, gimp_sketchbw_preview(0) #@gimp : Number of orientations = int(2,1,16) #@gimp : Starting angle = float(45,0,180) #@gimp : Angle range = float(180,0,180) #@gimp : Stroke length = float(30,0,1000) #@gimp : Contour threshold = float(1,0,3) #@gimp : Opacity = float(0.03,0,0.3) #@gimp : Background intensity = float(0,0,2) #@gimp : Density = float(0.6,0,5) #@gimp : Sharpness = float(0.1,0,1.5) #@gimp : Anisotropy = float(0.6,0,1) #@gimp : Smoothness = float(0.25,0,10) #@gimp : Coherence = float(1,0,10) #@gimp : Boost stroke = bool(0) #@gimp : Curved stroke = bool(1) #@gimp : Color model = choice("Black on white","White on black","Black on transparent white","White on transparent black") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sketchbw : -sketchbw ${1-14} -if {$15&1} -negative -endif -if {$15==2} -r 100%,100%,1,4 -repeat @# -sh[$>] 3,3 -*[-1] -2 -+[-1] {2*255} -c[-1] 0,255 -rm[-1] -done -elif {$15==3} -r 100%,100%,1,4 -repeat @# -sh[$>] 3,3 -*[-1] 2 -c[-1] 0,255 -rm[-1] -done -endif gimp_sketchbw_preview : -gimp_split_preview "-gimp_sketchbw $*",$-1 #@gimp Stamp : gimp_stamp, gimp_stamp_preview(0) #@gimp : Auto-threshold = bool(1) #@gimp : Threshold = int(50,0,100) #@gimp : Smoothness = float(0,0,10) #@gimp : Sharpening = float(0,0,30) #@gimp : Grain = float(0,0,100) #@gimp : Invert colors = bool(false) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Antaron, Mahvin, David Tschumperlé. Latest update: 2012/10/08.") gimp_stamp : -repeat @# -l[$>] -split_opacity -norm -noise $5 -if $1 -otsu 256 -else -ge $2% -endif -b $3,0 -sharpen $4 -n 0,255 -apply_curve 1,0,0,101,33,170,229,255,255 -if $6 -negative -endif -a c -endl -done gimp_stamp_preview : -gimp_split_preview "-gimp_stamp $*",$-1 #@gimp Stencil : gimp_stencilbw, gimp_stencilbw_preview(0) #@gimp : Threshold = float(10,0,30) #@gimp : Smoothness = float(10,0,30) #@gimp : Hue = float(0,0,360) #@gimp : Saturation = float(0,0,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_stencilbw : -stencilbw $1,$2 -if {$3||$4} -repeat @# -l[$>] -split_opacity -/[0] 255 -i[0] 100%,100%,1,1,$4 -i[0] 100%,100%,1,1,$3 -a[0-2] c -hsv2rgb[0] -a c -endl -done -endif gimp_stencilbw_preview : -gimp_split_preview "-gimp_stencilbw $*",$-1 #@gimp _Colors #--------------------- #@gimp Abstraction : gimp_color_abstraction, gimp_color_abstraction_preview(0) #@gimp : Smoothness = float(1,0,10) #@gimp : Levels = int(10,2,255) #@gimp : Contrast = float(0.2,0.01,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/10/19.") gimp_color_abstraction : -repeat @# -l[$>] -split_opacity -l[0] -to_rgb -b $1 -s c -quantize $2,1,0 -area 0 -^ $3 -n 0,255 -endl -a c -endl -done gimp_color_abstraction_preview : -gimp_split_preview "-gimp_color_abstraction $*",$-1 #@gimp Boost / Fade : gimp_boost_fade, gimp_boost_fade_preview #@gimp : Amplitude = float(5,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/10/12.") gimp_boost_fade : -i[0] 640,480,1,3 -rand[0] 0,1 -b[0] {10-$1} -n[0] 0,255 -transfer_colors -rm[0] gimp_boost_fade_preview : -gimp_split_preview "-gimp_boost_fade $*",$-1 #@gimp Channel processing : gimp_channel_processing, gimp_channel_processing_preview(1) #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Smoothness = float(0,0,10) #@gimp : Value action = choice("None","Cut","Cut & Normalize","Normalize","Threshold") #@gimp : Low value = float(0,0,100) #@gimp : High value = float(100,0,100) #@gimp : Quantization = int(256,1,256) #@gimp : Equalization = bool(0) #@gimp : Negation = bool(0) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : note = note() #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_channel_processing : -apply_gamma[-1] $1 -if {$2!=1} --[-1] 128 -*[-1] $2 -+[-1] 128 -endif -+[-1] $3 -b[-1] $4% -c[-1] 0,255 -if {$5==1} -c[-1] $6%,$7% -elif {$5==2} -c[-1] $6%,$7% -n[-1] 0,255 -elif {$5==3} -n[-1] $6%,$7% -elif {$5==4} -t2[-1] $6%,$7% -*[-1] 255 -endif -if {$8!=256} -quantize[-1] $8,1,0 -endif -if $9 -equalize[-1] 256 -endif -if $10 -negative[-1] -endif gimp_channel_processing : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -gimp_start_mix $11,$12 -apply_channels[-1] "-_gimp_channel_processing $1,$2,$3,$4,$5,$6,$7,$8,$9,$10",$13,0 -gimp_end_mix $11 -if {@#!=3} -rv -a c -endif -endl -mv[-1] 0 -done gimp_channel_processing_preview : -gimp_split_preview "-gimp_channel_processing $*",$-1 #@gimp Color balance : gimp_balance_gamma, gimp_balance_gamma_preview #@gimp : Neutral color = color(128,128,128) #@gimp : Stretch colors = bool(1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/07/01.") gimp_balance_gamma : -balance_gamma[0] ${1-3} -if $4 -repeat @# -l[$>] -split_opacity -l[0] -s c -n 0,255 -a c -endl -a c -endl -done -endif gimp_balance_gamma_preview : -gimp_split_preview "-gimp_balance_gamma $*",$-1 #@gimp Colormap : gimp_colormap,gimp_colormap_preview #@gimp : Colormap = choice[1,"Adaptive","Custom","Standard (256)","HSV (256)","Lines (256)","Hot (256)","Cool (256)","Jet (256)","Flag (256)","Cube (256)"] #@gimp : Dithering = float(1,0,1) #@gimp : sep = separator(), note = note("For adaptive and custom colormaps only :") #@gimp : Number of tones = int(32,2,256) #@gimp : sep = separator(), note = note("For custom colormaps only :") #@gimp : Number of colors = int(8,2,8) #@gimp : 1st color = color(0,0,0) #@gimp : 2nd color = color(255,255,255) #@gimp : 3rd color = color(255,0,0) #@gimp : 4th color = color(0,255,0) #@gimp : 5th color = color(0,0,255) #@gimp : 6th color = color(255,255,0) #@gimp : 7th color = color(255,0,255) #@gimp : 8th color = color(0,255,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/12/27.") gimp_colormap : -repeat @# -l[$>] -split_opacity -to_rgb[0] -if {$1>=2} # Pre-defined colormap. -index[0] {$1-2},$2,1 -elif {$1==1} # Custom colormap. (${5-28}) -z[-1] 0,{3*$4-1} -r[-1] 3,{w/3},1,1,-1 -permute[-1] yzcx -r[-1] $3,1,1,3,3 -index[0] [-1],$2,1 -rm[-1] -else # Adaptive colormap. -autoindex[0] $3,$2,{if($3<=32,1,0)} -endif -a c -endl -done gimp_colormap_preview : -gimp_split_preview "-gimp_colormap $*",$-1 #@gimp Curves : gimp_apply_curve, gimp_apply_curve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : Display histogram = float(0,0,1) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_apply_curve : -apply_channels "-_gimp_apply_curve ${1-13}",$14,$15 _gimp_apply_curve : -apply_curve $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 gimp_apply_curve_preview : -function1d $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -mv[-1] 0 -repeat {@#-1} --gimp_split_preview[-1] "-gimp_apply_curve $*",$-1 100%,100% -axes[-1] 0,255,255,0,13,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,255 -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -if $-2 [-1],[-1] -to_gray[-3] -histogram[-3] 256,0,255 -graph[-1] [-3],3,0,0,0,1,1 -neq[-1] 0 -*[-1] 255 -rm[-3] --xor[-2,-1] -j[-3] [-1],0,0,0,0,$16,[-2],255 -rm[-2,-1] -else -rm[-2] -endif 100%,100% -graph[-1] [0],1,0,255,0,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -_gimp_apply_curve_preview 0,$1,0 -_gimp_apply_curve_preview $2,$3,1 -_gimp_apply_curve_preview $4,$5,2 -_gimp_apply_curve_preview $6,$7,3 -_gimp_apply_curve_preview $8,$9,4 -_gimp_apply_curve_preview $10,$11,5 -_gimp_apply_curve_preview 255,$12,6 -mv[-1] 1 -done -rm[0] _gimp_apply_curve_preview : -if {$1>=0} x={$1*100/255}% y={100-$2*100/255}% -ellipse[-1] $x,$y,3,3,0,1,0xFFFFFFFF,0,0,0 -ellipse[-1] $x,$y,2,2,0,1,0,255,0 -t[-1] $3,$x,{$y*h-20},13,1,255 -endif #@gimp Curves [RGB] #@gimp Red : gimp_apply_RGBcurve, gimp_apply_Rcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Green : gimp_apply_RGBcurve, gimp_apply_Gcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Blue : gimp_apply_RGBcurve, gimp_apply_Bcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp _ gimp_apply_RGBcurve : -skip $1 -gimp_apply_RGBcurve_configfile -repeat {@#-1} -l[$>,-1] -to_colormode[0] {max(3,s)} -sh[0] 0,0 -_gimp_apply_RGBcurve[-1] @{-2,0-12} -rm[-1] -sh[0] 1,1 -_gimp_apply_RGBcurve[-1] @{-2,13-25} -rm[-1] -sh[0] 2,2 -_gimp_apply_RGBcurve[-1] @{-2,26-38} -rm[-1] -endl -done -rm[-1] _gimp_apply_RGBcurve : -apply_curve $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -c 0,255 gimp_apply_Rcurve_preview : -gimp_apply_RGBcurve_configfile -sh[-1] 0,0,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_RGBcurve_preview[^-1] @-1,0,${-2,-1} -rm[-1] gimp_apply_Gcurve_preview : -gimp_apply_RGBcurve_configfile -sh[-1] 1,1,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_RGBcurve_preview[^-1] @-1,1,${-2,-1} -rm[-1] gimp_apply_Bcurve_preview : -gimp_apply_RGBcurve_configfile -sh[-1] 2,2,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_RGBcurve_preview[^-1] @-1,2,${-2,-1} -rm[-1] gimp_apply_RGBcurve_configfile : filename=@{-path_tmp}/.gmic_RGBcurve.dlm -if $filename $filename -else (0,-1,128,-1,128,-1,128,-1,128,-1,128,255,1) -r[-1] 100%,3 -endif gimp_apply_RGBcurve_preview : (${1--3}) -r[-1] 13,3,1,1,-1 -o[-1] @{-path_tmp}/.gmic_RGBcurve.dlm -rm[-1] -function1d $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -function1d $26,0,$14,\ @{"-if {$15>=0} -u $15,$16, -else -u \"\" -endif"}\ @{"-if {$17>=0} -u $17,$18, -else -u \"\" -endif"}\ @{"-if {$19>=0} -u $19,$20, -else -u \"\" -endif"}\ @{"-if {$21>=0} -u $21,$22, -else -u \"\" -endif"}\ @{"-if {$23>=0} -u $23,$24, -else -u \"\" -endif"}\ 255,$25 -function1d $39,0,$27,\ @{"-if {$28>=0} -u $28,$29, -else -u \"\" -endif"}\ @{"-if {$30>=0} -u $30,$31, -else -u \"\" -endif"}\ @{"-if {$32>=0} -u $32,$33, -else -u \"\" -endif"}\ @{"-if {$34>=0} -u $34,$35, -else -u \"\" -endif"}\ @{"-if {$36>=0} -u $36,$37, -else -u \"\" -endif"}\ 255,$38 -a[-3--1] y -mv[-1] 0 -repeat {@#-1} --gimp_split_preview[-1] "-gimp_apply_RGBcurve 0",$-1 100%,100% -axes[-1] 0,255,255,0,13,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,255 -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -if $-2 [-1],[-1],1,1,-{$-2*255/100} -to_gray[-3] -histogram[-3] 256,0,255 -graph[-1] [-3],3,0,0,0,1,0 -rm[-3] -+[-1] {$-2*255/100} -+[-2,-1] -c[-1] 0,255 -else -rm[-2] -endif -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -sh[0] 0,0,0,0 -graph[-2] [-1],1,0,255,0,1,255,128,128 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,200,0,0 -rm[-1] -sh[0] 1,1,0,0 -graph[-2] [-1],1,0,255,0,1,128,255,128 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,0,200,0 -rm[-1] -sh[0] 2,2,0,0 -graph[-2] [-1],1,0,255,0,1,128,128,255 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,0,0,200 -rm[-1] -if {$40==0} -_gimp_apply_curve_preview 0,$1,0 -_gimp_apply_curve_preview $2,$3,1 -_gimp_apply_curve_preview $4,$5,2 -_gimp_apply_curve_preview $6,$7,3 -_gimp_apply_curve_preview $8,$9,4 -_gimp_apply_curve_preview $10,$11,5 -_gimp_apply_curve_preview 255,$12,6 -elif {$40==1} -_gimp_apply_curve_preview 0,$14,0 -_gimp_apply_curve_preview $15,$16,1 -_gimp_apply_curve_preview $17,$18,2 -_gimp_apply_curve_preview $19,$20,3 -_gimp_apply_curve_preview $21,$22,4 -_gimp_apply_curve_preview $23,$24,5 -_gimp_apply_curve_preview 255,$25,6 -else -_gimp_apply_curve_preview 0,$27,0 -_gimp_apply_curve_preview $28,$29,1 -_gimp_apply_curve_preview $30,$31,2 -_gimp_apply_curve_preview $32,$33,3 -_gimp_apply_curve_preview $34,$35,4 -_gimp_apply_curve_preview $36,$37,5 -_gimp_apply_curve_preview 255,$38,6 -endif -mv[-1] 1 -done -rm[0] #@gimp Curves [YCbCr] #@gimp Luminance : gimp_apply_YCbCrcurve, gimp_apply_Ycurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Blue chrominance : gimp_apply_YCbCrcurve, gimp_apply_Cbcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Red Chrominance : gimp_apply_YCbCrcurve, gimp_apply_Crcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp _ gimp_apply_YCbCrcurve : -skip $1 -gimp_apply_YCbCrcurve_configfile -repeat {@#-1} -l[$>,-1] -to_colormode[0] {max(3,s)} -sh[0] 0,2 -rgb2ycbcr[-1] -rm[-1] -sh[0] 0,0 -_gimp_apply_YCbCrcurve[-1] @{-2,0-12} -rm[-1] -sh[0] 1,1 -_gimp_apply_YCbCrcurve[-1] @{-2,13-25} -rm[-1] -sh[0] 2,2 -_gimp_apply_YCbCrcurve[-1] @{-2,26-38} -rm[-1] -sh[0] 0,2 -ycbcr2rgb[-1] -rm[-1] -endl -done -rm[-1] _gimp_apply_YCbCrcurve : -apply_curve $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -c 0,255 gimp_apply_Ycurve_preview : -gimp_apply_YCbCrcurve_configfile -sh[-1] 0,0,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_YCbCrcurve_preview[^-1] @-1,0,${-2,-1} -rm[-1] gimp_apply_Cbcurve_preview : -gimp_apply_YCbCrcurve_configfile -sh[-1] 1,1,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_YCbCrcurve_preview[^-1] @-1,1,${-2,-1} -rm[-1] gimp_apply_Crcurve_preview : -gimp_apply_YCbCrcurve_configfile -sh[-1] 2,2,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_YCbCrcurve_preview[^-1] @-1,2,${-2,-1} -rm[-1] gimp_apply_YCbCrcurve_configfile : filename=@{-path_tmp}/.gmic_YCbCrcurve.dlm -if $filename $filename -else (0,-1,128,-1,128,-1,128,-1,128,-1,128,255,1) -r[-1] 100%,3 -endif gimp_apply_YCbCrcurve_preview : (${1--3}) -r[-1] 13,3,1,1,-1 -o[-1] @{-path_tmp}/.gmic_YCbCrcurve.dlm -rm[-1] -function1d $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -function1d $26,0,$14,\ @{"-if {$15>=0} -u $15,$16, -else -u \"\" -endif"}\ @{"-if {$17>=0} -u $17,$18, -else -u \"\" -endif"}\ @{"-if {$19>=0} -u $19,$20, -else -u \"\" -endif"}\ @{"-if {$21>=0} -u $21,$22, -else -u \"\" -endif"}\ @{"-if {$23>=0} -u $23,$24, -else -u \"\" -endif"}\ 255,$25 -function1d $39,0,$27,\ @{"-if {$28>=0} -u $28,$29, -else -u \"\" -endif"}\ @{"-if {$30>=0} -u $30,$31, -else -u \"\" -endif"}\ @{"-if {$32>=0} -u $32,$33, -else -u \"\" -endif"}\ @{"-if {$34>=0} -u $34,$35, -else -u \"\" -endif"}\ @{"-if {$36>=0} -u $36,$37, -else -u \"\" -endif"}\ 255,$38 -a[-3--1] y -mv[-1] 0 -repeat {@#-1} --gimp_split_preview[-1] "-gimp_apply_YCbCrcurve 0",$-1 -axes[-1] 0,255,255,0,13,1,255 100%,100% -axes[-1] 0,255,255,0,13,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,255 -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -if $-2 [-1],[-1],1,1,-{$-2*255/100} -to_gray[-3] -histogram[-3] 256,0,255 -graph[-1] [-3],3,0,0,0,1,0 -rm[-3] -+[-1] {$-2*255/100} -+[-2,-1] -c[-1] 0,255 -else -rm[-2] -endif -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -sh[0] 0,0,0,0 -graph[-2] [-1],1,0,255,0,1,255,255,255 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,200,200,200 -rm[-1] -sh[0] 1,1,0,0 -graph[-2] [-1],1,0,255,0,1,128,128,255 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,0,0,200 -rm[-1] -sh[0] 2,2,0,0 -graph[-2] [-1],1,0,255,0,1,255,128,128 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,200,0,0 -rm[-1] -if {$40==0} -_gimp_apply_curve_preview 0,$1,0 -_gimp_apply_curve_preview $2,$3,1 -_gimp_apply_curve_preview $4,$5,2 -_gimp_apply_curve_preview $6,$7,3 -_gimp_apply_curve_preview $8,$9,4 -_gimp_apply_curve_preview $10,$11,5 -_gimp_apply_curve_preview 255,$12,6 -elif {$40==1} -_gimp_apply_curve_preview 0,$14,0 -_gimp_apply_curve_preview $15,$16,1 -_gimp_apply_curve_preview $17,$18,2 -_gimp_apply_curve_preview $19,$20,3 -_gimp_apply_curve_preview $21,$22,4 -_gimp_apply_curve_preview $23,$24,5 -_gimp_apply_curve_preview 255,$25,6 -else -_gimp_apply_curve_preview 0,$27,0 -_gimp_apply_curve_preview $28,$29,1 -_gimp_apply_curve_preview $30,$31,2 -_gimp_apply_curve_preview $32,$33,3 -_gimp_apply_curve_preview $34,$35,4 -_gimp_apply_curve_preview $36,$37,5 -_gimp_apply_curve_preview 255,$38,6 -endif -mv[-1] 1 -done -rm[0] #@gimp Curves [Lab] #@gimp Lightness : gimp_apply_Labcurve, gimp_apply_Lcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp A-color : gimp_apply_Labcurve, gimp_apply_acurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp B-color : gimp_apply_Labcurve, gimp_apply_bcurve_preview #@gimp : Starting Y = int(0,0,255) #@gimp : sep = separator() #@gimp : X-coord(1) = int(-1,-1,255) #@gimp : Y-coord(1) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(2) = int(-1,-1,255) #@gimp : Y-coord(2) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(3) = int(-1,-1,255) #@gimp : Y-coord(3) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(4) = int(-1,-1,255) #@gimp : Y-coord(4) = int(128,0,255) #@gimp : sep = separator() #@gimp : X-coord(5) = int(-1,-1,255) #@gimp : Y-coord(5) = int(128,0,255) #@gimp : sep = separator() #@gimp : Ending Y = int(255,0,255) #@gimp : sep = separator() #@gimp : Curve smoothness = float(1,0,1) #@gimp : Display histogram = float(0,0,100) #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp _ gimp_apply_Labcurve : -skip $1 -gimp_apply_Labcurve_configfile -repeat {@#-1} -l[$>,-1] -to_colormode[0] {max(3,s)} -sh[0] 0,2 -rgb2lab[-1] -rm[-1] -sh[0] 0,0 -*[-1] 2.55 -_gimp_apply_Labcurve[-1] @{-2,0-12} -/[-1] 2.55 -rm[-1] -sh[0] 1,1 -+[-1] 86 -*[-1] 1.38587 -_gimp_apply_Labcurve[-1] @{-2,13-25} -/[-1] 1.38587 --[-1] 86 -rm[-1] -sh[0] 2,2 -+[-1] 108 -*[-1] 1.25616 -_gimp_apply_Labcurve[-1] @{-2,26-38} -/[-1] 1.25616 --[-1] 108 -rm[-1] -sh[0] 0,2 -lab2rgb[-1] -rm[-1] -endl -done -rm[-1] _gimp_apply_Labcurve : -apply_curve $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -c 0,255 gimp_apply_Lcurve_preview : -gimp_apply_Labcurve_configfile -sh[-1] 0,0,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_Labcurve_preview[^-1] @-1,0,${-2,-1} -rm[-1] gimp_apply_acurve_preview : -gimp_apply_Labcurve_configfile -sh[-1] 1,1,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_Labcurve_preview[^-1] @-1,1,${-2,-1} -rm[-1] gimp_apply_bcurve_preview : -gimp_apply_Labcurve_configfile -sh[-1] 2,2,0,0 -f[-1] ${1--3} -rm[-1] -gimp_apply_Labcurve_preview[^-1] @-1,2,${-2,-1} -rm[-1] gimp_apply_Labcurve_configfile : filename=@{-path_tmp}/.gmic_Labcurve.dlm -if $filename $filename -else (0,-1,128,-1,128,-1,128,-1,128,-1,128,255,1) -r[-1] 100%,3 -endif gimp_apply_Labcurve_preview : (${1--3}) -r[-1] 13,3,1,1,-1 -o[-1] @{-path_tmp}/.gmic_Labcurve.dlm -rm[-1] -function1d $13,0,$1,\ @{"-if {$2>=0} -u $2,$3, -else -u \"\" -endif"}\ @{"-if {$4>=0} -u $4,$5, -else -u \"\" -endif"}\ @{"-if {$6>=0} -u $6,$7, -else -u \"\" -endif"}\ @{"-if {$8>=0} -u $8,$9, -else -u \"\" -endif"}\ @{"-if {$10>=0} -u $10,$11, -else -u \"\" -endif"}\ 255,$12 -function1d $26,0,$14,\ @{"-if {$15>=0} -u $15,$16, -else -u \"\" -endif"}\ @{"-if {$17>=0} -u $17,$18, -else -u \"\" -endif"}\ @{"-if {$19>=0} -u $19,$20, -else -u \"\" -endif"}\ @{"-if {$21>=0} -u $21,$22, -else -u \"\" -endif"}\ @{"-if {$23>=0} -u $23,$24, -else -u \"\" -endif"}\ 255,$25 -function1d $39,0,$27,\ @{"-if {$28>=0} -u $28,$29, -else -u \"\" -endif"}\ @{"-if {$30>=0} -u $30,$31, -else -u \"\" -endif"}\ @{"-if {$32>=0} -u $32,$33, -else -u \"\" -endif"}\ @{"-if {$34>=0} -u $34,$35, -else -u \"\" -endif"}\ @{"-if {$36>=0} -u $36,$37, -else -u \"\" -endif"}\ 255,$38 -a[-3--1] y -mv[-1] 0 -repeat {@#-1} --gimp_split_preview[-1] "-gimp_apply_Labcurve 0",$-1 -axes[-1] 0,255,255,0,13,1,255 100%,100% -axes[-1] 0,255,255,0,13,1,255 --dilate[-1] 3 -r[-2] [-3] -j[-3] [-2],0,0,0,0,1,[-1],255 -rm[-2,-1] -grid[-1] 10%,10%,0,0,0.3,0xCCCCCCCC,255 -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -if $-2 [-1],[-1],1,1,-{$-2*255/100} -to_gray[-3] -histogram[-3] 256,0,255 -graph[-1] [-3],3,0,0,0,1,0 -rm[-3] -+[-1] {$-2*255/100} -+[-2,-1] -c[-1] 0,255 -else -rm[-2] -endif -line[-1] 0,100%,100%,0,0.3,0xCCCCCCCC,255 -sh[0] 0,0,0,0 -graph[-2] [-1],1,0,255,0,1,255,255,255 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,200,200,200 -rm[-1] -sh[0] 1,1,0,0 -graph[-2] [-1],1,0,255,0,1,255,128,128 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,200,0,0 -rm[-1] -sh[0] 2,2,0,0 -graph[-2] [-1],1,0,255,0,1,128,128,255 --[-1] 1 -graph[-2] [-1],1,0,255,0,0.5,0,0,200 -rm[-1] -if {$40==0} -_gimp_apply_curve_preview 0,$1,0 -_gimp_apply_curve_preview $2,$3,1 -_gimp_apply_curve_preview $4,$5,2 -_gimp_apply_curve_preview $6,$7,3 -_gimp_apply_curve_preview $8,$9,4 -_gimp_apply_curve_preview $10,$11,5 -_gimp_apply_curve_preview 255,$12,6 -elif {$40==1} -_gimp_apply_curve_preview 0,$14,0 -_gimp_apply_curve_preview $15,$16,1 -_gimp_apply_curve_preview $17,$18,2 -_gimp_apply_curve_preview $19,$20,3 -_gimp_apply_curve_preview $21,$22,4 -_gimp_apply_curve_preview $23,$24,5 -_gimp_apply_curve_preview 255,$25,6 -else -_gimp_apply_curve_preview 0,$27,0 -_gimp_apply_curve_preview $28,$29,1 -_gimp_apply_curve_preview $30,$31,2 -_gimp_apply_curve_preview $32,$33,3 -_gimp_apply_curve_preview $34,$35,4 -_gimp_apply_curve_preview $36,$37,5 -_gimp_apply_curve_preview 255,$38,6 -endif -mv[-1] 1 -done -rm[0] #@gimp Decompose channels : gimp_decompose_channels, gimp_decompose_channels_preview #@gimp : Color basis = choice(7,"RGB","HSV","HSL","HSI","YUV","YCbCr","XYZ","Lab","Lch","CMY","CMYK") #@gimp : Action = choice("Decompose","Recompose") #@gimp : Use multiple layers = bool(0) #@gimp : Include opacity layer = bool(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_decompose_channels : -if {!$2} # Decompose -if $4 -to_rgba -else -to_rgb -endif -repeat @# -l[-1] -split_opacity -_gimp_decompose_channels$1[0] -s[0] c -if {!$3} -a x -endif nb=@# -endl -mv[-$nb--1] 0 -done -else # Recompose -channels 0 nbc={3+($1==10)} nb={$nbc+$4} -if $3 -repeat {int(@#/$nb)} -l[0-{$nb-1}] -a[0-{$nbc-1}] c -_gimp_recompose_channels$1[0] -a c -endl -mv[-1] 0 -done -else -repeat @# -l[$>] -s x,$nb -a[0-{$nbc-1}] c -_gimp_recompose_channels$1[0] -a c -endl -mv[-1] 0 -done -endif -endif gimp_decompose_channels_preview : -gimp_decompose_channels ${^0} -append_tiles , _gimp_decompose_channels0 : _gimp_decompose_channels1 : -rgb2hsv8 _gimp_decompose_channels2 : -rgb2hsl8 _gimp_decompose_channels3 : -rgb2hsi8 _gimp_decompose_channels4 : -rgb2yuv8 _gimp_decompose_channels5 : -rgb2ycbcr _gimp_decompose_channels6 : -rgb2xyz8 _gimp_decompose_channels7 : -rgb2lab8 _gimp_decompose_channels8 : -rgb2lch8 _gimp_decompose_channels9 : -rgb2cmy _gimp_decompose_channels10 : -rgb2cmyk _gimp_recompose_channels0 : _gimp_recompose_channels1 : -hsv82rgb _gimp_recompose_channels2 : -hsl82rgb _gimp_recompose_channels3 : -hsi82rgb _gimp_recompose_channels4 : -yuv82rgb _gimp_recompose_channels5 : -ycbcr2rgb _gimp_recompose_channels6 : -xyz82rgb _gimp_recompose_channels7 : -lab82rgb _gimp_recompose_channels8 : -lch82rgb _gimp_recompose_channels9 : -cmy2rgb _gimp_recompose_channels10 : -cmyk2rgb #@gimp Equalize HSV : gimp_hsv_equalizer, gimp_hsv_equalizer_preview #@gimp : Preview bands = bool(false) #@gimp : sep = separator() #@gimp : Hue band = float(180,0,360) #@gimp : Band width = float(40,1,360) #@gimp : Hue shift = float(0,-180,180) #@gimp : Saturation correction = float(0,-0.99,0.99) #@gimp : Value correction = float(0,-0.99,0.99) #@gimp : sep = separator() #@gimp : Hue band = float(180,0,360) #@gimp : Band width = float(40,1,360) #@gimp : Hue shift = float(0,-180,180) #@gimp : Saturation correction = float(0,-0.99,0.99) #@gimp : Value correction = float(0,-0.99,0.99) #@gimp : sep = separator() #@gimp : Hue band = float(180,0,360) #@gimp : Band width = float(40,1,360) #@gimp : Hue shift = float(0,-180,180) #@gimp : Saturation correction = float(0,-0.99,0.99) #@gimp : Value correction = float(0,-0.99,0.99) #@gimp : sep = separator() #@gimp : note = note("Author: Jérome Ferrari. Latest update: 2011/01/14.") #@gimp : note = link("Filter explained here","http://www.flickr.com/groups/gmic/discuss/72157625798533482") gimp_hsv_equalizer : -repeat @# -local[@{>,-1}] -to_rgb -rgb2hsv -split c # From now on 0,1,2 are H,S,V #3 masks: --fill[0] if(abs(i-$2)<$3/2|abs(i-$2-360)<$3/2|abs(i-$2+360)<$3/2,1,0) --fill[0] if(abs(i-$7)<$8/2|abs(i-$7-360)<$8/2|abs(i-$7+360)<$8/2,1,0) --fill[0] if(abs(i-$12)<$13/2|abs(i-$12-360)<$13/2|abs(i-$12+360)<$13/2,1,0) # From now on 3,4,5 are Masks --threshold[1,2] 0.01 -*[-1,-2] [-1]x2 -*[-1,3] -*[-1,4] -*[-1,5] #0 saturation and value not in mask # Hue shift: --*[3] $4 --*[4] $9 --*[5] $14 -+[-1,-2,-3] -+[-1,0] -%[0] 360 # Saturation : -if {$5>=0} --*[3] -$5 -else --*[3] {1/(1+$5)-1} -endif -+[-1] 1 -if {$10>=0} --*[4] -$10 -else --*[4] {1/(1+$10)-1} -endif -+[-1] 1 -if {$15>=0} --*[5] -$15 -else --*[5] {1/(1+$15)-1} -endif -+[-1] 1 -*[-1,-2,-3] -^[1,-1] # Value : -if {$6>=0} --*[3] -$6 -else --*[3] {1/(1+$6)-1} -endif -+[-1] 1 -if {$11>=0} --*[4] -$11 -else --*[4] {1/(1+$11)-1} -endif -+[-1] 1 -if {$16>=0} --*[5] -$16 -else --*[5] {1/(1+$16)-1} -endif -+[-1] 1 -*[-1,-2,-3] -^[2,-1] #reconstruction -rm[3,4,5] -append[0,1,2] c -hsv2rgb -endlocal -done gimp_hsv_equalizer_preview : -local[-1] -if {$1==0} -gimp_hsv_equalizer $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16 -else -to_rgb -rgb2hsv -split c (0,359) -resize[-1] [-2],{@{0,h}/10},1,1,3 [-1] -fill[-1] 1 #create lower band -j[0] [3],0,91% -j[1] [4],0,91% -j[2] [4],0,91% -rm[-1,-2] #paste lower band --fill[0] if(abs(i-$2)<$3/2|abs(i-$2-360)<$3/2|abs(i-$2+360)<$3/2,1,0) --fill[0] if(abs(i-$7)<$8/2|abs(i-$7-360)<$8/2|abs(i-$7+360)<$8/2,1,0) --fill[0] if(abs(i-$12)<$13/2|abs(i-$12-360)<$13/2|abs(i-$12+360)<$13/2,1,0) #masks -or[-3--1] -+[-1] 0.33 -/[-1] 1.33 #1 and 0.25 -*[2,-1] -append c -hsv2rgb -endif -endlocal #@gimp Mixer [RGB] : gimp_mix_rgb, gimp_mix_rgb_preview(1) #@gimp : Red contrast = float(1,0,4) #@gimp : Red brightness = float(0,-255,255) #@gimp : Red smoothness = float(0,0,10) #@gimp : Green contrast = float(1,0,4) #@gimp : Green brightness = float(0,-255,255) #@gimp : Green smoothness = float(0,0,10) #@gimp : Blue contrast = float(1,0,4) #@gimp : Blue brightness = float(0,-255,255) #@gimp : Blue smoothness = float(0,0,10) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_start_mix : -if {$1==1} --tones[-1] 3 -+[-2,-1] -b[-2,-1] $2% -r[-2,-1] [-3] -*[-1] [-3] -mv[-3] @# -elif {$1==2} --tones[-1] 3 -+[-3,-1] -b[-2,-1] $2% -r[-2,-1] [-3] -*[-2] [-3] -mv[-3] @# -elif {$1==3} --tones[-1] 3 -+[-3,-2] -b[-2,-1] $2% -r[-2,-1] [-3] -*[-2] [-3] -mv[-3] @# -endif gimp_end_mix : -if {$1==1} -*[-3,-1] -+[-2,-1] -elif {$1==2} -*[-2,-1] -+[-2,-1] -elif {$1==3} -*[-2,-1] -+[-2,-1] -endif gimp_mix_rgb : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -gimp_start_mix $10,$11 --[-1] 128 -s[-1] c -*[-3] $1 -+[-3] $2 -b[-3] $3% -*[-2] $4 -+[-2] $5 -b[-2] $6% -*[-1] $7 -+[-1] $8 -b[-1] $9% -a[-3--1] c -+[-1] 128 -c[-1] 0,255 -gimp_end_mix $10 -if {@#!=3} -rv -a c -endif -endl -mv[-1] 0 -done gimp_mix_rgb_preview : -gimp_split_preview "-gimp_mix_rgb $*",$-1 #@gimp Mixer [YCbCr] : gimp_mix_ycbcr, gimp_mix_ycbcr_preview(1) #@gimp : Luminance contrast = float(1,0,4) #@gimp : Luminance brightness = float(0,-255,255) #@gimp : Luminance smoothness = float(0,0,10) #@gimp : Blue chroma contrast = float(1,0,4) #@gimp : Blue chroma brightness = float(0,-255,255) #@gimp : Blue chroma smoothness = float(0,0,10) #@gimp : Red chroma contrast = float(1,0,4) #@gimp : Red chroma brightness = float(0,-255,255) #@gimp : Red chroma smoothness = float(0,0,10) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mix_ycbcr : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -gimp_start_mix $10,$11 -rgb2ycbcr[-1] --[-1] 128 -s[-1] c -*[-3] $1 -+[-3] $2 -b[-3] $3% -*[-2] $4 -+[-2] $5 -b[-2] $6% -*[-1] $7 -+[-1] $8 -b[-1] $9% -a[-3--1] c -+[-1] 128 -c[-1] 0,255 -ycbcr2rgb[-1] -gimp_end_mix $10 -if {@#!=3} -rv -a c -endif -endl -mv[-1] 0 -done gimp_mix_ycbcr_preview : -gimp_split_preview "-gimp_mix_ycbcr $*",$-1 #@gimp Mixer [HSV] : gimp_mix_hsv, gimp_mix_hsv_preview(1) #@gimp : Hue contrast = float(1,0,4) #@gimp : Hue brightness = float(0,-180,180) #@gimp : Hue smoothness = float(0,0,10) #@gimp : Saturation contrast = float(1,0,4) #@gimp : Saturation brightness = float(0,-1,1) #@gimp : Saturation smoothness = float(0,0,10) #@gimp : Value contrast = float(1,0,4) #@gimp : Value brightness = float(0,-1,1) #@gimp : Value smoothness = float(0,0,10) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mix_hsv : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -gimp_start_mix $10,$11 -rgb2hsv[-1] -s[-1] c --[-2,-1] 0.5 -*[-3] $1 -+[-3] $2 -b[-3] $3% -*[-2] $4 -+[-2] $5 -b[-2] $6% -*[-1] $7 -+[-1] $8 -b[-1] $9% -%[-3] 360 -+[-2,-1] 0.5 -c[-2,-1] 0,1 -a[-3--1] c -hsv2rgb[-1] -gimp_end_mix $10 -if {@#!=3} -rv -a c -endif -endl -mv[-1] 0 -done gimp_mix_hsv_preview : -gimp_split_preview "-gimp_mix_hsv $*",$-1 #@gimp Mixer [Lab] : gimp_mix_lab, gimp_mix_lab_preview(1) #@gimp : Lightness contrast = float(1,0.5,1.5) #@gimp : Lightness brightness = float(0,-50,50) #@gimp : Lightness smoothness = float(0,0,10) #@gimp : A-color contrast = float(1,0,4) #@gimp : A-color brightness = float(0,-20,20) #@gimp : A-color smoothness = float(0,0,10) #@gimp : B-color contrast = float(1,0,4) #@gimp : B-color brightness = float(0,-20,20) #@gimp : B-color smoothness = float(0,0,10) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mix_lab : -repeat @# -l[$>] -split_opacity -to_rgb[0] -gimp_parallel_overlap[0] "-_gimp_mix_lab $*",0,{3*max($3,$6,$9)} -a c -endl -mv[$>] 0 -done _gimp_mix_lab : -gimp_start_mix $10,$11 -rgb2lab[-1] -s[-1] c -*[-3] $1 -+[-3] $2 -b[-3] $3% -*[-2] $4 -+[-2] $5 -b[-2] $6% -*[-1] $7 -+[-1] $8 -b[-1] $9% -a[-3--1] c -lab2rgb[-1] -gimp_end_mix $10 gimp_mix_lab_preview : -gimp_split_preview "-gimp_mix_lab $*",$-1 #@gimp Mixer [CMYK] : gimp_mix_cmyk, gimp_mix_cmyk_preview(1) #@gimp : Cyan contrast = float(1,0,4) #@gimp : Cyan brightness = float(0,-255,255) #@gimp : Cyan smoothness = float(0,0,10) #@gimp : Magenta contrast = float(1,0,4) #@gimp : Magenta brightness = float(0,-255,255) #@gimp : Magenta smoothness = float(0,0,10) #@gimp : Yellow contrast = float(1,0,4) #@gimp : Yellow brightness = float(0,-255,255) #@gimp : Yellow smoothness = float(0,0,10) #@gimp : Key contrast = float(1,0,4) #@gimp : Key brightness = float(0,-255,255) #@gimp : Key smoothness = float(0,0,10) #@gimp : note = note() #@gimp : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gimp : Tones smoothness = float(2,0,10) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mix_cmyk : -repeat @# -l[-1] -split_opacity -rv -to_rgb[-1] -gimp_start_mix $13,$14 -rgb2cmyk[-1] -s[-1] c -*[-4] $1 -+[-4] $2 -b[-4] $3% -*[-3] $4 -+[-3] $5 -b[-3] $6% -*[-2] $7 -+[-2] $8 -b[-2] $9% -*[-1] $10 -+[-1] $11 -b[-1] $12% -a[-4--1] c -cmyk2rgb[-1] -gimp_end_mix $13 -if {@#!=3} -rv -a c -endif -endl -mv[-1] 0 -done gimp_mix_cmyk_preview : -gimp_split_preview "-gimp_mix_cmyk $*",$-1 #@gimp Replace color : gimp_replace_color, gimp_replace_color(0) #@gimp : Tolerance = float(100,1,450) #@gimp : Smoothness = float(0,0,10) #@gimp : Selected color = color(255,255,255,255) #@gimp : Replaced color = color(0,0,0,0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_replace_color : -to_rgba -replace_color $1,$2%,${3--1} -c 0,255 #@gimp Select color : gimp_select_color, gimp_select_color(1) #@gimp : Similarity space = choice(0,"RGB[A]","RGB","YCbCr","Red","Green","Blue","Opacity","Luminance","Blue & Red chrominances","Hue","Saturation") #@gimp : Tolerance = float(20,0,100) #@gimp : Smoothness = float(0,0,10) #@gimp : Selected color = color(255,255,255,255) #@gimp : Output as = choice(0,"Selected colors","Selected mask") #@gimp : Invert selection = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_select_color : -if {$1==1} -to_rgb # RGB -elif {$1==2} -to_rgb -rgb2ycbcr # YCbCr -elif {$1==3} -channels 0 # R -elif {$1==4} -channels 1 # G -elif {$1==5} -channels 2 # B -elif {$1==6} -to_rgba -channels 3 # Opacity -elif {$1==7} -to_rgb -rgb2ycbcr -channels 0 # Luminance -elif {$1==8} -to_rgb -rgb2ycbcr -channels 1,2 # B&R chrominances -elif {$1==9} -to_rgb -rgb2hsv -channels 0 # Hue -elif {$1==10} -to_rgb -rgb2hsv -channels 1 # Saturation -endif gimp_select_color : ($4^$5^$6^$7) -_gimp_select_color[-1] $1 color=@-1 -rm[-1] -repeat @# -if {$8==0} # Output selected colors. --_gimp_select_color[-1] $1 -select_color[-1] $2%,$color -b[-1] $3% -if $9 -*[-1] -1 -+[-1] 1 -endif -to_rgba[-2] -s[-2] c -*[-2,-1] -a[-4--1] c -else -_gimp_select_color[-1] $1 -select_color[-1] $2%,$color -b[-1] $3 -if $9 -*[-1] -1 -+[-1] 1 -endif -*[-1] 255 -r[-1] 100%,100%,1,4 -endif -mv[-1] 0 -done #@gimp Sepia : gimp_sepia, gimp_sepia_preview #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sepia : -sepia -repeat @# -sh[-1] 0,2 -apply_gamma[-1] $1 --[-1] 128 -*[-1] $2 -+[-1] {128+$3} -c[-1] 0,255 -rm[-1] -mv[-1] 0 -done gimp_sepia_preview : -gimp_split_preview "-gimp_sepia $*",$-1 #@gimp User-defined : gimp_custom_transform, gimp_custom_transform #@gimp : Red - Green - Blue - Alpha = text{"i"} #@gimp : Red - Green - Blue = text{"i + 90*(x/w)*cos(i/10)"} #@gimp : Red = text{"i"} #@gimp : Green = text{"i"} #@gimp : Blue = text{"i"} #@gimp : Alpha = text{"i"} #@gimp : Value normalization = choice("None","RGB","RGBA") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_custom_transform : -to_rgba -repeat @# -f[-1] "$1" -s[-1] c -a[-4--2] c -f[-2] "$2" -s[-2] c -f[-4] "$3" -f[-3] "$4" -f[-2] "$5" -f[-1] "$6" -if {$7==0} -a[-4--1] c -c[-1] 0,255 -elif {$7==1} -a[-4--2] c -n[-2] 0,255 -c[-1] 0,255 -a[-2,-1] c -else -a[-4--1] c -n[-1] 0,255 -endif -mv[-1] 0 -done #@gimp _Contours #---------------------- #@gimp Convolve : gimp_convolve, gimp_convolve_preview(0) #@gimp : Kernel = choice("Custom","Average 3x3","Average 5x5","Average 7x7","Average 9x9","Prewitt-X","Prewitt-Y","Sobel-X","Sobel-Y","Rotinv-X","Rotinv-Y","Laplacian","Robert Cross 1","Robert Cross 2","Impulses 5x5","Impulses 7x7","Impulses 9x9") #@gimp : Boundary = choice(1,"Dirichlet","Neumann") #@gimp : sep = separator(), note = note("Note: If parameter Kernel is set to Custom, it uses the custom convolution kernel defined below. Use commas and semicolons as separators for res. matrix columns and rows.") #@gimp : Custom kernel = text("0,1,0;1,-4,1;0,1,0") #@gimp : sep = separator(), note = note("Note: Kernel multiplier is useful only when parameter Value range is set to Cut.") #@gimp : Value range = choice(1,"Cut","Normalize") #@gimp : Kernel multiplier = float(1,0,50) #@gimp : sep = separator() #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/06.") gimp_convolve : -apply_channels "-_gimp_convolve $1,$2,\"$3\",${4--3}",$-2,0 _gimp_convolve : -if $1 -_gimp_convolve$1[] -else ($3) -endif -if {!$4} -*[-1] $5 -endif -convolve[0--2] [-1],$2 -if $4 -n 0,255 -else -c 0,255 -endif -rm[-1] _gimp_convolve1 : 3,3 -f 1 -normalize_sum # Average 3x3 _gimp_convolve2 : 5,5 -f 1 -normalize_sum # Average 5x5 _gimp_convolve3 : 7,7 -f 1 -normalize_sum # Average 7x7 _gimp_convolve4 : 9,9 -f 1 -normalize_sum # Average 9x9 _gimp_convolve5 : (1,0,-1;1,0,-1;1,0,-1) # Prewitt-X _gimp_convolve6 : (1,1,1;0,0,0;-1,-1,-1) # Prewitt-Y _gimp_convolve7 : (1,0,-1;2,0,-2;1,0,-1) # Sobel-X _gimp_convolve8 : (1,2,1;0,0,0;-1,-2,-1) # Sobel-Y _gimp_convolve9 : a={0.25*(2-sqrt(2))} b={0.5*(sqrt(2)-1)} ($a,0,-$a;$b,0,-$b;$a,0,-$a) # Rotinv-X _gimp_convolve10 : a={0.25*(2-sqrt(2))} b={0.5*(sqrt(2)-1)} ($a,$b,$a;0,0,0;-$a,-$b,-$a) # Rotinv-Y _gimp_convolve11 : (0,1,0;1,-4,1;0,1,0) # Laplacian _gimp_convolve12 : (1,0;0,-1) # Robert Cross1 _gimp_convolve13 : (0,1;-1,0) # Robert Cross2 _gimp_convolve14 : 3,3 -f 1 -r 7,7,1,1,4,0,0.5,0.5 -autocrop -normalize_sum # Impulse 5x5 _gimp_convolve15 : 3,3 -f 1 -r 9,9,1,1,4,0,0.5,0.5 -autocrop -normalize_sum # Impulse 7x7 _gimp_convolve16 : 3,3 -f 1 -r 11,11,1,1,4,0,0.5,0.5 -autocrop -normalize_sum # Impulse 9x9 gimp_convolve_preview : -gimp_split_preview "-gimp_convolve $1,$2,\"$3\",${4--1}",$-1 #@gimp Curvature : gimp_curvature, gimp_curvature_preview(0) #@gimp : Smoothness = float(2,0,10) #@gimp : Min threshold = float(0,0,100) #@gimp : Max threshold = float(100,0,100) #@gimp : Absolute value = bool(0) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_curvature : -repeat @# -l[$>] -split_opacity -l[0] -b $1 -iee -if $4 -abs -endif -c $2%,$3% -if $5 -negative -endif -n 0,255 -endl -a c -endl -done gimp_curvature_preview : -gimp_split_preview "-gimp_curvature ${^0}",$-1 #@gimp Difference of gaussians : gimp_dog, gimp_dog_preview(1) #@gimp : 1st Variance = float(1.4,0,5) #@gimp : 2nd Variance = float(1.5,0,5) #@gimp : Threshold = float(0,0,49) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_dog : -dog $1%,$2% -c $3%,{100-$3}% -if $4 -negative -endif -n 0,255 gimp_dog_preview : -gimp_split_preview "-gimp_dog ${^0}",$-1 #@gimp Distance transform : gimp_distance, gimp_distance_preview(0) #@gimp : Value = int(128,0,255) #@gimp : Metric = choice(2,"Chebyshev","Manhattan","Euclidean","Squared-Euclidean") #@gimp : Normalization = choice(2,"Cut","Normalize","Modulo") #@gimp : Modulo value = int(32,1,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/07.") gimp_distance : -repeat @# -l[$>] -split_opacity -l[0] -distance $1,$2 -if {$3==0} -c 0,255 -elif {$3==1} -n 0,255 -else -% $4 -n 0,255 -endif -endl -a c -endl -done gimp_distance_preview : -gimp_split_preview "-gimp_distance ${^0}",$-1 #@gimp Edges : gimp_edges, gimp_edges_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Threshold = float(15,0,50) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_edges : -to_rgb -b $1% -edges $2% -if $3 -negative -endif -n 0,255 gimp_edges_preview : -gimp_split_preview "-gimp_edges ${^0}",$-1 #@gimp Edges offsets : gimp_edge_offsets, gimp_edge_offsets_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Threshold = float(15,0,50) #@gimp : Scale = int(4,0,32) #@gimp : Thickness = int(1,0,16) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_edge_offsets : -repeat @# os={s} -b[-1] $1% -gradient_norm[-1] -ge[-1] $2% -skeleton[-1] 0 -distance[-1] 1 -round[-1] 1 -%[-1] $3 -ge[-1] {max(1,$3-$4)} -if {!$5} -negative[-1] -endif -n[-1] 0,255 -to_colormode[-1] $os -mv[-1] 0 -done gimp_edge_offsets_preview : -gimp_split_preview "-gimp_edge_offsets ${^0}",$-1 #@gimp Gradient norm : gimp_gradient_norm, gimp_gradient_norm_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Linearity = float(0.5,0,1.5) #@gimp : Min threshold = float(0,0,100) #@gimp : Max threshold = float(100,0,100) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_gradient_norm : -b $1 -gradient_norm -^ $2 -c $3%,$4% -if $5 -negative -endif -n 0,255 gimp_gradient_norm_preview : -gimp_split_preview "-gimp_gradient_norm ${^0}",$-1 #@gimp Gradient RGB : gimp_gradient2rgb, gimp_gradient2rgb_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Min threshold = float(0,0,100) #@gimp : Max threshold = float(100,0,100) #@gimp : Orientation only = bool(0) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_gradient2rgb : -b $1 -gradient2rgb $4 -c $2%,$3% -if $5 -negative -endif -n 0,255 gimp_gradient2rgb_preview : -gimp_split_preview "-gimp_gradient2rgb ${^0}",$-1 #@gimp Isophotes : gimp_isophotes, gimp_isophotes_preview(0) #@gimp : Levels = int(8,1,256) #@gimp : Smoothness = float(0,0,5) #@gimp : Filling = choice(1,"Transparent","Colors") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_isophotes : -if $3 -topographic_map $1,$2 -else -b $2 -isophotes $1 -endif gimp_isophotes_preview : -gimp_split_preview "-gimp_isophotes ${^0}",$-1 #@gimp Laplacian : gimp_laplacian, gimp_laplacian_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Min threshold = float(0,0,100) #@gimp : Max threshold = float(100,0,100) #@gimp : Absolute value = bool(0) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_laplacian : -b $1 -laplacian -if $4 -abs -endif -c $2%,$3% -if $5 -negative -endif -n 0,255 gimp_laplacian_preview : -gimp_split_preview "-gimp_laplacian ${^0}",$-1 #@gimp Local orientation : gimp_local_orientation, gimp_local_orientation_preview(1) #@gimp : Smoothness = float(0,0,5) #@gimp : Min threshold = float(0,0,100) #@gimp : Max threshold = float(100,0,100) #@gimp : Negative colors = bool(0) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_local_orientation : -b $1% -gradient_orientation 2 -complex2polar -rm[0--1:2] -c $2%,$3% -if $4 -negative -endif gimp_local_orientation : -apply_channels "-_gimp_local_orientation $1,$2,$3,$4",$5,1 gimp_local_orientation_preview : -gimp_split_preview "-gimp_local_orientation ${^0}",$-1 #@gimp Morphological filter : gimp_morpho, gimp_morpho_preview(0) #@gimp : Action = choice("Erosion","Dilation","Opening","Closing", #@gimp : "Original - Erosion","Dilation - Original","Original - Opening","Closing - Original") #@gimp : Size = int(5,2,60) #@gimp : Invert colors = bool(false) #@gimp : Shape = choice(0,"Square","Octagonal","Circular") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Scale = bool(true) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_morpho : -apply_channels "-__gimp_morpho ${^0}",$5,$6 gimp_morpho_preview : -gimp_split_preview "-gimp_morpho ${^0}",$-1 __gimp_morpho : -if {$4==1} suf="_oct" -elif {$4==0} suf="" -else suf="_circ" -endif -if {$1==0} -erode$suf $2 -elif {$1==1} -dilate$suf $2 -elif {$1==2} -erode$suf $2 -dilate$suf $2 -elif {$1==3} -dilate$suf $2 -erode$suf $2 -elif {$1==4} -repeat @# --erode$suf $2 --[-2,-1] -mv[-1] 0 -done -elif {$1==5} -repeat @# --dilate$suf $2 -rv[-2,-1] --[-2,-1] -mv[-1] 0 -done -elif {$1==6} -repeat @# --erode$suf $2 -dilate$suf[-1] $2 --[-2,-1] -mv[-1] 0 -done -else -repeat @# --dilate$suf $2 -erode$suf[-1] $2 -rv[-2,-1] --[-2,-1] -mv[-1] 0 -done -endif -if $3 -repeat @# -l[$>] -split_opacity -negative[0] -a c -endl -done -endif #@gimp Segmentation : gimp_segment_watershed, gimp_segment_watershed_preview(0) #@gimp : Edge threshold = float(2,0,15) #@gimp : Smoothness = float(1,0,5) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_segment_watershed : -apply_channels "-b $2 -segment_watershed $1",$3,0 gimp_segment_watershed_preview : -gimp_split_preview "-gimp_segment_watershed ${^0}",$-1 #@gimp Skeleton : gimp_skeleton, gimp_skeleton_preview(1) #@gimp : Method = choice("Distance","Thinning") #@gimp : Smoothness = float(0,0,10) #@gimp : Curviness = float(0,0,10) #@gimp : Multiple channels = bool(1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/07.") gimp_skeleton : -if {!$4} -norm -endif -b $2% -if $1 -thinning -else -skeleton $3% -endif -* 255 gimp_skeleton_preview : -gimp_split_preview "-gimp_skeleton ${^0}",$-1 #@gimp Thin edges : gimp_thin_edges, gimp_thin_edges_preview(0) #@gimp : Smoothness = float(0,0,10) #@gimp : Threshold = float(15,0,50) #@gimp : Negative colors = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_thin_edges : -b $1% -gradient_norm -ge $2% -thinning -if {!$3} -negative -endif -n 0,255 gimp_thin_edges_preview : -gimp_split_preview "-gimp_thin_edges ${^0}",$-1 #@gimp _Deformations #-------------------------- #@gimp Cartesian transform : gimp_custom_deformation, gimp_custom_deformation(1) #@gimp : X-warping = text{"(w+h)/20 * cos(y*20/h)"} #@gimp : Y-warping = text{"(w+h)/20 * sin(x*20/w)"} #@gimp : Relative warping = bool(1) #@gimp : Interpolation = choice(1,"Nearest neighbor","Linear") #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_custom_deformation : -repeat @# --norm[-1] [-1] -f[-2] "$1" -f[-1] "$2" -a[-2,-1] c -warp[-2] [-1],$3,$4,$5,1 -rm[-1] -mv[-1] 0 -done #@gimp Circle transform : gimp_circle_transform, gimp_circle_transform_preview(1) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : X-scale = float(-2,-16,16) #@gimp : Y-scale = float(-2,-16,16) #@gimp : Radius = float(0.2,0,1) #@gimp : Symmetry = choice("None","Inside","Outside") #@gimp : Interpolation = choice(1,"Nearest neighbor","Linear") #@gimp : Boundary = choice(1,"Transparent","Nearest","Repeat") #@gimp : Preview reference circle = bool(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/08.") gimp_circle_transform : -repeat @# -l[$>] -to_rgba r={$5*sqrt(w^2+h^2)} -if {$6==0} cond="i(X,Y,z,c,$7,$8)" -elif {$6==1} cond="if(N<"$r",i(X,Y,z,c,$7,$8),i)" -else cond="if(N>"$r",i(X,Y,z,c,$7,$8),i)" -endif -f 'U=x-w*$1;V=y-h*$2;N=sqrt(U*U+V*V);Nr=N-$r;X=x+$3*Nr*U/N;Y=y+$4*Nr*V/N;$cond' -endl -done gimp_circle_transform_preview : -gimp_circle_transform $* -repeat @# -l[$>] x0={$1*w} y0={$2*h} r={$5*sqrt(w^2+h^2)} -if $9 -circle $x0,$y0,{$r-1},1,0xFFFFFFFF,0,0,0,255 -circle $x0,$y0,{$r+1},1,0xFFFFFFFF,0,0,0,255 -circle $x0,$y0,$r,1,0xFFFFFFFF,0,255,0,255 -endif -endl -done #@gimp Euclidean - Polar : gimp_euclidean2polar, gimp_euclidean2polar(1) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Dilation = float(1,0.1,10) #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : Inverse transform = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_euclidean2polar : -if $5 -polar2euclidean $1,$2,$3,$4 -else -euclidean2polar $1,$2,$3,$4 -endif #@gimp Fish-eye : fisheye, fisheye(1) #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : Radius = float(70,0,100) #@gimp : Amplitude = float(1,0,2) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Flower : gimp_flower, gimp_flower(1) #@gimp : Amplitude = float(30,-100,100) #@gimp : Petals = int(6,0,20) #@gimp : Offset = float(0,0,100) #@gimp : Angle = float(0,0,360) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_flower : -flower $1,$2,$3%,$4,$5,$6,$7 #@gimp Kaleidoscope [blended] : gimp_rotoidoscope, gimp_rotoidoscope(1) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Angular tiles = int(10,1,72) #@gimp : Smoothness = float(0.5,0,5) #@gimp : Boundary = choice(2,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_rotoidoscope : -rotoidoscope {$1*100}%,{$2*100}%,$3,$4%,$5 #@gimp Kaleidoscope [polar] : gimp_kaleidoscope, gimp_kaleidoscope(1) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : X-offset = float(0,0,100) #@gimp : Y-offset = float(0,0,100) #@gimp : Radius cut = float(100,0,100) #@gimp : Angle cut = float(10,0,100) #@gimp : Boundary = choice(2,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_kaleidoscope : -shift $3%,$4%,0,0,2 -kaleidoscope $1,$2,$5,$6,$7 #@gimp Kaleidoscope [symmetry] : gimp_symmetrizoscope, gimp_symmetrizoscope(1) #@gimp : Iterations = int(4,1,32) #@gimp : Angle = float(0,0,360) #@gimp : Boundary = choice(1,"Transparent","Nearest","Repeat") #@gimp : Symmetry sides = choice("Backward","Forward","Swap") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/07.") gimp_symmetrizoscope : -to_rgba -repeat $1 ang={$2+180*$>/max(1,$1-1)} -symmetrize 50%,50%,$ang,$3,0,{if($4!=2,$4,$>%2)} -done #@gimp Perspective : gimp_warp_perspective, gimp_warp_perspective(1) #@gimp : X-angle = float(1.73,-4,4) #@gimp : Y-angle = float(0,-4,4) #@gimp : Zoom = float(1,0.1,4) #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : X-offset = float(0,0,100) #@gimp : Y-offset = float(0,0,100) #@gimp : Boundary = choice(2,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_warp_perspective : -shift $6%,$7%,0,0,2 -warp_perspective $1,$2,$3,$4,$5,$8 #@gimp Polar transform : gimp_transform_polar, gimp_transform_polar(1) #@gimp : Preset = choice("Custom transform","Inverse radius","Swap radius/angle") #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : Radius = text{"r + R/10*cos(a*5)"} #@gimp : Angle = text{"a"} #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_transform_polar : -if {$1==0} -transform_polar "$4","$5",$2,$3,$6 -elif {$1==1} -transform_polar R-r,a,$2,$3,$6 -else -transform_polar a*R/(2*pi),r*2*pi/R,$2,$3,$6 -endif #@gimp Raindrops : raindrops, raindrops(0) #@gimp : Amplitude = float(80,0,300) #@gimp : Density = float(0.1,0,1) #@gimp : Wavelength = float(1,0,2) #@gimp : Merging steps = int(0,0,20) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/28.") #@gimp Random : deform, deform(0) #@gimp : Amplitude = float(10,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Ripple : ripple, ripple(0) #@gimp : Amplitude = float(10,0,100) #@gimp : Size = float(20,1,300) #@gimp : Shape = choice(2,"Bloc","Triangle","Sine","Sine+","Random") #@gimp : Angle = float(0,0,360) #@gimp : Offset = float(0,0,500) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/08/23.") #@gimp Reflection : gimp_reflect, gimp_reflect(1) #@gimp : Height = float(50,0,100) #@gimp : Attenuation = float(1,0.1,4) #@gimp : Color = color(110,160,190,64) #@gimp : Waves amplitude = float(0,0,100) #@gimp : Waves smoothness = float(1.5,0,4) #@gimp : X-angle = float(0,-10,10) #@gimp : Y-angle = float(-3.30,-10,10) #@gimp : Focale = float(7,0,10) #@gimp : Zoom = float(1.5,1,5) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_reflect : -repeat @# -to_rgba[-1] --rows[-1] {100-$1}%,100% -mirror[-1] y -water[-1] $7,$8 -s[-1] c -f[-4] "(i*(255-$6) + $6*$3)/255" -f[-3] "(i*(255-$6) + $6*$4)/255" -f[-2] "(i*(255-$6) + $6*$5)/255" -a[-4--1] c -*[-1] '(h^$2-y^$2)/h^$2' -a[-2,-1] y 100%,100%,100%,1,$11*$12*(x/w-0.5) 100%,100%,100%,1,$11*$12*(y/h-0.5) 100%,100%,100%,1,"$10*(x/w-0.5) + $9*(y/h-0.5) + $11" -/[-3] [-1] -+[-3] 0.5 -*[-3] @{-3,w} -/[-2,-1] -+[-1] 0.5 -*[-1] {h} -a[-2,-1] c -warp[-2] [-1],0,1,0 -rm[-1] -mv[-1] 0 -done -autocrop 0,0,0,0 #@gimp Sphere : gimp_map_sphere, gimp_map_sphere_preview(1) #@gimp : Width = _int(512,1,4096) #@gimp : Height = _int(512,1,4096) #@gimp : Radius = float(90,0,400) #@gimp : Dilation = float(0.5,0,1) #@gimp : Angle = float(0,-50,50) #@gimp : Border smoothness = float(0,0,200) #@gimp : Border width = float(20,0,100) #@gimp : Orientation = choice("0 deg.","90 deg.","180 deg.","270 deg.") #@gimp : Background = choice("Transparent","Mean color") #@gimp : Fading = float(0,0,100) #@gimp : Fading shape = float(0.5,0,3) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/11/07.") gimp_map_sphere : -rotate {$8*90} -if $6 -repeat @# -shift[-1] 50%,0,0,0,2 --columns[-1] {(1-$7/100)*w/2},{(1+$7/100)*w/2} 100% -gaussian[-1] {0.1*w},{h},0 100% 100% -a[-3--1] c -r[-1] [-2],[-2],1,3 -smooth[-2] [-1],$6,5,0 -rm[-1] -j[-2] [-1],{(1-$7/100)*@{-2,w}/2} -rm[-1] -shift[-1] -50%,0,0,0,2 -mv[-1] 0 -done -endif -shift $5%,0,0,0,2 -to_rgba -if $9 -repeat @# --rows[$>] 0 -r[-1] 1,1,1,4,2 RGBA$>=@-1 -r[-1] [$>],[$>],1,4 --[$>,-1] -done -endif -map_sphere $1,$2,$3,$4,$10,$11 -if $9 -repeat @# (${RGBA$>}) -y[-1] c -r[-1] [$>],[$>],1,4 -+[$>,-1] -done -endif gimp_map_sphere_preview : -gimp_map_sphere {w},{h},${3--1} #@gimp Symmetrize : gimp_symmetrize, gimp_symmetrize_preview(1) #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : Angle = float(90,0,360) #@gimp : Boundary = choice(1,"Transparent","Nearest","Repeat") #@gimp : Type = choice("Symmetry","Antisymmetry") #@gimp : Swap sides = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/07.") gimp_symmetrize : -to_rgba -symmetrize $1%,$2%,$3,$4,$5,$6 gimp_symmetrize_preview : -gimp_symmetrize $* theta={$3*pi/180} u={cos($theta)} v={sin($theta)} -repeat @# -l[$>] x0={w*$1%} y0={h*$2%} x1={$x0-max(w,h)*$u} y1={$y0-max(w,h)*$v} x2={$x0+max(w,h)*$u} y2={$y0+max(w,h)*$v} -line $x1,$y1,$x2,$y2,1,0x0F0F0F0F,0 -line $x1,$y1,$x2,$y2,1,0xF0F0F0F0,255 -circle $x0,$y0,3,1,0,255,0,255 -circle $x0,$y0,3,1,0xFFFFFFFF,0,0,0,255 -endl -done #@gimp Twirl : twirl, twirl(1) #@gimp : Amplitude = float(1,-5,5) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Water : water, water(0) #@gimp : Amplitude = float(30,0,300) #@gimp : Smoothness = float(1.5,0,4) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Wave : wave, wave(1) #@gimp : Amplitude = float(10,0,30) #@gimp : Frequency = float(0.4,0,2) #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Wind : gimp_wind, gimp_wind_preview(0) #@gimp : Amplitude = int(20,0,500) #@gimp : Angle = float(0,0,360) #@gimp : Attenuation = float(0.7,0,1) #@gimp : Threshold = float(20,0,100) #@gimp : Mode = choice(1,"Darker","Brighter") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/07/13.") gimp_wind : -if {!$5} -negative -endif -apply_channels "-wind ${1-4}",$-2 -if {!$5} -negative -endif gimp_wind_preview : -gimp_split_preview "-gimp_wind $*",$-1 #@gimp Zoom : gimp_zoom, gimp_zoom(1) #@gimp : Factor = float(2,0.01,10) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Boundary = choice(0,"Black","Nearest","Repeat") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_zoom : -if {$1<1} -to_rgba -endif -zoom $1,$2,$3,0,$4 #@gimp _Degradations #--------------------------- #@gimp Blur [angular] : gimp_blur_angular, gimp_blur_angular(1) #@gimp : Amplitude = float(2,0,10) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Sharpness = float(0,0,500) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_blur_angular : -apply_channels "-blur_angular $1%,$2,$3 -sharpen $4",$5,$6 #@gimp Blur [gaussian] : gimp_gaussian_blur, gimp_gaussian_blur_preview(0) #@gimp : XY-amplitude = float(3,0,20) #@gimp : X-amplitude = float(0,0,20) #@gimp : Y-amplitude = float(0,0,20) #@gimp : Border conditions = choice(1,"Black","Nearest") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_gaussian_blur : -b $1,$4 -if {$2>0} -repeat @# -l[-1] -s y -b $2,$4 -a y -endl -mv[-1] 0 -done -endif -if {$3>0} -repeat @# -l[-1] -s x -b $3,$4 -a x -endl -mv[-1] 0 -done -endif gimp_gaussian_blur : -apply_channels "-_gimp_gaussian_blur $1,$2,$3,$4",$5,$6 gimp_gaussian_blur_preview : -gimp_split_preview "-gimp_gaussian_blur $*",$-1 #@gimp Blur [glow] : gimp_glow, gimp_glow_preview(0) #@gimp : Amplitude = float(6,0,20) #@gimp : note = note() #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_glow : -apply_channels "-glow $1",$2,0 gimp_glow_preview : -gimp_split_preview "-gimp_glow $*",$-1 #@gimp Blur [linear] : gimp_blur_linear, gimp_blur_linear_preview(1) #@gimp : Tangent radius = float(10,0,100) #@gimp : Orthogonal radius = float(0.5,0,100) #@gimp : Angle = float(0,0,180) #@gimp : Sharpness = float(0,0,500) #@gimp : Border conditions = choice(1,"Black","Nearest") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_blur_linear : -apply_channels "-blur_linear $1,{$2*$1/100},$3,$5 -sharpen $4",$6,$7 gimp_blur_linear_preview : -gimp_split_preview "-gimp_blur_linear $*",$-1 #@gimp Blur [radial] : gimp_blur_radial, gimp_blur_radial(1) #@gimp : Amplitude = float(3,0,20) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Sharpness = float(0,0,500) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_blur_radial : -apply_channels "-blur_radial $1%,$2,$3 -sharpen $4",$5,$6 #@gimp Lomo : gimp_lomo, gimp_lomo_preview(1) #@gimp : Vignette size = float(20,0,100) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Jérome Boulanger, David Tschumperlé. Latest update: 2012/06/06.") gimp_lomo : -remove_opacity -repeat @# -l[$>] --gaussian {100-$1}%,{100-$1}% -normalize[-1] 0,1 -* -s c -f[0] '255*atan((i-128)/128)' -f[1] '255*tan((i-128)/128)' -f[2] '255*atan((i-128)/255)' -a c -sharpen 1 -normalize 0,255 -endl -done gimp_lomo_preview : -gimp_split_preview "-gimp_lomo $*",$-1 #@gimp Noise [additive] : gimp_noise, gimp_noise_preview(0) #@gimp : Amplitude = float(10,0,200) #@gimp : Noise type = choice("Gaussian","Uniform","Salt and pepper","Poisson") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice("Cut","Normalize") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_noise : -apply_channels "-noise $1,$2",$3,$4 gimp_noise_preview : -gimp_split_preview "-gimp_noise $*",$-1 #@gimp Noise [spread] : gimp_spread, gimp_spread_preview(0) #@gimp : X-variations = float(4,0,20) #@gimp : Y-variations = float(4,0,20) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_spread : -apply_channels "-spread $1,$2",$3,0 gimp_spread_preview : -gimp_split_preview "-gimp_spread $*",$-1 #@gimp Old-movie stripes : gimp_stripes_y, gimp_stripes_y_preview(1) #@gimp : Frequency = float(10,0,100) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_stripes_y : -apply_channels "-stripes_y $1",$2,0 gimp_stripes_y_preview : -gimp_split_preview "-gimp_stripes_y $*",$-1 #@gimp Oldschool 8bits : gimp_8bits, gimp_8bits_preview(0) #@gimp : Scale = float(25,1,100) #@gimp : Dithering = float(800,0,10000) #@gimp : Levels = int(16,2,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/11/02.") gimp_8bits : -remove_opacity -repeat @# -l[$>] w={w} h={h} -r $1%,$1%,1,100%,2 --luminance -sharpen[-1] $2 -otsu[-1] 256 -blend[-2,-1] shapeaverage0 -l[-1] -s c -quantize $3,1,1 -a c -endl -resize[-1] $w,$h,1,100%,1 -endl -done gimp_8bits_preview : -gimp_split_preview "-gimp_8bits $*",$-1 #@gimp Random shade stripes : gimp_shade_stripes, gimp_shade_stripes_preview(1) #@gimp : Frequency = float(30,1,100) #@gimp : Orientation = choice(1,"Horizontal","Vertical") #@gimp : Darkness = float(0.8,0,3) #@gimp : Lightness = float(1.3,0,3) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_shade_stripes : -apply_channels "-shade_stripes $1,$2,$3,$4",$5,0 gimp_shade_stripes_preview : -gimp_split_preview "-gimp_shade_stripes $*",$-1 #@gimp Visible watermark : gimp_watermark_visible, gimp_watermark_visible(0) #@gimp : Text = text("\251 G'MIC") #@gimp : Opacity = float(0.4,0.1,0.9) #@gimp : Size = int(57,13,128) #@gimp : Angle = float(25,0,360) #@gimp : Smoothness = float(0.5,0,5) #@gimp : Lightness = choice(1,"Darker","Brighter") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_watermark_visible : -watermark_visible "$1",$2,$3,$4,$6,$5 #@gimp _Details #---------------------- #@gimp Freaky details : gimp_freaky_details, gimp_freaky_details_preview(0) #@gimp : Amplitude = int(2,1,5) #@gimp : Scale = float(10,0,100) #@gimp : Iterations = int(1,1,4) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(32,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: David Tschumperlé and Patrick David. Latest update: 2013/02/27.") #@gimp : sep = separator(), note = note("This effect has been done following:") #@gimp : link = link("This tutorial from Patrick David","http://blog.patdavid.net/2013/02/calvin-hollywood-freaky-details-in-gimp.html") _gimp_freaky_details : -repeat @# -l[$>] -repeat $3 [-1] ---[-1] 255 -*[-1] -1 -repeat $1 -bilateral[-1] $2,{1.5*$2} -done -blend[-2,-1] vividlight -blend overlay -done -endl -done -n 0,255 gimp_freaky_details : -apply_channels "-gimp_parallel_overlap \"-_gimp_freaky_details ${1-3}\",$5,$6",$4,0 gimp_freaky_details_preview : -gimp_split_preview "-gimp_freaky_details $*",$-1 #@gimp Local normalization : gimp_normalize_local, gimp_normalize_local_preview(0) #@gimp : Amplitude = float(2,0,60) #@gimp : Radius = int(6,1,64) #@gimp : Neighborhood smoothness = float(5,0,40) #@gimp : Average smoothness = float(20,0,40) #@gimp : Constrain values = bool(1) #@gimp : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_normalize_local : -apply_channels "-normalize_local $1,$2,$3,$4,$5,0,255",$6,0 gimp_normalize_local_preview : -gimp_split_preview "-gimp_normalize_local $*",$-1 #@gimp Sharpen [deblur] : gimp_deblur, gimp_deblur_preview(0) #@gimp : Radius = float(2,0,20) #@gimp : Iterations = int(10,0,100) #@gimp : Time step = float(20,0,50) #@gimp : Smoothness = float(0.1,0,10) #@gimp : Regularization = choice(1,"Tikhonov","Mean curvature","Total variation") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_deblur : -apply_channels "-gimp_parallel_overlap \"-deblur ${1-5} -c 0,255\",$7,$8",$6,0 gimp_deblur_preview : -gimp_split_preview "-gimp_deblur $*",$-1 #@gimp Sharpen [Gold-Meinel] : gimp_unsharp_goldmeinel, gimp_unsharp_goldmeinel_preview #@gimp : Sigma = float(1,0.5,10) #@gimp : Iterations = int(5,1,15) #@gimp : Acceleration = float(1,1,3) #@gimp : Blur = choice(1,"Exponential","Gaussian") #@gimp : Cut = bool(true) #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author : Jérôme Boulanger. Latest update: 2013/03/29.") gimp_unsharp_goldmeinel: -gimp_parallel_overlap "-deblur_goldmeinel $* -if $5 -c 0,255 -else -n 0,255 -endif",$6,$7 gimp_unsharp_goldmeinel_preview: -gimp_split_preview "-gimp_unsharp_goldmeinel $*",$-1 #@gimp Sharpen [inverse diffusion] : gimp_sharpen_inversediff, gimp_sharpen_inversediff_preview(0) #@gimp : Amplitude = float(50,1,300) #@gimp : Iterations = int(2,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sharpen_inversediff : -apply_channels "-gimp_parallel_overlap \"-repeat $2 -sharpen $1 -c 0,255 -done\",$4,$5",$3,0 gimp_sharpen_inversediff_preview : -gimp_split_preview "-gimp_sharpen_inversediff $*",$-1 #@gimp Sharpen [octave sharpening] : gimp_unsharp_octave, gimp_unsharp_octave_preview(0) #@gimp : Scales = int(4,1,10) #@gimp : Maximal radius = float(5,0,20) #@gimp : Amount = float(3,0,10) #@gimp : Threshold = float(0,0,255) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_unsharp_octave : -apply_channels "-gimp_parallel_overlap \"-unsharp_octave $1,$2,$3,$4\",$6,$7",$5,0 gimp_unsharp_octave_preview : -gimp_split_preview "-gimp_unsharp_octave $*",$-1 #@gimp Sharpen [Richardson-Lucy] : gimp_unsharp_richardsonlucy, gimp_unsharp_richardsonlucy_preview #@gimp : Sigma = float(1,0.5,10) #@gimp : Iterations = int(10,1,100) #@gimp : Blur = choice(1,"Exponential","Gaussian") #@gimp : Cut = bool(true) #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator(), note = note("Author : Jérôme Boulanger. Latest update: 2013/03/29.") gimp_unsharp_richardsonlucy : -gimp_parallel_overlap "-deblur_richardsonlucy $* -if $4 -c 0,255 -else -n 0,255 -endif",$5,$6 gimp_unsharp_richardsonlucy_preview : -gimp_split_preview "-gimp_unsharp_richardsonlucy $*",$-1 #@gimp Sharpen [shock filters] : gimp_sharpen_shock, gimp_sharpen_shock_preview(0) #@gimp : Amplitude = float(150,1,400) #@gimp : Edge threshold = float(0.1,0,0.7) #@gimp : Gradient smoothness = float(0.8,0,10) #@gimp : Tensor smoothness = float(1.1,0,10) #@gimp : Iterations = int(1,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sharpen_shock : -apply_channels "-gimp_parallel_overlap \"-repeat $5 -sharpen $1,$2,$3,$4 -c 0,255 -done\",$7,$8",$6,0 gimp_sharpen_shock_preview : -gimp_split_preview "-gimp_sharpen_shock $*",$-1 #@gimp Sharpen [unsharp mask] : gimp_unsharp, gimp_unsharp_preview(0) #@gimp : Sharpening type = choice(0,"Gaussian","Bilateral") #@gimp : Spatial radius = float(1.25,0,20) #@gimp : Bilateral radius = float(30,0,60) #@gimp : Amount = float(3,0,10) #@gimp : Threshold = float(0,0,20) #@gimp : Darkness level = float(1,0,4) #@gimp : Lightness level = float(1,0,4) #@gimp : Iterations = int(1,1,10) #@gimp : Negative effect = bool(0) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : note = note{"\n\nNote: #@gimp : This filter is inspired by the original Unsharp Mask filter in GIMP, with additional parameters. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_unsharp : -repeat @# -repeat $8 -if {$1==0} --b[-1] $2 -else --bilateral[-1] $2,$3 -endif --[-1] [-2] -*[-1] -$4 --norm[-1] -ge[-1] $5% -r[-1] [-2] -*[-2,-1] -if $9 -*[-1] -1 -endif --c[-1] 0,100% -c[-2] -100%,0 -*[-2] $6 -*[-1] $7 -+[-2,-1] -+[-2,-1] -c[-1] 0,255 -done -mv[-1] 0 -done gimp_unsharp : -apply_channels "-_gimp_unsharp $1,$2,$3,$4,$5,$6,$7,$8,$9",$10,0 gimp_unsharp_preview : -gimp_split_preview "-gimp_unsharp $*",$-1 #@gimp Tone mapping : gimp_map_tones, gimp_map_tones_preview(0) #@gimp : Threshold = float(0.5,0,1) #@gimp : Gamma = float(0.7,0,1) #@gimp : Smoothness = float(0.1,0,10) #@gimp : Iterations = int(30,0,500) #@gimp : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_map_tones : -apply_channels "-map_tones ${1-4}",$5,0 -n 0,255 gimp_map_tones_preview : -gimp_split_preview "-gimp_map_tones $*",$-1 #@gimp Tone mapping [fast] : gimp_map_tones_fast, gimp_map_tones_fast_preview(0) #@gimp : Radius = float(3,0,20) #@gimp : Power = float(0.5,0,1) #@gimp : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Paul Nasca and David Tschumperlé. Latest update: 2011/06/10.") gimp_map_tones_fast : -apply_channels "-map_tones_fast $1,$2",$3,0 gimp_map_tones_fast_preview : -gimp_split_preview "-gimp_map_tones_fast ${^0}",$-1 #@gimp _Film emulation #----------------------------- #@gimp B&W : gimp_emulate_film_bw, gimp_emulate_film_bw_preview(1) #@gimp : Preset = choice{"None", #@gimp : "Agfa APX 100","Agfa APX 25","Fuji Neopan 1600","Fuji Neopan Acros 100","Ilford Delta 100","Ilford Delta 3200","Ilford Delta 400","Ilford FP4 Plus 125", #@gimp : "Ilford HP5 Plus 400","Ilford HPS 800","Ilford Pan F Plus 50","Ilford XP2","Kodak BW 400 CN","Kodak HIE (HS Infra)","Kodak T-Max 100","Kodak T-Max 3200", #@gimp : "Kodak T-Max 400","Kodak Tri-X 400","Polaroid 664","Polaroid 667","Polaroid 672","Rollei IR 400","Rollei Ortho 25","Rollei Retro 100 Tonal","Rollei Retro 80s"} #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_bw : preset=@{-arg\ $1,\ agfa_apx_100,agfa_apx_25,fuji_neopan_1600,fuji_neopan_acros_100,ilford_delta_100,ilford_delta_3200,ilford_delta_400,ilford_fp4_plus_125,\ ilford_hp5_plus_400,ilford_hps_800,ilford_pan_f_plus_50,ilford_xp2,kodak_bw_400_cn,kodak_hie_(hs_infra),kodak_t-max_100,kodak_t-max_3200,\ kodak_t-max_400,kodak_tri-x_400,polaroid_664,polaroid_667,polaroid_672,rollei_ir_400,rollei_ortho_25,rollei_retro_100_tonal,rollei_retro_80s} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_bw_preview : -gimp_split_preview "-gimp_emulate_film_bw $*",$-1 #@gimp Instant [consumer] : gimp_emulate_film_instant_consumer, gimp_emulate_film_instant_consumer_preview(1) #@gimp : Preset = choice{"None", #@gimp : "Polaroid PX-100UV+ Cold --","Polaroid PX-100UV+ Cold -","Polaroid PX-100UV+ Cold","Polaroid PX-100UV+ Cold +","Polaroid PX-100UV+ Cold ++","Polaroid PX-100UV+ Cold +++", #@gimp : "Polaroid PX-100UV+ Warm --","Polaroid PX-100UV+ Warm -","Polaroid PX-100UV+ Warm","Polaroid PX-100UV+ Warm +","Polaroid PX-100UV+ Warm ++","Polaroid PX-100UV+ Warm +++", #@gimp : "Polaroid PX-680 --","Polaroid PX-680 -","Polaroid PX-680","Polaroid PX-680 +","Polaroid PX-680 ++", #@gimp : "Polaroid PX-680 Cold --","Polaroid PX-680 Cold -","Polaroid PX-680 Cold","Polaroid PX-680 Cold +","Polaroid PX-680 Cold ++","Polaroid PX-680 Cold ++a", #@gimp : "Polaroid PX-680 Warm --","Polaroid PX-680 Warm -","Polaroid PX-680 Warm","Polaroid PX-680 Warm +","Polaroid PX-680 Warm ++", #@gimp : "Polaroid PX-70 --","Polaroid PX-70 -","Polaroid PX-70","Polaroid PX-70 +","Polaroid PX-70 ++","Polaroid PX-70 +++", #@gimp : "Polaroid PX-70 Cold --","Polaroid PX-70 Cold -","Polaroid PX-70 Cold","Polaroid PX-70 Cold +","Polaroid PX-70 Cold ++", #@gimp : "Polaroid PX-70 Warm --","Polaroid PX-70 Warm -","Polaroid PX-70 Warm","Polaroid PX-70 Warm +","Polaroid PX-70 Warm ++", #@gimp : "Polaroid Time Zero (Expired) ---","Polaroid Time Zero (Expired) --","Polaroid Time Zero (Expired) -","Polaroid Time Zero (Expired)","Polaroid Time Zero (Expired) +","Polaroid Time Zero (Expired) ++"} #@gimp : "Polaroid Time Zero (Expired) Cold ---","Polaroid Time Zero (Expired) Cold --","Polaroid Time Zero (Expired) Cold -","Polaroid Time Zero (Expired) Cold", #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_instant_consumer : preset=@{-arg\ $1,\ polaroid_px-100uv+_cold_--,polaroid_px-100uv+_cold_-,polaroid_px-100uv+_cold,polaroid_px-100uv+_cold_+,polaroid_px-100uv+_cold_++,polaroid_px-100uv+_cold_+++,\ polaroid_px-100uv+_warm_--,polaroid_px-100uv+_warm_-,polaroid_px-100uv+_warm,polaroid_px-100uv+_warm_+,polaroid_px-100uv+_warm_++,polaroid_px-100uv+_warm_+++,\ polaroid_px-680_--,polaroid_px-680_-,polaroid_px-680,polaroid_px-680_+,polaroid_px-680_++,\ polaroid_px-680_cold_--,polaroid_px-680_cold_-,polaroid_px-680_cold,polaroid_px-680_cold_+,polaroid_px-680_cold_++,polaroid_px-680_cold_++_alt,\ polaroid_px-680_warm_--,polaroid_px-680_warm_-,polaroid_px-680_warm,polaroid_px-680_warm_+,polaroid_px-680_warm_++,\ polaroid_px-70_--,polaroid_px-70_-,polaroid_px-70,polaroid_px-70_+,polaroid_px-70_++,polaroid_px-70_+++,\ polaroid_px-70_cold_--,polaroid_px-70_cold_-,polaroid_px-70_cold,polaroid_px-70_cold_+,polaroid_px-70_cold_++,\ polaroid_px-70_warm_--,polaroid_px-70_warm_-,polaroid_px-70_warm,polaroid_px-70_warm_+,polaroid_px-70_warm_++,\ polaroid_time_zero_(expired)_---,polaroid_time_zero_(expired)_--,polaroid_time_zero_(expired)_-,polaroid_time_zero_(expired),polaroid_time_zero_(expired)_+,polaroid_time_zero_(expired)_++,\ polaroid_time_zero_(expired)_cold_---,polaroid_time_zero_(expired)_cold_--,polaroid_time_zero_(expired)_cold_-,polaroid_time_zero_(expired)_cold} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_instant_consumer_preview : -gimp_split_preview "-gimp_emulate_film_instant_consumer $*",$-1 #@gimp Instant [pro] : gimp_emulate_film_instant_pro, gimp_emulate_film_instant_pro_preview(1) #@gimp : Preset = choice{"None", #@gimp : "Fuji FP-100c --","Fuji FP-100c -","Fuji FP-100c","Fuji FP-100c +","Fuji FP-100c ++","Fuji FP-100c ++a","Fuji FP-100c +++", #@gimp : "Fuji FP-100c Cool --","Fuji FP-100c Cool -","Fuji FP-100c Cool","Fuji FP-100c Cool +","Fuji FP-100c Cool ++", #@gimp : "Fuji FP-100c Negative --","Fuji FP-100c Negative -","Fuji FP-100c Negative","Fuji FP-100c Negative +","Fuji FP-100c Negative ++","Fuji FP-100c Negative ++a","Fuji FP-100c Negative +++", #@gimp : "Fuji FP-3000b --","Fuji FP-3000b -","Fuji FP-3000b","Fuji FP-3000b +","Fuji FP-3000b ++","Fuji FP-3000b +++", #@gimp : "Fuji FP-3000b HC", #@gimp : "Fuji FP-3000b Negative --","Fuji FP-3000b Negative -","Fuji FP-3000b Negative","Fuji FP-3000b Negative +","Fuji FP-3000b Negative ++","Fuji FP-3000b Negative +++", #@gimp : "Fuji FP-3000b Negative Early", #@gimp : "Polaroid 665 --","Polaroid 665 -","Polaroid 665","Polaroid 665 +","Polaroid 665 ++", #@gimp : "Polaroid 665 Negative -","Polaroid 665 Negative","Polaroid 665 Negative +", #@gimp : "Polaroid 665 Negative HC", #@gimp : "Polaroid 669 --","Polaroid 669 -","Polaroid 669","Polaroid 669 +","Polaroid 669 ++","Polaroid 669 +++", #@gimp : "Polaroid 669 Cold --","Polaroid 669 Cold -","Polaroid 669 Cold","Polaroid 669 Cold +", #@gimp : "Polaroid 690 --","Polaroid 690 -","Polaroid 690","Polaroid 690 +","Polaroid 690 ++", #@gimp : "Polaroid 690 Cold --","Polaroid 690 Cold -","Polaroid 690 Cold","Polaroid 690 Cold +","Polaroid 690 Cold ++", #@gimp : "Polaroid 690 Warm --","Polaroid 690 Warm -","Polaroid 690 Warm","Polaroid 690 Warm +","Polaroid 690 Warm ++"} #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_instant_pro : preset=@{-arg\ $1,\ fuji_fp-100c_--,fuji_fp-100c_-,fuji_fp-100c,fuji_fp-100c_+,fuji_fp-100c_++,fuji_fp-100c_++_alt,fuji_fp-100c_+++,\ fuji_fp-100c_cool_--,fuji_fp-100c_cool_-,fuji_fp-100c_cool,fuji_fp-100c_cool_+,fuji_fp-100c_cool_++,\ fuji_fp-100c_negative_--,fuji_fp-100c_negative_-,fuji_fp-100c_negative,fuji_fp-100c_negative_+,fuji_fp-100c_negative_++,fuji_fp-100c_negative_++_alt,fuji_fp-100c_negative_+++,\ fuji_fp-3000b_--,fuji_fp-3000b_-,fuji_fp-3000b,fuji_fp-3000b_+,fuji_fp-3000b_++,fuji_fp-3000b_+++,fuji_fp-3000b_hc,\ fuji_fp-3000b_negative_--,fuji_fp-3000b_negative_-,fuji_fp-3000b_negative,fuji_fp-3000b_negative_+,fuji_fp-3000b_negative_++,fuji_fp-3000b_negative_+++,fuji_fp-3000b_negative_early,\ polaroid_665_--,polaroid_665_-,polaroid_665,polaroid_665_+,polaroid_665_++,\ polaroid_665_negative_-,polaroid_665_negative,polaroid_665_negative_+,polaroid_665_negative_hc,\ polaroid_669_--,polaroid_669_-,polaroid_669,polaroid_669_+,polaroid_669_++,polaroid_669_+++,\ polaroid_669_cold_--,polaroid_669_cold_-,polaroid_669_cold,polaroid_669_cold_+,\ polaroid_690_--,polaroid_690_-,polaroid_690,polaroid_690_+,polaroid_690_++,\ polaroid_690_cold_--,polaroid_690_cold_-,polaroid_690_cold,polaroid_690_cold_+,polaroid_690_cold_++,\ polaroid_690_warm_--,polaroid_690_warm_-,polaroid_690_warm,polaroid_690_warm_+,polaroid_690_warm_++} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_instant_pro_preview : -gimp_split_preview "-gimp_emulate_film_instant_pro $*",$-1 #@gimp Negative [color] : gimp_emulate_film_negative_color, gimp_emulate_film_negative_color_preview(1) #@gimp : Preset = choice{"None", #@gimp : "Agfa Ultra Color 100","Agfa Vista 200","Fuji Superia 200","Fuji Superia HG 1600","Fuji Superia Reala 100","Fuji Superia X-Tra 800", #@gimp : "Kodak Elite 100 XPRO","Kodak Elite Color 200","Kodak Elite Color 400","Kodak Portra 160 NC","Kodak Portra 160 VC","Lomography Redscale 100"} #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_negative_color : preset=@{-arg\ $1,\ agfa_ultra_color_100,agfa_vista_200,fuji_superia_200,fuji_superia_hg_1600,fuji_superia_reala_100,fuji_superia_x-tra_800,\ kodak_elite_100_xpro,kodak_elite_color_200,kodak_elite_color_400,kodak_portra_160_nc,kodak_portra_160_vc,lomography_redscale_100} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_negative_color_preview : -gimp_split_preview "-gimp_emulate_film_negative_color $*",$-1 #@gimp Negative [new] : gimp_emulate_film_negative_new, gimp_emulate_film_negative_new_preview(1) #@gimp : Preset = choice{"None","Fuji 160C","Fuji 400H","Fuji 800Z","Fuji Ilford HP5","Kodak Portra 160","Kodak Portra 400","Kodak Portra 800","Kodak TMAX 3200","Kodak TRI-X 400"} #@gimp : Effect = choice(1,"Low","Standard","High","Higher") #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_negative_new : preset=@{-arg\ {max(1,4*$1+$2-3)},\ fuji_160c_-,fuji_160c,fuji_160c_+,fuji_160c_++,\ fuji_400h_-,fuji_400h,fuji_400h_+,fuji_400h_++,\ fuji_800z_-,fuji_800z,fuji_800z_+,fuji_800z_++,\ fuji_ilford_hp5_-,fuji_ilford_hp5,fuji_ilford_hp5_+,fuji_ilford_hp5_++,\ kodak_portra_160_-,kodak_portra_160,kodak_portra_160_+,kodak_portra_160_++,\ kodak_portra_400_-,kodak_portra_400,kodak_portra_400_+,kodak_portra_400_++,\ kodak_portra_800_-,kodak_portra_800,kodak_portra_800_+,kodak_portra_800_++,\ kodak_tmax_3200_-,kodak_tmax_3200,kodak_tmax_3200_+,kodak_tmax_3200_++,\ kodak_tri-x_400_-,kodak_tri-x_400,kodak_tri-x_400_+,kodak_tri-x_400_++} -_gimp_emulate_film $1,$preset,${3--1} gimp_emulate_film_negative_new_preview : -gimp_split_preview "-gimp_emulate_film_negative_new $*",$-1 #@gimp Negative [old] : gimp_emulate_film_negative_old, gimp_emulate_film_negative_old_preview(1) #@gimp : Preset = choice{0,"None","Fuji Ilford Delta 3200","Fuji Neopan 1600","Fuji Superia 100","Fuji Superia 400","Fuji Superia 800","Fuji Superia 1600", #@gimp : "Kodak Portra 160 NC","Kodak Portra 160 VC","Kodak Portra 400 NC","Kodak Portra 400 UC","Kodak Portra 400 VC"} #@gimp : Effect = choice(1,"Low","Standard","High","Higher") #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_negative_old : preset=@{-arg\ {max(1,4*$1+$2-3)},\ fuji_ilford_delta_3200_-,fuji_ilford_delta_3200,fuji_ilford_delta_3200_+,fuji_ilford_delta_3200_++,\ fuji_neopan_1600_-,fuji_neopan_1600,fuji_neopan_1600_+,fuji_neopan_1600_++,\ fuji_superia_100_-,fuji_superia_100,fuji_superia_100_+,fuji_superia_100_++,\ fuji_superia_400_-,fuji_superia_400,fuji_superia_400_+,fuji_superia_400_++,\ fuji_superia_800_-,fuji_superia_800,fuji_superia_800_+,fuji_superia_800_++,\ fuji_superia_1600_-,fuji_superia_1600,fuji_superia_1600_+,fuji_superia_1600_++,\ kodak_portra_160_nc_-,kodak_portra_160_nc,kodak_portra_160_nc_+,kodak_portra_160_nc_++,\ kodak_portra_160_vc_-,kodak_portra_160_vc,kodak_portra_160_vc_+,kodak_portra_160_vc_++,\ kodak_portra_400_nc_-,kodak_portra_400_nc,kodak_portra_400_nc_+,kodak_portra_400_nc_++,\ kodak_portra_400_uc_-,kodak_portra_400_uc,kodak_portra_400_uc_+,kodak_portra_400_uc_++,\ kodak_portra_400_vc_-,kodak_portra_400_vc,kodak_portra_400_vc_+,kodak_portra_400_vc_++} -_gimp_emulate_film $1,$preset,${3--1} gimp_emulate_film_negative_old_preview : -gimp_split_preview "-gimp_emulate_film_negative_old $*",$-1 #@gimp Others : gimp_emulate_film_others, gimp_emulate_film_others_preview(1) #@gimp : Preset = choice{"None","60's (1)","60's (2)","60's (3)","Hong Kong", #@gimp : "Lomo","Nostalgic","Retro","Sutro FX","Vintage","Vintage 2","Warm","Warm spring","Warm yellow"} #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_others : preset=@{-arg\ $1,\ 60s,60s_2,60s_3,hkfilm,lomo,nostalgic,retro,sutrofx,vintage,vintage_2,warm,warm_spring,warm_yellow} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_others_preview : -gimp_split_preview "-gimp_emulate_film_others $*",$-1 _gimp_emulate_film : -if $1 -if @{-path_tmp}/gmic_$2.cimgz -i @{-path_tmp}/gmic_$2.cimgz -else -i http://gmic.sourceforge.net/data_film_presets/$2.cimgz -o[-1] @{-path_tmp}/gmic_$2.cimgz -endif -map_clut -endif -repeat @# -l[$>] -split_opacity -apply_gamma[0] $3 # Gamma correction --[0] 128 -*[0] $4 -+[0] 128 -+[0] $5 -c[0] 0,255 # B&W contrast and brightness. -if {$6||$7!=1||$8} -rgb2hsv[0] -sh[0] 0,0 -+[-1] $6 -%[-1] 360 -rm[-1] -sh[0] 1,1 -*[-1] $7 -rm[-1] -hsv2rgb[0] -if $8 -n[0] 0,255 -endif -endif -a c -endl -done #@gimp Slide [color] : gimp_emulate_film_colorslide, gimp_emulate_film_colorslide_preview(1) #@gimp : Preset = choice{"None", #@gimp : "Agfa Precisa 100","Fuji Astia 100F","Fuji FP 100C","Fuji Provia 100F","Fuji Provia 400F","Fuji Provia 400X","Fuji Sensia 100", #@gimp : "Fuji Superia 200 XPRO","Fuji Velvia 50","Generic Fuji Astia 100","Generic Fuji Provia 100","Generic Fuji Velvia 100", #@gimp : "Generic Kodachrome 64","Generic Kodak Ektachrome 100 VS","Kodak E-100 GX Ektachrome 100","Kodak Ektachrome 100 VS","Kodak Elite Chrome 200", #@gimp : "Kodak Elite Chrome 400","Kodak Elite ExtraColor 100","Kodak Kodachrome 200","Kodak Kodachrome 25","Kodak Kodachrome 64","Lomography X-Pro Slide 200", #@gimp : "Polaroid 669","Polaroid 690","Polaroid Polachrome"} #@gimp : sep = separator() #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Hue = float(0,-180,180) #@gimp : Saturation = float(1,0,2) #@gimp : Post-normalize = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Patrick David and David Tschumperlé. Latest update: 2013/08/29.") gimp_emulate_film_colorslide : preset=@{-arg\ $1,\ agfa_precisa_100,fuji_astia_100f,fuji_fp_100c,fuji_provia_100f,fuji_provia_400f,fuji_provia_400x,fuji_sensia_100,\ fuji_superia_200_xpro,fuji_velvia_50,generic_fuji_astia_100,generic_fuji_provia_100,generic_fuji_velvia_100,\ generic_kodachrome_64,generic_kodak_ektachrome_100_vs,kodak_e-100_gx_ektachrome_100,kodak_ektachrome_100_vs,kodak_elite_chrome_200,\ kodak_elite_chrome_400,kodak_elite_extracolor_100,kodak_kodachrome_200,kodak_kodachrome_25,kodak_kodachrome_64,lomography_x-pro_slide_200,\ polaroid_669,polaroid_690,polaroid_polachrome} -_gimp_emulate_film $1,$preset,${2--1} gimp_emulate_film_colorslide_preview : -gimp_split_preview "-gimp_emulate_film_colorslide $*",$-1 #@gimp _Frames #-------------------- #@gimp Droste : gimp_droste, gimp_droste_preview(1) #@gimp : note = note("Upper-left coordinates :") #@gimp : X0 = float(20,0,100) #@gimp : Y0 = float(20,0,100) #@gimp : sep = separator(), note = note("Upper-right coordinates :") #@gimp : X1 = float(80,0,100) #@gimp : Y1 = float(20,0,100) #@gimp : sep = separator(), note = note("Lower-right coordinates :") #@gimp : X2 = float(80,0,100) #@gimp : Y2 = float(80,0,100) #@gimp : sep = separator(), note = note("Lower-left coordinates :") #@gimp : X3 = float(20,0,100) #@gimp : Y3 = float(80,0,100) #@gimp : sep = separator() #@gimp : Iterations = int(1,1,10) #@gimp : X-shift = float(0,-100,100) #@gimp : Y-shift = float(0,-100,100) #@gimp : Angle = float(0,0,360) #@gimp : Zoom = float(1,0.1,5) #@gimp : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gimp : Boundary = choice(1,"Black","Nearest","Repeat") #@gimp : Drawing mode = choice{"Replace","Replace (sharpest)","Behind","Below"} #@gimp : View outlines only = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/06/11.") gimp_droste : -repeat @# -if {$16==1} 100%,100%,1,1,'x' 100%,100%,1,1,'y' -a[-2,-1] c -endif -repeat $9 x0={round($1*w/100)} y0={round($2*h/100)} x1={round($3*w/100)} y1={round($4*h/100)} x2={round($5*w/100)} y2={round($6*h/100)} x3={round($7*w/100)} y3={round($8*h/100)} 100%,100%,1,2,-32767 -polygon[-1] 4,$x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3,1,-65535 -sh[-1] 0,0 -f[-1] 'if(i==-65535,x03=$x0+(y-$y0)/($y3-$y0)*($x3-$x0);x12=$x1+(y-$y1)/($y2-$y1)*($x2-$x1);(x-x03)/(x12-x03)*(w-1),i)' -rm[-1] -sh[-1] 1,1 -f[-1] 'if(i==-65535,y01=$y0+(x-$x0)/($x1-$x0)*($y1-$y0);y32=$y3+(x-$x3)/($x2-$x3)*($y2-$y3);(y-y01)/(y32-y01)*(h-1),i)' -rm[-1] xshift={w*$10/100} yshift={h*$11/100} alpha={-$12*pi/180} ca={cos($alpha)/$13} sa={sin($alpha)/$13} w2={w/2} h2={h/2} -f[-1] 'if(i==-32767,i,X=i(x,y,0,0)-$w2;Y=i(x,y,0,1)-$h2;if(c==0,$w2-$xshift+X*$ca-Y*$sa,$h2-$yshift+X*$sa+Y*$ca))' -if {$14==0} -sh[-1] 0,0 -f[-1] 'if(i==-32767,x,i)' -rm[-1] -sh[-1] 1,1 -f[-1] 'if(i==-32767,y,i)' -rm[-1] -elif {$14==1} -sh[-1] 0,0 -f[-1] 'if(i==-32767,x,w-1-i)' -rm[-1] -sh[-1] 1,1 -f[-1] 'if(i==-32767,y,i)' -rm[-1] -elif {$14==2} -sh[-1] 0,0 -f[-1] 'if(i==-32767,x,i)' -rm[-1] -sh[-1] 1,1 -f[-1] 'if(i==-32767,y,h-1-i)' -rm[-1] -else -sh[-1] 0,0 -f[-1] 'if(i==-32767,x,w-1-i)' -rm[-1] -sh[-1] 1,1 -f[-1] 'if(i==-32767,y,h-1-i)' -rm[-1] -endif -if {$16<2} -warp[-2] [-1],0,{$16==0},$15 -rm[-1] -else --warp[-2] [-1],0,1,$15 -rm[-2] -if {$16==3} -rv[-2,-1] -endif -blend[-2,-1] alpha -endif -done -if {$16==1} -warp[-2] [-1],0,1,1 -rm[-1] -endif -mv[-1] 0 -done gimp_droste_preview : -if {!$17} -gimp_droste $* -else -polygon 4,$1%,$2%,$3%,$4%,$5%,$6%,$7%,$8%,0.3,0,0,0,255 -endif -polygon 4,$1%,$2%,$3%,$4%,$5%,$6%,$7%,$8%,1,0xFFFFFFFF,0,0,0,255 -ellipse $1%,$2%,3,3,0,1,255,0,0,255 -ellipse $1%,$2%,3,3,0,1,0xFFFFFFFF,0,0,0,255 -ellipse $3%,$4%,3,3,0,1,255,0,255,255 -ellipse $3%,$4%,3,3,0,1,0xFFFFFFFF,0,0,0,255 -ellipse $5%,$6%,3,3,0,1,0,0,255,255 -ellipse $5%,$6%,3,3,0,1,0xFFFFFFFF,0,0,0,255 -ellipse $7%,$8%,3,3,0,1,0,255,255,255 -ellipse $7%,$8%,3,3,0,1,0xFFFFFFFF,0,0,0,255 #@gimp Frame [cube] : frame_cube, frame_cube(1) #@gimp : Depth = float(3,0,30) #@gimp : X-center = float(0,-2,2) #@gimp : Y-center = float(0,-2,2) #@gimp : Left side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gimp : Right side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gimp : Upper side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gimp : Lower sider orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gimp : sep = separator(), note = note("Author: David Tschumperlé, Angelo Lama. Latest update: 2012/01/29.") #@gimp Frame [fuzzy] : gimp_frame_fuzzy, gimp_frame_fuzzy(0) #@gimp : Width = int(10,0,99) #@gimp : Height = int(10,0,99) #@gimp : Fuzzyness = float(10,0,40) #@gimp : Smoothness = float(1,0,5) #@gimp : Color = color(255,255,255,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_frame_fuzzy : -repeat @# ({w*$1/200},{h*$2/200}) -round[-1] 1 -frame_fuzzy[-2] @-1,$3,$4,$5,$6,$7,$8 -rm[-1] -mv[-1] 0 -done #@gimp Frame [painting] : gimp_frame_painting, gimp_frame_painting_preview(1) #@gimp : Size = float(10,0,100) #@gimp : Contrast = float(0.4,0,1) #@gimp : Smoothness = float(6,0,30) #@gimp : Color = color(225,200,120) #@gimp : sep = separator() #@gimp : Vignette size = float(2,0,50) #@gimp : Vignette contrast = float(400,0,1000) #@gimp : sep = separator() #@gimp : Defects contrast = float(50,0,512) #@gimp : Defects density = float(10,0,100) #@gimp : Defects size = float(1,0,10) #@gimp : Defects smoothness = float(0.5,0,20) #@gimp : sep = separator() #@gimp : Serial number = int(123456,0,1000000) #@gimp : Frame as a new layer = _bool(false) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/06/07.") gimp_frame_painting : -if $14 -repeat @# 100%,100%,1,4 -frame_painting[-1] $1%,$2,$3%,${4-6},$7%,${8-13} -rv[-2,-1] -to_a[-1] -r[-1] [-2],[-2],1,4,0,0,0.5,0.5 -mv[-2,-1] 0 -done -else -frame_painting $1%,$2,$3%,${4-6},$7%,${8-13} -endif gimp_frame_painting_preview : -frame_painting $1%,$2,$3%,${4-6},$7%,${8-13} #@gimp Frame [pattern] : gimp_frame_pattern, gimp_frame_pattern_preview(1) #@gimp : Tiles = int(10,3,30) #@gimp : Pattern = choice(1,"Top layer","Self image") #@gimp : Iterations = int(1,1,10) #@gimp : Constrain image size = _bool(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_frame_pattern : -repeat $3 -frame_pattern $1,$2,$4 -done gimp_frame_pattern_preview : -gimp_frame_pattern $1,$2,$3,1 #@gimp Frame [regular] : gimp_frame, gimp_frame(1) #@gimp : note = note("Crop parameters :") #@gimp : X-start = int(0,0,100) #@gimp : X-end = int(100,0,100) #@gimp : Y-start = int(0,0,100) #@gimp : Y-end = int(100,0,100) #@gimp : sep = separator(), note = note("Frame parameters :") #@gimp : Width = int(10,0,100) #@gimp : Height = int(10,0,100) #@gimp : Color = color(0,0,0,255) #@gimp : Outline size = int(1,0,100) #@gimp : Outline color = color(255,255,255,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_frame : -to_rgba -repeat @# -z[-1] $1%,$3%,$2%,$4% -frame[-1] $11,$11,${12-15} -frame[-1] $5%,$6%,${7-10} -mv[-1] 0 -done #@gimp Frame [round] : gimp_frame_round, gimp_frame_round(1) #@gimp : Sharpness = float(6,0.1,40) #@gimp : Size = float(20,0,100) #@gimp : Smoothness = float(0.1,0,15) #@gimp : Shade = float(0,0,1) #@gimp : Color = color(255,255,255,255) #@gimp : Blur frame = float(0,0,100) #@gimp : Blur shade = float(0.1,0,1) #@gimp : Blur amplitude = float(3,0,10) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_frame_round : -frame_round ${1-8} -if $9 -frame_blur $1,{min(99,$1+$9)},$3,$10,$11% -endif #@gimp Old photograph : gimp_old_photo, gimp_old_photo(1) #@gimp : Vignette strength = float(200,0,255) #@gimp : Vignette min radius = float(50,0,100) #@gimp : Vignette max radius = float(85,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_old_photo : -vignette ${1-3} -old_photo #@gimp Polaroid : gimp_polaroid, gimp_polaroid(1) #@gimp : Frame size = int(10,0,400) #@gimp : Bottom size = int(20,0,400) #@gimp : X-shadow = float(0,-20,20) #@gimp : Y-shadow = float(0,-20,20) #@gimp : Smoothness = float(3,0,5) #@gimp : Angle = float(20,-180,180) #@gimp : Vignette strength = float(50,0,255) #@gimp : Vignette min radius = float(70,0,100) #@gimp : Vignette max radius = float(95,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_polaroid : -vignette ${7-9} -polaroid $1,$2 -drop_shadow $3%,$4%,$5% -rotate $6,1,0 #@gimp Tunnel : gimp_tunnel, gimp_tunnel(1) #@gimp : Depth = int(4,1,100) #@gimp : Factor = float(80,1,99) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Opacity = float(0.2,0,1) #@gimp : Angle = float(0,-90,90) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/22.") gimp_tunnel : -tunnel $1,$2%,${3-6} #@gimp Vignette : gimp_vignette, gimp_vignette #@gimp : Strength = float(70,0,255) #@gimp : Min radius = float(70,0,100) #@gimp : Max radius = float(95,0,100) #@gimp : Color = color(0,0,0,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/24.") gimp_vignette : -repeat @# -to_rgb -l[$>] -to_rgba -split_opacity -=[-1] 0 -vignette[-1] ${1-3} -a c --fc ${4-7} -blend alpha,1,1 -endl -done #@gimp _Layers #--------------------- #@gimp Blend [average all] : gimp_blend_average_all, gimp_blend_average_all #@gimp : note = note{"Note: #@gimp : This filter takes multiple layers as input and average them. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/11.") gimp_blend_average_all : -if @# N=@# -+ -/ $N -endif #@gimp Blend [standard] : gimp_blend, gimp_blend #@gimp : Mode = choice("Add","Alpha","And","Average","Blue","Burn","Darken","Difference", #@gimp : "Divide","Dodge","Exclusion","Freeze","Grain extract","Grain merge","Green","Hard light", #@gimp : "Hard mix","Hue","Interpolation","Lighten","Lightness","Linear burn","Linear light","Luminance", #@gimp : "Multiply","Negation","Or","Overlay","Pin light","Red","Reflect","Saturation", #@gimp : "Shape Average","Shape Average0","Soft burn","Soft dodge","Soft light","Screen","Stamp","Subtract","Value", #@gimp : "Vivid light","Xor") #@gimp : Opacity = float(1,0,1) #@gimp : Revert layers = bool(0) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : link = link("Reference page for G'MIC blending modes","https://sourceforge.net/p/gmic/wiki/Blending%20modes/") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/21.") gimp_blend : mode=@{-arg\ 1+$1,add,alpha,and,average,blue,burn,darken,difference,\ divide,dodge,exclusion,freeze,grainextract,grainmerge,green,hardlight,\ hardmix,hue,interpolation,lighten,lightness,linearburn,linearlight,luminance,\ multiply,negation,or,overlay,pinlight,red,reflect,saturation,\ shapeaverage,shapeaverage0,softburn,softdodge,softlight,screen,stamp,subtract,value,\ vividlight,xor} -blend $mode,$2,{1-$3} #@gimp Blend [edges] : gimp_blend_edges, gimp_blend_edges(0) #@gimp : Opacity = float(1,0,1) #@gimp : Smoothness = float(0.8,0,5) #@gimp : Revert layers = bool(0) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/21.") gimp_blend_edges : -repeat {int(@#/2)} -l[$>,{$>+1}] -if $3 -rv -endif --blend_edges[-2,-1] $2 -rm[-3] -blend[-2,-1] alpha,$1 -endl -done #@gimp Blend [fade] : gimp_blend_fade, gimp_blend_fade(1) #@gimp : Preset = choice{1,"Custom","Linear","Circular","Wave","Keftales"} #@gimp : Offset = float(0,-1,1) #@gimp : Thinness = float(0,0,10) #@gimp : Sharpness = float(5,1,20) #@gimp : Sharpest = bool(0) #@gimp : Revert layers = bool(0) #@gimp : Note = note{\n #@gimp : The parameters below are used in most presets. #@gimp : } #@gimp : 1st parameter = float(0,-1,1) #@gimp : 2nd parameter = float(0,-1,1) #@gimp : 3rd parameter = float(0,-1,1) #@gimp : Note = note{\n #@gimp : The formula below is used for the Custom preset. #@gimp : } #@gimp : Formula = text{"cos(4*pi*x/w) * sin(4*pi*y/h)"} #@gimp : Note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/21.") gimp_blend_fade : -if {@#==1} -return -endif -to_colormode 4 -if {$1==0} [0],[0],1,1,"$10" -else -_gimp_blend_fade$1 $7,$8,$9 -r[-1] [0],[0],1,1,3 -endif -n[-1] {-(@#-2)*$3},{(@#-2)*(1+$3)} --[-1] {$2*(1+$3)*(@#-2)} -c[-1] 0,{@#-2} -if $6 -rv[^-1] -endif -if $5 -round[-1] 1 -else -roundify[-1] $4 -endif -blend_fade -c 0,255 _gimp_blend_fade1 : [0],[0],1,1,"a=$1*pi/2; x*cos(a) + y*sin(a)" _gimp_blend_fade2 : [0],[0],1,1,0 -=[-1] 1,{($1+1)*50}%,{($2+1)*50}% -distance[-1] 1 _gimp_blend_fade3 : [0],[0],1,1,0 -=[-1] 1,{($1+1)*50}%,{($2+1)*50}% -distance[-1] 1 -*[-1] {0.01+$3/2} -cos[-1] _gimp_blend_fade4 : [0],[0],1,1,"((x-w*($1+0.5))*(y-h*($2+0.5)))%(0.2*w*h*(1.001+$3))" #@gimp Blend [median] : blend_median, blend_median(0) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs at least two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/05/07.") #@gimp Align layers : gimp_align_layers, gimp_align_layers_preview #@gimp : Alignment type = choice(0,"Rigid","Non-rigid") #@gimp : Smoothness = float(0.7,0,1) #@gimp : Scales = choice(0,"Auto","1","2","3","4","5","6","7","8") #@gimp : Revert layers = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_align_layers : -if ${4=0} -_gimp_revert_layers -endif -remove_opacity -if $1 -register_nonrigid $2,0.1,$3 -else ($2) -*[-1] 3 -register_rigid[^-1] @-1 -rm[-1] -endif gimp_align_layers_preview : -gimp_align_layers $1,$2,0 -blend_edges 0.1 _gimp_revert_layers : -repeat {int(@#/2)} -rv[{2*$>},{2*$>+1}] -done #@gimp Fade layers : gimp_fade_layers, gimp_fade_layers_preview #@gimp : Inter-frames = _int(10,2,100) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs at least two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/08/04.") gimp_fade_layers : -if {@#<2} -return -endif -a z -r 100%,100%,{(d-1)*$1+1},100%,3 -s z gimp_fade_layers_preview : -if {@#<2} -return -endif -k[0,1] -+ -/ 2 #@gimp Morph layers : gimp_morph, gimp_no_preview #@gimp : Inter-frames = _int(10,2,100) #@gimp : Smoothness = _float(0.2,0,2) #@gimp : Precision = _float(0.1,0,2) #@gimp : Revert layers = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_morph : -if ${4=0} -_gimp_revert_layers -endif -to_rgb -morph $1,$2,$3 #@gimp Layers to tiles : append_tiles, gimp_append_tiles_preview(1) #@gimp : X-tiles = int(0,0,256) #@gimp : Y-tiles = int(0,0,256) #@gimp : note = note("For both parameters, 0 means automatic.") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_append_tiles_preview : -frame 1,1,0,0,0,255 -append_tiles $1,$2 #@gimp Tiles to layers : split_tiles, gimp_split_tiles(1) #@gimp : X-tiles = int(3,1,100) #@gimp : Y-tiles = int(3,1,100) #@gimp : Homogeneous tiles = _bool(false) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_split_tiles : -split_tiles $1,$2,$3 -k[50%] #@gimp Transfer colors : gimp_transfer_colors, gimp_transfer_colors #@gimp : Transfer brighness = bool(0) #@gimp : Revert layers = bool(0) #@gimp : Note = note{"Note: #@gimp : The top layer contains the target colors.\n #@gimp : This filter needs at least two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_transfer_colors : -if ${2=0} -_gimp_revert_layers -endif -transfer_colors $1 #@gimp Transparent difference : gimp_transparent_diff, gimp_transparent_diff(1) #@gimp : Threshold = float(1,0,100) #@gimp : Smoothness = float(0,0,10) #@gimp : Opaque pixels = choice(0,"From 1st layer","From 2nd layer") #@gimp : Transparent pixels = choice(1,"From same values","From different values") #@gimp : Revert layers = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_transparent_diff : -if ${5=0} -_gimp_revert_layers -endif -repeat {int(@#/2)} -if $3 --[-2] [-1] -norm[-2] -b[-2] $2% -ge[-2] $1% -rv[-2,-1] -else --[-1] [-2] -norm[-1] -b[-1] $2% -ge[-1] $1% -endif -if {!$4} -negative[-1] -endif -to_rgba[-2] -*[-2,-1] -mv[-1] 0 -done #@gimp Split tones : gimp_split_tones, gimp_split_tones_preview(0) #@gimp : Number of tones = int(3,2,10) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_split_tones : -remove_opacity -repeat @# -l[$<] --tones $1 -r[^0] [0] -*[^0] [0] -rm[0] -endl -done gimp_split_tones_preview : -gimp_split_tones $1 -append_tiles , #@gimp _Lights & Shadows #---------------------------------- #@gimp Burn : gimp_burn, gimp_burn_preview(1) #@gimp : Amplitude = float(0.5,0,1) #@gimp : Scale = float(30,1,100) #@gimp : Smoothness = float(1,0,4) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/24.") _gimp_burn : -repeat @# -l[$>] w={w} h={h} --norm -gimp_fourier[-1] 0 --rows[-1] 0,{$h-1} -r[-1] $2%,$2%,1,100%,0,0,0.5,0.5 -b[-1] $3% -j[-2] [-1],{($w-w)/2},{($h-h)/2} -rm[-1] -gimp_fourier[-1] 1 -blend overlay,$1 -endl -done gimp_burn : -apply_channels "-_gimp_burn ${1-3}",$4,1 gimp_burn_preview : -gimp_split_preview "-gimp_burn ${^0}",$-1 #@gimp Contrast swiss mask : gimp_contrast_swm , gimp_contrast_swm(0) #@gimp : sep = separator() #@gimp : Blur the mask = float(2,0.5,10) #@gimp : sep = separator() #@gimp : note = note ("Contrast Mask need the negative of the mask") #@gimp : SKIP to use the mask to boost = bool(false) #@gimp : note = note ("Uncheck for Contrast Mask,Check for Contrast Boost") #@gimp : sep = separator() #@gimp : note = note("Merge the Mask") #@gimp : Intensity = float(1,0,1) #@gimp : sep = separator(), note = note("Author: PhotoComiX. Latest update: 2011/1/1 .") #@gimp : note = link("Filter explained here","http://www.gimpchat.com/viewtopic.php?f=9&t=864") gimp_contrast_swm : -repeat @# -l[$>] -split_opacity -l[0] --luminance -to_rgb -blur_xy[1] $1,$1 -if {$2==0} -negative[1] -elif {$2==1} -gimp_do_nothing -endif -rv -blend hardlight,$3 -endl -a c -endl -done #@gimp Drop shadow : gimp_drop_shadow, gimp_drop_shadow(1) #@gimp : X-shadow = float(3,-20,20) #@gimp : Y-shadow = float(3,-20,20) #@gimp : Smoothness = float(1.8,0,5) #@gimp : Curvature = float(0,0,1) #@gimp : Corner brightness = float(0,0,1) #@gimp : Angle = float(0,0,360) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/14.") gimp_drop_shadow : -* -1 -+ 255 -vignette {255*$5},80,95 -* -1 -+ 255 -drop_shadow $1%,$2%,$3%,$4 -rotate $6,1,0 #@gimp Drop shadow 3d : gimp_drop_shadow3d, gimp_drop_shadow3d_preview(1) #@gimp : X-angle = float(0,-90,90) #@gimp : Y-angle = float(0,-90,90) #@gimp : Z-angle = float(0,-90,90) #@gimp : Zoom = float(0,-100,100) #@gimp : X-offset = float(1,-50,50) #@gimp : Y-offset = float(1,-50,50) #@gimp : Perspective = float(2,0,10) #@gimp : Smoothness = float(0.5,0,5) #@gimp : Color = color(0,0,0,200) #@gimp : Preview only shadow = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/07/02.") gimp_drop_shadow3d : -repeat @# -l[$<] --_gimp_drop_shadow3d $* -endl -done gimp_drop_shadow3d_preview : -repeat @# -l[$<] -if $13 -_gimp_drop_shadow3d $* -else --_gimp_drop_shadow3d $* -rv -blend alpha,1 -endif -endl -done _gimp_drop_shadow3d : -point3d 0,0,1 -r3d[-1] 1,0,0,$1 -r3d[-1] 0,1,0,$2 -r3d[-1] 0,0,1,$3 u={i(0,8)} v={i(0,9)} w={i(0,10)} -rm[-1] -to_a -channels 100% -if {im==iM} -return -endif --f 'X=x/w-0.5;Y=y/h-0.5;A=($7-$4*$7/100)*$w/(X*$u+Y*$v+$7*$w);if(A<0,1e8,A)' --*[-1] 'y/h-0.5' -*[-2] 'x/w-0.5' -+[-2] {0.5-$5/100} -+[-1] {0.5-$6/100} -*[-2] {w} -*[-1] {h} -a[-2,-1] c -warp[0] [-1],0,1,0 -rm[-1] -b $8% -n 0,$12 -i[-2] ($9^$10^$11) -r[-2] [-1],[-1],1,3 -a[-2,-1] c #@gimp Equalize shadow : gimp_equalize_shadow, gimp_equalize_shadow_preview(1) #@gimp : Amplitude = float(1,0,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Authors: Francois Grassard and David Tschumperlé. Latest update: 2012/11/24.") gimp_equalize_shadow : -repeat @# -l[$>] --negative -blend softlight,$1 -endl -done gimp_equalize_shadow_preview : -gimp_split_preview "-gimp_equalize_shadow $1",$-1 #@gimp Light glow : gimp_lightglow, gimp_lightglow_preview(0) #@gimp : Density = float(30,0,100) #@gimp : Amplitude = float(0.5,0,2) #@gimp : Mode = choice(8,"Burn","Dodge","Freeze","Grain merge","Hard light","Interpolation", #@gimp : "Lighten","Multiply","Overlay","Reflect","Soft light","Stamp","Value") #@gimp : Opacity = float(0.8,0,1) #@gimp : note = note() #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/02/21.") _gimp_lightglow : mode=@{-arg\ 1+$3,burn,dodge,freeze,grainmerge,hardlight,interpolation,lighten,multiply,overlay,reflect,softlight,stamp,value} -repeat @# --gradient_norm[-1] -ge[-1] {100-$1}% -distance[-1] 1 -^[-1] $2 -*[-1] -1 -n[-1] 0,255 -blend $mode,$1 -mv[-1] 0 -done gimp_lightglow : -apply_channels "-_gimp_lightglow ${1-4}",$5,0 gimp_lightglow_preview : -gimp_split_preview "-gimp_lightglow $*",$-1 #@gimp Light patch : gimp_light_patch, gimp_light_patch(0) #@gimp : Density = int(5,2,30) #@gimp : Darkness = float(0.7,0,1) #@gimp : Lightness = float(2.5,1,4) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_light_patch : -repeat @# -l[$>] -split_opacity -l[0] -apply_channels "-light_patch $1,$2,$3",$4,0 -endl -a c -endl -done #@gimp Light rays : gimp_lightrays, gimp_lightrays(1) #@gimp : Density = float(80,0,100) #@gimp : X-center = float(0.5,0,1) #@gimp : Y-center = float(0.5,0,1) #@gimp : Length = float(1,0,1) #@gimp : Attenuation = float(0.5,0,1) #@gimp : Transparency = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/01/03.") gimp_lightrays : -lightrays ${1-5} -if $6 -repeat @# -r[$>] 100%,100%,1,{@{$>,s}+(@{$>,s}%2)} -done -endif #@gimp Relief light : gimp_light_relief, gimp_light_relief(1) #@gimp : Ambient lightness = float(0.3,0,5) #@gimp : Specular lightness = float(0.2,0,2) #@gimp : Specular size = float(0.2,0,1) #@gimp : Darkness = float(0,0,1) #@gimp : Light smoothness = float(1,0,5) #@gimp : X-light = float(0.5,0,1) #@gimp : Y-light = float(0.5,0,1) #@gimp : Z-light = float(5,0,20) #@gimp : Z-scale = float(0.5,0,3) #@gimp : Opacity as bumpmap = bool(0) #@gimp : Image smoothness = float(0,0,10) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_light_relief : -b $11% -light_relief ${1-10} #@gimp Shadow patch : gimp_shadow_patch, gimp_shadow_patch(1) #@gimp : Opacity = float(0.7,0,1) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_shadow_patch : -repeat @# -l[$>] -split_opacity -l[0] -apply_channels "-shadow_patch $1",$2,0 -endl -a c -endl -done #@gimp _Patterns #----------------------- #@gimp Bayer filter : rgb2bayer, rgb2bayer(0) #@gimp : Starting pattern = choice(0,"Red-Green","Blue-Green","Green-Red","Green-Blue") #@gimp : Keep colors = bool(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Box fitting : gimp_boxfitting, gimp_boxfitting_preview(0) #@gimp : Minimal size = int(3,1,32) #@gimp : Maximal size = int(0,0,32) #@gimp : note = note("Note: Set Maximal size to 0 to allow any size for the squares.") #@gimp : Initial density = float(0.1,0,1) #@gimp : Transparency = bool(0) #@gimp : sep = separator(), note = note("Note: This filter has been highly inspired by the work of Jared Tarbell, described on the page:") #@gimp : link = link("http://www.complexification.net/gallery/machines/boxFittingImg/") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/06.") gimp_boxfitting : -boxfitting ${1-3},3 -if $4 -to_rgba -replace_color 0,0,0,0,0,255,0,0,0,0 -endif gimp_boxfitting_preview : -boxfitting ${1-3},1 -if $4 -to_rgba -replace_color 0,0,0,0,0,255,0,0,0,0 -endif #@gimp Canvas : gimp_canvas, gimp_canvas_preview(0) #@gimp : note = note{"First direction :"} #@gimp : Amplitude = float(70,0,300) #@gimp : Angle = float(45,0,180) #@gimp : Sharpness = float(400,0,2000) #@gimp : note = note{"\nSecond direction : "} #@gimp : Activate second direction = bool(true) #@gimp : Amplitude = float(70,0,300) #@gimp : Angle = float(135,0,180) #@gimp : Sharpness = float(400,0,2000) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_canvas : -repeat @# -l[-1] -if $4 ({cos($2*pi/180)}^{sin($2*pi/180)}) -vector2tensor[-1] -r[-1] [-2],[-2] --smooth[-2] [-1],$1 -rm[-2] -sharpen[-1] $3 -c[-1] 0,255 ({cos($6*pi/180)}^{sin($6*pi/180)}) -vector2tensor[-1] -r[-1] [-2],[-2] -smooth[-3] [-1],$5 -rm[-1] -sharpen[-2] $7 -c[-2] 0,255 -+[-2,-1] -/[-1] 2 -else ({cos($2*pi/180)}^{sin($2*pi/180)}) -vector2tensor[-1] -r[-1] [-2],[-2] -smooth[-2] [-1],$1 -rm[-1] -sharpen[-1] $3 -c[-1] 0,255 -endif -endl -mv[-1] 0 -done gimp_canvas_preview : -gimp_split_preview "-gimp_canvas $*",$-1 #@gimp Canvas texture : texturize_canvas, texturize_canvas(0) #@gimp : Amplitude = float(20,0,256) #@gimp : Fibrousness = float(3,0,20) #@gimp : Emboss = float(0.6,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Cracks : gimp_cracks, gimp_cracks_preview(0) #@gimp : Density = float(1,0.1,10) #@gimp : Amplitude = float(-80,-255,255) #@gimp : Relief = bool(true) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_cracks : -apply_channels "-cracks $1,$2,$3",$4,0 gimp_cracks_preview : -gimp_split_preview "-gimp_cracks $*",$-1 #@gimp Dots : gimp_dots, gimp_dots_preview(0) #@gimp : Number of scales = int(10,1,20) #@gimp : Resolution = float(10,1,20) #@gimp : Radius = float(1,0,3) #@gimp : Stencil type = choice(2,"Black & White","RGB","Color") #@gimp : Transparency = bool(0) #@gimp : Negative = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_dots : -v - -remove_opacity -if $6 -* -1 -+ 255 -endif -if {$4==0} -dotsbw $1,$2,$3 -elif {$4==1} -repeat @# -l[$>] -s c -dotsbw $1,$2,$3 -a c -endl -done -else -repeat @# -l[$>] --dotsbw $1,$2,$3 -blend shapeaverage0 -endl -done -endif -if $5 -to_rgba -replace_color 0,0,0,0,0,255,0,0,0,0 -endif -if $6 -repeat @# -l[$>] -split_opacity -*[0] -1 -+[0] 255 -a c -endl -done -endif gimp_dots_preview : -gimp_split_preview "-gimp_dots $*",$-1 #@gimp Halftone : gimp_halftone, gimp_halftone_preview(0) #@gimp : note = note("Image parameters :") #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : Smoothness = float(0,0,10) #@gimp : sep = separator(), note = note("Halftone parameters :") #@gimp : Number of tones = int(5,2,32) #@gimp : Size for dark tones = int(8,2,256) #@gimp : Size for bright tones = int(8,2,256) #@gimp : Shape = choice{5,"Square","Diamond","Circle","Square (inv.)","Diamond (inv.)","Circle (inv.)"} #@gimp : Smoothness = float(0.1,0,32) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/07/23.") gimp_halftone : -apply_gamma $1 -- 128 -* $2 -+ 128 -+ $3 -b $4 -c 0,255 -repeat @# -l[$>] -split_opacity -halftone[0] ${5-9} -a c -endl -done gimp_halftone_preview : -gimp_split_preview "-gimp_halftone $*",$-1 #@gimp Hearts : gimp_hearts, gimp_hearts_preview(0) #@gimp : Density = float(10,0,100) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_hearts : -apply_channels "-hearts $1",$2,0 gimp_hearts_preview : -gimp_split_preview "-gimp_hearts $*",$-1 #@gimp Lava : gimp_lava, gimp_lava_preview(0) #@gimp : Perturbation = int(8,0,15) #@gimp : Smoothness = float(5,0,100) #@gimp : Scale = float(3,0,20) #@gimp : Sharpness = float(0,0,1000) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/26.") gimp_lava : -norm -repeat @# -l[$>] 100%,100% -plasma[-1] 1,1,{16-$1} -smooth[-1] $2,0,1,$3,$3,0.8,90 -* -gradient_norm -n 0,255 -equalize 256 -map 3 -sharpen $4 -endl -done gimp_lava_preview : -gimp_split_preview "-gimp_lava $*",$-1 #@gimp Marble : gimp_marble, gimp_marble #@gimp : Image weight = float(.5,0,30) #@gimp : Pattern weight = float(1,0,30) #@gimp : Pattern angle = float(0,0,360) #@gimp : Amplitude = float(0,0,1000) #@gimp : Sharpness = float(.4,0,5) #@gimp : Anisotropy = float(.6,0,1) #@gimp : Alpha = float(.6,0,20) #@gimp : Sigma = float(1.1,0,20) #@gimp : Cut low = float(0,0,100) #@gimp : Cut high = float(100,0,100) #@gimp : sep = separator(), note = note("Author: Preben Soeberg. Latest update: 2010/12/29.") gimp_marble : -repeat @# -l[$>] -split_opacity -l[0] -marble $1/10,$2/10,$3,$4,$5,$6,$7,$8,$9%,$10% -endl -a c -endl -done #@gimp Mineral mosaic : dt_mineral_mosaic,dt_mineral_mosaic(0) #@gimp : Density = float(1,0,3) #@gimp : Area = float(2,0,32) #@gimp : Smoothness = float(1,0,10) #@gimp : Shade strength = float(100,0,255) #@gimp : Shade angle = float(0,0,360) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/02/01.") dt_mineral_mosaic : -repeat @# -l[$>] -to_rgb --b $3 -segment_watershed[-1] $1 --norm[-1] -area[-1] 0 --le[-1] {$2^2} -inpaint[-2] [-1] -rm[-1] -label[-1] 0 --f[0] 'if(c==0,x,y)' --blend[-2,-1] shapeaverage,1,1 --[-2,-1] -rm[0,2] -channels[-1] 0,1 alpha={$5*pi/180} -sh[-1] 0,0 -*[-1] {cos($alpha)} -rm[-1] -sh[-1] 1,1 -*[-1] {sin($alpha)} -rm[-1] -compose_channels[-1] + -normalize_local[-1] 1000 -n[-1] -$4,$4 -+ -c 0,255 -endl -done #@gimp Mosaic : gimp_mosaic, gimp_mosaic_preview(0) #@gimp : Density = float(1,0.1,10) #@gimp : Keep edges = bool(true) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mosaic : -apply_channels "-mosaic $1,$2",$3,0 gimp_mosaic_preview : -gimp_split_preview "-gimp_mosaic $*",$-1 #@gimp Pack sprites : gimp_pack_sprites, gimp_no_preview #@gimp : Number of scales = int(5,1,16) #@gimp : Minimal scale [%] = float(25,1,100) #@gimp : Allow angle = choice(3,"0 deg.","180 deg.","90 deg.","Any") #@gimp : Spacing = int(1,-16,16) #@gimp : Precision = int(7,1,32) #@gimp : sep = separator() #@gimp : Masking = choice("No masking","Mask as bottom layer") #@gimp : Width = int(512,32,2048) #@gimp : Height = int(512,32,2048) #@gimp : note = note("Notes:\n - Parameters Width and Height are considered only when No masking mode is selected.\n #@gimp : - Set different sprites on different layers to pack multiple sprites at the same time.") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/24.") gimp_pack_sprites : -if $6 # With mask. -if {@#<2} -error[] "Masking requires at least two input layers ! (please check that 'Input Layers' is correctly set)." -endif -repeat {@#-1} -l[$>] -to_rgba -split_opacity --neq[1] 0 -*[0] [-1] -a c -autocrop 0 -endl -done -remove_empty[0--2] --channels[-1] 100% -channels[-1] -4,0 -mv[-1] 0 -pack_sprites[0--2] ${1-5} -else # No masking -repeat @# -l[$>] -to_rgba -split_opacity --neq[1] 0 -*[0] [-1] -a c -autocrop 0 -endl -done -remove_empty -i[0] $7,$8,1,5 -pack_sprites ${1-5} -endif -channels[0] 0,@{0,s-2} #@gimp Paper texture : gimp_paper, gimp_paper_preview(0) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_paper : -apply_channels "-texturize_paper",$1,0 gimp_paper_preview : -gimp_split_preview "-gimp_paper $*",$-1 #@gimp Plaid : gimp_plaid_texture,gimp_plaid_texture(1) #@gimp : Line = float(50,0,100) #@gimp : Number of angles = int(2,1,8) #@gimp : Starting angle = float(0,0,360) #@gimp : Angle range = float(90,0,360) #@gimp : Smoothness = float(1,0,5) #@gimp : Sharpen = float(300,0,1000) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/05/16.") gimp_plaid_texture : -repeat @# -l[$>] w={w} h={h} s={s} -rows $1% -b $5% -sharpen $6 -resize $w,$h,1,$s,2 --rotate[0] $3,1,2,50%,50% -repeat {$2-1} --rotate[0] {$3+$4*($>+1)/($2-1)},1,2,50%,50% -+[-2,-1] -done -rm[0] -/ $2 -endl -done #@gimp Sponge : gimp_sponge, gimp_sponge_preview(0) #@gimp : Size = int(13,3,21) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sponge : -apply_channels "-sponge $1",$2,0 gimp_sponge_preview : -gimp_split_preview "-gimp_sponge $*",$-1 #@gimp Stained glass : gimp_stained_glass, gimp_stained_glass_preview(0) #@gimp : Edges = float(20,0,100) #@gimp : Shading = float(0.1,0,0.5) #@gimp : Thin separators = bool(1) #@gimp : sep = separator() #@gimp : Equalize = bool(1) #@gimp : Colors = float(1,0,3) #@gimp : Gamma = float(1,0.01,5) #@gimp : Contrast = float(1,0,4) #@gimp : Brightness = float(0,-255,255) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/18.") gimp_stained_glass : -repeat @# -l[$>] -split_opacity -l[0] -stained_glass $1,$2,$3 -n 0,255 -if $4 -equalize[-1] 256 -endif -rgb2lab[-1] -sh[-1] 1,2 -*[-1] $5 -rm[-1] -lab2rgb[-1] -apply_gamma[-1] $6 --[-1] 128 -*[-1] $7 -+[-1] {128+$8} -c[-1] 0,255 -endl -append c -endl -done gimp_stained_glass_preview : -gimp_split_preview "-gimp_stained_glass $*",$-1 #@gimp Stencil : gimp_stencil, gimp_stencil_preview(0) #@gimp : Radius = float(3,0,10) #@gimp : Smoothness = float(0,0,30) #@gimp : Iterations = int(8,1,100) #@gimp : Aliasing = float(0,0,5) #@gimp : Stencil type = choice(2,"Black & White","RGB","Color") #@gimp : Transparency = bool(0) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_stencil : -v - -if {$5==0} -norm -stencil $1,$2,$3 -elif {$5==1} -stencil $1,$2,$3 -else -repeat @# --norm[-1] -stencil[-1] $1,$2,$3 -ge[-1] 50% -blend[-2,-1] shapeaverage0 -mv[-1] 0 -done -endif -if $6 -to_rgba -replace_color 0,0,0,0,0,255,0,0,0,0 -endif -if $4 -smooth {30*$4},0,1,1 -endif gimp_stencil_preview : -gimp_split_preview "-gimp_stencil $*",$-1 #@gimp Tetris : gimp_tetris, gimp_tetris(0) #@gimp : Scale = int(10,1,20) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_tetris : -tetris $1 #@gimp Turbulence : gimp_turbulence, gimp_turbulence #@gimp : Radius = float(128,1,1024) #@gimp : Octaves = int(6,1,12) #@gimp : Damping per octave = float(4,1,10) #@gimp : Difference mixing = float(0,-10,10) #@gimp : Mode = choice("Turbulence","Turbulence 2","Fractal Noise","Fractured Clouds","Stardust","Pea Soup") #@gimp : sep = separator(), note = note("Author: Preben Soeberg. Latest update: 2010/12/29.") gimp_turbulence : -repeat @# -l[$>] -split_opacity -l[0] -turbulence ${^0} -endl -a c -endl -done #@gimp Weave : weave, weave(1) #@gimp : Density = int(6,1,32) #@gimp : Thickness = float(65,0,100) #@gimp : Shadow = float(0,0,100) #@gimp : Shading = float(0.5,0,3) #@gimp : Fibers amplitude = float(0,0,255) #@gimp : Fibers smoothness = float(0,0,10) #@gimp : Angle = choice("0 deg.","22.5 deg.","45 deg.","67.5 deg.") #@gimp : X-curvature = float(0,-1,1) #@gimp : Y-curvature = float(0,-1,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/18.") #@gimp Whirls : gimp_whirls, gimp_whirls_preview(0) #@gimp : Density = int(7,3,20) #@gimp : Smoothness = float(2,0,10) #@gimp : Darkness = float(0.2,0,1) #@gimp : Lightness = float(1.8,1,3) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_whirls : -apply_channels "-whirls $1,$2,$3,$4",$5,0 gimp_whirls_preview : -gimp_split_preview "-gimp_whirls $*",$-1 #@gimp _Repair #--------------------- #@gimp Bayer reconstruction : bayer2rgb, gimp_no_preview #@gimp : G/M smoothness = _float(6,0,20) #@gimp : R/B smoothness (principal) = _float(6,0,20) #@gimp : R/B smoothness (secondary) = _float(4,0,20) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Deinterlace : deinterlace, gimp_deinterlace_preview(0) #@gimp : Algorithm = choice("Standard","Motion-compensated") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_deinterlace : -deinterlace 0 -skip ${^0} gimp_deinterlace_preview : -gimp_split_preview "-gimp_deinterlace $*",$-1 #@gimp Inpaint [diffusion] : gimp_inpaint, gimp_inpaint_preview(0) #@gimp : Smooth inpaint = bool(true) #@gimp : Global iterations = int(10,1,30) #@gimp : Local iterations = int(10,1,30) #@gimp : Time step = float(20,5,50) #@gimp : Gradient smoothness = float(0.7,0,5) #@gimp : Tensor smoothness = float(1.2,0,5) #@gimp : sep = separator() #@gimp : Mask type = choice(1,"Opaque regions in top layer","Mask by color") #@gimp : note = note("If Mask by color has been selected :") #@gimp : Mask color = color(255,0,0,255) #@gimp : sep = separator() #@gimp : note = note("Note: #@gimp : When 'Mask by color' mode is selected, preview is likely to be inaccurate. #@gimp : ") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_inpaint : -if $7 # Mask by color. -repeat @# -l[$>] --select_color 0,${8-11} -rv -if $1 -inpaint_flow $2,$3,$4,$5%,$6% -c 0,255 -else -inpaint[1] [0] -endif -rm[0] -endl -done -else # Mask by top layer. -if {@#==1} -return -endif -to_a[0] -channels[0] 100% -ge[0] 50% -if $1 -inpaint_flow $2,$3,$4,$5%,$6% -c 0,255 -else -inpaint[^0] [0] -endif -to_a[0] -f[0] 0 -endif gimp_inpaint_preview : -gimp_inpaint ${^0} -if {!$7" && "@#>1} -rm[0] -endif #@gimp Inpaint [patch-based] : gimp_repair, gimp_no_preview #@gimp : Patch size = int(11,1,64) #@gimp : Lookup factor = float(3,1,16) #@gimp : Lookup increment = int(2,1,10) #@gimp : Blend size = int(16,0,200) #@gimp : Blend threshold = float(0,0,1) #@gimp : Blend decay = float(0.05,0,0.5) #@gimp : Blend scales = int(10,1,20) #@gimp : Allow outer blending = bool(1) #@gimp : sep = separator() #@gimp : Mask type = choice(1,"Opaque regions in top layer","Mask by color") #@gimp : note = note("If Mask by color has been selected :") #@gimp : Mask color = color(255,0,0,255) #@gimp : sep = separator(), note = note("Authors: David Tschumperlé and Maxime Daisy. Latest update: 2013/03/25.") gimp_repair : -if $9 # Mask by color. -repeat @# -l[$>] --select_color 0,${10-13} -repair[0] [1],$1,{$1*$2},${3-8} -rm[1] -endl -done -else # Mask by top layer. -if {@#==1} -return -endif -to_a[0] -channels[0] 100% -ge[0] 50% -repair[^0] [0],$1,{$1*$2},${3-8} -to_a[0] -f[0] 0 -endif #@gimp Inpaint [solidify] : gimp_solidify, gimp_solidify_preview(0) #@gimp : Interpolation type = choice("Linear","Morphological") #@gimp : sep = separator(), note = note("For linear method only :") #@gimp : Smoothness = float(1.5,1,5) #@gimp : Smoothness factor = float(1,1,1.2) #@gimp : Precision = float(0.5,0,1) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Note: #@gimp : This filter replaces transparent regions by interpolated colors. It may take long to render! #@gimp : ") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/12/01.") gimp_solidify : -if $1 -solidify -else -solidify_linear $2,$3,$4 -endif gimp_solidify_preview : -gimp_split_preview "-gimp_solidify $*",$-1 #@gimp Red-Eye attenuation : red_eye, red_eye #@gimp : Threshold = float(75,0,100) #@gimp : Smoothness = float(3.5,0,20) #@gimp : Factor = float(0.1,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") #@gimp Remove hot pixels : gimp_remove_hotpixels, gimp_remove_hotpixels_preview(0) #@gimp : Mask size = int(3,3,20) #@gimp : Threshold = float(10,0,200) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: Jérome Boulanger. Latest update: 2010/12/29.") gimp_remove_hotpixels : -remove_hotpixels $1,$2 gimp_remove_hotpixels_preview : -gimp_split_preview "-gimp_remove_hotpixels $*",$-1 #@gimp Smooth [anisotropic] : gimp_anisotropic_smoothing, gimp_anisotropic_smoothing_preview(0) #@gimp : Amplitude = float(60,0,1000) #@gimp : Sharpness = float(0.7,0,2) #@gimp : Anisotropy = float(0.3,0,1) #@gimp : Gradient smoothness = float(0.6,0,10) #@gimp : Tensor smoothness = float(1.1,0,10) #@gimp : Spatial precision = float(0.8,0.1,2) #@gimp : Angular precision = float(30,1,180) #@gimp : Value precision = float(2,0.1,5) #@gimp : Interpolation = choice(0,"Nearest neighbor","Linear","Runge-Kutta") #@gimp : Fast approximation = bool(1) #@gimp : Iterations = int(1,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_anisotropic_smoothing : -skip ${13=0},${14=0} -repeat @# -l[$>] -apply_channels "-gimp_parallel_overlap \"-repeat $11 -smooth $1,$2,$3,$4,$5,$6,$7,$8,$9,$10 -done\",$13,$14",$12,0 -endl -done -c 0,255 gimp_anisotropic_smoothing_preview : -gimp_split_preview "-gimp_anisotropic_smoothing $*",$-1 #@gimp Smooth [bilateral] : gimp_bilateral, gimp_bilateral_preview(0) #@gimp : Spatial variance = float(10,0,100) #@gimp : Value variance = float(7,0,100) #@gimp : Iterations = int(2,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_bilateral : -skip ${5=0},${6=0} -apply_channels "-gimp_parallel_overlap \"-repeat $3 -bilateral $1,$2 -done\",$5,$6",$4,0 gimp_bilateral_preview : -gimp_split_preview "-gimp_bilateral $*",$-1 #@gimp Smooth [diffusion] : gimp_diffusion_smoothing, gimp_diffusion_smoothing_preview(0) #@gimp : Sharpness = float(0.7,0,2) #@gimp : Anisotropy = float(0.3,0,1) #@gimp : Gradient smoothness = float(0.6,0,10) #@gimp : Tensor smoothness = float(1.1,0,10) #@gimp : Time step = float(15,5,50) #@gimp : Iterations = int(8,1,100) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_diffusion_smoothing : -apply_channels "-gimp_parallel_overlap \"-smooth $6,$1,$2,$3,$4,$5,0 -c 0,255\",$8,$9",$7,0 gimp_diffusion_smoothing_preview : -gimp_split_preview "-gimp_diffusion_smoothing $*",$-1 #@gimp Smooth [mean-curvature] : gimp_meancurvature_smoothing, gimp_meancurvature_smoothing_preview(0) #@gimp : Time step = float(30,5,50) #@gimp : Iterations = int(4,1,30) #@gimp : Keep iterations as different layers = bool(false) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_meancurvature_smoothing : -apply_channels "-gimp_parallel_overlap \"-meancurvature_flow $2,$1,$3 -c 0,255\",$5,$6",$4,0 gimp_meancurvature_smoothing_preview : -gimp_split_preview "-gimp_meancurvature_smoothing $*",$-1 #@gimp Smooth [median] : gimp_median, gimp_median_preview(0) #@gimp : Radius = int(3,1,20) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_median : -apply_channels "-median $1",$2,0 gimp_median_preview : -gimp_split_preview "-gimp_median $*",$-1 #@gimp Smooth [patch-based] : gimp_patch_smoothing, gimp_patch_smoothing_preview(0) #@gimp : Spatial variance = float(10,0.1,200) #@gimp : Patch variance = float(10,0.1,200) #@gimp : Patch size = int(3,2,21) #@gimp : Lookup size = int(5,2,21) #@gimp : Patch smoothness = float(0,0,4) #@gimp : Fast approximation = bool(1) #@gimp : Iterations = int(1,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_patch_smoothing : -apply_channels "-gimp_parallel_overlap \"-repeat $7 -denoise $1,$2,$3,$4,$5,$6 -done -c 0,255\",$9,$10",$8,0 gimp_patch_smoothing_preview : -gimp_split_preview "-gimp_patch_smoothing $*",$-1 #@gimp Smooth [selective gaussian] : gimp_selective_smoothing, gimp_selective_smoothing_preview(0) #@gimp : Amplitude = float(5,0,20) #@gimp : Edges = float(0.5,0,2) #@gimp : Scales = int(5,1,10) #@gimp : Iterations = int(1,1,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_selective_smoothing : -apply_channels "-gimp_parallel_overlap \"-repeat $4 -blur_selective $1,$2,$3 -done -c 0,255\",$6,$7",$5,0 gimp_selective_smoothing_preview : -gimp_split_preview "-gimp_selective_smoothing $*",$-1 #@gimp Smooth [thin brush] : gimp_anisotropic_smoothing, gimp_anisotropic_smoothing(0) #@gimp : Amplitude = float(60,0,1000) #@gimp : Sharpness = float(0.9,0,2) #@gimp : Anisotropy = float(0.64,0,1) #@gimp : Gradient smoothness = float(3.1,0,10) #@gimp : Tensor smoothness = float(1.10,0,10) #@gimp : Spatial precision = float(0.8,0.1,2) #@gimp : Angular precision = float(30,1,180) #@gimp : Value precision = float(2,0.1,5) #@gimp : Interpolation = choice(0,"Nearest neighbor","Linear","Runge-Kutta") #@gimp : Fast approximation = bool(1) #@gimp : Iterations = int(1,1,10) #@gimp : Channel(s) = choice("RGB","Luminance","Blue & Red chrominances","Blue chrominance","Red chrominance") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : note = note{"\nNote: This set of anisotropic smoothing parameters has been suggested by PhotoComiX."} #@gimp : sep = separator(), note = note("Author: PhotoComiX. Latest update: 2010/12/26.") #@gimp Smooth [total variation] : gimp_tv_smoothing, gimp_tv_smoothing_preview(0) #@gimp : Time step = float(30,5,100) #@gimp : Iterations = int(10,1,40) #@gimp : Keep iterations as different layers = bool(false) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/08/27.") gimp_tv_smoothing : -apply_channels "-gimp_parallel_overlap \"-tv_flow $2,$1,$3 -c 0,255\",$5,$6",$4,0 gimp_tv_smoothing_preview : -gimp_split_preview "-gimp_tv_smoothing $*",$-1 #@gimp Smooth [wavelets] : gimp_haar_smoothing, gimp_haar_smoothing_preview(0) #@gimp : Threshold = float(1,0,10) #@gimp : Iterations = int(10,1,32) #@gimp : Scales = int(10,2,10) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : sep = separator() #@gimp : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gimp : Spatial overlap = int(24,0,256) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: Jérome Boulanger and David Tschumperlé. Latest update: 2013/08/27.") gimp_haar_smoothing : -apply_channels "-gimp_parallel_overlap \"-denoise_haar $1,$3,$2 -c 0,255\",$5,$6",$4,0 gimp_haar_smoothing_preview : -gimp_split_preview "-gimp_haar_smoothing $*",$-1 #@gimp Upscale [diffusion] : gimp_upscale_smart, gimp_upscale_smart_preview(0) #@gimp : Width = text("200%") #@gimp : Height = text("200%") #@gimp : Smoothness = float(2,0,20) #@gimp : Anisotropy = float(0.4,0,1) #@gimp : Sharpness = float(50,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_upscale_smart : -to_rgb -upscale_smart $1,$2,1,$3,$4,$5 -c 0,255 gimp_upscale_smart_preview : -repeat @# --r[-1] $1,$2,1,1,0 -if {w<@{-2,w}||h<@{-2,h}} # Test for downscaling -rm[-1] -/[-1] 4 0 -t[-1] "Downscaling is\nnot allowed!",5,5,20,1,255 -r[-1] [-2],[-2],1,1,0,0,0.5,0.5 -or[-2,-1] -else -z[-2] {50-50*@{-2,w}/w}%,{50-50*@{-2,h}/h}%,{50+50*@{-2,w}/w}%,{50+50*@{-2,h}/h}% -rm[-1] -gimp_upscale_smart[-1] $1,$2,$3,$4,$5 -c[-1] 0,255 -endif -mv[-1] 0 -done #@gimp Upscale [scale2x] : gimp_scalenx, gimp_scalenx_preview(0) #@gimp : Scaling factor = choice("x 2","x 3","x 4","x 6","x 8","x 9","x 12","x 16","x 18","x 27") #@gimp : Colorbase = choice(1,"RGB","YCbCr","Lab") #@gimp : note = note{"\nNote: #@gimp : This filter re-implements the scaling algorithm described at : #@gimp : "} #@gimp : note = link("http://scale2x.sourceforge.net") #@gimp : note = note{" #@gimp : This filter is useful for resizing images that have very few colors #@gimp : (e.g. indexed images). It is generally useless for true colors images. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_scalenx : -repeat @# -l[$>] -split_opacity -if {$2==1} -rgb2ycbcr[0] -round[0] -elif {$2==2} -rgb2lab8[0] -round[0] -endif -if {$1==0} -scale2x -elif {$1==1} -scale3x -elif {$1==2} -scale2x -scale2x -elif {$1==3} -scale3x -scale2x -elif {$1==4} -scale2x -scale2x -scale2x -elif {$1==5} -scale3x -scale3x -elif {$1==6} -scale3x -scale2x -scale2x -elif {$1==7} -scale2x -scale2x -scale2x -scale2x -elif {$1==8} -scale3x -scale3x -scale2x -elif {$1==9} -scale3x -scale3x -scale3x -endif -if {$2==1} -ycbcr2rgb[0] -elif {$2==2} -lab82rgb[0] -endif -a c -endl -done gimp_scalenx_preview : -z 40%,40%,60%,60% -gimp_scalenx $1,$2 #@gimp _Rendering #------------------------ # Generic function to render a 3d image, with usual rendering parameters : # $1 = Width # $2 = Height # $3 = Object size # $4 = X-angle # $5 = Y-angle # $6 = Z-angle # $7 = FOV # $8 = X-light # $9 = Y-light # $10 = Z-light # $11 = Specular lightness # $12 = Specular shininess # $13 = Rendering mode. gimp_render3d : -n3d -c3d -m3d $13 f3d={0.5*max($1,$2)/tan($7*pi/360)} -f3d $f3d -l3d {$8*$f3d},{$9*$f3d},{$10*$f3d} -sl3d $11 -ss3d $12 -repeat @# -l[$>] -*3d {$3*max($1,$2)} -r3d 0,0,1,$6 -r3d 0,1,0,$5 -r3d 1,0,0,$4 $1,$2,1,3,-1 -object3d[-1] [-2],50%,50% -rm[-2] -to_rgba -replace_color 0,0,-1,-1,-1,255,0,0,0,0 -endl -done #@gimp 3d colored object : gimp_coloredobject3d, gimp_coloredobject3d_preview(1) #@gimp : Type = choice{1,"Plane","Box","Pyramid","Ellipsoid","Torus","Gyroid","Weird","Cup"} #@gimp : Color = color(128,128,128,255) #@gimp : sep = separator() #@gimp : Size-1 = float(0.5,0,3) #@gimp : Size-2 = float(0.5,0,3) #@gimp : Size-3 = float(0.5,0,3) #@gimp : X-angle = float(57,0,360) #@gimp : Y-angle = float(41,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/05/16.") _gimp_coloredobject3d : -to_rgb -_gimp_coloredobject3d$1$2 ${6-8} -col3d[-1] ${3-5} -db3d 0 gimp_coloredobject3d : -_gimp_coloredobject3d "_",${1-4,6-8} -repeat {@#-1} --gimp_render3d[-1] @{$>,w},@{$>,h},$6,${9--1} -sh[-1] 3,3 -*[-1] {$5/255} -rm[-1] -blend[$>,-1] alpha -done -rm[-1] gimp_coloredobject3d_preview : -_gimp_coloredobject3d "_preview_",${1-4,6-8} -repeat {@#-1} --gimp_render3d[-1] @{$>,w},@{$>,h},$6,${9--1} -sh[-1] 3,3 -*[-1] {$5/255} -rm[-1] -blend[$>,-1] alpha -done -rm[-1] _gimp_coloredobject3d_0 : -plane3d 1 -*3d[-1] $1,$2,1 _gimp_coloredobject3d_1 : -box3d 1 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_2 : -pyramid3d 1,1 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_3 : -sphere3d 1 -*3d[-1] 1,{2*$2},{2*$3} _gimp_coloredobject3d_4 : -torus3d $1,{$2/2} -*3d[-1] $3,0.5,0.5 _gimp_coloredobject3d_5 : -gyroid3d 24 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_6 : -weird3d 32 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_7 : -cup3d 128 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_preview_0 : -plane3d 1 -*3d[-1] $1,$2,1 _gimp_coloredobject3d_preview_1 : -box3d 1 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_preview_2 : -pyramid3d 1,1 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_preview_3 : -sphere3d 1 -*3d[-1] 1,{2*$2},{2*$3} _gimp_coloredobject3d_preview_4 : -torus3d $1,{$2/2} -*3d[-1] $3,0.5,0.5 _gimp_coloredobject3d_preview_5 : -gyroid3d 8 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_preview_6 : -weird3d 12 -*3d[-1] $1,$2,$3 _gimp_coloredobject3d_preview_7 : -cup3d 64 -*3d[-1] $1,$2,$3 #@gimp 3d elevation : gimp_elevation3d, gimp_elevation3d_preview(1) #@gimp : Factor = float(100,-1000,1000) #@gimp : Smoothness = float(1,0,10) #@gimp : sep = separator() #@gimp : Width = _int(1024,8,4096) #@gimp : Height = _int(1024,8,4096) #@gimp : Size = float(0.8,0,3) #@gimp : X-angle = float(25,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(2,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_elevation3d : -repeat {@#/2} -l[$>,{min($>+1,@#-1)}] -if {@#==1} --norm -else -r[1] [0],3 -endif -n[1] 0,$1 -b[1] $2 -elevation3d[0] [1] -rm[1] -endl -done -db3d 1 gimp_elevation3d : -_gimp_elevation3d ${1-2} -gimp_render3d ${3--1} gimp_elevation3d_preview : -gimp_elevation3d ${1-2},{w},{h},${5--1} #@gimp 3d extrusion : gimp_extrude3d, gimp_extrude3d_preview(1) #@gimp : Depth = float(10,1,1024) #@gimp : Resolution = int(512,1,1024) #@gimp : Smoothness = float(0.6,0,3) #@gimp : sep = separator() #@gimp : Width = _int(1024,1,4096) #@gimp : Height = _int(1024,1,4096) #@gimp : Size = float(0.5,0,3) #@gimp : X-angle = float(57,0,360) #@gimp : Y-angle = float(41,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_extrude3d : -repeat {@#/2} -l[$>,{min($>+1,@#-1)}] -extrude3d[-1] $1,$2,$3% -if {@#==2} -t3d[-1] [-2] -rm[-2] -endif -endl -done -db3d 0 gimp_extrude3d : -_gimp_extrude3d ${1-3} -gimp_render3d ${4--1} gimp_extrude3d_preview : -gimp_extrude3d ${1-3},{w},{h},${6--1} #@gimp 3d image object : gimp_imageobject3d, gimp_imageobject3d_preview(1) #@gimp : Type = choice{1,"Plane","Cube","Pyramid","Sphere","Torus","Gyroid","Weird","Cup","Rubik"} #@gimp : sep = separator() #@gimp : Width = _int(1024,1,4096) #@gimp : Height = _int(1024,1,4096) #@gimp : Size = float(0.5,0,3) #@gimp : X-angle = float(57,0,360) #@gimp : Y-angle = float(41,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_imageobject3d : -to_rgb -repeat @# -l[$>] -_gimp_imageobject3d$1$2 -endl -done -db3d 0 gimp_imageobject3d : -_gimp_imageobject3d "_",$1 -gimp_render3d ${2--1} gimp_imageobject3d_preview : w={w} h={h} -_gimp_imageobject3d "_preview_",$1 -gimp_render3d $w,$h,${4--1} _gimp_imageobject3d_0 : -imageplane3d _gimp_imageobject3d_1 : -imagecube3d _gimp_imageobject3d_2 : -imagepyramid3d _gimp_imageobject3d_3 : -imagesphere3d 64,32 _gimp_imageobject3d_4 : -torus3d 100,30 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_5 : -gyroid3d 24 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_6 : -weird3d 32 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_7 : -cup3d 128 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_8 : -imagerubik3d 5,5 _gimp_imageobject3d_preview_0 : -imageplane3d _gimp_imageobject3d_preview_1 : -imagecube3d _gimp_imageobject3d_preview_2 : -imagepyramid3d _gimp_imageobject3d_preview_3 : -imagesphere3d 16,8 _gimp_imageobject3d_preview_4 : -torus3d 100,30 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_preview_5 : -gyroid3d 8 -c3d[-1] -n3d[-1] -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_preview_6 : -weird3d 12 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_preview_7 : -cup3d 64 -t3d[-1] [-2] -rm[-2] _gimp_imageobject3d_preview_8 : -imagerubik3d 3,3,5,5 #@gimp 3d lathing : gimp_lathing3d, gimp_lathing3d_preview(1) #@gimp : Resolution = int(76,1,1024) #@gimp : Smoothness = float(0.6,0,3) #@gimp : Max angle = float(361,0,361) #@gimp : sep = separator() #@gimp : Width = _int(1024,1,4096) #@gimp : Height = _int(1024,1,4096) #@gimp : Size = float(0.5,0,3) #@gimp : X-angle = float(57,0,360) #@gimp : Y-angle = float(41,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") _gimp_lathing3d : -repeat {@#/2} -l[$>,{min($>+1,@#-1)}] -lathe3d[-1] $1,$2%,$3 -if {@#==2} -t3d[-1] [-2] -rm[-2] -endif -endl -done -db3d 0 gimp_lathing3d : -_gimp_lathing3d ${1-3} -gimp_render3d ${4--1} gimp_lathing3d_preview : -gimp_lathing3d ${1-3},{w},{h},${6--1} #@gimp 3d random objects : gimp_random3d, gimp_random3d(1) #@gimp : Type = choice("Cube","Cone","Cylinder","Sphere","Torus") #@gimp : Density = int(50,1,300) #@gimp : Size = float(3,1,20) #@gimp : Z-range = float(100,0,300) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : Rendering = choice(3,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : Opacity = float(1,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_random3d : -repeat @# -l[$>] f3d={0.5*max(w,h)/tan($5*pi/360)} -f3d $f3d -l3d {$6*$f3d},{$7*$f3d},{$8*$f3d} -sl3d $9 -ss3d $10 -to_rgb ({w},{h},{d},{s}) -/[-1] 2 -repeat $2 (@{1,0}) -+[-1] @{1,1} -*[-1] $3 -/[-1] 100 -_gimp_random3d$1 @-1 -rm[-2] -r3d[-1] 1,1,0,{?(0,360)} ({?(-1,1)}) -*[-1] @{1,0} ({?(-1,1)}) -*[-1] @{1,1} -+3d[-3] @-2,@-1,{?(-$4,$4)} -rm[-2,-1] -col3d[-1] {?(255)},{?(255)},{?(255)} -done -+3d[2--1] -object3d[0] [-1],50%,50%,0,$12,$11,0,1 -k[0] -endl -done _gimp_random3d0 : -box3d $1 _gimp_random3d1 : ($1) -/[-1] 2 -cone3d @-1,$1 -rm[-2] _gimp_random3d2 : ($1) -/[-1] 2 -cylinder3d @-1,$1 -rm[-2] _gimp_random3d3 : -sphere3d $1,2 _gimp_random3d4 : ($1) -/[-1] 3 -torus3d $1,@-1 -rm[-2] #@gimp Equation plot : gimp_equation_plot, gimp_equation_plot #@gimp : Equation = text{"X*c+10*cos(X+c+?)"} #@gimp : X-min = float(-10,-100,100) #@gimp : X-max = float(10,-100,100) #@gimp : Resolution = int(100,2,1024) #@gimp : Channels = int(3,1,32) #@gimp : Plot type = choice(2,"None","Lines","Splines","Bars") #@gimp : Vertex type = choice(0,"None","Points","Crosses 1","Crosses 2","Circles 1","Circles 2","Square 1","Square 2") #@gimp : sep = separator() #@gimp : note = note("Note : #@gimp : Use variable 'X' instead of 'x' in the equation to take care of X-min/max settings. #@gimp : Variable 'c' refers to the current channel number. Reduce resolution to be able to view #@gimp : separate graph vertices.") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_equation_plot : -repeat @# w={w} h={h} -rm[-1] $4,1,1,$5,"X=$2+($3-$2)*x/($4-1);$1" -dg $w,$h,$6,$7,$2,$3 -mv[-1] 0 -done #@gimp Gradient [corners] : gimp_corner_gradient, gimp_corner_gradient #@gimp : Color 1 (up/left corner) = color(255,255,255,128) #@gimp : Color 2 (up/right corner) = color(255,0,0,255) #@gimp : Color 3 (bottom/left corner) = color(0,255,0,255) #@gimp : Color 4 (bottom/right corner) = color(0,0,255,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_corner_gradient : -repeat @# ({w},{h}) -rm[-2] ($1,$5;$9,$13^$2,$6;$10,$14^$3,$7;$11,$15^$4,$8;$12,$16) -r[-1] @-2,1,4,3 -rm[-2] -mv[-1] 0 -done #@gimp Gradient [linear] : gimp_linear_gradient, gimp_linear_gradient #@gimp : Starting color = color(0,0,0,255) #@gimp : Ending color = color(255,255,255,255) #@gimp : Swap colors = bool(0) #@gimp : Angle = float(45,0,360) #@gimp : Fade start = float(0,0,100) #@gimp : Fade end = float(100,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_linear_gradient : -repeat @# ({w},{h}) -rm[-2] ($1^$2^$3^$4) ($5^$6^$7^$8) -if $9 -rv[-2,-1] -endif -r[-2,-1] @-3 -rm[-3] -fade_linear $10,$11,$12 -mv[-1] 0 -done #@gimp Gradient [radial] : gimp_radial_gradient, gimp_radial_gradient #@gimp : Starting color = color(0,0,0,255) #@gimp : Ending color = color(255,255,255,255) #@gimp : Swap colors = bool(0) #@gimp : Fade start = float(0,0,100) #@gimp : Fade end = float(100,0,100) #@gimp : X-center = float(50,0,100) #@gimp : Y-center = float(50,0,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_radial_gradient : -repeat @# ({w},{h}) -rm[-2] ($1^$2^$3^$4) ($5^$6^$7^$8) -if $9 -rv[-2,-1] -endif -r[-2,-1] @-3 -rm[-3] 100%,100% -=[-1] 1,$12%,$13% -distance[-1] 1 -_fade $10,$11 -mv[-1] 0 -done #@gimp Lissajous : gimp_lissajous, gimp_lissajous(1) #@gimp : Resolution = int(4096,2,8192) #@gimp : sep = separator() #@gimp : X-size = float(0.9,0,2) #@gimp : Y-size = float(0.9,0,2) #@gimp : Z-size = float(3,1,10) #@gimp : sep = separator() #@gimp : X-multiplier = float(8,0,32) #@gimp : Y-multiplier = float(7,0,32) #@gimp : Z-multiplier = float(0,0,32) #@gimp : sep = separator() #@gimp : X-offset = float(0,0,1) #@gimp : Y-offset = float(0,0,1) #@gimp : Z-offset = float(0,0,1) #@gimp : sep = separator() #@gimp : X-angle = float(0,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : sep = separator() #@gimp : Thickness = float(0,0,50) #@gimp : Color = color(255,255,255,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/18.") gimp_lissajous : -repeat @# -l[$>] -to_rgba {w},{h} -f3d {0.5*max(w,h)/tan($4*pi/360)} -lissajous3d $1,$5,$8,$6,$9,$7,$10 -r3d[-1] 0,0,1,$13 -r3d[-1] 0,1,0,$12 -r3d[-1] 1,0,0,$11 -*3d[-1] {0.5*$2*@{-2,w}},{0.5*$3*@{-2,h}},{0.5*$4*max(@{-2,w},@{-2,h})} -col3d[-1] 1 -object3d[-2] [-1],50%,50%,0,1,1,0,0 -rm[-1] -distance[-1] 1 -gt[-1] $14% -*[-2] [-1] -eq[-1] 0 -r[-1] 100%,100%,1,4 -sh[-1] 0,0 -*[-1] $15 -rm[-1] -sh[-1] 1,1 -*[-1] $16 -rm[-1] -sh[-1] 2,2 -*[-1] $17 -rm[-1] -sh[-1] 3,3 -*[-1] $18 -rm[-1] -+[-2,-1] -endl -done #@gimp Mandelbrot / Julia sets : gimp_mandelbrot, gimp_mandelbrot_preview #@gimp : X-center = float(0,-2,2) #@gimp : Y-center = float(0,-2,2) #@gimp : Zoom = float(0,0,100) #@gimp : Iterations = int(128,1,512) #@gimp : Fractal set = choice(Mandelbrot, Julia) #@gimp : X-seed (Julia) = text("0.317") #@gimp : Y-seed (Julia) = text("0.03") #@gimp : Color 1 = color(0,0,255) #@gimp : Color 2 = color(0,255,0) #@gimp : Color 3 = color(255,0,0) #@gimp : Color 4 = color(255,0,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_mandelbrot : (0^0^0) ($8^$9^$10) ($11^$12^$13) ($14^$15^$16) ($17^$18^$19) -a[-4--1] x -r[-1] $4,1,1,3,3 -a[-2,-1] x -mv[-1] 0 -repeat {@#-1} wh={w},{h} -rm[-1] $wh -mandelbrot[-1] {$1-2/(1+$3)},{$2-2/(1+$3)},{$1+2/(1+$3)},{$2+2/(1+$3)},$4,$5,{if($5,$6,0)},{if($5,$7,0)} -map[-1] [0] -mv[-1] 1 -done -rm[0] gimp_mandelbrot_preview : -gimp_mandelbrot ${^0} -line 0,50%,100%,50%,0.5,255 -line 50%,0,50%,100%,0.5,255 #@gimp Maze : gimp_maze, gimp_maze #@gimp : Cell size = int(24,1,256) #@gimp : Thickness = int(1,1,10) #@gimp : Masking = choice("None","Render on dark areas","Render on white areas") #@gimp : Preserve image dimension = bool(1) #@gimp : Maze type = choice("Dark walls","White walls") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/09/02.") gimp_maze : -repeat @# w={w} h={h} -r[-1] {100/$1}%,{100/$1}%,1,100%,2 -if {$3==0} -f[-1] 1 -elif {$3==1} -negative[-1] -endif -maze_mask[-1] $1 -dilate[-1] $2 -*[-1] 255 -if {!$5} -negative[-1] -endif -if $4 -r[-1] $w,$h,100%,100% -endif -mv[-1] 0 -done #@gimp Plasma : gimp_plasma, gimp_plasma(0) #@gimp : Alpha = float(0.5,0,5) #@gimp : Beta = float(0,0,100) #@gimp : Scale = int(8,2,10) #@gimp : Randomize = bool(0) #@gimp : Transparency = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/20.") gimp_plasma : -skip ${4=0},${5=0} -if $5 -to_rgba -else -to_rgb -endif -if $4 -rand 0,255 -endif -plasma $1,$2,$3 -n 0,255 #@gimp Polka dots : gimp_polka_dots, gimp_polka_dots(1) #@gimp : Size = float(80,0,100) #@gimp : Density = float(20,0.1,100) #@gimp : First offset = float(50,0,100) #@gimp : Second offset = float(50,0,100) #@gimp : Angle = float(0,0,180) #@gimp : Aliasing = float(0.5,0.1,1) #@gimp : Shading = float(0.1,0.1,1) #@gimp : Opacity = float(1,0,1) #@gimp : Color = color(255,0,0,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_polka_dots : -to_rgba -polka_dots {$1*$2/100},${2--1} #@gimp Quick copyright : gimp_quick_copyright, gimp_quick_copyright(0) #@gimp : Text = text("\251 G'MIC") #@gimp : Size = int(24,13,128) #@gimp : Color = color(255,255,255,128) #@gimp : Outline = int(1,0,4) #@gimp : Position = choice(3,"Up-left","Up-right","Bottom-left","Bottom-right") #@gimp : Offset = int(5,0,40) #@gimp : Orientation = choice(1,"-90 deg.","0 deg.","+90 deg.","+180 deg.") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_quick_copyright : -i[0] 0 -t[0] "$1",0,0,$2,1,$3,$4,$5 -autocrop[0] 0 -r[0] {@{0,w}+2*$7},{@{0,h}+2*$7},1,3,0,0,0.5,0.5 -i[1] 0 -t[1] "$1",0,0,$2,1,1 -autocrop[1] 0 -r[1] {@{1,w}+2*$7},{@{1,h}+2*$7},1,1,0,0,0.5,0.5 -dilate[1] {1+2*$7} -rotate[0,1] {90*($10-1)} -repeat {@#-2} -if {$8==0} -j[-1] [0],$9,$9,0,0,{$6/255},[1] -elif {$8==1} -j[-1] [0],{w-1-@{0,w}-$9},$9,0,0,{$6/255},[1] -elif {$8==2} -j[-1] [0],$9,{h-1-@{0,h}-$9},0,0,{$6/255},[1] -else -j[-1] [0],{w-1-@{0,w}-$9},{h-1-@{0,h}-$9},0,0,{$6/255},[1] -endif -mv[-1] 2 -done -rm[0,1] #@gimp Rainbow : gimp_rainbow, gimp_rainbow #@gimp : Left position = float(80,0,100) #@gimp : Right position = float(80,0,100) #@gimp : Left slope = float(175,0,400) #@gimp : Right slope = float(175,0,400) #@gimp : Thinness = float(3,0.1,8) #@gimp : Opacity = float(80,0,199) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_rainbow : -channels 0 -f 0 -spline 0,$1%,100,{-$3}%,100%,$2%,100,$4%,256,1,1 -flood 0,0,0,0,0,1,1 -flood {w-1},0,0,0,0,1,1 -distance 0 -c 0,255 -n 0,{$5*255} -rainbow_lut --luminance[-1] -c[-1] 0,{min(100,200-$6)}% -n[-1] 0,255 -a[-2,-1] c -map[^-1] [-1] -rm[-1] -if {$6<100} -repeat @# -sh[$>] 3,3 -*[-1] {$6/100} -rm[-1] -done -endif #@gimp Random color ellipses : gimp_color_ellipses, gimp_color_ellipses(1) #@gimp : Density = int(400,0,3000) #@gimp : Radius = float(8,0,30) #@gimp : Opacity = float(0.1,0.01,0.5) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_color_ellipses : -color_ellipses $1,$2,$3 #@gimp Rorschach : gimp_rorschach, gimp_rorschach #@gimp : Scale = float(3,0,10) #@gimp : Mirror = choice(1,"None","x-axis","y-axis","xy-axes") #@gimp : Stencil type = choice(2,"Black & White","RGB","Color") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/12.") gimp_rorschach : -repeat @# -remove_opacity -l[$>] -if {$3==0} -norm -rorschach $1%,$2 -* 255 -elif {$3==1} -to_rgb -rorschach $1%,$2 -* 255 -else --norm -rorschach[-1] $1%,$2 -blend shapeaverage0 -endif -endl -done #@gimp Seamless turbulence : gimp_seamless_turbulence, gimp_seamless_turbulence(0) #@gimp : Amplitude = float(15,0,30) #@gimp : Smoothness = float(20,0,40) #@gimp : Orientation = float(0,0,180) #@gimp : Deviation = float(1,0,1) #@gimp : Contrast = float(3,0,4) #@gimp : Color rendering = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/04/02.") gimp_seamless_turbulence : -repeat @# -l[$>] wh={w},{h} -rm $wh,1,{if($6,3,1)} -rand[-1] 0,255 $wh -rand[-1] {$3*pi/180-$4*10*pi},{$3*pi/180+$4*10*pi} --sin[-1] -cos[-2] -a[-2,-1] c -r[-2,-1] 130%,130%,1,100%,0,2,0.5,0.5 -b[-1] $2 -orientation[-1] -vector2tensor[-1] -smooth[-2] [-1],$1,0.5,20 -rm[-1] -r[-1] $wh,1,100%,0,0,0.5,0.5 -if {$5!=1} ia={ia} -- $ia -* $5 -+ $ia -endif -endl -done -c 0,255 -n 0,255 #@gimp Shade bobs : gimp_shadebobs, gimp_shadebobs #@gimp : note = note("Bobs parameters :") #@gimp : Density = int(50,1,200) #@gimp : Radius = int(5,1,100) #@gimp : Duration = int(200,1,500) #@gimp : Velocity = float(1,0,10) #@gimp : sep = separator() #@gimp : note = note("Curve parameters :") #@gimp : Rx = float(-1,-3,3) #@gimp : Ry = float(2,-3,3) #@gimp : Rz = float(1,-3,3) #@gimp : Rt = float(0.8,-3,3) #@gimp : Rcx = float(0,-3,3) #@gimp : Colormap = choice(8,"Grayscale","Standard","HSV","Lines","Hot","Cool","Jet","Flag","Cube") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/04/18.") gimp_shadebobs : -channels 0 -f 0 -repeat @# -l[$>] t=0 -repeat $3 -repeat $1 r={$6+$5*cos(6*$7*$t)+(1-$5)*sin(6*$8*$t)} a={(360*sin($7*$t)+30*$6*$>)*pi/180} ax={2*$>*pi/$1+$t} cx={(1+$9*cos($ax)+$r*cos($a))*w/2} cy={(1+$9*sin($ax)+$r*sin($a))*h/2} -ellipse[-1] $cx,$cy,$2%,$2%,0,-1,1 -done t={$t+$4/100} -done -endl -done -and 255 -if $10 -map {$10-1} -endif #@gimp Sierpinski triangle : gimp_sierpinski, gimp_sierpinski(1) #@gimp : Recursions = int(6,0,10) #@gimp : 1st X-coord = float(50,0,100) #@gimp : 1st Y-coord = float(0,0,100) #@gimp : 2nd X-coord = float(0,0,100) #@gimp : 2nd Y-coord = float(100,0,100) #@gimp : 3rd X-coord = float(100,0,100) #@gimp : 3rd Y-coord = float(100,0,100) #@gimp : Color = color(128,128,128) #@gimp : Opacity = float(1,0,1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_sierpinski : -repeat @# -l[$>] -split_opacity -l[0] 100%,100% -sierpinski[-1] ${1-7} --fc[-2] $8,$9,$10 -j[0] [-1],0,0,0,0,$11,[-2],255 -rm[-2,-1] -endl -a c -endl -done #@gimp Snowflake : gimp_snowflake, gimp_snowflake(1) #@gimp : Recursions = int(3,0,5) #@gimp : 1st X-coord = float(20,0,100) #@gimp : 1st Y-coord = float(70,0,100) #@gimp : 2nd X-coord = float(80,0,100) #@gimp : 2nd Y-coord = float(70,0,100) #@gimp : 3rd X-coord = float(50,0,100) #@gimp : 3rd Y-coord = float(10,0,100) #@gimp : Opacity = float(1,0,1) #@gimp : Color = color(128,128,128) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_snowflake : -repeat @# -l[$>] -split_opacity -l[0] -snowflake ${1-11} -endl -a c -endl -done #@gimp Stars : gimp_stars, gimp_stars(0) #@gimp : Density = float(10,0,200) #@gimp : Depth = float(0,0,5) #@gimp : Size = int(32,8,128) #@gimp : Branches = int(5,2,16) #@gimp : Thickness = float(0.38,0.1,1) #@gimp : Smoothness = float(0,0,10) #@gimp : Color = color(200,200,200,200) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/01.") gimp_stars : -repeat @# -l[$>] -split_opacity -rv -stars $1%,$2,$3,$4,$5,$6%,${7-9},{$10/255} -rv -a c -endl -done #@gimp Superformula : gimp_superformula, gimp_superformula(1) #@gimp : Resolution = int(4096,2,8192) #@gimp : sep = separator() #@gimp : X-size = float(0.9,0,2) #@gimp : Y-size = float(0.9,0,2) #@gimp : sep = separator() #@gimp : m = int(8,1,32) #@gimp : n1 = float(1,-32,32) #@gimp : n2 = float(5,-32,32) #@gimp : n3 = float(8,-32,32) #@gimp : sep = separator() #@gimp : X-angle = float(0,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : sep = separator() #@gimp : Thickness = float(3,0,50) #@gimp : Color = color(128,255,128,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/18.") gimp_superformula : -repeat @# -l[$>] -to_rgba {w},{h} -f3d {0.5*max(w,h)/tan($4*pi/360)} -superformula3d $1,${4-7} -r3d[-1] 0,0,1,$10 -r3d[-1] 0,1,0,$9 -r3d[-1] 1,0,0,$8 -*3d[-1] {0.5*$2*@{-2,w}},{0.5*$3*@{-2,h}} -col3d[-1] 1 -object3d[-2] [-1],50%,50%,0,1,1,0,0 -rm[-1] -distance[-1] 1 -gt[-1] $11% -*[-2] [-1] -eq[-1] 0 -r[-1] 100%,100%,1,4 -sh[-1] 0,0 -*[-1] $12 -rm[-1] -sh[-1] 1,1 -*[-1] $13 -rm[-1] -sh[-1] 2,2 -*[-1] $14 -rm[-1] -sh[-1] 3,3 -*[-1] $15 -rm[-1] -+[-2,-1] -endl -done #@gimp Truchet : gimp_truchet, gimp_truchet(0) #@gimp : Scale = int(32,1,256) #@gimp : Radius = int(5,1,64) #@gimp : Smoothness = float(1,0,10) #@gimp : Type = choice(1,"Straight","Curved") #@gimp : Colorize randomly = bool(0) #@gimp : Transparency = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/10/26.") gimp_truchet : -if $6 -to_a -else -remove_opacity -endif -truchet $1,$2,$4 -if $5 -repeat @# -channels[-1] 0 -label[-1] 0,1 {iM+1},1,1,3 -rand[-1] 0,255 -map[-2] [-1] -rm[-1] -mv[-1] 0 -done -endif -b $3 -n 0,255 #@gimp _Sequences #----------------------- # gimp_animate_preview : _command,_parameters1,_parameters2,_compute_half={ 0 | 1 },_width>=0,_height>=0 # Generate a preview with start/end rendering of an animation. gimp_animate_preview : -skip ${4=1},${5=0},${6=$5} -repeat @# -if $5 width=$5 -else width={w} -endif -if $6 height=$6 -else height={h} -endif -if $4 -s[-1] x,2 -else [-1] -endif -$1[-2] $2 -$1[-1] $3 # Assume this is a 1->1 filter. -r[-2,-1] {max(w,@{-2,w})},{max(h,@{-2,h})},1,100%,3 -if {!$4} -columns[-2] 0,50% -columns[-1] 50%,100% -endif -a[-2,-1] x -r[-1] $width,$height,1,100%,2 -drgba[-1] -line[-1] 50%,0,50%,100%,1,0,0,0,255 -text_outline[-1] "Start",1,0,13,1,1,255 -text_outline[-1] "End",{w-23},{h-16},13,1,1,255 -mv[-1] 0 -done #@gimp 3d elevation : gimp_animate_elevation3d, gimp_animate_elevation3d_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Factor = float(100,-1000,1000) #@gimp : Smoothness = float(1,0,10) #@gimp : Width = _int(1024,8,4096) #@gimp : Height = _int(1024,8,4096) #@gimp : Rendering = choice(2,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : note = note{"\nStarting parameters :"} #@gimp : Size = float(0.8,0,3) #@gimp : X-angle = float(35,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Size = float(0.8,0,3) #@gimp : X-angle = float(35,0,1440) #@gimp : Y-angle = float(0,0,1440) #@gimp : Z-angle = float(360,0,1440) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_elevation3d : -if $3 filename="$4/gmic_elevation3d.png" -else filename="" -endif -_gimp_elevation3d ${5-6} -animate gimp_render3d,"${7-8},${10-19},$9",\ "${7-8},${20-29},$9",$1,$2,@{-quote\ $filename} gimp_animate_elevation3d_preview : w={w} h={h} -_gimp_elevation3d ${5-6} -gimp_animate_preview gimp_render3d,$w","$h",${10-19},$9",\ $w","$h",${20-29},$9",0,$w,$h #@gimp 3d extrusion : gimp_animate_extrude3d, gimp_animate_extrude3d_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Depth = float(10,1,256) #@gimp : Resolution = int(512,1,1024) #@gimp : Smoothness = float(0.6,0,3) #@gimp : Width = _int(1024,8,4096) #@gimp : Height = _int(1024,8,4096) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : note = note{"\nStarting parameters :"} #@gimp : Size = float(0.8,0,3) #@gimp : X-angle = float(35,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Size = float(0.8,0,3) #@gimp : X-angle = float(35,0,1440) #@gimp : Y-angle = float(360,0,1440) #@gimp : Z-angle = float(0,0,1440) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_extrude3d : -if $3 filename="$4/gmic_extrude3d.png" -else filename="" -endif -_gimp_extrude3d ${5-7} -animate gimp_render3d,"${8-9},${11-20},$10",\ "${8-9},${21-30},$10",$1,$2,@{-quote\ $filename} gimp_animate_extrude3d_preview : w={w} h={h} -_gimp_extrude3d ${5-7} -gimp_animate_preview gimp_render3d,$w","$h",${11-20},$10",\ $w","$h",${21-30},$10",0,$w,$h #@gimp 3d image object : gimp_animate_imageobject3d, gimp_animate_imageobject3d_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Type = choice{1,"Plane","Cube","Pyramid","Sphere","Torus","Gyroid","Weird","Cup","Rubik"} #@gimp : Width = _int(1024,1,4096) #@gimp : Height = _int(1024,1,4096) #@gimp : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gimp : note = note{"\nStarting parameters :"} #@gimp : Size = float(0.5,0,3) #@gimp : X-angle = float(57,0,360) #@gimp : Y-angle = float(41,0,360) #@gimp : Z-angle = float(21,0,360) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Size = float(0.5,0,3) #@gimp : X-angle = float(57,0,1440) #@gimp : Y-angle = float(401,0,1440) #@gimp : Z-angle = float(21,0,1440) #@gimp : FOV = float(45,1,90) #@gimp : X-light = float(0,-100,100) #@gimp : Y-light = float(0,-100,100) #@gimp : Z-light = float(-100,-100,0) #@gimp : Specular lightness = float(0.5,0,1) #@gimp : Specular shininess = float(0.7,0,3) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_imageobject3d : -if $3 filename="$4/gmic_imageobject3d.png" -else filename="" -endif -_gimp_imageobject3d "_",$5 -animate gimp_render3d,"${6-7},${9-18},$8",\ "${6-7},${19-28},$8",$1,$2,@{-quote\ $filename} gimp_animate_imageobject3d_preview : w={w} h={h} -_gimp_imageobject3d "_preview_",$5 -gimp_animate_preview gimp_render3d,$w","$h",${9-18},$8",\ $w","$h",${19-28},$8",0,$w,$h #@gimp 3d text pointcloud : gimp_text_pointcloud3d, gimp_text_pointcloud3d_preview #@gimp : Frames = _int(64,1,256) #@gimp : 1st text = text("G'MIC") #@gimp : 2nd text = text("Rocks!") #@gimp : Smoothness = float(1,0,5) #@gimp : Color = color(200,220,255) #@gimp : Background = color(255,255,255,255) #@gimp : X-shadow= float(2,0,10) #@gimp : Y-shadow= float(2,0,10) #@gimp : Shadow smoothness = float(1,0,5) #@gimp : Stationary frames = _int(19,1,32) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/09/01.") gimp_text_pointcloud3d : W={w} H={h} M={round(1.5*max(w,h))} -rm -text_pointcloud3d "$2","$3",$4 -col3d[-1] ${5-7} -*3d[-1] {0.7*$M} -f3d 4000 -db3d 0 -m3d 4 -repeat $1 -rprogress {60*$>/$1} angle={$>*360/$1} --r3d[0] 1,0,1,$angle $M,$M,1,3,-1 -object3d[-1] [-2],50%,50%,0,1 -rm[-2] -done -rm[0] -a z -autocrop -1 -to_rgba -s z -replace_color 0,0,-1,-1,-1,255,0,0,0,0 -if $11 N=@# -repeat @# -l[$>] -rprogress {60+40*$>/$N} -i[0] 100%,100%,1,4 -fc[0] ${8-11} --channels[-1] 3,3 --negative[-1] -b[-2,-1] $14% -to_rgba[-1] -j[0] [-1],$12%,$13%,0,0,1,[-2],255 -rm[-2,-1] -blend alpha -endl -done -endif -if {$W>$H} -r2dx $W -else -r2dy $H -endif -if {$15>1} -i[{int($1/2)}] [{int($1/2)}]x{$15-1} -i[0] [0]x{$15-1} -endif gimp_text_pointcloud3d_preview : -gimp_text_pointcloud3d 4,"$2","$3",$4,${5-7},${8-11},${12-14},1 -drgba -frame 1,1,0 -append_tiles 2,2 #@gimp 3d tiles : gimp_transition3d, gimp_transition3d_preview(0) #@gimp : Inter-frames = _int(10,3,100) #@gimp : X-tiles = int(8,1,64) #@gimp : Y-tiles = int(8,1,64) #@gimp : X-rotation = text("1") #@gimp : Y-rotation = text("1") #@gimp : Z-rotation = text("0") #@gimp : Focale = float(800,100,2000) #@gimp : Enable antialiasing = bool(1) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/08/13.") gimp_transition3d : -f3d $7 -transition3d $1,$2,$3,"$4","$5","$6",$8 gimp_transition3d_preview : -f3d $7 -if {@#==1} -return -endif -k[0,1] -transition3d 4,$2,$3,"$4","$5","$6",$8 -k[1,2] -r[0] 50%,100%,1,100%,0 -r[1] 50%,100%,1,100%,0,0,1 -a x -line 50%,0,50%,100%,1,0,0,0,255 #@gimp Plasma transition : gimp_transition_plasma, gimp_transition_plasma_preview(0) #@gimp : Frames = _int(30,2,100) #@gimp : Scale = int(5,0,10) #@gimp : Smoothness = float(0.5,0,4) #@gimp : sep = separator(), note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/09.") gimp_transition_plasma : -transition_plasma $1,$2,$3% gimp_transition_plasma_preview : -if {@#==1} -return -endif -k[0,1] -transition_plasma 6,$2,$3% -k[1--2] -frame 1,1,0 -append_tiles , #@gimp B&W pencil : gimp_animate_pencilbw, gimp_animate_pencilbw_preview(0) #@gimp : Frames = _int(10,2,100) #@gimp : Output frames = _bool(1) #@gimp : Output files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nStarting parameters :"} #@gimp : Pencil type = float(2.3,0,5) #@gimp : Amplitude = float(100,0,200) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Pencil type = float(0.3,0,5) #@gimp : Amplitude = float(60,0,200) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_pencilbw : -if $3 filename="$4/gmic_pencilbw.png" -else filename="" -endif -animate pencilbw,"${5-6}",\ "${7-8}",$1,$2,@{-quote\ $filename} gimp_animate_pencilbw_preview : -gimp_animate_preview pencilbw,"${5-6}",\ "${7-8}" #@gimp B&W stencil : gimp_animate_stencilbw, gimp_animate_stencilbw_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output frames = _bool(1) #@gimp : Output files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nStarting parameters :"} #@gimp : Edge threshold = float(10,0,30) #@gimp : Smoothness = float(10,0,30) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Edge threshold = float(10,0,30) #@gimp : Smoothness = float(20,0,30) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_stencilbw : -if $3 filename="$4/gmic_stencilbw.png" -else filename="" -endif -animate stencilbw,"${5-6}",\ "${7-8}",$1,$2,@{-quote\ $filename} gimp_animate_stencilbw_preview : -gimp_animate_preview stencilbw,"${5-6}",\ "${7-8}" #@gimp Cartoon : gimp_animate_cartoon, gimp_animate_cartoon_preview(0) #@gimp : Frames = _int(10,2,100) #@gimp : Output frames = _bool(1) #@gimp : Output files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Color quantization = int(4,2,256) #@gimp : note = note{"\nStarting parameters :"} #@gimp : Smoothness = float(0.5,0,2) #@gimp : Sharpening = float(200,0,400) #@gimp : Edge threshold = float(10,1,30) #@gimp : Edge thickness = float(0.1,0,1) #@gimp : Color strength = float(1.5,0,3) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Smoothness = float(3,0,2) #@gimp : Sharpening = float(200,0,400) #@gimp : Edge threshold = float(10,1,30) #@gimp : Edge thickness = float(0.1,0,1) #@gimp : Color strength = float(1.5,0,3) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_cartoon : -if $3 filename="$4/gmic_cartoon.png" -else filename="" -endif -animate cartoon,"${6-10},$5",\ "${11-15},$5",$1,$2,@{-quote\ $filename} gimp_animate_cartoon_preview : -gimp_animate_preview cartoon,"${6-10},$5",\ "${11-15},$5" #@gimp Edges : gimp_animate_edges, gimp_animate_edges_preview(0) #@gimp : Frames = _int(10,2,100) #@gimp : Output frames = _bool(1) #@gimp : Output files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Negative colors = bool(0) #@gimp : note = note{"\nStarting parameters :"} #@gimp : Smoothness = float(0,0,10) #@gimp : Edge threshold = float(10,0,30) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Smoothness = float(0,0,10) #@gimp : Edge threshold = float(30,0,30) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_edges : -if $3 filename="$4/gmic_edges.png" -else filename="" -endif -animate gimp_edges,"${6-7},$5",\ "${8-9},$5",$1,$2,@{-quote\ $filename} gimp_animate_edges_preview : -gimp_animate_preview gimp_edges,"${6-7},$5",\ "${8-9},$5" #@gimp Edges on fire : gimp_fire_edges, gimp_fire_edges_preview(0) #@gimp : Edges = float(0.7,0,3) #@gimp : Attenuation = float(0.25,0,1) #@gimp : Smoothness = float(0.5,0,5) #@gimp : Threshold = float(25,0,100) #@gimp : sep = separator() #@gimp : Number of frames = _int(20,1,999) #@gimp : Starting frame = int(20,0,199) #@gimp : Frame skip = _int(0,0,20) #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/07/06.") gimp_fire_edges : -fire_edges ${1-7} -rv gimp_fire_edges_preview : -gimp_split_preview "-fire_edges $1,$2,$3,$4,1,$6,0",$-1 #@gimp Lava lamp : gimp_lavalampbw, gimp_lavalampbw_preview(0) #@gimp : Number of key-frames = _int(3,2,50) #@gimp : Number of inter-frames = _int(30,2,100) #@gimp : Smooth looping = _bool(1) #@gimp : sep = separator() #@gimp : Resolution = float(20,1,100) #@gimp : Size = float(2,0,30) #@gimp : Smoothness = _float(0.01,0,1) #@gimp : Transparent background = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/07/06.") gimp_lavalampbw : -if {!@#} (255;100^64;16^128;0) -r[-1] 512,512,1,3,3 -endif -repeat @# -l[$<] w={w} h={h} --r $4%,$4%,1,1,0 [-1]x{$1-1} -rand[^0] 0,1 -stencil[^0] $5,0 -if $3 [1] -endif -morph[^0] $2,$6,0 -stencil[^0] $5,0 -r[^0] $w,$h,1,1,3 -b[^0] 10 -ge[^0] 50% -*[^0] 255 -r[^0] 100%,100%,1,4 -j[^0] [0] -rm[0] -if $3 -rm[-1] -endif -endl -done -if {!$7} -repeat @# -l[$>] -split_opacity -n[-1] 0,1 -*[^-1] [-1] -rm[-1] -endl -done -endif gimp_lavalampbw_preview : -gimp_lavalampbw 2,2,1,$4,$5,$6,$7 -k[0] #@gimp Lissajous : gimp_animate_lissajous, gimp_animate_lissajous_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : sep = separator() #@gimp : note = note{"Starting parameters :"} #@gimp : Resolution = int(4096,2,8192) #@gimp : X-size = float(0.9,0,2) #@gimp : Y-size = float(0.9,0,2) #@gimp : Z-size = float(3,1,10) #@gimp : X-multiplier = float(8,0,32) #@gimp : Y-multiplier = float(7,0,32) #@gimp : Z-multiplier = float(0,0,32) #@gimp : X-offset = float(0,0,1) #@gimp : Y-offset = float(0,0,1) #@gimp : Z-offset = float(0,0,1) #@gimp : X-angle = float(0,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : Thickness = float(0,0,50) #@gimp : Color = color(255,255,255,255) #@gimp : sep = separator() #@gimp : note = note{"Ending parameters :"} #@gimp : Resolution = int(4096,2,8192) #@gimp : X-size = float(0.9,0,2) #@gimp : Y-size = float(0.9,0,2) #@gimp : Z-size = float(3,1,10) #@gimp : X-multiplier = float(8,0,32) #@gimp : Y-multiplier = float(7,0,32) #@gimp : Z-multiplier = float(0,0,32) #@gimp : X-offset = float(0,0,1) #@gimp : Y-offset = float(0,0,1) #@gimp : Z-offset = float(0,0,1) #@gimp : X-angle = float(0,0,360) #@gimp : Y-angle = float(0,0,360) #@gimp : Z-angle = float(0,0,360) #@gimp : Thickness = float(0,0,50) #@gimp : Color = color(255,255,255,255) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/04/18.") gimp_animate_lissajous : -if $3 filename="$4/gmic_lissajous.png" -else filename="" -endif -animate gimp_lissajous,"${5-22}",\ "${23-40}",$1,$2,@{-quote\ $filename} gimp_animate_lissajous_preview : -gimp_animate_preview gimp_lissajous,"${5-22}",\ "${23-40}",0 #@gimp Morphological filter : gimp_animate_morpho, gimp_animate_morpho_preview(0) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nGlobal parameters :"} #@gimp : Action = choice("Erosion","Dilation","Opening","Closing", #@gimp : "Original - Erosion","Dilation - Original","Original - Opening","Closing - Original") #@gimp : Invert colors = bool(false) #@gimp : Shape = choice(0,"Square","Octagonal","Circular") #@gimp : note = note{"\nStarting parameters :"} #@gimp : Size = int(5,1,100) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Size = int(50,2,100) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_morpho : -if $3 filename="$4/gmic_morpho.png" -else filename="" -endif -animate gimp_morpho,"$5,$8,$6,$7,0,1",\ "$5,$9,$6,$7,0,1",$1,$2,@{-quote\ $filename} gimp_animate_morpho_preview : -gimp_animate_preview gimp_morpho,"$5,$8,$6,$7,0,1",\ "$5,$9,$6,$7,0,1" #@gimp Rodilius : gimp_animate_rodilius, gimp_animate_rodilius_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : Color mode = choice(1,"Darker","Lighter") #@gimp : note = note{"\nStarting parameters :"} #@gimp : Amplitude = float(10,0,30) #@gimp : Thickness = float(10,0,100) #@gimp : Sharpness = float(300,0,1000) #@gimp : Orientations = int(5,2,20) #@gimp : Offset = float(0,0,180) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Amplitude = float(10,0,30) #@gimp : Thickness = float(10,0,100) #@gimp : Sharpness = float(300,0,1000) #@gimp : Orientations = int(5,2,20) #@gimp : Offset = float(180,0,180) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_rodilius : -if $3 filename="$4/gmic_rodilius.png" -else filename="" -endif -animate rodilius,"${6-10},$5",\ "${11-15},$5",$1,$2,@{-quote\ $filename} gimp_animate_rodilius_preview : -gimp_animate_preview rodilius,"${6-10},$5",\ "${11-15},$5" #@gimp Soft glow : gimp_animate_glow, gimp_animate_glow_preview(1) #@gimp : Frames = _int(10,2,100) #@gimp : Output as frames = _bool(1) #@gimp : Output as files = _bool(0) #@gimp : Output folder = _folder() #@gimp : note = note{"\nStarting parameters :"} #@gimp : Amplitude = float(0,0,8) #@gimp : note = note{"\nEnding parameters :"} #@gimp : Amplitude = float(3,0,8) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_animate_glow : -if $3 filename="$4/gmic_glow.png" -else filename="" -endif -animate glow,"$5",\ "$6",$1,$2,@{-quote\ $filename} gimp_animate_glow_preview : -gimp_animate_preview glow,"$5",\ "$6" #@gimp _Spectral filters #------------------------------ #@gimp Bandpass : gimp_bandpass, gimp_bandpass_preview(0) #@gimp : Low frequency = float(0,0,100) #@gimp : High frequency = float(100,0,100) #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Value range = choice(1,"Cut","Normalize") #@gimp : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_bandpass : -apply_channels "-bandpass $1%,$2%",$3,$4 gimp_bandpass_preview : -gimp_split_preview "-gimp_bandpass $*",$-1 #@gimp Fourier analysis : gimp_display_fft, gimp_display_fft(1) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_display_fft : -to_rgb -display_fft #@gimp Fourier transform : gimp_fourier, gimp_fourier_preview(1) #@gimp : Transform = choice(0,"Direct","Inverse") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_fourier : -if $1 -fft82float -c 0,255 -else -float2fft8 -endif gimp_fourier_preview : -if $1 -gimp_no_preview 0 -else -dfft -endif #@gimp Fourier watermark : gimp_watermark_fourier, _none_ #@gimp : Text = text("\251 G'MIC") #@gimp : Size = int(57,13,128) #@gimp : sep = separator() #@gimp : note = note("Note: To make the watermark visible afterwards, use the 'Fourier Analysis' filter. ") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_watermark_fourier : -watermark_fourier "$1",$2 -c 0,255 #@gimp Frequency merging : gimp_compose_freq, gimp_compose_freq(1) #@gimp : Note = note{"Note: #@gimp : This filter needs two layers to work properly. Set the Input layers option to handle multiple input layers. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_compose_freq : -repeat {int(@#/2)} --[-1] 128 -*[-1] 2 -+[-2,-1] -c[-1] 0,255 -mv[-1] 0 -done #@gimp Frequency splitting : gimp_split_freq, gimp_split_freq_preview(1) #@gimp : Smoothness = float(3,0,20) #@gimp : Note = note{"Note: #@gimp : This filter splits an image layer into two layers, one containing the low frequencies (colors), the other with the high frequencies (contours). You can thus process each layer separately, then recompose them with the previous Frequency merging filter. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_split_freq_preview : -gimp_split_freq $1 -k[0,1] -a x gimp_split_freq : -repeat @# --b[-1] $1 --[-2] [-1] -/[-2] 2 -+[-2] 128 -rv[-2,-1] -mv[-2,-1] 0 -done #@gimp _Various #---------------------- #@gimp Custom code (local) : gimp_custom_code, gimp_custom_code_preview(0) #@gimp : Code = text(1,"-repeat @# -l[$>]\n\n -to_rgb\n --deform 20\n -blend_edges 3\n\n-endl -done\n\n\n") #@gimp : sep = separator() #@gimp : Value range = choice("Cut","Normalize") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator() #@gimp : note = note{"Note: #@gimp : This filter can execute any set of instructions understood by the G'MIC language interpreter. #@gimp : Here, you can then test some commands before creating your own G'MIC custom commands and GIMP menu entries.\n\n #@gimp : Please look at the documentation reference web page :"} #@gimp : note = link("http://gmic.sourceforge.net/reference.shtml") #@gimp : note = note{" #@gimp : to learn more about available G'MIC commands. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/06/14.") #@gimp Custom code (global) : gimp_custom_code, gimp_custom_code_preview(1) #@gimp : Code = text(1,"-repeat @# -l[$>]\n\n -to_rgb\n --deform 20\n -blend_edges 3\n\n-endl -done\n\n\n") #@gimp : sep = separator() #@gimp : Value range = choice("Cut","Normalize") #@gimp : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gimp : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gimp : sep = separator() #@gimp : note = note{"Note: #@gimp : This filter can execute any set of instructions understood by the G'MIC language interpreter. #@gimp : Here, you can then test some commands before creating your own G'MIC custom commands and GIMP menu entries.\n\n #@gimp : Please look at the documentation reference web page :"} #@gimp : note = link("http://gmic.sourceforge.net/reference.shtml") #@gimp : note = note{" #@gimp : to learn more about available G'MIC commands. #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/06/14.") gimp_custom_code : -skip "${1=-skip ,}" -m "_gimp_custom_code_start : $1" -if {$3>0} -apply_channels "-_gimp_custom_code_start",$3,$2 -else -_gimp_custom_code -if $2 -n 0,255 -else -c 0,255 -endif -endif -uncommand _gimp_custom_code_start gimp_custom_code_preview : -skip "${1=-skip ,}" _gcp_arg="$1" -gimp_split_preview "-gimp_custom_code $_gcp_arg,${2--2}",$-1 _gimp_custom_code : -_gimp_custom_code_start #@gimp Do nothing : gimp_do_nothing, gimp_do_nothing #@gimp : note = note("Note : This filters does nothing on the image. Use it to manipulate layers in conjunction with the input/output options of the G'MIC plug-in.") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_do_nothing : #@gimp GREYC Poker Tour : gimp_gpt, gimp_no_preview #@gimp : Score type = _choice(0,"All-times","Last 50 sessions","Last 25 sessions","Last 10 sessions","Last tournament 50","Last tournament 25","Last tournament 10") #@gimp : sep = separator(), note = note{"Note : This filters renders and displays the current score board for the GPT (GREYC Poker Tour), #@gimp : a small and local poker tournament organized in our research lab."}; #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/27.") gimp_gpt : -gpt ,@{-_gimp_gpt$1} _gimp_gpt0 : -u 0 _gimp_gpt1 : -u 50 _gimp_gpt2 : -u 25 _gimp_gpt3 : -u 10 _gimp_gpt4 : -u -50 _gimp_gpt5 : -u -25 _gimp_gpt6 : -u -10 #@gimp Histogram analysis : _none_, gimp_display_histogram(1) #@gimp : Clusters = int(256,2,256) #@gimp : Monochrome = bool(0) #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_display_histogram : -to_rgb -if $2 -luminance -endif -repeat @# -display_histogram[-1] {w},{h},$1,0,255 -mv[-1] 0 -done #@gimp Import data : gimp_import_image, gimp_no_preview #@gimp : Filename = file() #@gimp : Normalize = bool(1) #@gimp : note = note{"\nNote: #@gimp : This filter can import any image data read by the G'MIC language interpreter. #@gimp : It includes exotic formats as : Pandore, CImg, Inrimage, AVI/MPEG (requires FFMPEG installed), ... #@gimp : "} #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2010/12/29.") gimp_import_image : -rm -i "$1" -s z -if $2 -n 0,255 -else -c 0,255 -endif #@gimp Solve maze : gimp_solve_maze, gimp_solve_maze_preview(1) #@gimp : Starting X-coord = float(5,0,100) #@gimp : Starting Y-coord = float(5,0,100) #@gimp : Ending X-coord = float(95,0,100) #@gimp : Endind Y-coord = float(95,0,100) #@gimp : Smoothness = float(0.1,0,1) #@gimp : Thickness = int(3,1,10) #@gimp : Color = color(255,0,0) #@gimp : Maze type = choice("Dark walls","White walls") #@gimp : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/09/01.") gimp_solve_maze : -repeat @# --norm[-1] -ge[-1] 50% -if {!$10} -negative[-1] -endif -*[-1] 255 --b[-1] $5% -*[-2] 1e10 -+[-2,-1] -minimal_path[-1] $1%,$2%,0,$3%,$4%,0 -pointcloud[-1] 0 -dilate[-1] $6 -r[-1] [-2],[-2],1,1,0 -to_rgba[-1] -replace_color[-1] 0,0,1,1,1,255,${7-9},255 -replace_color[-1] 0,0,0,0,0,255,0,0,0,0 -ellipse[-1] $1%,$2%,5,5,0,1,${7-9},255 -ellipse[-1] $3%,$4%,5,5,0,1,${7-9},255 -rv[-2,-1] -mv[-2,-1] 0 -done gimp_solve_maze_preview : -drgba -line $1%,$2%,$3%,$4%,1,0xCCCCCCCC,${7-9} -ellipse $1%,$2%,3,3,0,1,${7-9} -ellipse $1%,$2%,3,3,0,1,0x1,0 -ellipse $3%,$4%,3,3,0,1,${7-9} -ellipse $3%,$4%,3,3,0,1,0x1,0 #------------------------------------- # # Define menu entries for # the G'MIC online web service. # #------------------------------------- #@gmicol About #------------------- #@gmicol G'MIC Online : _none_, gmicol_logo_en #@gmicol : note = note{" #@gmicol : ( GREYC's Magic Image Converter On-Line)\n\nis proposed to you by"} #@gmicol : note = link("Sébastien Fourey","http://foureys.users.greyc.fr/") #@gmicol : note = link("David Tschumperlé","http://tschumperle.users.greyc.fr/") #@gmicol : note = link{"( IMAGE Team / GREYC Laboratory - CNRS UMR 6072 )","http://www.greyc.ensicaen.fr/EquipeImage"} #@gmicol : note = note{" #@gmicol : This web-service is based on our software G'MIC available at:"} #@gmicol : note = link("http://gmic.sourceforge.net/") #@gmicol : note = note{"Colorpickers and sliders widgets are provided by the DHTMLX project:"} #@gmicol : note = link("http://www.dhtmlx.com") #@gmicol : sep = separator() #@gmicol : note = note{"G'MIC is also available as a free plug-in for the image retouching software GIMP. Download it to get more filters #@gmicol : and features than in the online version, at:"} #@gmicol : note = link{"The G'MIC plug-in for GIMP","http://gmic.sourceforge.net/gimp.shtml"} #@gmicol : sep = separator(), note = note("Authors: Sébastien Fourey, David Tschumperlé. Latest update: 2012/10/11.") gmicol_logo_en : -gimp_logo " - Online -" #@gmicol Contributors : _none_, _none_ #@gmicol : note = note{" #@gmicol : We would like to thank all these people who contributed to G'MIC in one way or another. #@gmicol : A big hug to : \n\n #@gmicol : - Sylvie Alexandre (packaging, testing & filters) #@gmicol : - Partha Bagchi (packaging) #@gmicol : - Sébastien Bougleux (debugging) #@gmicol : - Jérome Boulanger (testing & code) #@gmicol : - Claude Bulin (packaging) #@gmicol : - Aurélien Ceyden (packaging) #@gmicol : - François Collard (testing) #@gmicol : - Patrick David (testing) #@gmicol : - Iain Fergusson (filters) #@gmicol : - Roberto Ferramosca (packaging) #@gmicol : - Jérome Ferrari (testing, code & tutorials) #@gmicol : - Chris Fiedler (gfx) #@gmicol : - Sébastien Fourey (ZArt code & G'MIC online) #@gmicol : - Gentlemanbeggar (filters) #@gmicol : - Claes Holmerson (tutorials) #@gmicol : - Arto Huotari (filters) #@gmicol : - Tom Keil (testing, filters & tutorials) #@gmicol : - Andy Kelday (testing & filters) #@gmicol : - Angelo Lama (testing & EKD integration) #@gmicol : - Stéphane de la Linuxerie (design) #@gmicol : - Mark (translation) #@gmicol : - Mahvin (testing & design) #@gmicol : - MareroQ (translation) #@gmicol : - Ramon Miranda (translation) #@gmicol : - Mauro Quercia (translation) #@gmicol : - PhotoComiX (testing, translation & filters) #@gmicol : - James Prichard (testing & filters) #@gmicol : - Guilherme Razgriz (translation) #@gmicol : - Karsten Rodenacker (packaging & code) #@gmicol : - Dani Sardà (translation) #@gmicol : - Yuri Shemanin (debugging) #@gmicol : - Thorsten "otto" Stettin (packaging) #@gmicol : - Stepanekos (translation) #@gmicol : - Bernd Zeimetz (packaging) #@gmicol : -"} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2011/03/30.") #@gmicol _Arrays & tiles #---------------------------------- #@gmicol Array [faded] : gimp_array_fade, gimp_array_fade_preview(1) #@gmicol : X-tiles = int(2,1,10) #@gmicol : Y-tiles = int(2,1,10) #@gmicol : X-offset = float(0,0,100) #@gmicol : Y-offset = float(0,0,100) #@gmicol : Fade start = float(80,1,100) #@gmicol : Fade end = float(90,1,100) #@gmicol : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gmicol : Size = _choice("Shrink", "Expand") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Array [mirrored] : gimp_array_mirror, gimp_array_mirror_preview(1) #@gmicol : Iterations = int(1,1,4) #@gmicol : X-offset = float(0,0,100) #@gmicol : Y-offset = float(0,0,100) #@gmicol : Array mode = choice(2,"x-axis","y-axis","xy-axes","2xy-axes") #@gmicol : Initialization = choice("Original","Mirror X","Mirror Y","Rotate 90 deg.","Rotate 180 deg.","Rotate 270 deg.") #@gmicol : Expand size = _bool(false) #@gmicol : Crop = int(0,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Array [random] : array_random, array_random(1) #@gmicol : Source X-tiles = int(5,1,20) #@gmicol : Source Y-tiles = int(5,1,20) #@gmicol : Destination X-tiles = int(7,1,20) #@gmicol : Destination Y-tiles = int(7,1,20) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Array [random colors] : gimp_array_color, gimp_array_color(1) #@gmicol : X-tiles = int(5,1,20) #@gmicol : Y-tiles = int(5,1,20) #@gmicol : Opacity = float(0.5,0,1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Array [regular] : gimp_array, gimp_array_preview(1) #@gmicol : X-tiles = int(2,1,10) #@gmicol : Y-tiles = int(2,1,10) #@gmicol : X-offset = float(0,0,100) #@gmicol : Y-offset = float(0,0,100) #@gmicol : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gmicol : Size = _choice("Shrink", "Expand") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Chessboard : gimp_chessboard, gimp_chessboard_preview(0) #@gmicol : First size = int(64,1,512) #@gmicol : Second size = int(64,1,512) #@gmicol : First offset = int(0,0,512) #@gmicol : Second offset = int(0,0,512) #@gmicol : Angle = float(0,0,180) #@gmicol : Opacity = float(0.5,0,1) #@gmicol : First color = color(0,0,0,255) #@gmicol : Second color = color(255,255,255,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Dices : gimp_dices, gimp_dices(0) #@gmicol : Resolution = float(2,1,10) #@gmicol : Size = int(24,8,64) #@gmicol : Color model = choice(1,"Black dices","White dices") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Grid : gimp_imagegrid, gimp_imagegrid(0) #@gmicol : X-size = int(10,2,100) #@gmicol : Y-size = int(10,2,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Taquin : taquin, taquin(1) #@gmicol : X-tiles = int(7,1,20) #@gmicol : Y-tiles = int(7,1,20) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tileable rotation : gimp_rotate_tileable, gimp_rotate_tileable(1) #@gmicol : Angle = float(45,0,360) #@gmicol : Maximum size factor = int(8,0,20) #@gmicol : Array mode = choice(0,"None","x-axis","y-axis","xy-axes","2xy-axes") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tiled isolation : gimp_isolate_tiles, gimp_isolate_tiles(0) #@gmicol : X-size = float(10,0,100) #@gmicol : Y-size = float(10,0,100) #@gmicol : X-border = float(5,0,100) #@gmicol : Y-border = float(5,0,100) #@gmicol : Keep tiles square = bool(1) #@gmicol : Keep borders square = bool(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tiled normalization : gimp_normalize_tiles, gimp_normalize_tiles(1) #@gmicol : X-tiles = int(25,1,80) #@gmicol : Y-tiles = int(25,1,80) #@gmicol : Minimal value = float(0,0,255) #@gmicol : Maximal value = float(255,0,255) #@gmicol : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tiled rotation : gimp_rotate_tiles, gimp_rotate_tiles(1) #@gmicol : X-tiles = int(5,1,80) #@gmicol : Y-tiles = int(5,1,80) #@gmicol : Angle = float(15,0,360) #@gmicol : X-shadow = float(3,-20,20) #@gmicol : Y-shadow = float(3,-20,20) #@gmicol : Smoothness = float(1.8,0,5) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tiled parameterization : gimp_parameterize_tiles, gimp_parameterize_tiles(1) #@gmicol : X-tiles = int(10,1,30) #@gmicol : Y-tiles = int(10,1,30) #@gmicol : Fitting function = choice("Linear","Quadratic") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tiled random shifts : gimp_shift_tiles, gimp_shift_tiles(1) #@gmicol : X-tiles = int(10,1,30) #@gmicol : Y-tiles = int(10,1,30) #@gmicol : Amplitude = float(10,0,100) #@gmicol : Opacity = float(1,0,1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Artistic #----------------------- #@gmicol Bokeh : bokeh, gimp_bokeh_preview(0) #@gmicol : note = note("Global parameters:") #@gmicol : Amplitude = float(250,0,600) #@gmicol : Smoothness = float(2,0,20) #@gmicol : Density = float(0.5,0,5) #@gmicol : sep = separator(), note = note("Bokeh shape:") #@gmicol : Size = int(24,1,64) #@gmicol : Outline size = float(10,0,100) #@gmicol : Outline amplitude = float(2,0,10) #@gmicol : Smoothness = float(0.7,0,5) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/04/24.") #@gmicol Cartoon : cartoon, gimp_cartoon_preview(0) #@gmicol : Smoothness = float(3,0,10) #@gmicol : Sharpening = float(200,0,400) #@gmicol : Edge threshold = float(20,1,30) #@gmicol : Edge thickness = float(0.25,0,1) #@gmicol : Color strength = float(1.5,0,3) #@gmicol : Color quantization = int(8,2,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Cubism : gimp_cubism, gimp_cubism_preview(1) #@gmicol : Iterations = int(2,0,10) #@gmicol : Density = float(50,0,200) #@gmicol : Thickness = float(10,0,50) #@gmicol : Angle = float(90,0,360) #@gmicol : Opacity = float(0.7,0.01,1) #@gmicol : Smoothness = float(0,0,5) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/05.") #@gmicol Ellipsionism : gimp_ellipsionism, gimp_ellipsionism_preview(0) #@gmicol : Primary radius = float(20,1,100) #@gmicol : Secondary radius = float(10,1,100) #@gmicol : Smoothness = float(0.5,0,10) #@gmicol : Opacity = float(0.7,0,1) #@gmicol : Outline = float(8,1,3) #@gmicol : Density = float(0.5,0.1,2) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Felt pen : gimp_feltpen, gimp_feltpen_preview(0) #@gmicol : Amplitude = float(300,0,4000) #@gmicol : Density = float(50,0,100) #@gmicol : Smoothness = float(1,0,10) #@gmicol : Opacity = float(0.1,0,1) #@gmicol : Edge = float(20,0,100) #@gmicol : Thickness = int(5,2,32) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/25.") #@gmicol Kuwahara : gimp_kuwahara, gimp_kuwahara_preview(0) #@gmicol : Iterations = int(2,1,8) #@gmicol : Radius = int(5,1,30) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Lylejk's painting : gimp_lylejk_painting, gimp_lylejk_painting_preview(0) #@gmicol : Iterations = int(2,1,8) #@gmicol : Radius = int(4,1,30) #@gmicol : Canvas = float(10,0,100) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Lyle Kroll, David Tschumperlé. Latest update: 2011/09/21.") #@gmicol : note = link("Filter Explained here","http://www.gimpchat.com/viewtopic.php?f=10&t=2624") #@gmicol Painting : gimp_painting, gimp_painting_preview(0) #@gmicol : Abstraction = int(5,1,10) #@gmicol : Details scale = float(2.5,0,5) #@gmicol : Color = float(1.5,0,4) #@gmicol : Smoothness = float(50,0,1000) #@gmicol : Sharpen shades = bool(1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Lyle Kroll, Angelo Lama, David Tschumperlé.\nLatest update: 2011/02/28.") #@gmicol Pen drawing : gimp_pen_drawing, gimp_pen_drawing_preview(0) #@gmicol : Amplitude = float(10,0,30) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Poster edges : gimp_poster_edges, gimp_poster_edges_preview(0) #@gmicol : Image smoothness = float(20,0,100) #@gmicol : Edge threshold = float(60,0,100) #@gmicol : Edge shade = float(5,0,30) #@gmicol : Edge thickness = float(0,0,5) #@gmicol : Edge antialiasing = float(10,0,100) #@gmicol : Posterization level = int(0,0,15) #@gmicol : Posterization antialiasing = float(0,0,100) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: David Tschumperlé and David Revoy. Latest update: 2012/11/30.") #@gmicol Rodilius : gimp_rodilius, gimp_rodilius_preview(1) #@gmicol : Amplitude = float(10,0,30) #@gmicol : Thickness = float(10,0,100) #@gmicol : Sharpness = float(300,0,1000) #@gmicol : Orientations = int(5,2,36) #@gmicol : Offset = float(30,0,180) #@gmicol : Smoothness = int(0,0,5) #@gmicol : Color mode = choice(1,"Darker","Lighter") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Rod/GimpChat, David Tschumperlé. Latest update: 2011/09/28.") #@gmicol Warhol : warhol, warhol(1) #@gmicol : X-tiles = int(3,1,10) #@gmicol : Y-tiles = int(3,1,10) #@gmicol : Smoothness = float(2,0,10) #@gmicol : Color = float(40,0,60) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Whirl drawing : draw_whirl, gimp_draw_whirl_preview(0) #@gmicol : Amplitude = float(20,0,100) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Basics #--------------------- #@gmicol Adjust colors : gmicol_adjust_colors, gmicol_adjust_colors_preview #@gmicol : Contrast = float(1,0,3) #@gmicol : Brightness = float(0,-1,1) #@gmicol : Gamma = float(1,0,3) #@gmicol : Hue = float(0,0,360) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/23.") gmicol_adjust_colors : -repeat @# -l[$>] avg={ia} -- $avg -* $1 -+ $avg -+ {$2*256} -if {$3!=1} -apply_gamma $3 -endif -if {$4%360} -to_colormode {max(3,s)+1-s%2} -split_opacity -l[0] -rgb2hsv -sh 0,0 -+[-1] $4 -%[-1] 360 -rm[-1] -hsv2rgb -endl -a c -endif -endl -done -c 0,255 gmicol_adjust_colors_preview : -gimp_split_preview "-gmicol_adjust_colors $*",$-1 #@gmicol Autocrop : autocrop, autocrop #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/25.") #@gmicol Crop : gmicol_crop, gmicol_crop_preview #@gmicol : Left coordinate = float(25,0,100) #@gmicol : Up coordinate = float(25,0,100) #@gmicol : Right coordinate = float(75,0,100) #@gmicol : Bottom coordinate = float(75,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/18.") gmicol_crop : -crop $1%,$2%,$3%,$4% gmicol_crop_preview : -rectangle $1%,$2%,$3%,$4%,0.5,128 -rectangle $1%,$2%,$3%,$4%,1,0xFFFFFFFF,0 -circle $1%,$2%,3,1,0,255,0 -circle $1%,$2%,3,1,0xFFFFFFFF,0 -circle $3%,$2%,3,1,0,255,0 -circle $3%,$2%,3,1,0xFFFFFFFF,0 -circle $3%,$4%,3,1,0,255,0 -circle $3%,$4%,3,1,0xFFFFFFFF,0 -circle $1%,$4%,3,1,0,255,0 -circle $1%,$4%,3,1,0xFFFFFFFF,0 #@gmicol Equalize : gmicol_equalize, gmicol_equalize_preview #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/18.") gmicol_equalize : -apply_channels "-equalize 256,0,255",$1,1 gmicol_equalize_preview : -gimp_split_preview "-gmicol_equalize $*",$-1 #@gmicol Flip : gmicol_flip, gmicol_flip #@gmicol : Type = choice("Horizontal","Vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/23.") gmicol_flip : -if $1 -mirror y -else -mirror x -endif #@gmicol Histogram : gmicol_histogram, gmicol_histogram_preview #@gmicol : Levels = int(128,1,256) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/18.") gmicol_histogram : -to_rgb -dh 640,480,$1 gmicol_histogram_preview : -to_rgb -dh 320,240,$1 #@gmicol Negative : negative, negative #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/23.") #@gmicol Resize : gmicol_resize, _none_ #@gmicol : Type = choice("Ratio in %","Prescribed width","Prescribed height") #@gmicol : Ratio in % = float(50,0,300) #@gmicol : Prescribed width = int(256,8,1280) #@gmicol : Prescribed height = int(256,8,1280) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/23.") gmicol_resize : -if {$1==0} -resize $2%,$2%,1,100%,6 -elif {$1==1} -resize2dx $3,6 -else -resize2dy $4,6 -endif -c 0,255 #@gmicol Rotate : gmicol_rotate, gmicol_rotate #@gmicol : Angle = float(90,0,359) #@gmicol : Stick to nearest 90° = bool(1) #@gmicol : Boundary = choice("Transparent","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/23.") gmicol_rotate : -if $2 -rotate {90*round($1/90)},0,0 -else -to_rgba -rotate $1,1,$3 -endif #@gmicol _Black & white #-------------------------------- #@gmicol Black & White : gimp_blackandwhite, gimp_blackandwhite_preview(1) #@gmicol : Red level = float(0.299,0,1) #@gmicol : Red smoothness = float(0,0,10) #@gmicol : Green level = float(0.587,0,1) #@gmicol : Green smoothness = float(0,0,10) #@gmicol : Blue level = float(0.114,0,1) #@gmicol : Blue smoothness = float(0,0,10) #@gmicol : sep = separator() #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : Hue = float(0,0,360) #@gmicol : Saturation = float(0,0,1) #@gmicol : sep = separator() #@gmicol : Grain (shadows) = float(0,0,200) #@gmicol : Grain (midtones) = float(0,0,200) #@gmicol : Grain (highlights) = float(0,0,200) #@gmicol : Grain tone fading = float(2,0,10) #@gmicol : Grain scale = float(0,0,3) #@gmicol : Grain type = choice("Gaussian","Uniform","Salt and pepper","Poisson") #@gmicol : sep = separator() #@gmicol : Local contrast = float(0,0,60) #@gmicol : Radius = int(16,1,512) #@gmicol : Contrast smoothness = float(4,0,10) #@gmicol : sep = separator() #@gmicol : Pseudo-gray dithering = int(0,0,20) #@gmicol : Use maximum tones = bool(false) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Charcoal : gimp_charcoal, gimp_charcoal_preview(0) #@gmicol : Granularity = int(65,0,800) #@gmicol : Lowlights crossover point = int(70,0,255) #@gmicol : Highlights crossover point = int(170,0,255) #@gmicol : Boost contrast = bool(0) #@gmicol : Resize image for optimum effect = bool(1) #@gmicol : Add chalk highlights = bool(0) #@gmicol : Minimal highlights = int(50,0,255) #@gmicol : Maximal highlights = int(70,0,255) #@gmicol : Background color = color(255,255,255) #@gmicol : Foreground color = color(0,0,0) #@gmicol : Invert background/foreground = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol : note = note("Inspired from the Charcoal script by micomicon :") #@gmicol : link = link("http://registry.gimp.org/node/25078") #@gmicol Colorize [with colormap] : gimp_bwrecolorize, gimp_bwrecolorize_preview #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : Normalize = bool(0) #@gmicol : sep = separator() #@gmicol : Gradient preset = choice("User-defined","Black to white","White to black","Sepia","Solarize") #@gmicol : Interpolation type = choice(1,"Nearest","Linear","Cubic","Lanczos") #@gmicol : Preserve initial brightness = bool(0) #@gmicol : sep = separator(), note = note("User-defined gradient :") #@gmicol : Number of tones = int(5,2,8) #@gmicol : 1st tone = color(0,0,0,255) #@gmicol : 2nd tone = color(43,25,55,255) #@gmicol : 3rd tone = color(158,137,189,255) #@gmicol : 4th tone = color(224,191,228,255) #@gmicol : 5th tone = color(255,255,255,255) #@gmicol : 6th tone = color(255,255,255,255) #@gmicol : 7th tone = color(255,255,255,255) #@gmicol : 8th tone = color(255,255,255,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Dithering : gimp_ditheredbw, gimp_ditheredbw_preview(0) #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Hue = float(0,0,360) #@gmicol : Saturation = float(0,0,1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Ink wash : gimp_ink_wash, gimp_ink_wash(0) #@gmicol : note = note("Ink wash controls") #@gmicol : Size = float(0.14,0,4) #@gmicol : Amplitude = float(23,0,200) #@gmicol : sep = separator() #@gmicol : note = note("Check if you wish visual control on this step") #@gmicol : SKIP all other steps = bool(false) #@gmicol : note = note ("UNcheck to reactivate the other controls") #@gmicol : sep = separator() #@gmicol : Smoother Sharpness = float(0.5,0,2) #@gmicol : Smoother Edge Protection = float(0.54,0,1) #@gmicol : Smoother Softness = float(2.25,0,10) #@gmicol : sep = separator() #@gmicol : Stretch Contrast = choice("None","Automatic","Automatic & Contrast Mask","Manual Controls") #@gmicol : note = note ("To activate the sliders below chose 'Manual Controls'") #@gmicol :sep = separator() #@gmicol : LN Amplititude = float(2,0,60) #@gmicol : LN Size = float(6,0,64) #@gmicol : LN Neightborhood-Smoothness = float(5,0,40) #@gmicol : LN Average-Smoothness = float(20,0,40) #@gmicol : sep = separator(), note = note("Author: PhotoComiX. Latest update: 2011/4/5.") #@gmicol : note = link(0,"Forum thread about the filter discussion","http://gimpchat.com/viewtopic.php?f=10&t=914") #@gmicol Pencil : gimp_pencilbw, gimp_pencilbw_preview(0) #@gmicol : Size = float(0.3,0,5) #@gmicol : Amplitude = float(60,0,200) #@gmicol : Hue = float(0,0,360) #@gmicol : Saturation = float(0,0,1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Stamp : gimp_stamp, gimp_stamp_preview(0) #@gmicol : Auto-threshold = bool(1) #@gmicol : Threshold = int(50,0,100) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Sharpening = float(0,0,30) #@gmicol : Grain = float(0,0,100) #@gmicol : Invert colors = bool(false) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Antaron, Mahvin, David Tschumperlé. Latest update: 2011/05/17.") #@gmicol Stencil : gimp_stencilbw, gimp_stencilbw_preview(0) #@gmicol : Threshold = float(10,0,30) #@gmicol : Smoothness = float(10,0,30) #@gmicol : Hue = float(0,0,360) #@gmicol : Saturation = float(0,0,1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Colors #---------------------- #@gmicol Abstraction : gimp_color_abstraction, gimp_color_abstraction_preview(0) #@gmicol : Smoothness = float(1,0,10) #@gmicol : Levels = int(10,2,255) #@gmicol : Contrast = float(0.2,0.01,1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Boost / Fade : gimp_boost_fade, gimp_boost_fade_preview #@gmicol : Amplitude = float(5,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Channel processing : gimp_channel_processing, gimp_channel_processing_preview(1) #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Value action = choice("None","Cut","Cut & Normalize","Normalize","Threshold") #@gmicol : Low value = float(0,0,100) #@gmicol : High value = float(100,0,100) #@gmicol : Quantization = int(256,1,256) #@gmicol : Equalization = bool(0) #@gmicol : Negation = bool(0) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : note = note() #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Color balance : gimp_balance_gamma, gimp_balance_gamma_preview #@gmicol : Neutral color = color(128,128,128) #@gmicol : Stretch colors = bool(1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Color temperature : gmicol_tk_colortemp, gmicol_tk_colortemp_preview(1) #@gmicol : Color temperature = float(0,-20,20) #@gmicol : Automatic color balance = bool(0) #@gmicol : sep = separator() #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: Tom Keil. Latest update : 2012/05/04") gmicol_tk_colortemp : -repeat @# -l[$>] -if {$2==1} --luminance[-1] -to_rgb[-2] -s[-2] c avb={127.5-@{-2,a}} avg={127.5-@{-3,a}} avr={127.5-@{-4,a}} -+[-4] $avr -+[-3] $avg -+[-2] $avb -a[-4,-3,-2] c -rv -blend luminance -endif -gimp_mix_lab 1,0,0,1,{if({$1>=0},{$1/4},{$1*0.75})},0,1,$1,0,0,2,0 -endl -done gmicol_tk_colortemp_preview : -gimp_split_preview "-gmicol_tk_colortemp $*",$-1 #@gmicol Colormap : gimp_colormap,gimp_colormap_preview #@gmicol : Colormap = choice[1,"Adaptive","Custom","Standard (256)","HSV (256)","Lines (256)","Hot (256)","Cool (256)","Jet (256)","Flag (256)","Cube (256)"] #@gmicol : Dithering = float(1,0,1) #@gmicol : sep = separator(), note = note("For adaptive and custom colormaps only :") #@gmicol : Number of tones = int(32,2,256) #@gmicol : sep = separator(), note = note("For custom colormaps only :") #@gmicol : Number of colors = int(8,2,8) #@gmicol : 1st color = color(0,0,0) #@gmicol : 2nd color = color(255,255,255) #@gmicol : 3rd color = color(255,0,0) #@gmicol : 4th color = color(0,255,0) #@gmicol : 5th color = color(0,0,255) #@gmicol : 6th color = color(255,255,0) #@gmicol : 7th color = color(255,0,255) #@gmicol : 8th color = color(0,255,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Curves : gimp_apply_curve, gimp_apply_curve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : Display histogram = float(0,0,1) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Curves [RGB] #@gmicol Red : gimp_apply_RGBcurve, gimp_apply_Rcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Green : gimp_apply_RGBcurve, gimp_apply_Gcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blue : gimp_apply_RGBcurve, gimp_apply_Bcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _ #@gmicol Curves [YCbCr] #@gmicol Luminance : gimp_apply_YCbCrcurve, gimp_apply_Ycurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blue chrominance : gimp_apply_YCbCrcurve, gimp_apply_Cbcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Red Chrominance : gimp_apply_YCbCrcurve, gimp_apply_Crcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _ #@gmicol Curves [Lab] #@gmicol Lightness : gimp_apply_Labcurve, gimp_apply_Lcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol A-color : gimp_apply_Labcurve, gimp_apply_acurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol B-color : gimp_apply_Labcurve, gimp_apply_bcurve_preview #@gmicol : Starting Y = int(0,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(1) = int(-1,-1,255) #@gmicol : Y-coord(1) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(2) = int(-1,-1,255) #@gmicol : Y-coord(2) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(3) = int(-1,-1,255) #@gmicol : Y-coord(3) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(4) = int(-1,-1,255) #@gmicol : Y-coord(4) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : X-coord(5) = int(-1,-1,255) #@gmicol : Y-coord(5) = int(128,0,255) #@gmicol : sep = separator() #@gmicol : Ending Y = int(255,0,255) #@gmicol : sep = separator() #@gmicol : Curve smoothness = float(1,0,1) #@gmicol : Display histogram = float(0,0,100) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _ #@gmicol Decompose channels : gimp_decompose_channels, gimp_decompose_channels_preview #@gmicol : Color basis = choice(7,"RGB","HSV","HSL","HSI","YUV","YCbCr","XYZ","Lab","Lch","CMY","CMYK") #@gmicol : Action = choice("Decompose","Recompose") #@gmicol : Use multiple layers = bool(0) #@gmicol : Include opacity layer = bool(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Equalize HSV : gimp_hsv_equalizer, gimp_hsv_equalizer_preview #@gmicol : Preview bands = bool(false) #@gmicol : sep = separator() #@gmicol : Hue band = float(180,0,360) #@gmicol : Band width = float(40,1,360) #@gmicol : Hue shift = float(0,-180,180) #@gmicol : Saturation correction = float(0,-0.99,0.99) #@gmicol : Value correction = float(0,-0.99,0.99) #@gmicol : sep = separator() #@gmicol : Hue band = float(180,0,360) #@gmicol : Band width = float(40,1,360) #@gmicol : Hue shift = float(0,-180,180) #@gmicol : Saturation correction = float(0,-0.99,0.99) #@gmicol : Value correction = float(0,-0.99,0.99) #@gmicol : sep = separator() #@gmicol : Hue band = float(180,0,360) #@gmicol : Band width = float(40,1,360) #@gmicol : Hue shift = float(0,-180,180) #@gmicol : Saturation correction = float(0,-0.99,0.99) #@gmicol : Value correction = float(0,-0.99,0.99) #@gmicol : sep = separator() #@gmicol : note = note("Author: Jérome Ferrari. Latest update: 2011/01/14.") #@gmicol : note = link("Filter explained here","http://www.flickr.com/groups/gmic/discuss/72157625798533482") #@gmicol Maxfield Parrish : gmicol_gb_mp, gmicol_gb_mp_preview #@gmicol : Lithograph = float(2,.5,10) #@gmicol : Warm = bool(0) #@gmicol : Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author: Arto Huotari. Last update : 2012/10/24.") gmicol_gb_mp : -equalize 255 -if {$2==1} --gimp_corner_gradient 255,246,219,255,255,144,100,255,54,164,54,255,0,0,255,255 -else --gimp_corner_gradient 255,250,237,255,255,200,178,255,2,104,2,255,0,0,143,255 -endif -rv -gimp_transfer_colors 1 -blend value -equalize 255 -gimp_glow $1,0,0 gmicol_gb_mp_preview : -gimp_split_preview "-gmicol_gb_mp $*",$-1 #@gmicol Metallic look : gmicol_tk_metallic, gmicol_tk_metallic_preview(1) #@gmicol : Strength = float(1,0,1) #@gmicol : Smoothness = float(3,0,20) #@gmicol : Metal = choice("silver","gold","copper","bronze","blue steel") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Tom Keil. Last update : 2011/04/12.") #@gmicol : note = link("Filter explained here",http://www.tkfilter.bplaced.net/TKFilter%20filter.html) gmicol_tk_metallic : -repeat @# -l[$>] -gimp_gaussian_blur $2,0,0,1,1,0,0 -luminance --luminance -gimp_apply_curve[1] 0,31,111,64,17,110,176,148,75,177,235,186,1,0,0,0,0 -gimp_apply_curve[1] 0,31,111,64,17,110,176,148,75,177,235,186,1,0,0,0,0 -blend[0,1] value,$1 -if {$3==1} -gimp_mix_rgb 1,50,0,1,50,0,1,-50,0,0,2,0 -elif {$3==2} -gimp_mix_rgb 1,75,0,1,5,0,1,-25,0,0,2,0 -elif {$3==3} -gimp_mix_rgb 1,70,0,1,40,0,1,-20,0,0,2,0 -elif {$3==4} -gimp_mix_rgb 1,-5,0,1,0,0,1.1,12,0,0,2,0 -endif -endl -done gmicol_tk_metallic_preview : -gimp_split_preview "-gmicol_tk_metallic $*",$-1 #@gmicol Mixer [RGB] : gimp_mix_rgb, gimp_mix_rgb_preview(1) #@gmicol : Red contrast = float(1,0,4) #@gmicol : Red brightness = float(0,-255,255) #@gmicol : Red smoothness = float(0,0,10) #@gmicol : Green contrast = float(1,0,4) #@gmicol : Green brightness = float(0,-255,255) #@gmicol : Green smoothness = float(0,0,10) #@gmicol : Blue contrast = float(1,0,4) #@gmicol : Blue brightness = float(0,-255,255) #@gmicol : Blue smoothness = float(0,0,10) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Mixer [YCbCr] : gimp_mix_ycbcr, gimp_mix_ycbcr_preview(1) #@gmicol : Luminance contrast = float(1,0,4) #@gmicol : Luminance brightness = float(0,-255,255) #@gmicol : Luminance smoothness = float(0,0,10) #@gmicol : Blue chroma contrast = float(1,0,4) #@gmicol : Blue chroma brightness = float(0,-255,255) #@gmicol : Blue chroma smoothness = float(0,0,10) #@gmicol : Red chroma contrast = float(1,0,4) #@gmicol : Red chroma brightness = float(0,-255,255) #@gmicol : Red chroma smoothness = float(0,0,10) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Mixer [HSV] : gimp_mix_hsv, gimp_mix_hsv_preview(1) #@gmicol : Hue contrast = float(1,0,4) #@gmicol : Hue brightness = float(0,-180,180) #@gmicol : Hue smoothness = float(0,0,10) #@gmicol : Saturation contrast = float(1,0,4) #@gmicol : Saturation brightness = float(0,-1,1) #@gmicol : Saturation smoothness = float(0,0,10) #@gmicol : Value contrast = float(1,0,4) #@gmicol : Value brightness = float(0,-1,1) #@gmicol : Value smoothness = float(0,0,10) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Mixer [Lab] : gimp_mix_lab, gimp_mix_lab_preview(1) #@gmicol : Lightness contrast = float(1,0.5,1.5) #@gmicol : Lightness brightness = float(0,-50,50) #@gmicol : Lightness smoothness = float(0,0,10) #@gmicol : A-color contrast = float(1,0,4) #@gmicol : A-color brightness = float(0,-20,20) #@gmicol : A-color smoothness = float(0,0,10) #@gmicol : B-color contrast = float(1,0,4) #@gmicol : B-color brightness = float(0,-20,20) #@gmicol : B-color smoothness = float(0,0,10) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Mixer [CMYK] : gimp_mix_cmyk, gimp_mix_cmyk_preview(1) #@gmicol : Cyan contrast = float(1,0,4) #@gmicol : Cyan brightness = float(0,-255,255) #@gmicol : Cyan smoothness = float(0,0,10) #@gmicol : Magenta contrast = float(1,0,4) #@gmicol : Magenta brightness = float(0,-255,255) #@gmicol : Magenta smoothness = float(0,0,10) #@gmicol : Yellow contrast = float(1,0,4) #@gmicol : Yellow brightness = float(0,-255,255) #@gmicol : Yellow smoothness = float(0,0,10) #@gmicol : Key contrast = float(1,0,4) #@gmicol : Key brightness = float(0,-255,255) #@gmicol : Key smoothness = float(0,0,10) #@gmicol : note = note() #@gmicol : Tones range = choice("All tones","Shadows","Mid-tones","Highlights") #@gmicol : Tones smoothness = float(2,0,10) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Replace color : gimp_replace_color, gimp_replace_color(0) #@gmicol : Tolerance = float(100,1,450) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Selected color = color(255,255,255,255) #@gmicol : Replaced color = color(0,0,0,0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Select color : gimp_select_color, gimp_select_color(1) #@gmicol : Similarity space = choice(0,"RGB[A]","RGB","YCbCr","Red","Green","Blue","Opacity","Luminance","Blue & Red chrominances","Hue","Saturation") #@gmicol : Tolerance = float(20,0,100) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Selected color = color(255,255,255,255) #@gmicol : Output as = choice(0,"Selected colors","Selected mask") #@gmicol : Invert selection = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sepia : gimp_sepia, gimp_sepia_preview #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Split tones : gimp_split_tones, gimp_split_tones_preview(0) #@gmicol : Number of tones = int(3,2,10) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tone presets : gmicol_tone_presets, gmicol_tone_presets_preview #@gmicol : Preset = choice(1,"Whiter Whites","Warm Vintage","Magenta-Yellow","Velvetia","Seventies Magazine","Faded Print","Expired 69","Modern Film") #@gmicol : Strength = float(100,-200,200) #@gmicol : Scale output = bool(1) #@gmicol : sep = separator() #@gmicol : Vignette strength = float(50,0,255) #@gmicol : Vignette min radius = float(70,0,100) #@gmicol : Vignette max radius = float(95,0,100) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Iain Fergusson.") gmicol_tone_presets : -if {$1==0} --rgb_tone 00,10,00,00,00,00,00,00,00,00,00,00,00,10,00,00,00,00,00,20,00,00,20,00,00,00,00,255,0,0,0,0,0 # Whiter whites -elif {$1==1} --cmyk_tone 00,00,00,00,00,00,-8,-20,00,00,00,-49,00,00,00,00,00,00,00,-25,00,00,17,0,00,00,00,00,00,00,35,-25,17,8,26,31,00,00,00,00,17,00,-9,-31,29,00,00,-9,188,255,181,133,72,1 # Warm Vintage -elif {$1==2} --cmyk_tone 00,-38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,-164,88,255,00,00,00,00,00,00,00,00,00,65,33,-15,00,00,00,00,00,00,00,00,00,00,00,-25,128,92,62,45,38,1 # Magenta-Yellow -elif {$1==3} --cmyk_tone -25,50,00,25,00,00,25,00,00,00,00,00,025,25,00,-50,00,00,25,00,00,00,00,00,025,00,00,25,00,00,-50,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,36,178,255,169,94,2 # Velvetia -elif {$1==4} --cmyk_tone 25,-50,00,-25,00,00,-25,00,00,00,00,00,-025,-25,00,50,00,00,-25,00,00,00,00,00,-025,00,00,-25,00,00,50,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,17,120,240,255,255,4 # Seventies Magazine -elif {$1==5} --cmyk_tone 000,00,00,00,00,00,00,00,00,00,00,-60,000,00,00,00,00,00,00,00,00,-22,40,161,000,00,00,0,00,00,00,00,28,33,33,16,00,00,00,00,00,00,00,00,00,77,-8,-80,255,255,255,255,255,0 # Faded Print -elif {$1==6} --cmyk_tone 000,00,00,00,00,00,00,00,00,00,00,00,000,00,00,00,00,00,00,00,00,07,-20,-33,000,00,00,00,00,00,00,00,00,48,-65,-77,000,00,00,00,00,00,00,00,00,45,45,00,255,255,255,255,255,0,0 # Expired 69 -elif {$1==7} --cmyk_tone 000,20,00,00,08,00,00,00,00,00,-23,00,000,-13,00,0,17,00,00,00,00,-1,29,00,000,00,00,00,00,-12,00,00,00,19,68,18,000,00,00,00,00,00,00,00,00,-5,55,-15,128,255,255,255,255,0,0 # Modern Film -endif ---[0,1] -*[-1] {{$2/100}*-1} -+[0,-1] -k[0] -if {$3==0} -c 0,255 -else -n 0,255 -endif -vignette ${4-6} gmicol_tone_presets_preview : -gimp_split_preview "-gmicol_tone_presets $*",$-1 rgb_tone : -to_rgb --s c --apply_curve[1] 0,0,$1,128,$2,255,$3 --apply_curve[2] 0,0,$4,128,$5,255,$6 --apply_curve[3] 0,0,$7,128,$8,255,$9 -+[-3--1] --apply_curve[1] 0,0,$10,128,$11,255,$12 --apply_curve[2] 0,0,$13,128,$14,255,$15 --apply_curve[3] 0,0,$16,128,$17,255,$18 -+[-3--1] --apply_curve[1] 0,0,$19,128,$20,255,$21 --apply_curve[2] 0,0,$22,128,$23,255,$24 --apply_curve[3] 0,0,$25,128,$26,255,$27 -+[-3--1] -+[1,4] -+[2,4] -+[3,4] -a[-3--1] c ---[0,1] --rgb2hsv[0] -s[-1] c -rm[-3,-1] -*[-1] 255 -apply_curve[-1] 0,0,$28,64,$29,128,$30,192,$31,255,$32 -blend[-1,-2] multiply ---[0,-1] -if {$33==0} -luminance[0] --luminance[-1] -blend[-1,-2] grainextract -blend[0,-1] grainmerge -k[0] -elif {$33==1} -k[-1] -c 0,255 -elif {$33==2} -k[-1] -n 0,255 -endif cmyk_tone : -to_rgb -rgb2cmyk --s c --apply_curve[1] 0,0,$1,128,$2,255,$3 --apply_curve[2] 0,0,$4,128,$5,255,$6 --apply_curve[3] 0,0,$7,128,$8,255,$9 --apply_curve[4] 0,0,$10,128,$11,255,$12 -+[-4--1] --apply_curve[1] 0,0,$13,128,$14,255,$15 --apply_curve[2] 0,0,$16,128,$17,255,$18 --apply_curve[3] 0,0,$19,128,$20,255,$21 --apply_curve[4] 0,0,$22,128,$23,255,$24 -+[-4--1] --apply_curve[1] 0,0,$25,128,$26,255,$27 --apply_curve[2] 0,0,$28,128,$29,255,$30 --apply_curve[3] 0,0,$31,128,$32,255,$33 --apply_curve[4] 0,0,$34,128,$35,255,$36 -+[-4--1] --apply_curve[1] 0,0,$37,128,$38,255,$39 --apply_curve[2] 0,0,$40,128,$41,255,$42 --apply_curve[3] 0,0,$43,128,$44,255,$45 --apply_curve[4] 0,0,$46,128,$47,255,$48 -+[-4--1] -+[1,5] -+[2,5] -+[3,5] -+[4,5] -a[-4--1] c ---[0,1] --cmyk2rgb[0] -rgb2hsv[-1] -s[-1] c -rm[-1,-3] -*[-1] 255 -apply_curve[-1] 0,0,$49,64,$50,128,$51,192,$52,255,$53 -blend[-1,-2] multiply ---[0,-1] -if {$54==0} -cmyk2rgb -luminance[0] --luminance[-1] -blend[-1,-2] grainextract -blend[0,-1] grainmerge -k[0] -elif {$54==1} -k[-1] -c 0,255 -cmyk2rgb -elif {$54==2} -k[-1] -cmyk2rgb -c 0,255 -elif {$54==3} -k[-1] -n 0,255 -cmyk2rgb -elif {$54==4} -k[-1] -cmyk2rgb -n 0,255 -endif #@gmicol User-defined : gimp_custom_transform, gimp_custom_transform #@gmicol : Red - Green - Blue - Alpha = text{"i"} #@gmicol : Red - Green - Blue = text{"i + 90*(x/w)*cos(i/10)"} #@gmicol : Red = text{"i"} #@gmicol : Green = text{"i"} #@gmicol : Blue = text{"i"} #@gmicol : Alpha = text{"i"} #@gmicol : Value normalization = choice("None","RGB","RGBA") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Contours #---------------------- #@gmicol Convolve : gimp_convolve, gimp_convolve_preview(0) #@gmicol : Kernel = choice("Custom","Average 3x3","Average 5x5","Average 7x7","Average 9x9","Prewitt-X","Prewitt-Y","Sobel-X","Sobel-Y","Rotinv-X","Rotinv-Y","Laplacian","Robert Cross 1","Robert Cross 2","Impulses 5x5","Impulses 7x7","Impulses 9x9") #@gmicol : Boundary = choice(1,"Dirichlet","Neumann") #@gmicol : sep = separator(), note = note("Note: If parameter Kernel is set to Custom, it uses the custom convolution kernel defined below. Use commas and semicolons as separators for res. matrix columns and rows.") #@gmicol : Custom kernel = text("0,1,0;1,-4,1;0,1,0") #@gmicol : sep = separator(), note = note("Note: Kernel multiplier is useful only when parameter Value range is set to Cut.") #@gmicol : Value range = choice(1,"Cut","Normalize") #@gmicol : Kernel multiplier = float(1,0,50) #@gmicol : sep = separator() #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/06/06.") #@gmicol Curvature : gimp_curvature, gimp_curvature_preview(0) #@gmicol : Smoothness = float(2,0,10) #@gmicol : Min threshold = float(0,0,100) #@gmicol : Max threshold = float(100,0,100) #@gmicol : Absolute value = bool(0) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Difference of gaussians : gimp_dog, gimp_dog_preview(1) #@gmicol : 1st Variance = float(1.4,0,5) #@gmicol : 2nd Variance = float(1.5,0,5) #@gmicol : Threshold = float(0,0,49) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Distance transform : gimp_distance, gimp_distance_preview(0) #@gmicol : Value = int(128,0,255) #@gmicol : Metric = choice(2,"Chebyshev","Manhattan","Euclidean","Squared-Euclidean") #@gmicol : Normalization = choice(2,"Cut","Normalize","Modulo") #@gmicol : Modulo value = int(32,1,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Edges : gimp_edges, gimp_edges_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Threshold = float(15,0,50) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Edges offsets : gimp_edge_offsets, gimp_edge_offsets_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Threshold = float(15,0,50) #@gmicol : Scale = int(4,0,32) #@gmicol : Thickness = int(1,0,16) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Gradient norm : gimp_gradient_norm, gimp_gradient_norm_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Linearity = float(0.5,0,1.5) #@gmicol : Min threshold = float(0,0,100) #@gmicol : Max threshold = float(100,0,100) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Gradient RGB : gimp_gradient2rgb, gimp_gradient2rgb_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Min threshold = float(0,0,100) #@gmicol : Max threshold = float(100,0,100) #@gmicol : Orientation only = bool(0) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Isophotes : gimp_isophotes, gimp_isophotes_preview(0) #@gmicol : Levels = int(8,1,256) #@gmicol : Smoothness = float(0,0,5) #@gmicol : Filling = choice(1,"Transparent","Colors") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Laplacian : gimp_laplacian, gimp_laplacian_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Min threshold = float(0,0,100) #@gmicol : Max threshold = float(100,0,100) #@gmicol : Absolute value = bool(0) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Local orientation : gimp_local_orientation, gimp_local_orientation_preview(1) #@gmicol : Smoothness = float(0,0,5) #@gmicol : Min threshold = float(0,0,100) #@gmicol : Max threshold = float(100,0,100) #@gmicol : Negative colors = bool(0) #@gmicol : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Morphological filter : gimp_morpho, gimp_morpho_preview(0) #@gmicol : Action = choice("Erosion","Dilation","Opening","Closing", #@gmicol : "Original - Erosion","Dilation - Original","Original - Opening","Closing - Original") #@gmicol : Size = int(5,2,60) #@gmicol : Invert colors = bool(false) #@gmicol : Shape = choice(0,"Square","Octagonal") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Scale = bool(true) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Segmentation : gimp_segment_watershed, gimp_segment_watershed_preview(0) #@gmicol : Edge threshold = float(2,0,15) #@gmicol : Smoothness = float(1,0,5) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Skeleton : gimp_skeleton, gimp_skeleton_preview(1) #@gmicol : Method = choice("Distance","Thinning") #@gmicol : Smoothness = float(0,0,10) #@gmicol : Curviness = float(0,0,10) #@gmicol : Multiple channels = bool(1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Thin edges : gimp_thin_edges, gimp_thin_edges_preview(0) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Threshold = float(15,0,50) #@gmicol : Negative colors = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Deformations #-------------------------- #@gmicol Cartesian transform : gimp_custom_deformation, gimp_custom_deformation(1) #@gmicol : X-warping = text{"(w+h)/20 * cos(y*20/h)"} #@gmicol : Y-warping = text{"(w+h)/20 * sin(x*20/w)"} #@gmicol : Relative warping = bool(1) #@gmicol : Interpolation = choice(1,"Nearest neighbor","Linear") #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Circle transform : gimp_circle_transform, gimp_circle_transform_preview(1) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : X-scale = float(-2,-16,16) #@gmicol : Y-scale = float(-2,-16,16) #@gmicol : Radius = float(0.2,0,1) #@gmicol : Symmetry = choice("None","Inside","Outside") #@gmicol : Interpolation = choice(1,"Nearest neighbor","Linear") #@gmicol : Boundary = choice(1,"Transparent","Nearest","Repeat") #@gmicol : Preview reference circle = bool(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/08.") #@gmicol Euclidean - Polar : gimp_euclidean2polar, gimp_euclidean2polar(1) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Dilation = float(1,0.1,10) #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : Inverse transform = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Fish-eye : fisheye, fisheye(1) #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : Radius = float(70,0,100) #@gmicol : Amplitude = float(1,0,2) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Flower : gimp_flower, gimp_flower(1) #@gmicol : Amplitude = float(30,-100,100) #@gmicol : Petals = int(6,0,20) #@gmicol : Offset = float(0,0,100) #@gmicol : Angle = float(0,0,360) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Kaleidoscope [polar] : gimp_kaleidoscope, gimp_kaleidoscope(1) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : X-offset = float(0,0,100) #@gmicol : Y-offset = float(0,0,100) #@gmicol : Radius cut = float(100,0,100) #@gmicol : Angle cut = float(10,0,100) #@gmicol : Boundary = choice(2,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Kaleidoscope [blended] : gimp_rotoidoscope, gimp_rotoidoscope(1) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Angular tiles = int(10,1,72) #@gmicol : Smoothness = float(0.5,0,5) #@gmicol : Boundary = choice(2,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Kaleidoscope [symmetry] : gimp_symmetrizoscope, gimp_symmetrizoscope(1) #@gmicol : Iterations = int(4,1,32) #@gmicol : Angle = float(0,0,360) #@gmicol : Boundary = choice(1,"Transparent","Nearest","Repeat") #@gmicol : Symmetry side = choice("Backward","Forward","Swap") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/07.") #@gmicol Perspective : gimp_warp_perspective, gimp_warp_perspective(1) #@gmicol : X-angle = float(1.73,-4,4) #@gmicol : Y-angle = float(0,-4,4) #@gmicol : Zoom = float(1,0.1,4) #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : X-offset = float(0,0,100) #@gmicol : Y-offset = float(0,0,100) #@gmicol : Boundary = choice(2,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Polar transform : gimp_transform_polar, gimp_transform_polar(1) #@gmicol : Preset = choice("Custom transform","Inverse radius","Swap radius/angle") #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : Radius = text{"r + R/10*cos(a*5)"} #@gmicol : Angle = text{"a"} #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Raindrops : raindrops, raindrops(0) #@gmicol : Amplitude = float(80,0,300) #@gmicol : Density = float(0.1,0,1) #@gmicol : Wavelength = float(1,0,2) #@gmicol : Merging steps = int(0,0,20) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/28.") #@gmicol Random : deform, deform(0) #@gmicol : Amplitude = float(10,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Reflection : gimp_reflect, gimp_reflect(1) #@gmicol : Height = float(50,0,100) #@gmicol : Attenuation = float(1,0.1,4) #@gmicol : Color = color(110,160,190,64) #@gmicol : Waves amplitude = float(0,0,100) #@gmicol : Waves smoothness = float(1.5,0,4) #@gmicol : X-angle = float(0,-10,10) #@gmicol : Y-angle = float(-3.30,-10,10) #@gmicol : Focale = float(7,0,10) #@gmicol : Zoom = float(1.5,1,5) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Ripple : ripple, ripple(0) #@gmicol : Amplitude = float(10,0,100) #@gmicol : Size = float(20,1,300) #@gmicol : Shape = choice(2,"Bloc","Triangle","Sine","Sine+","Random") #@gmicol : Angle = float(0,0,360) #@gmicol : Offset = float(0,0,500) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sphere : gimp_map_sphere, gimp_map_sphere_preview(1) #@gmicol : Width = _int(512,1,1280) #@gmicol : Height = _int(512,1,1280) #@gmicol : Radius = float(90,0,400) #@gmicol : Dilation = float(0.5,0,1) #@gmicol : Angle = float(0,-50,50) #@gmicol : Border smoothness = float(0,0,200) #@gmicol : Border width = float(20,0,100) #@gmicol : Orientation = choice("0 deg.","90 deg.","180 deg.","270 deg.") #@gmicol : Background = choice("Transparent","Mean color") #@gmicol : Fading = float(0,0,100) #@gmicol : Fading shape = float(0.5,0,3) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Symmetrize : gimp_symmetrize, gimp_symmetrize_preview(1) #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : Angle = float(90,0,360) #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : Type = choice("Symmetry","Antisymmetry") #@gmicol : Swap sides = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/07.") #@gmicol Twirl : twirl, twirl(1) #@gmicol : Amplitude = float(1,-5,5) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Water : water, water(0) #@gmicol : Amplitude = float(30,0,300) #@gmicol : Smoothness = float(1.5,0,4) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Wave : wave, wave(1) #@gmicol : Amplitude = float(10,0,30) #@gmicol : Frequency = float(0.4,0,2) #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Wind : gimp_wind, gimp_wind_preview(0) #@gmicol : Amplitude = int(20,0,500) #@gmicol : Angle = float(0,0,360) #@gmicol : Attenuation = float(0.7,0,1) #@gmicol : Threshold = float(20,0,100) #@gmicol : Mode = choice(1,"Darker","Brighter") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Zoom : gimp_zoom, gimp_zoom(1) #@gmicol : Factor = float(2,0.01,10) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Boundary = choice(0,"Black","Nearest","Repeat") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Degradations #--------------------------- #@gmicol Angular blur : gimp_blur_angular, gimp_blur_angular(1) #@gmicol : Amplitude = float(2,0,10) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Sharpness = float(0,0,500) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Bandpass filter : gimp_bandpass, gimp_bandpass_preview(0) #@gmicol : Low frequency = float(0,0,100) #@gmicol : High frequency = float(100,0,100) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice(1,"Cut","Normalize") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Bayer filter : rgb2bayer, rgb2bayer(0) #@gmicol : Starting pattern = choice(0,"Red-Green","Blue-Green","Green-Red","Green-Blue") #@gmicol : Keep colors = bool(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Bayer reconstruction : bayer2rgb, gimp_no_preview #@gmicol : G/M smoothness = _float(6,0,20) #@gmicol : R/B smoothness (principal) = _float(6,0,20) #@gmicol : R/B smoothness (secondary) = _float(4,0,20) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blur [gaussian] : gimp_gaussian_blur, gimp_gaussian_blur_preview(0) #@gmicol : XY-amplitude = float(3,0,20) #@gmicol : X-amplitude = float(0,0,20) #@gmicol : Y-amplitude = float(0,0,20) #@gmicol : Border conditions = choice(1,"Black","Nearest") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blur [glow] : gimp_glow, gimp_glow_preview(0) #@gmicol : Amplitude = float(6,0,20) #@gmicol : note = note() #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blur [linear] : gimp_blur_linear, gimp_blur_linear_preview(1) #@gmicol : Tangent radius = float(10,0,100) #@gmicol : Orthogonal radius = float(0.5,0,100) #@gmicol : Angle = float(0,0,180) #@gmicol : Sharpness = float(0,0,500) #@gmicol : Border conditions = choice(1,"Black","Nearest") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Blur [radial] : gimp_blur_radial, gimp_blur_radial(1) #@gmicol : Amplitude = float(3,0,20) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Sharpness = float(0,0,500) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Lomo : gimp_lomo, gimp_lomo_preview #@gmicol : Vignette size = float(20,0,100) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Jérome Boulanger, David Tschumperlé. Latest update: 2012/06/06.") #@gmicol Old-movie stripes : gimp_stripes_y, gimp_stripes_y_preview(1) #@gmicol : Frequency = float(10,0,100) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Oldschool 8bits : gimp_8bits, gimp_8bits_preview(0) #@gmicol : Scale = float(25,1,100) #@gmicol : Dithering = float(800,0,10000) #@gmicol : Levels = int(16,2,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Random shade stripes : gimp_shade_stripes, gimp_shade_stripes_preview(1) #@gmicol : Frequency = float(30,1,100) #@gmicol : Orientation = choice(1,"Horizontal","Vertical") #@gmicol : Darkness = float(0.8,0,3) #@gmicol : Lightness = float(1.3,0,3) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Noise [additive] : gimp_noise, gimp_noise_preview(0) #@gmicol : Amplitude = float(30,0,200) #@gmicol : Noise type = choice("Gaussian","Uniform","Salt and pepper","Poisson") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : Value range = choice("Cut","Normalize") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Noise [spread] : gimp_spread, gimp_spread_preview(0) #@gmicol : X-variations = float(4,0,20) #@gmicol : Y-variations = float(4,0,20) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Visible watermark : gimp_watermark_visible, gimp_watermark_visible(0) #@gmicol : Text = text{"(C) G'MIC"} #@gmicol : Opacity = float(0.4,0.1,0.9) #@gmicol : Size = int(57,13,128) #@gmicol : Angle = float(25,0,360) #@gmicol : Smoothness = float(0.5,0,5) #@gmicol : Lightness = choice(1,"Darker","Brighter") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Details #---------------------- #@gmicol Freaky details : gimp_freaky_details, gimp_freaky_details_preview(0) #@gmicol : Amplitude = int(2,1,5) #@gmicol : Scale = float(10,0,100) #@gmicol : Iterations = int(1,1,4) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé and Patrick David. Latest update: 2013/02/27.") #@gmicol : sep = separator(), note = note("This effect has been done following:") #@gmicol : link = link("This tutorial from Patrick David","http://blog.patdavid.net/2013/02/calvin-hollywood-freaky-details-in-gimp.html") #@gmicol Local normalization : gimp_normalize_local, gimp_normalize_local_preview(0) #@gmicol : Amplitude = float(2,0,60) #@gmicol : Radius = int(6,1,64) #@gmicol : Neighborhood smoothness = float(5,0,40) #@gmicol : Average smoothness = float(20,0,40) #@gmicol : Constrain values = bool(1) #@gmicol : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sharpen [deblur] : gimp_deblur, gimp_deblur_preview(0) #@gmicol : Radius = float(2,0,20) #@gmicol : Iterations = int(10,0,50) #@gmicol : Time step = float(20,0,50) #@gmicol : Smoothness = float(0.1,0,10) #@gmicol : Regularization = choice(1,"Tikhonov","Mean curvature","Total variation") #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sharpen [Gold-Meinel] : gimp_unsharp_goldmeinel, gimp_unsharp_goldmeinel_preview #@gmicol : Sigma = float(1,0.5,10) #@gmicol : Iterations = int(5,1,15) #@gmicol : Acceleration = float(1,1,3) #@gmicol : Blur = choice(1,"Exponential","Gaussian") #@gmicol : Cut = bool(true) #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author : Jérôme Boulanger. Latest update: 2013/03/29.") #@gmicol Sharpen [inverse diffusion] : gimp_sharpen_inversediff, gimp_sharpen_inversediff_preview(0) #@gmicol : Amplitude = float(50,1,300) #@gmicol : Iterations = int(2,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sharpen [octave sharpening] : gimp_unsharp_octave, gimp_unsharp_octave_preview(0) #@gmicol : Scales = int(4,1,10) #@gmicol : Maximal radius = float(5,0,20) #@gmicol : Amount = float(3,0,10) #@gmicol : Threshold = float(0,0,255) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sharpen [Richardson-Lucy] : gimp_unsharp_richardsonlucy, gimp_unsharp_richardsonlucy_preview #@gmicol : Sigma = float(1,0.5,10) #@gmicol : Iterations = int(10,1,100) #@gmicol : Blur = choice(1,"Exponential","Gaussian") #@gmicol : Cut = bool(true) #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical") #@gmicol : sep = separator(), note = note("Author : Jérôme Boulanger. Latest update: 2013/03/29.") #@gmicol Sharpen [shock filters] : gimp_sharpen_shock, gimp_sharpen_shock_preview(0) #@gmicol : Amplitude = float(150,1,400) #@gmicol : Edge threshold = float(0.1,0,0.7) #@gmicol : Gradient smoothness = float(0.8,0,10) #@gmicol : Tensor smoothness = float(1.1,0,10) #@gmicol : Iterations = int(1,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sharpen [unsharp mask] : gimp_unsharp, gimp_unsharp_preview(0) #@gmicol : Sharpening type = choice(0,"Gaussian","Bilateral") #@gmicol : Spatial radius = float(1.25,0,20) #@gmicol : Bilateral radius = float(30,0,60) #@gmicol : Amount = float(3,0,10) #@gmicol : Threshold = float(0,0,20) #@gmicol : Darkness level = float(1,0,4) #@gmicol : Lightness level = float(1,0,4) #@gmicol : Iterations = int(1,1,10) #@gmicol : Negative effect = bool(0) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : note = note{"\n\nNote: #@gmicol : This filter is inspired by the original Unsharp Mask filter in GIMP, with additional parameters. #@gmicol : "} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tone mapping : gimp_map_tones, gimp_map_tones_preview(0) #@gmicol : Threshold = float(0.5,0,1) #@gmicol : Gamma = float(0.7,0,1) #@gmicol : Smoothness = float(0.1,0,10) #@gmicol : Iterations = int(30,0,50) #@gmicol : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tone mapping [fast] : gimp_map_tones_fast, gimp_map_tones_fast_preview(0) #@gmicol : Radius = float(3,0,20) #@gmicol : Power = float(0.5,0,1) #@gmicol : Channel(s) = choice(3,"All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Paul Nasca, David Tschumperlé. Latest update: 2011/06/10.") #@gmicol _Frames #----------------------- #@gmicol Droste : gimp_droste, gimp_droste_preview(1) #@gmicol : note = note("Upper-left coordinates :") #@gmicol : X0 = float(20,0,100) #@gmicol : Y0 = float(20,0,100) #@gmicol : sep = separator(), note = note("Upper-right coordinates :") #@gmicol : X1 = float(80,0,100) #@gmicol : Y1 = float(20,0,100) #@gmicol : sep = separator(), note = note("Lower-right coordinates :") #@gmicol : X2 = float(80,0,100) #@gmicol : Y2 = float(80,0,100) #@gmicol : sep = separator(), note = note("Lower-left coordinates :") #@gmicol : X3 = float(20,0,100) #@gmicol : Y3 = float(80,0,100) #@gmicol : sep = separator() #@gmicol : Iterations = int(1,1,4) #@gmicol : X-shift = float(0,-100,100) #@gmicol : Y-shift = float(0,-100,100) #@gmicol : Angle = float(0,0,360) #@gmicol : Zoom = float(1,0.1,5) #@gmicol : Mirror = choice("None","x-axis","y-axis","xy-axes") #@gmicol : Boundary = choice(1,"Black","Nearest","Repeat") #@gmicol : Drawing mode = choice{"Replace","Replace (sharpest)","Behind","Below"} #@gmicol : View outlines only = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Frame [cube] : frame_cube, frame_cube(1) #@gmicol : Depth = float(3,0,100) #@gmicol : X-center = float(0,-2,2) #@gmicol : Y-center = float(0,-2,2) #@gmicol : Left side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gmicol : Right side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gmicol : Upper side orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gmicol : Lower sider orientation = choice("Normal","Mirror-X","Mirror-Y","Mirror-XY") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Frame [fuzzy] : gimp_frame_fuzzy, gimp_frame_fuzzy(0) #@gmicol : Width = int(10,0,99) #@gmicol : Height = int(10,0,99) #@gmicol : Fuzzyness = float(10,0,40) #@gmicol : Smoothness = float(1,0,5) #@gmicol : Color = color(128,128,128,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Frame [painting] : gimp_frame_painting, gimp_frame_painting_preview(1) #@gmicol : Size = float(10,0,100) #@gmicol : Contrast = float(0.4,0,1) #@gmicol : Smoothness = float(6,0,30) #@gmicol : Color = color(225,200,120) #@gmicol : sep = separator() #@gmicol : Vignette size = float(2,0,50) #@gmicol : Vignette contrast = float(400,0,1000) #@gmicol : sep = separator() #@gmicol : Defects contrast = float(50,0,512) #@gmicol : Defects density = float(10,0,100) #@gmicol : Defects size = float(1,0,10) #@gmicol : Defects smoothness = float(0.5,0,20) #@gmicol : sep = separator() #@gmicol : Serial number = int(123456,0,1000000) #@gmicol : Frame as a new layer = _bool(false) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Frame [pattern] : gmicol_frame_pattern, gmicol_frame_pattern_preview(1) #@gmicol : Tiles = int(10,3,30) #@gmicol : Iterations = int(1,1,4) #@gmicol : Constrain image size = _bool(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_frame_pattern : -gimp_frame_pattern $1,1,${2--1} gmicol_frame_pattern_preview : -gimp_frame_pattern_preview $1,1,${2--1} #@gmicol Frame [regular] : gimp_frame, gimp_frame(1) #@gmicol : note = note("Crop parameters :") #@gmicol : X-start = int(0,0,100) #@gmicol : X-end = int(100,0,100) #@gmicol : Y-start = int(0,0,100) #@gmicol : Y-end = int(100,0,100) #@gmicol : sep = separator(), note = note("Frame parameters :") #@gmicol : Width = int(10,0,100) #@gmicol : Height = int(10,0,100) #@gmicol : Color = color(0,0,0,255) #@gmicol : Outline size = int(1,0,100) #@gmicol : Outline color = color(255,255,255,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Frame [round] : gimp_frame_round, gimp_frame_round(1) #@gmicol : Sharpness = float(6,0.1,40) #@gmicol : Size = float(20,0,100) #@gmicol : Smoothness = float(0.1,0,15) #@gmicol : Shade = float(0,0,1) #@gmicol : Color = color(128,128,128,255) #@gmicol : Blur frame = float(0,0,100) #@gmicol : Blur shade = float(0.1,0,1) #@gmicol : Blur amplitude = float(3,0,10) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Old photograph : gimp_old_photo, gimp_old_photo(1) #@gmicol : Vignette strength = float(200,0,255) #@gmicol : Vignette min radius = float(50,0,100) #@gmicol : Vignette max radius = float(85,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Polaroid : gimp_polaroid, gimp_polaroid(1) #@gmicol : Frame size = int(10,0,400) #@gmicol : Bottom size = int(20,0,400) #@gmicol : X-shadow = float(0,-20,20) #@gmicol : Y-shadow = float(0,-20,20) #@gmicol : Smoothness = float(3,0,5) #@gmicol : Angle = float(20,-180,180) #@gmicol : Vignette strength = float(50,0,255) #@gmicol : Vignette min radius = float(70,0,100) #@gmicol : Vignette max radius = float(95,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tunnel : gimp_tunnel, gimp_tunnel(1) #@gmicol : Depth = int(4,1,100) #@gmicol : Factor = float(80,1,99) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Opacity = float(0.2,0,1) #@gmicol : Angle = float(0,-90,90) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/22.") #@gmicol Vignette : gimp_vignette, gimp_vignette #@gmicol : Strength = float(70,0,255) #@gmicol : Min radius = float(70,0,100) #@gmicol : Max radius = float(95,0,100) #@gmicol : Color = color(0,0,0,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/24.") #@gmicol _Lights & Shadows #------------------------------------ #@gmicol Burn : gimp_burn, gimp_burn_preview(1) #@gmicol : Amplitude = float(0.5,0,1) #@gmicol : Scale = float(30,1,100) #@gmicol : Smoothness = float(1,0,4) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/24.") #@gmicol Drop shadow : gimp_drop_shadow, gimp_drop_shadow(1) #@gmicol : X-shadow = float(3,-20,20) #@gmicol : Y-shadow = float(3,-20,20) #@gmicol : Smoothness = float(1.8,0,5) #@gmicol : Curvature = float(0,0,1) #@gmicol : Corner brightness = float(0,0,1) #@gmicol : Angle = float(0,0,360) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/14.") #@gmicol Drop shadow 3d : gimp_drop_shadow3d, gimp_drop_shadow3d_preview(1) #@gmicol : X-angle = float(0,-90,90) #@gmicol : Y-angle = float(0,-90,90) #@gmicol : Z-angle = float(0,-90,90) #@gmicol : Zoom = float(0,-100,100) #@gmicol : X-offset = float(1,-50,50) #@gmicol : Y-offset = float(1,-50,50) #@gmicol : Perspective = float(2,0,10) #@gmicol : Smoothness = float(0.5,0,5) #@gmicol : Color = color(0,0,0,200) #@gmicol : Preview only shadow = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/07/02.") #@gmicol Equalize shadow : gimp_equalize_shadow, gimp_equalize_shadow_preview(1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Authors: Francois Grassard, David Tschumperlé. Latest update: 2012/11/24.") #@gmicol Light glow : gimp_lightglow, gimp_lightglow_preview(0) #@gmicol : Density = float(30,0,100) #@gmicol : Amplitude = float(0.5,0,2) #@gmicol : Mode = choice(8,"Color burn","Dodge","Freeze","Grain merge","Hard light","Interpolation", #@gmicol : "Lighten","Multiply","Overlay","Reflect","Soft light","Stamp","Value") #@gmicol : Opacity = float(0.8,0,1) #@gmicol : note = note() #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Light patch : gimp_light_patch, gimp_light_patch(0) #@gmicol : Density = int(5,2,30) #@gmicol : Darkness = float(0.7,0,1) #@gmicol : Lightness = float(2.5,1,4) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Light rays : gimp_lightrays, gimp_lightrays(1) #@gmicol : Density = float(80,0,100) #@gmicol : X-center = float(0.5,0,1) #@gmicol : Y-center = float(0.5,0,1) #@gmicol : Length = float(1,0,1) #@gmicol : Attenuation = float(0.5,0,1) #@gmicol : Transparency = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Relief light : gimp_light_relief, gimp_light_relief(1) #@gmicol : Ambient lightness = float(0.3,0,5) #@gmicol : Specular lightness = float(0.2,0,2) #@gmicol : Specular size = float(0.2,0,1) #@gmicol : Darkness = float(0,0,1) #@gmicol : Light smoothness = float(1,0,5) #@gmicol : X-light = float(0.5,0,1) #@gmicol : Y-light = float(0.5,0,1) #@gmicol : Z-light = float(5,0,20) #@gmicol : Z-scale = float(0.5,0,3) #@gmicol : Opacity as bumpmap = bool(0) #@gmicol : Image smoothness = float(0,0,10) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Shadow patch : gimp_shadow_patch, gimp_shadow_patch(1) #@gmicol : Opacity = float(0.7,0,1) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Patterns #----------------------- #@gmicol Canvas : gimp_canvas, gimp_canvas_preview(0) #@gmicol : note = note{"First direction :"} #@gmicol : Amplitude = float(70,0,300) #@gmicol : Angle = float(45,0,180) #@gmicol : Sharpness = float(400,0,2000) #@gmicol : note = note{"\nSecond direction : "} #@gmicol : Activate second direction = bool(true) #@gmicol : Amplitude = float(70,0,300) #@gmicol : Angle = float(135,0,180) #@gmicol : Sharpness = float(400,0,2000) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Canvas texture : texturize_canvas, texturize_canvas(0) #@gmicol : Amplitude = float(20,0,256) #@gmicol : Fibrousness = float(3,0,20) #@gmicol : Emboss = float(0.6,0,1) #@gmicol Cracks : gimp_cracks, gimp_cracks_preview(0) #@gmicol : Density = float(1,0.1,10) #@gmicol : Amplitude = float(-80,-255,255) #@gmicol : Relief = bool(true) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Dots : gimp_dots, gimp_dots_preview(0) #@gmicol : Number of scales = int(10,1,20) #@gmicol : Resolution = float(10,1,20) #@gmicol : Radius = float(1,0,3) #@gmicol : Stencil type = choice(2,"Black & White","RGB","Color") #@gmicol : Transparency = bool(0) #@gmicol : Negative = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Halftone : gimp_halftone, gimp_halftone_preview(0) #@gmicol : note = note("Image parameters :") #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : Smoothness = float(0,0,10) #@gmicol : sep = separator(), note = note("Halftone parameters :") #@gmicol : Number of tones = int(5,2,32) #@gmicol : Size for dark tones = int(8,2,256) #@gmicol : Size for bright tones = int(8,2,256) #@gmicol : Shape = choice{5,"Square","Diamond","Circle","Square (inv.)","Diamond (inv.)","Circle (inv.)"} #@gmicol : Smoothness = float(0.1,0,32) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Hearts : gimp_hearts, gimp_hearts_preview(0) #@gmicol : Density = float(10,0,100) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Lava : gimp_lava, gimp_lava_preview(0) #@gmicol : Perturbation = int(8,0,15) #@gmicol : Smoothness = float(5,0,100) #@gmicol : Scale = float(3,0,20) #@gmicol : Sharpness = float(0,0,1000) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/11/26.") #@gmicol Marble : gimp_marble, gimp_marble #@gmicol : Image weight = float(.5,0,30) #@gmicol : Pattern weight = float(1,0,30) #@gmicol : Pattern angle = float(0,0,360) #@gmicol : Amplitude = float(0,0,1000) #@gmicol : Sharpness = float(.4,0,5) #@gmicol : Anisotropy = float(.6,0,1) #@gmicol : Alpha = float(.6,0,20) #@gmicol : Sigma = float(1.1,0,20) #@gmicol : Cut low = float(0,0,100) #@gmicol : Cut high = float(100,0,100) #@gmicol : sep = separator(), note = note("Author: Preben Soeberg. Latest update: 2010/12/29.") #@gmicol Mosaic : gimp_mosaic, gimp_mosaic_preview(0) #@gmicol : Density = float(1,0.1,10) #@gmicol : Keep edges = bool(true) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Paper texture : gimp_paper, gimp_paper_preview(0) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Plaid : gimp_plaid_texture,gimp_plaid_texture(1) #@gmicol : Line = float(50,0,100) #@gmicol : Number of angles = int(2,1,8) #@gmicol : Starting angle = float(0,0,360) #@gmicol : Angle range = float(90,0,360) #@gmicol : Smoothness = float(1,0,5) #@gmicol : Sharpen = float(300,0,1000) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sponge : gimp_sponge, gimp_sponge_preview(0) #@gmicol : Size = int(13,3,21) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Stained glass : gimp_stained_glass, gimp_stained_glass_preview(0) #@gmicol : Edges = float(20,0,100) #@gmicol : Shading = float(0.1,0,0.5) #@gmicol : Thin separators = bool(1) #@gmicol : sep = separator() #@gmicol : Equalize = bool(1) #@gmicol : Colors = float(1,0,3) #@gmicol : Gamma = float(1,0.01,5) #@gmicol : Contrast = float(1,0,4) #@gmicol : Brightness = float(0,-255,255) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Stencil : gimp_stencil, gimp_stencil_preview(0) #@gmicol : Radius = float(3,0,10) #@gmicol : Smoothness = float(0,0,30) #@gmicol : Iterations = int(8,1,16) #@gmicol : Aliasing = float(0,0,5) #@gmicol : Stencil type = choice(2,"Black & White","RGB","Color") #@gmicol : Transparency = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Weave : weave, weave(1) #@gmicol : Density = int(6,1,32) #@gmicol : Thickness = float(65,0,100) #@gmicol : Shadow = float(0,0,100) #@gmicol : Shading = float(0.5,0,3) #@gmicol : Fibers amplitude = float(0,0,255) #@gmicol : Fibers smoothness = float(0,0,10) #@gmicol : Angle = choice("0 deg.","22.5 deg.","45 deg.","67.5 deg.") #@gmicol : X-curvature = float(0,-1,1) #@gmicol : Y-curvature = float(0,-1,1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2013/01/18.") #@gmicol Whirls : gimp_whirls, gimp_whirls_preview(0) #@gmicol : Density = int(7,3,20) #@gmicol : Smoothness = float(2,0,10) #@gmicol : Darkness = float(0.2,0,1) #@gmicol : Lightness = float(1.8,1,3) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Rendering #------------------------ #@gmicol 3d colored object : gimp_coloredobject3d, gimp_coloredobject3d_preview(1) #@gmicol : Type = choice{1,"Plane","Box","Pyramid","Ellipsoid","Torus","Gyroid","Weird","Cup"} #@gmicol : Color = color(128,128,128,255) #@gmicol : sep = separator() #@gmicol : Size-1 = float(0.5,0,3) #@gmicol : Size-2 = float(0.5,0,3) #@gmicol : Size-3 = float(0.5,0,3) #@gmicol : X-angle = float(57,0,360) #@gmicol : Y-angle = float(41,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol 3d elevation : gimp_elevation3d, gimp_elevation3d_preview(1) #@gmicol : Factor = float(100,-1000,1000) #@gmicol : Smoothness = float(1,0,10) #@gmicol : sep = separator() #@gmicol : Width = _int(512,8,1024) #@gmicol : Height = _int(512,8,1024) #@gmicol : Size = float(0.8,0,3) #@gmicol : X-angle = float(25,0,360) #@gmicol : Y-angle = float(0,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(2,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol 3d extrusion : gimp_extrude3d, gimp_extrude3d_preview(1) #@gmicol : Depth = float(10,1,1024) #@gmicol : Resolution = int(512,1,1024) #@gmicol : Smoothness = float(0.6,0,3) #@gmicol : sep = separator() #@gmicol : Width = _int(512,1,1024) #@gmicol : Height = _int(512,1,1024) #@gmicol : Size = float(0.5,0,3) #@gmicol : X-angle = float(57,0,360) #@gmicol : Y-angle = float(41,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol 3d image object : gimp_imageobject3d, gimp_imageobject3d_preview(1) #@gmicol : Type = choice{1,"Plane","Cube","Pyramid","Sphere","Torus","Gyroid","Weird","Cup","Rubik"} #@gmicol : sep = separator() #@gmicol : Width = _int(512,1,1024) #@gmicol : Height = _int(512,1,1024) #@gmicol : Size = float(0.5,0,3) #@gmicol : X-angle = float(57,0,360) #@gmicol : Y-angle = float(41,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol 3d lathing : gimp_lathing3d, gimp_lathing3d_preview(1) #@gmicol : Resolution = int(76,1,1024) #@gmicol : Smoothness = float(0.6,0,3) #@gmicol : Max angle = float(361,0,361) #@gmicol : sep = separator() #@gmicol : Width = _int(512,1,1024) #@gmicol : Height = _int(512,1,1024) #@gmicol : Size = float(0.5,0,3) #@gmicol : X-angle = float(57,0,360) #@gmicol : Y-angle = float(41,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : sep = separator(), note = note{"Note: Add a top layer to define object texture."} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol 3d random objects : gimp_random3d, gimp_random3d(1) #@gmicol : Type = choice("Cube","Cone","Cylinder","Sphere","Torus") #@gmicol : Density = int(50,1,300) #@gmicol : Size = float(3,1,20) #@gmicol : Z-range = float(100,0,300) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : Rendering = choice(3,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : Opacity = float(1,0,1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Equation plot : gimp_equation_plot, gimp_equation_plot #@gmicol : Equation = text{"X*c+10*cos(X+c+?)"} #@gmicol : X-min = float(-10,-100,100) #@gmicol : X-max = float(10,-100,100) #@gmicol : Resolution = int(100,2,1024) #@gmicol : Channels = int(3,1,32) #@gmicol : Plot type = choice(2,"None","Lines","Splines","Bars") #@gmicol : Vertex type = choice(0,"None","Points","Crosses 1","Crosses 2","Circles 1","Circles 2","Square 1","Square 2") #@gmicol : sep = separator() #@gmicol : note = note("Note : #@gmicol : Use variable 'X' instead of 'x' in the equation to take care of X-min/max settings. #@gmicol : Variable 'c' refers to the current channel number. Reduce resolution to be able to view #@gmicol : separate graph vertices.") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Gradient [corners] : gimp_corner_gradient, gimp_corner_gradient #@gmicol : Color 1 (up/left corner) = color(255,255,255,128) #@gmicol : Color 2 (up/right corner) = color(255,0,0,255) #@gmicol : Color 3 (bottom/left corner) = color(0,255,0,255) #@gmicol : Color 4 (bottom/right corner) = color(0,0,255,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Gradient [linear] : gimp_linear_gradient, gimp_linear_gradient #@gmicol : Starting color = color(0,0,0,255) #@gmicol : Ending color = color(255,255,255,255) #@gmicol : Swap colors = bool(0) #@gmicol : Angle = float(45,0,360) #@gmicol : Fade start = float(0,0,100) #@gmicol : Fade end = float(100,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Gradient [radial] : gimp_radial_gradient, gimp_radial_gradient #@gmicol : Starting color = color(0,0,0,255) #@gmicol : Ending color = color(255,255,255,255) #@gmicol : Swap colors = bool(0) #@gmicol : Fade start = float(0,0,100) #@gmicol : Fade end = float(100,0,100) #@gmicol : X-center = float(50,0,100) #@gmicol : Y-center = float(50,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Lissajous : gimp_lissajous, gimp_lissajous(1) #@gmicol : Resolution = int(4096,2,8192) #@gmicol : sep = separator() #@gmicol : X-size = float(0.9,0,2) #@gmicol : Y-size = float(0.9,0,2) #@gmicol : Z-size = float(3,1,10) #@gmicol : sep = separator() #@gmicol : X-multiplier = float(8,0,32) #@gmicol : Y-multiplier = float(7,0,32) #@gmicol : Z-multiplier = float(0,0,32) #@gmicol : sep = separator() #@gmicol : X-offset = float(0,0,1) #@gmicol : Y-offset = float(0,0,1) #@gmicol : Z-offset = float(0,0,1) #@gmicol : sep = separator() #@gmicol : X-angle = float(0,0,360) #@gmicol : Y-angle = float(0,0,360) #@gmicol : Z-angle = float(0,0,360) #@gmicol : sep = separator() #@gmicol : Thickness = float(0,0,50) #@gmicol : Color = color(128,128,128,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Mandelbrot / Julia sets : gimp_mandelbrot, gimp_mandelbrot_preview #@gmicol : X-center = float(0,-2,2) #@gmicol : Y-center = float(0,-2,2) #@gmicol : Zoom = float(0,0,100) #@gmicol : Iterations = int(128,1,256) #@gmicol : Fractal set = choice(Mandelbrot, Julia) #@gmicol : X-seed (Julia) = text("0.317") #@gmicol : Y-seed (Julia) = text("0.03") #@gmicol : Color 1 = color(0,0,255) #@gmicol : Color 2 = color(0,255,0) #@gmicol : Color 3 = color(255,0,0) #@gmicol : Color 4 = color(255,0,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Maze : gimp_maze, gimp_maze #@gmicol : Cell size = int(24,5,256) #@gmicol : Thickness = int(1,1,10) #@gmicol : Masking = choice("None","Render on dark areas","Render on white areas") #@gmicol : Preserve image dimension = bool(1) #@gmicol : Maze type = choice("Dark walls","White walls") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Plasma : gimp_plasma, gimp_plasma(0) #@gmicol : Alpha = float(0.5,0,5) #@gmicol : Beta = float(0,0,100) #@gmicol : Scale = int(8,2,10) #@gmicol : Randomize = bool(0) #@gmicol : Transparency = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Polka dots : gimp_polka_dots, gimp_polka_dots(1) #@gmicol : Size = float(80,0,100) #@gmicol : Density = float(20,0.1,100) #@gmicol : First offset = float(50,0,100) #@gmicol : Second offset = float(50,0,100) #@gmicol : Angle = float(0,0,180) #@gmicol : Aliasing = float(0.5,0.1,1) #@gmicol : Shading = float(0.1,0.1,1) #@gmicol : Opacity = float(1,0,1) #@gmicol : Color = color(255,0,0,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Quick copyright : gimp_quick_copyright, gimp_quick_copyright(0) #@gmicol : Text = text{"(C) G'MIC Online"} #@gmicol : Size = int(24,13,128) #@gmicol : Color = color(255,255,255,128) #@gmicol : Outline = int(1,0,4) #@gmicol : Position = choice(3,"Up-left","Up-right","Bottom-left","Bottom-right") #@gmicol : Offset = int(5,0,40) #@gmicol : Orientation = choice(1,"-90 deg.","0 deg.","+90 deg.","+180 deg.") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Rainbow : gimp_rainbow, gimp_rainbow #@gmicol : Left position = float(80,0,100) #@gmicol : Right position = float(80,0,100) #@gmicol : Left slope = float(175,0,400) #@gmicol : Right slope = float(175,0,400) #@gmicol : Thinness = float(3,0.1,8) #@gmicol : Opacity = float(80,0,199) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Random color ellipses : gimp_color_ellipses, gimp_color_ellipses(1) #@gmicol : Density = int(400,0,3000) #@gmicol : Radius = float(8,0,30) #@gmicol : Opacity = float(0.1,0.01,0.5) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol RGB distribution : gmicol_rgb_distribution, gmicol_rgb_distribution_preview #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/19.") _gmicol_rgb_distribution : -distribution3d -colorcube3d -p3d[-1] 1 -+3d -repeat 4 --snapshot3d[0] $1,0.9,255 -r3d[0] 0,1,0.2,90 -done -rm[0] -autocrop -- 255 -r @{-max_wh},1,3,0,0,0.5,0.5 -+ 255 -frame 5,5,255 -frame 1,1,0 -append_tiles , gmicol_rgb_distribution : -_gmicol_rgb_distribution 512 gmicol_rgb_distribution_preview : -_gmicol_rgb_distribution 320 #@gmicol Rorschach : gimp_rorschach, gimp_rorschach #@gmicol : Scale = float(3,0,30) #@gmicol : Mirror = choice(1,"None","x-axis","y-axis","xy-axes") #@gmicol : Stencil type = choice(2,"Black & White","RGB","Color") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Sierpinski triangle : sierpinski, sierpinski(1) #@gmicol : Recursions = int(6,0,7) #@gmicol : 1st X-coord = float(50,0,100) #@gmicol : 1st Y-coord = float(0,0,100) #@gmicol : 2nd X-coord = float(0,0,100) #@gmicol : 2nd Y-coord = float(100,0,100) #@gmicol : 3rd X-coord = float(100,0,100) #@gmicol : 3rd Y-coord = float(100,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Shade bobs : gimp_shadebobs, gimp_shadebobs #@gmicol : note = note("Bobs parameters :") #@gmicol : Density = int(50,1,200) #@gmicol : Radius = int(5,1,100) #@gmicol : Duration = int(200,1,500) #@gmicol : Velocity = float(1,0,10) #@gmicol : sep = separator() #@gmicol : note = note("Curve parameters :") #@gmicol : Rx = float(-1,-3,3) #@gmicol : Ry = float(2,-3,3) #@gmicol : Rz = float(1,-3,3) #@gmicol : Rt = float(0.8,-3,3) #@gmicol : Rcx = float(0,-3,3) #@gmicol : Colormap = choice(8,"Grayscale","Standard","HSV","Lines","Hot","Cool","Jet","Flag","Cube") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Snowflake : snowflake, snowflake(1) #@gmicol : Recursions = int(3,0,5) #@gmicol : 1st X-coord = float(20,0,100) #@gmicol : 1st Y-coord = float(70,0,100) #@gmicol : 2nd X-coord = float(80,0,100) #@gmicol : 2nd Y-coord = float(70,0,100) #@gmicol : 3rd X-coord = float(50,0,100) #@gmicol : 3rd Y-coord = float(10,0,100) #@gmicol : Opacity = float(1,0,1) #@gmicol : Color = color(128,128,128) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Stars : gimp_stars, gimp_stars(0) #@gmicol : Density = float(10,0,200) #@gmicol : Depth = float(0,0,5) #@gmicol : Size = int(32,8,64) #@gmicol : Branches = int(5,2,16) #@gmicol : Thickness = float(0.38,0.1,1) #@gmicol : Smoothness = float(0,0,10) #@gmicol : Color = color(200,200,200,200) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Superformula : gimp_superformula, gimp_superformula(1) #@gmicol : Resolution = int(4096,2,8192) #@gmicol : sep = separator() #@gmicol : X-size = float(0.9,0,2) #@gmicol : Y-size = float(0.9,0,2) #@gmicol : sep = separator() #@gmicol : m = int(8,1,32) #@gmicol : n1 = float(1,-32,32) #@gmicol : n2 = float(5,-32,32) #@gmicol : n3 = float(8,-32,32) #@gmicol : sep = separator() #@gmicol : X-angle = float(0,0,360) #@gmicol : Y-angle = float(0,0,360) #@gmicol : Z-angle = float(0,0,360) #@gmicol : sep = separator() #@gmicol : Thickness = float(0,0,50) #@gmicol : Color = color(128,128,128,255) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Tetris : gimp_tetris, gimp_tetris(0) #@gmicol : Scale = int(10,1,20) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Truchet : gimp_truchet, gimp_truchet(0) #@gmicol : Scale = int(32,1,256) #@gmicol : Radius = int(5,1,64) #@gmicol : Smoothness = float(1,0,10) #@gmicol : Type = choice(1,"Straight","Curved") #@gmicol : Colorize randomly = bool(0) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Turbulence : gimp_turbulence, gimp_turbulence #@gmicol : Radius = float(128,1,1024) #@gmicol : Octaves = int(6,1,12) #@gmicol : Damping per octave = float(4,1,10) #@gmicol : Difference mixing = float(0,-10,10) #@gmicol : Mode = choice("Turbulence","Turbulence 2","Fractal Noise","Fractured Clouds","Stardust","Pea Soup") #@gmicol : sep = separator(), note = note("Author: Preben Soeberg. Latest update: 2010/12/29.") #@gmicol _Repair #----------------------- #@gmicol Deinterlace : deinterlace, gimp_deinterlace_preview(0) #@gmicol : Algorithm = choice("Standard","Motion-compensated") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Red-Eye attenuation : red_eye, red_eye #@gmicol : Threshold = float(75,0,100) #@gmicol : Smoothness = float(3.5,0,20) #@gmicol : Factor = float(0.1,0,1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Remove hot pixels : gimp_remove_hotpixels, gimp_remove_hotpixels_preview(0) #@gmicol : Mask size = int(3,3,20) #@gmicol : Threshold = float(10,0,200) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Jérome Boulanger. Latest update: 2010/12/29.") #@gmicol Smooth [anisotropic] : gimp_anisotropic_smoothing, gimp_anisotropic_smoothing_preview(0) #@gmicol : Amplitude = float(60,0,1000) #@gmicol : Sharpness = float(0.7,0,2) #@gmicol : Anisotropy = float(0.3,0,1) #@gmicol : Gradient smoothness = float(0.6,0,10) #@gmicol : Tensor smoothness = float(1.1,0,10) #@gmicol : Spatial precision = float(0.8,0.1,2) #@gmicol : Angular precision = float(30,1,180) #@gmicol : Value precision = float(2,0.1,5) #@gmicol : Interpolation = choice(0,"Nearest neighbor","Linear","Runge-Kutta") #@gmicol : Fast approximation = bool(1) #@gmicol : Iterations = int(1,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [bilateral] : gimp_bilateral, gimp_bilateral_preview(0) #@gmicol : Spatial variance = float(10,0,100) #@gmicol : Value variance = float(7,0,100) #@gmicol : Iterations = int(2,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [diffusion] : gimp_diffusion_smoothing, gimp_diffusion_smoothing_preview(0) #@gmicol : Sharpness = float(0.7,0,2) #@gmicol : Anisotropy = float(0.3,0,1) #@gmicol : Gradient smoothness = float(0.6,0,10) #@gmicol : Tensor smoothness = float(1.1,0,10) #@gmicol : Time step = float(15,5,50) #@gmicol : Iterations = int(8,1,20) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [mean-curvature] : gmicol_meancurvature_smoothing, gmicol_meancurvature_smoothing_preview(0) #@gmicol : Time step = float(30,5,50) #@gmicol : Iterations = int(4,1,20) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_meancurvature_smoothing : -gimp_meancurvature_smoothing $1,$2,0,$3 gmicol_meancurvature_smoothing_preview : -gimp_meancurvature_smoothing_preview $1,$2,0,$3,$4 #@gmicol Smooth [median] : gimp_median, gimp_median_preview(0) #@gmicol : Radius = int(3,1,20) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [patch-based] : gimp_patch_smoothing, gimp_patch_smoothing_preview(0) #@gmicol : Spatial variance = float(10,0.1,200) #@gmicol : Patch variance = float(10,0.1,200) #@gmicol : Patch size = int(3,2,21) #@gmicol : Lookup size = int(5,2,21) #@gmicol : Patch smoothness = float(0,0,4) #@gmicol : Fast approximation = bool(1) #@gmicol : Iterations = int(1,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [selective gaussian] : gimp_selective_smoothing, gimp_selective_smoothing_preview(0) #@gmicol : Amplitude = float(5,0,20) #@gmicol : Edges = float(0.5,0,2) #@gmicol : Scales = int(5,1,10) #@gmicol : Iterations = int(1,1,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Smooth [thin brush] : gimp_anisotropic_smoothing, gimp_anisotropic_smoothing(0) #@gmicol : Amplitude = float(60,0,1000) #@gmicol : Sharpness = float(0.9,0,2) #@gmicol : Anisotropy = float(0.64,0,1) #@gmicol : Gradient smoothness = float(3.1,0,10) #@gmicol : Tensor smoothness = float(1.10,0,10) #@gmicol : Spatial precision = float(0.8,0.1,2) #@gmicol : Angular precision = float(30,1,180) #@gmicol : Value precision = float(2,0.1,5) #@gmicol : Interpolation = choice(0,"Nearest neighbor","Linear","Runge-Kutta") #@gmicol : Fast approximation = bool(1) #@gmicol : Iterations = int(1,1,10) #@gmicol : Channel(s) = choice("RGB","Luminance","Blue & Red chrominances","Blue chrominance","Red chrominance") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : note = note{"\nNote: This set of anisotropic smoothing parameters has been suggested by PhotoComiX."} #@gmicol : sep = separator(), note = note("Author: PhotoComiX. Latest update: 2010/12/26.") #@gmicol Smooth [total variation] : gmicol_tv_smoothing, gmicol_tv_smoothing_preview(0) #@gmicol : Time step = float(30,5,100) #@gmicol : Iterations = int(10,1,30) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_tv_smoothing : -gimp_tv_smoothing $1,$2,0,$3 gmicol_tv_smoothing_preview : -gimp_tv_smoothing_preview $1,$2,0,$3,$4 #@gmicol Smooth [wavelets] : gimp_haar_smoothing, gimp_haar_smoothing_preview(0) #@gmicol : Threshold = float(1,0,10) #@gmicol : Iterations = int(10,1,24) #@gmicol : Scales = int(10,2,10) #@gmicol : Channel(s) = choice("All","RGBA","RGB","Luminance","Blue/red chrominances","Blue chrominance","Red chrominance","Lightness","ab-components","a-component","b-component","Hue","Saturation","Value","Key","Green chrominance","ch-components","c-component","h-component","Red","Green","Blue","Alpha") #@gmicol : sep = separator() #@gmicol : Parallel processing = choice("Auto","One thread","Two threads","Four threads","Eight threads","Sixteen threads") #@gmicol : Spatial overlap = int(24,0,256) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Jérome Boulanger, David Tschumperlé. Latest update: 2012/08/17.") #@gmicol Solidify : gimp_solidify, gimp_solidify_preview(0) #@gmicol : Interpolation type = choice("Linear","Morphological") #@gmicol : sep = separator(), note = note("For linear method only :") #@gmicol : Smoothness = float(1.5,1,5) #@gmicol : Smoothness factor = float(1,1,1.2) #@gmicol : Precision = float(0.5,0,1) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Note: #@gmicol : This filter replaces transparent regions by interpolated colors. It may take long to render! #@gmicol : ") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Upscale [diffusion] : gimp_upscale_smart, gimp_upscale_smart_preview(0) #@gmicol : Width = text("200%") #@gmicol : Height = text("200%") #@gmicol : Smoothness = float(2,0,20) #@gmicol : Anisotropy = float(0.4,0,1) #@gmicol : Sharpness = float(50,0,100) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Upscale [scale2x] : gimp_scalenx, gimp_scalenx_preview(0) #@gmicol : Scaling factor = choice("x 2","x 3","x 4","x 6","x 8","x 9","x 12","x 16","x 18","x 27") #@gmicol : Colorbase = choice(1,"RGB","YCbCr","Lab") #@gmicol : note = note{"\nNote: #@gmicol : This filter re-implements the scaling algorithm described at : #@gmicol : "} #@gmicol : note = link("http://scale2x.sourceforge.net") #@gmicol : note = note{" #@gmicol : This filter is useful for resizing images that have very few colors #@gmicol : (e.g. indexed images). It is generally useless for true colors images. #@gmicol : "} #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol _Sequences #----------------------- #@gmicol 3d elevation : gmicol_animate_elevation3d, gmicol_animate_elevation3d_preview(1) #@gmicol : Frames = _int(10,2,72) #@gmicol : note = note{"\nGlobal parameters :"} #@gmicol : Factor = float(100,-1000,1000) #@gmicol : Smoothness = float(1,0,10) #@gmicol : Width = _int(256,8,512) #@gmicol : Height = _int(256,8,512) #@gmicol : Rendering = choice(2,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : note = note{"\nStarting parameters :"} #@gmicol : Size = float(0.8,0,3) #@gmicol : X-angle = float(35,0,360) #@gmicol : Y-angle = float(0,0,360) #@gmicol : Z-angle = float(0,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : note = note{"\nEnding parameters :"} #@gmicol : Size = float(0.8,0,3) #@gmicol : X-angle = float(35,0,1440) #@gmicol : Y-angle = float(0,0,1440) #@gmicol : Z-angle = float(360,0,1440) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_animate_elevation3d : -_gimp_elevation3d ${2-3} -animate gimp_render3d,"${4-5},${7-16},$6",\ "${4-5},${17-26},$6",$1 -o $_output.gif,10 -rm gmicol_animate_elevation3d_preview : -gimp_animate_elevation3d_preview $1,1,0,\"\",${2--1} #@gmicol 3d extrusion : gmicol_animate_extrude3d, gmicol_animate_extrude3d_preview(1) #@gmicol : Frames = _int(4,2,20) #@gmicol : note = note{"\nGlobal parameters :"} #@gmicol : Depth = float(10,1,256) #@gmicol : Resolution = int(512,1,1024) #@gmicol : Smoothness = float(0.6,0,3) #@gmicol : Width = _int(128,8,256) #@gmicol : Height = _int(128,8,256) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : note = note{"\nStarting parameters :"} #@gmicol : Size = float(0.8,0,3) #@gmicol : X-angle = float(35,0,360) #@gmicol : Y-angle = float(0,0,360) #@gmicol : Z-angle = float(0,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : note = note{"\nEnding parameters :"} #@gmicol : Size = float(0.8,0,3) #@gmicol : X-angle = float(35,0,1440) #@gmicol : Y-angle = float(360,0,1440) #@gmicol : Z-angle = float(0,0,1440) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_animate_extrude3d : -gimp_animate_extrude3d $1,1,0,\"\",${2--1} gmicol_animate_extrude3d_preview : -gimp_animate_extrude3d_preview $1,1,0,\"\",${2--1} #@gmicol 3d image object : gmicol_animate_imageobject3d, gmicol_animate_imageobject3d_preview(1) #@gmicol : Frames = _int(4,2,20) #@gmicol : note = note{"\nGlobal parameters :"} #@gmicol : Type = choice{1,"Plane","Cube","Pyramid","Sphere","Torus","Gyroid","Weird","Cup","Rubik"} #@gmicol : Width = _int(128,1,256) #@gmicol : Height = _int(128,1,256) #@gmicol : Rendering = choice(4,"Dots","Wireframe","Flat","Flat shaded","Gouraud","Phong") #@gmicol : note = note{"\nStarting parameters :"} #@gmicol : Size = float(0.5,0,3) #@gmicol : X-angle = float(57,0,360) #@gmicol : Y-angle = float(41,0,360) #@gmicol : Z-angle = float(21,0,360) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : note = note{"\nEnding parameters :"} #@gmicol : Size = float(0.5,0,3) #@gmicol : X-angle = float(57,0,1440) #@gmicol : Y-angle = float(401,0,1440) #@gmicol : Z-angle = float(21,0,1440) #@gmicol : FOV = float(45,1,90) #@gmicol : X-light = float(0,-100,100) #@gmicol : Y-light = float(0,-100,100) #@gmicol : Z-light = float(-100,-100,0) #@gmicol : Specular lightness = float(0.5,0,1) #@gmicol : Specular shininess = float(0.7,0,3) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_animate_imageobject3d : -gimp_animate_imageobject3d $1,1,0,\"\",${2--1} gmicol_animate_imageobject3d_preview : -gimp_animate_imageobject3d_preview $1,1,0,\"\",${2--1} #@gmicol 3d text pointcloud : gimp_text_pointcloud3d, gimp_text_pointcloud3d_preview #@gmicol : Frames = _int(9,1,20) #@gmicol : 1st text = text("G'MIC") #@gmicol : 2nd text = text("Rocks!") #@gmicol : Smoothness = float(1,0,5) #@gmicol : Color = color(200,220,255) #@gmicol : Background = color(255,255,255,255) #@gmicol : X-shadow= float(2,0,10) #@gmicol : Y-shadow= float(2,0,10) #@gmicol : Shadow smoothness = float(1,0,5) #@gmicol : Stationary frames = _int(1,1,32) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Edges on fire : gimp_fire_edges, gimp_fire_edges_preview(0) #@gmicol : Edges = float(0.7,0,3) #@gmicol : Attenuation = float(0.25,0,1) #@gmicol : Smoothness = float(0.5,0,5) #@gmicol : Threshold = float(25,0,100) #@gmicol : sep = separator() #@gmicol : Number of frames = _int(9,2,20) #@gmicol : Starting frame = int(5,0,199) #@gmicol : Frame skip = _int(0,0,20) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Lava lamp : gimp_lavalampbw, gimp_lavalampbw_preview(0) #@gmicol : Number of key-frames = _int(3,2,50) #@gmicol : Number of inter-frames = _int(3,2,100) #@gmicol : Smooth looping = _bool(1) #@gmicol : sep = separator() #@gmicol : Resolution = float(20,1,100) #@gmicol : Size = float(2,0,30) #@gmicol : Smoothness = _float(0.01,0,1) #@gmicol : Transparent background = bool(0) #@gmicol _Sketch #------------------------ #@gmicol Hard sketch : gmicol_hardsketchbw, gmicol_hardsketchbw_preview(0) #@gmicol : Amplitude = float(300,0,4000) #@gmicol : Density = float(50,0,100) #@gmicol : Smoothness = float(1,0,10) #@gmicol : Opacity = float(0.1,0,1) #@gmicol : Edge = float(20,0,100) #@gmicol : Fast approximation = bool(0) #@gmicol : Negative = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_hardsketchbw : --gimp_hardsketchbw $* -blend hardlight gmicol_hardsketchbw_preview : -gimp_split_preview "-gmicol_hardsketchbw $*",$-1 #@gmicol Hough sketch : gmicol_houghsketchbw, gmicol_houghsketchbw_preview(0) #@gmicol : Smoothness = float(1.25,0,10) #@gmicol : Density = float(50,0,70) #@gmicol : Radius = int(5,0,30) #@gmicol : Threshold = float(80,0,100) #@gmicol : Opacity = float(0.1,0,1) #@gmicol : Negative = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_houghsketchbw : --gimp_houghsketchbw $* -blend hardlight gmicol_houghsketchbw_preview : -gimp_split_preview "-gmicol_houghsketchbw $*",$-1 #@gmicol Pencil portrait : gimp_pencil_portraitbw, gimp_pencil_portraitbw_preview(0) #@gmicol : Stroke length = float(30,0,500) #@gmicol : Stroke angle = float(120,0,180) #@gmicol : Contour threshold = float(1,0,3) #@gmicol : Opacity = float(0.5,0,1) #@gmicol : Color = color(144,79,21) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Jamack4k/Gimpchat and David Tschumperlé. Latest update: 2012/12/11.") #@gmicol Sketch : gmicol_sketchbw, gmicol_sketchbw_preview(0) #@gmicol : Number of orientations = int(2,1,16) #@gmicol : Starting angle = float(45,0,180) #@gmicol : Angle range = float(180,0,180) #@gmicol : Stroke length = float(30,0,1000) #@gmicol : Contour threshold = float(1,0,3) #@gmicol : Opacity = float(0.03,0,0.3) #@gmicol : Background intensity = float(0,0,2) #@gmicol : Density = float(0.6,0,5) #@gmicol : Sharpness = float(0.1,0,1.5) #@gmicol : Anisotropy = float(0.6,0,1) #@gmicol : Smoothness = float(0.25,0,10) #@gmicol : Coherence = float(1,0,10) #@gmicol : Boost stroke = bool(0) #@gmicol : Curved stroke = bool(1) #@gmicol : Color model = choice("Black on white","White on black","Black on transparent white","White on transparent black") #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") gmicol_sketchbw : --gimp_sketchbw $* -blend hardlight gmicol_sketchbw_preview : -gimp_split_preview "-gmicol_sketchbw $*",$-1 #@gmicol Etch : gmicol_gcd_etch, gmicol_gcd_etch_preview(1) #@gmicol : note = note("Input Image Settings :") #@gmicol : Threshold Low = int(125,10,255) #@gmicol : Threshold Mid = int(153,10,255) #@gmicol : Threshold High = int(171,10,255) #@gmicol : Threshold Max = int(185,10,255) #@gmicol : Blur Amount = float(0.1,0,2) #@gmicol : sep = separator(), note = note("Output Etch Settings") #@gmicol : Horizontal Amount = int(50,0,100) #@gmicol : Cross-Hatch Amount = int(80,0,100) #@gmicol : Vertical 1 Amount = int(50,0,100) #@gmicol : Vertical 2 Amount = int(10,0,100) #@gmicol : note = note("
") #@gmicol : Horizontal Length = int(15,0,50) #@gmicol : Vertical 1 Length = int(12,0,50) #@gmicol : Vertical 2 Length = int(20,0,50) #@gmicol : Flip Cross-Hatch = bool(0) #@gmicol : note = note("
") #@gmicol : Curve Amount = int(1,0,20) #@gmicol : Gamma = float(0.3,0.01,1) #@gmicol : Fast Resize = bool(1) #@gmicol : Color Image = bool(0) #@gmicol : sep = separator(), Preview type = choice("Full","Forward horizontal","Forward vertical","Backward horizontal","Backward vertical","Duplicate horizontal","Duplicate vertical") #@gmicol : sep = separator(), note = note("Author: Garagecoder. Latest update : 2012/08/18.") gmicol_gcd_etch : -skip ${1=125},${2=153},${3=171},${4=185},${5=0.1} -skip ${6=50},${7=80},${8=50},${9=10} -skip ${10=15},${11=12},${12=20},${13=0} -skip ${14=1},${15=0.3},${16=1},${17=0} -repeat @# -l[$>] #image resizing w={w} h={h} sc=800 ml=4 -if {w>h} nw={min($sc,w)} nh={$nw/w*h} -else nh={min($sc,h)} nw={$nh/h*w} -endif -to_rgb[0] [0] -if $16 -r[1] $nw,$nh -endif #convert to b&w negative -b[1] $5% -norm[1] -negative[1] -n[1] 0,255 #split into value ranges --c[1] 0,{255-$4} --c[1] {255-$3},128 --c[1] {255-$2},192 --c[1] {255-$1},255 -n[-3--1] 0,255 #create etch layers {w},{h},1,1,0 -noise[-1] $6,2 -deriche[-1] $10,0,x,0 {w},{h},1,1,0 -noise[-1] $7,2 {w},{h},1,3,0 -fc[-1] 0,-1,0 -smooth[-2] [-1],30,30,0 -rm[-1] -if $13 -mirror[-1] x -endif {w},{h},1,1,0 -noise[-1] $8,2 -deriche[-1] $11,0,y,0 {w},{h},1,1,0 -noise[-1] $9,2 -deriche[-1] $12,0,y,0 #reduce colour levels, add curve -quantize[-$ml--1] 2,0 -deform[-$ml--1] $14 #combine image & etch layers -repeat $ml -mul[{2+$>},-1] -done #merge layers down, remove negative -add[-$ml--1] -n[-1] 0,255 -rm[1] -negative[-1] -apply_gamma[-1] $15 #restore original size, combine colour -if $16 -r[-1] $w,$h,1,3,5 -c[-1] 0,255 -endif -if $17 -blend[0,1] shapeaverage0 -else -keep[-1] -endif -endl -done gmicol_gcd_etch_preview : -gimp_split_preview "-gmicol_gcd_etch $*",$-1 #@gmicol _Spectral filters #------------------------------- #@gmicol Fourier analysis : gimp_display_fft, gimp_display_fft(1) #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") #@gmicol Fourier watermark : gimp_watermark_fourier, _none_ #@gmicol : Text = text{"(C) G'MIC"} #@gmicol : Size = int(57,13,128) #@gmicol : sep = separator() #@gmicol : note = note("Note: To make the watermark visible afterwards, use the 'Fourier Analysis' filter. ") #@gmicol : sep = separator(), note = note("Author: David Tschumperlé. Latest update: 2012/10/11.") # Local Variables: # mode: sh # End: # # (End of G'MIC custom commands gmic-1.5.7.1/src/gmic_gimp.cpp0000664000175000017500000044351512216303503016301 0ustar dtschumpdtschump/* # # File : gmic_gimp.cpp # ( C++ source file ) # # Description : G'MIC for GIMP - A plug-in to allow the use # of G'MIC commands in GIMP. # This file is a part of the CImg Library project. # ( http://cimg.sourceforge.net ) # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # */ // Include necessary header files. //-------------------------------- #define cimg_display_type 0 #include "gmic.h" #undef _gmic_path #if cimg_OS==2 #define _gmic_path "_gmic\\" #define _gmic_file_prefix "" #else #define _gmic_path "" #define _gmic_file_prefix "." #endif #if !defined(__MACOSX__) && !defined(__APPLE__) #include #endif #include #include #include #include #undef min #undef max extern char data_gmic_def[]; extern unsigned int size_data_gmic_def; extern unsigned char data_gmic_logo[]; extern unsigned int size_data_gmic_logo; using namespace cimg_library; // Define plug-in global variables. //--------------------------------- CImgList gmic_entries; // The list of recognized G'MIC menu entries. CImgList gmic_1stlevel_entries; // The treepath positions of 1st-level G'MIC menu entries. CImgList gmic_commands; // The list of corresponding G'MIC commands to process the image. CImgList gmic_preview_commands; // The list of corresponding G'MIC commands to preview the image. CImgList gmic_arguments; // The list of corresponding needed filter arguments. CImgList gmic_faves; // The list of favorites filters and their default parameters. CImgList gmic_preview_factors; // The list of default preview factors for each filter. CImg computed_preview; // The last computed preview image. CImg gmic_additional_commands; // The buffer of additional G'MIC command definitions and implementations. bool _create_dialog_gui; // Return value of the 'create_gui_dialog()' function (set by events handlers). bool is_block_preview = false; // Flag to block preview computation, when double-clicking on the filter tree. void **event_infos; // Infos that are passed to the GUI callback functions. int image_id = 0; // The image concerned by the plug-in execution. unsigned int indice_faves = 0; // The starting index of favorite filters. std::FILE *logfile = 0; // The log file if any. GimpRunMode run_mode; // Run-mode used to call the plug-in. GtkTreeStore *tree_view_store = 0; // The list of the filters as a GtkTreeView model. GimpDrawable *drawable_preview = 0; // The drawable used by the preview window. GtkWidget *dialog_window = 0; // The plug-in dialog window. GtkWidget *left_pane = 0; // The left pane, containing the preview window. GtkWidget *gui_preview = 0; // The preview window. GtkWidget *relabel_hbox = 0; // The entire widget to relabel filter. GtkWidget *relabel_entry = 0; // The text entry to relabel filter. GtkWidget *tree_view = 0; // The filter treeview. GtkWidget *tree_mode_stock = 0; // A temporary stock button for the expand/collapse button. GtkWidget *tree_mode_button = 0; // Expand/Collapse button for the treeview. GtkWidget *refresh_stock = 0; // A temporary stock button for the refresh button. GtkWidget *fave_stock = 0; // A temporary stock button for the fave button. GtkWidget *delete_stock = 0; // A temporary stock button for the fave button 2. GtkWidget *fave_add_button = 0; // Fave button. GtkWidget *fave_delete_button = 0; // Fave delete button. GtkWidget *right_frame = 0; // The right frame containing the filter parameters. GtkWidget *right_pane = 0; // The right scrolled window, containing the right frame. GimpPDBStatusType status = GIMP_PDB_SUCCESS; // The plug-in return status. // Set/get plug-in persistent variables, using GIMP {get,set}_data() features. //----------------------------------------------------------------------------- // Get the folder path of configuration files. const char* get_conf_path() { const char *path_conf = getenv("GMIC_GIMP_PATH"); if (!path_conf) { #if cimg_OS!=2 path_conf = getenv("HOME"); #else path_conf = getenv("APPDATA"); #endif } return path_conf; } // Set/get the indice of the currently selected filter. void set_current_filter(const unsigned int current_filter) { const unsigned int ncurrent_filter = current_filter>=gmic_entries.size()?0:current_filter; gimp_set_data("gmic_current_filter",&ncurrent_filter,sizeof(unsigned int)); } unsigned int get_current_filter() { unsigned int current_filter = 0; gimp_get_data("gmic_current_filter",¤t_filter); if (current_filter>=gmic_entries.size()) current_filter = 0; return current_filter; } // Set/get the number of parameters of the specified filter. void set_filter_nbparams(const unsigned int filter, const unsigned int nbparams) { char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_filter%u_nbparams",filter); gimp_set_data(s_tmp,&nbparams,sizeof(unsigned int)); } unsigned int get_filter_nbparams(const unsigned int filter) { char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_filter%u_nbparams",filter); unsigned int nbparams = 0; gimp_get_data(s_tmp,&nbparams); return nbparams; } // Set/get one particular parameter of a filter. void set_filter_parameter(const unsigned int filter, const unsigned int n, const char *const param) { char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_filter%u_parameter%u",filter,n); gimp_set_data(s_tmp,param,std::strlen(param)+1); } char *get_filter_parameter(const unsigned int filter, const unsigned int n) { static char s_param[4096]; char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_filter%u_parameter%u",filter,n); *s_param = 0; gimp_get_data(s_tmp,s_param); return s_param; } // Set/get one particular default parameter of a fave filter. void set_fave_parameter(const unsigned int filter, const unsigned int n, const char *const param) { char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_fave%u_parameter%u",filter,n); gimp_set_data(s_tmp,param,std::strlen(param)+1); } char *get_fave_parameter(const unsigned int filter, const unsigned int n) { static char s_param[4096]; char s_tmp[64]; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_fave%u_parameter%u",filter,n); *s_param = 0; gimp_get_data(s_tmp,s_param); return s_param; } // Reset all parameters of all filters. void reset_filters_parameters() { const char *const empty = ""; for (unsigned int i = 1; idrawable_id); #else return gimp_item_is_valid(drawable->drawable_id); #endif } // Compute the basename of a URL or a regular file path. inline const char* gmic_basename(const char *const s) { const char *p = 0, *np = s; while (np>=s && (p=np)) np = std::strchr(np,'/') + 1; while (np>=s && (p=np)) np = std::strchr(np,'\\') + 1; return p; } // Translate string into the current locale. //------------------------------------------ #define _t(source,dest) if (!std::strcmp(source,s)) { static const char *const ns = dest; return ns; } const char *t(const char *const s) { // Catalan translation if (!std::strcmp(get_locale(),"ca")) { if (!s) { static const char *const ns = "No ha estat possible establir una connexió a Internet !\n\n" "No es possible arribar a aquestes fonts de filtres :\n"; return ns; } _t("G'MIC for GIMP","G'MIC per al GIMP"); _t("Select a filter...","Selecciona un filtre..."); _t("No parameters to set...","Sense par\303\240metres..."); _t(" Input / Output : "," Entrades / Sortides : "); _t("Input layers...","Capes d'entrada..."); _t("None","Cap"); _t("Active (default)","Actiu (predet.)"); _t("All","Tots"); _t("Active & below","L'activa i les de sota"); _t("Active & above","L'activa i les de sobre"); _t("All visibles","Totes les visibles"); _t("All invisibles","Totes les invisibles"); _t("All visibles (decr.)","Totes les visibles (decr.)"); _t("All invisibles (decr.)","Totes les invisibles (decr.)"); _t("All (decr.)","Totes (decr.)"); _t("Output mode...","Mode de sortida..."); _t("In place (default)","A la capa actual (predet.)"); _t("New layer(s)","Nova/es capa/es"); _t("New active layer(s)","Nova/es capa/es actius"); _t("New image","Nova imatge"); _t("Output preview...","Previsualitzaci\303\263 de sortida..."); _t("1st output (default)","1era imatge (predet.)"); _t("2nd output","2ona imatge"); _t("3rd output","3era imatge"); _t("4th output","4rta imatge"); _t("1st -> 2nd","1era -> 2ona"); _t("1st -> 3rd","1era -> 3era"); _t("1st -> 4th","1era -> 4rta"); _t("All outputs","Totes les imatges"); _t("Output messages...","Missatges de sortida..."); _t("Quiet (default)","Sense missatges (predet.)"); _t("Verbose (console)","Verb\303\263s (consola)"); _t("Verbose (logfile)","Verb\303\263s (arxiu)"); _t("Very verbose (console)","Molt verb\303\263s (consola)"); _t("Very verbose (logfile)","Molt verb\303\263s (arxiu)"); _t("Debug mode (console)","Depuraci\303\263 (consola)"); _t("Debug mode (logfile)","Depuraci\303\263 (arxiu)"); _t(" Available filters (%u) :"," Filtres disponibles (%u) :"); _t("_Maximize","_Maximitzar"); _t("_Restore","_Restaurar"); _t("Update","Actualitzaci\303\263"); _t("Rename","Canviar"); } // Dutch translation if (!std::strcmp(get_locale(),"nl")) { if (!s) { static const char *const ns = "Geen internet-update mogelijk !\n\n" "Kan deze filters bronnen te bereiken :\n"; return ns; } _t("G'MIC for GIMP","G'MIC voor GIMP"); _t("Select a filter...","Kies een filter..."); _t("No parameters to set...","Geen parameters nodig..."); _t(" Input / Output : "," Input / Output : "); _t("Input layers...","Input lagen..."); _t("None","Geen"); _t("Active (default)","Actieve laag (standaard)"); _t("All","Alle"); _t("Active & below","Actieve & onderliggende"); _t("Active & above","Actieve & bovenliggende"); _t("All visibles","Alle zichtbare"); _t("All invisibles","Alle niet zichtbare"); _t("All visibles (decr.)","Alle zichtbare (afnemend)"); _t("All invisibles (decr.)","Alle niet zichtbare (afnemend)"); _t("All (decr.)","Alle (afnemend)"); _t("Output mode...","Output mode..."); _t("In place (default)","Vervang bestaande (standaard)"); _t("New layer(s)","Nieuwe laag/lagen"); _t("New active layer(s)","Nieuwe actieve laag/lagen"); _t("New image","Nieuwe afbeelding"); _t("Output preview...","Output voorbeeld..."); _t("1st output (default)","1e Resultaat (standaard)"); _t("2nd output","2e Resultaat"); _t("3rd output","3e Resultaat"); _t("4th output","4e Resultaat"); _t("1st -> 2nd","1e -> 2e"); _t("1st -> 3rd","1e -> 3e"); _t("1st -> 4th","1e -> 4e"); _t("All outputs","Alle resultaten"); _t("Output messages...","Output berichten..."); _t("Quiet (default)","Geen melding (standaard)"); _t("Verbose (console)","Uitgebreid (console)"); _t("Verbose (logfile)","Uitgebreid (logfile)"); _t("Very verbose (console)","Heel uitgebreid (console)"); _t("Very verbose (logfile)","Heel uitgebreid (logfile)"); _t("Debug mode (console)","Debug mode (console)"); _t("Debug mode (logfile)","Debug mode (logfile)"); _t(" Available filters (%u) :"," Beschikbare filters (%u) :"); _t("_Maximize","_Maximaliseren"); _t("_Restore","_Vermindering"); _t("Rename","Hernoemen"); } // French translation if (!std::strcmp(get_locale(),"fr")) { if (!s) { static const char *const ns = "Mise à jour depuis Internet incomplète !\n\n" "Accès impossible aux sources de filtres :\n"; return ns; } _t("G'MIC for GIMP","G'MIC pour GIMP"); _t("Select a filter...","Choisissez un filtre..."); _t("No parameters to set...","Pas de paramètres..."); _t(" Input / Output : "," Entrées / Sorties : "); _t("Input layers...","Calques d'entr\303\251e..."); _t("None","Aucun"); _t("Active (default)","Actif (d\303\251faut)"); _t("All","Tous"); _t("Active & below","Actif & en dessous"); _t("Active & above","Actif & au dessus"); _t("All visibles","Tous les visibles"); _t("All invisibles","Tous les invisibles"); _t("All visibles (decr.)","Tous les visibles (d\303\251cr.)"); _t("All invisibles (decr.)","Tous les invisibles (d\303\251cr.)"); _t("All (decr.)","Tous (d\303\251cr.)"); _t("Output mode...","Mode de sortie..."); _t("In place (default)","Sur place (d\303\251faut)"); _t("New layer(s)","Nouveau(x) calque(s)"); _t("New active layer(s)","Nouveau(x) calque(s) actifs"); _t("New image","Nouvelle image"); _t("Output preview...","Mode d'aper\303\247u..."); _t("1st output (default)","1\303\250re image (d\303\251faut)"); _t("2nd output","2\303\250me image"); _t("3rd output","3\303\250me image"); _t("4th output","4\303\250me image"); _t("1st -> 2nd","1\303\250re -> 2\303\250me"); _t("1st -> 3rd","1\303\250re -> 3\303\250me"); _t("1st -> 4th","1\303\250re -> 4\303\250me"); _t("All outputs","Toutes les images"); _t("Output messages...","Messages de sortie..."); _t("Quiet (default)","Aucun message (d\303\251faut)"); _t("Verbose (console)","Mode verbeux (console)"); _t("Verbose (logfile)","Mode verbeux (fichier log)"); _t("Very verbose (console)","Mode tr\303\250s verbeux (console)"); _t("Very verbose (logfile)","Mode tr\303\250s verbeux (fichier log)"); _t("Debug mode (console)","Mode d\303\251bogage (console)"); _t("Debug mode (logfile)","Mode d\303\251bogage (fichier log)"); _t(" Available filters (%u) :"," Filtres disponibles (%u) :"); _t("_Maximize","_Maximiser"); _t("_Restore","_R\303\251duire"); _t("Update","Actualiser"); _t("Rename","Renommer"); } // German translation if (!std::strcmp(get_locale(),"de")) { if (!s) { static const char *const ns = "Kein Internet-Update m\303\266glich !\n\n" "Kann diese Filter Quellen erreichen :\n"; return ns; } _t("G'MIC for GIMP","G'MIC f\303\274r GIMP"); _t("Select a filter...","W\303\244hlen Sie einen Filter..."); _t("No parameters to set...","Keine w\303\244hlbaren Parameter..."); _t(" Input / Output : "," Eingabe / Ausgabe : "); _t("Input layers...","Eingabeebenen..."); _t("None","Keine"); _t("Active (default)","Aktive (Standard)"); _t("All","Alle"); _t("Active & below","Aktive & darunterliegende"); _t("Active & above","Aktive & dar\303\274berliegende"); _t("All visibles","Alle sichtbaren"); _t("All invisibles","Alle nicht sichtbaren"); _t("All visibles (decr.)","Alle sichtbaren (absteigend)"); _t("All invisibles (decr.)","Alle nicht sichtbaren (absteigend)"); _t("All (decr.)","Alle (absteigend)"); _t("Output mode...","Ausgabemodus..."); _t("In place (default)","Bestehende ersetzen (standard)"); _t("New layer(s)","Neue Ebene(n)"); _t("New active layer(s)","Neue aktive Ebene(n)"); _t("New image","Neues Bild"); _t("Output preview...","Ausgabevorschau..."); _t("1st output (default)","1. Ausgabe (Standard)"); _t("2nd output","2. Ausgabe"); _t("3rd output","3. Ausgabe"); _t("4th output","4. Ausgabe"); _t("1st -> 2nd","1. -> 2."); _t("1st -> 3rd","1. -> 3."); _t("1st -> 4th","1. -> 4."); _t("All outputs","Alle Ausgaben"); _t("Output messages...","Ausgabemeldungen..."); _t("Quiet (default)","Keine Meldung (Standard)"); _t("Verbose (console)","Ausf\303\274hrlich (Konsole)"); _t("Verbose (logfile)","Ausf\303\274hrlich (Logfile)"); _t("Very verbose (console)","Sehr ausf\303\274hrlich (Konsole)"); _t("Very verbose (logfile)","Sehr ausf\303\274hrlich (Logfile)"); _t("Debug mode (console)","Debug-Modus (Konsole)"); _t("Debug mode (logfile)","Debug-Modus (Logfile)"); _t(" Available filters (%u) :"," Verf\303\274gbare Filter (%u) :"); _t("Rename","Umbenennen"); } // Italian translation if (!std::strcmp(get_locale(),"it")) { if (!s) { static const char *const ns = "Impossibile aggiornare da Internet !\n\n" "Impossibile raggiungere queste fonti filtri :\n"; return ns; } _t("G'MIC for GIMP","G'MIC per GIMP"); _t("Select a filter...","Sciegliete un Filtro..."); _t("No parameters to set...","Filtro senza Parametri..."); _t(" Input / Output : "," Input / Output : "); _t("Input layers...","Input da Layers..."); _t("None","Nessuno"); _t("Active (default)","Layer Attivo (default)"); _t("All","Tutti"); _t("Active & below","Attivo & superiori"); _t("Active & above","Attivo & inferiori"); _t("All visibles","Tutti i Visibili"); _t("All invisibles","Tutti gli invisibili"); _t("All visibles (decr.)","Tutti i visibili (dal fondo)"); _t("All invisibles (decr.)","Tutti gli invisibili (dal fondo)"); _t("All (decr.)","Tutti"); _t("Output mode...","Tipo di output..."); _t("In place (default)","Applica al Layer attivo (default) "); _t("New layer(s)","Nuovo(i) Layer(s)"); _t("New active layer(s)","Attiva Nuovo(i) Layer(s)"); _t("New image","Nuova Immagine"); _t("Output preview...","Anteprima..."); _t("1st output (default)","Primo Output (default)"); _t("2nd output","Secondo Output"); _t("3rd output","Terzo Output"); _t("4th output","Quarto Output"); _t("1st -> 2nd","1 -> 2"); _t("1st -> 3rd","1 -> 3"); _t("1st -> 4th","1 -> 4"); _t("All outputs","Tutti i layers"); _t("Output messages...","Messaggi di Output..."); _t("Quiet (default)","Nessun Messaggio (default)"); _t("Verbose (console)","Messagi (console)"); _t("Verbose (logfile)","Messagi (logfile)"); _t("Very verbose (console)","Messaggi Dettagliati (console)"); _t("Very verbose (logfile)","Messaggi Dettagliati (logfile)"); _t("Debug mode (console)","Debug Mode (console)"); _t("Debug mode (logfile)","Debug Mode (logfile)"); _t(" Available filters (%u) :"," Filtri disponibili (%u) :"); _t("Update","Aggiornare"); } // Polish translation if (!std::strcmp(get_locale(),"pl")) { if (!s) { static const char *const ns = "Aktualizacja filtr\303\263w przez internet (cz\304\231\305\233ciowo) nie powiod\305\202a si\304\231 !\n\n" "Brak dost\304\231pu do tych \305\272r\303\263de\305\202 filtr\303\263w :\n"; return ns; } _t("G'MIC for GIMP","G'MIC dla GIMP"); _t("Select a filter...","Wybierz filtr..."); _t("No parameters to set...","Brak parametr\304\205w do ustawienia..."); _t(" Input / Output : "," Wej\305\233cie / Wyj\305\233cie : "); _t("Input layers...","Warstwy wej\305\233cia..."); _t("None","Brak"); _t("Active (default)","Aktywna (domy\305\233lnie)"); _t("All","Wszystkie"); _t("Active & below","Aktywna & poni\305\274ej"); _t("Active & above","Aktywna & powy\305\274ej"); _t("All visibles","Wszystkie widoczne"); _t("All invisibles","Wszystkie niewidoczne"); _t("All visibles (decr.)","Wszystkie widoczne (od do\305\202u)"); _t("All invisibles (decr.)","Wszystkie niewidoczne (od do\305\202u)"); _t("All (decr.)","Wszystkie (od do\305\202u)"); _t("Output mode...","Tryb wyj\305\233cia..."); _t("In place (default)","Na miejscu (domy\305\233lnie)"); _t("New layer(s)","Nowa/e warstwa/y"); _t("New active layer(s)","Nowa/e aktywna/e warstwa/y"); _t("New image","Nowy obraz"); _t("Output preview...","Podgl\304\205d wyj\305\233cia dla warstw..."); _t("1st output (default)","Pierwszej (domy\305\233lnie)"); _t("2nd output","Drugiej"); _t("3rd output","Trzeciej"); _t("4th output","Czwartej"); _t("1st -> 2nd","Od 1 do 2"); _t("1st -> 3rd","Od 1 do 3"); _t("1st -> 4th","Od 1 do 4"); _t("All outputs","Wszystkich"); _t("Output messages...","Komunikat wyj\305\233cia..."); _t("Quiet (default)","Brak (domy\305\233lnie)"); _t("Verbose (console)","Og\303\263lny (konsola)"); _t("Verbose (logfile)","Og\303\263lny (plik log)"); _t("Very verbose (console)","Dok\305\202adny (konsola)"); _t("Very verbose (logfile)","Dok\305\202adny (plik log)"); _t("Debug mode (console)","Debugowanie (konsola)"); _t("Debug mode (logfile)","Debugowanie (plik log)"); _t(" Available filters (%u) :"," Dost\304\231pne filtry (%u) :"); _t("_Maximize","_Maksymalizuj"); _t("_Restore","_Cofnij"); _t("Update","Uaktualnij"); _t("Rename","Zmiana nazwy"); } // Portuguese translation if (!std::strcmp(get_locale(),"pt")) { if (!s) { static const char *const ns = "A atualiza\303\247\303\243o pela internet falhou !\n\n" "Incapaz de chegar a essas fontes de filtros :\n"; return ns; } _t("G'MIC for GIMP","G'MIC para o GIMP"); _t("Select a filter...","Escolha um filtro"); _t("No parameters to set...","Sem par\303\242metros para configurar..."); _t(" Input / Output : "," Entrada / Saida : "); _t("Input layers...","Camadas de Entrada..."); _t("None","Nenhuma"); _t("Active (default)","Ativo (Padr\303\243o)"); _t("All","Todos"); _t("Active & below","Ativo & abaixo"); _t("Active & above","Ativo & acima"); _t("All visibles","Todos vis\303\255veis"); _t("All invisibles","Todos invis\303\255veis"); _t("All visibles (decr.)","Todos vis\303\255veis (decr.)"); _t("All invisibles (decr.)","Todos invis\303\255veis (decr.)"); _t("All (decr.)","Todos (decr.)"); _t("Output mode...","Modo de saida..."); _t("In place (default)","No lugar (Padr\303\243o)"); _t("New layer(s)","Nova(s) camada(s)"); _t("New active layer(s)","Nova(s) camadas(s) ativa"); _t("New image","Nova imagem"); _t("Output preview...","Pr\303\251 Visualiza\303\247\303\243o"); _t("1st output (default)","Primeira pr\303\251via (Padr\303\243o)"); _t("2nd output","2 pr\303\251via imagem"); _t("3rd output","3 pr\303\251via imagem"); _t("4th output","4 pr\303\251via imagem"); _t("1st -> 2nd","1st -> 2nd"); _t("1st -> 3rd","1st -> 3rd"); _t("1st -> 4th","1st -> 4th"); _t("All outputs","Todas as imagens"); _t("Output messages...","Mensagens de saida..."); _t("Quiet (default)","Quieto (Padr\303\243o)"); _t("Verbose (console)","Mode verbose (console)"); _t("Verbose (logfile)","Mode verbose (arquivo)"); _t("Very verbose (console)","Modo verbose ampliada (console)"); _t("Very verbose (logfile)","Modo verbose ampliada (arquivo)"); _t("Debug mode (console)","Modo Debug (console)"); _t("Debug mode (logfile)","Modo Debug (arquivo)"); _t(" Available filters (%u) :"," Filtros dispon\303\255veis (%u) :"); _t("_Maximize","_Maximizar"); _t("_Restore","Restaurar"); _t("Update","Atualizar"); _t("Rename","Renomear"); } // Serbian translation if (!std::strcmp(get_locale(),"sr")) { if (!s) { static const char *const ns = "A\305\276uriranje filtera sa interneta (delimi\304\215no) neuspe\305\241no !\n\n" "Nije mogu\304\207e dospeti do izvorne lokacije ovih filtera :\n"; return ns; } _t("G'MIC for GIMP","G'MIC za GIMP"); _t("Select a filter...","Izaberite filter..."); _t("No parameters to set...","Nema parametara za pode\305\241avanje..."); _t(" Input / Output : "," Ulazni podaci / Rezultati : "); _t("Input layers...","Ulazni slojevi..."); _t("None","Nijedan"); _t("Active (default)","Aktivan (podrazumevana opcija)"); _t("All","Svi"); _t("Active & below","Aktivni & ispod"); _t("Active & above","Aktivni & iznad"); _t("All visibles","Svi vidljivi"); _t("All invisibles","Svi nevidljivi"); _t("All visibles (decr.)","Svi vidljivi (po opadaju\304\207em nizu)"); _t("All invisibles (decr.)","Svi nevidljivi (po opadaju\304\207em nizu)"); _t("All (decr.)","Svi (po opadaju\304\207em nizu)"); _t("Output mode...","Izlazni mod..."); _t("In place (default)","Umesto (podrazumevana opcija)"); _t("New layer(s)","Novi sloj(evi)"); _t("New active layer(s)","Novi aktivni sloj(evi)"); _t("New image","Nova slika"); _t("Output preview...","Pregled rezultata..."); _t("1st output (default)","prvi rezultat (podrazumevana opcija)"); _t("2nd output","drugi rezultat"); _t("3rd output","tre\304\207i rezultat"); _t("4th output","\304\215etvrti rezultat"); _t("1st -> 2nd","prvi -> drugi"); _t("1st -> 3rd","prvi -> tre\304\207i"); _t("1st -> 4th","prvi -> \304\215etvrti"); _t("All outputs","Svi rezultati"); _t("Output messages...","Izlazne poruke..."); _t("Quiet (default)","Tiho (podrazumevana opcija)"); _t("Verbose (console)","Op\305\241irnije (konzola)"); _t("Verbose (logfile)","Op\305\241irnije (log fajl)"); _t("Very verbose (console)","Vrlo op\305\241irno (konzola)"); _t("Very verbose (logfile)","Vrlo op\305\241irno (log fajl)"); _t("Debug mode (console)","Mod za otklanjanje programskih gre\305\241aka (konzola)"); _t("Debug mode (logfile)","Mod za otklanjanje programskih gre\305\241aka (log fajl)"); _t(" Available filters (%u) :"," Raspolo\305\276ivi filteri (%u) :"); _t("_Maximize","_Maksimizirati"); _t("_Restore","_Vratiti"); _t("Rename","Preimenovati"); } // Spanish translation (Castillan) if (!std::strcmp(get_locale(),"es")) { if (!s) { static const char *const ns = "No es posible establecer conexión a Internet !\n\n" "No es posible acceder a estas fuentes de filtros :\n"; return ns; } _t("G'MIC for GIMP","G'MIC para GIMP"); _t("Select a filter...","Selecciona un filtro..."); _t("No parameters to set...","Sin par\303\241metros..."); _t(" Input / Output : "," Entrada / Salida : "); _t("Input layers...","Capas de entrada..."); _t("None","Ninguna"); _t("Active (default)","Activa (predet.)"); _t("All","Todas"); _t("Active & below","Activa e inferior"); _t("Active & above","Activa y superior"); _t("All visibles","Todas las visibles"); _t("All invisibles","Todas las invisibles"); _t("All visibles (decr.)","Todas las visibles (decr.)"); _t("All invisibles (decr.)","Todas las invisibles (decr.)"); _t("All (decr.)","Todas (decr.)"); _t("Output mode...","Modo de salida..."); _t("In place (default)","En la capa actual (predet.)"); _t("New layer(s)","Capa/as nueva/as"); _t("New active layer(s)","Capa/as nueva/as activa"); _t("New image","Imagen nueva"); _t("Output preview...","Previsualizaci\303\263n de la salida..."); _t("1st output (default)","1ra imagen (predet.)"); _t("2nd output","2da imagen"); _t("3rd output","3ra imagen"); _t("4th output","4ta imagen"); _t("1st -> 2nd","1ra -> 2da"); _t("1st -> 3rd","1ra -> 3ra"); _t("1st -> 4th","1ra -> 4ta"); _t("All outputs","Todas las imagenes (salida)"); _t("Output messages...","Mensajes de salida..."); _t("Quiet (default)","Sin mensajes (predet.)"); _t("Verbose (console)","Detallado (consola)"); _t("Verbose (logfile)","Detallado (archivo_registro)"); _t("Very verbose (console)","Muy detallado (consola)"); _t("Very verbose (logfile)","Muy detallado (archivo_registro)"); _t("Debug mode (console)","Depuraci\303\263n (consola)"); _t("Debug mode (logfile)","Depuraci\303\263n (archivo_registro)"); _t(" Available filters (%u) :"," Filtros disponibles (%u) :"); _t("_Maximize","_Maximizar"); _t("_Restore","_Restaurar"); _t("Update","Actualitzaci\303\263n"); _t("Rename","Renombrar"); } // English translation (default) if (!s) { static const char *const ns = "Filters update from Internet (partially) failed !\n\n" "Unable to reach these filters sources :\n"; return ns; } return s; } // Flush filter tree view //------------------------ void flush_tree_view(GtkWidget *const tree_view) { const unsigned int filter = get_current_filter(); bool tree_mode = get_tree_mode(); unsigned int current_dir = 0; char current_path[64] = { 0 }; gimp_get_data("gmic_current_treepath",¤t_path); if (tree_mode) { // Expand cimglist_for(gmic_1stlevel_entries,l) { GtkTreePath *path = gtk_tree_path_new_from_string(gmic_1stlevel_entries[l].data()); gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view),path,false); gtk_tree_path_free(path); } } else { // Collapse if (filter && *current_path && std::sscanf(current_path,"%u",¤t_dir)==1) { cimglist_for(gmic_1stlevel_entries,l) { const char *const s_path = gmic_1stlevel_entries[l].data(); unsigned int dir = 0; if (std::sscanf(s_path,"%u",&dir)!=1 || dir!=current_dir) { GtkTreePath *path = gtk_tree_path_new_from_string(gmic_1stlevel_entries[l].data()); gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree_view),path); gtk_tree_path_free(path); } } } else gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree_view)); } if (filter && *current_path) { GtkTreePath *path = gtk_tree_path_new_from_string(current_path); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(tree_view),path); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(tree_view),path,NULL,FALSE,0,0); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); gtk_tree_selection_select_path(selection,path); gtk_tree_path_free(path); } if (indice_faves update_filters(const bool try_net_update) { // Build list of filter sources. CImgList _sources; CImgList _names; char command[1024] = { 0 }; cimg_snprintf(command,sizeof(command),"%s-gimp_filter_sources", get_verbosity_mode()>4?"-debug ":get_verbosity_mode()>2?"":"-v -99 "); try { gmic(command,_sources,_names,gmic_additional_commands,true); } catch (...) {} CImgList sources; _sources.move_to(sources); cimglist_for(sources,l) { char &c = sources[l].unroll('x').back(); if (c) { if (c==1) { c = 0; sources[l].columns(0,sources[l].width()); sources[l].back() = 1; } else sources[l].columns(0,sources[l].width()); } } // Free existing definitions. if (tree_view_store) g_object_unref(tree_view_store); gmic_additional_commands.assign(); gmic_1stlevel_entries.assign(); gmic_faves.assign(); gmic_entries.assign(1); gmic_commands.assign(1); gmic_preview_commands.assign(1); gmic_preview_factors.assign(1); gmic_arguments.assign(1); if (try_net_update) gimp_progress_init(" G'MIC : Update filters..."); // Get filter definition files from external web servers. const char *const path_conf = get_conf_path(), *const path_tmp = cimg::temporary_path(); char filename[1024] = { 0 }; if (try_net_update) gimp_progress_pulse(); char filename_tmp[1024] = { 0 }, sep = 0; CImgList invalid_servers; cimglist_for(sources,l) if (try_net_update && (!cimg::strncasecmp(sources[l],"http://",7) || !cimg::strncasecmp(sources[l],"https://",8))) { const char *const s_basename = gmic_basename(sources[l]); gimp_progress_set_text_printf(" G'MIC : Update filters '%s'...",s_basename); cimg_snprintf(filename_tmp,sizeof(filename_tmp),"%s%c%s%s", path_tmp,cimg_file_separator,_gmic_file_prefix,s_basename); cimg_snprintf(filename,sizeof(filename),"%s%c%s%s", path_conf,cimg_file_separator,_gmic_file_prefix,s_basename); std::remove(filename_tmp); // Try curl first. if (get_verbosity_mode()) { // Verbose mode. cimg_snprintf(command,sizeof(command),_gmic_path "curl -f --compressed -o \"%s\" %s", filename_tmp,sources[l].data()); std::fprintf(cimg::output(),"\n[gmic_gimp]./update/ %s\n",command); std::fflush(cimg::output()); } else // Quiet mode. cimg_snprintf(command,sizeof(command),_gmic_path "curl -f --silent --compressed -o \"%s\" %s", filename_tmp,sources[l].data()); cimg::system(command); std::FILE *file = std::fopen(filename_tmp,"rb"); // Try with 'wget' if 'curl' failed. if (!file) { if (get_verbosity_mode()) { // Verbose mode. cimg_snprintf(command,sizeof(command),_gmic_path "wget -r -l 0 --no-cache -O \"%s\" %s", filename_tmp,sources[l].data()); std::fprintf(cimg::output(),"\n[gmic_gimp]./update/ %s\n",command); std::fflush(cimg::output()); } else // Quiet mode. cimg_snprintf(command,sizeof(command),_gmic_path "wget -q -r -l 0 --no-cache -O \"%s\" %s", filename_tmp,sources[l].data()); cimg::system(command); file = std::fopen(filename_tmp,"rb"); } // Check for gzip compressed version of the file. if (file && (std::fscanf(file," #@gmi%c",&sep)!=1 || sep!='c')) { // G'MIC header not found -> perhaps a .gz compressed file ? std::fclose(file); cimg_snprintf(command,sizeof(command),"%s.gz",filename_tmp); std::rename(filename_tmp,command); if (get_verbosity_mode()) { cimg_snprintf(command,sizeof(command),_gmic_path "gunzip %s.gz", filename_tmp); std::fprintf(cimg::output(), "\n[gmic_gimp]./update/ %s\n", command); std::fflush(cimg::output()); } else cimg_snprintf(command,sizeof(command),_gmic_path "gunzip --quiet %s.gz", filename_tmp); cimg::system(command); file = std::fopen(filename_tmp,"rb"); if (!file) { cimg_snprintf(command,sizeof(command),"%s.gz",filename_tmp); std::remove(command); } } if (file) { // Copy file to its final location. std::fclose(file); CImg::get_load_raw(filename_tmp).save_raw(filename); std::remove(filename_tmp); } else invalid_servers.insert(sources[l]); gimp_progress_pulse(); } gimp_progress_set_text(" G'MIC : Update filters..."); // Read local source files. CImgList _gmic_additional_commands; bool is_default_update = false; cimglist_for(sources,l) { const char *s_basename = gmic_basename(sources[l]); cimg_snprintf(filename,sizeof(filename),"%s%c%s%s", path_conf,cimg_file_separator,_gmic_file_prefix,s_basename); const unsigned int old_exception_mode = cimg::exception_mode(); try { cimg::exception_mode(0); CImg::get_load_raw(filename).move_to(_gmic_additional_commands); CImg::string("\n#@gimp ________\n",false).unroll('y').move_to(_gmic_additional_commands); if (sources[l].back()==1) is_default_update = true; } catch(...) { if (get_verbosity_mode()) std::fprintf(cimg::output(), "\n[gmic_gimp]./update/ Filter file '%s' not found.\n", filename); std::fflush(cimg::output()); } cimg::exception_mode(old_exception_mode); if (try_net_update) gimp_progress_pulse(); } if (!is_default_update) { // Add hardcoded default filters if no updates of the default commands. CImg(data_gmic_def,1,size_data_gmic_def-1,1,1,true).move_to(_gmic_additional_commands); CImg::string("\n#@gimp ________\n",false).unroll('y').move_to(_gmic_additional_commands); } CImg::vector(0).move_to(_gmic_additional_commands); (_gmic_additional_commands>'y').move_to(gmic_additional_commands); // Add fave folder if necessary (make it before actually adding faves to make tree paths valids). CImgList gmic_1stlevel_names; GtkTreeIter iter, fave_iter, parent[8]; char filename_gmic_faves[1024] = { 0 }; tree_view_store = gtk_tree_store_new(2,G_TYPE_UINT,G_TYPE_STRING); cimg_snprintf(filename_gmic_faves,sizeof(filename_gmic_faves),"%s%c%sgmic_faves", path_conf,cimg_file_separator,_gmic_file_prefix); std::FILE *file_gmic_faves = std::fopen(filename_gmic_faves,"rb"); if (file_gmic_faves) { gtk_tree_store_append(tree_view_store,&fave_iter,0); gtk_tree_store_set(tree_view_store,&fave_iter,0,0,1,"Faves",-1); const char *treepath = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(tree_view_store),&fave_iter); CImg::vector(0).move_to(gmic_1stlevel_names); CImg::string(treepath).move_to(gmic_1stlevel_entries); } // Parse filters descriptions for GIMP, and create corresponding sorted treeview_store. char line[256*1024] = { 0 }, preview_command[256] = { 0 }, arguments[16384] = { 0 }, entry[256] = { 0 }, locale[16] = { 0 }; std::strcpy(locale,get_locale()); int level = 0, err = 0; cimg_snprintf(line,sizeof(line),"#@gimp_%s ",locale); // Use English for default language if no translated filters found. if (!std::strstr(gmic_additional_commands,line)) { locale[0] = 'e'; locale[1] = 'n'; locale[2] = 0; } for (const char *data = gmic_additional_commands; *data; ) { char *_line = line; // Read new line. while (*data!='\n' && *data && _line7) level = 7; cimg::strpare(nentry,' ',false,true); cimg::strpare(nentry,'\"',true); if (*nentry) { if (level) { gtk_tree_store_append(tree_view_store,&parent[level],level?&parent[level-1]:0); gtk_tree_store_set(tree_view_store,&parent[level],0,0,1,nentry,-1); } else { // 1st-level folder. bool is_duplicate = false; cimglist_for(gmic_1stlevel_names,l) if (!std::strcmp(nentry,gmic_1stlevel_names[l].data())) { // Folder name is a duplicate. if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(tree_view_store),&parent[level],gmic_1stlevel_entries[l].data())) { is_duplicate = true; break; } } if (!is_duplicate) { gtk_tree_store_append(tree_view_store,&parent[level],level?&parent[level-1]:0); gtk_tree_store_set(tree_view_store,&parent[level],0,0,1,nentry,-1); const char *treepath = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(tree_view_store), &parent[level]); CImg::string(nentry).move_to(gmic_1stlevel_names); CImg::string(treepath).move_to(gmic_1stlevel_entries); GtkWidget *const markup2ascii = gtk_label_new(0); gtk_label_set_markup(GTK_LABEL(markup2ascii),nentry); const char *_nentry = gtk_label_get_text(GTK_LABEL(markup2ascii)); unsigned int order = 0; for (unsigned int i = 0; i<4; ++i) { order<<=8; if (*_nentry) order|=(unsigned char)cimg::uncase(*(_nentry++)); } gtk_widget_destroy(markup2ascii); } } ++level; } } else if (err>=2) { // If entry defines a regular filter. cimg::strpare(entry,' ',false,true); char *nentry = entry; while (*nentry=='_') { ++nentry; --level; } if (level<0) level = 0; else if (level>7) level = 7; cimg::strpare(nentry,' ',false,true); cimg::strpare(nentry,'\"',true); cimg::strpare(command,' ',false,true); cimg::strpare(arguments,' ',false,true); if (*nentry) { CImg::string(nentry).move_to(gmic_entries); CImg::string(command).move_to(gmic_commands); CImg::string(arguments).move_to(gmic_arguments); if (err>=3) { // Filter has a specified preview command. cimg::strpare(preview_command,' ',false,true); char *const preview_mode = std::strchr(preview_command,'('); double factor = 1; char sep = 0; if (preview_mode && std::sscanf(preview_mode+1,"%lf%c",&factor,&sep)==2 && factor>=0 && sep==')') *preview_mode = 0; else factor = -1; CImg::string(preview_command).move_to(gmic_preview_commands); CImg::vector(factor).move_to(gmic_preview_factors); } else { CImg::string("_none_").move_to(gmic_preview_commands); CImg::vector(-1).move_to(gmic_preview_factors); } gtk_tree_store_append(tree_view_store,&iter,level?&parent[level-1]:0); gtk_tree_store_set(tree_view_store,&iter,0,gmic_entries.size()-1,1,nentry,-1); if (!level) { GtkWidget *const markup2ascii = gtk_label_new(0); gtk_label_set_markup(GTK_LABEL(markup2ascii),nentry); const char *_nentry = gtk_label_get_text(GTK_LABEL(markup2ascii)); unsigned int order = 0; for (unsigned int i = 0; i<3; ++i) { order<<=8; if (*_nentry) order|=cimg::uncase(*(_nentry++)); } gtk_widget_destroy(markup2ascii); } } } } else { // Line is the continuation of an entry. if (gmic_arguments) { if (gmic_arguments.back()) gmic_arguments.back().back() = ' '; cimg::strpare(++_line,' ',false,true); gmic_arguments.back().append(CImg(_line,std::strlen(_line)+1,1,1,1,true),'x'); } } } if (try_net_update) gimp_progress_pulse(); // Load faves. char label[256] = { 0 }; indice_faves = gmic_entries.size(); if (file_gmic_faves) { for (unsigned int line_nb = 1; std::fscanf(file_gmic_faves," %[^\n]",line)==1; ++line_nb) { char sep = 0; if (std::sscanf(line,"{%255[^}]}{%255[^}]}{%255[^}]}{%255[^}]%c", label,entry,command,preview_command,&sep)==5 && sep=='}') { const char *_line = line + 8 + std::strlen(label) + std::strlen(entry) + std::strlen(command) + std::strlen(preview_command); int entry_found = -1, command_found = -1, preview_found = -1; unsigned int filter = 0; for (filter = 1; filter::string(line).move_to(gmic_faves); for (char *p = std::strchr(label,_rbrace); p; p = std::strchr(p,_rbrace)) *p = '}'; // Get back '}' if necessary. for (char *p = std::strchr(entry,_rbrace); p; p = std::strchr(p,_rbrace)) *p = '}'; if (filter>=indice_faves) { // Entry not found. CImg::string(label).move_to(gmic_entries); CImg::string("_none_").move_to(gmic_commands); CImg::string("_none_").move_to(gmic_preview_commands); std::sprintf(line,"note = note{\"Warning : This fave links to an unreferenced entry/set " "of G'MIC commands :\n\n" " - '%s' as the entry name (%s%s%s%s%s).\n\n" " - '%s' as the command to compute the filter (%s%s%s%s%s).\n\n" " - '%s' as the command to preview the filter (%s%s%s%s%s)." "\"}", entry, entry_found>=0?"recognized, associated to ":"not recognized", entry_found>=0?gmic_commands[entry_found].data():"", entry_found>=0?", ":"", entry_found>=0?gmic_preview_commands[entry_found].data():"", entry_found>=0?"":"", command, command_found>=0?"recognized, associated to ":"not recognized", command_found>=0?gmic_entries[command_found].data():"", command_found>=0?", ":"", command_found>=0?gmic_preview_commands[command_found].data():"", command_found>=0?"":"", preview_command, preview_found>=0?"recognized, associated to ":"not recognized", preview_found>=0?gmic_entries[preview_found].data():"", preview_found>=0?", ":"", preview_found>=0?gmic_commands[preview_found].data():"", preview_found>=0?"":""); CImg::string(line).move_to(gmic_arguments); CImg::vector(0).move_to(gmic_preview_factors); set_filter_nbparams(gmic_entries.size()-1,0); } else { // Entry found. CImg::string(label).move_to(gmic_entries); gmic_commands.insert(gmic_commands[filter]); gmic_preview_commands.insert(gmic_preview_commands[filter]); gmic_arguments.insert(gmic_arguments[filter]); gmic_preview_factors.insert(gmic_preview_factors[filter]); unsigned int nbp = 0; for (nbp = 0; std::sscanf(_line,"{%16383[^}]%c",arguments,&sep)==2 && sep=='}'; ++nbp) { for (char *p = std::strchr(arguments,_rbrace); p; p = std::strchr(p,_rbrace)) *p = '}'; // Get back '}' if necessary. for (char *p = std::strchr(arguments,_newline); p; p = std::strchr(p,_newline)) *p = '\n'; // Get back '\n' if necessary. set_fave_parameter(gmic_entries.size()-1,nbp,arguments); _line+=2 + std::strlen(arguments); } set_filter_nbparams(gmic_entries.size()-1,nbp); } gtk_tree_store_append(tree_view_store,&iter,&fave_iter); gtk_tree_store_set(tree_view_store,&iter,0,gmic_entries.size()-1,1,label,-1); } else if (get_verbosity_mode()) std::fprintf(cimg::output(), "\n[gmic_gimp]./error/ Malformed line %u in fave file '%s' : '%s'.\n", line_nb,filename_gmic_faves,line); } std::fclose(file_gmic_faves); } if (try_net_update) { gimp_progress_update(1); gimp_progress_end(); } return invalid_servers; } // 'Convert' a CImg image to a RGB[A] CImg image, withing the same buffer. //---------------------------------------------------------------------------------------------- void convert_image_float2uchar(CImg& img) { const unsigned int siz = img.width()*img.height(); unsigned char *ptrd = (unsigned char*)img.data(); switch (img.spectrum()) { case 1 : { const float *ptr0 = img.data(0,0,0,0); for (unsigned int i = 0; i& img, const unsigned int channels, const bool preview) { if (!img || !channels) return; switch (channels) { case 1 : // To GRAY switch (img.spectrum()) { case 1 : // from GRAY break; case 2 : // from GRAYA if (preview) { float *ptr_r = img.data(0,0,0,0), *ptr_a = img.data(0,0,0,1); cimg_forXY(img,x,y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x^y)&8)<<3); *ptr_r = (float)((a*(unsigned int)*ptr_r + (255-a)*i)>>8); ++ptr_r; } } img.channel(0); break; case 3 : // from RGB img.RGBtoYCbCr().channel(0); break; case 4 : // from RGBA img.get_shared_channels(0,2).RGBtoYCbCr(); if (preview) { float *ptr_r = img.data(0,0,0,0), *ptr_a = img.data(0,0,0,3); cimg_forXY(img,x,y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x^y)&8)<<3); *ptr_r = (float)((a*(unsigned int)*ptr_r + (255-a)*i)>>8); ++ptr_r; } } img.channel(0); break; default : // from multi-channel (>4) img.channel(0); } break; case 2: // To GRAYA switch (img.spectrum()) { case 1: // from GRAY img.resize(-100,-100,1,2,0).get_shared_channel(1).fill(255); break; case 2: // from GRAYA break; case 3: // from RGB img.RGBtoYCbCr().channels(0,1).get_shared_channel(1).fill(255); break; case 4: // from RGBA img.get_shared_channels(0,2).RGBtoYCbCr(); img.get_shared_channel(1) = img.get_shared_channel(3); img.channels(0,1); break; default: // from multi-channel (>4) img.channels(0,1); } break; case 3: // to RGB switch (img.spectrum()) { case 1: // from GRAY img.resize(-100,-100,1,3); break; case 2: // from GRAYA if (preview) { float *ptr_r = img.data(0,0,0,0), *ptr_a = img.data(0,0,0,1); cimg_forXY(img,x,y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x^y)&8)<<3); *ptr_r = (float)((a*(unsigned int)*ptr_r + (255-a)*i)>>8); ++ptr_r; } } img.channel(0).resize(-100,-100,1,3); break; case 3: // from RGB break; case 4: // from RGBA if (preview) { float *ptr_r = img.data(0,0,0,0), *ptr_g = img.data(0,0,0,1), *ptr_b = img.data(0,0,0,2), *ptr_a = img.data(0,0,0,3); cimg_forXY(img,x,y) { const unsigned int a = (unsigned int)*(ptr_a++), i = 96 + (((x^y)&8)<<3); *ptr_r = (float)((a*(unsigned int)*ptr_r + (255-a)*i)>>8); *ptr_g = (float)((a*(unsigned int)*ptr_g + (255-a)*i)>>8); *ptr_b = (float)((a*(unsigned int)*ptr_b + (255-a)*i)>>8); ++ptr_r; ++ptr_g; ++ptr_b; } } img.channels(0,2); break; default: // from multi-channel (>4) img.channels(0,2); } break; case 4: // to RGBA switch (img.spectrum()) { case 1: // from GRAY img.resize(-100,-100,1,4).get_shared_channel(3).fill(255); break; case 2: // from GRAYA img.resize(-100,-100,1,4,0); img.get_shared_channel(3) = img.get_shared_channel(1); img.get_shared_channel(1) = img.get_shared_channel(0); img.get_shared_channel(2) = img.get_shared_channel(0); break; case 3: // from RGB img.resize(-100,-100,1,4,0).get_shared_channel(3).fill(255); break; case 4: // from RGBA break; default: // from multi-channel (>4) img.channels(0,3); } break; } } // Get the input layers of a GIMP image as a list of CImg. //--------------------------------------------------------------- template CImg get_input_layers(CImgList& images) { // Retrieve the list of desired layers. int nb_layers = 0, *layers = gimp_image_get_layers(image_id,&nb_layers), active_layer = gimp_image_get_active_layer(image_id); CImg input_layers; const unsigned int input_mode = get_input_mode(); switch (input_mode) { case 0 : // Input none break; case 1 : // Input active layer input_layers = CImg::vector(active_layer); break; case 2 : case 9 : // Input all image layers input_layers = CImg(layers,1,nb_layers); if (input_mode==9) input_layers.mirror('y'); break; case 3 : { // Input active & below layers int i = 0; for (i = 0; i::vector(active_layer,layers[i+1]); else input_layers = CImg::vector(active_layer); } break; case 4 : { // Input active & above layers int i = 0; for (i = 0; i0) input_layers = CImg::vector(active_layer,layers[i-1]); else input_layers = CImg::vector(active_layer); } break; case 5 : case 7 : { // Input all visible image layers CImgList visible_layers; for (int i = 0; i::vector(layers[i]).move_to(visible_layers); input_layers = visible_layers>'y'; if (input_mode==7) input_layers.mirror('y'); } break; default : { // Input all invisible image layers CImgList invisible_layers; for (int i = 0; i::vector(layers[i]).move_to(invisible_layers); input_layers = invisible_layers>'y'; if (input_mode==8) input_layers.mirror('y'); } break; } // Read input image data into a CImgList. images.assign(input_layers.height()); GimpPixelRgn region; gint x1, y1, x2, y2; cimglist_for(images,l) { GimpDrawable *drawable = gimp_drawable_get(input_layers[l]); if (!gmic_drawable_is_valid(drawable)) continue; gimp_drawable_mask_bounds(drawable->drawable_id,&x1,&y1,&x2,&y2); const int channels = drawable->bpp; gimp_pixel_rgn_init(®ion,drawable,x1,y1,x2-x1,y2-y1,false,false); guchar *const row = g_new(guchar,(x2-x1)*channels), *ptrs = 0; CImg img(x2-x1,y2-y1,1,channels); switch (channels) { case 1 : { T *ptr_r = img.data(0,0,0,0); cimg_forY(img,y) { gimp_pixel_rgn_get_row(®ion,ptrs=row,x1,y1+y,img.width()); cimg_forX(img,x) *(ptr_r++) = (T)*(ptrs++); } } break; case 2 : { T *ptr_r = img.data(0,0,0,0), *ptr_g = img.data(0,0,0,1); cimg_forY(img,y) { gimp_pixel_rgn_get_row(®ion,ptrs=row,x1,y1+y,img.width()); cimg_forX(img,x) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); } } } break; case 3 : { T *ptr_r = img.data(0,0,0,0), *ptr_g = img.data(0,0,0,1), *ptr_b = img.data(0,0,0,2); cimg_forY(img,y) { gimp_pixel_rgn_get_row(®ion,ptrs=row,x1,y1+y,img.width()); cimg_forX(img,x) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); } } } break; case 4 : { T *ptr_r = img.data(0,0,0,0), *ptr_g = img.data(0,0,0,1), *ptr_b = img.data(0,0,0,2), *ptr_a = img.data(0,0,0,3); cimg_forY(img,y) { gimp_pixel_rgn_get_row(®ion,ptrs=row,x1,y1+y,img.width()); cimg_forX(img,x) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); *(ptr_a++) = (T)*(ptrs++); } } } break; } g_free(row); gimp_drawable_detach(drawable); img.move_to(images[l]); } return input_layers; } // Return the G'MIC command line needed to run the selected filter. //----------------------------------------------------------------- const char* get_commands_line(const bool preview) { const unsigned int filter = get_current_filter(), nbparams = get_filter_nbparams(filter); if (!filter) return 0; static CImg res; CImgList lres; switch (get_verbosity_mode()) { case 0: case 1: case 2: CImg("-v -99 -",8).move_to(lres); break; // Quiet or Verbose. case 3: case 4 : CImg("-",1).move_to(lres); break; // Very verbose. default: CImg("-debug -",8).move_to(lres); // Debug. } const CImg &command_item = (preview?gmic_preview_commands[filter]:gmic_commands[filter]); if (command_item) { lres.insert(command_item); if (nbparams) { lres[1].back() = ' '; for (unsigned int p = 0; p=2 && ss[0]=='\"' && ss[l-1]=='\"') { // Replace special characters in a string or a filename. ++ss; *(sd++) = '\"'; for (unsigned int i = 1; i(nparam,l+1).move_to(lres); } else CImg(ss,l+1).move_to(lres); lres.back().back() = ','; } } (res=lres>'x').back() = 0; } return res.data(); } // Set defaut zoom factor for preview of the current filter. //---------------------------------------------------------- void set_preview_factor() { const unsigned int filter = get_current_filter(); if (filter && gmic_preview_factors[filter] && GIMP_IS_PREVIEW(gui_preview)) { double factor = gmic_preview_factors(filter,0); if (factor>=0) { if (!factor) { // Compute factor so that 1:1 preview of the image is displayed. int _pw = 0, _ph = 0; gimp_preview_get_size(GIMP_PREVIEW(gui_preview),&_pw,&_ph); const float pw = (float)_pw, ph = (float)_ph, dw = (float)drawable_preview->width, dh = (float)drawable_preview->height; factor = std::sqrt((dw*dw+dh*dh)/(pw*pw+ph*ph)); } gimp_zoom_model_zoom(gimp_zoom_preview_get_model(GIMP_ZOOM_PREVIEW(gui_preview)),GIMP_ZOOM_TO,factor); } } } // Handle GUI event functions. //---------------------------- void create_parameters_gui(const bool); void process_image(const char *const); void process_preview(); // Secure function for invalidate preview. void _gimp_preview_invalidate() { computed_preview.assign(); if (GIMP_IS_PREVIEW(gui_preview) && gmic_drawable_is_valid(drawable_preview)) gimp_preview_invalidate(GIMP_PREVIEW(gui_preview)); else { if (GTK_IS_WIDGET(gui_preview)) gtk_widget_destroy(gui_preview); drawable_preview = gimp_drawable_get(gimp_image_get_active_drawable(image_id)); gui_preview = gimp_zoom_preview_new(drawable_preview); gtk_widget_show(gui_preview); gtk_box_pack_end(GTK_BOX(left_pane),gui_preview,true,true,0); g_signal_connect(gui_preview,"invalidated",G_CALLBACK(process_preview),0); } } // Handle preview resize event. void on_dialog_resized() { static int opw = 0, oph = 0; int pw = 0, ph = 0; if (GIMP_IS_PREVIEW(gui_preview)) { gimp_preview_get_size(GIMP_PREVIEW(gui_preview),&pw,&ph); if (!opw || !oph) { opw = pw; oph = ph; computed_preview.assign(); } else { if (pw!=opw || ph!=oph) { set_preview_factor(); opw = pw; oph = ph; computed_preview.assign(); } } } } // Handle widgets events related to parameter changes. void on_float_parameter_changed(GtkAdjustment *const adjustment, const void *const event_infos) { double value = 0; gimp_double_adjustment_update(adjustment,&value); char s_value[32] = { 0 }; cimg_snprintf(s_value,sizeof(s_value),"%g",value); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_value); _create_dialog_gui = true; } void on_int_parameter_changed(GtkAdjustment *const adjustment, const void *const event_infos) { int value = 0; gimp_int_adjustment_update(adjustment,&value); char s_value[32] = { 0 }; cimg_snprintf(s_value,sizeof(s_value),"%d",value); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_value); _create_dialog_gui = true; } void on_bool_parameter_changed(GtkCheckButton *const checkbutton, const void *const event_infos) { int value = 0; g_object_get(checkbutton,"active",&value,NULL); char s_value[4] = { 0 }; cimg_snprintf(s_value,sizeof(s_value),"%d",value?1:0); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_value); _create_dialog_gui = true; } void on_list_parameter_changed(GtkComboBox *const combobox, const void *const event_infos) { int value = 0; g_object_get(combobox,"active",&value,NULL); char s_value[32] = { 0 }; cimg_snprintf(s_value,sizeof(s_value),"%d",value); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_value); _create_dialog_gui = true; } void on_text_parameter_changed(const void *const event_infos) { GtkWidget *entry = *((GtkWidget**)event_infos+1); const char *const s_value = gtk_entry_get_text(GTK_ENTRY(entry)); char s_param[1024] = { 0 }; if (s_value && *s_value) { CImg _s_value = CImg::string(s_value); cimg_for(_s_value,ptr,char) if (*ptr=='\"') *ptr = _dquote; cimg_snprintf(s_param,sizeof(s_param),"\"%s\"",_s_value.data()); } else std::strcpy(s_param,"\"\""); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_param); _create_dialog_gui = true; } void on_xtext_parameter_changed(const void *const event_infos) { GtkWidget *text_view = *((GtkWidget**)event_infos+1); GtkTextBuffer *const text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); GtkTextIter it_start, it_end; gtk_text_buffer_get_bounds(text_buffer,&it_start,&it_end); const char *const s_value = gtk_text_buffer_get_text(text_buffer,&it_start,&it_end,false); char s_param[1024] = { 0 }; if (s_value && *s_value) { CImg _s_value = CImg::string(s_value); cimg_for(_s_value,ptr,char) if (*ptr=='\"') *ptr = _dquote; cimg_snprintf(s_param,sizeof(s_param),"\"%s\"",_s_value.data()); } else std::strcpy(s_param,"\"\""); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_param); _create_dialog_gui = true; } void on_file_parameter_changed(GtkFileChooser *const file_chooser, const void *const event_infos) { const char *const s_value = gtk_file_chooser_get_filename(file_chooser); char s_param[1024] = { 0 }; if (s_value && *s_value) cimg_snprintf(s_param,sizeof(s_param),"\"%s\"",s_value); else std::strcpy(s_param,"\"\""); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_param); _create_dialog_gui = true; } void on_color_parameter_changed(GtkColorButton *const color_button, const void *const event_infos) { GdkColor color; gtk_color_button_get_color(color_button,&color); char s_value[256] = { 0 }; if (gtk_color_button_get_use_alpha(color_button)) cimg_snprintf(s_value,sizeof(s_value),"%d,%d,%d,%d", color.red/257,color.green/257,color.blue/257,gtk_color_button_get_alpha(color_button)/257); else cimg_snprintf(s_value,sizeof(s_value),"%d,%d,%d", color.red/257,color.green/257,color.blue/257); set_filter_parameter(get_current_filter(),*(int*)event_infos,s_value); _create_dialog_gui = true; } // Handle responses to the dialog window buttons. void on_dialog_input_mode_changed(GtkComboBox *const combobox) { int value = 0; g_object_get(combobox,"active",&value,NULL); if (value<2) gtk_combo_box_set_active(combobox,value=3); set_input_mode((unsigned int)value); _gimp_preview_invalidate(); } void on_dialog_output_mode_changed(GtkComboBox *const combobox) { int value = 0; g_object_get(combobox,"active",&value,NULL); if (value<2) gtk_combo_box_set_active(combobox,value=2); set_output_mode((unsigned int)value); } void on_dialog_verbosity_mode_changed(GtkComboBox *const combobox) { int value = 0; g_object_get(combobox,"active",&value,NULL); if (value<2) gtk_combo_box_set_active(combobox,value=2); set_verbosity_mode((unsigned int)value); set_logfile(); _gimp_preview_invalidate(); } void on_dialog_preview_mode_changed(GtkComboBox *const combobox) { int value = 0; g_object_get(combobox,"active",&value,NULL); if (value<2) gtk_combo_box_set_active(combobox,value=2); set_preview_mode((unsigned int)value); _gimp_preview_invalidate(); } void on_dialog_maximize_button_clicked(GtkButton *const button) { static int ow = 0, oh = 0; GdkScreen* screen = gtk_window_get_screen(GTK_WINDOW(dialog_window)); int width = gdk_screen_get_width(screen), height = gdk_screen_get_height(screen); if (width>0 && height>0 && !ow && !oh) { gtk_window_get_size(GTK_WINDOW(dialog_window),&ow,&oh); #if cimg_OS==2 // Subtract the height of the taskbar on windows. RECT rect; HWND taskBar = FindWindow("Shell_traywnd",NULL); if (taskBar && GetWindowRect(taskBar,&rect)) height-=rect.bottom - rect.top; #endif if (height>0) gtk_window_resize(GTK_WINDOW(dialog_window),width,height); gtk_window_move(GTK_WINDOW(dialog_window),0,0); gtk_button_set_label(button,t("_Restore")); } else if (ow>0 && oh>0) { gtk_window_resize(GTK_WINDOW(dialog_window),ow,oh); ow = oh = 0; gtk_button_set_label(button,t("_Maximize")); } _gimp_preview_invalidate(); } void on_dialog_reset_clicked() { create_parameters_gui(true); _create_dialog_gui = true; _gimp_preview_invalidate(); } void on_dialog_cancel_clicked() { _create_dialog_gui = false; gtk_main_quit(); } void on_dialog_apply_clicked() { process_image(0); _create_dialog_gui = false; _gimp_preview_invalidate(); } void on_dialog_net_update_toggled(GtkToggleButton *const toggle_button) { set_net_update(gtk_toggle_button_get_active(toggle_button)); } void on_dialog_tree_mode_clicked(GtkWidget *const tree_view) { set_tree_mode(!get_tree_mode()); flush_tree_view(tree_view); } void on_dialog_add_fave_clicked(GtkWidget *const tree_view) { const unsigned int filter = get_current_filter(); gtk_widget_hide(relabel_hbox); gtk_widget_hide(fave_delete_button); if (filter) { char filename[1024] = { 0 }; cimg_snprintf(filename,sizeof(filename),"%s%c%sgmic_faves", get_conf_path(),cimg_file_separator,_gmic_file_prefix); std::FILE *file = std::fopen(filename,"wb"); if (file) { char basename[256] = { 0 }, label[256] = { 0 }; unsigned int ind = 0; std::strcpy(basename,gmic_entries[filter].data()); char *last_space = 0; for (char *p = basename; p; p = std::strchr(p+1,' ')) last_space = p; if (last_space>basename) { char sep = 0, end = 0; if (std::sscanf(last_space+1,"(%u%c%c",&ind,&sep,&end)==2 && sep==')') *last_space = 0; } std::strcpy(label,basename); cimglist_for(gmic_faves,l) { std::fprintf(file,"%s\n",gmic_faves[l].data()); if (!std::strcmp(label,gmic_entries[indice_faves+l].data())) std::sprintf(label,"%s (%u)",basename,++ind); } CImg entry = gmic_entries[filter]; for (char *p = std::strchr(label,'}'); p; p = std::strchr(p,'}')) *p = _rbrace; // Convert '}' if necessary. for (char *p = std::strchr(entry,'}'); p; p = std::strchr(p,'}')) *p = _rbrace; std::fprintf(file,"{%s}{%s}{%s}{%s}", label, entry.data(), gmic_commands[filter].data(), gmic_preview_commands[filter].data()); const unsigned int nbp = get_filter_nbparams(filter); for (unsigned int n = 0; n invalid_servers = update_filters(get_net_update()); if (invalid_servers) { if (get_verbosity_mode()) cimglist_for(invalid_servers,l) { std::fprintf(cimg::output(), "\n[gmic_gimp]./update/ Unable to reach filters source '%s'.\n", invalid_servers[l].data()); std::fflush(cimg::output()); } CImg::string(t(0)).move_to(invalid_servers,0); cimglist_for(invalid_servers,l) { CImg& server = invalid_servers[l]; if (l) { server.resize(2+server.width(),1,1,1,0,0,1); server[0] = '*'; server[1] = ' '; } if (l!=invalid_servers.width()-1) server.back() = '\n'; } const CImg error_message = invalid_servers>'x'; GtkWidget *const message = gtk_message_dialog_new_with_markup(0,GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK, "%s",error_message.data()); gtk_widget_show(message); gtk_dialog_run(GTK_DIALOG(message)); gtk_widget_destroy(message); } else reset_filters_parameters(); gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view),GTK_TREE_MODEL(tree_view_store)); flush_tree_view(tree_view); create_parameters_gui(true); _gimp_preview_invalidate(); } void on_filter_selected(GtkWidget *const tree_view) { GtkTreeSelection *const selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); GtkTreeIter iter; GtkTreeModel *model; unsigned int filter = 0; if (gtk_tree_selection_get_selected(selection,&model,&iter)) { gtk_tree_model_get(model,&iter,0,&filter,-1); const char *const treepath = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(tree_view_store),&iter); gimp_set_data("gmic_current_treepath",treepath,std::strlen(treepath)+1); } if (filter!=get_current_filter()) { gtk_widget_hide(relabel_hbox); gtk_widget_hide(fave_delete_button); set_current_filter(filter); create_parameters_gui(false); _create_dialog_gui = true; _gimp_preview_invalidate(); } } void _on_filter_doubleclicked(GtkWidget *const entry) { const unsigned int filter = get_current_filter(); cimg::unused(entry); gtk_widget_hide(relabel_hbox); gtk_widget_hide(fave_delete_button); if (filter>=indice_faves) { const char *const __label = gtk_entry_get_text(GTK_ENTRY(relabel_entry)); char *const label = g_markup_escape_text(__label,std::strlen(__label)); if (*label) { char filename[1024] = { 0 }; cimg_snprintf(filename,sizeof(filename),"%s%c%sgmic_faves", get_conf_path(),cimg_file_separator,_gmic_file_prefix); std::FILE *file = std::fopen(filename,"wb"); if (file) { const unsigned int _filter = filter - indice_faves; cimglist_for(gmic_faves,l) if (l!=(int)_filter) std::fprintf(file,"%s\n",gmic_faves[l].data()); else { CImg _label = CImg::string(label); for (char *p = std::strchr(_label,'}'); p; p = std::strchr(p,'}')) *p = _rbrace; // Convert '}' if necessary. std::fprintf(file,"{%s%s\n",_label.data(),std::strchr(gmic_faves[l].data(),'}')); } std::fclose(file); update_filters(false); } else if (get_verbosity_mode()) std::fprintf(cimg::output(), "\n[gmic_gimp]./error/ Unable to write fave file '%s'.\n", filename); gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view),GTK_TREE_MODEL(tree_view_store)); gimp_set_data("gmic_current_treepath","0",2); set_current_filter(0); flush_tree_view(tree_view); GtkTreePath *path = gtk_tree_path_new_from_string("0"); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(tree_view),path,NULL,FALSE,0,0); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); gtk_tree_selection_select_path(selection,path); gtk_tree_path_free(path); create_parameters_gui(false); } g_free(label); } } void on_filter_doubleclicked(GtkWidget *const tree_view) { const unsigned int filter = get_current_filter(); if (!filter) { // Expand/collapse folder. char current_path[64] = { 0 }; gimp_get_data("gmic_current_treepath",¤t_path); if (*current_path) { GtkTreePath *path = gtk_tree_path_new_from_string(current_path); const bool is_expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(tree_view),path); if (is_expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree_view),path); else gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view),path,false); gtk_tree_path_free(path); } } else if (filter>=indice_faves) { // Rename fave filter. is_block_preview = true; GtkWidget *const markup2ascii = gtk_label_new(0); gtk_label_set_markup(GTK_LABEL(markup2ascii),gmic_entries[filter].data()); gtk_entry_set_text(GTK_ENTRY(relabel_entry),gtk_label_get_text(GTK_LABEL(markup2ascii))); gtk_widget_destroy(markup2ascii); gtk_widget_show(relabel_hbox); gtk_widget_grab_focus(relabel_entry); } else on_dialog_add_fave_clicked(tree_view); // Add fave filter. } // Process image data with the G'MIC interpreter. //----------------------------------------------- // This structure stores the arguments required by the processing thread. struct st_process_thread { CImgList images; CImg error_message; bool is_thread, is_preview; unsigned int verbosity_mode; const char *commands_line; float progress; #if !defined(__MACOSX__) && !defined(__APPLE__) pthread_mutex_t is_running, wait_lock; pthread_cond_t wait_cond; pthread_t thread; #endif }; // Thread that runs the G'MIC interpreter. void *process_thread(void *arg) { st_process_thread &spt = *(st_process_thread*)arg; #if !defined(__MACOSX__) && !defined(__APPLE__) if (spt.is_thread) { pthread_mutex_lock(&spt.is_running); pthread_mutex_lock(&spt.wait_lock); pthread_cond_signal(&spt.wait_cond); pthread_mutex_unlock(&spt.wait_lock); } #endif try { if (spt.verbosity_mode) { CImg cl = CImg::string(spt.commands_line); std::fprintf(cimg::output(), "\n[gmic_gimp]./%s/ %s\n", spt.is_preview?"preview":"apply", cl.data()); std::fflush(cimg::output()); } CImgList images_names; gmic(spt.commands_line,spt.images,images_names,gmic_additional_commands,true,&spt.progress); } catch (gmic_exception &e) { spt.images.assign(); CImg::string(e.what()).move_to(spt.error_message); if (spt.verbosity_mode) { std::fprintf(cimg::output(), "\n[gmic_gimp]./error/ %s\n", spt.error_message.data()); std::fflush(cimg::output()); } } #if !defined(__MACOSX__) && !defined(__APPLE__) if (spt.is_thread) { pthread_mutex_unlock(&spt.is_running); pthread_exit(0); } #endif return 0; } // Process the selected image/layers. //------------------------------------ void process_image(const char *const commands_line) { if (!gimp_image_is_valid(image_id)) return; const unsigned int filter = get_current_filter(); if (!commands_line && !filter) return; const char *const _commands_line = commands_line?commands_line:get_commands_line(false); if (!_commands_line || std::strstr(_commands_line,"-_none_")) return; char new_label[256] = { 0 }; if (run_mode!=GIMP_RUN_NONINTERACTIVE) { GtkWidget *const markup2ascii = gtk_label_new(0); gtk_label_set_markup(GTK_LABEL(markup2ascii),gmic_entries[filter].data()); gimp_progress_init_printf(" G'MIC : %s...",gtk_label_get_text(GTK_LABEL(markup2ascii))); const char *const cl = _commands_line + (!std::strncmp(_commands_line,"-v -99 ",7) || !std::strncmp(_commands_line,"-debug ",7)?7:0); cimg_snprintf(new_label,sizeof(new_label),"[G'MIC] %s : %s",gtk_label_get_text(GTK_LABEL(markup2ascii)),cl); gtk_widget_destroy(markup2ascii); } else { cimg_snprintf(new_label,sizeof(new_label),"[G'MIC] : %s",_commands_line); gimp_progress_init_printf(" G'MIC : %s...",_commands_line); } // Get input layers for the chosen filter. st_process_thread spt; spt.is_preview = false; spt.commands_line = _commands_line; spt.verbosity_mode = get_verbosity_mode(); spt.progress = -1; const CImg layers = get_input_layers(spt.images); CImg dimensions(spt.images.size(),4); cimglist_for(spt.images,l) { const CImg& img = spt.images[l]; dimensions(l,0) = img.width(); dimensions(l,1) = img.height(); dimensions(l,2) = img.depth(); dimensions(l,3) = img.spectrum(); } // Create processing thread and wait for its completion. if (run_mode!=GIMP_RUN_NONINTERACTIVE) { #if !defined(__MACOSX__) && !defined(__APPLE__) spt.is_thread = true; pthread_mutex_init(&spt.is_running,0); pthread_mutex_init(&spt.wait_lock,0); pthread_cond_init(&spt.wait_cond,0); pthread_mutex_lock(&spt.wait_lock); pthread_create(&(spt.thread),0,process_thread,(void*)&spt); pthread_cond_wait(&spt.wait_cond,&spt.wait_lock); // Wait for the thread to lock the mutex. pthread_mutex_unlock(&spt.wait_lock); pthread_mutex_destroy(&spt.wait_lock); while (pthread_mutex_trylock(&spt.is_running)) { if (spt.progress>=0) gimp_progress_update(cimg::min(1.0,spt.progress/100.0)); else gimp_progress_pulse(); cimg::wait(350); } gimp_progress_update(1.0); pthread_join(spt.thread,0); pthread_mutex_unlock(&spt.is_running); pthread_mutex_destroy(&spt.is_running); #else gimp_progress_update(0.5); process_thread(&spt); gimp_progress_update(1.0); #endif } else { spt.is_thread = false; process_thread(&spt); } // Check that everything went fine, else display an error dialog. if (spt.error_message) { GtkWidget *const message = gtk_message_dialog_new(0,GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,"%s",spt.error_message.data()); gtk_widget_show(message); gtk_dialog_run(GTK_DIALOG(message)); gtk_widget_destroy(message); status = GIMP_PDB_CALLING_ERROR; } else { // Get output layers dimensions and check if input/output layers have compatible dimensions. unsigned int max_width = 0, max_height = 0, max_channels = 0; cimglist_for(spt.images,l) { if (spt.images[l].is_empty()) { spt.images.remove(l--); continue; } // Discard possible empty images. if (spt.images[l]._width>max_width) max_width = spt.images[l]._width; if (spt.images[l]._height>max_height) max_height = spt.images[l]._height; if (spt.images[l]._spectrum>max_channels) max_channels = spt.images[l]._spectrum; } bool is_compatible_dimensions = (spt.images.size()==layers._height); for (unsigned int p = 0; p& img = spt.images[p]; const bool source_is_alpha = (dimensions(p,3)==2 || dimensions(p,3)>=4), dest_is_alpha = (img.spectrum()==2 || img.spectrum()>=4); if (img.width()!=dimensions(p,0) || img.height()!=dimensions(p,1) || img.spectrum()>dimensions(p,3) || (dest_is_alpha && !source_is_alpha)) is_compatible_dimensions = false; } // Transfer the output layers back into GIMP. GimpPixelRgn region; gint x1, y1, x2, y2; const unsigned int output_mode = get_output_mode(); switch (output_mode) { case 0 : { // Output in 'Replace' mode. gimp_image_undo_group_start(image_id); if (is_compatible_dimensions) cimglist_for(spt.images,l) { // Direct replacement of the layer data. CImg &img = spt.images[l]; calibrate_image(img,dimensions(l,3),false); GimpDrawable *drawable = gimp_drawable_get(layers[l]); gimp_drawable_mask_bounds(drawable->drawable_id,&x1,&y1,&x2,&y2); gimp_pixel_rgn_init(®ion,drawable,x1,y1,x2-x1,y2-y1,true,true); convert_image_float2uchar(img); gimp_pixel_rgn_set_rect(®ion,(guchar*)img.data(),x1,y1,x2-x1,y2-y1); img.assign(); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(drawable->drawable_id,true); gimp_drawable_update(drawable->drawable_id,x1,y1,x2-x1,y2-y1); gimp_drawable_detach(drawable); } else { // Indirect replacement : create new layers. gimp_selection_none(image_id); #if GIMP_MINOR_VERSION<=6 const int layer_pos = gimp_image_get_layer_position(image_id,layers[0]); #else const int layer_pos = gimp_image_get_item_position(image_id,layers[0]); #endif for (unsigned int i = 0; i &img = spt.images[p]; if (gimp_image_base_type(image_id)==GIMP_GRAY) calibrate_image(img,(img.spectrum()==1 || img.spectrum()==3)?1:2,false); else calibrate_image(img,(img.spectrum()==1 || img.spectrum()==3)?3:4,false); gint layer_id = gimp_layer_new(image_id,new_label,img.width(),img.height(), img.spectrum()==1?GIMP_GRAY_IMAGE: img.spectrum()==2?GIMP_GRAYA_IMAGE: img.spectrum()==3?GIMP_RGB_IMAGE:GIMP_RGBA_IMAGE, 100.0,GIMP_NORMAL_MODE); #if GIMP_MINOR_VERSION<=6 gimp_image_add_layer(image_id,layer_id,layer_pos+p); #else gimp_image_insert_layer(image_id,layer_id,-1,layer_pos+p); #endif GimpDrawable *drawable = gimp_drawable_get(layer_id); gimp_pixel_rgn_init(®ion,drawable,0,0,drawable->width,drawable->height,true,true); convert_image_float2uchar(img); gimp_pixel_rgn_set_rect(®ion,(guchar*)img.data(),0,0,img.width(),img.height()); img.assign(); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(drawable->drawable_id,true); gimp_drawable_update(drawable->drawable_id,0,0,drawable->width,drawable->height); gimp_drawable_detach(drawable); } gimp_image_resize_to_layers(image_id); } gimp_image_undo_group_end(image_id); } break; case 1 : case 2 : { // Output in 'New layer(s)' mode. gimp_image_undo_group_start(image_id); gimp_selection_none(image_id); const gint active_layer_id = gimp_image_get_active_layer(image_id); gint layer_id = 0; cimglist_for(spt.images,p) { CImg &img = spt.images[p]; if (gimp_image_base_type(image_id)==GIMP_GRAY) calibrate_image(img,(img.spectrum()==1 || img.spectrum()==3)?1:2,false); else calibrate_image(img,(img.spectrum()==1 || img.spectrum()==3)?3:4,false); layer_id = gimp_layer_new(image_id,new_label,img.width(),img.height(), img.spectrum()==1?GIMP_GRAY_IMAGE: img.spectrum()==2?GIMP_GRAYA_IMAGE: img.spectrum()==3?GIMP_RGB_IMAGE:GIMP_RGBA_IMAGE, 100.0,GIMP_NORMAL_MODE); #if GIMP_MINOR_VERSION<=6 gimp_image_add_layer(image_id,layer_id,p); #else gimp_image_insert_layer(image_id,layer_id,-1,p); #endif GimpDrawable *drawable = gimp_drawable_get(layer_id); gimp_pixel_rgn_init(®ion,drawable,0,0,drawable->width,drawable->height,true,true); convert_image_float2uchar(img); gimp_pixel_rgn_set_rect(®ion,(guchar*)img.data(),0,0,img.width(),img.height()); img.assign(); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(drawable->drawable_id,true); gimp_drawable_update(drawable->drawable_id,0,0,drawable->width,drawable->height); gimp_drawable_detach(drawable); } gimp_image_resize_to_layers(image_id); if (output_mode==1) gimp_image_set_active_layer(image_id,active_layer_id); else gtk_widget_destroy(gui_preview); // Will force the preview to refresh on the new active layer. gimp_image_undo_group_end(image_id); } break; default : { // Output in 'New image' mode. if (spt.images.size()) { const int nimage_id = gimp_image_new(max_width,max_height,max_channels<=2?GIMP_GRAY:GIMP_RGB); gimp_image_undo_group_start(nimage_id); cimglist_for(spt.images,p) { CImg &img = spt.images[p]; if (gimp_image_base_type(nimage_id)!=GIMP_GRAY) calibrate_image(img,(img.spectrum()==1 || img.spectrum()==3)?3:4,false); gint layer_id = gimp_layer_new(nimage_id,new_label,img.width(),img.height(), img.spectrum()==1?GIMP_GRAY_IMAGE: img.spectrum()==2?GIMP_GRAYA_IMAGE: img.spectrum()==3?GIMP_RGB_IMAGE:GIMP_RGBA_IMAGE, 100.0,GIMP_NORMAL_MODE); #if GIMP_MINOR_VERSION<=6 gimp_image_add_layer(nimage_id,layer_id,p); #else gimp_image_insert_layer(nimage_id,layer_id,-1,p); #endif GimpDrawable *drawable = gimp_drawable_get(layer_id); GimpPixelRgn dest_region; gimp_pixel_rgn_init(&dest_region,drawable,0,0,drawable->width,drawable->height,true,true); convert_image_float2uchar(img); gimp_pixel_rgn_set_rect(&dest_region,(guchar*)img.data(),0,0,img.width(),img.height()); img.assign(); gimp_drawable_flush(drawable); gimp_drawable_merge_shadow(drawable->drawable_id,true); gimp_drawable_update(drawable->drawable_id,0,0,drawable->width,drawable->height); gimp_drawable_detach(drawable); } gimp_display_new(nimage_id); gimp_image_undo_group_end(nimage_id); } } } } if (run_mode!=GIMP_RUN_NONINTERACTIVE) { gimp_progress_end(); gimp_displays_flush(); } } // Process the preview image. //--------------------------- void process_preview() { if (is_block_preview) { is_block_preview = false; return; } if (!gimp_image_is_valid(image_id)) return; const unsigned int filter = get_current_filter(); if (!filter) return; const char *const commands_line = get_commands_line(true); if (!commands_line || std::strstr(commands_line,"-_none_")) return; int w, h, channels; guchar *const ptr0 = gimp_zoom_preview_get_source(GIMP_ZOOM_PREVIEW(gui_preview),&w,&h,&channels); static int _xp = -1, _yp = -1; int xp, yp; gimp_preview_get_position(GIMP_PREVIEW(gui_preview),&xp,&yp); if (xp!=_xp || _yp!=yp) { _xp = xp; _yp = yp; computed_preview.assign(); } if (!computed_preview) { // Get input layers for the chosen filter and convert then to the preview size if necessary. st_process_thread spt; spt.is_preview = true; spt.is_thread = false; spt.commands_line = commands_line; spt.verbosity_mode = get_verbosity_mode(); spt.progress = -1; const unsigned int input_mode = get_input_mode(); int nb_layers = 0, *layers = gimp_image_get_layers(image_id,&nb_layers); guchar *ptrs = ptr0; if (nb_layers && input_mode) { if (input_mode==1 || (input_mode==2 && nb_layers==1) || (input_mode==3 && nb_layers==1 && gimp_drawable_get_visible(layers[0])) || (input_mode==4 && nb_layers==1 && !gimp_drawable_get_visible(layers[0])) || (input_mode==5 && nb_layers==1)) { // If only one input layer, use the default thumbnail provided by GIMP. spt.images.assign(1,w,h,1,channels); const int wh = w*h; switch (channels) { case 1 : { float *ptr_r = spt.images[0].data(0,0,0,0); for (int xy = 0; xy images_uchar; get_input_layers(images_uchar); const double factor = gimp_zoom_preview_get_factor(GIMP_ZOOM_PREVIEW(gui_preview)); int xp, yp; gimp_preview_get_position(GIMP_PREVIEW(gui_preview),&xp,&yp); spt.images.assign(images_uchar.size()); cimglist_for(images_uchar,l) { const int cw = images_uchar[l].width(), ch = images_uchar[l].height(), x0 = (int)(xp/factor)*cw/w, y0 = (int)(yp/factor)*ch/h, x1 = (int)((xp+w)/factor)*cw/w - 1, y1 = (int)((yp+h)/factor)*ch/h - 1; images_uchar[l].get_crop(x0,y0,x1,y1).resize(w,h,1,-100).move_to(spt.images[l]); images_uchar[l].assign(); } } } // Run G'MIC. process_thread(&spt); if (spt.error_message) { const float white[] = { 255,255,255 }; spt.images.assign(1).back().fill(0).draw_text(0,0," Preview \n error ",white,0,1,57). resize(-100,-100,1,4).get_shared_channel(3).dilate(5); spt.images[0].resize(w,h,1,4,0,0,0.5,0.5); } // Transfer the output layers back into GIMP preview. computed_preview.assign(); switch (get_preview_mode()) { case 0 : // Preview 1st layer if (spt.images && spt.images.size()>0) spt.images[0].move_to(computed_preview); calibrate_image(computed_preview,channels,true); break; case 1 : // Preview 2nd layer if (spt.images && spt.images.size()>1) spt.images[1].move_to(computed_preview); calibrate_image(computed_preview,channels,true); break; case 2 : // Preview 3rd layer if (spt.images && spt.images.size()>2) spt.images[2].move_to(computed_preview); calibrate_image(computed_preview,channels,true); break; case 3 : // Preview 4th layer if (spt.images && spt.images.size()>3) spt.images[3].move_to(computed_preview); calibrate_image(computed_preview,channels,true); break; case 4 : { // Preview 1st->2nd layers if (spt.images.size()>2) spt.images.remove(2,spt.images.size()-1); cimglist_for(spt.images,l) calibrate_image(spt.images[l],channels,true); (spt.images>'x').move_to(computed_preview); } break; case 5 : { // Preview 1st->3nd layers if (spt.images.size()>3) spt.images.remove(3,spt.images.size()-1); cimglist_for(spt.images,l) calibrate_image(spt.images[l],channels,true); (spt.images>'x').move_to(computed_preview); } break; case 6 : { // Preview 1st->4nd layers if (spt.images.size()>4) spt.images.remove(4,spt.images.size()-1); cimglist_for(spt.images,l) calibrate_image(spt.images[l],channels,true); (spt.images>'x').move_to(computed_preview); } break; default : // Preview all layers cimglist_for(spt.images,l) calibrate_image(spt.images[l],channels,true); (spt.images>'x').move_to(computed_preview); } spt.images.assign(); if (!computed_preview) { computed_preview.assign(w,h,1,4,0); calibrate_image(computed_preview,channels,true); } if (computed_preview.width()>computed_preview.height()) { const unsigned int _nh = computed_preview._height*w/computed_preview._width, nh = _nh?_nh:1; computed_preview.resize(w,nh,1,-100,2); } else { const unsigned int _nw = computed_preview._width*h/computed_preview._height, nw = _nw?_nw:1; computed_preview.resize(nw,h,1,-100,2); } if (computed_preview.width()!=w || computed_preview.height()!=h) computed_preview.resize(w,h,1,-100,0,0,0.5,0.5); convert_image_float2uchar(computed_preview); computed_preview.channel(0); } std::memcpy(ptr0,computed_preview.data(),w*h*channels*sizeof(unsigned char)); gimp_preview_draw_buffer(GIMP_PREVIEW(gui_preview),ptr0,w*channels); g_free(ptr0); } // Create the parameters GUI for the chosen filter. //-------------------------------------------------- void create_parameters_gui(const bool reset_params) { const unsigned int filter = get_current_filter(); // Remove existing table in the parameters frame if necessary. GtkWidget *const child = GTK_WIDGET(gtk_bin_get_child(GTK_BIN(right_frame))); if (child) gtk_container_remove(GTK_CONTAINER(right_frame),child); // Create new table for the parameters frame. GtkWidget *table = 0; if (!filter) { // No filter selected -> 1x1 table with default message. table = gtk_table_new(1,1,false); gtk_widget_show(table); GtkWidget *const label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label),t("Select a filter...")); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,1,0,1, (GtkAttachOptions)(GTK_EXPAND),(GtkAttachOptions)(GTK_EXPAND),0,0); gtk_misc_set_alignment (GTK_MISC(label),0,0.5); gtk_frame_set_label(GTK_FRAME(right_frame),NULL); } else { // Filter selected -> Build the table for setting the parameters. char s_label[256] = { 0 }; cimg_snprintf(s_label,sizeof(s_label)," %s : ",gmic_entries[filter].data()); GtkWidget *const frame_title = gtk_label_new(NULL); gtk_widget_show(frame_title); gtk_label_set_markup(GTK_LABEL(frame_title),s_label); gtk_frame_set_label_widget(GTK_FRAME(right_frame),frame_title); // Count number of filter arguments. char argument_name[256] = { 0 }, _argument_type[32] = { 0 }, argument_arg[4096] = { 0 }; unsigned int nb_arguments = 0; for (const char *argument = gmic_arguments[filter].data(); *argument; ) { int err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-z](%4095[^)]", argument_name,_argument_type,&(argument_arg[0]=0)); if (err!=3) err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-z]{%4095[^}]", argument_name,_argument_type,argument_arg); if (err!=3) err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-z][%4095[^]]", argument_name,_argument_type,argument_arg); if (err>=2) { argument += std::strlen(argument_name) + std::strlen(_argument_type) + std::strlen(argument_arg) + 3; if (*argument) ++argument; ++nb_arguments; } else break; } if (!nb_arguments) { // Filter requires no parameters -> 1x1 table with default message. table = gtk_table_new(1,1,false); gtk_widget_show(table); GtkWidget *label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label),t("No parameters to set...")); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,1,0,1, (GtkAttachOptions)(GTK_EXPAND),(GtkAttachOptions)(GTK_EXPAND),0,0); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); if (event_infos) delete[] event_infos; event_infos = 0; set_filter_nbparams(filter,0); } else { // Filter requires parameters -> Create parameters table. // Create new table for putting parameters inside. table = gtk_table_new(nb_arguments,3,false); gtk_widget_show(table); gtk_table_set_row_spacings(GTK_TABLE(table),6); gtk_table_set_col_spacings(GTK_TABLE(table),6); gtk_container_set_border_width(GTK_CONTAINER(table),8); // Parse arguments list and add recognized one to the table. if (event_infos) delete[] event_infos; event_infos = new void*[2*nb_arguments]; unsigned int current_argument = 0, current_table_line = 0; const bool is_fave = filter>=indice_faves; for (const char *argument = gmic_arguments[filter].data(); *argument; ) { int err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-Z_](%4095[^)]", argument_name,_argument_type,&(argument_arg[0]=0)); if (err!=3) err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-Z_][%4095[^]]", argument_name,_argument_type,argument_arg); if (err!=3) err = std::sscanf(argument,"%4095[^=]=%4095[ a-zA-Z_]{%4095[^}]", argument_name,_argument_type,argument_arg); if (err>=2) { argument += std::strlen(argument_name) + std::strlen(_argument_type) + std::strlen(argument_arg) + 3; if (*argument) ++argument; cimg::strpare(argument_name,' ',false,true); cimg::strpare(argument_name,'\"',true); cimg::strunescape(argument_name); cimg::strpare(_argument_type,' ',false,true); cimg::strpare(argument_arg,' ',false,true); const bool is_silent_argument = (*_argument_type=='_'); char *const argument_type = _argument_type + (is_silent_argument?1:0), *const argument_value = get_filter_parameter(filter,current_argument), *const argument_fave = get_fave_parameter(filter,current_argument); // Check for a float-valued argument. bool found_valid_argument = false; if (!found_valid_argument && !cimg::strcasecmp(argument_type,"float")) { float value = 0, min_value = 0, max_value = 100; std::setlocale(LC_NUMERIC,"C"); std::sscanf(argument_arg,"%f%*c%f%*c%f",&value,&min_value,&max_value); if (is_fave) std::sscanf(argument_fave,"%f",&value); if (!reset_params) std::sscanf(argument_value,"%f",&value); GtkObject *const scale = gimp_scale_entry_new(GTK_TABLE(table),0,(int)current_table_line,argument_name,50,6, (double)value,(double)min_value,(double)max_value, (double)(max_value-min_value)/100, (double)(max_value-min_value)/20, 2,true,0,0,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_float_parameter_changed(GTK_ADJUSTMENT(scale),event_infos+2*current_argument); g_signal_connect(scale,"value_changed",G_CALLBACK(on_float_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(scale,"value_changed",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for an int-valued argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"int")) { float value = 0, min_value = 0, max_value = 100; std::setlocale(LC_NUMERIC,"C"); std::sscanf(argument_arg,"%f%*c%f%*c%f",&value,&min_value,&max_value); if (is_fave) std::sscanf(argument_fave,"%f",&value); if (!reset_params) std::sscanf(argument_value,"%f",&value); GtkObject *const scale = gimp_scale_entry_new(GTK_TABLE(table),0,(int)current_table_line,argument_name,50,6, (double)(int)cimg::round(value,1.0f), (double)(int)cimg::round(min_value,1.0f), (double)(int)cimg::round(max_value,1.0f), (double)1, (double)cimg::max(1.0,cimg::round((max_value-min_value)/20,1,1)), 0,true,0,0,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_int_parameter_changed(GTK_ADJUSTMENT(scale),event_infos+2*current_argument); g_signal_connect(scale,"value_changed",G_CALLBACK(on_int_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(scale,"value_changed",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for a bool-valued argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"bool")) { cimg::strpare(argument_arg,' ',false,true); cimg::strpare(argument_arg,'\"',true); bool value = !(!*argument_arg || !cimg::strcasecmp(argument_arg,"false") || (argument_arg[0]=='0' && argument_arg[1]==0)); if (is_fave && *argument_fave) value = !(!cimg::strcasecmp(argument_fave,"false") || (argument_fave[0]=='0' && argument_fave[1]==0)); if (!reset_params && *argument_value) value = !(!cimg::strcasecmp(argument_value,"false") || (argument_value[0]=='0' && argument_value[1]==0)); GtkWidget *const checkbutton = gtk_check_button_new_with_label(argument_name); gtk_widget_show(checkbutton); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton),value); gtk_table_attach(GTK_TABLE(table),checkbutton,0,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),GTK_SHRINK,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_bool_parameter_changed(GTK_CHECK_BUTTON(checkbutton),event_infos+2*current_argument); g_signal_connect(checkbutton,"toggled",G_CALLBACK(on_bool_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(checkbutton,"toggled",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for a choice-valued argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"choice")) { GtkWidget *const label = gtk_label_new(argument_name); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,1,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); GtkWidget *const combobox = gtk_combo_box_new_text(); gtk_widget_show(combobox); char s_entry[256] = { 0 }, end = 0; int err = 0; unsigned int value = 0; const char *entries = argument_arg; if (std::sscanf(entries,"%u",&value)==1) entries+=cimg_snprintf(s_entry,sizeof(s_entry),"%u",value) + 1; while (*entries) { if ((err = std::sscanf(entries,"%4095[^,]%c",s_entry,&end))>0) { entries += std::strlen(s_entry) + (err==2?1:0); cimg::strpare(s_entry,' ',false,true); cimg::strpare(s_entry,'\"',true); gtk_combo_box_append_text(GTK_COMBO_BOX(combobox),s_entry); } else break; } if (is_fave) std::sscanf(argument_fave,"%u",&value); if (!reset_params) std::sscanf(argument_value,"%u",&value); gtk_combo_box_set_active(GTK_COMBO_BOX(combobox),value); gtk_table_attach(GTK_TABLE(table),combobox,1,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),GTK_FILL,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_list_parameter_changed(GTK_COMBO_BOX(combobox),event_infos+2*current_argument); g_signal_connect(combobox,"changed",G_CALLBACK(on_list_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(combobox,"changed",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for a single or multi-line text-valued argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"text")) { int line_number = 0; char sep = 0; if (std::sscanf(argument_arg,"%d%c",&line_number,&sep)==2 && sep==',' && line_number==1) { // Multi-line entry GtkWidget *const frame = gtk_frame_new(NULL); gtk_widget_show(frame); gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_IN); gtk_container_set_border_width(GTK_CONTAINER(frame),4); GtkWidget *const hbox = gtk_hbox_new(false,0); gtk_widget_show(hbox); char s_label[256] = { 0 }; cimg_snprintf(s_label,sizeof(s_label)," %s : ",argument_name); GtkWidget *const label = gtk_label_new(s_label); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox),label,false,false,0); GtkWidget *const button = gtk_button_new_with_label(t("Update")); gtk_widget_show(button); gtk_box_pack_start(GTK_BOX(hbox),button,false,false,0); gtk_frame_set_label_widget(GTK_FRAME(frame),hbox); GtkWidget *const alignment2 = gtk_alignment_new(0,0,1,1); gtk_widget_show(alignment2); gtk_alignment_set_padding(GTK_ALIGNMENT(alignment2),3,3,3,3); gtk_container_add(GTK_CONTAINER(frame),alignment2); GtkWidget *const view = gtk_text_view_new(); gtk_widget_show(view); gtk_text_view_set_editable(GTK_TEXT_VIEW(view),true); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view),8); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(view),8); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view),GTK_WRAP_CHAR); gtk_container_add(GTK_CONTAINER(alignment2),view); GtkTextBuffer *const buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); char *value = std::strchr(argument_arg,',') + 1; if (is_fave) value = argument_fave; if (!reset_params && *argument_value) value = argument_value; else if (!is_fave) cimg::strunescape(value); cimg::strpare(value,' ',false,true); cimg::strpare(value,'\"',true); for (char *p = value; *p; ++p) if (*p==_dquote) *p='\"'; gtk_text_buffer_set_text(buffer,value,-1); gtk_table_attach(GTK_TABLE(table),frame,0,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),(GtkAttachOptions)0,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)view; on_xtext_parameter_changed(event_infos+2*current_argument); g_signal_connect_swapped(button,"clicked",G_CALLBACK(on_xtext_parameter_changed), event_infos+2*current_argument); g_signal_connect_swapped(view,"key-release-event",G_CALLBACK(on_xtext_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(button,"clicked",G_CALLBACK(_gimp_preview_invalidate),0); } else { // Single-line entry GtkWidget *const label = gtk_label_new(argument_name); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,1,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); GtkWidget *const entry = gtk_entry_new_with_max_length(1023); gtk_widget_show(entry); char *value = (line_number!=0 || sep!=',')?argument_arg:(std::strchr(argument_arg,',') + 1); if (is_fave) value = argument_fave; if (!reset_params && *argument_value) value = argument_value; cimg::strpare(value,' ',false,true); cimg::strpare(value,'\"',true); for (char *p = value; *p; ++p) if (*p==_dquote) *p='\"'; gtk_entry_set_text(GTK_ENTRY(entry),value); gtk_table_attach(GTK_TABLE(table),entry,1,2,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),(GtkAttachOptions)0,0,0); GtkWidget *const button = gtk_button_new_with_label(t("Update")); gtk_widget_show(button); gtk_table_attach(GTK_TABLE(table),button,2,3,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)entry; on_text_parameter_changed(event_infos+2*current_argument); g_signal_connect_swapped(button,"clicked",G_CALLBACK(on_text_parameter_changed), event_infos+2*current_argument); g_signal_connect_swapped(entry,"changed",G_CALLBACK(on_text_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) { g_signal_connect(button,"clicked",G_CALLBACK(_gimp_preview_invalidate),0); g_signal_connect(entry,"activate",G_CALLBACK(_gimp_preview_invalidate),0); } } found_valid_argument = true; ++current_argument; } // Check for a multi-line text-valued argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"xtext")) { } // Check for a filename or folder name argument. if (!found_valid_argument && (!cimg::strcasecmp(argument_type,"file") || !cimg::strcasecmp(argument_type,"folder"))) { GtkWidget *const label = gtk_label_new(argument_name); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,1,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); GtkWidget *const file_chooser = gtk_file_chooser_button_new(argument_name, cimg::uncase(argument_type[1])=='i'? GTK_FILE_CHOOSER_ACTION_OPEN: GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_widget_show(file_chooser); char *value = argument_arg; if (is_fave) value = argument_fave; if (!reset_params && *argument_value) value = argument_value; cimg::strpare(value,' ',false,true); cimg::strpare(value,'\"',true); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(file_chooser),value); gtk_table_attach(GTK_TABLE(table),file_chooser,1,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),(GtkAttachOptions)0,0,0); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_file_parameter_changed(GTK_FILE_CHOOSER(file_chooser),event_infos+2*current_argument); g_signal_connect(file_chooser,"selection-changed",G_CALLBACK(on_file_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(file_chooser,"selection-changed",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for a color argument. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"color")) { GtkWidget *const label = gtk_label_new(argument_name); gtk_widget_show(label); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); gtk_table_attach(GTK_TABLE(table),label,0,1,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); GtkWidget *const hbox = gtk_hbox_new(false,6); gtk_widget_show(hbox); gtk_table_attach(GTK_TABLE(table),hbox,1,2,(int)current_table_line,(int)current_table_line+1, GTK_FILL,GTK_SHRINK,0,0); GtkWidget *const color_chooser = gtk_color_button_new(); gtk_widget_show(color_chooser); gtk_color_button_set_title(GTK_COLOR_BUTTON(color_chooser),argument_name); gtk_button_set_alignment(GTK_BUTTON(color_chooser),0,0.5); gtk_box_pack_start(GTK_BOX(hbox),color_chooser,false,false,0); float red = 0, green = 0, blue = 0, alpha = 255; const int err = std::sscanf(argument_arg,"%f%*c%f%*c%f%*c%f",&red,&green,&blue,&alpha); if (is_fave) std::sscanf(argument_fave,"%f%*c%f%*c%f%*c%f",&red,&green,&blue,&alpha); if (!reset_params) std::sscanf(argument_value,"%f%*c%f%*c%f%*c%f",&red,&green,&blue,&alpha); red = red<0?0:red>255?255:red; green = green<0?0:green>255?255:green; blue = blue<0?0:blue>255?255:blue; GdkColor color; color.pixel = 0; color.red = (unsigned int)(red*257); color.green = (unsigned int)(green*257); color.blue = (unsigned int)(blue*257); gtk_color_button_set_color(GTK_COLOR_BUTTON(color_chooser),&color); if (err==4) { gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(color_chooser),true); gtk_color_button_set_alpha(GTK_COLOR_BUTTON(color_chooser),(unsigned int)(alpha*257)); } else gtk_color_button_set_use_alpha(GTK_COLOR_BUTTON(color_chooser),false); event_infos[2*current_argument] = (void*)(unsigned long)current_argument; event_infos[2*current_argument+1] = (void*)0; on_color_parameter_changed(GTK_COLOR_BUTTON(color_chooser),event_infos+2*current_argument); g_signal_connect(color_chooser,"color-set",G_CALLBACK(on_color_parameter_changed), event_infos+2*current_argument); if (!is_silent_argument) g_signal_connect(color_chooser,"color-set",G_CALLBACK(_gimp_preview_invalidate),0); found_valid_argument = true; ++current_argument; } // Check for a note. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"note")) { cimg::strpare(argument_arg,' ',false,true); cimg::strpare(argument_arg,'\"',true); cimg::strunescape(argument_arg); GtkWidget *const label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label),argument_arg); gtk_label_set_line_wrap(GTK_LABEL(label),true); gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table),label,0,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),GTK_SHRINK,0,0); gtk_misc_set_alignment(GTK_MISC(label),0,0.5); found_valid_argument = true; } // Check for a link. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"link")) { char label[1024] = { 0 }, url[1024] = { 0 }; float alignment = 0.5f; switch (std::sscanf(argument_arg,"%f,%1023[^,],%1023s",&alignment,label,url)) { case 2 : std::strcpy(url,label); break; case 1 : cimg_snprintf(url,sizeof(url),"%g",alignment); break; case 0 : if (std::sscanf(argument_arg,"%1023[^,],%1023s",label,url)==1) std::strcpy(url,label); break; } cimg::strpare(label,' ',false,true); cimg::strpare(label,'\"',true); cimg::strunescape(label); cimg::strpare(url,' ',false,true); cimg::strpare(url,'\"',true); GtkWidget *const link = gtk_link_button_new_with_label(url,label); gtk_widget_show(link); gtk_button_set_alignment(GTK_BUTTON(link),alignment,0.5); gtk_table_attach(GTK_TABLE(table),link,0,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),GTK_SHRINK,0,0); found_valid_argument = true; } // Check for an horizontal separator. if (!found_valid_argument && !cimg::strcasecmp(argument_type,"separator")) { GtkWidget *const separator = gtk_hseparator_new(); gtk_widget_show(separator); gtk_table_attach(GTK_TABLE(table),separator,0,3,(int)current_table_line,(int)current_table_line+1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),GTK_SHRINK,0,0); found_valid_argument = true; } if (!found_valid_argument) { if (get_verbosity_mode()) { std::fprintf(cimg::output(), "\n[gmic_gimp]./error/ Found invalid parameter type '%s' for argument '%s'.\n", argument_type,argument_name); std::fflush(cimg::output()); } } else ++current_table_line; } else break; } set_filter_nbparams(filter,current_argument); } } gtk_container_add(GTK_CONTAINER(right_frame),table); // Take care of the size of the parameter table. GtkRequisition requisition; gtk_widget_size_request(table,&requisition); gtk_widget_set_size_request(right_pane,cimg::max(450,requisition.width),-1); gtk_widget_show(dialog_window); set_preview_factor(); // Set correct icon for fave button. if (fave_stock) gtk_widget_destroy(fave_stock); fave_stock = gtk_button_new_from_stock(!filter?GTK_STOCK_ABOUT:GTK_STOCK_ADD); GtkWidget *const fave_image = gtk_button_get_image(GTK_BUTTON(fave_stock)); gtk_button_set_image(GTK_BUTTON(fave_add_button),fave_image); gtk_widget_show(fave_add_button); if (filter && filter>=indice_faves) gtk_widget_show(fave_delete_button); else gtk_widget_hide(fave_delete_button); } // Create main plug-in dialog window and wait for events. //------------------------------------------------------- bool create_dialog_gui() { // Init GUI_specific variables _create_dialog_gui = true; gimp_ui_init("gmic",true); event_infos = 0; // Create main dialog window with buttons. char dialog_title[64] = { 0 }; cimg_snprintf(dialog_title,sizeof(dialog_title),"%s %u bits - %d.%d.%d.%d%s", t("G'MIC for GIMP"), sizeof(void*)==8?64:32, gmic_version/1000,(gmic_version/100)%10,(gmic_version/10)%10,gmic_version%10, gmic_is_beta?" (beta)":""); dialog_window = gimp_dialog_new(dialog_title,"gmic",0,(GtkDialogFlags)0,0,0,NULL); gimp_window_set_transient(GTK_WINDOW(dialog_window)); g_signal_connect(dialog_window,"close",G_CALLBACK(on_dialog_cancel_clicked),0); g_signal_connect(dialog_window,"delete-event",G_CALLBACK(on_dialog_cancel_clicked),0); GtkWidget *const cancel_button = gtk_dialog_add_button(GTK_DIALOG(dialog_window), GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL); g_signal_connect(cancel_button,"clicked",G_CALLBACK(on_dialog_cancel_clicked),0); GtkWidget *const reset_button = gtk_dialog_add_button(GTK_DIALOG(dialog_window),GIMP_STOCK_RESET,1); g_signal_connect(reset_button,"clicked",G_CALLBACK(on_dialog_reset_clicked),0); GtkWidget *const maximize_button = gtk_dialog_add_button(GTK_DIALOG(dialog_window),t("_Maximize"),1); g_signal_connect(maximize_button,"clicked",G_CALLBACK(on_dialog_maximize_button_clicked),0); GtkWidget *apply_button = gtk_dialog_add_button(GTK_DIALOG(dialog_window), GTK_STOCK_APPLY,GTK_RESPONSE_APPLY); g_signal_connect(apply_button,"clicked",G_CALLBACK(on_dialog_apply_clicked),0); GtkWidget *ok_button = gtk_dialog_add_button(GTK_DIALOG(dialog_window), GTK_STOCK_OK,GTK_RESPONSE_OK); g_signal_connect(ok_button,"clicked",G_CALLBACK(gtk_main_quit),0); GtkWidget *const dialog_hpaned = gtk_hpaned_new(); gtk_widget_show(dialog_hpaned); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_window)->vbox),dialog_hpaned); // Create the left pane. left_pane = gtk_vbox_new(false,4); gtk_widget_show(left_pane); gtk_paned_pack1(GTK_PANED(dialog_hpaned),left_pane,true,false); GtkWidget *const image_align = gtk_alignment_new(0.1,0,0,0); gtk_widget_show(image_align); gtk_box_pack_end(GTK_BOX(left_pane),image_align,false,false,0); const unsigned int logo_width = 102, logo_height = 22; GdkPixbuf *const pixbuf = gdk_pixbuf_new_from_data(data_gmic_logo,GDK_COLORSPACE_RGB, false,8,logo_width,logo_height,3*logo_width,0,0); GtkWidget *const image = gtk_image_new_from_pixbuf(pixbuf); gtk_widget_show(image); gtk_container_add(GTK_CONTAINER(image_align),image); GtkWidget *const left_align = gtk_alignment_new(0,0,0,0); gtk_widget_show(left_align); gtk_box_pack_end(GTK_BOX(left_pane),left_align,false,false,0); GtkWidget *const left_frame = gtk_frame_new(NULL); gtk_widget_show(left_frame); gtk_container_set_border_width(GTK_CONTAINER(left_frame),4); gtk_container_add(GTK_CONTAINER(left_align),left_frame); GtkWidget *const frame_title = gtk_label_new(NULL); gtk_widget_show(frame_title); gtk_label_set_markup(GTK_LABEL(frame_title),t(" Input / Output : ")); gtk_frame_set_label_widget(GTK_FRAME(left_frame),frame_title); GtkWidget *const left_table = gtk_table_new(4,1,false); gtk_widget_show(left_table); gtk_table_set_row_spacings(GTK_TABLE(left_table),6); gtk_table_set_col_spacings(GTK_TABLE(left_table),6); gtk_container_set_border_width(GTK_CONTAINER(left_table),8); gtk_container_add(GTK_CONTAINER(left_frame),left_table); GtkWidget *const input_combobox = gtk_combo_box_new_text(); gtk_widget_show(input_combobox); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("Input layers...")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),"-"); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("None")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("Active (default)")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("Active & below")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("Active & above")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All visibles")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All invisibles")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All visibles (decr.)")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All invisibles (decr.)")); gtk_combo_box_append_text(GTK_COMBO_BOX(input_combobox),t("All (decr.)")); gtk_combo_box_set_active(GTK_COMBO_BOX(input_combobox),get_input_mode(false)); gtk_table_attach_defaults(GTK_TABLE(left_table),input_combobox,0,1,0,1); g_signal_connect(input_combobox,"changed",G_CALLBACK(on_dialog_input_mode_changed),0); GtkWidget *const output_combobox = gtk_combo_box_new_text(); gtk_widget_show(output_combobox); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),t("Output mode...")); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),"-"); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),t("In place (default)")); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),t("New layer(s)")); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),t("New active layer(s)")); gtk_combo_box_append_text(GTK_COMBO_BOX(output_combobox),t("New image")); gtk_combo_box_set_active(GTK_COMBO_BOX(output_combobox),get_output_mode(false)); gtk_table_attach_defaults(GTK_TABLE(left_table),output_combobox,0,1,1,2); g_signal_connect(output_combobox,"changed",G_CALLBACK(on_dialog_output_mode_changed),0); GtkWidget *const verbosity_combobox = gtk_combo_box_new_text(); gtk_widget_show(verbosity_combobox); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Output messages...")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),"-"); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Quiet (default)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Verbose (console)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Verbose (logfile)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Very verbose (console)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Very verbose (logfile)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Debug mode (console)")); gtk_combo_box_append_text(GTK_COMBO_BOX(verbosity_combobox),t("Debug mode (logfile)")); gtk_combo_box_set_active(GTK_COMBO_BOX(verbosity_combobox),get_verbosity_mode(false)); gtk_table_attach_defaults(GTK_TABLE(left_table),verbosity_combobox,0,1,2,3); g_signal_connect(verbosity_combobox,"changed",G_CALLBACK(on_dialog_verbosity_mode_changed),0); GtkWidget *const preview_combobox = gtk_combo_box_new_text(); gtk_widget_show(preview_combobox); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("Output preview...")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),"-"); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("1st output (default)")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("2nd output")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("3rd output")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("4th output")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("1st -> 2nd")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("1st -> 3rd")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("1st -> 4th")); gtk_combo_box_append_text(GTK_COMBO_BOX(preview_combobox),t("All outputs")); gtk_combo_box_set_active(GTK_COMBO_BOX(preview_combobox),get_preview_mode(false)); gtk_table_attach_defaults(GTK_TABLE(left_table),preview_combobox,0,1,3,4); g_signal_connect(preview_combobox,"changed",G_CALLBACK(on_dialog_preview_mode_changed),0); drawable_preview = gimp_drawable_get(gimp_image_get_active_drawable(image_id)); gui_preview = 0; _gimp_preview_invalidate(); g_signal_connect(dialog_window,"size-request",G_CALLBACK(on_dialog_resized),0); // Create the middle pane. GtkWidget *const mr_hpaned = gtk_hpaned_new(); gtk_widget_show(mr_hpaned); gtk_paned_pack2(GTK_PANED(dialog_hpaned),mr_hpaned,true,true); GtkWidget *const middle_frame = gtk_frame_new(NULL); gtk_widget_show(middle_frame); gtk_container_set_border_width(GTK_CONTAINER(middle_frame),4); gtk_paned_add1(GTK_PANED(mr_hpaned),middle_frame); GtkWidget *const middle_pane = gtk_vbox_new(false,4); gtk_widget_show(middle_pane); gtk_container_add(GTK_CONTAINER(middle_frame),middle_pane); relabel_hbox = gtk_hbox_new(false,3); gtk_box_pack_start(GTK_BOX(middle_pane),relabel_hbox,false,false,0); relabel_entry = gtk_entry_new_with_max_length(255); gtk_widget_show(relabel_entry); gtk_box_pack_start(GTK_BOX(relabel_hbox),relabel_entry,false,true,0); GtkWidget *const relabel_button = gtk_button_new_with_label(t("Rename")); gtk_widget_show(relabel_button); gtk_box_pack_start(GTK_BOX(relabel_hbox),relabel_button,false,true,0); g_signal_connect(relabel_button,"clicked",G_CALLBACK(_on_filter_doubleclicked),0); g_signal_connect(relabel_entry,"activate",G_CALLBACK(_on_filter_doubleclicked),0); GtkWidget *const scrolled_window = gtk_scrolled_window_new(NULL,NULL); gtk_widget_show(scrolled_window); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(middle_pane),scrolled_window,true,true,0); tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_view_store)); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree_view),true); #if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_focus(tree_view,false); #else GValue val = {0, {{0}, {0}}}; g_value_init(&val,G_TYPE_BOOLEAN); g_value_set_boolean(&val,FALSE); g_object_set_property(G_OBJECT(tree_view),"can-focus",&val); #endif gtk_widget_show(tree_view); gtk_container_add(GTK_CONTAINER(scrolled_window),tree_view); GtkWidget *const tree_hbox = gtk_hbox_new(false,6); gtk_widget_show(tree_hbox); gtk_box_pack_start(GTK_BOX(middle_pane),tree_hbox,false,false,0); fave_add_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(tree_hbox),fave_add_button,false,false,0); g_signal_connect_swapped(fave_add_button,"clicked",G_CALLBACK(on_dialog_add_fave_clicked),tree_view); fave_delete_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(tree_hbox),fave_delete_button,false,false,0); g_signal_connect_swapped(fave_delete_button,"clicked",G_CALLBACK(on_dialog_remove_fave_clicked),tree_view); delete_stock = gtk_button_new_from_stock(GTK_STOCK_DELETE); GtkWidget *const delete_image = gtk_button_get_image(GTK_BUTTON(delete_stock)); gtk_button_set_image(GTK_BUTTON(fave_delete_button),delete_image); GtkWidget *const refresh_button = gtk_button_new(); refresh_stock = gtk_button_new_from_stock(GTK_STOCK_REFRESH); GtkWidget *const refresh_image = gtk_button_get_image(GTK_BUTTON(refresh_stock)); gtk_button_set_image(GTK_BUTTON(refresh_button),refresh_image); gtk_widget_show(refresh_button); gtk_box_pack_start(GTK_BOX(tree_hbox),refresh_button,false,false,0); g_signal_connect_swapped(refresh_button,"clicked",G_CALLBACK(on_dialog_refresh_clicked),tree_view); GtkWidget *const internet_checkbutton = gtk_check_button_new_with_mnemonic(t("Internet")); gtk_widget_show(internet_checkbutton); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(internet_checkbutton),get_net_update()); gtk_box_pack_start(GTK_BOX(tree_hbox),internet_checkbutton,false,false,0); g_signal_connect(internet_checkbutton,"toggled",G_CALLBACK(on_dialog_net_update_toggled),0); tree_mode_button = gtk_button_new(); gtk_box_pack_start(GTK_BOX(tree_hbox),tree_mode_button,false,false,0); g_signal_connect_swapped(tree_mode_button,"clicked",G_CALLBACK(on_dialog_tree_mode_clicked),tree_view); GtkTreeViewColumn *const column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view),column); flush_tree_view(tree_view); g_signal_connect(tree_view,"cursor-changed",G_CALLBACK(on_filter_selected),0); g_signal_connect(tree_view,"row-activated",G_CALLBACK(on_filter_doubleclicked),0); // Create the right pane. right_pane = gtk_scrolled_window_new(NULL,NULL); gtk_widget_show(right_pane); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(right_pane), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_paned_add2(GTK_PANED(mr_hpaned),right_pane); right_frame = gtk_frame_new(NULL); gtk_widget_show(right_frame); gtk_container_set_border_width(GTK_CONTAINER(right_frame),4); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(right_pane),right_frame); // Show dialog window and wait for user response. create_parameters_gui(false); gtk_main(); // Destroy dialog box widget and free resources. gtk_widget_destroy(dialog_window); if (tree_mode_stock) gtk_widget_destroy(tree_mode_stock); if (fave_stock) gtk_widget_destroy(fave_stock); if (delete_stock) gtk_widget_destroy(delete_stock); if (refresh_stock) gtk_widget_destroy(refresh_stock); if (event_infos) delete[] event_infos; return _create_dialog_gui; } // 'Run' function, required by the GIMP plug-in API. //-------------------------------------------------- void gmic_run(const gchar *name, gint nparams, const GimpParam *param, gint *nreturn_vals, GimpParam **return_vals) { // Init plug-in variables. static GimpParam return_values[1]; *return_vals = return_values; *nreturn_vals = 1; return_values[0].type = GIMP_PDB_STATUS; cimg::unused(name,nparams); run_mode = (GimpRunMode)param[0].data.d_int32; set_logfile(); set_locale(); status = GIMP_PDB_SUCCESS; #if cimg_OS==2 cimg::curl_path("_gmic\\curl",true); #endif gtk_rc_parse_string("style \"gimp-large-preview\"\n" "{\n" " GimpPreview::size = 320\n" "}\n" "class \"GimpPreview\" style \"gimp-large-preview\""); try { // Init filters and images. update_filters(false); image_id = param[1].data.d_drawable; gimp_tile_cache_ntiles(2*(gimp_image_width(image_id)/gimp_tile_width()+1)); // Check for run mode. switch (run_mode) { case GIMP_RUN_INTERACTIVE : { if (create_dialog_gui()) { process_image(0); const char *const commands_line = get_commands_line(false); if (commands_line) { // Remember command line for the next use of the filter. char s_tmp[64] = { 0 }; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_commands_line%u",get_current_filter()); gimp_set_data(s_tmp,commands_line,std::strlen(commands_line)); } } } break; case GIMP_RUN_WITH_LAST_VALS : { const unsigned int filter = get_current_filter(); if (filter) { char s_tmp[64] = { 0 }; cimg_snprintf(s_tmp,sizeof(s_tmp),"gmic_commands_line%u",filter); char commands_line[4096] = { 0 }; gimp_get_data(s_tmp,&commands_line); process_image(commands_line); } } break; case GIMP_RUN_NONINTERACTIVE : { const unsigned int _input_mode = get_input_mode(), _output_mode = get_output_mode(); set_input_mode(param[3].data.d_int32 + 2); set_output_mode(0); process_image(param[4].data.d_string); set_input_mode(_input_mode + 2); set_output_mode(_output_mode + 2); } break; } } catch (CImgException &e) { GtkWidget *const message = gtk_message_dialog_new(0,GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,"%s",e.what()); gtk_widget_show(message); gtk_dialog_run(GTK_DIALOG(message)); gtk_widget_destroy(message); status = GIMP_PDB_CALLING_ERROR; } if (logfile) std::fclose(logfile); return_values[0].data.d_status = status; } // 'Query' function, required by the GIMP plug-in API. //---------------------------------------------------- void gmic_query() { static const GimpParamDef args[] = { {GIMP_PDB_INT32, (gchar*)"run_mode", (gchar*)"Interactive, non-interactive"}, {GIMP_PDB_IMAGE, (gchar*)"image", (gchar*)"Input image"}, {GIMP_PDB_DRAWABLE, (gchar*)"drawable", (gchar*)"Input drawable (unused)"}, {GIMP_PDB_INT32, (gchar*)"input", (gchar*)"Input layers mode, when non-interactive" "(0=none, 1=active, 2=all, 3=active & below, 4=active & above, 5=all visibles, 6=all invisibles, " "7=all visibles (decr.), 8=all invisibles (decr.), 9=all (decr.))"}, {GIMP_PDB_STRING, (gchar*)"command", (gchar*)"G'MIC command string, when non-interactive"}, }; set_locale(); gimp_install_procedure("plug-in-gmic", // name "G'MIC", // blurb "G'MIC", // help "David Tschumperl\303\251", // author "David Tschumperl\303\251", // copyright "2013", // date "_G'MIC...", // menu_path "RGB*, GRAY*", // image_types GIMP_PLUGIN, // type G_N_ELEMENTS(args), // nparams 0, // nreturn_vals args, // params 0); // return_vals gimp_plugin_menu_register("plug-in-gmic", "/Filters"); } GimpPlugInInfo PLUG_IN_INFO = { 0, 0, gmic_query, gmic_run }; MAIN() gmic-1.5.7.1/src/gmic_in_script.scm0000664000175000017500000000705412216303503017331 0ustar dtschumpdtschump;; ;; File : gmic_in_script.scm ;; ( Scheme script for GIMP ) ;; ;; Description : Show how to call G'MIC commands from a GIMP script. ;; ( http://gmic.sourceforge.net ) ;; ;; Copyright : David Tschumperle ;; ( http://tschumperle.users.greyc.fr/ ) ;; ;; License : CeCILL v2.0 ;; ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) ;; ;; This software is governed by the CeCILL license under French law and ;; abiding by the rules of distribution of free software. You can use, ;; modify and/ or redistribute the software under the terms of the CeCILL ;; license as circulated by CEA, CNRS and INRIA at the following URL ;; "http://www.cecill.info". ;; ;; As a counterpart to the access to the source code and rights to copy, ;; modify and redistribute granted by the license, users are provided only ;; with a limited warranty and the software's author, the holder of the ;; economic rights, and the successive licensors have only limited ;; liability. ;; ;; In this respect, the user's attention is drawn to the risks associated ;; with loading, using, modifying and/or developing or reproducing the ;; software by the user in light of its specific status of free software, ;; that may mean that it is complicated to manipulate, and that also ;; therefore means that it is reserved for developers and experienced ;; professionals having in-depth computer knowledge. Users are therefore ;; encouraged to load and test the software's suitability as regards their ;; requirements in conditions enabling the security of their systems and/or ;; data to be ensured and, more generally, to use and operate it in the ;; same conditions as regards security. ;; ;; The fact that you are presently reading this means that you have had ;; knowledge of the CeCILL license and that you accept its terms. ;; (define (script-with-gmic img drawable x y z) ;; Start undo group. (gimp-image-undo-group-start img) (let* ( (copy-layer (car (gimp-layer-copy drawable TRUE))) ) ;; Add a copy of the layer to the image. (gimp-image-add-layer img copy-layer -1) ;; Render a 3D mapped cube from the active layer, using G'MIC. (plug-in-gmic 1 img drawable 1 (string-append "-v - " ; To have a silent output. Remove it to display errors from the G'MIC interpreter on stderr. "-gimp_imageobject3d 1,{w},{h},0.5," (number->string x) "," (number->string y) "," (number->string z) ",45,0,0,-100,0.5,0.7,4" )) ;; Merge two layers together, using the G'MIC 'edges' mode (this layer mode does not exist by default in GIMP). (plug-in-gmic 1 img drawable 2 "-v - -compose_edges 1") ) ;; Flush display. (gimp-displays-flush) ;; End undo group. (gimp-image-undo-group-end img) ) (script-fu-register "script-with-gmic" _"/Filters/G'MIC Script test..." "Show how to call G'MIC from a GIMP script" "David Tschumperlé" "David Tschumperlé" "October 2009" "*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-ADJUSTMENT _"X-Angle" '(57 0 360 1 2 0 0) SF-ADJUSTMENT _"Y-Angle" '(41 0 360 1 2 0 0) SF-ADJUSTMENT _"Z-Angle" '(21 0 360 1 2 0 0) ) gmic-1.5.7.1/src/gmic_def.h0000664000175000017500004425705612216303503015563 0ustar dtschumpdtschump#ifndef gmic_gimp /* Define image 'gmic_def' of size 1x645300x1x1 and type 'char' */ char data_gmic_def[] = { 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 71, 108, 111, 98, 97, 108, 32, 111, 112, 116, 105, 111, 110, 115, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 98, 117, 103, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 100, 101, 98, 117, 103, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 97, 99, 116, 105, 118, 97, 116, 101, 100, 44, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 98, 101, 99, 111, 109, 101, 115, 32, 118, 101, 114, 121, 32, 118, 101, 114, 98, 111, 115, 101, 32, 97, 110, 100, 32, 111, 117, 116, 112, 117, 116, 115, 32, 97, 100, 100, 105, 116, 105, 111, 110, 110, 97, 108, 32, 108, 111, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 101, 115, 115, 97, 103, 101, 115, 32, 97, 98, 111, 117, 116, 32, 105, 116, 115, 32, 105, 110, 116, 101, 114, 110, 97, 108, 32, 115, 116, 97, 116, 101, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 111, 117, 116, 112, 117, 116, 32, 40, 115, 116, 100, 111, 117, 116, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 102, 117, 108, 32, 119, 104, 101, 110, 32, 100, 101, 98, 117, 103, 103, 105, 110, 103, 32, 116, 104, 101, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 111, 102, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 104, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 104, 101, 108, 112, 39, 46, 32, 58, 32, 40, 42, 41, 10, 104, 32, 58, 10, 45, 104, 101, 108, 112, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 108, 112, 32, 58, 32, 95, 99, 111, 109, 109, 97, 110, 100, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 101, 108, 112, 32, 40, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 102, 111, 114, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 41, 32, 97, 110, 100, 32, 101, 120, 105, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 104, 39, 41, 46, 10, 104, 101, 108, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 32, 121, 32, 45, 97, 32, 121, 10, 45, 45, 95, 104, 101, 108, 112, 32, 36, 49, 44, 36, 50, 32, 45, 107, 91, 48, 93, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 64, 123, 125, 41, 125, 32, 45, 95, 104, 101, 108, 112, 91, 48, 93, 32, 64, 123, 125, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 10, 95, 104, 101, 108, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 10, 45, 118, 32, 45, 49, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 34, 36, 49, 34, 41, 125, 32, 45, 95, 95, 104, 101, 108, 112, 32, 97, 115, 99, 105, 105, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 45, 39, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 49, 48, 48, 37, 125, 61, 61, 123, 39, 93, 39, 125, 34, 32, 38, 38, 32, 34, 105, 33, 61, 123, 39, 91, 39, 125, 125, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 123, 39, 91, 39, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 107, 115, 48, 61, 34, 48, 34, 32, 107, 115, 49, 61, 34, 45, 107, 91, 48, 93, 34, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 32, 49, 44, 123, 104, 43, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 32, 58, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 58, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 92, 110, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 91, 103, 109, 105, 99, 93, 32, 67, 111, 109, 109, 97, 110, 100, 32, 39, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 39, 32, 104, 97, 115, 32, 110, 111, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 46, 32, 84, 114, 121, 32, 39, 103, 109, 105, 99, 32, 45, 104, 39, 32, 102, 111, 114, 32, 103, 108, 111, 98, 97, 108, 32, 104, 101, 108, 112, 46, 92, 110, 92, 110, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 121, 32, 45, 115, 32, 45, 44, 49, 48, 10, 115, 116, 111, 112, 102, 108, 97, 103, 61, 48, 10, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 61, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 104, 62, 55, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 53, 125, 39, 61, 61, 39, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 45, 115, 32, 45, 44, 123, 39, 34, 58, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 36, 99, 111, 109, 109, 97, 110, 100, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 32, 45, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 58, 32, 69, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 32, 39, 34, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 48, 34, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 117, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 48, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 58, 39, 125, 125, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 36, 39, 125, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 39, 125, 41, 10, 45, 101, 108, 115, 101, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 34, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 69, 120, 97, 109, 112, 108, 101, 40, 115, 41, 58, 32, 34, 39, 125, 41, 32, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 48, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 32, 45, 101, 110, 100, 105, 102, 32, 36, 123, 107, 115, 123, 64, 35, 33, 61, 48, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 105, 102, 32, 36, 115, 116, 111, 112, 102, 108, 97, 103, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 117, 32, 34, 34, 10, 95, 95, 104, 101, 108, 112, 32, 58, 10, 45, 109, 32, 34, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 58, 32, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 36, 49, 32, 92, 34, 36, 34, 34, 49, 92, 34, 34, 10, 45, 109, 32, 34, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 58, 32, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 36, 49, 32, 92, 34, 36, 34, 34, 49, 92, 34, 34, 10, 45, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 36, 49, 91, 93, 10, 45, 95, 104, 101, 108, 112, 95, 117, 115, 97, 103, 101, 91, 93, 10, 45, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 36, 49, 44, 34, 105, 109, 103, 47, 34, 44, 48, 10, 45, 95, 104, 101, 108, 112, 95, 101, 120, 97, 109, 112, 108, 101, 115, 91, 93, 10, 45, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 36, 49, 91, 93, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 92, 100, 111, 99, 117, 109, 101, 110, 116, 99, 108, 97, 115, 115, 91, 97, 52, 112, 97, 112, 101, 114, 44, 49, 49, 112, 116, 44, 116, 119, 111, 115, 105, 100, 101, 93, 123, 98, 111, 111, 107, 125, 10, 92, 110, 92, 92, 117, 115, 101, 112, 97, 99, 107, 97, 103, 101, 123, 104, 121, 112, 101, 114, 114, 101, 102, 44, 102, 97, 110, 99, 121, 104, 100, 114, 44, 103, 114, 97, 112, 104, 105, 99, 120, 44, 97, 109, 115, 115, 121, 109, 98, 44, 97, 109, 115, 109, 97, 116, 104, 44, 116, 105, 109, 101, 115, 44, 109, 97, 107, 101, 105, 100, 120, 44, 108, 105, 115, 116, 105, 110, 103, 115, 125, 10, 92, 110, 92, 92, 103, 114, 97, 112, 104, 105, 99, 115, 112, 97, 116, 104, 123, 123, 105, 109, 103, 47, 125, 125, 10, 92, 110, 92, 92, 112, 97, 103, 101, 115, 116, 121, 108, 101, 123, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 125, 10, 92, 110, 92, 92, 108, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 114, 105, 103, 104, 116, 109, 97, 114, 107, 125, 125, 10, 92, 110, 92, 92, 114, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 108, 101, 102, 116, 109, 97, 114, 107, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 125, 10, 92, 110, 92, 92, 99, 102, 111, 111, 116, 123, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 53, 46, 56, 55, 53, 105, 110, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 112, 97, 114, 105, 110, 100, 101, 110, 116, 125, 123, 48, 112, 99, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 104, 111, 102, 102, 115, 101, 116, 125, 123, 45, 48, 46, 56, 99, 109, 125, 10, 92, 110, 92, 92, 115, 101, 116, 99, 111, 117, 110, 116, 101, 114, 123, 116, 111, 99, 100, 101, 112, 116, 104, 125, 123, 49, 125, 10, 92, 110, 92, 92, 115, 108, 111, 112, 112, 121, 123, 125, 10, 92, 110, 92, 92, 116, 105, 116, 108, 101, 123, 92, 92, 102, 98, 111, 120, 123, 92, 92, 112, 97, 114, 98, 111, 120, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 92, 92, 98, 101, 103, 105, 110, 123, 99, 101, 110, 116, 101, 114, 125, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 50, 99, 109, 125, 92, 92, 105, 110, 99, 108, 117, 100, 101, 103, 114, 97, 112, 104, 105, 99, 115, 91, 119, 105, 100, 116, 104, 61, 49, 50, 99, 109, 93, 123, 108, 111, 103, 111, 51, 46, 106, 112, 103, 125, 92, 92, 92, 92, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 49, 99, 109, 125, 123, 92, 92, 72, 117, 103, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 84, 104, 101, 32, 72, 97, 110, 100, 98, 111, 111, 107, 125, 92, 92, 92, 92, 123, 92, 92, 115, 109, 97, 108, 108, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 125, 92, 92, 92, 92, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 49, 99, 109, 125, 125, 92, 92, 101, 110, 100, 123, 99, 101, 110, 116, 101, 114, 125, 125, 125, 125, 10, 92, 110, 92, 92, 97, 117, 116, 104, 111, 114, 123, 92, 92, 76, 97, 114, 103, 101, 32, 92, 92, 98, 102, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 92, 39, 101, 125, 10, 92, 110, 92, 92, 114, 101, 110, 101, 119, 99, 111, 109, 109, 97, 110, 100, 92, 92, 105, 110, 100, 101, 120, 110, 97, 109, 101, 123, 73, 110, 100, 101, 120, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 105, 110, 100, 101, 120, 10, 92, 110, 92, 92, 108, 115, 116, 115, 101, 116, 123, 99, 111, 108, 117, 109, 110, 115, 61, 102, 117, 108, 108, 102, 108, 101, 120, 105, 98, 108, 101, 44, 98, 97, 115, 105, 99, 115, 116, 121, 108, 101, 61, 92, 92, 110, 111, 114, 109, 97, 108, 102, 111, 110, 116, 125, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 116, 105, 116, 108, 101, 10, 92, 110, 92, 92, 116, 97, 98, 108, 101, 111, 102, 99, 111, 110, 116, 101, 110, 116, 115, 10, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 42, 123, 80, 114, 101, 97, 109, 98, 108, 101, 125, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 76, 105, 99, 101, 110, 115, 101, 125, 10, 92, 110, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 71, 78, 85, 32, 70, 114, 101, 101, 32, 68, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 76, 105, 99, 101, 110, 115, 101, 125, 44, 32, 118, 101, 114, 115, 105, 111, 110, 32, 49, 46, 51, 46, 92, 92, 92, 92, 10, 92, 110, 82, 101, 97, 100, 32, 116, 104, 101, 32, 102, 117, 108, 108, 32, 108, 105, 99, 101, 110, 115, 101, 32, 116, 101, 114, 109, 115, 32, 97, 116, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 110, 117, 46, 111, 114, 103, 47, 108, 105, 99, 101, 110, 115, 101, 115, 47, 102, 100, 108, 45, 49, 46, 51, 46, 116, 120, 116, 125, 46, 92, 92, 92, 92, 126, 92, 92, 92, 92, 10, 92, 110, 65, 110, 32, 111, 110, 108, 105, 110, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 116, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 58, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 116, 116, 123, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 115, 104, 116, 109, 108, 125, 46, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 77, 111, 116, 105, 118, 97, 116, 105, 111, 110, 115, 125, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 32, 97, 110, 100, 32, 102, 117, 108, 108, 45, 102, 101, 97, 116, 117, 114, 101, 100, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 44, 32, 112, 114, 111, 118, 105, 100, 105, 110, 103, 32, 115, 101, 118, 101, 114, 97, 108, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 117, 115, 101, 114, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 115, 32, 116, 111, 10, 92, 110, 99, 111, 110, 118, 101, 114, 116, 47, 109, 97, 110, 105, 112, 117, 108, 97, 116, 101, 47, 102, 105, 108, 116, 101, 114, 47, 118, 105, 115, 117, 97, 108, 105, 122, 101, 32, 103, 101, 110, 101, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 44, 32, 102, 114, 111, 109, 32, 49, 100, 32, 115, 99, 97, 108, 97, 114, 32, 115, 105, 103, 110, 97, 108, 101, 115, 32, 116, 111, 32, 51, 100, 43, 116, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 84, 101, 99, 104, 110, 105, 99, 97, 108, 108, 121, 32, 115, 112, 101, 97, 107, 105, 110, 103, 44, 32, 119, 104, 97, 116, 32, 105, 116, 32, 100, 111, 101, 115, 32, 105, 115, 58, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 68, 101, 102, 105, 110, 101, 32, 97, 32, 108, 105, 103, 104, 116, 119, 101, 105, 103, 104, 116, 32, 98, 117, 116, 32, 112, 111, 119, 101, 114, 102, 117, 108, 32, 115, 99, 114, 105, 112, 116, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 40, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 41, 32, 100, 101, 100, 105, 99, 97, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 80, 114, 111, 118, 105, 100, 101, 32, 115, 101, 118, 101, 114, 97, 108, 32, 117, 115, 101, 114, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 115, 32, 101, 109, 98, 101, 100, 100, 105, 110, 103, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 58, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 45, 108, 105, 110, 101, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 39, 103, 109, 105, 99, 39, 44, 32, 116, 111, 32, 117, 115, 101, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 102, 114, 111, 109, 32, 97, 32, 115, 104, 101, 108, 108, 46, 10, 92, 110, 73, 110, 32, 116, 104, 105, 115, 32, 115, 101, 116, 116, 105, 110, 103, 44, 32, 71, 39, 77, 73, 67, 32, 109, 97, 121, 32, 98, 101, 32, 115, 101, 101, 110, 32, 97, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 32, 40, 97, 110, 100, 32, 102, 114, 105, 101, 110, 100, 108, 121, 41, 32, 99, 111, 109, 112, 101, 116, 105, 116, 111, 114, 32, 111, 102, 32, 116, 104, 101, 32, 73, 109, 97, 103, 101, 77, 97, 103, 105, 99, 107, 32, 111, 114, 32, 71, 114, 97, 112, 104, 105, 99, 115, 77, 97, 103, 105, 99, 107, 32, 115, 111, 102, 116, 119, 97, 114, 101, 32, 115, 117, 105, 116, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 112, 108, 117, 103, 45, 105, 110, 32, 39, 103, 109, 105, 99, 92, 92, 95, 103, 105, 109, 112, 39, 44, 32, 116, 111, 32, 98, 114, 105, 110, 103, 32, 71, 39, 77, 73, 67, 32, 99, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 71, 73, 77, 80, 32, 105, 109, 97, 103, 101, 32, 114, 101, 116, 111, 117, 99, 104, 105, 110, 103, 32, 115, 111, 102, 116, 119, 97, 114, 101, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 119, 101, 98, 45, 115, 101, 114, 118, 105, 99, 101, 32, 39, 71, 39, 77, 73, 67, 32, 79, 110, 108, 105, 110, 101, 39, 44, 32, 116, 111, 32, 97, 108, 108, 111, 119, 32, 117, 115, 101, 114, 115, 32, 97, 112, 112, 108, 121, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 115, 32, 100, 105, 114, 101, 99, 116, 108, 121, 32, 105, 110, 32, 97, 32, 119, 101, 98, 32, 98, 114, 111, 119, 101, 114, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 81, 116, 45, 98, 97, 115, 101, 100, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 32, 39, 90, 65, 114, 116, 39, 44, 32, 102, 111, 114, 32, 114, 101, 97, 108, 45, 116, 105, 109, 101, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 119, 101, 98, 99, 97, 109, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 67, 43, 43, 32, 108, 105, 98, 114, 97, 114, 121, 32, 39, 108, 105, 98, 103, 109, 105, 99, 39, 44, 32, 116, 111, 32, 98, 101, 32, 108, 105, 110, 107, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 105, 114, 100, 45, 112, 97, 114, 116, 121, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 92, 92, 101, 110, 100, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 101, 110, 100, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 102, 111, 99, 117, 115, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 32, 111, 102, 32, 112, 111, 115, 115, 105, 98, 108, 121, 32, 99, 111, 109, 112, 108, 101, 120, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 102, 111, 114, 32, 99, 111, 110, 118, 101, 114, 116, 105, 110, 103, 44, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 110, 103, 44, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 97, 110, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 105, 110, 103, 32, 103, 101, 110, 101, 114, 105, 99, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 46, 32, 84, 104, 105, 115, 32, 105, 110, 99, 108, 117, 100, 101, 115, 32, 111, 102, 32, 99, 111, 117, 114, 115, 101, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 117, 116, 32, 97, 108, 115, 111, 32, 109, 111, 114, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 100, 97, 116, 97, 32, 97, 115, 32, 105, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 111, 114, 32, 51, 100, 40, 43, 116, 41, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 100, 97, 116, 97, 115, 101, 116, 115, 46, 92, 92, 92, 92, 10, 92, 110, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 58, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 97, 110, 32, 98, 101, 32, 101, 120, 116, 101, 110, 100, 101, 100, 32, 119, 105, 116, 104, 32, 99, 117, 115, 116, 111, 109, 32, 71, 39, 77, 73, 67, 45, 119, 114, 105, 116, 116, 101, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 100, 101, 102, 105, 110, 105, 110, 103, 32, 116, 104, 117, 115, 32, 110, 101, 119, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 111, 114, 32, 101, 102, 102, 101, 99, 116, 115, 46, 32, 66, 121, 32, 116, 104, 101, 32, 119, 97, 121, 44, 32, 71, 39, 77, 73, 67, 32, 97, 108, 114, 101, 97, 100, 121, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 97, 32, 115, 117, 98, 115, 116, 97, 110, 116, 105, 97, 108, 32, 115, 101, 116, 32, 111, 102, 32, 112, 114, 101, 45, 100, 101, 102, 105, 110, 101, 100, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 115, 32, 97, 110, 100, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 40, 109, 111, 114, 101, 32, 116, 104, 97, 110, 32, 49, 48, 48, 48, 41, 46, 92, 92, 92, 92, 10, 92, 110, 10, 92, 110, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 119, 105, 116, 104, 32, 112, 111, 114, 116, 97, 98, 105, 108, 105, 116, 121, 32, 105, 110, 32, 109, 105, 110, 100, 32, 97, 110, 100, 32, 114, 117, 110, 115, 32, 111, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 112, 108, 97, 116, 102, 111, 114, 109, 115, 32, 40, 87, 105, 110, 100, 111, 119, 115, 44, 32, 85, 110, 105, 120, 44, 32, 77, 97, 99, 79, 83, 88, 41, 46, 32, 73, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 67, 101, 67, 73, 76, 76, 32, 108, 105, 99, 101, 110, 115, 101, 32, 40, 71, 80, 76, 45, 99, 111, 109, 112, 97, 116, 105, 98, 108, 101, 41, 46, 32, 83, 105, 110, 99, 101, 32, 50, 48, 48, 56, 44, 32, 105, 116, 32, 105, 115, 32, 100, 101, 118, 101, 108, 111, 112, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 73, 109, 97, 103, 101, 32, 84, 101, 97, 109, 32, 111, 102, 32, 116, 104, 101, 32, 71, 82, 69, 89, 67, 32, 108, 97, 98, 111, 114, 97, 116, 111, 114, 121, 44, 32, 105, 110, 32, 67, 97, 101, 110, 47, 70, 114, 97, 110, 99, 101, 44, 32, 98, 121, 32, 112, 101, 114, 109, 97, 110, 101, 110, 116, 32, 114, 101, 115, 101, 97, 114, 99, 104, 101, 114, 115, 32, 119, 111, 114, 107, 105, 110, 103, 32, 105, 110, 32, 116, 104, 101, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 110, 32, 97, 32, 100, 97, 105, 108, 121, 32, 98, 97, 115, 105, 115, 46, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 86, 101, 114, 115, 105, 111, 110, 125, 10, 92, 110, 10, 92, 110, 32, 103, 109, 105, 99, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 92, 39, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 40, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 41, 10, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 123, 85, 115, 97, 103, 101, 125, 10, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 49, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 115, 101, 99, 116, 105, 111, 110, 123, 36, 49, 125, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 108, 97, 116, 101, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 49, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 115, 109, 97, 108, 108, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 98, 101, 103, 105, 110, 123, 108, 115, 116, 108, 105, 115, 116, 105, 110, 103, 125, 34, 10, 45, 101, 91, 93, 32, 34, 36, 49, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 101, 110, 100, 123, 108, 115, 116, 108, 105, 115, 116, 105, 110, 103, 125, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 110, 111, 114, 109, 97, 108, 115, 105, 122, 101, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 92, 92, 112, 114, 105, 110, 116, 105, 110, 100, 101, 120, 10, 92, 110, 126, 92, 92, 92, 92, 36, 92, 92, 115, 113, 117, 97, 114, 101, 36, 126, 69, 110, 100, 32, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 10, 92, 110, 92, 110, 92, 92, 101, 110, 100, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, 109, 108, 32, 80, 85, 66, 76, 73, 67, 32, 92, 34, 45, 47, 47, 87, 51, 67, 47, 47, 68, 84, 68, 32, 88, 72, 84, 77, 76, 32, 49, 46, 48, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 47, 47, 69, 78, 92, 34, 32, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 84, 82, 47, 120, 104, 116, 109, 108, 49, 47, 68, 84, 68, 47, 120, 104, 116, 109, 108, 49, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 46, 100, 116, 100, 92, 34, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 104, 101, 97, 100, 101, 114, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 92, 110, 60, 108, 105, 110, 107, 32, 104, 114, 101, 102, 61, 92, 34, 115, 116, 121, 108, 101, 46, 99, 115, 115, 92, 34, 32, 114, 101, 108, 61, 92, 34, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 99, 115, 115, 92, 34, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 98, 108, 111, 99, 95, 111, 112, 116, 105, 111, 110, 92, 34, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 111, 112, 95, 114, 111, 117, 103, 101, 92, 34, 62, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 101, 120, 116, 95, 116, 111, 112, 92, 34, 62, 82, 101, 102, 101, 114, 101, 110, 99, 101, 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 99, 101, 110, 116, 101, 114, 92, 34, 62, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 101, 120, 116, 95, 99, 101, 110, 116, 114, 101, 95, 105, 110, 116, 114, 111, 92, 34, 62, 10, 92, 110, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 80, 114, 101, 97, 109, 98, 108, 101, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 110, 117, 46, 111, 114, 103, 47, 108, 105, 99, 101, 110, 115, 101, 115, 47, 102, 100, 108, 45, 49, 46, 51, 46, 116, 120, 116, 92, 34, 62, 71, 78, 85, 32, 70, 114, 101, 101, 32, 68, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 76, 105, 99, 101, 110, 115, 101, 60, 47, 97, 62, 44, 32, 118, 101, 114, 115, 105, 111, 110, 32, 49, 46, 51, 46, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 65, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 103, 109, 105, 99, 95, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 112, 100, 102, 92, 34, 62, 46, 112, 100, 102, 32, 118, 101, 114, 115, 105, 111, 110, 60, 47, 97, 62, 32, 111, 102, 32, 116, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 46, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 84, 97, 98, 108, 101, 32, 111, 102, 32, 99, 111, 110, 116, 101, 110, 116, 115, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 48, 92, 34, 62, 86, 101, 114, 115, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 92, 34, 62, 85, 115, 97, 103, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 50, 92, 34, 62, 79, 118, 101, 114, 97, 108, 108, 32, 99, 111, 110, 116, 101, 120, 116, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 51, 92, 34, 62, 73, 109, 97, 103, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 97, 110, 100, 32, 116, 101, 114, 109, 105, 110, 111, 108, 111, 103, 121, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 52, 92, 34, 62, 73, 116, 101, 109, 115, 32, 111, 102, 32, 97, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 53, 92, 34, 62, 73, 110, 112, 117, 116, 32, 100, 97, 116, 97, 32, 105, 116, 101, 109, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 54, 92, 34, 62, 67, 111, 109, 109, 97, 110, 100, 32, 105, 116, 101, 109, 115, 32, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 55, 92, 34, 62, 73, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 56, 92, 34, 62, 83, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 57, 92, 34, 62, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 48, 92, 34, 62, 73, 109, 97, 103, 101, 32, 97, 110, 100, 32, 100, 97, 116, 97, 32, 118, 105, 101, 119, 101, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 49, 92, 34, 62, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 50, 92, 34, 62, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 92, 34, 62, 71, 108, 111, 98, 97, 108, 32, 111, 112, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 92, 34, 62, 73, 110, 112, 117, 116, 115, 47, 111, 117, 116, 112, 117, 116, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 51, 92, 34, 62, 76, 105, 115, 116, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 52, 92, 34, 62, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 53, 92, 34, 62, 86, 97, 108, 117, 101, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 54, 92, 34, 62, 67, 111, 108, 111, 114, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 55, 92, 34, 62, 71, 101, 111, 109, 101, 116, 114, 121, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 56, 92, 34, 62, 70, 105, 108, 116, 101, 114, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 57, 92, 34, 62, 70, 101, 97, 116, 117, 114, 101, 115, 32, 101, 120, 116, 114, 97, 99, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 48, 92, 34, 62, 73, 109, 97, 103, 101, 32, 100, 114, 97, 119, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 49, 92, 34, 62, 77, 97, 116, 114, 105, 120, 32, 99, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 50, 92, 34, 62, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 51, 92, 34, 62, 80, 114, 111, 103, 114, 97, 109, 32, 99, 111, 110, 116, 114, 111, 108, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 52, 92, 34, 62, 65, 114, 114, 97, 121, 115, 44, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 102, 114, 97, 109, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 53, 92, 34, 62, 65, 114, 116, 105, 115, 116, 105, 99, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 54, 92, 34, 62, 87, 97, 114, 112, 105, 110, 103, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 55, 92, 34, 62, 68, 101, 103, 114, 97, 100, 97, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 56, 92, 34, 62, 66, 108, 101, 110, 100, 105, 110, 103, 32, 97, 110, 100, 32, 102, 97, 100, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 57, 92, 34, 62, 73, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 48, 92, 34, 62, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 100, 101, 109, 111, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 49, 92, 34, 62, 80, 73, 78, 75, 45, 108, 105, 98, 114, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 50, 92, 34, 62, 67, 111, 110, 118, 101, 110, 105, 101, 110, 99, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 51, 92, 34, 62, 79, 116, 104, 101, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 52, 92, 34, 62, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 51, 92, 34, 62, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 117, 115, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 101, 99, 116, 105, 111, 110, 48, 92, 34, 62, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 86, 101, 114, 115, 105, 111, 110, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 60, 47, 97, 62, 10, 92, 110, 60, 112, 114, 101, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 103, 109, 105, 99, 60, 47, 102, 111, 110, 116, 62, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 40, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 92, 34, 62, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 60, 47, 97, 62, 41, 10, 92, 110, 60, 47, 112, 114, 101, 62, 10, 34, 10, 45, 118, 32, 45, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 85, 115, 97, 103, 101, 34, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 101, 99, 116, 105, 111, 110, 34, 36, 95, 115, 101, 99, 116, 105, 111, 110, 34, 92, 34, 62, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 36, 49, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 60, 47, 97, 62, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 112, 114, 101, 62, 36, 42, 60, 47, 112, 114, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 60, 98, 114, 47, 62, 60, 98, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 42, 42, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 101, 115, 32, 119, 105, 116, 104, 32, 65, 66, 83, 79, 76, 85, 84, 69, 76, 89, 32, 78, 79, 32, 87, 65, 82, 82, 65, 78, 84, 89, 59, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 32, 118, 105, 115, 105, 116, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 92, 34, 62, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 32, 42, 42, 60, 47, 97, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 98, 62, 10, 92, 110, 60, 47, 116, 116, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 102, 111, 111, 116, 101, 114, 92, 34, 62, 60, 105, 109, 103, 32, 115, 114, 99, 61, 92, 34, 105, 109, 97, 103, 101, 115, 47, 102, 111, 111, 116, 101, 114, 46, 106, 112, 103, 92, 34, 32, 47, 62, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 99, 111, 112, 121, 114, 105, 103, 104, 116, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 102, 111, 111, 116, 101, 114, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 48, 32, 95, 115, 112, 97, 99, 101, 49, 61, 34, 34, 32, 95, 115, 112, 97, 99, 101, 50, 61, 34, 32, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 85, 115, 97, 103, 101, 34, 10, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 32, 103, 109, 105, 99, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 40, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 41, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 123, 110, 97, 114, 103, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 125, 44, 49, 44, 49, 44, 49, 44, 123, 39, 45, 39, 125, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 34, 36, 95, 115, 101, 99, 116, 105, 111, 110, 34, 46, 32, 36, 49, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 34, 36, 123, 95, 115, 112, 97, 99, 101, 123, 110, 97, 114, 103, 40, 123, 39, 36, 95, 115, 101, 99, 116, 105, 111, 110, 39, 125, 41, 125, 125, 64, 123, 45, 49, 44, 116, 125, 34, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 36, 42, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 42, 42, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 101, 115, 32, 119, 105, 116, 104, 32, 65, 66, 83, 79, 76, 85, 84, 69, 76, 89, 32, 78, 79, 32, 87, 65, 82, 82, 65, 78, 84, 89, 59, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 32, 118, 105, 115, 105, 116, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 32, 42, 42, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 117, 115, 97, 103, 101, 32, 58, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 103, 109, 105, 99, 32, 91, 99, 111, 109, 109, 97, 110, 100, 49, 32, 91, 97, 114, 103, 49, 95, 49, 44, 97, 114, 103, 49, 95, 50, 44, 46, 46, 93, 93, 32, 46, 46, 32, 91, 99, 111, 109, 109, 97, 110, 100, 78, 32, 91, 97, 114, 103, 78, 95, 49, 44, 97, 114, 103, 78, 95, 50, 44, 46, 46, 93, 93, 10, 92, 110, 10, 92, 110, 32, 39, 103, 109, 105, 99, 39, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 45, 115, 111, 117, 114, 99, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 44, 32, 97, 32, 115, 99, 114, 105, 112, 116, 45, 98, 97, 115, 101, 100, 32, 112, 114, 111, 103, 114, 97, 109, 109, 105, 110, 103, 10, 92, 110, 32, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 101, 100, 105, 99, 97, 116, 101, 100, 32, 116, 111, 32, 100, 101, 115, 105, 103, 110, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 46, 32, 73, 116, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 99, 111, 110, 118, 101, 114, 116, 44, 10, 92, 110, 32, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 101, 44, 32, 102, 105, 108, 116, 101, 114, 32, 97, 110, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 32, 109, 97, 100, 101, 32, 111, 102, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 49, 100, 47, 50, 100, 32, 111, 114, 32, 51, 100, 32, 109, 117, 108, 116, 105, 45, 10, 92, 110, 32, 32, 115, 112, 101, 99, 116, 114, 97, 108, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 10, 92, 110, 32, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 112, 114, 111, 112, 111, 115, 101, 115, 32, 97, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98, 97, 115, 105, 99, 115, 32, 97, 110, 100, 32, 114, 117, 108, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 79, 118, 101, 114, 97, 108, 108, 32, 99, 111, 110, 116, 101, 120, 116, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 65, 116, 32, 97, 110, 121, 32, 116, 105, 109, 101, 44, 32, 71, 39, 77, 73, 67, 32, 109, 97, 110, 97, 103, 101, 115, 32, 111, 110, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 40, 97, 110, 100, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 110, 97, 109, 101, 100, 41, 32, 112, 105, 120, 101, 108, 45, 98, 97, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 115, 44, 32, 101, 110, 116, 105, 114, 101, 108, 121, 32, 115, 116, 111, 114, 101, 100, 32, 105, 110, 32, 99, 111, 109, 112, 117, 116, 101, 114, 32, 109, 101, 109, 111, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 115, 32, 105, 110, 100, 105, 99, 101, 32, 39, 48, 39, 32, 97, 110, 100, 32, 105, 115, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 48, 93, 39, 46, 32, 84, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 105, 115, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 49, 93, 39, 44, 32, 116, 104, 101, 32, 116, 104, 105, 114, 100, 32, 98, 121, 32, 39, 91, 50, 93, 39, 32, 97, 110, 100, 32, 115, 111, 32, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 97, 114, 101, 32, 116, 114, 101, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 99, 121, 99, 108, 105, 99, 32, 119, 97, 121, 58, 32, 39, 91, 45, 49, 93, 39, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 108, 105, 115, 116, 44, 32, 39, 91, 45, 50, 93, 39, 32, 116, 111, 32, 116, 104, 101, 32, 112, 101, 110, 117, 108, 116, 105, 109, 97, 116, 101, 32, 111, 110, 101, 44, 32, 101, 116, 99, 46, 32, 84, 104, 117, 115, 44, 32, 105, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 115, 32, 52, 32, 105, 109, 97, 103, 101, 115, 44, 32, 39, 91, 49, 93, 39, 32, 97, 110, 100, 32, 39, 91, 45, 51, 93, 39, 10, 92, 110, 32, 32, 32, 32, 32, 98, 111, 116, 104, 32, 100, 101, 115, 105, 103, 110, 97, 116, 101, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 110, 97, 109, 101, 100, 32, 105, 109, 97, 103, 101, 32, 109, 97, 121, 32, 98, 101, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 110, 97, 109, 101, 93, 39, 32, 105, 102, 32, 39, 110, 97, 109, 101, 39, 32, 117, 115, 101, 115, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 115, 101, 116, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 32, 73, 109, 97, 103, 101, 32, 110, 97, 109, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 115, 101, 116, 32, 111, 114, 32, 114, 101, 97, 115, 115, 105, 103, 110, 101, 100, 32, 97, 116, 32, 97, 110, 121, 32, 109, 111, 109, 101, 110, 116, 32, 100, 117, 114, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 39, 45, 110, 97, 109, 101, 39, 32, 97, 110, 100, 32, 39, 45, 105, 110, 112, 117, 116, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 100, 101, 102, 105, 110, 101, 115, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 118, 97, 114, 105, 111, 117, 115, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 110, 100, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 115, 32, 116, 111, 32, 97, 108, 108, 111, 119, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 10, 92, 110, 32, 32, 32, 32, 32, 111, 102, 32, 99, 111, 109, 112, 108, 101, 120, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 109, 97, 110, 97, 103, 105, 110, 103, 32, 116, 104, 105, 115, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 44, 32, 105, 110, 32, 97, 32, 118, 101, 114, 121, 32, 102, 108, 101, 120, 105, 98, 108, 101, 32, 119, 97, 121, 58, 10, 92, 110, 32, 32, 32, 32, 32, 89, 111, 117, 32, 99, 97, 110, 32, 105, 110, 115, 101, 114, 116, 32, 111, 114, 32, 114, 101, 109, 111, 118, 101, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 44, 32, 114, 101, 97, 114, 114, 97, 110, 103, 101, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 44, 32, 112, 114, 111, 99, 101, 115, 115, 32, 105, 109, 97, 103, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 108, 121, 32, 111, 114, 32, 97, 115, 32, 97, 32, 103, 114, 111, 117, 112, 41, 44, 32, 109, 101, 114, 103, 101, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 97, 110, 100, 32, 111, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 83, 117, 99, 104, 32, 97, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 99, 97, 110, 32, 98, 101, 32, 119, 114, 105, 116, 116, 101, 110, 32, 105, 116, 115, 101, 108, 102, 32, 97, 115, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 116, 111, 114, 97, 98, 108, 101, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 44, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 114, 101, 45, 117, 115, 101, 100, 32, 97, 102, 116, 101, 114, 119, 97, 114, 100, 115, 32, 105, 110, 32, 97, 110, 111, 116, 104, 101, 114, 32, 98, 105, 103, 103, 101, 114, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 109, 97, 103, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 97, 110, 100, 32, 116, 101, 114, 109, 105, 110, 111, 108, 111, 103, 121, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 110, 32, 71, 39, 77, 73, 67, 44, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 109, 111, 100, 101, 108, 101, 100, 32, 97, 115, 32, 97, 32, 49, 100, 44, 32, 50, 100, 44, 32, 51, 100, 32, 111, 114, 32, 52, 100, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 115, 99, 97, 108, 97, 114, 32, 118, 97, 108, 117, 101, 115, 44, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 100, 105, 115, 99, 114, 101, 116, 105, 122, 101, 100, 32, 111, 110, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 117, 108, 97, 114, 47, 112, 97, 114, 97, 108, 108, 101, 108, 101, 112, 105, 112, 101, 100, 105, 99, 32, 100, 111, 109, 97, 105, 110, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 117, 114, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 115, 101, 32, 97, 114, 114, 97, 121, 115, 32, 97, 114, 101, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 119, 105, 100, 116, 104, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 111, 108, 117, 109, 110, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 120, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 104, 101, 105, 103, 104, 116, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 114, 111, 119, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 121, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 100, 101, 112, 116, 104, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 115, 108, 105, 99, 101, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 122, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 32, 100, 101, 112, 116, 104, 32, 105, 115, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 49, 32, 102, 111, 114, 32, 117, 115, 117, 97, 108, 32, 50, 100, 32, 99, 111, 108, 111, 114, 32, 111, 114, 32, 103, 114, 97, 121, 115, 99, 97, 108, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 115, 112, 101, 99, 116, 114, 117, 109, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 99, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 105, 115, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 51, 32, 97, 110, 100, 32, 52, 32, 102, 111, 114, 32, 117, 115, 117, 97, 108, 32, 82, 71, 66, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 114, 101, 32, 97, 114, 101, 32, 110, 111, 32, 115, 105, 122, 101, 32, 108, 105, 109, 105, 116, 97, 116, 105, 111, 110, 115, 32, 111, 110, 32, 101, 97, 99, 104, 32, 105, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 46, 32, 80, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 108, 105, 99, 101, 115, 32, 111, 114, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 99, 97, 110, 32, 98, 101, 32, 111, 102, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 115, 105, 122, 101, 32, 119, 105, 116, 104, 105, 110, 32, 116, 104, 101, 32, 108, 105, 109, 105, 116, 115, 32, 111, 102, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 109, 101, 109, 111, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 32, 97, 110, 100, 32, 100, 101, 112, 116, 104, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 97, 114, 101, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 97, 115, 32, 39, 115, 112, 97, 116, 105, 97, 108, 39, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 44, 32, 119, 104, 105, 108, 101, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 104, 97, 115, 32, 97, 32, 39, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 39, 32, 109, 101, 97, 110, 105, 110, 103, 46, 32, 84, 104, 117, 115, 44, 32, 97, 32, 52, 100, 32, 105, 109, 97, 103, 101, 32, 105, 110, 32, 71, 39, 77, 73, 67, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 109, 111, 115, 116, 32, 111, 102, 116, 101, 110, 10, 92, 110, 32, 32, 32, 32, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 32, 51, 100, 32, 100, 97, 116, 97, 115, 101, 116, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 118, 111, 120, 101, 108, 115, 46, 32, 77, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 119, 105, 108, 108, 32, 115, 116, 105, 99, 107, 10, 92, 110, 32, 32, 32, 32, 32, 119, 105, 116, 104, 32, 116, 104, 105, 115, 32, 105, 100, 101, 97, 32, 40, 101, 46, 103, 46, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 98, 108, 117, 114, 39, 32, 119, 105, 108, 108, 32, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 115, 32, 111, 110, 108, 121, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 120, 121, 122, 39, 32, 97, 120, 101, 115, 41, 46, 10, 92, 110, 32, 32, 45, 32, 65, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 118, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 100, 97, 116, 97, 116, 121, 112, 101, 46, 32, 73, 116, 32, 99, 97, 110, 32, 98, 101, 32, 111, 110, 101, 32, 97, 109, 111, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 98, 111, 111, 108, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 98, 111, 111, 108, 101, 97, 110, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 123, 32, 48, 61, 102, 97, 108, 115, 101, 32, 124, 32, 49, 61, 116, 114, 117, 101, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 99, 104, 97, 114, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 99, 104, 97, 114, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 50, 53, 53, 93, 32, 40, 56, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 99, 111, 109, 109, 111, 110, 108, 121, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 56, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 115, 32, 82, 71, 66, 91, 65, 93, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 99, 104, 97, 114, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 49, 50, 56, 44, 49, 50, 55, 93, 32, 40, 56, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 115, 104, 111, 114, 116, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 115, 104, 111, 114, 116, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 54, 53, 53, 51, 53, 93, 32, 40, 49, 54, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 99, 111, 109, 109, 111, 110, 108, 121, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 49, 54, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 115, 32, 82, 71, 66, 91, 65, 93, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 115, 104, 111, 114, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 51, 50, 55, 54, 56, 44, 51, 50, 55, 54, 55, 93, 32, 40, 49, 54, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 105, 110, 116, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 50, 94, 51, 50, 45, 49, 93, 32, 40, 51, 50, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 105, 110, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 50, 94, 51, 49, 44, 50, 94, 51, 49, 45, 49, 93, 32, 40, 51, 50, 32, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 102, 108, 111, 97, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 51, 46, 52, 69, 51, 56, 44, 43, 51, 46, 52, 69, 51, 56, 93, 32, 40, 51, 50, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 112, 105, 120, 101, 108, 115, 32, 97, 115, 32, 51, 50, 32, 98, 105, 116, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 110, 117, 109, 98, 101, 114, 115, 46, 32, 84, 104, 105, 115, 32, 105, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 100, 97, 116, 97, 116, 121, 112, 101, 32, 117, 115, 101, 100, 32, 98, 121, 32, 71, 39, 77, 73, 67, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 100, 111, 117, 98, 108, 101, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 49, 46, 55, 69, 51, 48, 56, 44, 49, 46, 55, 69, 51, 48, 56, 93, 32, 40, 54, 52, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 112, 105, 120, 101, 108, 115, 32, 97, 115, 32, 54, 52, 32, 98, 105, 116, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 110, 117, 109, 98, 101, 114, 115, 46, 10, 92, 110, 32, 32, 45, 32, 67, 111, 110, 115, 105, 100, 101, 114, 105, 110, 103, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 116, 104, 97, 110, 32, 39, 102, 108, 111, 97, 116, 39, 32, 105, 115, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 117, 115, 101, 108, 101, 115, 115, 44, 32, 101, 120, 99, 101, 112, 116, 32, 116, 111, 32, 102, 111, 114, 99, 101, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 32, 116, 111, 32, 97, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 102, 111, 114, 109, 97, 116, 46, 32, 72, 101, 110, 99, 101, 44, 32, 109, 111, 115, 116, 32, 71, 39, 77, 73, 67, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 39, 102, 108, 111, 97, 116, 39, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 116, 121, 112, 101, 39, 32, 105, 102, 32, 121, 111, 117, 32, 110, 101, 101, 100, 32, 116, 111, 32, 115, 119, 105, 116, 99, 104, 32, 116, 111, 32, 97, 110, 111, 116, 104, 101, 114, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 41, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 116, 101, 109, 115, 32, 111, 102, 32, 97, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 110, 32, 71, 39, 77, 73, 67, 44, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 105, 115, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 97, 115, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 105, 116, 101, 109, 115, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 112, 97, 99, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 39, 32, 39, 46, 32, 83, 117, 99, 104, 32, 105, 116, 101, 109, 115, 32, 97, 114, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 32, 97, 110, 100, 32, 101, 120, 101, 99, 117, 116, 101, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 101, 102, 116, 32, 116, 111, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 114, 105, 103, 104, 116, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 104, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 105, 110, 112, 117, 116, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 32, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 32, 45, 111, 117, 116, 112, 117, 116, 32, 111, 117, 116, 112, 117, 116, 46, 106, 112, 103, 39, 10, 92, 110, 32, 32, 32, 32, 32, 100, 101, 102, 105, 110, 101, 115, 32, 97, 32, 118, 97, 108, 105, 100, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 99, 111, 109, 112, 111, 115, 101, 100, 32, 111, 102, 32, 110, 105, 110, 101, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 105, 115, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 119, 104, 105, 99, 104, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 115, 32, 101, 105, 116, 104, 101, 114, 32, 97, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 10, 92, 110, 32, 32, 32, 32, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 32, 111, 114, 32, 97, 32, 115, 112, 101, 99, 105, 97, 108, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 45, 32, 69, 115, 99, 97, 112, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 39, 92, 92, 39, 32, 97, 110, 100, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 32, 39, 92, 34, 39, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 40, 97, 115, 32, 117, 115, 117, 97, 108, 41, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 105, 116, 101, 109, 115, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 115, 112, 97, 99, 101, 115, 44, 32, 111, 114, 32, 97, 110, 121, 32, 111, 116, 104, 101, 114, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 115, 10, 92, 110, 32, 32, 32, 32, 32, 39, 115, 105, 110, 103, 108, 101, 92, 92, 32, 105, 116, 101, 109, 39, 32, 97, 110, 100, 32, 39, 92, 34, 115, 105, 110, 103, 108, 101, 32, 105, 116, 101, 109, 92, 34, 39, 32, 100, 101, 102, 105, 110, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 115, 116, 114, 105, 110, 103, 32, 105, 116, 101, 109, 44, 32, 119, 105, 116, 104, 32, 97, 32, 115, 112, 97, 99, 101, 32, 105, 110, 32, 105, 116, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 110, 112, 117, 116, 32, 100, 97, 116, 97, 32, 105, 116, 101, 109, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 102, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 97, 112, 112, 101, 97, 114, 115, 32, 116, 111, 32, 98, 101, 32, 97, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 100, 97, 116, 97, 32, 97, 114, 101, 32, 108, 111, 97, 100, 101, 100, 32, 97, 110, 100, 32, 105, 110, 115, 101, 114, 116, 101, 100, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 83, 112, 101, 99, 105, 97, 108, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 32, 39, 45, 39, 32, 97, 110, 100, 32, 39, 45, 46, 101, 120, 116, 39, 32, 115, 116, 97, 110, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 115, 116, 114, 101, 97, 109, 115, 44, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 102, 111, 114, 99, 101, 100, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 39, 101, 120, 116, 39, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 32, 40, 101, 46, 103, 46, 32, 39, 45, 46, 106, 112, 103, 39, 32, 111, 114, 32, 39, 45, 46, 112, 110, 103, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 112, 101, 99, 105, 97, 108, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 115, 32, 109, 97, 121, 32, 98, 101, 32, 117, 115, 101, 100, 32, 97, 115, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 97, 110, 100, 32, 105, 110, 115, 101, 114, 116, 32, 110, 101, 119, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 118, 97, 108, 117, 101, 115, 44, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 39, 32, 111, 114, 32, 39, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 120, 78, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 49, 32, 111, 114, 32, 78, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 115, 101, 108, 101, 99, 116, 105, 111, 110, 39, 32, 109, 97, 121, 32, 99, 111, 110, 116, 97, 105, 110, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 105, 109, 97, 103, 101, 115, 32, 40, 115, 101, 101, 32, 110, 101, 120, 116, 32, 115, 101, 99, 116, 105, 111, 110, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 119, 105, 100, 116, 104, 91, 37, 93, 44, 95, 104, 101, 105, 103, 104, 116, 91, 37, 93, 44, 95, 100, 101, 112, 116, 104, 91, 37, 93, 44, 95, 115, 112, 101, 99, 116, 114, 117, 109, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 115, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 32, 97, 110, 100, 32, 118, 97, 108, 117, 101, 115, 32, 40, 97, 100, 100, 105, 110, 103, 32, 39, 37, 39, 32, 116, 111, 32, 97, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 109, 101, 97, 110, 115, 32, 39, 112, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 105, 122, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 120, 105, 115, 44, 32, 116, 97, 107, 101, 110, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 39, 91, 45, 49, 93, 39, 39, 41, 46, 32, 65, 110, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 99, 97, 110, 32, 98, 101, 32, 97, 108, 115, 111, 32, 119, 114, 105, 116, 116, 101, 110, 32, 97, 115, 32, 39, 91, 105, 109, 97, 103, 101, 93, 39, 44, 32, 97, 110, 100, 32, 105, 115, 32, 116, 104, 101, 110, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 115, 105, 122, 101, 32, 40, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 120, 105, 115, 41, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 116, 104, 101, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 91, 105, 109, 97, 103, 101, 93, 46, 32, 39, 118, 97, 108, 117, 101, 115, 39, 32, 99, 97, 110, 32, 98, 101, 32, 101, 105, 116, 104, 101, 114, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 110, 117, 109, 98, 101, 114, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 44, 32, 111, 114, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 97, 115, 32, 101, 46, 103, 46, 32, 105, 110, 32, 105, 110, 112, 117, 116, 32, 105, 116, 101, 109, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 105, 102, 40, 99, 61, 61, 49, 44, 121, 44, 48, 41, 41, 39, 32, 119, 104, 105, 99, 104, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 50, 53, 54, 120, 50, 53, 54, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 97, 116, 105, 97, 108, 32, 115, 104, 97, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 114, 101, 100, 32, 97, 110, 100, 32, 103, 114, 101, 101, 110, 32, 99, 104, 97, 110, 110, 101, 108, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 40, 118, 49, 44, 118, 50, 44, 46, 46, 41, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 86, 97, 108, 117, 101, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 105, 110, 115, 105, 100, 101, 32, 112, 97, 114, 101, 110, 116, 104, 101, 115, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 39, 44, 39, 32, 40, 99, 111, 108, 117, 109, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 46, 41, 44, 32, 39, 59, 39, 32, 40, 114, 111, 119, 32, 115, 101, 112, 46, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 47, 39, 32, 40, 115, 108, 105, 99, 101, 32, 115, 101, 112, 46, 41, 32, 111, 114, 32, 39, 94, 39, 32, 40, 99, 104, 97, 110, 110, 101, 108, 32, 115, 101, 112, 46, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 40, 49, 44, 50, 44, 51, 59, 52, 44, 53, 44, 54, 59, 55, 44, 56, 44, 57, 41, 39, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 51, 120, 51, 32, 109, 97, 116, 114, 105, 120, 32, 40, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 41, 44, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 49, 32, 116, 111, 32, 57, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 48, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 39, 101, 109, 112, 116, 121, 39, 32, 105, 109, 97, 103, 101, 44, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 110, 111, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 46, 32, 69, 109, 112, 116, 121, 32, 105, 109, 97, 103, 101, 115, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 111, 110, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 110, 32, 114, 97, 114, 101, 32, 111, 99, 99, 97, 115, 105, 111, 110, 115, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 112, 117, 116, 32, 105, 116, 101, 109, 32, 39, 110, 97, 109, 101, 61, 118, 97, 108, 117, 101, 39, 32, 100, 101, 99, 108, 97, 114, 101, 115, 32, 97, 32, 110, 101, 119, 32, 108, 111, 99, 97, 108, 32, 111, 114, 32, 103, 108, 111, 98, 97, 108, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 110, 97, 109, 101, 39, 44, 32, 111, 114, 32, 97, 115, 115, 105, 103, 110, 32, 97, 32, 110, 101, 119, 10, 92, 110, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 32, 116, 111, 32, 97, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 118, 97, 114, 105, 97, 98, 108, 101, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 115, 101, 116, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 10, 92, 110, 32, 32, 32, 32, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 32, 65, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 108, 111, 99, 97, 108, 32, 116, 111, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 111, 109, 109, 97, 110, 100, 32, 101, 120, 99, 101, 112, 116, 10, 92, 110, 32, 32, 32, 32, 32, 119, 104, 101, 110, 32, 105, 116, 32, 115, 116, 97, 114, 116, 115, 32, 98, 121, 32, 116, 104, 101, 32, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 39, 95, 39, 46, 32, 73, 110, 32, 116, 104, 97, 116, 32, 99, 97, 115, 101, 44, 32, 105, 116, 32, 98, 101, 99, 111, 109, 101, 115, 32, 97, 108, 115, 111, 32, 97, 99, 99, 101, 115, 115, 105, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 98, 121, 32, 97, 110, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 110, 118, 111, 107, 101, 100, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 99, 111, 112, 101, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 67, 111, 109, 109, 97, 110, 100, 32, 105, 116, 101, 109, 115, 32, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 98, 121, 32, 39, 45, 39, 32, 100, 101, 115, 105, 103, 110, 97, 116, 101, 115, 32, 97, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 46, 32, 71, 101, 110, 101, 114, 97, 108, 108, 121, 44, 32, 99, 111, 109, 109, 97, 110, 100, 115, 10, 92, 110, 32, 32, 32, 32, 32, 112, 101, 114, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 110, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 109, 111, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 104, 97, 118, 101, 32, 116, 119, 111, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 110, 97, 109, 101, 115, 32, 40, 114, 101, 103, 117, 108, 97, 114, 32, 97, 110, 100, 32, 115, 104, 111, 114, 116, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 99, 111, 109, 109, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 110, 97, 109, 101, 115, 32, 39, 45, 114, 101, 115, 105, 122, 101, 39, 32, 97, 110, 100, 32, 39, 45, 114, 39, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 105, 109, 97, 103, 101, 32, 114, 101, 115, 105, 122, 105, 110, 103, 32, 97, 99, 116, 105, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 121, 32, 104, 97, 118, 101, 32, 109, 97, 110, 100, 97, 116, 111, 114, 121, 32, 111, 114, 32, 111, 112, 116, 105, 111, 110, 97, 108, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 32, 67, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 109, 117, 115, 116, 32, 98, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 110, 101, 120, 116, 32, 105, 116, 101, 109, 32, 111, 110, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 46, 32, 67, 111, 109, 109, 97, 115, 32, 39, 44, 39, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 101, 112, 97, 114, 97, 116, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 32, 105, 102, 32, 97, 110, 121, 32, 114, 101, 113, 117, 105, 114, 101, 100, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 111, 102, 32, 97, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 121, 32, 98, 101, 32, 114, 101, 115, 116, 114, 105, 99, 116, 101, 100, 32, 111, 110, 108, 121, 32, 116, 111, 32, 97, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 44, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 97, 112, 112, 101, 110, 100, 105, 110, 103, 32, 39, 91, 115, 117, 98, 115, 101, 116, 93, 39, 32, 116, 111, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 46, 32, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 118, 97, 108, 105, 100, 32, 115, 121, 110, 116, 97, 120, 101, 115, 32, 102, 111, 114, 32, 39, 115, 117, 98, 115, 101, 116, 39, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 49, 44, 51, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 91, 49, 93, 32, 97, 110, 100, 32, 91, 51, 93, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 51, 45, 53, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 51, 93, 32, 116, 111, 32, 91, 53, 93, 32, 40, 105, 46, 101, 44, 32, 91, 51, 93, 44, 91, 52, 93, 32, 97, 110, 100, 32, 91, 53, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 53, 48, 37, 45, 49, 48, 48, 37, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 104, 97, 108, 102, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 45, 52, 45, 45, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 97, 110, 100, 32, 116, 104, 101, 32, 102, 111, 117, 114, 32, 108, 97, 116, 101, 115, 116, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 45, 57, 58, 51, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 32, 116, 111, 32, 91, 57, 93, 44, 32, 119, 105, 116, 104, 32, 97, 32, 115, 116, 101, 112, 32, 111, 102, 32, 51, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 105, 46, 101, 46, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 32, 91, 51, 93, 44, 32, 91, 54, 93, 32, 97, 110, 100, 32, 91, 57, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 45, 45, 49, 58, 50, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 119, 105, 116, 104, 32, 101, 118, 101, 110, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 50, 45, 52, 44, 53, 48, 37, 45, 45, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 91, 50, 93, 44, 91, 51, 93, 44, 91, 52, 93, 32, 97, 110, 100, 32, 111, 110, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 104, 97, 108, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 94, 48, 44, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 116, 119, 111, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 110, 97, 109, 101, 49, 44, 110, 97, 109, 101, 50, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 110, 97, 109, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 39, 110, 97, 109, 101, 49, 39, 32, 97, 110, 100, 32, 39, 110, 97, 109, 101, 50, 39, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 100, 105, 99, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 119, 97, 121, 115, 32, 115, 111, 114, 116, 101, 100, 32, 105, 110, 32, 105, 110, 99, 114, 101, 97, 115, 105, 110, 103, 32, 111, 114, 100, 101, 114, 44, 32, 97, 110, 100, 32, 100, 117, 112, 108, 105, 99, 97, 116, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 97, 114, 101, 10, 92, 110, 32, 32, 32, 32, 32, 100, 105, 115, 99, 97, 114, 100, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 32, 39, 91, 51, 45, 49, 44, 49, 45, 51, 93, 39, 32, 97, 110, 100, 32, 39, 91, 49, 44, 49, 44, 49, 44, 51, 44, 50, 93, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 10, 92, 110, 32, 32, 32, 32, 32, 39, 91, 49, 45, 51, 93, 39, 46, 32, 73, 102, 32, 121, 111, 117, 32, 119, 97, 110, 116, 32, 116, 111, 32, 114, 101, 112, 101, 97, 116, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 116, 105, 109, 101, 115, 32, 111, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 44, 32, 117, 115, 101, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 39, 45, 114, 101, 112, 101, 97, 116, 46, 46, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 46, 32, 73, 110, 118, 101, 114, 116, 105, 110, 103, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 97, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 99, 97, 110, 32, 98, 101, 32, 97, 99, 104, 105, 101, 118, 101, 100, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 118, 101, 114, 116, 105, 110, 103, 32, 102, 105, 114, 115, 116, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 44, 32, 119, 105, 116, 104, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 114, 101, 118, 101, 114, 115, 101, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 39, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 110, 118, 111, 107, 101, 100, 32, 119, 105, 116, 104, 111, 117, 116, 32, 39, 91, 115, 117, 98, 115, 101, 116, 93, 39, 32, 97, 114, 101, 32, 97, 112, 112, 108, 105, 101, 100, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 45, 45, 39, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 39, 45, 39, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 97, 99, 116, 32, 39, 105, 110, 45, 112, 108, 97, 99, 101, 39, 32, 98, 117, 116, 32, 105, 110, 115, 101, 114, 116, 115, 32, 105, 116, 115, 10, 92, 110, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 32, 97, 115, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 114, 101, 32, 97, 114, 101, 32, 116, 119, 111, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 116, 121, 112, 101, 115, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 104, 97, 116, 32, 99, 97, 110, 32, 98, 101, 32, 114, 117, 110, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 78, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 114, 101, 32, 104, 97, 114, 100, 45, 99, 111, 100, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 97, 108, 105, 116, 105, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 99, 111, 114, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 116, 104, 117, 115, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 97, 115, 32, 109, 97, 99, 104, 105, 110, 101, 32, 99, 111, 100, 101, 32, 97, 110, 100, 32, 114, 117, 110, 32, 113, 117, 105, 99, 107, 108, 121, 44, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 79, 109, 105, 116, 116, 105, 110, 103, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 44, 32, 101, 120, 99, 101, 112, 116, 32, 105, 102, 32, 97, 108, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 97, 108, 115, 111, 32, 111, 109, 105, 116, 116, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 99, 97, 108, 108, 32, 116, 111, 32, 39, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 44, 44, 53, 39, 32, 105, 115, 32, 105, 110, 118, 97, 108, 105, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 117, 116, 32, 39, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 39, 32, 105, 115, 32, 99, 111, 114, 114, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 114, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 32, 71, 39, 77, 73, 67, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 111, 102, 32, 110, 97, 116, 105, 118, 101, 32, 111, 114, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 97, 110, 100, 32, 114, 117, 110, 32, 115, 108, 111, 119, 101, 114, 32, 116, 104, 97, 110, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 66, 117, 116, 32, 111, 109, 105, 116, 116, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 44, 44, 49, 48, 48, 44, 44, 50, 39, 32, 111, 114, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 39, 32, 97, 114, 101, 32, 99, 111, 114, 114, 101, 99, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 117, 115, 101, 114, 32, 109, 97, 121, 32, 101, 97, 115, 105, 108, 121, 32, 97, 100, 100, 32, 105, 116, 115, 32, 111, 119, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 111, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 40, 115, 101, 101, 32, 115, 101, 99, 116, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 39, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 39, 41, 46, 32, 78, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 97, 100, 100, 101, 100, 32, 117, 110, 108, 101, 115, 115, 32, 121, 111, 117, 32, 109, 111, 100, 105, 102, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 110, 112, 117, 116, 115, 32, 47, 32, 111, 117, 116, 112, 117, 116, 115, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 114, 101, 97, 100, 47, 119, 114, 105, 116, 101, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 108, 97, 115, 115, 105, 99, 97, 108, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 44, 32, 105, 110, 99, 108, 117, 100, 105, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 50, 100, 32, 103, 114, 97, 121, 115, 99, 97, 108, 101, 47, 99, 111, 108, 111, 114, 32, 102, 105, 108, 101, 115, 58, 32, 46, 112, 110, 103, 44, 32, 46, 106, 112, 101, 103, 44, 32, 46, 103, 105, 102, 44, 32, 46, 112, 110, 109, 44, 32, 46, 116, 105, 102, 44, 32, 46, 98, 109, 112, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 102, 105, 108, 101, 115, 58, 32, 46, 100, 99, 109, 44, 32, 46, 104, 100, 114, 44, 32, 46, 110, 105, 105, 44, 32, 46, 112, 97, 110, 44, 32, 46, 105, 110, 114, 44, 32, 46, 112, 110, 107, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 58, 32, 46, 109, 112, 101, 103, 44, 32, 46, 97, 118, 105, 44, 32, 46, 109, 111, 118, 44, 32, 46, 111, 103, 103, 44, 32, 46, 102, 108, 118, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 71, 101, 110, 101, 114, 105, 99, 32, 97, 115, 99, 105, 105, 32, 111, 114, 32, 98, 105, 110, 97, 114, 121, 32, 100, 97, 116, 97, 32, 102, 105, 108, 101, 115, 58, 32, 46, 99, 105, 109, 103, 44, 32, 46, 99, 105, 109, 103, 122, 44, 32, 46, 100, 108, 109, 44, 32, 46, 97, 115, 99, 44, 32, 46, 112, 102, 109, 44, 32, 46, 114, 97, 119, 44, 32, 46, 116, 120, 116, 44, 32, 46, 104, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 105, 108, 101, 115, 58, 32, 46, 111, 102, 102, 46, 10, 92, 110, 32, 32, 45, 32, 87, 104, 101, 110, 32, 100, 101, 97, 108, 105, 110, 103, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 71, 39, 77, 73, 67, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 114, 101, 97, 100, 115, 44, 32, 119, 114, 105, 116, 101, 115, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 115, 32, 100, 97, 116, 97, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 117, 115, 117, 97, 108, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 115, 112, 97, 99, 101, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 109, 97, 110, 97, 103, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 116, 104, 97, 116, 32, 109, 97, 121, 32, 98, 101, 32, 114, 101, 97, 100, 32, 102, 114, 111, 109, 32, 102, 105, 108, 101, 115, 32, 111, 114, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 98, 121, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 115, 116, 111, 114, 101, 100, 32, 97, 115, 32, 111, 110, 101, 45, 99, 111, 108, 117, 109, 110, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 115, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 116, 104, 101, 32, 111, 98, 106, 101, 99, 116, 32, 100, 97, 116, 97, 44, 32, 105, 110, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 111, 114, 100, 101, 114, 58, 32, 123, 32, 109, 97, 103, 105, 99, 95, 110, 117, 109, 98, 101, 114, 59, 32, 115, 105, 122, 101, 115, 59, 32, 118, 101, 114, 116, 105, 99, 101, 115, 59, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 59, 32, 99, 111, 108, 111, 114, 115, 59, 32, 111, 112, 97, 99, 105, 116, 105, 101, 115, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 84, 104, 101, 115, 101, 32, 51, 100, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 99, 97, 110, 32, 98, 101, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 97, 115, 32, 114, 101, 103, 117, 108, 97, 114, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 115, 112, 108, 105, 116, 51, 100, 39, 32, 102, 111, 114, 32, 97, 99, 99, 101, 115, 115, 105, 110, 103, 32, 101, 97, 99, 104, 32, 111, 102, 32, 116, 104, 101, 115, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 100, 97, 116, 97, 32, 115, 101, 112, 97, 114, 97, 116, 101, 108, 121, 41, 46, 10, 92, 110, 32, 32, 45, 32, 66, 101, 32, 97, 119, 97, 114, 101, 32, 116, 104, 97, 116, 32, 117, 115, 117, 97, 108, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 32, 109, 97, 121, 32, 98, 101, 32, 115, 111, 109, 101, 116, 105, 109, 101, 115, 32, 110, 111, 116, 32, 97, 100, 97, 112, 116, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 97, 108, 108, 32, 116, 104, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 44, 32, 115, 105, 110, 99, 101, 32, 71, 39, 77, 73, 67, 32, 117, 115, 101, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 99, 111, 100, 105, 110, 103, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 115, 97, 118, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 116, 104, 97, 116, 32, 119, 97, 115, 32, 105, 110, 105, 116, 105, 97, 108, 108, 121, 32, 108, 111, 97, 100, 101, 100, 32, 97, 115, 32, 97, 32, 49, 54, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 32, 105, 109, 97, 103, 101, 44, 32, 97, 115, 32, 97, 32, 46, 106, 112, 103, 32, 102, 105, 108, 101, 32, 119, 105, 108, 108, 32, 114, 101, 115, 117, 108, 116, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 32, 108, 111, 115, 115, 32, 111, 102, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 46, 32, 85, 115, 101, 32, 116, 104, 101, 32, 46, 99, 105, 109, 103, 32, 102, 105, 108, 101, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 40, 111, 114, 32, 46, 99, 105, 109, 103, 122, 44, 32, 105, 116, 115, 32, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 118, 101, 114, 115, 105, 111, 110, 41, 32, 116, 111, 32, 101, 110, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 97, 108, 108, 32, 100, 97, 116, 97, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 119, 105, 108, 108, 32, 98, 101, 32, 112, 114, 101, 115, 101, 114, 118, 101, 100, 32, 119, 104, 101, 110, 32, 115, 97, 118, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 70, 105, 108, 101, 32, 111, 112, 116, 105, 111, 110, 115, 32, 99, 97, 110, 47, 109, 117, 115, 116, 32, 98, 101, 32, 115, 101, 116, 32, 102, 111, 114, 32, 116, 104, 101, 115, 101, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 86, 105, 100, 101, 111, 32, 102, 105, 108, 101, 115, 58, 32, 79, 110, 108, 121, 32, 115, 117, 98, 45, 102, 114, 97, 109, 101, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 109, 97, 121, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 101, 120, 116, 44, 91, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 91, 37, 93, 91, 44, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 91, 37, 93, 91, 44, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 114, 97, 116, 101, 32, 97, 110, 100, 32, 98, 105, 116, 114, 97, 116, 101, 32, 40, 105, 110, 32, 75, 98, 47, 115, 41, 32, 99, 97, 110, 32, 98, 101, 32, 97, 108, 115, 111, 32, 115, 101, 116, 32, 98, 121, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 46, 109, 112, 103, 44, 95, 102, 112, 115, 44, 95, 98, 105, 116, 114, 97, 116, 101, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 114, 97, 119, 32, 98, 105, 110, 97, 114, 121, 32, 102, 105, 108, 101, 115, 58, 32, 73, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 97, 110, 100, 32, 105, 110, 112, 117, 116, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 32, 109, 97, 121, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 104, 101, 110, 32, 108, 111, 97, 100, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 46, 114, 97, 119, 32, 102, 105, 108, 101, 115, 32, 119, 105, 116, 104, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 114, 97, 119, 91, 44, 116, 121, 112, 101, 93, 91, 44, 119, 105, 100, 116, 104, 93, 91, 44, 104, 101, 105, 103, 104, 116, 91, 44, 100, 101, 112, 116, 104, 91, 44, 100, 105, 109, 93, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 73, 102, 32, 110, 111, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 97, 32, 111, 110, 101, 45, 99, 111, 108, 117, 109, 110, 32, 118, 101, 99, 116, 111, 114, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 109, 97, 120, 105, 109, 117, 109, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 104, 101, 105, 103, 104, 116, 46, 32, 80, 105, 120, 101, 108, 32, 116, 121, 112, 101, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 46, 114, 97, 119, 91, 44, 116, 121, 112, 101, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 98, 111, 111, 108, 32, 124, 32, 117, 99, 104, 97, 114, 32, 124, 32, 99, 104, 97, 114, 32, 124, 32, 117, 115, 104, 111, 114, 116, 32, 124, 32, 115, 104, 111, 114, 116, 32, 124, 32, 117, 105, 110, 116, 32, 124, 32, 105, 110, 116, 32, 124, 32, 102, 108, 111, 97, 116, 32, 124, 32, 100, 111, 117, 98, 108, 101, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 121, 117, 118, 32, 102, 105, 108, 101, 115, 58, 32, 73, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 97, 110, 100, 32, 111, 110, 108, 121, 32, 115, 117, 98, 45, 102, 114, 97, 109, 101, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 109, 97, 121, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 121, 117, 118, 44, 119, 105, 100, 116, 104, 44, 104, 101, 105, 103, 104, 116, 91, 44, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 91, 44, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 91, 44, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 116, 105, 102, 102, 32, 102, 105, 108, 101, 115, 58, 32, 79, 110, 108, 121, 32, 115, 117, 98, 45, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 112, 97, 103, 101, 115, 32, 116, 105, 102, 102, 32, 102, 105, 108, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 116, 105, 102, 44, 91, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 44, 91, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 44, 91, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 103, 105, 102, 32, 102, 105, 108, 101, 115, 58, 32, 65, 110, 105, 109, 97, 116, 101, 100, 32, 103, 105, 102, 32, 102, 105, 108, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 115, 97, 118, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 103, 105, 102, 44, 102, 112, 115, 44, 110, 98, 95, 108, 111, 111, 112, 115, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 83, 112, 101, 99, 105, 102, 121, 32, 39, 110, 98, 95, 108, 111, 111, 112, 115, 61, 48, 39, 32, 116, 111, 32, 103, 101, 116, 32, 97, 110, 32, 105, 110, 102, 105, 110, 105, 116, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 108, 111, 111, 112, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 106, 112, 101, 103, 32, 102, 105, 108, 101, 115, 58, 32, 84, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 113, 117, 97, 108, 105, 116, 121, 32, 109, 97, 121, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 40, 105, 110, 32, 37, 41, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 106, 112, 103, 44, 51, 48, 39, 32, 40, 104, 101, 114, 101, 44, 32, 116, 111, 32, 103, 101, 116, 32, 97, 32, 51, 48, 37, 32, 113, 117, 97, 108, 105, 116, 121, 32, 111, 117, 116, 112, 117, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 109, 110, 99, 32, 102, 105, 108, 101, 115, 58, 32, 84, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 104, 101, 97, 100, 101, 114, 32, 99, 97, 110, 32, 115, 101, 116, 32, 102, 114, 111, 109, 32, 97, 110, 111, 116, 104, 101, 114, 32, 102, 105, 108, 101, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 109, 110, 99, 44, 104, 101, 97, 100, 101, 114, 95, 116, 101, 109, 112, 108, 97, 116, 101, 46, 109, 110, 99, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 70, 105, 108, 101, 110, 97, 109, 101, 115, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 39, 46, 103, 109, 105, 99, 39, 32, 97, 114, 101, 32, 97, 115, 115, 117, 109, 101, 100, 32, 116, 111, 32, 98, 101, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 115, 46, 32, 76, 111, 97, 100, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 104, 32, 97, 32, 102, 105, 108, 101, 32, 119, 105, 108, 108, 32, 97, 100, 100, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 116, 32, 100, 101, 102, 105, 110, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 110, 115, 101, 114, 116, 105, 110, 103, 32, 39, 101, 120, 116, 58, 39, 32, 111, 110, 32, 116, 104, 101, 32, 98, 101, 103, 105, 110, 110, 105, 110, 103, 32, 111, 102, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 40, 101, 46, 103, 46, 32, 39, 106, 112, 103, 58, 102, 105, 108, 101, 110, 97, 109, 101, 39, 41, 32, 102, 111, 114, 99, 101, 115, 32, 71, 39, 77, 73, 67, 32, 116, 111, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 47, 119, 114, 105, 116, 101, 32, 116, 104, 101, 32, 102, 105, 108, 101, 32, 97, 115, 32, 105, 116, 32, 119, 111, 117, 108, 100, 32, 104, 97, 118, 101, 32, 98, 101, 101, 110, 32, 100, 111, 110, 101, 32, 105, 102, 32, 105, 116, 32, 104, 97, 100, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 83, 111, 109, 101, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 115, 32, 97, 110, 100, 32, 111, 112, 116, 105, 111, 110, 115, 32, 109, 97, 121, 32, 110, 111, 116, 32, 98, 101, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 121, 111, 117, 114, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 39, 103, 109, 105, 99, 39, 44, 32, 100, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 99, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 32, 102, 108, 97, 103, 115, 32, 115, 101, 116, 32, 102, 111, 114, 32, 116, 104, 101, 32, 98, 117, 105, 108, 100, 32, 111, 102, 32, 116, 104, 101, 32, 39, 103, 109, 105, 99, 39, 32, 98, 105, 110, 97, 114, 105, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 83, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 39, 64, 39, 44, 32, 39, 36, 39, 32, 111, 114, 32, 39, 123, 125, 39, 32, 109, 97, 121, 32, 98, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 101, 102, 111, 114, 101, 32, 98, 101, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 46, 32, 85, 115, 101, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 110, 103, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 98, 101, 108, 111, 119, 32, 116, 111, 32, 97, 99, 99, 101, 115, 115, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 35, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 42, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 99, 112, 117, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 46, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 94, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 98, 111, 115, 105, 116, 121, 32, 108, 101, 118, 101, 108, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 37, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 112, 105, 100, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 124, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 97, 108, 117, 101, 32, 40, 101, 120, 112, 114, 101, 115, 115, 101, 100, 32, 105, 110, 32, 115, 101, 99, 111, 110, 100, 115, 41, 32, 111, 102, 32, 97, 32, 109, 105, 108, 108, 105, 115, 101, 99, 111, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 116, 105, 109, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 63, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 47, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 108, 101, 118, 101, 108, 115, 32, 105, 110, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 99, 111, 112, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 47, 125, 39, 32, 111, 114, 32, 39, 64, 123, 47, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 111, 110, 116, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 103, 108, 111, 98, 97, 108, 32, 115, 99, 111, 112, 101, 44, 32, 111, 114, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 105, 116, 46, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 115, 99, 111, 112, 101, 32, 105, 116, 101, 109, 115, 44, 32, 116, 104, 101, 121, 32, 97, 114, 101, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 121, 32, 115, 108, 97, 115, 104, 101, 115, 32, 39, 47, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 62, 39, 32, 97, 110, 100, 32, 39, 64, 60, 39, 32, 97, 114, 101, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 46, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 110, 101, 115, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 114, 101, 112, 101, 97, 116, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 115, 32, 116, 104, 97, 116, 32, 97, 114, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 114, 117, 110, 110, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 62, 125, 39, 32, 111, 114, 32, 39, 64, 123, 62, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 105, 110, 100, 105, 99, 101, 32, 118, 97, 108, 117, 101, 115, 32, 40, 111, 114, 32, 97, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 116, 104, 101, 109, 41, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 114, 117, 110, 110, 105, 110, 103, 32, 39, 114, 101, 112, 101, 97, 116, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 115, 44, 32, 101, 120, 112, 114, 101, 115, 115, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 99, 101, 110, 100, 105, 110, 103, 32, 111, 114, 100, 101, 114, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 111, 109, 32, 48, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 100, 105, 99, 101, 115, 44, 32, 116, 104, 101, 121, 32, 97, 114, 101, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 60, 125, 39, 32, 111, 114, 32, 39, 64, 123, 60, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 100, 111, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 98, 117, 116, 32, 105, 110, 32, 100, 101, 115, 99, 101, 110, 100, 105, 110, 103, 32, 111, 114, 100, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 105, 110, 100, 105, 99, 101, 39, 32, 111, 114, 32, 39, 64, 123, 105, 110, 100, 105, 99, 101, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 91, 105, 110, 100, 105, 99, 101, 93, 32, 40, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 41, 44, 32, 111, 114, 32, 98, 121, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 101, 97, 116, 117, 114, 101, 32, 40, 111, 114, 32, 115, 117, 98, 115, 101, 116, 41, 32, 111, 102, 32, 105, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 105, 110, 100, 105, 99, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 110, 32, 105, 110, 100, 105, 99, 101, 32, 111, 114, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 46, 32, 82, 101, 113, 117, 101, 115, 116, 101, 100, 32, 39, 102, 101, 97, 116, 117, 114, 101, 100, 39, 32, 99, 97, 110, 32, 98, 101, 32, 111, 110, 101, 32, 111, 102, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 111, 108, 117, 109, 110, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 114, 111, 119, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 115, 108, 105, 99, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 115, 39, 58, 32, 105, 109, 97, 103, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 100, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 100, 115, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 105, 46, 101, 46, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 101, 113, 46, 32, 116, 111, 32, 39, 35, 39, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 114, 39, 58, 32, 105, 109, 97, 103, 101, 32, 115, 104, 97, 114, 101, 100, 32, 115, 116, 97, 116, 101, 32, 40, 49, 44, 32, 105, 102, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 98, 117, 102, 102, 101, 114, 32, 105, 115, 32, 115, 104, 97, 114, 101, 100, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 110, 39, 58, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 32, 111, 114, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 40, 105, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 114, 101, 97, 100, 32, 102, 114, 111, 109, 32, 97, 32, 102, 105, 108, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 98, 39, 58, 32, 105, 109, 97, 103, 101, 32, 98, 97, 115, 101, 110, 97, 109, 101, 32, 40, 105, 46, 101, 46, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 119, 105, 116, 104, 111, 117, 116, 32, 116, 104, 101, 32, 102, 111, 108, 100, 101, 114, 32, 112, 97, 116, 104, 32, 110, 111, 114, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 105, 109, 97, 103, 101, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 40, 105, 46, 101, 32, 108, 97, 115, 116, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 39, 46, 39, 32, 105, 110, 32, 116, 104, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 102, 39, 58, 32, 105, 109, 97, 103, 101, 32, 102, 111, 108, 100, 101, 114, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 35, 39, 58, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 120, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 100, 101, 112, 116, 104, 32, 120, 32, 115, 112, 101, 99, 116, 114, 117, 109, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 43, 39, 58, 32, 115, 117, 109, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 45, 39, 58, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 42, 39, 58, 32, 112, 114, 111, 100, 117, 99, 116, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 47, 39, 58, 32, 113, 117, 111, 116, 105, 101, 110, 116, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 109, 39, 58, 32, 109, 105, 110, 105, 109, 117, 109, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 77, 39, 58, 32, 109, 97, 120, 105, 109, 117, 109, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 97, 39, 58, 32, 97, 118, 101, 114, 97, 103, 101, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 118, 39, 58, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 116, 39, 58, 32, 116, 101, 120, 116, 32, 115, 116, 114, 105, 110, 103, 32, 98, 117, 105, 108, 116, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 44, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 67, 39, 58, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 40, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 99, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 32, 97, 116, 32, 40, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 122, 91, 37, 93, 44, 99, 91, 37, 93, 41, 44, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 105, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 101, 105, 116, 104, 101, 114, 32, 97, 115, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 44, 32, 111, 114, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 116, 111, 32, 101, 118, 97, 108, 117, 97, 116, 101, 32, 40, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 39, 64, 123, 45, 49, 44, 48, 45, 53, 48, 37, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 110, 117, 109, 101, 114, 105, 99, 97, 108, 32, 118, 97, 108, 117, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 109, 105, 110, 103, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 104, 97, 108, 102, 32, 100, 97, 116, 97, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 64, 123, 48, 44, 119, 43, 104, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 117, 109, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 100, 116, 104, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 33, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 105, 115, 105, 98, 105, 108, 105, 116, 121, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 40, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 99, 108, 111, 115, 101, 100, 32, 124, 32, 49, 61, 118, 105, 115, 105, 98, 108, 101, 32, 125, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 33, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 111, 114, 32, 39, 64, 123, 33, 105, 110, 100, 105, 99, 101, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 101, 97, 116, 117, 114, 101, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 40, 111, 114, 32, 91, 105, 110, 100, 105, 99, 101, 93, 44, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 41, 46, 32, 82, 101, 113, 117, 101, 115, 116, 101, 100, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 99, 97, 110, 32, 98, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 100, 116, 104, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 32, 109, 97, 110, 97, 103, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 101, 105, 103, 104, 116, 32, 40, 105, 46, 101, 46, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 32, 109, 97, 110, 97, 103, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 100, 116, 104, 32, 120, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 116, 104, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 103, 101, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 101, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 104, 101, 105, 103, 104, 116, 32, 40, 105, 46, 101, 46, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 103, 101, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 101, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 116, 104, 32, 120, 32, 119, 105, 110, 100, 111, 119, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 117, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 119, 105, 100, 116, 104, 32, 40, 97, 99, 116, 117, 97, 108, 108, 121, 32, 105, 110, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 111, 110, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 39, 32, 118, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 104, 101, 105, 103, 104, 116, 32, 40, 97, 99, 116, 117, 97, 108, 108, 121, 32, 105, 110, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 111, 110, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 117, 118, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 119, 105, 100, 116, 104, 32, 120, 32, 115, 99, 114, 101, 101, 110, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 88, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 111, 114, 32, 45, 49, 44, 32, 105, 102, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 121, 39, 58, 32, 89, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 111, 114, 32, 45, 49, 44, 32, 105, 102, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 98, 39, 58, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 123, 32, 49, 61, 108, 101, 102, 116, 45, 98, 117, 116, 46, 32, 124, 32, 50, 61, 114, 105, 103, 104, 116, 45, 98, 117, 116, 46, 32, 124, 32, 52, 61, 109, 105, 100, 100, 108, 101, 45, 98, 117, 116, 46, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 111, 39, 58, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 119, 104, 101, 101, 108, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 107, 39, 58, 32, 100, 101, 99, 105, 109, 97, 108, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 101, 32, 112, 114, 101, 115, 115, 101, 100, 32, 107, 101, 121, 32, 105, 102, 32, 97, 110, 121, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 110, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 40, 48, 32, 111, 114, 32, 49, 41, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 99, 108, 111, 115, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 114, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 114, 101, 115, 105, 122, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 109, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 109, 111, 118, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 97, 32, 107, 101, 121, 99, 111, 100, 101, 32, 110, 97, 109, 101, 32, 105, 110, 32, 99, 97, 112, 105, 116, 97, 108, 32, 108, 101, 116, 116, 101, 114, 115, 44, 32, 97, 110, 100, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 45, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 98, 111, 111, 108, 101, 97, 110, 32, 100, 101, 115, 99, 114, 105, 98, 105, 110, 103, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 107, 101, 121, 32, 115, 116, 97, 116, 101, 32, 123, 32, 48, 61, 112, 114, 101, 115, 115, 101, 100, 32, 124, 32, 49, 61, 114, 101, 108, 101, 97, 115, 101, 100, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 92, 34, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 92, 34, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 32, 115, 101, 116, 32, 98, 121, 32, 116, 104, 101, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 115, 116, 97, 116, 117, 115, 39, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 64, 123, 125, 39, 32, 115, 116, 97, 110, 100, 115, 32, 116, 104, 117, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 45, 32, 39, 36, 110, 97, 109, 101, 39, 32, 97, 110, 100, 32, 39, 36, 123, 110, 97, 109, 101, 125, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 110, 97, 109, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 116, 32, 112, 114, 101, 118, 105, 111, 117, 115, 108, 121, 32, 98, 121, 32, 105, 116, 101, 109, 32, 39, 110, 97, 109, 101, 61, 118, 97, 108, 117, 101, 39, 41, 44, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 39, 91, 110, 97, 109, 101, 93, 39, 44, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 32, 79, 83, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 40, 105, 110, 32, 116, 104, 105, 115, 32, 111, 114, 100, 101, 114, 41, 46, 10, 92, 110, 32, 32, 45, 32, 39, 36, 62, 39, 32, 97, 110, 100, 32, 39, 36, 60, 39, 32, 40, 114, 101, 115, 112, 46, 32, 39, 36, 123, 62, 125, 39, 32, 97, 110, 100, 32, 39, 36, 123, 60, 125, 39, 41, 32, 97, 114, 101, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 102, 111, 114, 32, 39, 64, 123, 62, 44, 45, 49, 125, 39, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 39, 64, 123, 60, 44, 45, 49, 125, 39, 46, 32, 84, 104, 101, 121, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 105, 110, 99, 114, 101, 97, 115, 105, 110, 103, 47, 100, 101, 99, 114, 101, 97, 115, 105, 110, 103, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 40, 99, 117, 114, 114, 101, 110, 116, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 114, 117, 110, 110, 105, 110, 103, 41, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 46, 10, 92, 110, 32, 32, 45, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 105, 110, 115, 105, 100, 101, 32, 98, 114, 97, 99, 101, 115, 32, 40, 97, 115, 32, 105, 110, 32, 39, 123, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 125, 39, 41, 32, 105, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 97, 115, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 92, 110, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 97, 110, 100, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 44, 32, 101, 120, 99, 101, 112, 116, 32, 102, 111, 114, 32, 116, 104, 101, 32, 116, 104, 114, 101, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 99, 97, 115, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 97, 110, 100, 32, 101, 110, 100, 115, 32, 98, 121, 32, 115, 105, 110, 103, 108, 101, 32, 113, 117, 111, 116, 101, 115, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 32, 116, 104, 97, 116, 32, 99, 111, 109, 112, 111, 115, 101, 115, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 116, 101, 109, 32, 39, 123, 39, 102, 111, 111, 39, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 49, 48, 50, 44, 49, 49, 49, 44, 49, 49, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 97, 110, 100, 32, 101, 110, 100, 115, 32, 119, 105, 116, 104, 32, 98, 97, 99, 107, 113, 117, 111, 116, 101, 115, 32, 39, 96, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 119, 104, 111, 115, 101, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 32, 97, 114, 101, 32, 103, 105, 118, 101, 110, 32, 98, 121, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 32, 98, 97, 99, 107, 113, 117, 111, 116, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 105, 116, 101, 109, 32, 39, 123, 96, 49, 48, 50, 44, 49, 49, 49, 44, 49, 49, 49, 96, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 102, 111, 111, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 39, 39, 61, 61, 39, 39, 32, 111, 114, 32, 39, 39, 33, 61, 39, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 48, 32, 111, 114, 32, 49, 44, 32, 119, 104, 101, 116, 104, 101, 114, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 115, 32, 98, 101, 115, 105, 100, 101, 32, 116, 104, 101, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 97, 114, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 111, 114, 32, 110, 111, 116, 32, 40, 99, 97, 115, 101, 45, 115, 101, 110, 115, 105, 116, 105, 118, 101, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 111, 116, 104, 32, 105, 116, 101, 109, 115, 32, 39, 123, 102, 111, 111, 39, 61, 61, 39, 102, 111, 111, 125, 39, 32, 97, 110, 100, 32, 39, 123, 102, 111, 111, 39, 33, 61, 39, 70, 79, 79, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 119, 105, 116, 104, 32, 97, 110, 32, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 39, 95, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 118, 97, 108, 117, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 116, 114, 117, 110, 99, 97, 116, 101, 100, 32, 116, 111, 32, 97, 32, 114, 101, 97, 100, 97, 98, 108, 101, 32, 102, 111, 114, 109, 97, 116, 46, 10, 92, 110, 32, 32, 45, 32, 73, 116, 101, 109, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 105, 115, 32, 110, 101, 118, 101, 114, 32, 100, 111, 110, 101, 32, 105, 110, 32, 105, 116, 101, 109, 115, 32, 98, 101, 116, 119, 101, 101, 110, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 46, 32, 79, 110, 101, 32, 109, 117, 115, 116, 32, 98, 114, 101, 97, 107, 32, 116, 104, 101, 32, 113, 117, 111, 116, 101, 115, 10, 92, 110, 32, 32, 32, 32, 116, 111, 32, 101, 110, 97, 98, 108, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 105, 102, 32, 110, 101, 101, 100, 101, 100, 44, 32, 97, 115, 32, 105, 110, 32, 92, 34, 51, 43, 56, 32, 107, 103, 32, 61, 32, 92, 34, 123, 51, 43, 56, 125, 92, 34, 32, 107, 103, 92, 34, 46, 32, 85, 115, 105, 110, 103, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 10, 92, 110, 32, 32, 32, 32, 105, 115, 32, 116, 104, 101, 110, 32, 97, 32, 99, 111, 110, 118, 101, 110, 105, 101, 110, 116, 32, 119, 97, 121, 32, 116, 111, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 115, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 32, 105, 110, 32, 105, 116, 101, 109, 115, 44, 32, 119, 104, 101, 110, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 79, 110, 101, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 32, 111, 110, 32, 105, 116, 101, 109, 115, 32, 111, 117, 116, 115, 105, 100, 101, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 44, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 101, 115, 99, 97, 112, 105, 110, 103, 32, 116, 104, 101, 32, 39, 64, 39, 44, 39, 123, 39, 44, 39, 125, 39, 32, 111, 114, 32, 39, 36, 39, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 44, 32, 97, 115, 32, 105, 110, 32, 39, 92, 92, 123, 51, 43, 52, 92, 92, 125, 92, 92, 32, 100, 111, 101, 115, 110, 39, 116, 92, 92, 32, 101, 118, 97, 108, 117, 97, 116, 101, 39, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 97, 110, 32, 101, 109, 98, 101, 100, 100, 101, 100, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 46, 32, 73, 116, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, 111, 32, 101, 118, 97, 108, 117, 97, 116, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 105, 110, 115, 105, 100, 101, 10, 92, 110, 32, 32, 32, 32, 32, 98, 114, 97, 99, 101, 115, 32, 39, 123, 125, 39, 44, 32, 111, 114, 32, 102, 111, 114, 109, 117, 108, 97, 115, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 104, 97, 116, 32, 109, 97, 121, 32, 116, 97, 107, 101, 32, 111, 110, 101, 32, 97, 115, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 40, 101, 46, 103, 46, 32, 39, 45, 102, 105, 108, 108, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 87, 104, 101, 110, 32, 117, 115, 101, 100, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 32, 102, 111, 114, 109, 117, 108, 97, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 102, 111, 114, 32, 101, 97, 99, 104, 32, 112, 105, 120, 101, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 109, 97, 116, 104, 32, 112, 97, 114, 115, 101, 114, 32, 117, 110, 100, 101, 114, 115, 116, 97, 110, 100, 115, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 101, 116, 32, 111, 102, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 44, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 97, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 95, 32, 85, 115, 117, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 58, 32, 124, 124, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 111, 114, 41, 44, 32, 38, 38, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 97, 110, 100, 41, 44, 32, 124, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 111, 114, 41, 44, 32, 38, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 97, 110, 100, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 33, 61, 44, 32, 61, 61, 44, 32, 60, 61, 44, 32, 62, 61, 44, 32, 60, 44, 32, 62, 44, 32, 60, 60, 32, 40, 108, 101, 102, 116, 32, 98, 105, 116, 119, 105, 115, 101, 32, 115, 104, 105, 102, 116, 41, 44, 32, 62, 62, 32, 40, 114, 105, 103, 104, 116, 32, 98, 105, 116, 119, 105, 115, 101, 32, 115, 104, 105, 102, 116, 41, 44, 32, 45, 44, 32, 43, 44, 32, 42, 44, 32, 47, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 37, 32, 40, 109, 111, 100, 117, 108, 111, 41, 44, 32, 94, 32, 40, 112, 111, 119, 101, 114, 41, 44, 32, 33, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 110, 111, 116, 41, 44, 32, 126, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 110, 111, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 85, 115, 117, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 58, 32, 115, 105, 110, 40, 41, 44, 32, 99, 111, 115, 40, 41, 44, 32, 116, 97, 110, 40, 41, 44, 32, 97, 115, 105, 110, 40, 41, 44, 32, 97, 99, 111, 115, 40, 41, 44, 32, 97, 116, 97, 110, 40, 41, 44, 32, 115, 105, 110, 104, 40, 41, 44, 32, 99, 111, 115, 104, 40, 41, 44, 32, 116, 97, 110, 104, 40, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 108, 111, 103, 40, 41, 44, 32, 108, 111, 103, 50, 40, 41, 44, 32, 108, 111, 103, 49, 48, 40, 41, 44, 32, 101, 120, 112, 40, 41, 44, 32, 115, 105, 103, 110, 40, 41, 44, 32, 97, 98, 115, 40, 41, 44, 32, 97, 116, 97, 110, 50, 40, 41, 44, 32, 114, 111, 117, 110, 100, 40, 41, 44, 32, 110, 97, 114, 103, 40, 41, 44, 32, 97, 114, 103, 40, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 115, 118, 97, 108, 40, 41, 44, 32, 105, 115, 110, 97, 110, 40, 41, 44, 32, 105, 115, 105, 110, 102, 40, 41, 44, 32, 105, 115, 105, 110, 116, 40, 41, 44, 32, 105, 115, 98, 111, 111, 108, 40, 41, 44, 32, 114, 111, 108, 40, 41, 32, 40, 108, 101, 102, 116, 32, 98, 105, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 114, 111, 114, 40, 41, 32, 40, 114, 105, 103, 104, 116, 32, 98, 105, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 41, 44, 32, 109, 105, 110, 40, 41, 44, 32, 109, 97, 120, 40, 41, 44, 32, 115, 105, 110, 99, 40, 41, 44, 32, 105, 110, 116, 40, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 97, 116, 97, 110, 50, 40, 41, 39, 32, 105, 115, 32, 116, 104, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 97, 116, 97, 110, 40, 41, 32, 119, 105, 116, 104, 32, 116, 119, 111, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 39, 121, 44, 120, 39, 32, 40, 97, 115, 32, 105, 110, 32, 67, 47, 67, 43, 43, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 110, 97, 114, 103, 40, 41, 39, 32, 114, 101, 116, 117, 114, 110, 115, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 97, 114, 103, 40, 105, 44, 97, 95, 49, 44, 46, 46, 44, 97, 95, 110, 41, 39, 32, 114, 101, 116, 117, 114, 110, 115, 32, 116, 104, 101, 32, 105, 116, 104, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 97, 95, 105, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 115, 32, 39, 109, 105, 110, 40, 41, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 40, 41, 39, 32, 99, 97, 110, 32, 98, 101, 32, 99, 97, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 97, 110, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 115, 32, 39, 105, 115, 118, 97, 108, 40, 41, 39, 44, 32, 39, 105, 115, 110, 97, 110, 40, 41, 39, 44, 32, 39, 105, 115, 105, 110, 102, 40, 41, 39, 44, 32, 39, 105, 115, 98, 111, 111, 108, 40, 41, 39, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 116, 101, 115, 116, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 32, 103, 105, 118, 101, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 114, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 112, 114, 101, 45, 100, 101, 102, 105, 110, 101, 100, 46, 32, 84, 104, 101, 121, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 111, 118, 101, 114, 108, 111, 97, 100, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 100, 101, 112, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 115, 39, 58, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 99, 111, 108, 117, 109, 110, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 121, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 114, 111, 119, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 122, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 115, 108, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 32, 40, 105, 46, 101, 46, 32, 118, 97, 108, 117, 101, 32, 108, 111, 99, 97, 116, 101, 100, 32, 97, 116, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 41, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 109, 39, 44, 39, 105, 77, 39, 44, 39, 105, 97, 39, 44, 39, 105, 118, 39, 58, 32, 82, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 44, 32, 109, 97, 120, 105, 109, 117, 109, 44, 32, 97, 118, 101, 114, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 109, 39, 44, 39, 121, 109, 39, 44, 39, 122, 109, 39, 44, 39, 99, 109, 39, 58, 32, 84, 104, 101, 32, 112, 105, 120, 101, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 77, 39, 44, 39, 121, 77, 39, 44, 39, 122, 77, 39, 44, 39, 99, 77, 39, 58, 32, 84, 104, 101, 32, 112, 105, 120, 101, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 112, 105, 39, 58, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 112, 105, 44, 32, 105, 46, 101, 46, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 46, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 101, 39, 58, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 101, 44, 32, 105, 46, 101, 46, 32, 50, 46, 55, 49, 56, 50, 56, 46, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 63, 39, 32, 111, 114, 32, 39, 117, 39, 58, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 91, 48, 44, 49, 93, 44, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 117, 110, 105, 102, 111, 114, 109, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 103, 39, 58, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 44, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 111, 102, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 49, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 114, 111, 117, 103, 104, 108, 121, 32, 105, 110, 32, 91, 45, 53, 44, 53, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 115, 101, 32, 115, 112, 101, 99, 105, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 59, 39, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 46, 32, 84, 104, 101, 32, 114, 101, 116, 117, 114, 110, 101, 100, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 49, 59, 50, 59, 112, 105, 39, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 97, 115, 32, 39, 112, 105, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 61, 39, 58, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 97, 115, 115, 105, 103, 110, 109, 101, 110, 116, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 105, 110, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 32, 99, 97, 110, 32, 111, 110, 108, 121, 32, 114, 101, 102, 101, 114, 32, 116, 111, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 109, 101, 114, 105, 99, 97, 108, 32, 118, 97, 108, 117, 101, 115, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 97, 114, 101, 32, 99, 97, 115, 101, 45, 115, 101, 110, 115, 105, 116, 105, 118, 101, 46, 32, 85, 115, 101, 32, 116, 104, 105, 115, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 105, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 106, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 39, 59, 39, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 101, 118, 97, 108, 117, 97, 98, 108, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 44, 32, 115, 117, 99, 104, 32, 97, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 39, 116, 61, 99, 111, 115, 40, 120, 41, 59, 51, 42, 116, 94, 50, 43, 50, 42, 116, 43, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 115, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 114, 101, 109, 97, 105, 110, 32, 108, 111, 99, 97, 108, 32, 116, 111, 32, 116, 104, 101, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 97, 99, 99, 101, 115, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 115, 111, 32, 100, 101, 102, 105, 110, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 102, 40, 101, 120, 112, 114, 95, 99, 111, 110, 100, 44, 101, 120, 112, 114, 95, 116, 104, 101, 110, 44, 101, 120, 112, 114, 95, 101, 108, 115, 101, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 39, 101, 120, 112, 114, 95, 116, 104, 101, 110, 39, 32, 111, 114, 32, 39, 101, 120, 112, 114, 95, 101, 108, 115, 101, 39, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 39, 101, 120, 112, 114, 95, 99, 111, 110, 100, 39, 32, 40, 48, 61, 102, 97, 108, 115, 101, 44, 32, 111, 116, 104, 101, 114, 61, 116, 114, 117, 101, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 102, 105, 108, 108, 32, 105, 102, 40, 120, 37, 49, 48, 61, 61, 48, 44, 50, 53, 53, 44, 105, 41, 39, 32, 119, 105, 108, 108, 32, 100, 114, 97, 119, 32, 98, 108, 97, 110, 107, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 108, 105, 110, 101, 115, 32, 111, 110, 32, 101, 118, 101, 114, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 48, 116, 104, 32, 99, 111, 108, 117, 109, 110, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 63, 40, 109, 97, 120, 41, 39, 32, 111, 114, 32, 39, 63, 40, 109, 105, 110, 44, 109, 97, 120, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 91, 48, 44, 109, 97, 120, 93, 32, 111, 114, 32, 91, 109, 105, 110, 44, 109, 97, 120, 93, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 117, 110, 105, 102, 111, 114, 109, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 46, 32, 39, 117, 40, 109, 97, 120, 41, 39, 32, 97, 110, 100, 32, 39, 117, 40, 48, 44, 109, 97, 120, 41, 39, 32, 109, 101, 97, 110, 32, 116, 104, 101, 32, 115, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 40, 95, 97, 44, 95, 98, 44, 95, 99, 44, 95, 100, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 108, 111, 99, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 97, 44, 98, 44, 99, 44, 100, 41, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 32, 124, 32, 111, 116, 104, 101, 114, 61, 108, 105, 110, 101, 97, 114, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 109, 105, 116, 116, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 97, 114, 101, 32, 114, 101, 112, 108, 97, 99, 101, 100, 32, 98, 121, 32, 116, 104, 101, 105, 114, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 32, 119, 104, 105, 99, 104, 32, 97, 114, 101, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 120, 44, 32, 121, 44, 32, 122, 44, 32, 99, 32, 97, 110, 100, 32, 48, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 106, 40, 95, 100, 120, 44, 95, 100, 121, 44, 95, 100, 122, 44, 95, 100, 99, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 100, 111, 101, 115, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 108, 111, 99, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 120, 43, 100, 120, 44, 121, 43, 100, 121, 44, 122, 43, 100, 122, 44, 99, 43, 100, 99, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 102, 105, 108, 108, 32, 48, 46, 53, 42, 40, 105, 40, 120, 43, 49, 41, 45, 105, 40, 120, 45, 49, 41, 41, 39, 32, 119, 105, 108, 108, 32, 101, 115, 116, 105, 109, 97, 116, 101, 32, 116, 104, 101, 32, 88, 45, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 32, 99, 108, 97, 115, 115, 105, 99, 97, 108, 32, 102, 105, 110, 105, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 115, 99, 104, 101, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 117, 108, 97, 32, 115, 116, 97, 114, 116, 115, 32, 119, 105, 116, 104, 32, 39, 62, 39, 32, 111, 114, 32, 39, 60, 39, 44, 32, 116, 104, 101, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 39, 105, 40, 46, 46, 41, 39, 32, 97, 110, 100, 32, 39, 106, 40, 46, 46, 41, 39, 32, 119, 105, 108, 108, 32, 114, 101, 116, 117, 114, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 98, 101, 105, 110, 103, 32, 109, 111, 100, 105, 102, 105, 101, 100, 44, 32, 105, 110, 32, 102, 111, 114, 119, 97, 114, 100, 32, 40, 39, 62, 39, 41, 32, 111, 114, 32, 98, 97, 99, 107, 119, 97, 114, 100, 32, 40, 39, 60, 39, 41, 32, 111, 114, 100, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 101, 118, 97, 108, 117, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 39, 123, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 125, 39, 44, 10, 92, 110, 32, 32, 32, 32, 32, 101, 46, 103, 46, 32, 71, 39, 77, 73, 67, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 50, 53, 54, 44, 49, 50, 56, 32, 45, 102, 32, 123, 119, 125, 39, 32, 119, 105, 108, 108, 32, 99, 114, 101, 97, 116, 101, 32, 97, 32, 50, 53, 54, 120, 49, 50, 56, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 32, 50, 53, 54, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 109, 97, 103, 101, 32, 97, 110, 100, 32, 100, 97, 116, 97, 32, 118, 105, 101, 119, 101, 114, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 115, 111, 109, 101, 32, 118, 101, 114, 121, 32, 104, 97, 110, 100, 121, 32, 101, 109, 98, 101, 100, 100, 101, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 109, 111, 100, 117, 108, 101, 115, 44, 32, 102, 111, 114, 32, 49, 100, 32, 115, 105, 103, 110, 97, 108, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 112, 108, 111, 116, 39, 41, 44, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 39, 41, 32, 97, 110, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 51, 100, 39, 41, 46, 32, 73, 116, 32, 101, 110, 97, 98, 108, 101, 115, 32, 97, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 107, 101, 121, 98, 111, 97, 114, 100, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 110, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 101, 114, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 68, 58, 32, 73, 110, 99, 114, 101, 97, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 67, 58, 32, 68, 101, 99, 114, 101, 97, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 82, 58, 32, 82, 101, 115, 101, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 70, 58, 32, 84, 111, 103, 103, 108, 101, 32, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 83, 58, 32, 83, 97, 118, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 98, 109, 112, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 79, 58, 32, 83, 97, 118, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 118, 105, 101, 119, 101, 100, 32, 100, 97, 116, 97, 44, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 99, 105, 109, 103, 122, 39, 46, 10, 92, 110, 32, 32, 45, 32, 83, 104, 111, 114, 116, 99, 117, 116, 115, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 116, 111, 32, 116, 104, 101, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 105, 109, 97, 103, 101, 32, 118, 105, 101, 119, 101, 114, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 80, 58, 32, 80, 108, 97, 121, 32, 122, 45, 115, 116, 97, 99, 107, 32, 111, 102, 32, 102, 114, 97, 109, 101, 115, 32, 97, 115, 32, 97, 32, 109, 111, 118, 105, 101, 32, 40, 102, 111, 114, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 51, 100, 32, 105, 109, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 86, 58, 32, 69, 110, 97, 98, 108, 101, 47, 100, 105, 115, 97, 98, 108, 101, 32, 51, 68, 32, 118, 105, 101, 119, 32, 40, 102, 111, 114, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 51, 100, 32, 105, 109, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 83, 72, 73, 70, 84, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 71, 111, 32, 108, 101, 102, 116, 47, 114, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 65, 76, 84, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 71, 111, 32, 117, 112, 47, 100, 111, 119, 110, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 78, 117, 109, 101, 114, 105, 99, 32, 80, 65, 68, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 32, 40, 43, 47, 45, 41, 32, 97, 110, 100, 32, 109, 111, 118, 101, 32, 116, 104, 114, 111, 117, 103, 104, 32, 122, 111, 111, 109, 101, 100, 32, 105, 109, 97, 103, 101, 32, 40, 100, 105, 103, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 66, 65, 67, 75, 83, 80, 65, 67, 69, 58, 32, 82, 101, 115, 101, 116, 32, 122, 111, 111, 109, 32, 115, 99, 97, 108, 101, 46, 10, 92, 110, 32, 32, 45, 32, 83, 104, 111, 114, 116, 99, 117, 116, 115, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 116, 111, 32, 116, 104, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 118, 105, 101, 119, 101, 114, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 108, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 82, 111, 116, 97, 116, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 114, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 90, 111, 111, 109, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 109, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 83, 104, 105, 102, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 70, 49, 32, 46, 46, 32, 67, 84, 82, 76, 43, 70, 54, 58, 32, 83, 119, 105, 116, 99, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 90, 58, 32, 69, 110, 97, 98, 108, 101, 47, 100, 105, 115, 97, 98, 108, 101, 32, 122, 45, 98, 117, 102, 102, 101, 114, 101, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 65, 58, 32, 83, 104, 111, 119, 47, 104, 105, 100, 101, 32, 51, 100, 32, 97, 120, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 71, 58, 32, 83, 97, 118, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 111, 102, 102, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 84, 58, 32, 83, 119, 105, 116, 99, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 105, 110, 103, 108, 101, 47, 100, 111, 117, 98, 108, 101, 45, 115, 105, 100, 101, 100, 32, 51, 100, 32, 109, 111, 100, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 99, 97, 110, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 98, 121, 32, 97, 32, 117, 115, 101, 114, 44, 32, 116, 104, 114, 111, 117, 103, 104, 32, 116, 104, 101, 32, 117, 115, 101, 32, 111, 102, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 32, 102, 105, 108, 101, 32, 105, 115, 32, 97, 32, 115, 105, 109, 112, 108, 101, 32, 97, 115, 99, 105, 105, 32, 116, 101, 120, 116, 32, 102, 105, 108, 101, 44, 32, 119, 104, 101, 114, 101, 32, 101, 97, 99, 104, 32, 108, 105, 110, 101, 32, 115, 116, 97, 114, 116, 115, 32, 101, 105, 116, 104, 101, 114, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 39, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 58, 32, 99, 111, 109, 109, 97, 110, 100, 95, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 39, 32, 111, 114, 32, 39, 99, 111, 109, 109, 97, 110, 100, 95, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 40, 99, 111, 110, 116, 105, 110, 117, 97, 116, 105, 111, 110, 41, 39, 46, 10, 92, 110, 32, 32, 45, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 115, 32, 109, 117, 115, 116, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 65, 110, 121, 32, 39, 32, 92, 35, 32, 99, 111, 109, 109, 101, 110, 116, 39, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 32, 105, 115, 32, 100, 105, 115, 99, 97, 114, 100, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 119, 104, 101, 114, 101, 118, 101, 114, 32, 105, 116, 32, 105, 115, 32, 108, 111, 99, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 108, 105, 110, 101, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 42, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 118, 101, 114, 98, 97, 116, 105, 109, 32, 99, 111, 112, 121, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 115, 116, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 35, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 107, 110, 111, 119, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 101, 105, 116, 104, 101, 114, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 121, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 114, 32, 111, 114, 32, 115, 101, 116, 32, 116, 111, 32, 97, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 63, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 116, 101, 108, 108, 105, 110, 103, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 115, 116, 114, 105, 99, 116, 105, 111, 110, 32, 40, 111, 110, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 102, 117, 108, 32, 119, 104, 101, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 110, 101, 101, 100, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 118, 101, 32, 109, 101, 115, 115, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 105, 39, 32, 97, 110, 100, 32, 39, 36, 123, 105, 125, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 105, 45, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 104, 32, 97, 115, 32, 39, 36, 123, 45, 106, 125, 39, 32, 97, 114, 101, 32, 97, 108, 108, 111, 119, 101, 100, 32, 97, 110, 100, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 106, 94, 116, 104, 32, 108, 97, 116, 101, 115, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 32, 39, 36, 34, 34, 48, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 123, 105, 61, 100, 101, 102, 97, 117, 108, 116, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 36, 105, 32, 40, 105, 102, 32, 100, 101, 102, 105, 110, 101, 100, 41, 32, 111, 114, 32, 98, 121, 32, 105, 116, 115, 32, 110, 101, 119, 32, 118, 97, 108, 117, 101, 32, 115, 101, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 32, 39, 100, 101, 102, 97, 117, 108, 116, 39, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 40, 39, 100, 101, 102, 97, 117, 108, 116, 39, 32, 109, 97, 121, 32, 98, 101, 32, 97, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 97, 115, 32, 119, 101, 108, 108, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 123, 115, 117, 98, 115, 101, 116, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 118, 97, 108, 117, 101, 115, 32, 40, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 41, 32, 111, 102, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 115, 117, 98, 115, 101, 116, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 34, 34, 123, 50, 45, 45, 50, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 101, 100, 32, 98, 121, 32, 97, 108, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 97, 110, 100, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 111, 110, 101, 46, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 34, 34, 123, 94, 48, 125, 39, 32, 105, 115, 32, 116, 104, 101, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 108, 108, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 118, 111, 107, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 36, 34, 34, 42, 39, 32, 105, 102, 32, 97, 108, 108, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 104, 97, 118, 101, 32, 105, 110, 100, 101, 101, 100, 32, 97, 32, 118, 97, 108, 117, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 61, 118, 97, 114, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 116, 32, 111, 102, 32, 105, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 115, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 97, 115, 115, 105, 103, 110, 32, 101, 97, 99, 104, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 36, 105, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 111, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 118, 97, 114, 36, 105, 39, 32, 40, 102, 111, 114, 32, 105, 32, 105, 110, 32, 91, 48, 46, 46, 36, 34, 34, 35, 93, 41, 46, 32, 84, 104, 105, 115, 32, 105, 115, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 32, 117, 115, 101, 102, 117, 108, 32, 119, 104, 101, 110, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 119, 97, 110, 116, 32, 116, 111, 32, 109, 97, 110, 97, 103, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 117, 109, 98, 101, 114, 115, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 110, 97, 109, 101, 115, 32, 109, 117, 115, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 115, 101, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 119, 97, 121, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 44, 32, 101, 118, 101, 110, 32, 105, 110, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 100, 32, 105, 116, 101, 109, 115, 32, 111, 114, 10, 92, 110, 32, 32, 32, 32, 32, 119, 104, 101, 110, 32, 116, 104, 101, 32, 100, 111, 108, 108, 97, 114, 32, 115, 105, 103, 110, 32, 39, 36, 39, 32, 105, 115, 32, 101, 115, 99, 97, 112, 101, 100, 32, 119, 105, 116, 104, 32, 97, 32, 98, 97, 99, 107, 115, 108, 97, 115, 104, 32, 39, 92, 92, 39, 46, 32, 84, 111, 32, 97, 118, 111, 105, 100, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 44, 32, 112, 108, 97, 99, 101, 10, 92, 110, 32, 32, 32, 32, 32, 97, 110, 32, 101, 109, 112, 116, 121, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 106, 117, 115, 116, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 39, 36, 39, 32, 40, 97, 115, 32, 105, 110, 32, 39, 36, 92, 34, 92, 34, 49, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 83, 112, 101, 99, 105, 102, 121, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 109, 97, 121, 32, 98, 101, 32, 115, 107, 105, 112, 112, 101, 100, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 98, 121, 32, 114, 101, 112, 108, 97, 99, 105, 110, 103, 32, 116, 104, 101, 109, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 32, 97, 115, 32, 105, 110, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 44, 51, 39, 46, 32, 79, 109, 105, 116, 116, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 105, 114, 32, 100, 101, 102, 97, 117, 108, 116, 10, 92, 110, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 115, 44, 32, 119, 104, 105, 99, 104, 32, 109, 117, 115, 116, 32, 98, 101, 32, 116, 104, 117, 115, 32, 101, 120, 112, 108, 105, 99, 105, 116, 108, 121, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 32, 40, 117, 115, 105, 110, 103, 32, 100, 101, 102, 97, 117, 108, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 115, 32, 39, 36, 34, 34, 123, 49, 61, 100, 101, 102, 97, 117, 108, 116, 125, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 73, 102, 32, 111, 110, 101, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 114, 101, 113, 117, 101, 115, 116, 101, 100, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 104, 97, 115, 32, 110, 111, 32, 118, 97, 108, 117, 101, 44, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 105, 115, 32, 116, 104, 114, 111, 119, 110, 10, 92, 110, 32, 32, 32, 32, 32, 98, 121, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 65, 108, 108, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 114, 101, 32, 108, 105, 115, 116, 101, 100, 32, 98, 101, 108, 111, 119, 44, 32, 99, 108, 97, 115, 115, 105, 102, 105, 101, 100, 32, 98, 121, 32, 116, 104, 101, 109, 101, 115, 46, 10, 92, 110, 32, 87, 104, 101, 110, 32, 115, 101, 118, 101, 114, 97, 108, 32, 99, 104, 111, 105, 99, 101, 115, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 112, 111, 115, 115, 105, 98, 108, 101, 44, 32, 116, 104, 101, 121, 32, 97, 112, 112, 101, 97, 114, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 39, 124, 39, 46, 10, 92, 110, 32, 65, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 115, 105, 100, 101, 32, 39, 91, 93, 39, 32, 111, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 98, 121, 32, 39, 95, 39, 32, 105, 115, 32, 111, 112, 116, 105, 111, 110, 97, 108, 32, 101, 120, 99, 101, 112, 116, 32, 119, 104, 101, 110, 32, 115, 116, 97, 110, 100, 105, 110, 103, 32, 102, 111, 114, 32, 97, 110, 10, 92, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 91, 105, 109, 97, 103, 101, 93, 44, 32, 119, 104, 101, 114, 101, 32, 39, 105, 109, 97, 103, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 101, 105, 116, 104, 101, 114, 32, 97, 110, 32, 105, 110, 100, 105, 99, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 114, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 73, 110, 32, 116, 104, 105, 115, 32, 99, 97, 115, 101, 44, 32, 116, 104, 101, 32, 39, 91, 93, 39, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 97, 114, 101, 32, 109, 97, 110, 100, 97, 116, 111, 114, 121, 32, 119, 104, 101, 110, 32, 119, 114, 105, 116, 105, 110, 103, 32, 116, 104, 101, 32, 105, 116, 101, 109, 46, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 114, 107, 101, 100, 32, 119, 105, 116, 104, 10, 92, 110, 32, 39, 40, 42, 41, 39, 32, 111, 114, 32, 39, 40, 43, 41, 39, 32, 105, 115, 32, 97, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 46, 32, 39, 40, 42, 41, 39, 32, 109, 101, 97, 110, 115, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 115, 44, 10, 92, 110, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 39, 102, 108, 111, 97, 116, 39, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 46, 10, 92, 110, 32, 82, 101, 109, 101, 109, 98, 101, 114, 32, 116, 104, 97, 116, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 114, 117, 110, 32, 102, 97, 115, 116, 101, 114, 32, 116, 104, 97, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 115, 111, 32, 117, 115, 101, 32, 116, 104, 101, 110, 32, 119, 104, 101, 110, 32, 112, 111, 115, 115, 105, 98, 108, 101, 46, 10, 92, 110, 32, 78, 111, 116, 101, 32, 97, 108, 115, 111, 32, 116, 104, 97, 116, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 105, 115, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 97, 114, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 105, 110, 32, 91, 48, 44, 50, 53, 53, 93, 32, 98, 101, 102, 111, 114, 101, 10, 92, 110, 32, 98, 101, 105, 110, 103, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 110, 101, 101, 100, 32, 116, 111, 32, 100, 111, 32, 116, 104, 105, 115, 32, 109, 97, 110, 117, 97, 108, 108, 121, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 39, 41, 32, 105, 102, 32, 121, 111, 117, 32, 119, 97, 110, 116, 10, 92, 110, 32, 115, 97, 118, 101, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 115, 32, 104, 97, 118, 105, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 115, 112, 101, 99, 116, 32, 116, 104, 97, 110, 32, 116, 104, 111, 115, 101, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 46, 34, 10, 95, 104, 101, 108, 112, 95, 101, 120, 97, 109, 112, 108, 101, 115, 32, 58, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 117, 115, 101, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 39, 103, 109, 105, 99, 39, 32, 105, 115, 32, 97, 32, 103, 101, 110, 101, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 116, 111, 111, 108, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 105, 110, 32, 97, 32, 119, 105, 100, 101, 32, 118, 97, 114, 105, 101, 116, 121, 32, 111, 102, 32, 115, 105, 116, 117, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 32, 84, 104, 101, 32, 102, 101, 119, 32, 101, 120, 97, 109, 112, 108, 101, 115, 32, 98, 101, 108, 111, 119, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 117, 115, 101, 115, 32, 111, 102, 32, 116, 104, 105, 115, 32, 116, 111, 111, 108, 58, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 86, 105, 101, 119, 32, 97, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 102, 105, 108, 101, 49, 46, 98, 109, 112, 32, 102, 105, 108, 101, 50, 46, 106, 112, 101, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 110, 118, 101, 114, 116, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 98, 109, 112, 32, 45, 111, 32, 111, 117, 116, 112, 117, 116, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 97, 32, 109, 111, 118, 105, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 109, 112, 103, 32, 45, 97, 32, 122, 32, 45, 111, 32, 111, 117, 116, 112, 117, 116, 46, 104, 100, 114, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 112, 117, 116, 101, 32, 105, 109, 97, 103, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 98, 109, 112, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 68, 101, 110, 111, 105, 115, 101, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 51, 48, 44, 49, 48, 32, 45, 111, 32, 100, 101, 110, 111, 105, 115, 101, 100, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 112, 111, 115, 101, 32, 116, 119, 111, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 111, 118, 101, 114, 108, 97, 121, 32, 108, 97, 121, 101, 114, 32, 98, 108, 101, 110, 100, 105, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 49, 46, 106, 112, 103, 32, 105, 109, 97, 103, 101, 50, 46, 106, 112, 103, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 32, 45, 111, 32, 98, 108, 101, 110, 100, 101, 100, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 69, 118, 97, 108, 117, 97, 116, 101, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 101, 32, 92, 34, 99, 111, 115, 40, 112, 105, 47, 52, 41, 94, 50, 43, 115, 105, 110, 40, 112, 105, 47, 52, 41, 94, 50, 61, 123, 99, 111, 115, 40, 112, 105, 47, 52, 41, 94, 50, 43, 115, 105, 110, 40, 112, 105, 47, 52, 41, 94, 50, 125, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 97, 32, 50, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 48, 48, 48, 44, 49, 44, 49, 44, 50, 32, 45, 102, 32, 92, 34, 88, 61, 51, 42, 40, 120, 45, 53, 48, 48, 41, 47, 53, 48, 48, 59, 88, 94, 50, 42, 115, 105, 110, 40, 51, 42, 88, 94, 50, 41, 43, 105, 102, 40, 99, 61, 61, 48, 44, 117, 40, 48, 44, 45, 49, 41, 44, 99, 111, 115, 40, 88, 42, 49, 48, 41, 41, 92, 34, 32, 45, 112, 108, 111, 116, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 97, 32, 51, 100, 32, 101, 108, 101, 118, 97, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 110, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 51, 44, 92, 34, 63, 40, 48, 44, 50, 53, 53, 41, 92, 34, 32, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 44, 51, 32, 45, 98, 108, 117, 114, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 48, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 92, 34, 39, 88, 61, 40, 120, 45, 54, 52, 41, 47, 54, 59, 89, 61, 40, 121, 45, 54, 52, 41, 47, 54, 59, 49, 48, 48, 42, 101, 120, 112, 40, 45, 40, 88, 94, 50, 43, 89, 94, 50, 41, 47, 51, 48, 41, 42, 97, 98, 115, 40, 99, 111, 115, 40, 88, 41, 42, 115, 105, 110, 40, 89, 41, 41, 39, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 116, 104, 101, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 32, 111, 102, 32, 97, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 109, 51, 100, 32, 53, 32, 45, 109, 100, 51, 100, 32, 53, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 92, 34, 39, 120, 94, 50, 43, 121, 94, 50, 43, 97, 98, 115, 40, 122, 41, 94, 97, 98, 115, 40, 52, 42, 99, 111, 115, 40, 120, 42, 121, 42, 122, 42, 51, 41, 41, 39, 92, 34, 44, 51, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 82, 101, 110, 100, 101, 114, 32, 97, 32, 71, 39, 77, 73, 67, 32, 51, 100, 32, 108, 111, 103, 111, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 32, 45, 116, 101, 120, 116, 32, 71, 92, 92, 39, 77, 73, 67, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 49, 48, 44, 48, 32, 45, 98, 108, 117, 114, 32, 50, 32, 45, 110, 32, 48, 44, 49, 48, 48, 32, 45, 45, 112, 108, 97, 115, 109, 97, 32, 48, 46, 52, 32, 45, 43, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 45, 48, 46, 49, 32, 45, 109, 100, 51, 100, 32, 52, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 97, 32, 51, 100, 32, 114, 105, 110, 103, 32, 111, 102, 32, 116, 111, 114, 105, 105, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 48, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 53, 44, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 92, 34, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 92, 34, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 49, 32, 45, 105, 102, 32, 92, 34, 123, 36, 62, 37, 50, 125, 92, 34, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 48, 32, 45, 43, 51, 100, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 114, 51, 100, 32, 48, 44, 48, 44, 49, 44, 49, 56, 32, 45, 100, 111, 110, 101, 32, 45, 109, 100, 51, 100, 32, 51, 32, 45, 109, 51, 100, 32, 53, 32, 45, 100, 98, 51, 100, 32, 48, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 118, 97, 115, 101, 32, 102, 114, 111, 109, 32, 97, 32, 51, 100, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 109, 100, 51, 100, 32, 52, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 92, 34, 39, 120, 94, 50, 43, 50, 42, 97, 98, 115, 40, 121, 47, 50, 41, 42, 115, 105, 110, 40, 50, 42, 121, 41, 94, 50, 43, 122, 94, 50, 45, 51, 39, 44, 48, 92, 34, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 46, 53, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 48, 44, 53, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 53, 44, 49, 53, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 51, 46, 50, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 56, 48, 44, 49, 53, 48, 44, 50, 53, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 50, 93, 32, 49, 50, 56, 44, 50, 53, 53, 44, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 51, 93, 32, 50, 53, 53, 44, 49, 50, 56, 44, 48, 32, 45, 43, 51, 100, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 68, 105, 115, 112, 108, 97, 121, 32, 102, 105, 108, 116, 101, 114, 101, 100, 32, 119, 101, 98, 99, 97, 109, 32, 115, 116, 114, 101, 97, 109, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 32, 92, 92, 92, 34, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 43, 32, 45, 47, 32, 52, 92, 92, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 76, 97, 117, 110, 99, 104, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 100, 101, 109, 111, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 120, 95, 102, 105, 115, 104, 101, 121, 101, 32, 45, 120, 95, 102, 105, 114, 101, 32, 71, 92, 92, 39, 77, 73, 67, 32, 45, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 114, 109, 32, 45, 120, 95, 115, 112, 108, 105, 110, 101, 32, 45, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 48, 32, 45, 120, 95, 108, 105, 103, 104, 116, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 120, 95, 119, 104, 105, 114, 108, 32, 44, 32, 45, 120, 95, 108, 105, 102, 101, 32, 45, 120, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 44, 32, 45, 120, 95, 98, 108, 111, 98, 115, 32, 45, 120, 95, 116, 101, 116, 114, 105, 115, 10, 92, 110, 34, 10, 35, 64, 103, 109, 105, 99, 32, 118, 101, 114, 115, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 110, 117, 109, 98, 101, 114, 32, 97, 110, 100, 32, 101, 120, 105, 116, 46, 10, 118, 101, 114, 115, 105, 111, 110, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 73, 110, 112, 117, 116, 115, 32, 47, 32, 111, 117, 116, 112, 117, 116, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 32, 58, 32, 95, 99, 111, 109, 109, 97, 110, 100, 44, 95, 99, 97, 109, 101, 114, 97, 95, 105, 110, 100, 101, 120, 62, 61, 48, 44, 95, 115, 107, 105, 112, 95, 102, 114, 97, 109, 101, 115, 62, 61, 48, 44, 95, 111, 117, 116, 112, 117, 116, 95, 102, 105, 108, 101, 110, 97, 109, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 108, 105, 118, 101, 32, 99, 97, 109, 101, 114, 97, 32, 115, 116, 114, 101, 97, 109, 44, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 32, 105, 116, 32, 111, 110, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 109, 109, 97, 110, 100, 61, 34, 34, 39, 44, 32, 39, 99, 97, 109, 101, 114, 97, 95, 105, 110, 100, 101, 120, 61, 48, 39, 32, 40, 100, 101, 102, 97, 117, 108, 116, 32, 99, 97, 109, 101, 114, 97, 41, 44, 39, 115, 107, 105, 112, 95, 102, 114, 97, 109, 101, 115, 61, 48, 39, 32, 97, 110, 100, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 39, 46, 10, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 125, 44, 36, 123, 52, 61, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 97, 109, 101, 114, 97, 32, 115, 116, 114, 101, 97, 109, 32, 92, 35, 36, 50, 44, 32, 119, 105, 116, 104, 32, 36, 51, 32, 102, 114, 97, 109, 101, 115, 32, 115, 107, 105, 112, 32, 97, 110, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 39, 36, 52, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 102, 114, 97, 109, 101, 61, 48, 32, 45, 100, 111, 10, 45, 99, 97, 109, 101, 114, 97, 32, 36, 50, 44, 49, 44, 36, 51, 32, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 34, 40, 67, 97, 109, 101, 114, 97, 32, 34, 36, 115, 116, 114, 101, 97, 109, 34, 44, 32, 34, 123, 119, 125, 120, 123, 104, 125, 34, 41, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 52, 34, 41, 125, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 52, 34, 44, 36, 102, 114, 97, 109, 101, 125, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 45, 49, 93, 32, 103, 109, 105, 99, 95, 99, 97, 109, 101, 114, 97, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 97, 109, 101, 114, 97, 32, 58, 32, 95, 99, 97, 109, 101, 114, 97, 95, 105, 110, 100, 101, 120, 62, 61, 48, 44, 95, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 48, 44, 95, 115, 107, 105, 112, 95, 102, 114, 97, 109, 101, 115, 62, 61, 48, 44, 114, 101, 108, 101, 97, 115, 101, 95, 99, 97, 109, 101, 114, 97, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 99, 97, 112, 116, 117, 114, 101, 95, 119, 105, 100, 116, 104, 62, 61, 48, 44, 95, 99, 97, 112, 116, 117, 114, 101, 95, 104, 101, 105, 103, 104, 116, 62, 61, 48, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 102, 114, 97, 109, 101, 115, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 97, 109, 101, 114, 97, 44, 32, 119, 105, 116, 104, 32, 99, 117, 115, 116, 111, 109, 32, 100, 101, 108, 97, 121, 32, 98, 101, 116, 119, 101, 101, 110, 32, 102, 114, 97, 109, 101, 115, 32, 40, 105, 110, 32, 109, 115, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 39, 114, 101, 108, 101, 97, 115, 101, 95, 99, 97, 109, 101, 114, 97, 61, 61, 49, 39, 44, 32, 116, 104, 101, 32, 99, 97, 109, 101, 114, 97, 32, 115, 116, 114, 101, 97, 109, 32, 105, 115, 32, 114, 101, 108, 101, 97, 115, 101, 100, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 99, 97, 112, 116, 117, 114, 105, 110, 103, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 97, 109, 101, 114, 97, 95, 105, 110, 100, 101, 120, 61, 48, 39, 32, 40, 100, 101, 102, 97, 117, 108, 116, 32, 99, 97, 109, 101, 114, 97, 41, 44, 32, 39, 110, 98, 95, 102, 114, 97, 109, 101, 115, 61, 49, 39, 44, 32, 39, 115, 107, 105, 112, 95, 102, 114, 97, 109, 101, 115, 61, 48, 39, 44, 32, 39, 114, 101, 108, 101, 97, 115, 101, 95, 99, 97, 109, 101, 114, 97, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 97, 112, 116, 117, 114, 101, 95, 119, 105, 100, 116, 104, 61, 99, 97, 112, 116, 117, 114, 101, 95, 104, 101, 105, 103, 104, 116, 61, 48, 39, 32, 40, 100, 101, 102, 97, 117, 108, 116, 32, 115, 105, 122, 101, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 109, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 111, 109, 109, 97, 110, 100, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 109, 109, 97, 110, 100, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 104, 116, 116, 112, 91, 115, 93, 58, 47, 47, 85, 82, 76, 32, 58, 32, 34, 115, 116, 114, 105, 110, 103, 34, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 109, 112, 111, 114, 116, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 44, 32, 85, 82, 76, 32, 111, 114, 32, 115, 116, 114, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 109, 112, 111, 114, 116, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 100, 105, 114, 101, 99, 116, 108, 121, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 39, 45, 99, 111, 109, 109, 97, 110, 100, 39, 32, 105, 110, 118, 111, 99, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 111, 109, 109, 97, 110, 100, 32, 34, 102, 111, 111, 32, 58, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 100, 101, 102, 111, 114, 109, 32, 36, 34, 34, 49, 34, 32, 45, 45, 102, 111, 111, 91, 48, 93, 32, 53, 32, 45, 45, 102, 111, 111, 91, 48, 93, 32, 49, 53, 10, 35, 64, 103, 109, 105, 99, 32, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 32, 58, 32, 95, 88, 44, 95, 89, 44, 95, 90, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 97, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 101, 114, 32, 40, 117, 115, 101, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 114, 103, 117, 109, 101, 110, 116, 115, 32, 39, 88, 39, 44, 39, 89, 39, 44, 39, 90, 39, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 32, 116, 104, 101, 32, 105, 110, 105, 116, 105, 97, 108, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 118, 105, 101, 119, 44, 32, 102, 111, 114, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 100, 48, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 48, 39, 46, 10, 100, 48, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 48, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 111, 117, 116, 32, 118, 97, 108, 117, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 48, 39, 41, 46, 10, 100, 105, 115, 112, 108, 97, 121, 48, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 48, 32, 58, 10, 45, 118, 32, 45, 10, 119, 61, 48, 32, 104, 61, 48, 32, 100, 61, 48, 32, 115, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 119, 61, 123, 36, 119, 43, 119, 125, 32, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 104, 41, 125, 32, 100, 61, 123, 109, 97, 120, 40, 36, 100, 44, 100, 41, 125, 32, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 115, 41, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 44, 64, 123, 45, 49, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 108, 115, 101, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 44, 46, 46, 44, 64, 123, 45, 49, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 100, 10, 45, 118, 32, 45, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 51, 100, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 110, 32, 97, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 101, 114, 32, 40, 117, 115, 101, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 100, 97, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 39, 46, 10, 100, 97, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 119, 105, 110, 100, 111, 119, 115, 32, 119, 104, 101, 114, 101, 32, 112, 105, 120, 101, 108, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 115, 32, 99, 97, 110, 32, 98, 101, 32, 101, 120, 112, 108, 111, 114, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 49, 51, 39, 32, 97, 110, 100, 32, 39, 104, 101, 105, 103, 104, 116, 61, 119, 105, 100, 116, 104, 39, 46, 10, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 51, 125, 62, 48, 34, 32, 38, 38, 32, 34, 36, 123, 50, 61, 36, 49, 125, 62, 48, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 46, 34, 10, 45, 118, 32, 45, 10, 100, 120, 98, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 47, 50, 44, 49, 44, 49, 41, 125, 32, 100, 120, 102, 61, 123, 36, 49, 45, 49, 45, 36, 100, 120, 98, 125, 10, 100, 121, 98, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 50, 44, 49, 44, 49, 41, 125, 32, 100, 121, 102, 61, 123, 36, 50, 45, 49, 45, 36, 100, 121, 98, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 60, 49, 50, 56, 34, 32, 38, 38, 32, 34, 104, 60, 49, 50, 56, 125, 32, 45, 114, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 110, 100, 105, 102, 10, 120, 48, 61, 48, 32, 121, 48, 61, 48, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 119, 109, 97, 120, 61, 123, 48, 46, 57, 42, 64, 123, 33, 44, 117, 125, 125, 32, 104, 109, 97, 120, 61, 123, 48, 46, 57, 42, 64, 123, 33, 44, 118, 125, 125, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 119, 62, 61, 36, 119, 109, 97, 120, 124, 124, 104, 62, 61, 36, 104, 109, 97, 120, 125, 10, 110, 61, 64, 123, 45, 49, 44, 110, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 73, 109, 97, 103, 101, 32, 34, 39, 64, 123, 45, 49, 44, 98, 125, 46, 64, 123, 45, 49, 44, 120, 125, 39, 34, 32, 105, 115, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 44, 32, 112, 108, 101, 97, 115, 101, 32, 115, 101, 108, 101, 99, 116, 32, 97, 32, 115, 117, 98, 45, 105, 109, 97, 103, 101, 46, 34, 10, 45, 45, 115, 101, 108, 101, 99, 116, 91, 45, 49, 93, 32, 50, 32, 120, 48, 61, 123, 105, 40, 48, 44, 48, 41, 125, 32, 121, 48, 61, 123, 105, 40, 48, 44, 49, 41, 125, 32, 119, 61, 123, 49, 43, 105, 40, 48, 44, 51, 41, 45, 105, 40, 48, 44, 48, 41, 125, 32, 104, 61, 123, 49, 43, 105, 40, 48, 44, 52, 41, 45, 105, 40, 48, 44, 49, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 36, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 122, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 48, 44, 123, 36, 120, 48, 43, 36, 119, 45, 49, 125, 44, 123, 36, 121, 48, 43, 36, 104, 45, 49, 125, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 104, 105, 108, 101, 32, 123, 119, 62, 61, 36, 119, 109, 97, 120, 124, 124, 104, 62, 61, 36, 104, 109, 97, 120, 125, 10, 120, 49, 61, 45, 49, 32, 121, 49, 61, 45, 49, 32, 99, 49, 61, 48, 32, 111, 120, 49, 61, 45, 49, 32, 111, 121, 49, 61, 45, 49, 32, 111, 99, 49, 61, 45, 49, 10, 120, 50, 61, 45, 49, 32, 121, 50, 61, 45, 49, 32, 99, 50, 61, 48, 32, 111, 120, 50, 61, 45, 49, 32, 111, 121, 50, 61, 45, 49, 32, 111, 99, 50, 61, 45, 49, 10, 120, 51, 61, 45, 49, 32, 121, 51, 61, 45, 49, 32, 99, 51, 61, 48, 32, 111, 120, 51, 61, 45, 49, 32, 111, 121, 51, 61, 45, 49, 32, 111, 99, 51, 61, 45, 49, 10, 99, 48, 61, 48, 32, 111, 120, 109, 61, 45, 49, 32, 111, 121, 109, 61, 45, 49, 10, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 45, 50, 44, 98, 125, 46, 64, 123, 45, 50, 44, 120, 125, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 91, 48, 45, 51, 93, 10, 111, 99, 48, 61, 36, 99, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 105, 102, 32, 123, 36, 62, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 36, 62, 125, 34, 32, 38, 38, 32, 34, 36, 123, 120, 36, 62, 125, 62, 61, 48, 125, 32, 45, 119, 36, 62, 32, 48, 32, 120, 36, 62, 61, 45, 49, 32, 121, 36, 62, 61, 45, 49, 32, 99, 36, 62, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 36, 62, 44, 111, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 43, 115, 105, 103, 110, 40, 64, 123, 33, 36, 62, 44, 111, 125, 41, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 36, 62, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 69, 78, 84, 69, 82, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 43, 49, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 36, 62, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 85, 80, 125, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 45, 49, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 111, 99, 48, 33, 61, 36, 99, 48, 125, 32, 99, 49, 61, 36, 99, 48, 32, 99, 50, 61, 36, 99, 48, 32, 99, 51, 61, 36, 99, 48, 32, 45, 101, 110, 100, 105, 102, 10, 120, 109, 61, 64, 123, 33, 44, 120, 125, 32, 121, 109, 61, 64, 123, 33, 44, 121, 125, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 120, 49, 61, 36, 120, 109, 32, 121, 49, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 50, 125, 32, 120, 50, 61, 36, 120, 109, 32, 121, 50, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 52, 125, 32, 120, 51, 61, 36, 120, 109, 32, 121, 51, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 109, 33, 61, 36, 120, 109, 34, 32, 124, 124, 32, 34, 36, 111, 121, 109, 33, 61, 36, 121, 109, 41, 125, 32, 45, 119, 91, 93, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 64, 123, 45, 50, 44, 98, 125, 46, 64, 123, 45, 50, 44, 120, 125, 34, 32, 45, 32, 40, 34, 36, 120, 109, 44, 36, 121, 109, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 49, 33, 61, 36, 111, 120, 49, 34, 32, 124, 124, 32, 34, 36, 121, 49, 33, 61, 36, 111, 121, 49, 34, 32, 124, 124, 32, 34, 36, 120, 50, 33, 61, 36, 111, 120, 50, 34, 32, 124, 124, 32, 34, 36, 121, 50, 33, 61, 36, 111, 121, 50, 34, 32, 124, 124, 32, 34, 36, 120, 51, 33, 61, 36, 111, 120, 51, 34, 32, 124, 124, 32, 34, 36, 121, 51, 33, 61, 36, 111, 121, 51, 125, 10, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 51, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 109, 61, 36, 120, 109, 32, 111, 121, 109, 61, 36, 121, 109, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 49, 33, 61, 36, 120, 49, 34, 32, 124, 124, 32, 34, 36, 111, 121, 49, 33, 61, 36, 121, 49, 34, 32, 124, 124, 32, 34, 36, 111, 99, 49, 33, 61, 36, 99, 49, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 49, 44, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 49, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 119, 49, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 49, 44, 36, 121, 49, 44, 99, 61, 36, 99, 49, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 49, 61, 36, 120, 49, 32, 111, 121, 49, 61, 36, 121, 49, 32, 111, 99, 49, 61, 36, 99, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 50, 33, 61, 36, 120, 50, 34, 32, 124, 124, 32, 34, 36, 111, 121, 50, 33, 61, 36, 121, 50, 34, 32, 124, 124, 32, 34, 36, 111, 99, 50, 33, 61, 36, 99, 50, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 50, 44, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 50, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 119, 50, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 50, 44, 36, 121, 50, 44, 99, 61, 36, 99, 50, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 50, 61, 36, 120, 50, 32, 111, 121, 50, 61, 36, 121, 50, 32, 111, 99, 50, 61, 36, 99, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 51, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 51, 33, 61, 36, 120, 51, 34, 32, 124, 124, 32, 34, 36, 111, 121, 51, 33, 61, 36, 121, 51, 34, 32, 124, 124, 32, 34, 36, 111, 99, 51, 33, 61, 36, 99, 51, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 51, 44, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 51, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 119, 51, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 51, 44, 36, 121, 51, 44, 99, 61, 36, 99, 51, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 51, 61, 36, 120, 51, 32, 111, 121, 51, 61, 36, 121, 51, 32, 111, 99, 51, 61, 36, 99, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 50, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 50, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 51, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 51, 44, 81, 125, 125, 10, 45, 107, 91, 48, 93, 32, 45, 119, 32, 48, 32, 45, 119, 49, 32, 48, 32, 45, 119, 50, 32, 48, 32, 45, 119, 51, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 57, 57, 57, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 123, 105, 102, 40, 115, 61, 61, 49, 44, 49, 44, 48, 41, 125, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 49, 42, 50, 52, 125, 44, 123, 36, 50, 42, 50, 52, 125, 32, 45, 103, 114, 105, 100, 91, 45, 50, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 123, 49, 48, 48, 47, 36, 50, 125, 37, 44, 48, 44, 48, 44, 49, 44, 48, 10, 120, 98, 61, 123, 50, 52, 42, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 32, 121, 98, 61, 123, 50, 52, 42, 105, 110, 116, 40, 36, 50, 47, 50, 41, 125, 32, 120, 101, 61, 123, 36, 120, 98, 43, 50, 52, 125, 32, 121, 101, 61, 123, 36, 121, 98, 43, 50, 52, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 50, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 36, 51, 44, 36, 52, 44, 36, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 121, 103, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 120, 103, 61, 36, 62, 10, 45, 116, 91, 45, 50, 93, 32, 64, 123, 45, 51, 44, 40, 36, 120, 103, 44, 36, 121, 103, 41, 125, 44, 123, 53, 43, 36, 120, 103, 42, 50, 52, 125, 44, 123, 53, 43, 36, 121, 103, 42, 50, 52, 125, 44, 49, 51, 44, 48, 46, 56, 44, 123, 105, 102, 40, 64, 123, 45, 49, 44, 40, 36, 120, 103, 44, 36, 121, 103, 41, 125, 62, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 125, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 100, 102, 102, 116, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 39, 46, 10, 100, 102, 102, 116, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 108, 111, 103, 45, 109, 111, 100, 117, 108, 101, 32, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 102, 102, 116, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 108, 111, 103, 45, 109, 111, 100, 117, 108, 101, 32, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 50, 93, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 115, 32, 120, 44, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 103, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 39, 46, 10, 100, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 36, 123, 49, 45, 56, 125, 44, 34, 36, 57, 34, 44, 34, 36, 49, 48, 34, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 51, 50, 44, 95, 104, 101, 105, 103, 104, 116, 62, 51, 50, 44, 95, 112, 108, 111, 116, 95, 116, 121, 112, 101, 44, 95, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 44, 95, 120, 109, 105, 110, 44, 95, 120, 109, 97, 120, 44, 95, 121, 109, 105, 110, 44, 95, 121, 109, 97, 120, 44, 95, 120, 108, 97, 98, 101, 108, 44, 95, 121, 108, 97, 98, 101, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 54, 52, 48, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 52, 56, 48, 39, 44, 32, 39, 112, 108, 111, 116, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 120, 109, 105, 110, 61, 120, 109, 97, 120, 61, 121, 109, 105, 110, 61, 121, 109, 97, 120, 61, 48, 39, 44, 32, 39, 120, 108, 97, 98, 101, 108, 61, 34, 120, 45, 97, 120, 105, 115, 34, 39, 32, 97, 110, 100, 32, 39, 121, 108, 97, 98, 101, 108, 61, 34, 121, 45, 97, 120, 105, 115, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 50, 56, 44, 49, 44, 49, 44, 49, 44, 39, 99, 111, 115, 40, 120, 47, 49, 48, 43, 63, 41, 39, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 36, 123, 49, 45, 56, 125, 44, 34, 36, 57, 34, 44, 34, 36, 49, 48, 34, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 32, 102, 114, 111, 109, 32, 100, 97, 116, 97, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 111, 110, 101, 61, 123, 36, 51, 33, 61, 51, 125, 32, 115, 105, 122, 61, 123, 119, 42, 104, 42, 100, 125, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 36, 54, 125, 32, 120, 109, 105, 110, 61, 48, 32, 120, 109, 97, 120, 61, 123, 36, 115, 105, 122, 45, 36, 111, 110, 101, 125, 32, 45, 101, 108, 115, 101, 32, 120, 109, 105, 110, 61, 123, 109, 105, 110, 40, 36, 53, 44, 36, 54, 41, 125, 32, 120, 109, 97, 120, 61, 123, 109, 97, 120, 40, 36, 53, 44, 36, 54, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 36, 56, 125, 32, 121, 109, 105, 110, 61, 123, 105, 109, 45, 40, 105, 77, 45, 105, 109, 41, 47, 50, 48, 125, 32, 121, 109, 97, 120, 61, 123, 105, 77, 43, 40, 105, 77, 45, 105, 109, 41, 47, 50, 48, 125, 32, 45, 101, 108, 115, 101, 32, 121, 109, 105, 110, 61, 123, 109, 105, 110, 40, 36, 55, 44, 36, 56, 41, 125, 32, 121, 109, 97, 120, 61, 123, 109, 97, 120, 40, 36, 55, 44, 36, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 103, 119, 61, 123, 36, 49, 45, 51, 50, 125, 32, 103, 104, 61, 123, 36, 50, 45, 51, 50, 125, 32, 103, 103, 61, 123, 40, 36, 103, 119, 45, 36, 111, 110, 101, 41, 47, 40, 36, 115, 105, 122, 45, 36, 111, 110, 101, 41, 125, 10, 36, 103, 119, 44, 36, 103, 104, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 60, 51, 50, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 103, 103, 44, 36, 103, 103, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 61, 61, 49, 125, 32, 40, 49, 50, 48, 44, 49, 50, 48, 44, 50, 48, 48, 41, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 60, 61, 51, 125, 32, 40, 50, 50, 48, 44, 49, 48, 44, 49, 48, 59, 49, 48, 44, 50, 50, 48, 44, 49, 48, 59, 49, 48, 44, 49, 48, 44, 50, 50, 48, 41, 10, 45, 101, 108, 115, 101, 10, 40, 48, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 50, 32, 45, 122, 91, 45, 49, 93, 32, 50, 44, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 109, 97, 120, 40, 51, 44, 64, 123, 45, 51, 44, 115, 125, 41, 125, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 45, 51, 44, 115, 125, 32, 45, 115, 104, 91, 45, 51, 93, 32, 36, 62, 44, 36, 62, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 36, 51, 44, 36, 52, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 44, 64, 123, 45, 50, 44, 48, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 49, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 49, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 10, 120, 109, 97, 120, 95, 61, 123, 36, 120, 109, 105, 110, 43, 40, 36, 120, 109, 97, 120, 45, 36, 120, 109, 105, 110, 41, 42, 40, 36, 115, 105, 122, 45, 36, 111, 110, 101, 41, 47, 40, 36, 115, 105, 122, 45, 49, 41, 125, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 120, 109, 105, 110, 62, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 97, 120, 60, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 123, 119, 45, 49, 125, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 121, 109, 105, 110, 62, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 123, 104, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 121, 109, 97, 120, 60, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 50, 50, 48, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 57, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 54, 125, 44, 48, 44, 48, 44, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 48, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 45, 57, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 50, 44, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 104, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 39, 46, 10, 100, 104, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 99, 108, 117, 115, 116, 101, 114, 115, 62, 48, 44, 95, 109, 105, 110, 95, 118, 97, 108, 117, 101, 91, 37, 93, 44, 95, 109, 97, 120, 95, 118, 97, 108, 117, 101, 91, 37, 93, 44, 95, 115, 104, 111, 119, 95, 97, 120, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 97, 32, 99, 104, 97, 110, 110, 101, 108, 45, 98, 121, 45, 99, 104, 97, 110, 110, 101, 108, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 104, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 53, 49, 50, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 51, 48, 48, 39, 44, 32, 39, 99, 108, 117, 115, 116, 101, 114, 115, 61, 50, 53, 54, 39, 44, 32, 39, 109, 105, 110, 95, 118, 97, 108, 117, 101, 61, 48, 37, 39, 44, 32, 39, 109, 97, 120, 95, 118, 97, 108, 117, 101, 61, 49, 48, 48, 37, 39, 32, 97, 110, 100, 32, 39, 115, 104, 111, 119, 95, 97, 120, 101, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 53, 49, 50, 44, 51, 48, 48, 10, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 48, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 53, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 37, 125, 44, 36, 123, 53, 61, 49, 48, 48, 37, 125, 44, 36, 123, 54, 61, 49, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 99, 104, 97, 110, 110, 101, 108, 45, 98, 121, 45, 99, 104, 97, 110, 110, 101, 108, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 36, 51, 32, 99, 108, 117, 115, 116, 101, 114, 115, 44, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 52, 32, 97, 110, 100, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 52, 125, 32, 109, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 52, 125, 32, 45, 101, 108, 115, 101, 32, 109, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 53, 125, 32, 77, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 53, 125, 32, 45, 101, 108, 115, 101, 32, 77, 61, 36, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 51, 44, 36, 109, 44, 36, 77, 32, 45, 97, 32, 99, 32, 118, 77, 61, 123, 105, 77, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 123, 115, 125, 44, 45, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 45, 115, 104, 91, 45, 50, 44, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 44, 48, 44, 36, 118, 77, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 44, 36, 118, 77, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 112, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 39, 46, 10, 100, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 51, 50, 44, 95, 104, 101, 105, 103, 104, 116, 62, 51, 50, 44, 95, 111, 117, 116, 108, 105, 110, 101, 95, 116, 121, 112, 101, 44, 95, 102, 105, 108, 108, 95, 82, 44, 95, 102, 105, 108, 108, 95, 71, 44, 95, 102, 105, 108, 108, 95, 66, 44, 95, 116, 104, 101, 116, 97, 95, 115, 116, 97, 114, 116, 44, 95, 116, 104, 101, 116, 97, 95, 101, 110, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 112, 111, 108, 97, 114, 32, 99, 117, 114, 118, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 112, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 111, 117, 116, 108, 105, 110, 101, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 114, 60, 48, 61, 100, 111, 116, 115, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 45, 114, 32, 124, 32, 48, 61, 110, 111, 32, 111, 117, 116, 108, 105, 110, 101, 32, 124, 32, 114, 62, 48, 61, 108, 105, 110, 101, 115, 43, 100, 111, 116, 115, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 32, 102, 105, 108, 108, 32, 124, 32, 82, 44, 71, 44, 66, 61, 102, 105, 108, 108, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 53, 48, 48, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 119, 105, 100, 116, 104, 39, 44, 32, 39, 111, 117, 116, 108, 105, 110, 101, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 102, 105, 108, 108, 95, 82, 61, 102, 105, 108, 108, 95, 71, 61, 102, 105, 108, 108, 95, 66, 61, 50, 48, 48, 39, 44, 32, 39, 116, 104, 101, 116, 97, 95, 115, 116, 97, 114, 116, 61, 48, 39, 32, 97, 110, 100, 32, 39, 116, 104, 101, 116, 97, 95, 101, 110, 100, 61, 51, 54, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 48, 46, 51, 43, 97, 98, 115, 40, 99, 111, 115, 40, 49, 48, 42, 112, 105, 42, 120, 47, 119, 41, 41, 43, 63, 40, 48, 46, 52, 41, 39, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 53, 49, 50, 44, 53, 49, 50, 44, 52, 44, 50, 48, 48, 44, 50, 53, 53, 44, 50, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 120, 94, 51, 47, 49, 101, 49, 48, 39, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 45, 49, 44, 44, 44, 48, 44, 123, 49, 53, 42, 51, 54, 48, 125, 10, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 50, 48, 48, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 51, 54, 48, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 112, 111, 108, 97, 114, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 32, 102, 114, 111, 109, 32, 100, 97, 116, 97, 32, 111, 102, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 52, 32, 97, 110, 100, 32, 102, 105, 108, 108, 32, 99, 111, 108, 111, 114, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 77, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 105, 77, 41, 44, 97, 98, 115, 40, 105, 109, 41, 41, 125, 10, 45, 42, 32, 123, 48, 46, 52, 56, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 36, 77, 125, 10, 45, 121, 32, 121, 32, 40, 123, 36, 55, 42, 112, 105, 47, 49, 56, 48, 125, 59, 123, 45, 36, 56, 42, 112, 105, 47, 49, 56, 48, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 51, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 78, 61, 123, 104, 125, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 111, 114, 100, 115, 10, 45, 105, 102, 32, 36, 51, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 36, 78, 44, 36, 78, 41, 10, 45, 45, 122, 91, 99, 111, 111, 114, 100, 115, 93, 32, 48, 44, 50, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 50, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 50, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 48, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 34, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 36, 78, 43, 49, 125, 44, 36, 78, 41, 10, 45, 45, 122, 91, 99, 111, 111, 114, 100, 115, 93, 32, 48, 44, 45, 49, 44, 50, 44, 49, 48, 48, 37, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 49, 44, 36, 78, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 39, 49, 43, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 51, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 99, 111, 111, 114, 100, 115, 93, 10, 123, 36, 49, 45, 51, 50, 125, 44, 123, 36, 50, 45, 51, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 76, 61, 123, 48, 46, 49, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 76, 44, 36, 76, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 105, 102, 32, 123, 34, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 10, 45, 114, 109, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 48, 125, 10, 45, 105, 102, 32, 123, 97, 98, 115, 40, 36, 51, 41, 62, 49, 125, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 32, 123, 97, 98, 115, 40, 36, 51, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 46, 50, 44, 50, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 10, 45, 101, 110, 100, 105, 102, 10, 110, 77, 61, 123, 36, 77, 47, 48, 46, 57, 54, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 123, 45, 36, 110, 77, 125, 44, 36, 110, 77, 44, 36, 110, 77, 44, 123, 45, 36, 110, 77, 125, 44, 49, 51, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 10, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 53, 44, 49, 53, 44, 50, 50, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 114, 103, 98, 97, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 39, 46, 10, 100, 114, 103, 98, 97, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 115, 32, 111, 118, 101, 114, 32, 97, 32, 99, 104, 101, 99, 107, 101, 114, 98, 111, 97, 114, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 114, 103, 98, 97, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 52, 48, 37, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 51, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 111, 118, 101, 114, 32, 97, 32, 99, 104, 101, 99, 107, 101, 114, 98, 111, 97, 114, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 91, 48, 93, 32, 40, 49, 54, 48, 44, 49, 50, 56, 59, 49, 50, 56, 44, 49, 54, 48, 41, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 32, 45, 114, 91, 48, 93, 32, 49, 54, 44, 49, 54, 32, 45, 114, 91, 48, 93, 32, 91, 49, 93, 44, 91, 49, 93, 44, 49, 44, 123, 115, 45, 49, 125, 44, 48, 44, 50, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 116, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 39, 46, 10, 100, 116, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 95, 115, 105, 122, 101, 95, 102, 97, 99, 116, 111, 114, 62, 48, 44, 95, 101, 108, 108, 105, 112, 115, 101, 95, 102, 97, 99, 116, 111, 114, 62, 61, 48, 44, 95, 99, 111, 108, 111, 114, 101, 100, 95, 109, 111, 100, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 115, 107, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 120, 50, 32, 116, 101, 110, 115, 111, 114, 115, 32, 119, 105, 116, 104, 32, 101, 108, 108, 105, 112, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 116, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 102, 97, 99, 116, 111, 114, 61, 49, 54, 39, 44, 32, 39, 101, 108, 108, 105, 112, 115, 101, 95, 102, 97, 99, 116, 111, 114, 61, 48, 46, 57, 50, 39, 44, 32, 39, 99, 111, 108, 111, 114, 95, 109, 111, 100, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 48, 46, 55, 44, 48, 46, 54, 32, 45, 99, 114, 111, 112, 32, 54, 48, 44, 49, 48, 44, 57, 48, 44, 51, 48, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 44, 10, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 57, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 49, 125, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 120, 50, 32, 116, 101, 110, 115, 111, 114, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 102, 97, 99, 116, 111, 114, 32, 36, 49, 44, 32, 101, 108, 108, 105, 112, 115, 101, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 99, 111, 108, 111, 114, 101, 100, 44, 109, 97, 115, 107, 101, 100, 125, 34, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 51, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 36, 49, 44, 36, 50, 44, 48, 10, 45, 115, 91, 48, 93, 32, 99, 32, 45, 45, 109, 105, 110, 91, 48, 44, 50, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 44, 45, 49, 93, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 10, 45, 114, 91, 48, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 42, 32, 123, 40, 36, 50, 42, 36, 49, 47, 50, 41, 94, 50, 47, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 125, 10, 45, 115, 32, 99, 32, 45, 105, 91, 45, 50, 93, 32, 91, 45, 50, 93, 32, 45, 97, 32, 99, 32, 45, 115, 32, 121, 120, 32, 45, 114, 32, 50, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 40, 48, 46, 53, 44, 48, 59, 48, 44, 48, 46, 53, 41, 32, 45, 43, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 110, 118, 101, 114, 116, 32, 45, 121, 32, 99, 32, 45, 114, 32, 36, 49, 44, 36, 49, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 91, 45, 49, 93, 32, 123, 119, 47, 50, 125, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 10, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 105, 91, 45, 50, 93, 32, 91, 45, 50, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 42, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 108, 101, 32, 49, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 119, 44, 36, 104, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 119, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 39, 46, 10, 100, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 58, 32, 95, 99, 101, 108, 108, 95, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 50, 100, 32, 119, 97, 114, 112, 105, 110, 103, 32, 102, 105, 101, 108, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 119, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 99, 101, 108, 108, 95, 115, 105, 122, 101, 61, 49, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 98, 108, 117, 114, 32, 53, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 44, 10, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 53, 125, 62, 48, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 50, 100, 32, 119, 97, 114, 112, 105, 110, 103, 32, 102, 105, 101, 108, 100, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 99, 101, 108, 108, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 33, 61, 49, 124, 124, 115, 33, 61, 50, 125, 10, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 50, 100, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 103, 114, 105, 100, 91, 48, 93, 32, 36, 49, 44, 36, 49, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 10, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 58, 32, 95, 102, 111, 114, 109, 97, 116, 61, 123, 32, 97, 115, 99, 105, 105, 32, 124, 32, 104, 116, 109, 108, 32, 124, 32, 108, 97, 116, 101, 120, 32, 124, 32, 120, 109, 108, 32, 124, 32, 98, 97, 115, 104, 32, 124, 32, 105, 109, 97, 103, 101, 115, 32, 125, 44, 95, 105, 109, 97, 103, 101, 95, 112, 97, 116, 104, 44, 95, 119, 114, 105, 116, 101, 95, 119, 114, 97, 112, 112, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 46, 103, 109, 105, 99, 32, 99, 111, 109, 109, 97, 110, 100, 32, 102, 105, 108, 101, 115, 32, 40, 108, 111, 97, 100, 101, 100, 32, 97, 115, 32, 114, 97, 119, 32, 39, 117, 99, 104, 97, 114, 39, 32, 105, 109, 97, 103, 101, 115, 41, 44, 32, 105, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 97, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 102, 111, 114, 109, 97, 116, 61, 97, 115, 99, 105, 105, 39, 44, 32, 39, 105, 109, 97, 103, 101, 95, 112, 97, 116, 104, 61, 34, 34, 39, 32, 97, 110, 100, 32, 39, 119, 114, 105, 116, 101, 95, 119, 114, 97, 112, 112, 101, 114, 61, 49, 39, 46, 92, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 97, 109, 112, 108, 101, 40, 115, 41, 32, 58, 32, 114, 97, 119, 58, 102, 105, 108, 101, 46, 103, 109, 105, 99, 44, 117, 99, 104, 97, 114, 32, 45, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 104, 116, 109, 108, 44, 105, 109, 103, 10, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 97, 115, 99, 105, 105, 34, 125, 44, 36, 123, 50, 61, 34, 34, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 49, 10, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 98, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 109, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 115, 32, 45, 44, 49, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 36, 49, 91, 93, 32, 36, 51, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 95, 101, 120, 97, 109, 112, 108, 101, 61, 48, 10, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 112, 97, 116, 104, 61, 34, 36, 50, 34, 10, 107, 115, 48, 61, 34, 48, 34, 32, 107, 115, 49, 61, 34, 45, 107, 91, 48, 93, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 104, 62, 55, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 53, 125, 39, 61, 61, 39, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 125, 34, 32, 38, 38, 32, 34, 40, 105, 40, 48, 44, 54, 41, 61, 61, 123, 39, 34, 32, 34, 39, 125, 34, 32, 124, 124, 32, 34, 105, 40, 48, 44, 54, 41, 61, 61, 123, 39, 58, 39, 125, 41, 125, 10, 45, 114, 111, 119, 115, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 95, 99, 111, 109, 109, 97, 110, 100, 61, 123, 36, 95, 99, 111, 109, 109, 97, 110, 100, 43, 49, 125, 10, 45, 115, 32, 45, 44, 123, 39, 34, 58, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 58, 39, 125, 125, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 36, 39, 125, 125, 10, 95, 101, 120, 97, 109, 112, 108, 101, 61, 123, 36, 95, 101, 120, 97, 109, 112, 108, 101, 43, 49, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 95, 102, 105, 108, 101, 110, 97, 109, 101, 61, 36, 95, 112, 97, 116, 104, 36, 95, 110, 97, 109, 101, 36, 95, 101, 120, 97, 109, 112, 108, 101, 46, 106, 112, 103, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 36, 123, 107, 115, 123, 64, 35, 33, 61, 48, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 36, 49, 91, 93, 32, 36, 51, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, 109, 108, 32, 80, 85, 66, 76, 73, 67, 32, 92, 34, 45, 47, 47, 87, 51, 67, 47, 47, 68, 84, 68, 32, 88, 72, 84, 77, 76, 32, 49, 46, 48, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 47, 47, 69, 78, 92, 34, 32, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 84, 82, 47, 120, 104, 116, 109, 108, 49, 47, 68, 84, 68, 47, 120, 104, 116, 109, 108, 49, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 46, 100, 116, 100, 92, 34, 62, 10, 92, 110, 60, 104, 101, 97, 100, 62, 10, 92, 110, 60, 115, 99, 114, 105, 112, 116, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 92, 34, 32, 115, 114, 99, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 104, 105, 103, 104, 115, 108, 105, 100, 101, 46, 106, 115, 92, 34, 62, 60, 47, 115, 99, 114, 105, 112, 116, 62, 10, 92, 110, 60, 108, 105, 110, 107, 32, 114, 101, 108, 61, 92, 34, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 99, 115, 115, 92, 34, 32, 104, 114, 101, 102, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 104, 105, 103, 104, 115, 108, 105, 100, 101, 46, 99, 115, 115, 92, 34, 32, 47, 62, 10, 92, 110, 60, 115, 99, 114, 105, 112, 116, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 92, 34, 62, 10, 92, 110, 104, 115, 46, 103, 114, 97, 112, 104, 105, 99, 115, 68, 105, 114, 32, 61, 32, 39, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 103, 114, 97, 112, 104, 105, 99, 115, 47, 39, 59, 10, 92, 110, 104, 115, 46, 119, 114, 97, 112, 112, 101, 114, 67, 108, 97, 115, 115, 78, 97, 109, 101, 32, 61, 32, 39, 119, 105, 100, 101, 45, 98, 111, 114, 100, 101, 114, 39, 59, 10, 92, 110, 60, 47, 115, 99, 114, 105, 112, 116, 62, 10, 92, 110, 60, 47, 104, 101, 97, 100, 62, 10, 92, 110, 60, 98, 111, 100, 121, 62, 10, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 32, 34, 100, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 100, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 101, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 101, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 104, 116, 109, 108, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 60, 98, 114, 47, 62, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 62, 60, 116, 116, 62, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 60, 47, 116, 116, 62, 60, 47, 112, 62, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 60, 98, 114, 47, 62, 60, 116, 97, 98, 108, 101, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 32, 119, 105, 100, 116, 104, 61, 92, 34, 55, 53, 37, 92, 34, 32, 98, 103, 99, 111, 108, 111, 114, 61, 92, 34, 35, 69, 69, 69, 69, 69, 69, 92, 34, 32, 98, 111, 114, 100, 101, 114, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 97, 99, 107, 92, 34, 32, 98, 111, 114, 100, 101, 114, 61, 92, 34, 49, 92, 34, 32, 99, 101, 108, 108, 112, 97, 100, 100, 105, 110, 103, 61, 92, 34, 52, 92, 34, 32, 99, 101, 108, 108, 115, 112, 97, 99, 105, 110, 103, 61, 92, 34, 48, 92, 34, 62, 34, 92, 10, 34, 60, 116, 114, 62, 60, 116, 100, 32, 99, 111, 108, 115, 112, 97, 110, 61, 92, 34, 50, 92, 34, 32, 98, 103, 99, 111, 108, 111, 114, 61, 92, 34, 35, 55, 55, 55, 55, 55, 55, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 119, 104, 105, 116, 101, 92, 34, 62, 60, 98, 62, 69, 120, 97, 109, 112, 108, 101, 40, 115, 41, 32, 111, 102, 32, 117, 115, 101, 58, 60, 47, 98, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 116, 100, 62, 60, 47, 116, 114, 62, 34, 10, 95, 105, 115, 95, 101, 120, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 60, 47, 116, 97, 98, 108, 101, 62, 34, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 98, 114, 47, 62, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 34, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 34, 92, 34, 62, 60, 104, 51, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 112, 117, 114, 112, 108, 101, 92, 34, 62, 42, 42, 32, 60, 117, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 51, 62, 60, 47, 97, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 49, 61, 34, 92, 110, 34, 32, 115, 48, 61, 34, 32, 124, 60, 98, 114, 47, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 50, 48, 112, 120, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 103, 114, 101, 101, 110, 92, 34, 62, 38, 110, 98, 115, 112, 59, 38, 110, 98, 115, 112, 59, 60, 98, 62, 45, 34, 64, 123, 48, 44, 116, 125, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 34, 60, 47, 98, 62, 58, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 53, 48, 112, 120, 92, 34, 62, 60, 116, 116, 62, 60, 105, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 112, 117, 114, 112, 108, 101, 92, 34, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 36, 123, 115, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 60, 47, 102, 111, 110, 116, 62, 60, 47, 105, 62, 60, 47, 116, 116, 62, 60, 47, 112, 62, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 93, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 49, 50, 125, 39, 61, 61, 39, 123, 39, 34, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 34, 39, 125, 125, 10, 45, 115, 32, 43, 44, 123, 39, 58, 39, 125, 32, 45, 108, 91, 94, 48, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 58, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 98, 114, 47, 62, 60, 98, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 98, 62, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 98, 114, 47, 62, 34, 64, 123, 48, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 55, 125, 39, 61, 61, 39, 123, 39, 34, 40, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 105, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 102, 111, 110, 116, 62, 60, 47, 105, 62, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 40, 105, 60, 123, 39, 65, 39, 125, 34, 32, 124, 124, 32, 34, 105, 62, 123, 39, 90, 39, 125, 41, 34, 32, 38, 38, 32, 34, 105, 33, 61, 52, 48, 34, 32, 38, 38, 32, 34, 105, 33, 61, 51, 57, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 38, 110, 98, 115, 112, 59, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 110, 125, 34, 60, 116, 114, 62, 60, 116, 100, 32, 119, 105, 100, 116, 104, 61, 92, 34, 52, 48, 92, 34, 62, 60, 100, 105, 118, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 32, 99, 108, 97, 115, 115, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 92, 34, 32, 111, 110, 99, 108, 105, 99, 107, 61, 92, 34, 114, 101, 116, 117, 114, 110, 32, 104, 115, 46, 101, 120, 112, 97, 110, 100, 40, 116, 104, 105, 115, 41, 92, 34, 62, 34, 92, 10, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 40, 118, 105, 101, 119, 41, 60, 47, 102, 111, 110, 116, 62, 60, 47, 97, 62, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 45, 99, 97, 112, 116, 105, 111, 110, 92, 34, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 60, 47, 116, 100, 62, 60, 116, 100, 62, 60, 116, 116, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 116, 116, 62, 60, 47, 116, 100, 62, 60, 47, 116, 114, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 104, 116, 109, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 50, 48, 112, 120, 92, 34, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 103, 114, 101, 101, 110, 92, 34, 62, 60, 98, 62, 38, 110, 98, 115, 112, 59, 38, 110, 98, 115, 112, 59, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 60, 47, 98, 62, 58, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 101, 91, 93, 32, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 60, 105, 62, 101, 113, 46, 32, 116, 111, 32, 39, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 39, 60, 47, 105, 62, 60, 47, 102, 111, 110, 116, 62, 60, 98, 114, 47, 62, 34, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 60, 47, 112, 62, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 60, 98, 62, 91, 32, 84, 111, 116, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 58, 32, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 34, 32, 93, 60, 47, 98, 62, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 118, 32, 45, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 102, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 120, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, 110, 61, 92, 34, 49, 46, 48, 92, 34, 32, 101, 110, 99, 111, 100, 105, 110, 103, 61, 92, 34, 85, 84, 70, 45, 56, 92, 34, 32, 115, 116, 97, 110, 100, 97, 108, 111, 110, 101, 61, 92, 34, 121, 101, 115, 92, 34, 63, 62, 10, 92, 110, 60, 63, 120, 109, 108, 45, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 32, 104, 114, 101, 102, 61, 92, 34, 103, 109, 105, 99, 95, 100, 111, 99, 46, 120, 115, 108, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 120, 115, 108, 92, 34, 63, 62, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 103, 109, 105, 99, 45, 112, 97, 99, 107, 97, 103, 101, 32, 120, 109, 108, 110, 115, 58, 120, 115, 105, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 49, 47, 88, 77, 76, 83, 99, 104, 101, 109, 97, 45, 105, 110, 115, 116, 97, 110, 99, 101, 92, 34, 32, 120, 115, 105, 58, 110, 111, 78, 97, 109, 101, 115, 112, 97, 99, 101, 83, 99, 104, 101, 109, 97, 76, 111, 99, 97, 116, 105, 111, 110, 61, 92, 34, 103, 109, 105, 99, 95, 100, 111, 99, 46, 120, 115, 100, 92, 34, 62, 10, 92, 110, 60, 110, 97, 109, 101, 62, 34, 36, 95, 110, 97, 109, 101, 34, 60, 47, 110, 97, 109, 101, 62, 10, 92, 110, 60, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 32, 32, 60, 110, 97, 109, 101, 62, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 118, 32, 45, 10, 45, 109, 32, 34, 100, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 120, 109, 108, 34, 10, 45, 109, 32, 34, 100, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 120, 109, 108, 34, 10, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 32, 32, 32, 32, 60, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 92, 110, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 32, 32, 32, 32, 60, 47, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 92, 110, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 32, 32, 60, 110, 97, 109, 101, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 49, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 10, 45, 118, 32, 45, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 49, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 49, 61, 34, 34, 32, 115, 48, 61, 34, 32, 124, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 110, 97, 109, 101, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 97, 114, 103, 117, 109, 101, 110, 116, 115, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 34, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 36, 123, 115, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 47, 97, 114, 103, 117, 109, 101, 110, 116, 115, 62, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 32, 32, 32, 32, 32, 32, 34, 64, 123, 48, 44, 116, 125, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 32, 32, 60, 101, 120, 97, 109, 112, 108, 101, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 60, 99, 111, 109, 109, 97, 110, 100, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 99, 111, 109, 109, 97, 110, 100, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 60, 114, 101, 115, 117, 108, 116, 62, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 60, 47, 114, 101, 115, 117, 108, 116, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 47, 101, 120, 97, 109, 112, 108, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 120, 109, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 60, 47, 103, 109, 105, 99, 45, 112, 97, 99, 107, 97, 103, 101, 62, 34, 10, 45, 118, 32, 45, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 32, 58, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 38, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 60, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 108, 116, 59, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 62, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 103, 116, 59, 39, 125, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 100, 111, 99, 117, 109, 101, 110, 116, 99, 108, 97, 115, 115, 91, 97, 52, 112, 97, 112, 101, 114, 44, 49, 48, 112, 116, 44, 116, 119, 111, 115, 105, 100, 101, 93, 123, 98, 111, 111, 107, 125, 10, 92, 110, 92, 92, 117, 115, 101, 112, 97, 99, 107, 97, 103, 101, 123, 104, 121, 112, 101, 114, 114, 101, 102, 44, 102, 97, 110, 99, 121, 104, 100, 114, 44, 103, 114, 97, 112, 104, 105, 99, 120, 44, 97, 109, 115, 115, 121, 109, 98, 44, 97, 109, 115, 109, 97, 116, 104, 44, 116, 105, 109, 101, 115, 44, 109, 97, 107, 101, 105, 100, 120, 125, 10, 92, 110, 92, 92, 103, 114, 97, 112, 104, 105, 99, 115, 112, 97, 116, 104, 123, 123, 34, 36, 95, 112, 97, 116, 104, 34, 125, 125, 10, 92, 110, 92, 92, 112, 97, 103, 101, 115, 116, 121, 108, 101, 123, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 125, 10, 92, 110, 92, 92, 108, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 114, 105, 103, 104, 116, 109, 97, 114, 107, 125, 125, 10, 92, 110, 92, 92, 114, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 108, 101, 102, 116, 109, 97, 114, 107, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 125, 10, 92, 110, 92, 92, 99, 102, 111, 111, 116, 123, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 53, 46, 56, 55, 53, 105, 110, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 112, 97, 114, 105, 110, 100, 101, 110, 116, 125, 123, 48, 112, 99, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 104, 111, 102, 102, 115, 101, 116, 125, 123, 45, 48, 46, 56, 99, 109, 125, 10, 92, 110, 92, 92, 115, 101, 116, 99, 111, 117, 110, 116, 101, 114, 123, 116, 111, 99, 100, 101, 112, 116, 104, 125, 123, 49, 125, 10, 92, 110, 92, 92, 115, 108, 111, 112, 112, 121, 123, 125, 10, 92, 110, 92, 92, 114, 101, 110, 101, 119, 99, 111, 109, 109, 97, 110, 100, 92, 92, 105, 110, 100, 101, 120, 110, 97, 109, 101, 123, 73, 110, 100, 101, 120, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 105, 110, 100, 101, 120, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 10, 92, 110, 92, 92, 116, 97, 98, 108, 101, 111, 102, 99, 111, 110, 116, 101, 110, 116, 115, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 123, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 34, 32, 45, 118, 32, 45, 10, 45, 109, 32, 34, 101, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 108, 97, 116, 101, 120, 34, 10, 45, 109, 32, 34, 101, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 108, 97, 116, 101, 120, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 92, 92, 92, 92, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 92, 92, 98, 101, 103, 105, 110, 123, 99, 101, 110, 116, 101, 114, 125, 34, 10, 95, 105, 115, 95, 101, 120, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 92, 92, 101, 110, 100, 123, 99, 101, 110, 116, 101, 114, 125, 34, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 34, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 123, 34, 64, 123, 48, 44, 116, 125, 34, 125, 34, 32, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 101, 49, 61, 34, 92, 92, 92, 92, 126, 92, 92, 92, 92, 34, 32, 101, 48, 61, 34, 126, 126, 126, 36, 124, 36, 92, 92, 92, 92, 34, 10, 115, 49, 61, 34, 92, 92, 104, 115, 112, 97, 99, 101, 42, 123, 50, 46, 50, 99, 109, 125, 34, 32, 115, 48, 61, 34, 34, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 34, 92, 110, 92, 110, 92, 92, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 123, 92, 92, 101, 109, 112, 104, 123, 45, 34, 64, 123, 48, 44, 116, 125, 34, 92, 92, 105, 110, 100, 101, 120, 123, 45, 34, 64, 123, 48, 44, 116, 125, 34, 125, 125, 32, 34, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 34, 125, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 45, 48, 46, 53, 101, 109, 125, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 126, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 98, 102, 123, 65, 114, 103, 117, 109, 101, 110, 116, 115, 58, 32, 125, 32, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 36, 123, 115, 123, 36, 62, 33, 61, 48, 125, 125, 34, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 34, 125, 125, 34, 36, 123, 101, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 115, 48, 61, 34, 34, 32, 115, 49, 61, 34, 126, 92, 92, 92, 92, 34, 32, 115, 61, 36, 123, 115, 36, 95, 105, 115, 95, 100, 101, 115, 99, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 49, 50, 125, 39, 61, 61, 39, 123, 39, 34, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 34, 39, 125, 125, 10, 45, 115, 32, 43, 44, 123, 39, 58, 39, 125, 32, 45, 108, 91, 94, 48, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 58, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 32, 97, 110, 100, 32, 34, 39, 125, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 125, 32, 97, 110, 100, 32, 92, 92, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 39, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 126, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 98, 102, 123, 34, 64, 123, 48, 44, 116, 125, 34, 125, 58, 32, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 126, 92, 92, 92, 92, 34, 64, 123, 48, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 55, 125, 39, 61, 61, 39, 123, 39, 34, 40, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 56, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 41, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 40, 92, 92, 101, 109, 112, 104, 123, 101, 113, 46, 32, 116, 111, 125, 32, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 40, 105, 60, 123, 39, 65, 39, 125, 34, 32, 124, 124, 32, 34, 105, 62, 123, 39, 90, 39, 125, 41, 34, 32, 38, 38, 32, 34, 105, 33, 61, 52, 48, 34, 32, 38, 38, 32, 34, 105, 33, 61, 51, 57, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 110, 125, 34, 92, 92, 105, 110, 99, 108, 117, 100, 101, 103, 114, 97, 112, 104, 105, 99, 115, 91, 107, 101, 101, 112, 97, 115, 112, 101, 99, 116, 114, 97, 116, 105, 111, 61, 116, 114, 117, 101, 44, 104, 101, 105, 103, 104, 116, 61, 55, 99, 109, 44, 119, 105, 100, 116, 104, 61, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 93, 123, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 125, 92, 92, 92, 92, 34, 10, 45, 101, 91, 93, 32, 34, 123, 92, 92, 102, 111, 111, 116, 110, 111, 116, 101, 115, 105, 122, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 69, 120, 97, 109, 112, 108, 101, 32, 34, 36, 95, 101, 120, 97, 109, 112, 108, 101, 34, 126, 58, 125, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 36, 92, 92, 98, 117, 108, 108, 101, 116, 36, 126, 39, 92, 92, 116, 101, 120, 116, 116, 116, 123, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 125, 39, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 126, 105, 115, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 126, 126, 39, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 125, 39, 46, 92, 92, 92, 92, 34, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 92, 92, 112, 114, 105, 110, 116, 105, 110, 100, 101, 120, 10, 92, 110, 126, 92, 92, 92, 92, 36, 92, 92, 115, 113, 117, 97, 114, 101, 36, 126, 69, 110, 100, 32, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 10, 92, 110, 92, 110, 92, 92, 101, 110, 100, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 34, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 92, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 92, 92, 92, 92, 116, 101, 120, 116, 98, 97, 99, 107, 115, 108, 97, 115, 104, 32, 34, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 95, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 95, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 37, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 37, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 35, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 37, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 94, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 92, 92, 92, 92, 116, 101, 120, 116, 97, 115, 99, 105, 105, 99, 105, 114, 99, 117, 109, 32, 34, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 36, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 36, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 123, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 92, 123, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 125, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 92, 125, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 38, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 38, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 124, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 126, 36, 124, 36, 126, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 60, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 36, 92, 60, 36, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 62, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 36, 92, 62, 36, 39, 125, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 45, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 101, 120, 97, 109, 112, 108, 101, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 39, 34, 36, 95, 110, 97, 109, 101, 34, 39, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 95, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 116, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 105, 109, 97, 103, 101, 115, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 46, 32, 67, 111, 109, 109, 97, 110, 100, 32, 39, 45, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 34, 39, 58, 32, 36, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 49, 32, 45, 114, 101, 115, 101, 116, 32, 45, 118, 32, 45, 57, 57, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 45, 32, 91, 32, 65, 108, 108, 32, 100, 111, 110, 101, 33, 32, 93, 92, 110, 92, 110, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 42, 42, 32, 34, 64, 123, 48, 44, 116, 125, 34, 58, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 32, 45, 34, 64, 123, 48, 44, 116, 125, 36, 123, 113, 117, 97, 108, 105, 102, 105, 101, 114, 125, 34, 58, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 64, 35, 10, 115, 61, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 10, 45, 121, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 34, 32, 124, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 120, 44, 45, 56, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 92, 92, 92, 92, 92, 110, 36, 115, 34, 32, 32, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 120, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 36, 115, 64, 123, 48, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 115, 61, 34, 32, 32, 32, 32, 32, 32, 32, 32, 34, 10, 45, 121, 32, 120, 32, 45, 115, 32, 120, 44, 45, 57, 54, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 92, 92, 92, 92, 92, 110, 36, 115, 34, 32, 32, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 101, 91, 93, 32, 36, 115, 64, 123, 36, 62, 44, 116, 125, 32, 45, 118, 32, 45, 32, 45, 100, 111, 110, 101, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 97, 115, 99, 105, 105, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 91, 45, 49, 93, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 39, 46, 34, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 91, 32, 84, 111, 116, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 58, 32, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 34, 32, 93, 34, 32, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 98, 97, 115, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 35, 10, 92, 110, 92, 35, 32, 32, 66, 97, 115, 104, 32, 99, 111, 109, 112, 108, 101, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 32, 102, 111, 114, 32, 39, 103, 109, 105, 99, 39, 46, 10, 92, 110, 92, 35, 10, 92, 110, 92, 35, 32, 84, 104, 105, 115, 32, 102, 105, 108, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 46, 10, 92, 110, 92, 35, 32, 68, 111, 32, 110, 111, 116, 32, 101, 100, 105, 116, 33, 10, 92, 110, 92, 35, 10, 92, 110, 92, 35, 32, 84, 104, 105, 115, 32, 102, 105, 108, 101, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 99, 111, 112, 105, 101, 100, 47, 114, 101, 110, 97, 109, 101, 100, 32, 105, 110, 32, 39, 47, 101, 116, 99, 47, 98, 97, 115, 104, 95, 99, 111, 109, 112, 108, 101, 116, 105, 111, 110, 46, 100, 47, 103, 109, 105, 99, 39, 46, 10, 92, 110, 92, 35, 10, 92, 110, 10, 92, 110, 95, 34, 36, 95, 110, 97, 109, 101, 34, 40, 41, 10, 92, 110, 123, 10, 92, 110, 92, 116, 108, 111, 99, 97, 108, 32, 99, 117, 114, 32, 112, 114, 101, 118, 32, 111, 112, 116, 115, 32, 99, 111, 109, 115, 10, 92, 110, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 41, 10, 92, 110, 92, 116, 99, 117, 114, 61, 92, 34, 36, 123, 67, 79, 77, 80, 95, 87, 79, 82, 68, 83, 91, 67, 79, 77, 80, 95, 67, 87, 79, 82, 68, 93, 125, 92, 34, 10, 92, 110, 92, 116, 112, 114, 101, 118, 61, 92, 34, 36, 123, 67, 79, 77, 80, 95, 87, 79, 82, 68, 83, 91, 67, 79, 77, 80, 95, 67, 87, 79, 82, 68, 45, 49, 93, 125, 92, 34, 10, 34, 10, 45, 118, 32, 45, 10, 95, 111, 112, 116, 115, 61, 10, 95, 99, 111, 109, 115, 61, 10, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 110, 98, 111, 112, 116, 115, 61, 48, 10, 95, 110, 98, 99, 111, 109, 115, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 111, 112, 116, 115, 36, 95, 110, 98, 111, 112, 116, 115, 61, 45, 64, 123, 48, 44, 116, 125, 34, 32, 34, 45, 45, 64, 123, 48, 44, 116, 125, 10, 95, 110, 98, 111, 112, 116, 115, 61, 123, 36, 95, 110, 98, 111, 112, 116, 115, 43, 49, 125, 10, 95, 99, 111, 109, 115, 36, 95, 110, 98, 99, 111, 109, 115, 61, 64, 123, 48, 44, 116, 125, 10, 95, 110, 98, 99, 111, 109, 115, 61, 123, 36, 95, 110, 98, 99, 111, 109, 115, 43, 49, 125, 10, 45, 105, 102, 32, 123, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 105, 110, 112, 117, 116, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 105, 34, 125, 34, 32, 124, 124, 32, 34, 92, 10, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 111, 117, 116, 112, 117, 116, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 111, 34, 125, 34, 32, 124, 124, 32, 34, 92, 10, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 99, 111, 109, 109, 97, 110, 100, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 109, 34, 125, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 123, 64, 123, 36, 60, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 124, 124, 123, 64, 123, 36, 60, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 45, 39, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 115, 116, 114, 50, 104, 101, 120, 92, 32, 64, 123, 49, 44, 116, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 95, 99, 111, 109, 109, 97, 110, 100, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 48, 44, 116, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 104, 101, 108, 112, 34, 125, 32, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 34, 36, 99, 111, 109, 115, 92, 34, 32, 45, 45, 32, 92, 34, 36, 99, 117, 114, 34, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 40, 123, 39, 62, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 94, 48, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 105, 91, 50, 45, 45, 50, 93, 32, 40, 123, 39, 34, 32, 34, 39, 125, 41, 32, 45, 97, 91, 94, 48, 93, 32, 121, 10, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 64, 123, 45, 115, 116, 114, 50, 104, 101, 120, 92, 32, 64, 123, 48, 44, 116, 125, 125, 61, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 125, 10, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 123, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 98, 97, 115, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 116, 111, 112, 116, 115, 61, 92, 34, 92, 92, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 111, 112, 116, 115, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 32, 34, 36, 123, 95, 111, 112, 116, 115, 36, 62, 125, 92, 92, 32, 45, 100, 111, 110, 101, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 92, 34, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 99, 111, 109, 115, 61, 92, 34, 92, 92, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 99, 111, 109, 115, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 32, 34, 36, 123, 95, 99, 111, 109, 115, 36, 62, 125, 92, 92, 32, 45, 100, 111, 110, 101, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 92, 34, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 99, 97, 115, 101, 32, 92, 34, 36, 123, 112, 114, 101, 118, 125, 92, 34, 32, 105, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 92, 34, 45, 34, 36, 123, 95, 99, 111, 109, 109, 97, 110, 100, 36, 62, 125, 34, 92, 34, 32, 124, 32, 92, 34, 45, 45, 34, 36, 123, 95, 99, 111, 109, 109, 97, 110, 100, 36, 62, 125, 34, 92, 34, 41, 34, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 34, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 62, 125, 34, 92, 34, 41, 32, 41, 92, 110, 92, 116, 92, 116, 114, 101, 116, 117, 114, 110, 32, 48, 92, 110, 92, 116, 92, 116, 59, 59, 34, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 125, 41, 125, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 92, 34, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 92, 34, 32, 124, 32, 92, 34, 45, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 92, 34, 41, 34, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 34, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 125, 34, 92, 34, 41, 32, 41, 92, 110, 92, 116, 92, 116, 114, 101, 116, 117, 114, 110, 32, 48, 92, 110, 92, 116, 92, 116, 59, 59, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 92, 116, 101, 115, 97, 99, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 105, 102, 32, 91, 91, 32, 92, 34, 36, 99, 117, 114, 92, 34, 32, 61, 61, 32, 45, 42, 32, 93, 93, 32, 59, 32, 116, 104, 101, 110, 10, 92, 110, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 36, 111, 112, 116, 115, 92, 34, 32, 45, 45, 32, 92, 34, 36, 99, 117, 114, 92, 34, 41, 32, 41, 10, 92, 110, 92, 116, 101, 108, 115, 101, 10, 92, 110, 92, 116, 92, 116, 95, 102, 105, 108, 101, 100, 105, 114, 10, 92, 110, 92, 116, 102, 105, 10, 92, 110, 10, 92, 110, 125, 10, 92, 110, 10, 99, 111, 109, 112, 108, 101, 116, 101, 32, 45, 70, 32, 95, 34, 36, 95, 110, 97, 109, 101, 34, 32, 45, 111, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 32, 103, 109, 105, 99, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 87, 36, 62, 61, 123, 119, 125, 32, 72, 36, 62, 61, 123, 104, 125, 32, 68, 36, 62, 61, 123, 100, 125, 32, 83, 36, 62, 61, 123, 115, 125, 32, 73, 83, 95, 51, 68, 36, 62, 61, 64, 123, 45, 105, 115, 95, 51, 100, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 51, 100, 125, 32, 45, 43, 51, 100, 32, 48, 32, 45, 114, 51, 100, 32, 49, 44, 49, 44, 48, 44, 45, 56, 48, 32, 45, 114, 51, 100, 32, 48, 44, 49, 44, 48, 44, 56, 48, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 52, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 32, 45, 105, 102, 32, 123, 119, 62, 57, 48, 48, 125, 32, 114, 61, 123, 114, 111, 117, 110, 100, 40, 57, 48, 48, 42, 49, 48, 48, 47, 119, 44, 48, 46, 49, 41, 125, 32, 45, 114, 91, 94, 45, 49, 93, 32, 36, 114, 37, 44, 36, 114, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 101, 108, 115, 101, 32, 45, 114, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 61, 104, 38, 38, 104, 60, 50, 53, 54, 125, 32, 45, 114, 50, 100, 121, 32, 50, 53, 54, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 104, 60, 61, 119, 38, 38, 119, 60, 50, 53, 54, 125, 32, 45, 114, 50, 100, 120, 32, 50, 53, 54, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 61, 104, 38, 38, 104, 62, 53, 49, 50, 125, 32, 45, 114, 50, 100, 121, 32, 53, 49, 50, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 104, 60, 61, 119, 38, 38, 119, 62, 53, 49, 50, 125, 32, 45, 114, 50, 100, 120, 32, 53, 49, 50, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 60, 52, 56, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 52, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 52, 56, 125, 32, 45, 114, 32, 52, 56, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 102, 114, 97, 109, 101, 32, 52, 44, 52, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 78, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 108, 91, 36, 62, 93, 10, 123, 119, 125, 44, 50, 52, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 119, 62, 55, 53, 125, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 105, 102, 32, 123, 119, 62, 49, 49, 48, 125, 32, 45, 116, 91, 45, 49, 93, 32, 73, 109, 97, 103, 101, 92, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 108, 115, 101, 32, 45, 116, 91, 45, 49, 93, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 123, 73, 83, 95, 51, 68, 36, 62, 125, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 40, 51, 100, 92, 32, 111, 98, 106, 101, 99, 116, 41, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 40, 36, 123, 87, 36, 62, 125, 120, 36, 123, 72, 36, 62, 125, 120, 36, 123, 68, 36, 62, 125, 120, 36, 123, 83, 36, 62, 125, 41, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 54, 52, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 119, 45, 53, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 104, 45, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 116, 91, 45, 49, 93, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 32, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 32, 45, 43, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 119, 60, 50, 53, 54, 125, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 50, 53, 54, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 60, 50, 53, 54, 125, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 53, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 101, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 99, 104, 111, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 101, 99, 104, 111, 32, 58, 32, 109, 101, 115, 115, 97, 103, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 101, 115, 115, 97, 103, 101, 44, 32, 111, 110, 32, 116, 104, 101, 32, 101, 114, 114, 111, 114, 32, 111, 117, 116, 112, 117, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 40, 105, 102, 32, 97, 110, 121, 41, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 115, 99, 111, 112, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 99, 104, 111, 95, 102, 105, 108, 101, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 109, 101, 115, 115, 97, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 101, 115, 115, 97, 103, 101, 44, 32, 97, 112, 112, 101, 110, 100, 105, 110, 103, 32, 105, 116, 32, 116, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 111, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 105, 109, 105, 108, 97, 114, 32, 116, 111, 32, 39, 45, 101, 99, 104, 111, 39, 32, 102, 111, 114, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 111, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 32, 115, 116, 114, 101, 97, 109, 41, 46, 10, 101, 99, 104, 111, 95, 102, 105, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 39, 92, 110, 39, 125, 10, 45, 118, 32, 45, 32, 40, 123, 34, 39, 36, 123, 50, 45, 45, 49, 125, 92, 110, 39, 34, 125, 41, 32, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 58, 32, 109, 101, 115, 115, 97, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 101, 115, 115, 97, 103, 101, 44, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 111, 117, 116, 112, 117, 116, 32, 40, 115, 116, 100, 111, 117, 116, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 105, 109, 105, 108, 97, 114, 32, 116, 111, 32, 39, 45, 101, 99, 104, 111, 39, 32, 102, 111, 114, 32, 111, 117, 116, 112, 117, 116, 32, 111, 110, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 111, 117, 116, 112, 117, 116, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 101, 114, 114, 111, 114, 41, 46, 10, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 34, 39, 36, 42, 92, 110, 39, 34, 125, 41, 32, 45, 111, 91, 45, 49, 93, 32, 45, 46, 114, 97, 119, 44, 117, 99, 104, 97, 114, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 58, 32, 48, 60, 61, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 60, 61, 49, 44, 120, 48, 62, 61, 48, 44, 121, 48, 44, 120, 49, 62, 61, 48, 44, 121, 49, 44, 46, 46, 46, 44, 120, 110, 62, 61, 48, 44, 121, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 99, 111, 110, 116, 105, 110, 117, 111, 117, 115, 32, 49, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 108, 105, 115, 116, 32, 111, 102, 32, 107, 101, 121, 112, 111, 105, 110, 116, 115, 32, 40, 120, 107, 44, 121, 107, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 109, 97, 120, 40, 120, 107, 41, 93, 32, 40, 120, 107, 32, 97, 114, 101, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 105, 110, 116, 101, 103, 101, 114, 115, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 120, 48, 61, 121, 48, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 49, 44, 48, 44, 48, 44, 49, 48, 44, 51, 48, 44, 52, 48, 44, 50, 48, 44, 55, 48, 44, 51, 48, 44, 56, 48, 44, 48, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 99, 111, 110, 116, 105, 110, 117, 111, 117, 115, 32, 49, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 107, 101, 121, 112, 111, 105, 110, 116, 115, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 60, 53, 125, 32, 123, 109, 97, 120, 40, 48, 44, 36, 50, 41, 43, 49, 125, 44, 49, 44, 49, 44, 49, 44, 36, 51, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 119, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 50, 93, 32, 123, 36, 49, 47, 50, 125, 32, 45, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 49, 47, 50, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 51, 93, 32, 123, 49, 45, 36, 49, 47, 50, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 36, 49, 47, 50, 125, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 10, 45, 115, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 52, 44, 45, 50, 93, 32, 49, 101, 45, 49, 48, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 52, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 52, 44, 45, 50, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 123, 64, 123, 45, 49, 44, 40, 48, 44, 123, 104, 45, 49, 125, 41, 125, 43, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 10, 120, 115, 116, 97, 114, 116, 61, 123, 105, 102, 40, 36, 62, 44, 64, 123, 45, 50, 44, 48, 125, 44, 48, 41, 125, 10, 45, 95, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 64, 123, 45, 50, 44, 48, 45, 49, 125, 44, 64, 123, 45, 50, 44, 51, 125, 44, 64, 123, 45, 50, 44, 52, 45, 54, 125, 44, 36, 120, 115, 116, 97, 114, 116, 44, 64, 123, 45, 50, 44, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 115, 116, 97, 114, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 48, 44, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 49, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 93, 34, 10, 45, 118, 32, 43, 10, 95, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 58, 10, 40, 123, 36, 49, 94, 51, 125, 44, 123, 36, 49, 94, 50, 125, 44, 36, 49, 44, 49, 59, 92, 10, 123, 51, 42, 36, 49, 94, 50, 125, 44, 123, 50, 42, 36, 49, 125, 44, 49, 44, 48, 59, 92, 10, 123, 36, 52, 94, 51, 125, 44, 123, 36, 52, 94, 50, 125, 44, 36, 52, 44, 49, 59, 92, 10, 123, 51, 42, 36, 52, 94, 50, 125, 44, 123, 50, 42, 36, 52, 125, 44, 49, 44, 48, 41, 10, 40, 36, 50, 59, 36, 51, 59, 36, 53, 59, 36, 54, 41, 32, 45, 115, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 40, 36, 55, 44, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 123, 49, 43, 36, 56, 45, 36, 55, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 45, 94, 91, 45, 49, 93, 32, 51, 32, 45, 45, 94, 91, 45, 50, 93, 32, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 109, 118, 91, 45, 52, 93, 32, 45, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 10, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 103, 109, 105, 99, 107, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 111, 97, 100, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 103, 109, 105, 99, 107, 121, 10, 103, 109, 105, 99, 107, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 103, 109, 105, 99, 107, 121, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 111, 97, 100, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80, 32, 109, 97, 115, 99, 111, 116, 32, 39, 87, 105, 108, 98, 101, 114, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 10, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80, 32, 109, 97, 115, 99, 111, 116, 32, 39, 87, 105, 108, 98, 101, 114, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 105, 110, 112, 117, 116, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 32, 58, 32, 91, 116, 121, 112, 101, 58, 93, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 91, 116, 121, 112, 101, 58, 93, 104, 116, 116, 112, 58, 47, 47, 85, 82, 76, 32, 58, 32, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 120, 95, 110, 98, 95, 99, 111, 112, 105, 101, 115, 62, 48, 32, 58, 32, 123, 32, 119, 105, 100, 116, 104, 62, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 95, 119, 93, 32, 125, 44, 123, 32, 95, 104, 101, 105, 103, 104, 116, 62, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 95, 104, 93, 32, 125, 44, 123, 32, 95, 100, 101, 112, 116, 104, 62, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 95, 100, 93, 32, 125, 44, 123, 32, 95, 115, 112, 101, 99, 116, 114, 117, 109, 62, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 95, 115, 93, 32, 125, 44, 95, 123, 32, 118, 97, 108, 117, 101, 49, 44, 95, 118, 97, 108, 117, 101, 50, 44, 46, 46, 32, 124, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 125, 32, 58, 32, 40, 118, 97, 108, 117, 101, 49, 123, 44, 124, 59, 124, 47, 124, 94, 125, 118, 97, 108, 117, 101, 50, 123, 44, 124, 59, 124, 47, 124, 94, 125, 46, 46, 41, 32, 58, 32, 48, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 116, 97, 107, 101, 110, 32, 102, 114, 111, 109, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 111, 114, 32, 102, 114, 111, 109, 32, 97, 32, 99, 111, 112, 121, 32, 111, 102, 32, 97, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 91, 39, 105, 110, 100, 105, 99, 101, 39, 93, 44, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 105, 110, 115, 101, 114, 116, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 97, 110, 100, 32, 118, 97, 108, 117, 101, 115, 46, 32, 83, 105, 110, 103, 108, 101, 32, 113, 117, 111, 116, 101, 115, 32, 109, 97, 121, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 32, 105, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 46, 32, 83, 112, 101, 99, 105, 102, 121, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 39, 48, 39, 32, 105, 110, 115, 101, 114, 116, 115, 32, 97, 110, 32, 39, 101, 109, 112, 116, 121, 39, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 105, 39, 32, 124, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 99, 111, 112, 105, 101, 115, 61, 49, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 100, 101, 112, 116, 104, 61, 115, 112, 101, 99, 116, 114, 117, 109, 61, 49, 39, 32, 97, 110, 100, 32, 39, 118, 97, 108, 117, 101, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 105, 32, 40, 49, 44, 50, 44, 51, 59, 52, 44, 53, 44, 54, 59, 55, 44, 56, 44, 57, 94, 57, 44, 56, 44, 55, 59, 54, 44, 53, 44, 52, 59, 51, 44, 50, 44, 49, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 49, 44, 50, 44, 51, 59, 52, 44, 53, 44, 54, 59, 55, 44, 56, 44, 57, 41, 32, 40, 50, 53, 53, 94, 49, 50, 56, 94, 54, 52, 41, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 44, 39, 105, 102, 40, 120, 62, 119, 47, 50, 44, 120, 44, 121, 41, 42, 99, 39, 10, 35, 64, 103, 109, 105, 99, 32, 111, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 117, 116, 112, 117, 116, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 111, 117, 116, 112, 117, 116, 32, 58, 32, 91, 116, 121, 112, 101, 58, 93, 102, 105, 108, 101, 110, 97, 109, 101, 44, 95, 102, 111, 114, 109, 97, 116, 95, 111, 112, 116, 105, 111, 110, 115, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 40, 115, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 111, 114, 109, 97, 116, 95, 111, 112, 116, 105, 111, 110, 115, 39, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 111, 110, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 117, 116, 112, 117, 116, 110, 39, 46, 10, 111, 110, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 110, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 111, 117, 116, 112, 117, 116, 110, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 32, 105, 110, 32, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 32, 108, 111, 111, 112, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 110, 39, 41, 46, 10, 111, 117, 116, 112, 117, 116, 110, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 110, 32, 58, 10, 45, 118, 32, 45, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 49, 34, 44, 64, 123, 62, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 102, 105, 108, 101, 32, 39, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 111, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 112, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 117, 116, 112, 117, 116, 112, 39, 46, 10, 111, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 112, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 111, 117, 116, 112, 117, 116, 112, 32, 58, 32, 112, 114, 101, 102, 105, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 112, 114, 101, 102, 105, 120, 101, 100, 32, 118, 101, 114, 115, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 105, 114, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 112, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 112, 114, 101, 102, 105, 120, 61, 95, 39, 46, 10, 111, 117, 116, 112, 117, 116, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 95, 34, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 116, 104, 101, 105, 114, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 44, 32, 112, 114, 101, 102, 105, 120, 101, 100, 32, 98, 121, 32, 39, 36, 49, 39, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 105, 116, 115, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 44, 32, 112, 114, 101, 102, 105, 120, 101, 100, 32, 98, 121, 32, 39, 36, 49, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 111, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 102, 125, 36, 49, 64, 123, 36, 62, 44, 98, 125, 46, 64, 123, 36, 62, 44, 120, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 119, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 117, 116, 112, 117, 116, 119, 39, 46, 10, 111, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 119, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 111, 117, 116, 112, 117, 116, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 111, 118, 101, 114, 119, 114, 105, 116, 116, 105, 110, 103, 32, 116, 104, 101, 105, 114, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 119, 39, 41, 46, 10, 111, 117, 116, 112, 117, 116, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 116, 104, 101, 105, 114, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 105, 116, 115, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 111, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 110, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 108, 111, 116, 32, 58, 32, 95, 112, 108, 111, 116, 95, 116, 121, 112, 101, 44, 95, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 44, 95, 120, 109, 105, 110, 44, 95, 120, 109, 97, 120, 44, 95, 121, 109, 105, 110, 44, 95, 121, 109, 97, 120, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 44, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 61, 48, 44, 95, 112, 108, 111, 116, 95, 116, 121, 112, 101, 44, 95, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 44, 95, 120, 109, 105, 110, 44, 120, 109, 97, 120, 44, 95, 121, 109, 105, 110, 44, 95, 121, 109, 97, 120, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 102, 111, 114, 109, 117, 108, 97, 32, 105, 110, 32, 97, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 101, 114, 32, 40, 117, 115, 101, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 108, 111, 116, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 108, 105, 110, 101, 115, 32, 124, 32, 50, 61, 115, 112, 108, 105, 110, 101, 115, 32, 124, 32, 51, 61, 98, 97, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 112, 111, 105, 110, 116, 115, 32, 124, 32, 50, 44, 51, 61, 99, 114, 111, 115, 115, 101, 115, 32, 124, 32, 52, 44, 53, 61, 99, 105, 114, 99, 108, 101, 115, 32, 124, 32, 54, 44, 55, 61, 115, 113, 117, 97, 114, 101, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 120, 109, 105, 110, 39, 44, 39, 120, 109, 97, 120, 39, 44, 39, 121, 109, 105, 110, 39, 44, 39, 121, 109, 97, 120, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 120, 121, 45, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 108, 111, 116, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 61, 49, 39, 32, 97, 110, 100, 32, 39, 120, 109, 105, 110, 61, 120, 109, 97, 120, 61, 121, 109, 105, 110, 61, 121, 109, 97, 120, 61, 48, 32, 40, 97, 117, 116, 111, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 112, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 112, 114, 105, 110, 116, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 112, 114, 105, 110, 116, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 101, 114, 114, 111, 114, 32, 40, 115, 116, 100, 101, 114, 114, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 112, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 97, 32, 50, 53, 54, 45, 101, 110, 116, 114, 105, 101, 115, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 111, 102, 32, 114, 97, 105, 110, 98, 111, 119, 32, 99, 111, 108, 111, 114, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 93, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 111, 102, 32, 50, 53, 54, 32, 114, 97, 105, 110, 98, 111, 119, 32, 99, 111, 108, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 50, 44, 49, 48, 44, 49, 51, 44, 49, 51, 44, 49, 53, 44, 49, 54, 44, 49, 53, 44, 49, 53, 44, 49, 56, 44, 50, 51, 44, 50, 54, 44, 51, 49, 44, 51, 51, 44, 51, 55, 44, 51, 56, 44, 51, 57, 44, 52, 50, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 52, 44, 52, 52, 44, 52, 53, 44, 52, 53, 44, 52, 52, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 53, 44, 52, 57, 44, 53, 48, 44, 53, 50, 44, 53, 52, 44, 53, 53, 44, 53, 54, 44, 53, 55, 44, 92, 10, 53, 54, 44, 53, 54, 44, 53, 55, 44, 53, 55, 44, 53, 56, 44, 53, 55, 44, 53, 56, 44, 53, 56, 44, 53, 57, 44, 53, 56, 44, 54, 48, 44, 53, 57, 44, 53, 56, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 54, 48, 44, 54, 48, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 54, 48, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 56, 44, 53, 56, 44, 53, 56, 44, 53, 54, 44, 92, 10, 53, 54, 44, 53, 52, 44, 53, 49, 44, 52, 56, 44, 52, 52, 44, 51, 57, 44, 51, 51, 44, 50, 48, 44, 53, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 53, 44, 50, 53, 44, 53, 48, 44, 54, 54, 44, 56, 49, 44, 57, 48, 44, 49, 48, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 50, 57, 44, 49, 51, 55, 44, 49, 52, 52, 44, 49, 53, 50, 44, 49, 53, 56, 44, 49, 54, 56, 44, 49, 55, 56, 44, 49, 56, 51, 44, 49, 57, 48, 44, 49, 57, 57, 44, 50, 48, 55, 44, 92, 10, 50, 49, 51, 44, 50, 50, 48, 44, 50, 50, 55, 44, 50, 51, 48, 44, 50, 51, 54, 44, 50, 52, 50, 44, 50, 52, 54, 44, 50, 53, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 51, 44, 50, 53, 51, 44, 50, 53, 51, 44, 50, 53, 50, 44, 50, 53, 49, 44, 50, 53, 48, 44, 50, 53, 48, 44, 50, 52, 57, 44, 50, 52, 56, 44, 50, 52, 56, 44, 50, 52, 55, 44, 50, 52, 56, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 53, 44, 50, 52, 54, 44, 92, 10, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 92, 10, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 51, 44, 50, 51, 57, 44, 50, 51, 53, 44, 50, 51, 48, 44, 50, 50, 54, 44, 50, 50, 48, 44, 50, 49, 54, 44, 50, 49, 49, 44, 50, 48, 52, 44, 50, 48, 49, 44, 49, 57, 52, 44, 49, 57, 48, 44, 49, 56, 52, 44, 49, 55, 54, 44, 49, 55, 49, 44, 49, 54, 52, 44, 49, 54, 48, 44, 49, 53, 50, 44, 49, 52, 52, 44, 49, 51, 56, 44, 49, 51, 48, 44, 49, 50, 50, 44, 92, 10, 49, 49, 52, 44, 49, 48, 55, 44, 57, 54, 44, 56, 55, 44, 55, 56, 44, 54, 57, 44, 53, 55, 44, 53, 48, 44, 52, 54, 44, 51, 56, 44, 51, 49, 44, 49, 57, 44, 53, 94, 51, 44, 49, 48, 44, 49, 52, 44, 49, 53, 44, 49, 55, 44, 49, 56, 44, 49, 57, 44, 49, 56, 44, 49, 57, 44, 50, 51, 44, 50, 53, 44, 51, 48, 44, 51, 49, 44, 51, 53, 44, 51, 55, 44, 51, 57, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 56, 44, 52, 57, 44, 53, 48, 44, 53, 49, 44, 92, 10, 53, 50, 44, 53, 51, 44, 53, 54, 44, 53, 57, 44, 54, 51, 44, 54, 54, 44, 54, 54, 44, 54, 56, 44, 54, 57, 44, 55, 49, 44, 55, 51, 44, 55, 52, 44, 55, 53, 44, 55, 54, 44, 55, 54, 44, 55, 55, 44, 55, 56, 44, 55, 57, 44, 55, 57, 44, 56, 48, 44, 56, 49, 44, 56, 49, 44, 56, 50, 44, 56, 50, 44, 56, 51, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 53, 44, 56, 53, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 92, 10, 56, 55, 44, 56, 56, 44, 56, 55, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 56, 44, 56, 57, 44, 56, 57, 44, 57, 48, 44, 57, 50, 44, 57, 50, 44, 57, 52, 44, 57, 54, 44, 57, 57, 44, 49, 48, 50, 44, 49, 48, 52, 44, 49, 48, 55, 44, 49, 49, 49, 44, 49, 49, 55, 44, 49, 50, 48, 44, 49, 50, 54, 44, 49, 51, 48, 44, 49, 51, 54, 44, 49, 52, 50, 44, 49, 52, 57, 44, 49, 53, 53, 44, 49, 54, 49, 44, 49, 54, 55, 44, 49, 55, 50, 44, 92, 10, 49, 55, 54, 44, 49, 55, 56, 44, 49, 55, 57, 44, 49, 55, 57, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 55, 44, 49, 55, 55, 44, 49, 55, 55, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 53, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 52, 44, 49, 55, 51, 44, 49, 55, 50, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 92, 10, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 53, 44, 49, 55, 54, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 56, 49, 44, 49, 56, 50, 44, 49, 56, 52, 44, 92, 10, 49, 56, 54, 44, 49, 56, 54, 44, 49, 57, 48, 44, 49, 57, 50, 44, 49, 57, 51, 44, 49, 57, 53, 44, 49, 57, 56, 44, 50, 48, 48, 44, 50, 48, 49, 44, 50, 48, 52, 44, 50, 48, 54, 44, 50, 48, 57, 44, 50, 49, 49, 44, 50, 48, 56, 44, 50, 48, 54, 44, 50, 48, 50, 44, 49, 57, 55, 44, 49, 57, 52, 44, 49, 57, 48, 44, 49, 56, 53, 44, 49, 56, 50, 44, 49, 55, 56, 44, 49, 55, 50, 44, 49, 54, 55, 44, 49, 54, 50, 44, 49, 53, 55, 44, 49, 53, 50, 44, 92, 10, 49, 52, 52, 44, 49, 51, 57, 44, 49, 51, 50, 44, 49, 50, 55, 44, 49, 50, 49, 44, 49, 49, 53, 44, 49, 48, 56, 44, 49, 48, 50, 44, 57, 56, 44, 57, 50, 44, 56, 55, 44, 55, 57, 44, 55, 53, 44, 54, 57, 44, 54, 52, 44, 54, 50, 44, 53, 56, 44, 53, 53, 44, 53, 50, 44, 53, 48, 44, 52, 57, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 54, 44, 52, 54, 44, 52, 54, 44, 52, 54, 44, 92, 10, 52, 53, 44, 52, 52, 44, 52, 52, 44, 52, 50, 44, 52, 50, 44, 52, 49, 44, 52, 49, 44, 52, 48, 44, 51, 57, 44, 51, 56, 44, 51, 55, 44, 51, 54, 44, 51, 52, 44, 51, 49, 44, 51, 48, 44, 50, 57, 44, 51, 48, 44, 51, 48, 44, 51, 49, 44, 51, 50, 44, 51, 50, 44, 51, 50, 44, 51, 51, 44, 51, 51, 44, 51, 52, 44, 51, 52, 44, 51, 51, 44, 51, 52, 44, 51, 51, 44, 51, 50, 44, 51, 49, 44, 51, 49, 44, 51, 48, 44, 50, 57, 44, 50, 54, 44, 50, 53, 44, 92, 10, 50, 51, 44, 50, 49, 44, 49, 57, 44, 49, 53, 44, 49, 51, 44, 49, 51, 44, 49, 54, 44, 49, 56, 44, 49, 56, 44, 49, 56, 44, 49, 55, 44, 49, 53, 44, 49, 51, 44, 49, 50, 44, 57, 44, 50, 94, 54, 44, 49, 57, 44, 50, 53, 44, 51, 50, 44, 52, 49, 44, 52, 57, 44, 53, 53, 44, 54, 53, 44, 55, 49, 44, 55, 57, 44, 56, 52, 44, 57, 48, 44, 57, 54, 44, 49, 48, 50, 44, 49, 48, 54, 44, 49, 49, 49, 44, 49, 49, 55, 44, 49, 50, 49, 44, 49, 50, 56, 44, 92, 10, 49, 51, 50, 44, 49, 51, 52, 44, 49, 51, 57, 44, 49, 52, 51, 44, 49, 52, 54, 44, 49, 52, 57, 44, 49, 53, 50, 44, 49, 53, 53, 44, 49, 53, 54, 44, 49, 53, 55, 44, 49, 53, 57, 44, 49, 53, 57, 44, 49, 54, 48, 44, 49, 54, 49, 44, 49, 54, 50, 44, 49, 54, 51, 44, 49, 54, 52, 44, 49, 54, 52, 44, 49, 54, 53, 44, 49, 54, 54, 44, 49, 54, 55, 44, 49, 54, 54, 44, 49, 54, 53, 44, 49, 54, 54, 44, 49, 54, 54, 44, 49, 54, 55, 44, 49, 54, 55, 44, 92, 10, 49, 54, 56, 44, 49, 54, 56, 44, 49, 54, 56, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 49, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 50, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 53, 44, 92, 10, 49, 55, 55, 44, 49, 55, 57, 44, 49, 56, 48, 44, 49, 56, 51, 44, 49, 56, 53, 44, 49, 56, 55, 44, 49, 57, 48, 44, 49, 57, 51, 44, 49, 57, 56, 44, 50, 48, 49, 44, 50, 48, 54, 44, 50, 49, 51, 44, 50, 49, 57, 44, 50, 50, 53, 44, 50, 50, 55, 44, 50, 50, 55, 44, 50, 50, 51, 44, 50, 49, 56, 44, 50, 49, 52, 44, 50, 48, 52, 44, 49, 57, 57, 44, 49, 57, 50, 44, 49, 56, 52, 44, 49, 55, 57, 44, 49, 55, 50, 44, 49, 54, 56, 44, 49, 54, 50, 44, 92, 10, 49, 53, 54, 44, 49, 53, 49, 44, 49, 52, 53, 44, 49, 51, 57, 44, 49, 51, 51, 44, 49, 50, 54, 44, 49, 50, 48, 44, 49, 49, 51, 44, 49, 48, 54, 44, 57, 56, 44, 57, 48, 44, 56, 53, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 52, 44, 56, 52, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 92, 10, 56, 50, 44, 56, 50, 44, 56, 51, 44, 56, 51, 44, 56, 49, 44, 56, 49, 44, 56, 49, 44, 56, 48, 44, 56, 48, 44, 55, 56, 44, 55, 56, 44, 55, 56, 44, 55, 54, 44, 55, 52, 44, 55, 51, 44, 55, 51, 44, 55, 49, 44, 55, 50, 44, 54, 57, 44, 54, 56, 44, 54, 55, 44, 54, 53, 44, 54, 50, 44, 53, 57, 44, 53, 56, 44, 53, 54, 44, 53, 49, 44, 53, 48, 44, 52, 57, 44, 52, 53, 44, 52, 51, 44, 52, 48, 44, 51, 56, 44, 51, 55, 44, 51, 53, 44, 51, 50, 44, 92, 10, 51, 49, 44, 51, 50, 44, 51, 50, 44, 51, 51, 44, 51, 51, 44, 51, 52, 44, 51, 52, 44, 51, 53, 44, 51, 54, 44, 51, 54, 44, 51, 55, 44, 51, 56, 44, 51, 57, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 54, 44, 52, 54, 44, 52, 55, 44, 52, 56, 44, 52, 57, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 54, 44, 92, 10, 52, 53, 44, 52, 53, 44, 52, 51, 44, 52, 51, 44, 52, 50, 44, 52, 49, 44, 52, 48, 44, 51, 57, 44, 51, 56, 44, 51, 55, 44, 51, 56, 44, 51, 56, 44, 51, 55, 44, 51, 55, 44, 51, 56, 44, 51, 56, 44, 51, 56, 44, 51, 56, 44, 51, 57, 44, 52, 48, 44, 51, 57, 44, 52, 48, 44, 51, 57, 44, 52, 48, 44, 52, 48, 44, 51, 57, 44, 51, 57, 44, 51, 56, 44, 51, 56, 44, 51, 55, 44, 51, 53, 44, 51, 52, 44, 51, 50, 44, 51, 48, 44, 50, 56, 44, 50, 54, 44, 92, 10, 50, 51, 44, 50, 48, 44, 49, 54, 44, 49, 52, 44, 49, 50, 44, 49, 54, 44, 49, 54, 44, 49, 56, 44, 49, 56, 44, 49, 55, 44, 49, 54, 44, 49, 52, 44, 49, 51, 44, 57, 44, 50, 41, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 114, 97, 105, 110, 98, 111, 119, 92, 32, 108, 117, 116, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 100, 100, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 111, 97, 100, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 82, 111, 100, 105, 108, 105, 117, 115, 32, 109, 97, 115, 99, 111, 116, 32, 39, 82, 111, 100, 100, 121, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 111, 100, 100, 121, 10, 114, 111, 100, 100, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 82, 111, 100, 105, 108, 105, 117, 115, 32, 109, 97, 115, 99, 111, 116, 32, 39, 82, 111, 100, 100, 121, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 114, 111, 100, 100, 121, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 114, 111, 100, 100, 121, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 108, 105, 115, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 44, 50, 44, 51, 44, 52, 44, 50, 44, 52, 44, 51, 44, 49, 44, 51, 44, 52, 44, 50, 44, 49, 41, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 114, 101, 109, 111, 118, 101, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 114, 101, 109, 111, 118, 101, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 98, 97, 115, 101, 61, 36, 62, 32, 111, 102, 102, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 36, 62, 45, 49, 125, 10, 99, 111, 109, 112, 61, 123, 36, 98, 97, 115, 101, 43, 49, 43, 36, 62, 45, 36, 111, 102, 102, 125, 10, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 62, 61, 64, 35, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 45, 91, 36, 98, 97, 115, 101, 44, 36, 99, 111, 109, 112, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 105, 115, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 61, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 105, 115, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 32, 45, 114, 109, 91, 36, 99, 111, 109, 112, 93, 32, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 101, 109, 112, 116, 121, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 101, 109, 112, 116, 121, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 33, 64, 123, 36, 60, 44, 119, 104, 100, 115, 125, 125, 32, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 101, 108, 101, 99, 116, 32, 58, 32, 102, 101, 97, 116, 117, 114, 101, 95, 116, 121, 112, 101, 44, 95, 88, 44, 95, 89, 44, 95, 90, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 108, 121, 32, 115, 101, 108, 101, 99, 116, 32, 97, 32, 102, 101, 97, 116, 117, 114, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 117, 115, 101, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 102, 101, 97, 116, 117, 114, 101, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 112, 111, 105, 110, 116, 32, 124, 32, 49, 61, 115, 101, 103, 109, 101, 110, 116, 32, 124, 32, 50, 61, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 124, 32, 51, 61, 101, 108, 108, 105, 112, 115, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 114, 103, 117, 109, 101, 110, 116, 115, 32, 39, 88, 39, 44, 39, 89, 39, 44, 39, 90, 39, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 32, 116, 104, 101, 32, 105, 110, 105, 116, 105, 97, 108, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 118, 105, 101, 119, 44, 32, 102, 111, 114, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 114, 101, 116, 114, 105, 101, 118, 101, 100, 32, 102, 101, 97, 116, 117, 114, 101, 32, 105, 115, 32, 114, 101, 116, 117, 114, 110, 101, 100, 32, 97, 115, 32, 97, 32, 51, 100, 32, 111, 114, 32, 54, 100, 32, 118, 101, 99, 116, 111, 114, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 116, 104, 101, 32, 102, 101, 97, 116, 117, 114, 101, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 104, 97, 114, 101, 100, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 97, 114, 101, 100, 32, 58, 32, 120, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 91, 37, 93, 44, 122, 91, 37, 93, 44, 118, 91, 37, 93, 32, 58, 32, 121, 48, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 122, 91, 37, 93, 44, 118, 91, 37, 93, 32, 58, 32, 122, 48, 91, 37, 93, 44, 122, 49, 91, 37, 93, 44, 118, 91, 37, 93, 32, 58, 32, 118, 48, 91, 37, 93, 44, 118, 49, 91, 37, 93, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 115, 104, 97, 114, 101, 100, 32, 98, 117, 102, 102, 101, 114, 115, 32, 102, 114, 111, 109, 32, 40, 111, 112, 116, 46, 32, 112, 111, 105, 110, 116, 115, 47, 114, 111, 119, 115, 47, 112, 108, 97, 110, 101, 115, 47, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 41, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 104, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 97, 114, 101, 100, 32, 49, 44, 49, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 51, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 45, 45, 115, 104, 97, 114, 101, 100, 32, 50, 53, 37, 44, 55, 53, 37, 44, 48, 44, 36, 62, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 115, 114, 97, 110, 100, 32, 58, 32, 118, 97, 108, 117, 101, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 114, 97, 110, 100, 111, 109, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32, 115, 101, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 110, 111, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 117, 115, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 114, 97, 110, 100, 111, 109, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32, 115, 101, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 115, 112, 101, 99, 116, 114, 117, 109, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 97, 32, 50, 100, 32, 115, 121, 110, 116, 104, 101, 116, 105, 99, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 53, 49, 50, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 119, 105, 100, 116, 104, 39, 32, 97, 110, 100, 32, 39, 115, 112, 101, 99, 116, 114, 117, 109, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 53, 49, 50, 10, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 50, 100, 32, 115, 121, 110, 116, 104, 101, 116, 105, 99, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 120, 36, 50, 120, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 68, 109, 97, 120, 50, 61, 123, 48, 46, 49, 53, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 94, 50, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 36, 51, 44, 39, 88, 61, 120, 45, 119, 47, 50, 59, 89, 61, 121, 45, 104, 47, 50, 59, 97, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 105, 102, 40, 88, 94, 50, 43, 89, 94, 50, 60, 61, 36, 68, 109, 97, 120, 50, 44, 50, 53, 53, 42, 97, 98, 115, 40, 99, 111, 115, 40, 99, 43, 50, 48, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 41, 41, 44, 56, 53, 48, 42, 40, 97, 37, 40, 48, 46, 49, 42, 40, 99, 43, 49, 41, 41, 41, 41, 39, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 50, 48, 37, 44, 50, 48, 37, 44, 54, 48, 37, 44, 50, 48, 37, 44, 55, 48, 37, 44, 55, 48, 37, 44, 51, 53, 37, 44, 52, 53, 37, 44, 48, 46, 57, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 123, 36, 49, 47, 55, 125, 44, 123, 36, 49, 47, 50, 48, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 49, 44, 56, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 48, 48, 44, 50, 53, 53, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 48, 37, 44, 55, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 50, 100, 32, 116, 101, 115, 116, 32, 105, 109, 97, 103, 101, 93, 34, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 50, 105, 109, 103, 32, 58, 32, 116, 101, 120, 116, 44, 95, 108, 105, 110, 101, 95, 115, 101, 112, 97, 114, 97, 116, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 97, 32, 50, 100, 32, 105, 109, 97, 103, 101, 32, 119, 104, 111, 115, 101, 32, 118, 97, 108, 117, 101, 115, 32, 97, 114, 101, 32, 65, 83, 67, 73, 73, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 112, 117, 116, 32, 116, 101, 120, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 108, 105, 110, 101, 95, 115, 101, 112, 97, 114, 97, 116, 111, 114, 61, 32, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 101, 120, 116, 50, 105, 109, 103, 32, 34, 84, 104, 101, 114, 101, 32, 97, 114, 101, 32, 52, 32, 119, 111, 114, 100, 115, 34, 10, 116, 101, 120, 116, 50, 105, 109, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 50, 61, 32, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 116, 101, 120, 116, 32, 92, 34, 36, 49, 92, 34, 44, 32, 119, 105, 116, 104, 32, 108, 105, 110, 101, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 123, 39, 34, 36, 50, 34, 39, 125, 32, 45, 121, 32, 120, 32, 45, 97, 32, 121, 32, 45, 110, 109, 32, 34, 91, 92, 34, 36, 49, 92, 34, 93, 34, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 121, 112, 101, 32, 58, 32, 100, 97, 116, 97, 116, 121, 112, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 32, 102, 111, 114, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 100, 97, 116, 97, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 98, 111, 111, 108, 32, 124, 32, 117, 99, 104, 97, 114, 32, 124, 32, 99, 104, 97, 114, 32, 124, 32, 117, 115, 104, 111, 114, 116, 32, 124, 32, 115, 104, 111, 114, 116, 32, 124, 32, 117, 105, 110, 116, 32, 124, 32, 105, 110, 116, 32, 124, 32, 102, 108, 111, 97, 116, 32, 124, 32, 100, 111, 117, 98, 108, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 58, 32, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 32, 58, 32, 42, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 99, 97, 114, 100, 32, 108, 97, 115, 116, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 116, 111, 32, 39, 42, 39, 32, 102, 111, 114, 32, 100, 105, 115, 99, 97, 114, 100, 105, 110, 103, 32, 97, 108, 108, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 61, 49, 44, 115, 112, 101, 99, 116, 114, 117, 109, 62, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 115, 101, 116, 32, 111, 102, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 78, 45, 100, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 91, 48, 44, 49, 93, 94, 78, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 54, 52, 44, 51, 32, 45, 42, 32, 50, 53, 53, 32, 45, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 48, 10, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 50, 62, 48, 34, 10, 45, 101, 91, 94, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 115, 101, 116, 32, 111, 102, 32, 36, 49, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 36, 50, 45, 100, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 91, 48, 44, 49, 93, 94, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 110, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 94, 40, 49, 47, 36, 50, 41, 44, 49, 44, 49, 41, 125, 10, 40, 48, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 110, 44, 49, 44, 49, 44, 49, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 110, 42, 119, 125, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 100, 111, 110, 101, 10, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 49, 44, 36, 50, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 117, 110, 105, 102, 111, 114, 109, 32, 36, 50, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 93, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 117, 112, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 117, 112, 100, 97, 116, 101, 39, 46, 10, 117, 112, 32, 58, 10, 45, 95, 117, 112, 100, 97, 116, 101, 10, 35, 64, 103, 109, 105, 99, 32, 117, 112, 100, 97, 116, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 112, 100, 97, 116, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 102, 105, 108, 101, 32, 111, 110, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 115, 101, 114, 118, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 105, 115, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 110, 32, 97, 99, 116, 105, 118, 101, 32, 73, 110, 116, 101, 114, 110, 101, 116, 32, 99, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 97, 110, 100, 32, 97, 110, 32, 97, 99, 99, 101, 115, 115, 32, 116, 111, 32, 116, 104, 101, 32, 101, 120, 116, 101, 114, 110, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 116, 111, 111, 108, 115, 32, 39, 99, 117, 114, 108, 39, 32, 111, 114, 32, 39, 119, 103, 101, 116, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 117, 112, 39, 41, 46, 10, 117, 112, 100, 97, 116, 101, 32, 58, 10, 45, 95, 36, 48, 10, 95, 117, 112, 100, 97, 116, 101, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 85, 112, 100, 97, 116, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 102, 105, 108, 101, 32, 111, 110, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 115, 101, 114, 118, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 117, 112, 100, 97, 116, 101, 64, 46, 46, 103, 109, 105, 99, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 118, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 118, 101, 114, 98, 111, 115, 101, 46, 39, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 118, 101, 114, 98, 111, 115, 101, 32, 58, 32, 108, 101, 118, 101, 108, 32, 58, 32, 123, 32, 43, 32, 124, 32, 45, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 111, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 47, 100, 101, 99, 114, 101, 109, 101, 110, 116, 32, 116, 104, 101, 32, 118, 101, 114, 98, 111, 115, 105, 116, 121, 32, 108, 101, 118, 101, 108, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 118, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 39, 108, 101, 118, 101, 108, 39, 62, 61, 48, 44, 32, 71, 39, 77, 73, 67, 32, 108, 111, 103, 32, 109, 101, 115, 115, 97, 103, 101, 115, 32, 97, 114, 101, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 101, 114, 114, 111, 114, 32, 40, 115, 116, 100, 101, 114, 114, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 118, 101, 114, 98, 111, 115, 105, 116, 121, 32, 108, 101, 118, 101, 108, 32, 105, 115, 32, 48, 46, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 105, 116, 32, 58, 32, 100, 101, 108, 97, 121, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 97, 105, 116, 32, 102, 111, 114, 32, 97, 32, 103, 105, 118, 101, 110, 32, 100, 101, 108, 97, 121, 32, 40, 105, 110, 32, 109, 115, 41, 32, 111, 114, 32, 102, 111, 114, 32, 97, 32, 117, 115, 101, 114, 32, 101, 118, 101, 110, 116, 32, 111, 99, 99, 117, 114, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 100, 101, 108, 97, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 60, 48, 61, 100, 101, 108, 97, 121, 43, 102, 108, 117, 115, 104, 32, 124, 32, 32, 48, 61, 101, 118, 101, 110, 116, 32, 124, 32, 62, 48, 61, 100, 101, 108, 97, 121, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 40, 105, 102, 32, 97, 110, 121, 41, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 105, 110, 100, 105, 99, 101, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 114, 110, 32, 58, 32, 109, 101, 115, 115, 97, 103, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 97, 114, 110, 105, 110, 103, 32, 109, 101, 115, 115, 97, 103, 101, 44, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 101, 114, 114, 111, 114, 32, 40, 115, 116, 100, 101, 114, 114, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 40, 105, 102, 32, 97, 110, 121, 41, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 115, 99, 111, 112, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 119, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 119, 105, 110, 100, 111, 119, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 119, 105, 110, 100, 111, 119, 32, 58, 32, 95, 119, 105, 100, 116, 104, 91, 37, 93, 62, 61, 45, 49, 44, 95, 104, 101, 105, 103, 104, 116, 91, 37, 93, 62, 61, 45, 49, 44, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 44, 95, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 44, 95, 116, 105, 116, 108, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 116, 111, 32, 97, 110, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 44, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 32, 97, 110, 100, 32, 116, 105, 116, 108, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 119, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 119, 105, 100, 116, 104, 39, 32, 111, 114, 32, 39, 104, 101, 105, 103, 104, 116, 39, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 45, 49, 44, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 105, 115, 32, 97, 100, 106, 117, 115, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 119, 105, 100, 116, 104, 39, 61, 48, 32, 111, 114, 32, 39, 104, 101, 105, 103, 104, 116, 39, 61, 48, 32, 99, 108, 111, 115, 101, 115, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 107, 101, 101, 112, 32, 115, 97, 109, 101, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 97, 108, 119, 97, 121, 115, 32, 124, 32, 50, 61, 49, 115, 116, 45, 116, 105, 109, 101, 32, 124, 32, 51, 61, 97, 117, 116, 111, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 107, 101, 101, 112, 32, 115, 97, 109, 101, 32, 124, 32, 48, 61, 110, 111, 32, 124, 32, 49, 61, 121, 101, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 89, 111, 117, 32, 99, 97, 110, 32, 109, 97, 110, 97, 103, 101, 32, 117, 112, 32, 116, 111, 32, 49, 48, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 115, 32, 98, 121, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 118, 97, 114, 105, 97, 110, 116, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 45, 119, 48, 39, 32, 40, 100, 101, 102, 97, 117, 108, 116, 44, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 119, 39, 41, 44, 39, 45, 119, 49, 39, 44, 46, 46, 44, 39, 45, 119, 57, 39, 32, 111, 102, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 119, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 104, 101, 105, 103, 104, 116, 61, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 61, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 61, 45, 49, 39, 32, 97, 110, 100, 32, 39, 116, 105, 116, 108, 101, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 76, 105, 115, 116, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 107, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 107, 101, 101, 112, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 107, 101, 101, 112, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 75, 101, 101, 112, 32, 111, 110, 108, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 107, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 107, 101, 101, 112, 91, 48, 45, 53, 48, 37, 58, 50, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 107, 101, 101, 112, 91, 94, 51, 48, 37, 45, 55, 48, 37, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 109, 118, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 111, 118, 101, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 118, 101, 32, 58, 32, 112, 111, 115, 105, 116, 105, 111, 110, 91, 37, 93, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 111, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 111, 115, 105, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 118, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 44, 51, 32, 45, 109, 111, 118, 101, 91, 49, 93, 32, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 109, 111, 118, 101, 91, 53, 48, 37, 45, 45, 49, 58, 50, 93, 32, 48, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 110, 109, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 97, 109, 101, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 110, 97, 109, 101, 32, 58, 32, 110, 97, 109, 101, 44, 95, 105, 115, 95, 109, 111, 100, 105, 102, 105, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 110, 97, 109, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 109, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 114, 103, 117, 109, 101, 110, 116, 32, 39, 105, 115, 95, 109, 111, 100, 105, 102, 105, 101, 100, 39, 32, 116, 101, 108, 108, 115, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 109, 111, 100, 105, 102, 105, 101, 100, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 105, 115, 95, 109, 111, 100, 105, 102, 105, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 97, 109, 101, 32, 105, 109, 97, 103, 101, 32, 45, 98, 108, 117, 114, 91, 105, 109, 97, 103, 101, 93, 32, 50, 10, 35, 64, 103, 109, 105, 99, 32, 114, 109, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 109, 111, 118, 101, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 109, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 114, 101, 109, 111, 118, 101, 91, 51, 48, 37, 45, 55, 48, 37, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 45, 53, 48, 37, 58, 50, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 114, 118, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 118, 101, 114, 115, 101, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 118, 101, 114, 115, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 118, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 44, 51, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 50, 44, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 44, 45, 49, 54, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 53, 48, 37, 45, 49, 48, 48, 37, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 114, 116, 95, 108, 105, 115, 116, 32, 58, 32, 95, 111, 114, 100, 101, 114, 105, 110, 103, 61, 123, 32, 43, 32, 124, 32, 45, 32, 125, 44, 95, 99, 114, 105, 116, 101, 114, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 114, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 99, 114, 105, 116, 101, 114, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 114, 100, 101, 114, 105, 110, 103, 61, 43, 39, 44, 32, 39, 99, 114, 105, 116, 101, 114, 105, 111, 110, 61, 105, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 59, 52, 59, 55, 59, 51, 59, 57, 59, 50, 59, 52, 59, 55, 59, 54, 59, 51, 59, 57, 59, 49, 59, 48, 59, 51, 59, 51, 59, 50, 41, 32, 45, 115, 112, 108, 105, 116, 32, 121, 32, 45, 115, 111, 114, 116, 95, 108, 105, 115, 116, 32, 43, 32, 45, 97, 112, 112, 101, 110, 100, 32, 121, 10, 115, 111, 114, 116, 95, 108, 105, 115, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 43, 125, 44, 36, 123, 50, 61, 105, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 114, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 123, 36, 49, 39, 61, 61, 39, 43, 125, 44, 100, 101, 115, 99, 101, 110, 100, 105, 110, 103, 44, 97, 115, 99, 101, 110, 100, 105, 110, 103, 125, 34, 32, 111, 114, 100, 101, 114, 44, 32, 34, 92, 10, 34, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 99, 114, 105, 116, 101, 114, 105, 111, 110, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 35, 10, 105, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 40, 64, 123, 36, 62, 44, 36, 50, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 121, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 36, 49, 44, 121, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 110, 109, 36, 62, 61, 64, 123, 36, 62, 44, 110, 125, 32, 45, 110, 109, 91, 36, 62, 93, 32, 115, 111, 114, 116, 108, 105, 115, 116, 36, 62, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 45, 109, 118, 91, 115, 111, 114, 116, 108, 105, 115, 116, 123, 105, 40, 48, 44, 36, 62, 41, 125, 93, 32, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 45, 110, 109, 91, 36, 62, 93, 32, 36, 123, 110, 109, 123, 105, 40, 48, 44, 36, 62, 41, 125, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 114, 116, 95, 115, 116, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 118, 105, 101, 119, 101, 100, 32, 97, 115, 32, 97, 32, 108, 105, 115, 116, 32, 111, 102, 32, 115, 116, 114, 105, 110, 103, 115, 41, 32, 105, 110, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 32, 111, 114, 100, 101, 114, 46, 10, 115, 111, 114, 116, 95, 115, 116, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 32, 111, 114, 100, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 45, 121, 32, 121, 32, 45, 97, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 104, 47, 52, 44, 49, 44, 49, 41, 125, 32, 121, 61, 123, 52, 42, 36, 62, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 114, 111, 119, 115, 32, 36, 121, 44, 123, 36, 121, 43, 51, 125, 32, 45, 102, 91, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 38, 38, 105, 60, 61, 49, 50, 50, 44, 105, 45, 51, 50, 44, 105, 41, 39, 32, 45, 45, 91, 45, 49, 93, 32, 51, 50, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 54, 51, 32, 45, 115, 91, 45, 49, 93, 32, 121, 32, 45, 42, 91, 45, 50, 93, 32, 54, 52, 32, 45, 42, 91, 45, 51, 93, 32, 52, 48, 57, 54, 32, 45, 42, 91, 45, 52, 93, 32, 50, 54, 50, 49, 52, 52, 32, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 114, 118, 32, 45, 97, 32, 121, 32, 45, 115, 111, 114, 116, 32, 43, 44, 120, 32, 45, 45, 114, 111, 119, 115, 32, 48, 32, 45, 114, 111, 119, 115, 91, 48, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 45, 37, 91, 49, 93, 32, 50, 10, 45, 115, 91, 49, 93, 32, 43, 44, 48, 32, 78, 61, 123, 64, 35, 45, 49, 125, 10, 120, 48, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 120, 49, 61, 123, 36, 120, 48, 43, 64, 123, 123, 49, 43, 36, 62, 125, 44, 104, 125, 125, 32, 45, 45, 122, 91, 48, 93, 32, 36, 120, 48, 44, 123, 36, 120, 49, 45, 49, 125, 32, 120, 48, 61, 36, 120, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 36, 78, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 115, 32, 120, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 98, 115, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 97, 98, 115, 111, 108, 117, 116, 101, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 117, 98, 32, 123, 105, 97, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 99, 111, 115, 40, 50, 48, 42, 120, 47, 119, 41, 39, 32, 45, 45, 97, 98, 115, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 97, 99, 111, 115, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 97, 114, 99, 45, 99, 111, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 49, 44, 49, 32, 45, 97, 99, 111, 115, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 120, 47, 119, 43, 48, 46, 49, 42, 117, 39, 32, 45, 45, 97, 99, 111, 115, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 43, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 97, 100, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 97, 100, 100, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 117, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 43, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 100, 100, 32, 51, 48, 37, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 53, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 32, 45, 97, 100, 100, 91, 49, 93, 32, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 100, 100, 32, 39, 56, 48, 42, 99, 111, 115, 40, 56, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 42, 40, 121, 47, 119, 45, 48, 46, 53, 41, 43, 99, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 57, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 36, 62, 42, 51, 54, 125, 44, 49, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 32, 45, 100, 105, 118, 32, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 97, 110, 100, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 65, 78, 68, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 65, 78, 68, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 110, 100, 32, 123, 49, 50, 56, 43, 54, 52, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 110, 100, 10, 35, 64, 103, 109, 105, 99, 32, 97, 115, 105, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 97, 114, 99, 45, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 49, 44, 49, 32, 45, 97, 115, 105, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 120, 47, 119, 43, 48, 46, 49, 42, 117, 39, 32, 45, 45, 97, 115, 105, 110, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 97, 116, 97, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 97, 114, 99, 45, 116, 97, 110, 103, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 56, 32, 45, 97, 116, 97, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 97, 116, 97, 110, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 97, 116, 97, 110, 50, 32, 58, 32, 91, 120, 95, 97, 114, 103, 117, 109, 101, 110, 116, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 111, 114, 105, 101, 110, 116, 101, 100, 32, 97, 114, 99, 45, 116, 97, 110, 103, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 97, 99, 104, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 121, 45, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 97, 114, 99, 45, 116, 97, 110, 103, 101, 110, 116, 32, 102, 117, 110, 99, 116, 105, 111, 110, 44, 32, 119, 104, 105, 108, 101, 32, 116, 104, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 103, 105, 118, 101, 115, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 120, 45, 97, 114, 103, 117, 109, 101, 110, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 45, 49, 44, 49, 41, 32, 40, 45, 49, 59, 49, 41, 32, 45, 114, 101, 115, 105, 122, 101, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 49, 44, 51, 32, 45, 97, 116, 97, 110, 50, 91, 49, 93, 32, 91, 48, 93, 32, 45, 107, 101, 101, 112, 91, 49, 93, 32, 45, 109, 111, 100, 32, 123, 112, 105, 47, 56, 125, 10, 35, 64, 103, 109, 105, 99, 32, 60, 60, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 115, 108, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 98, 115, 108, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 108, 101, 102, 116, 32, 115, 104, 105, 102, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 108, 101, 102, 116, 32, 115, 104, 105, 102, 116, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 60, 60, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 115, 108, 32, 39, 114, 111, 117, 110, 100, 40, 51, 42, 120, 47, 119, 44, 48, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 62, 62, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 115, 114, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 98, 115, 114, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 114, 105, 103, 104, 116, 32, 115, 104, 105, 102, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 114, 105, 103, 104, 116, 32, 115, 104, 105, 102, 116, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 62, 62, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 115, 114, 32, 39, 114, 111, 117, 110, 100, 40, 51, 42, 120, 47, 119, 44, 48, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 115, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 99, 111, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 123, 50, 42, 112, 105, 125, 32, 45, 99, 111, 115, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 50, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 99, 111, 115, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 115, 104, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 104, 121, 112, 101, 114, 98, 111, 108, 105, 99, 32, 99, 111, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 51, 44, 51, 32, 45, 99, 111, 115, 104, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 99, 111, 115, 104, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 47, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 118, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 118, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 118, 105, 100, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 113, 117, 111, 116, 105, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 47, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 105, 118, 32, 39, 49, 43, 97, 98, 115, 40, 99, 111, 115, 40, 120, 47, 49, 48, 41, 42, 115, 105, 110, 40, 121, 47, 49, 48, 41, 41, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 100, 105, 118, 10, 35, 64, 103, 109, 105, 99, 32, 61, 61, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 113, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 101, 113, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 101, 113, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 101, 113, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 61, 61, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 111, 117, 110, 100, 32, 52, 48, 32, 45, 101, 113, 32, 123, 114, 111, 117, 110, 100, 40, 105, 97, 44, 52, 48, 41, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 113, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 101, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 32, 45, 101, 120, 112, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 55, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 101, 120, 112, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 62, 61, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 103, 101, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 103, 101, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 103, 114, 101, 97, 116, 101, 114, 32, 111, 114, 32, 101, 113, 117, 97, 108, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 103, 114, 101, 97, 116, 101, 114, 32, 111, 114, 32, 101, 113, 117, 97, 108, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 62, 61, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 103, 101, 32, 123, 105, 97, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 62, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 103, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 103, 116, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 103, 114, 101, 97, 116, 101, 114, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 103, 114, 101, 97, 116, 101, 114, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 62, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 103, 116, 32, 123, 105, 97, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 103, 116, 10, 35, 64, 103, 109, 105, 99, 32, 60, 61, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 101, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 108, 101, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 108, 101, 115, 115, 32, 111, 114, 32, 101, 113, 117, 97, 108, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 108, 101, 115, 115, 32, 111, 114, 32, 101, 113, 117, 97, 108, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 60, 61, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 101, 32, 123, 105, 97, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 108, 101, 10, 35, 64, 103, 109, 105, 99, 32, 60, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 108, 116, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 108, 101, 115, 115, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 39, 108, 101, 115, 115, 32, 116, 104, 97, 110, 39, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 60, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 116, 32, 123, 105, 97, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 108, 116, 10, 35, 64, 103, 109, 105, 99, 32, 108, 111, 103, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 98, 97, 115, 101, 45, 101, 32, 108, 111, 103, 97, 114, 105, 116, 104, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 100, 100, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 55, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 108, 111, 103, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 108, 111, 103, 49, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 98, 97, 115, 101, 45, 49, 48, 32, 108, 111, 103, 97, 114, 105, 116, 104, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 100, 100, 32, 49, 32, 45, 108, 111, 103, 49, 48, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 55, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 108, 111, 103, 49, 48, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 108, 111, 103, 50, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 98, 97, 115, 101, 45, 50, 32, 108, 111, 103, 97, 114, 105, 116, 104, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 100, 100, 32, 49, 32, 45, 108, 111, 103, 50, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 55, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 108, 111, 103, 50, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 109, 97, 120, 105, 109, 97, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 109, 97, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 97, 120, 32, 39, 82, 61, 40, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 50, 43, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 50, 41, 94, 48, 46, 53, 59, 50, 53, 53, 42, 82, 39, 10, 35, 64, 103, 109, 105, 99, 32, 47, 47, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 100, 105, 118, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 100, 105, 118, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 97, 116, 114, 105, 120, 32, 100, 105, 118, 105, 115, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 116, 114, 105, 99, 101, 115, 47, 118, 101, 99, 116, 111, 114, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 97, 116, 114, 105, 120, 32, 100, 105, 118, 105, 115, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 47, 47, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 109, 105, 110, 105, 109, 97, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 109, 105, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 105, 110, 32, 39, 82, 61, 40, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 50, 43, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 50, 41, 94, 48, 46, 53, 59, 50, 53, 53, 42, 82, 39, 10, 35, 64, 103, 109, 105, 99, 32, 37, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 111, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 100, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 111, 100, 117, 108, 111, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 109, 111, 100, 117, 108, 111, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 37, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 109, 111, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 111, 100, 32, 39, 82, 61, 40, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 50, 43, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 50, 41, 94, 48, 46, 53, 59, 50, 53, 53, 42, 82, 39, 10, 35, 64, 103, 109, 105, 99, 32, 42, 42, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 109, 117, 108, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 109, 117, 108, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 97, 116, 114, 105, 120, 32, 114, 105, 103, 104, 116, 32, 109, 117, 108, 116, 105, 112, 108, 105, 99, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 116, 114, 105, 99, 101, 115, 47, 118, 101, 99, 116, 111, 114, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 109, 97, 116, 114, 105, 120, 32, 114, 105, 103, 104, 116, 32, 109, 117, 108, 116, 105, 112, 108, 105, 99, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 42, 42, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 59, 49, 44, 48, 44, 48, 41, 32, 40, 49, 59, 50, 59, 51, 41, 32, 45, 45, 109, 109, 117, 108, 10, 35, 64, 103, 109, 105, 99, 32, 42, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 117, 108, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 117, 108, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 121, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 112, 114, 111, 100, 117, 99, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 42, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 117, 108, 32, 50, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 49, 44, 50, 44, 51, 44, 52, 44, 53, 44, 54, 44, 55, 44, 56, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 109, 117, 108, 91, 48, 93, 32, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 117, 108, 32, 39, 49, 45, 51, 42, 97, 98, 115, 40, 120, 47, 119, 45, 48, 46, 53, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 45, 109, 117, 108, 10, 35, 64, 103, 109, 105, 99, 32, 33, 61, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 101, 113, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 110, 101, 113, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 105, 110, 101, 113, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 111, 111, 108, 101, 97, 110, 32, 105, 110, 101, 113, 117, 97, 108, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 33, 61, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 111, 117, 110, 100, 32, 52, 48, 32, 45, 110, 101, 113, 32, 123, 114, 111, 117, 110, 100, 40, 105, 97, 44, 52, 48, 41, 125, 10, 35, 64, 103, 109, 105, 99, 32, 111, 114, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 79, 82, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 79, 82, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 111, 114, 32, 49, 50, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 94, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 112, 111, 119, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 119, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 97, 105, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 116, 104, 101, 32, 112, 111, 119, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 112, 111, 119, 101, 114, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 94, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 105, 118, 32, 50, 53, 53, 32, 45, 45, 112, 111, 119, 32, 48, 46, 53, 32, 45, 109, 117, 108, 32, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 45, 112, 111, 119, 32, 50, 32, 45, 97, 100, 100, 32, 45, 112, 111, 119, 32, 48, 46, 50, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 108, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 108, 101, 102, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 108, 101, 102, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 111, 108, 32, 39, 114, 111, 117, 110, 100, 40, 51, 42, 120, 47, 119, 44, 48, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 114, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 114, 105, 103, 104, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 114, 105, 103, 104, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 111, 114, 32, 39, 114, 111, 117, 110, 100, 40, 51, 42, 120, 47, 119, 44, 48, 41, 39, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 103, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 105, 103, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 117, 98, 32, 123, 105, 97, 125, 32, 45, 115, 105, 103, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 99, 111, 115, 40, 50, 48, 42, 120, 47, 119, 43, 117, 41, 39, 32, 45, 45, 115, 105, 103, 110, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 123, 50, 42, 112, 105, 125, 32, 45, 115, 105, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 50, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 115, 105, 110, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 110, 99, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 105, 110, 99, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 123, 45, 50, 42, 112, 105, 125, 44, 123, 50, 42, 112, 105, 125, 32, 45, 115, 105, 110, 99, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 50, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 115, 105, 110, 99, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 110, 104, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 104, 121, 112, 101, 114, 98, 111, 108, 105, 99, 32, 115, 105, 110, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 51, 44, 51, 32, 45, 115, 105, 110, 104, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 115, 105, 110, 104, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 115, 113, 114, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 113, 117, 97, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 113, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 115, 113, 114, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 115, 113, 114, 116, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 113, 117, 97, 114, 101, 32, 114, 111, 111, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 113, 114, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 115, 113, 114, 116, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 45, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 117, 98, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 117, 98, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 117, 98, 116, 114, 97, 99, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 45, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 117, 98, 32, 51, 48, 37, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 117, 98, 32, 39, 105, 40, 119, 47, 50, 43, 48, 46, 57, 42, 40, 120, 45, 119, 47, 50, 41, 44, 121, 41, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 115, 117, 98, 10, 35, 64, 103, 109, 105, 99, 32, 116, 97, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 116, 97, 110, 103, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 123, 45, 48, 46, 52, 55, 42, 112, 105, 125, 44, 123, 48, 46, 52, 55, 42, 112, 105, 125, 32, 45, 116, 97, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 50, 48, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 116, 97, 110, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 116, 97, 110, 104, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 104, 121, 112, 101, 114, 98, 111, 108, 105, 99, 32, 116, 97, 110, 103, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 51, 44, 51, 32, 45, 116, 97, 110, 104, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 49, 44, 49, 44, 49, 44, 39, 52, 42, 120, 47, 119, 43, 117, 39, 32, 45, 45, 116, 97, 110, 104, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 120, 111, 114, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 105, 116, 119, 105, 115, 101, 32, 88, 79, 82, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 44, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 115, 101, 113, 117, 101, 110, 116, 105, 97, 108, 32, 98, 105, 116, 119, 105, 115, 101, 32, 88, 79, 82, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 120, 111, 114, 32, 49, 50, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 120, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 86, 97, 108, 117, 101, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 32, 48, 60, 61, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 60, 61, 49, 44, 120, 48, 44, 121, 48, 44, 120, 49, 44, 121, 49, 44, 120, 50, 44, 121, 50, 44, 46, 46, 46, 44, 120, 78, 44, 121, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 117, 114, 118, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 44, 32, 39, 120, 48, 61, 48, 39, 44, 32, 39, 121, 48, 61, 49, 48, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 49, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 32, 99, 117, 114, 118, 101, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 107, 101, 121, 112, 111, 105, 110, 116, 115, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 123, 94, 48, 125, 32, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 58, 32, 103, 97, 109, 109, 97, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 103, 97, 109, 109, 97, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 50, 10, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 71, 97, 109, 109, 97, 45, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 110, 32, 48, 44, 49, 32, 45, 94, 32, 123, 49, 47, 36, 49, 125, 32, 45, 110, 32, 36, 109, 77, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 58, 32, 95, 114, 101, 102, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 108, 111, 114, 32, 98, 97, 108, 97, 110, 99, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 112, 101, 99, 116, 32, 116, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 99, 111, 108, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 102, 95, 99, 111, 108, 111, 114, 49, 61, 49, 50, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 49, 50, 56, 44, 54, 52, 44, 54, 52, 10, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 50, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 108, 111, 114, 32, 98, 97, 108, 97, 110, 99, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 99, 117, 114, 118, 101, 32, 97, 110, 100, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 123, 94, 48, 125, 34, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 36, 123, 94, 48, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 47, 91, 36, 62, 93, 32, 50, 53, 53, 32, 45, 94, 91, 36, 62, 93, 32, 123, 108, 111, 103, 40, 64, 123, 45, 49, 44, 36, 62, 125, 41, 47, 108, 111, 103, 40, 64, 123, 36, 62, 44, 97, 125, 41, 125, 32, 45, 42, 91, 36, 62, 93, 32, 50, 53, 53, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 102, 102, 116, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 108, 111, 103, 91, 45, 50, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 45, 97, 116, 97, 110, 50, 91, 49, 93, 32, 91, 48, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 49, 44, 110, 125, 44, 49, 32, 45, 115, 113, 114, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 115, 113, 114, 116, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 117, 109, 117, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 50, 53, 54, 32, 45, 45, 99, 117, 109, 117, 108, 91, 45, 49, 93, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 91, 45, 50, 44, 45, 49, 93, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 99, 117, 109, 117, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 111, 102, 32, 102, 117, 110, 99, 116, 105, 111, 110, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 100, 105, 109, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 32, 45, 121, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 119, 41, 44, 49, 44, 49, 41, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 50, 94, 36, 62, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 36, 100, 105, 109, 44, 45, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 117, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 99, 117, 116, 32, 58, 32, 123, 32, 118, 97, 108, 117, 101, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 125, 44, 123, 32, 118, 97, 108, 117, 101, 49, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 125, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 117, 116, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 117, 110, 115, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 109, 111, 100, 101, 32, 40, 117, 115, 101, 115, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 100, 100, 32, 51, 48, 37, 32, 45, 99, 117, 116, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 117, 116, 32, 50, 53, 37, 44, 55, 53, 37, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 99, 97, 114, 100, 32, 58, 32, 118, 97, 108, 117, 101, 44, 95, 114, 101, 109, 111, 118, 101, 95, 105, 102, 95, 110, 111, 116, 95, 102, 111, 117, 110, 100, 32, 61, 32, 123, 32, 48, 32, 124, 32, 49, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 100, 32, 114, 101, 116, 117, 114, 110, 32, 114, 101, 115, 117, 108, 116, 115, 32, 97, 115, 32, 115, 105, 110, 103, 108, 101, 45, 99, 111, 108, 117, 109, 110, 32, 118, 101, 99, 116, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 101, 109, 111, 118, 101, 95, 105, 102, 95, 110, 111, 116, 95, 102, 111, 117, 110, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 59, 50, 59, 51, 59, 52, 59, 51, 59, 50, 59, 49, 41, 32, 45, 45, 100, 105, 115, 99, 97, 114, 100, 32, 50, 10, 100, 105, 115, 99, 97, 114, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 118, 97, 108, 117, 101, 32, 36, 49, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 45, 44, 36, 49, 32, 45, 97, 32, 121, 10, 45, 105, 102, 32, 123, 33, 64, 35, 34, 32, 38, 38, 32, 34, 33, 36, 50, 125, 32, 49, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 105, 103, 101, 110, 50, 116, 101, 110, 115, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 99, 111, 109, 112, 111, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 112, 97, 105, 114, 115, 32, 111, 102, 32, 101, 105, 103, 101, 110, 118, 97, 108, 117, 101, 115, 47, 101, 105, 103, 101, 110, 118, 101, 99, 116, 111, 114, 115, 32, 97, 115, 32, 50, 120, 50, 32, 111, 114, 32, 51, 120, 51, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 10, 101, 105, 103, 101, 110, 50, 116, 101, 110, 115, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 99, 111, 109, 112, 111, 115, 101, 32, 112, 97, 105, 114, 115, 32, 105, 110, 32, 101, 105, 103, 101, 110, 32, 102, 105, 101, 108, 100, 36, 63, 32, 97, 115, 32, 50, 120, 50, 32, 111, 114, 32, 51, 120, 51, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 115, 104, 91, 45, 53, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 10, 45, 115, 104, 91, 45, 51, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 51, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 54, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 108, 91, 45, 54, 45, 45, 52, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 51, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 54, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 108, 91, 45, 51, 45, 45, 49, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 51, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 54, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 115, 91, 45, 51, 93, 32, 99, 10, 45, 45, 91, 45, 53, 93, 32, 91, 45, 51, 93, 32, 45, 45, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 40, 49, 94, 48, 94, 48, 94, 49, 94, 48, 94, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 52, 93, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 101, 105, 103, 101, 110, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 110, 100, 105, 97, 110, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 100, 97, 116, 97, 32, 101, 110, 100, 105, 97, 110, 110, 101, 115, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 113, 117, 97, 108, 105, 122, 101, 32, 58, 32, 95, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 95, 109, 105, 110, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 95, 109, 97, 120, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 101, 113, 117, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 105, 115, 32, 100, 111, 110, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 118, 97, 108, 117, 101, 95, 109, 105, 110, 61, 48, 37, 39, 32, 97, 110, 100, 32, 39, 118, 97, 108, 117, 101, 95, 109, 97, 120, 61, 49, 48, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 52, 44, 48, 44, 49, 50, 56, 10, 35, 64, 103, 109, 105, 99, 32, 102, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 105, 108, 108, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 108, 32, 58, 32, 118, 97, 108, 117, 101, 49, 44, 95, 118, 97, 108, 117, 101, 50, 44, 46, 46, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 105, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 115, 32, 114, 101, 97, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 32, 108, 105, 115, 116, 44, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 32, 83, 105, 110, 103, 108, 101, 32, 113, 117, 111, 116, 101, 115, 32, 109, 97, 121, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 32, 105, 110, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 44, 52, 32, 45, 102, 105, 108, 108, 32, 49, 44, 50, 44, 51, 44, 52, 44, 53, 44, 54, 44, 55, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 44, 52, 32, 40, 49, 44, 50, 44, 51, 44, 52, 44, 53, 44, 54, 44, 55, 41, 32, 45, 102, 105, 108, 108, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 102, 105, 108, 108, 32, 34, 88, 61, 120, 45, 119, 47, 50, 59, 32, 89, 61, 121, 45, 104, 47, 50, 59, 32, 82, 61, 115, 113, 114, 116, 40, 88, 94, 50, 43, 89, 94, 50, 41, 59, 32, 97, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 32, 105, 102, 32, 40, 82, 60, 61, 49, 56, 48, 44, 50, 53, 53, 42, 97, 98, 115, 40, 99, 111, 115, 40, 99, 43, 50, 48, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 41, 41, 44, 56, 53, 48, 42, 40, 97, 37, 40, 48, 46, 49, 42, 40, 99, 43, 49, 41, 41, 41, 41, 34, 10, 35, 64, 103, 109, 105, 99, 32, 102, 108, 111, 97, 116, 50, 105, 110, 116, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 102, 108, 111, 97, 116, 50, 105, 110, 116, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 49, 54, 55, 55, 55, 50, 49, 54, 44, 48, 44, 49, 10, 45, 45, 62, 62, 32, 56, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 97, 110, 100, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 62, 62, 91, 45, 51, 93, 32, 49, 54, 10, 40, 123, 39, 36, 109, 44, 36, 77, 39, 125, 41, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 116, 56, 50, 102, 108, 111, 97, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 116, 111, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 105, 110, 116, 56, 50, 102, 108, 111, 97, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 36, 63, 32, 116, 111, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 123, 104, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 48, 44, 48, 32, 109, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 45, 50, 125, 32, 45, 115, 32, 121, 44, 51, 32, 45, 42, 91, 45, 51, 93, 32, 54, 53, 53, 51, 54, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 54, 32, 45, 111, 114, 32, 45, 110, 32, 36, 109, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 100, 101, 120, 32, 58, 32, 123, 32, 91, 112, 97, 108, 101, 116, 116, 101, 93, 32, 124, 32, 112, 114, 101, 100, 101, 102, 105, 110, 101, 100, 95, 112, 97, 108, 101, 116, 116, 101, 32, 125, 44, 48, 60, 61, 95, 100, 105, 116, 104, 101, 114, 105, 110, 103, 60, 61, 49, 44, 95, 109, 97, 112, 95, 112, 97, 108, 101, 116, 116, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 100, 101, 120, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 97, 108, 101, 116, 116, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 114, 101, 100, 101, 102, 105, 110, 101, 100, 95, 112, 97, 108, 101, 116, 116, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 101, 102, 97, 117, 108, 116, 32, 124, 32, 49, 61, 72, 83, 86, 32, 124, 32, 50, 61, 108, 105, 110, 101, 115, 32, 124, 32, 51, 61, 104, 111, 116, 32, 124, 32, 52, 61, 99, 111, 111, 108, 32, 124, 32, 53, 61, 106, 101, 116, 32, 124, 32, 54, 61, 102, 108, 97, 103, 32, 124, 32, 55, 61, 99, 117, 98, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 48, 39, 32, 97, 110, 100, 32, 39, 109, 97, 112, 95, 112, 97, 108, 101, 116, 116, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 105, 110, 100, 101, 120, 32, 49, 44, 49, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 48, 59, 50, 53, 53, 59, 50, 53, 53, 94, 48, 59, 49, 50, 56, 59, 50, 53, 53, 94, 48, 59, 48, 59, 50, 53, 53, 41, 32, 45, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 95, 105, 110, 116, 101, 103, 114, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 105, 110, 116, 101, 103, 114, 97, 108, 32, 40, 115, 117, 109, 109, 101, 100, 32, 97, 114, 101, 97, 32, 116, 97, 98, 108, 101, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 105, 109, 97, 103, 101, 95, 105, 110, 116, 101, 103, 114, 97, 108, 10, 105, 109, 97, 103, 101, 95, 105, 110, 116, 101, 103, 114, 97, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 105, 110, 116, 101, 103, 114, 97, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 39, 62, 105, 43, 105, 40, 120, 45, 49, 44, 121, 41, 39, 32, 45, 102, 32, 39, 62, 105, 43, 105, 40, 120, 44, 121, 45, 49, 41, 39, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 112, 32, 58, 32, 91, 112, 97, 108, 101, 116, 116, 101, 93, 32, 58, 32, 112, 114, 101, 100, 101, 102, 105, 110, 101, 100, 95, 112, 97, 108, 101, 116, 116, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 97, 112, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 97, 108, 101, 116, 116, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 110, 100, 101, 120, 101, 100, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 114, 101, 100, 101, 102, 105, 110, 101, 100, 95, 112, 97, 108, 101, 116, 116, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 101, 102, 97, 117, 108, 116, 32, 124, 32, 49, 61, 72, 83, 86, 32, 124, 32, 50, 61, 108, 105, 110, 101, 115, 32, 124, 32, 51, 61, 104, 111, 116, 32, 124, 32, 52, 61, 99, 111, 111, 108, 32, 124, 32, 53, 61, 106, 101, 116, 32, 124, 32, 54, 61, 102, 108, 97, 103, 32, 124, 32, 55, 61, 99, 117, 98, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 32, 40, 48, 44, 50, 53, 53, 44, 48, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 109, 97, 112, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 112, 95, 99, 108, 117, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 97, 112, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 76, 85, 84, 32, 105, 109, 97, 103, 101, 32, 40, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 41, 32, 116, 111, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 123, 50, 94, 53, 125, 44, 51, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 45, 109, 97, 112, 95, 99, 108, 117, 116, 10, 109, 97, 112, 95, 99, 108, 117, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 97, 112, 32, 99, 111, 108, 111, 114, 32, 76, 85, 84, 32, 105, 109, 97, 103, 101, 44, 32, 117, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 91, 48, 45, 45, 50, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 108, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 42, 104, 42, 100, 41, 94, 40, 49, 47, 51, 41, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 108, 44, 36, 108, 44, 36, 108, 44, 51, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 32, 45, 47, 91, 48, 93, 32, 123, 50, 53, 54, 47, 36, 108, 125, 10, 45, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 49, 44, 49, 10, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 94, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 40, 97, 48, 48, 44, 46, 46, 46, 44, 97, 77, 78, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 41, 10, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 97, 116, 114, 105, 120, 32, 36, 49, 32, 116, 111, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 123, 119, 42, 104, 42, 100, 125, 44, 123, 115, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 105, 91, 48, 93, 32, 36, 123, 94, 48, 125, 32, 45, 42, 42, 32, 45, 114, 32, 36, 119, 104, 100, 44, 123, 104, 125, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 110, 101, 103, 97, 116, 105, 118, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 10, 110, 101, 103, 97, 116, 105, 118, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 32, 123, 105, 77, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 105, 115, 101, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 62, 61, 48, 91, 37, 93, 44, 95, 110, 111, 105, 115, 101, 95, 116, 121, 112, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 110, 111, 105, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 111, 105, 115, 101, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 103, 97, 117, 115, 115, 105, 97, 110, 32, 124, 32, 49, 61, 117, 110, 105, 102, 111, 114, 109, 32, 124, 32, 50, 61, 115, 97, 108, 116, 38, 112, 101, 112, 112, 101, 114, 32, 124, 32, 51, 61, 112, 111, 105, 115, 115, 111, 110, 32, 124, 32, 52, 61, 114, 105, 99, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 111, 105, 115, 101, 95, 116, 121, 112, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 53, 48, 44, 48, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 53, 48, 44, 49, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 49, 48, 44, 50, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 51, 32, 91, 48, 93, 32, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 50, 48, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 49, 93, 32, 50, 48, 44, 49, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 49, 48, 48, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 91, 45, 50, 44, 45, 49, 93, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 110, 111, 114, 109, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 10, 110, 111, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 110, 111, 114, 109, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 115, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 113, 114, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 115, 113, 114, 116, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 110, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 58, 32, 123, 32, 118, 97, 108, 117, 101, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 125, 44, 123, 32, 118, 97, 108, 117, 101, 49, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 125, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 105, 110, 101, 97, 114, 108, 121, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 44, 50, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 54, 52, 44, 49, 57, 54, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 97, 32, 117, 110, 105, 116, 97, 114, 121, 32, 115, 117, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 52, 48, 48, 44, 51, 48, 48, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 32, 117, 110, 105, 116, 97, 114, 121, 32, 115, 117, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 115, 117, 109, 61, 64, 123, 36, 62, 44, 43, 125, 32, 45, 105, 102, 32, 123, 36, 115, 117, 109, 33, 61, 48, 125, 32, 45, 47, 91, 36, 62, 93, 32, 36, 115, 117, 109, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 45, 45, 110, 111, 114, 109, 91, 45, 50, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 109, 117, 108, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 50, 44, 45, 49, 93, 10, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 118, 101, 99, 116, 111, 114, 115, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 110, 111, 114, 109, 91, 36, 62, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 47, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 116, 115, 117, 32, 58, 32, 95, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 72, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 109, 97, 103, 101, 32, 117, 115, 105, 110, 103, 32, 79, 116, 115, 117, 39, 115, 32, 109, 101, 116, 104, 111, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 50, 53, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 111, 116, 115, 117, 32, 44, 10, 111, 116, 115, 117, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 53, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 72, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 79, 116, 115, 117, 39, 115, 32, 109, 101, 116, 104, 111, 100, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 49, 32, 116, 111, 116, 97, 108, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 120, 39, 32, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 115, 117, 109, 66, 61, 48, 32, 119, 66, 61, 48, 32, 119, 70, 61, 48, 32, 118, 97, 114, 77, 97, 120, 61, 48, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 119, 66, 61, 123, 36, 119, 66, 43, 64, 123, 45, 49, 44, 36, 62, 125, 125, 10, 45, 105, 102, 32, 123, 36, 119, 66, 61, 61, 48, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 119, 70, 61, 123, 36, 116, 111, 116, 97, 108, 45, 36, 119, 66, 125, 10, 45, 105, 102, 32, 123, 36, 119, 70, 61, 61, 48, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 115, 117, 109, 66, 61, 123, 36, 115, 117, 109, 66, 43, 36, 62, 42, 64, 123, 45, 49, 44, 36, 62, 125, 125, 10, 109, 66, 61, 123, 36, 115, 117, 109, 66, 47, 36, 119, 66, 125, 10, 109, 70, 61, 123, 40, 36, 115, 117, 109, 45, 36, 115, 117, 109, 66, 41, 47, 36, 119, 70, 125, 10, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 61, 123, 36, 119, 66, 42, 36, 119, 70, 42, 40, 36, 109, 66, 45, 36, 109, 70, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 36, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 62, 36, 118, 97, 114, 77, 97, 120, 125, 32, 118, 97, 114, 77, 97, 120, 61, 36, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 36, 62, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 62, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 40, 34, 64, 123, 45, 49, 44, 98, 125, 34, 41, 32, 58, 32, 34, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 97, 110, 116, 105, 122, 101, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 61, 49, 44, 95, 107, 101, 101, 112, 95, 118, 97, 108, 117, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 115, 95, 117, 110, 105, 102, 111, 114, 109, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 107, 101, 101, 112, 95, 118, 97, 108, 117, 101, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 117, 110, 105, 102, 111, 114, 109, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 50, 48, 48, 44, 50, 48, 48, 44, 49, 44, 49, 44, 39, 99, 111, 115, 40, 120, 47, 49, 48, 41, 42, 115, 105, 110, 40, 121, 47, 49, 48, 41, 39, 32, 45, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 54, 32, 45, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 52, 32, 45, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 51, 32, 45, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 50, 10, 113, 117, 97, 110, 116, 105, 122, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 81, 117, 97, 110, 116, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 119, 105, 116, 104, 44, 119, 105, 116, 104, 111, 117, 116, 125, 34, 32, 107, 101, 101, 112, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 51, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 10, 45, 105, 102, 32, 36, 50, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 110, 32, 48, 44, 36, 49, 32, 45, 114, 111, 117, 110, 100, 32, 49, 44, 45, 49, 32, 45, 109, 105, 110, 32, 123, 36, 49, 45, 49, 125, 32, 45, 110, 32, 36, 109, 77, 10, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 36, 49, 32, 45, 114, 111, 117, 110, 100, 32, 49, 44, 45, 49, 32, 45, 109, 105, 110, 32, 123, 36, 49, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 36, 49, 44, 123, 115, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 77, 32, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 44, 48, 32, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 97, 110, 100, 32, 58, 32, 123, 32, 118, 97, 108, 117, 101, 48, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 125, 44, 123, 32, 118, 97, 108, 117, 101, 49, 91, 37, 93, 32, 124, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 125, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 105, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 115, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 32, 45, 49, 48, 44, 49, 48, 32, 45, 45, 98, 108, 117, 114, 32, 49, 48, 32, 45, 115, 105, 103, 110, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 108, 97, 99, 101, 32, 58, 32, 118, 97, 108, 117, 101, 95, 115, 114, 99, 44, 118, 97, 108, 117, 101, 95, 100, 101, 115, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 59, 50, 59, 51, 59, 52, 41, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 32, 50, 44, 51, 10, 114, 101, 112, 108, 97, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 36, 49, 32, 119, 105, 116, 104, 32, 36, 50, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 61, 61, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 45, 36, 49, 125, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 108, 97, 99, 101, 95, 105, 110, 102, 32, 58, 32, 95, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 105, 110, 102, 105, 110, 105, 116, 101, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 59, 49, 59, 50, 41, 32, 45, 108, 111, 103, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 105, 110, 102, 32, 50, 10, 114, 101, 112, 108, 97, 99, 101, 95, 105, 110, 102, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 105, 110, 102, 105, 110, 105, 116, 101, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 34, 105, 102, 40, 105, 61, 61, 105, 43, 49, 44, 36, 49, 44, 105, 41, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 108, 97, 99, 101, 95, 110, 97, 110, 32, 58, 32, 95, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 78, 97, 78, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 45, 49, 59, 48, 59, 50, 41, 32, 45, 115, 113, 114, 116, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 110, 97, 110, 32, 50, 10, 114, 101, 112, 108, 97, 99, 101, 95, 110, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 78, 97, 78, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 36, 63, 32, 98, 121, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 34, 105, 102, 40, 105, 62, 61, 48, 32, 124, 124, 32, 105, 60, 61, 48, 44, 105, 44, 36, 49, 41, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 58, 32, 34, 115, 101, 97, 114, 99, 104, 95, 115, 101, 113, 34, 44, 34, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 97, 114, 99, 104, 32, 97, 110, 100, 32, 114, 101, 112, 108, 97, 99, 101, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 59, 50, 59, 51, 59, 52, 59, 53, 41, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 34, 50, 44, 51, 44, 52, 34, 44, 34, 55, 44, 56, 34, 10, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 118, 97, 108, 117, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 36, 49, 39, 32, 98, 121, 32, 118, 97, 108, 117, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 36, 50, 39, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 40, 36, 49, 41, 32, 40, 36, 50, 41, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 108, 91, 36, 62, 44, 45, 50, 44, 45, 49, 93, 10, 45, 115, 91, 48, 93, 32, 43, 44, 36, 49, 32, 45, 115, 32, 121, 44, 45, 64, 123, 45, 50, 44, 119, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 116, 125, 39, 61, 61, 39, 64, 123, 45, 50, 44, 116, 125, 125, 32, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 44, 123, 119, 45, 49, 125, 32, 45, 102, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 97, 91, 48, 45, 45, 51, 93, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 117, 110, 100, 32, 58, 32, 114, 111, 117, 110, 100, 105, 110, 103, 95, 118, 97, 108, 117, 101, 62, 61, 48, 44, 95, 114, 111, 117, 110, 100, 105, 110, 103, 95, 116, 121, 112, 101, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 111, 117, 110, 100, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 114, 111, 117, 110, 100, 105, 110, 103, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 98, 97, 99, 107, 119, 97, 114, 100, 32, 124, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 49, 61, 102, 111, 114, 119, 97, 114, 100, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 111, 117, 110, 100, 105, 110, 103, 95, 116, 121, 112, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 117, 110, 100, 32, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 117, 108, 32, 123, 112, 105, 47, 49, 56, 48, 125, 32, 45, 115, 105, 110, 32, 45, 45, 114, 111, 117, 110, 100, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 117, 110, 100, 105, 102, 121, 32, 58, 32, 103, 97, 109, 109, 97, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 111, 117, 110, 100, 105, 102, 121, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 100, 97, 116, 97, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 97, 109, 109, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 103, 97, 109, 109, 97, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 48, 48, 48, 32, 45, 102, 105, 108, 108, 32, 39, 52, 42, 120, 47, 119, 39, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 48, 93, 32, 123, 36, 62, 42, 48, 46, 50, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 10, 114, 111, 117, 110, 100, 105, 102, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 111, 117, 110, 100, 105, 102, 121, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 36, 49, 32, 45, 115, 105, 103, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 61, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 101, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 101, 116, 32, 58, 32, 118, 97, 108, 117, 101, 44, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 99, 91, 37, 93, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 61, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 97, 114, 101, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 98, 111, 117, 110, 100, 115, 44, 32, 110, 111, 32, 97, 99, 116, 105, 111, 110, 32, 105, 115, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 122, 61, 99, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 50, 44, 50, 32, 45, 115, 101, 116, 32, 49, 44, 48, 44, 48, 32, 45, 115, 101, 116, 32, 50, 44, 49, 44, 48, 32, 45, 115, 101, 116, 32, 51, 44, 48, 44, 49, 32, 45, 115, 101, 116, 32, 52, 44, 49, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 48, 32, 45, 115, 101, 116, 32, 50, 53, 53, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 48, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 58, 32, 118, 97, 108, 117, 101, 91, 37, 93, 44, 95, 105, 115, 95, 115, 111, 102, 116, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 115, 111, 102, 116, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 104, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 105, 110, 103, 32, 124, 32, 49, 61, 115, 111, 102, 116, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 105, 110, 103, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 117, 110, 115, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 109, 111, 100, 101, 32, 40, 117, 115, 101, 115, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 105, 115, 95, 115, 111, 102, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 48, 93, 32, 53, 48, 37, 32, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 48, 93, 32, 53, 48, 37, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 116, 50, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 39, 46, 10, 116, 50, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 58, 32, 109, 105, 110, 91, 37, 93, 44, 109, 97, 120, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 32, 116, 119, 111, 32, 103, 105, 118, 101, 110, 32, 118, 97, 108, 117, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 50, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 50, 53, 37, 44, 55, 53, 37, 10, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 72, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 98, 101, 116, 119, 101, 101, 110, 32, 118, 97, 108, 117, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 61, 36, 49, 32, 77, 61, 36, 50, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 32, 109, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 109, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 32, 77, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 77, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 32, 123, 48, 46, 53, 42, 40, 36, 109, 43, 36, 77, 41, 125, 32, 45, 97, 98, 115, 32, 45, 108, 101, 32, 123, 48, 46, 53, 42, 97, 98, 115, 40, 36, 77, 45, 36, 109, 41, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 115, 32, 116, 111, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 10, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 32, 116, 111, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 51, 125, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 44, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 67, 111, 108, 111, 114, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 34, 99, 111, 109, 109, 97, 110, 100, 34, 44, 95, 99, 104, 97, 110, 110, 101, 108, 115, 61, 123, 32, 97, 108, 108, 61, 48, 32, 124, 32, 114, 103, 98, 97, 61, 49, 32, 124, 32, 114, 103, 98, 61, 50, 32, 124, 32, 121, 61, 51, 32, 124, 32, 99, 98, 99, 114, 61, 52, 32, 124, 32, 99, 98, 61, 53, 32, 124, 32, 99, 114, 61, 54, 32, 124, 32, 108, 61, 55, 32, 124, 32, 97, 98, 61, 56, 32, 124, 32, 97, 61, 57, 32, 124, 32, 98, 61, 49, 48, 32, 124, 32, 104, 61, 49, 49, 32, 124, 32, 115, 61, 49, 50, 32, 124, 32, 118, 61, 49, 51, 32, 124, 32, 107, 61, 49, 52, 32, 124, 32, 99, 103, 61, 49, 53, 32, 124, 32, 99, 104, 61, 49, 54, 32, 124, 32, 99, 61, 49, 55, 32, 124, 32, 72, 61, 49, 56, 32, 124, 32, 114, 61, 49, 57, 32, 124, 32, 103, 61, 50, 48, 32, 124, 32, 98, 61, 50, 49, 32, 124, 32, 97, 108, 112, 104, 97, 61, 61, 50, 50, 32, 125, 44, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 61, 123, 32, 48, 61, 99, 117, 116, 32, 124, 32, 49, 61, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 99, 104, 111, 115, 101, 110, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 101, 97, 99, 104, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 111, 114, 109, 97, 108, 105, 122, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 98, 108, 117, 114, 32, 50, 34, 44, 53, 10, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 108, 108, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 103, 98, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 82, 71, 66, 65, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 103, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 82, 71, 66, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 121, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 51, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 89, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 98, 99, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 52, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 97, 110, 100, 32, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 32, 67, 98, 67, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 49, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 53, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 98, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 54, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 108, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 55, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 76, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 48, 93, 32, 50, 46, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 47, 91, 48, 93, 32, 50, 46, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 56, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 45, 98, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 49, 93, 32, 56, 54, 32, 45, 42, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 43, 91, 50, 93, 32, 49, 48, 56, 32, 45, 42, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 32, 45, 115, 91, 49, 93, 32, 99, 10, 45, 47, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 49, 93, 32, 56, 54, 32, 45, 47, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 50, 93, 32, 49, 48, 56, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 56, 54, 44, 57, 56, 32, 45, 110, 91, 50, 93, 32, 45, 49, 48, 56, 44, 57, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 57, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 49, 93, 32, 56, 54, 32, 45, 42, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 49, 93, 32, 56, 54, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 56, 54, 44, 57, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 50, 93, 32, 49, 48, 56, 32, 45, 42, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 50, 93, 32, 49, 48, 56, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 49, 48, 56, 44, 57, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 104, 117, 101, 32, 72, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 48, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 47, 91, 48, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 51, 54, 48, 32, 45, 101, 108, 115, 101, 32, 45, 37, 91, 48, 93, 32, 51, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 115, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 83, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 118, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 51, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 118, 97, 108, 117, 101, 32, 86, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 50, 93, 32, 50, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 107, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 52, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 107, 101, 121, 32, 99, 104, 97, 110, 110, 101, 108, 32, 75, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 51, 93, 32, 99, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 103, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 53, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 40, 115, 41, 32, 39, 36, 49, 39, 32, 111, 110, 32, 103, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 103, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 54, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 45, 104, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 43, 91, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 32, 45, 115, 91, 49, 93, 32, 99, 10, 45, 47, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 47, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 45, 91, 50, 93, 32, 123, 112, 105, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 110, 91, 50, 93, 32, 45, 123, 112, 105, 125, 44, 123, 112, 105, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 55, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 50, 46, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 56, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 104, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 45, 91, 50, 93, 32, 123, 112, 105, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 45, 123, 112, 105, 125, 44, 123, 112, 105, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 57, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 114, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 32, 82, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 103, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 103, 114, 101, 101, 110, 32, 99, 104, 97, 110, 110, 101, 108, 32, 71, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 99, 104, 97, 110, 110, 101, 108, 32, 66, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 108, 112, 104, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 32, 65, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 51, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 36, 42, 32, 45, 107, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 97, 117, 116, 111, 105, 110, 100, 101, 120, 32, 58, 32, 110, 98, 95, 99, 111, 108, 111, 114, 115, 62, 48, 44, 48, 60, 61, 95, 100, 105, 116, 104, 101, 114, 105, 110, 103, 60, 61, 49, 44, 95, 109, 101, 116, 104, 111, 100, 61, 123, 32, 48, 61, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 32, 124, 32, 49, 61, 107, 45, 109, 101, 97, 110, 115, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 100, 101, 120, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 97, 100, 97, 112, 116, 101, 100, 32, 99, 111, 108, 111, 114, 109, 97, 112, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 48, 39, 32, 97, 110, 100, 32, 39, 109, 101, 116, 104, 111, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 52, 32, 45, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 56, 32, 45, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 49, 54, 10, 97, 117, 116, 111, 105, 110, 100, 101, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 100, 101, 120, 32, 99, 111, 108, 111, 114, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 36, 63, 32, 98, 121, 32, 97, 100, 97, 112, 116, 101, 100, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 36, 49, 32, 101, 110, 116, 114, 105, 101, 115, 44, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 108, 101, 118, 101, 108, 32, 36, 50, 32, 97, 110, 100, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 107, 45, 109, 101, 97, 110, 115, 44, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 45, 105, 102, 32, 123, 119, 62, 50, 53, 54, 125, 32, 45, 45, 114, 50, 100, 120, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 123, 104, 62, 50, 53, 54, 125, 32, 45, 45, 114, 50, 100, 121, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 49, 93, 32, 36, 49, 44, 36, 51, 44, 48, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 49, 93, 44, 36, 50, 44, 49, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 121, 101, 114, 50, 114, 103, 98, 32, 58, 32, 95, 71, 77, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 82, 66, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 49, 44, 95, 82, 66, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 115, 97, 109, 112, 108, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 71, 77, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 82, 66, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 82, 66, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 50, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 48, 32, 45, 45, 98, 97, 121, 101, 114, 50, 114, 103, 98, 32, 49, 44, 49, 44, 48, 46, 53, 10, 98, 97, 121, 101, 114, 50, 114, 103, 98, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 121, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 10, 40, 45, 49, 44, 49, 59, 49, 44, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 49, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 40, 49, 44, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 51, 10, 40, 49, 59, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 36, 51, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 40, 50, 44, 48, 59, 48, 44, 45, 50, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 45, 91, 45, 52, 44, 45, 49, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 109, 105, 120, 95, 114, 103, 98, 91, 45, 49, 93, 32, 49, 44, 45, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 45, 49, 44, 45, 50, 10, 45, 115, 104, 114, 105, 110, 107, 95, 120, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 32, 45, 115, 104, 114, 105, 110, 107, 95, 121, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 109, 121, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 67, 77, 89, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 99, 109, 121, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 67, 77, 89, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 109, 121, 107, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 67, 77, 89, 75, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 99, 109, 121, 107, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 67, 77, 89, 75, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 47, 91, 45, 49, 93, 32, 45, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 32, 99, 32, 45, 99, 109, 121, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 61, 49, 44, 95, 109, 101, 116, 104, 111, 100, 61, 123, 32, 48, 61, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 32, 124, 32, 49, 61, 107, 45, 109, 101, 97, 110, 115, 32, 125, 44, 95, 115, 111, 114, 116, 95, 118, 101, 99, 116, 111, 114, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 115, 116, 105, 109, 97, 116, 101, 32, 98, 101, 115, 116, 45, 102, 105, 116, 116, 105, 110, 103, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 39, 110, 98, 95, 99, 111, 108, 111, 114, 115, 39, 32, 101, 110, 116, 114, 105, 101, 115, 44, 32, 116, 111, 32, 105, 110, 100, 101, 120, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 109, 101, 116, 104, 111, 100, 61, 48, 39, 32, 97, 110, 100, 32, 39, 115, 111, 114, 116, 95, 118, 101, 99, 116, 111, 114, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 48, 93, 32, 52, 32, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 48, 93, 32, 56, 32, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 48, 93, 32, 49, 54, 10, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 36, 49, 32, 101, 110, 116, 114, 105, 101, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 98, 121, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 107, 45, 109, 101, 97, 110, 115, 44, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 10, 45, 101, 108, 115, 101, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 32, 45, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 45, 100, 111, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 10, 45, 115, 104, 91, 48, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 49, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 49, 42, 50, 53, 54, 45, 49, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 99, 10, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 50, 93, 32, 100, 105, 102, 102, 61, 123, 64, 123, 45, 50, 44, 43, 125, 47, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 97, 110, 100, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 100, 105, 102, 102, 62, 48, 46, 53, 125, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 125, 32, 45, 43, 91, 45, 49, 93, 32, 36, 109, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 32, 45, 45, 110, 111, 114, 109, 32, 45, 114, 118, 32, 45, 97, 32, 121, 32, 45, 115, 111, 114, 116, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 34, 91, 99, 111, 108, 111, 114, 109, 97, 112, 32, 111, 102, 32, 34, 64, 123, 45, 49, 44, 98, 125, 34, 93, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 64, 35, 44, 123, 115, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 110, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 36, 110, 44, 115, 125, 32, 45, 115, 104, 91, 36, 110, 93, 32, 36, 62, 44, 36, 62, 32, 45, 61, 91, 45, 50, 93, 32, 123, 105, 102, 40, 119, 62, 49, 44, 105, 118, 44, 45, 49, 41, 125, 44, 36, 110, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 99, 61, 64, 123, 45, 49, 44, 67, 125, 10, 98, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 44, 36, 99, 125, 10, 97, 61, 64, 123, 45, 97, 114, 103, 92, 32, 50, 44, 36, 99, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 36, 98, 93, 32, 48, 44, 48, 44, 48, 44, 123, 45, 36, 97, 125, 44, 50, 32, 45, 115, 111, 114, 116, 91, 36, 98, 93, 32, 43, 44, 120, 32, 45, 115, 104, 105, 102, 116, 91, 36, 98, 93, 32, 48, 44, 48, 44, 48, 44, 36, 97, 44, 50, 32, 45, 115, 91, 36, 98, 93, 32, 120, 44, 50, 10, 45, 100, 111, 110, 101, 10, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 97, 32, 120, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 111, 115, 101, 32, 97, 108, 108, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 101, 97, 99, 104, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 117, 115, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 105, 116, 104, 109, 101, 116, 105, 99, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 40, 43, 44, 45, 44, 111, 114, 44, 109, 105, 110, 44, 46, 46, 46, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 49, 61, 43, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 97, 110, 100, 10, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 43, 34, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 97, 108, 108, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 104, 32, 48, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 45, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 50, 100, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 102, 105, 101, 108, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 98, 108, 117, 114, 32, 50, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 45, 45, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 10, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 32, 99, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 48, 46, 48, 48, 49, 10, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 105, 102, 32, 123, 105, 109, 33, 61, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 100, 105, 116, 104, 101, 114, 101, 100, 32, 66, 38, 87, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 91, 45, 49, 93, 10, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 100, 105, 116, 104, 101, 114, 101, 100, 32, 66, 38, 87, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 40, 48, 44, 50, 53, 53, 41, 32, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 99, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 39, 46, 10, 102, 99, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 58, 32, 99, 111, 108, 49, 44, 46, 46, 46, 44, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 105, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 99, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 70, 105, 108, 108, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 94, 48, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 102, 91, 45, 49, 93, 32, 123, 97, 114, 103, 40, 49, 43, 36, 62, 44, 36, 123, 94, 48, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 110, 109, 32, 64, 123, 45, 49, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 58, 32, 95, 105, 115, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 105, 115, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 48, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 98, 111, 111, 108, 40, 36, 123, 49, 61, 48, 125, 41, 34, 10, 45, 97, 114, 103, 32, 49, 43, 33, 36, 49, 44, 34, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 34, 44, 34, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 34, 64, 123, 125, 34, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 32, 45, 101, 108, 115, 101, 32, 45, 103, 32, 120, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 105, 50, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 73, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 105, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 73, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 104, 115, 105, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 73, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 105, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 108, 50, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 76, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 108, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 76, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 104, 115, 108, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 76, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 108, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 118, 50, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 86, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 51, 54, 48, 59, 48, 44, 51, 54, 48, 94, 48, 44, 48, 59, 49, 44, 49, 94, 49, 44, 49, 59, 49, 44, 49, 41, 32, 45, 114, 101, 115, 105, 122, 101, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 44, 51, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 104, 115, 118, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 72, 83, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 104, 115, 118, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 50, 108, 99, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 97, 98, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 108, 97, 98, 50, 108, 99, 104, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 97, 98, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 50, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 97, 98, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 53, 48, 44, 53, 48, 59, 53, 48, 44, 53, 48, 94, 45, 51, 44, 51, 59, 45, 51, 44, 51, 94, 45, 51, 44, 45, 51, 59, 51, 44, 51, 41, 32, 45, 114, 101, 115, 105, 122, 101, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 44, 51, 32, 45, 108, 97, 98, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 97, 98, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 108, 97, 98, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 97, 98, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 50, 55, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 49, 53, 57, 48, 57, 32, 45, 45, 91, 45, 49, 93, 32, 49, 49, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 108, 97, 98, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 99, 104, 50, 108, 97, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 76, 97, 98, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 108, 99, 104, 50, 108, 97, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 76, 97, 98, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 99, 104, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 108, 99, 104, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 99, 104, 50, 108, 97, 98, 32, 45, 108, 97, 98, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 99, 104, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 76, 99, 104, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 108, 99, 104, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 56, 56, 56, 56, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 52, 48, 46, 53, 56, 52, 53, 32, 45, 45, 91, 45, 49, 93, 32, 51, 46, 49, 52, 49, 53, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 108, 99, 104, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 115, 82, 71, 66, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 115, 114, 103, 98, 50, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 42, 91, 49, 93, 32, 48, 46, 50, 57, 57, 32, 45, 42, 91, 50, 93, 32, 48, 46, 53, 56, 55, 32, 45, 42, 91, 51, 93, 32, 48, 46, 49, 49, 52, 32, 45, 43, 91, 49, 45, 51, 93, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 33, 61, 49, 125, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 120, 95, 114, 103, 98, 32, 58, 32, 97, 49, 49, 44, 97, 49, 50, 44, 97, 49, 51, 44, 97, 50, 49, 44, 97, 50, 50, 44, 97, 50, 51, 44, 97, 51, 49, 44, 97, 51, 50, 44, 97, 51, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 51, 120, 51, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 49, 49, 61, 49, 39, 44, 32, 39, 97, 49, 50, 61, 97, 49, 51, 61, 97, 50, 49, 61, 48, 39, 44, 32, 39, 97, 50, 50, 61, 49, 39, 44, 32, 39, 97, 50, 51, 61, 97, 51, 49, 61, 97, 51, 50, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 51, 51, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 120, 95, 114, 103, 98, 32, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 10, 109, 105, 120, 95, 114, 103, 98, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 36, 123, 57, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 97, 116, 114, 105, 120, 32, 91, 32, 36, 49, 32, 36, 50, 32, 36, 51, 32, 59, 32, 36, 52, 32, 36, 53, 32, 36, 54, 32, 59, 32, 36, 55, 32, 36, 56, 32, 36, 57, 32, 93, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 50, 32, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 59, 36, 52, 44, 36, 53, 44, 36, 54, 59, 36, 55, 44, 36, 56, 44, 36, 57, 41, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 95, 109, 97, 120, 95, 105, 110, 99, 114, 101, 109, 101, 110, 116, 62, 61, 48, 44, 95, 74, 78, 68, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 98, 105, 116, 115, 95, 100, 101, 112, 116, 104, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 100, 32, 112, 101, 114, 99, 101, 112, 116, 117, 97, 108, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 74, 78, 68, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 39, 32, 105, 115, 32, 48, 44, 32, 110, 111, 32, 112, 101, 114, 99, 101, 112, 116, 117, 97, 108, 32, 99, 111, 110, 115, 116, 114, 97, 105, 110, 116, 115, 32, 97, 114, 101, 32, 97, 112, 112, 108, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 97, 120, 95, 105, 110, 99, 114, 101, 109, 101, 110, 116, 61, 53, 39, 44, 32, 39, 74, 78, 68, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 46, 51, 39, 32, 97, 110, 100, 32, 39, 98, 105, 116, 115, 95, 100, 101, 112, 116, 104, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 53, 10, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 46, 51, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 56, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 36, 49, 44, 32, 74, 78, 68, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 98, 105, 116, 115, 32, 100, 101, 112, 116, 104, 46, 34, 10, 45, 118, 32, 45, 10, 123, 114, 111, 117, 110, 100, 40, 50, 94, 36, 51, 41, 125, 44, 49, 44, 49, 44, 51, 44, 39, 120, 39, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 123, 36, 49, 43, 49, 125, 44, 123, 36, 49, 43, 49, 125, 44, 123, 36, 49, 43, 49, 125, 44, 49, 44, 39, 120, 39, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 121, 39, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 122, 39, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 42, 100, 125, 44, 49, 44, 49, 44, 51, 44, 45, 49, 10, 45, 102, 91, 45, 49, 93, 32, 39, 82, 61, 105, 40, 120, 44, 48, 44, 48, 44, 48, 41, 59, 71, 61, 105, 40, 120, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 105, 40, 120, 44, 48, 44, 48, 44, 50, 41, 59, 105, 102, 40, 109, 105, 110, 40, 82, 44, 71, 44, 66, 41, 44, 45, 49, 44, 105, 41, 39, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 114, 91, 45, 50, 93, 32, 123, 119, 42, 49, 48, 48, 125, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 102, 91, 45, 49, 93, 32, 39, 82, 61, 105, 40, 120, 44, 48, 44, 48, 44, 48, 41, 59, 71, 61, 105, 40, 120, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 105, 40, 120, 44, 48, 44, 48, 44, 50, 41, 59, 105, 102, 40, 109, 97, 120, 40, 82, 44, 71, 44, 66, 41, 62, 50, 94, 36, 51, 45, 49, 44, 45, 49, 44, 105, 41, 39, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 10, 45, 115, 91, 45, 49, 93, 32, 121, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 120, 43, 49, 39, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 48, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 50, 42, 40, 36, 62, 37, 50, 41, 125, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 36, 50, 10, 45, 105, 102, 32, 123, 105, 109, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 39, 121, 43, 49, 39, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 91, 37, 93, 62, 61, 48, 44, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 115, 114, 99, 49, 44, 115, 114, 99, 50, 44, 46, 46, 46, 44, 100, 101, 115, 116, 49, 44, 100, 101, 115, 116, 50, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 112, 105, 120, 101, 108, 115, 32, 102, 114, 111, 109, 47, 116, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 52, 48, 44, 51, 44, 50, 48, 52, 44, 49, 53, 51, 44, 49, 49, 48, 44, 50, 53, 53, 44, 48, 44, 48, 10, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 32, 45, 121, 32, 99, 32, 45, 115, 32, 99, 44, 50, 32, 99, 111, 108, 49, 61, 64, 48, 32, 99, 111, 108, 50, 61, 64, 49, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 99, 111, 108, 49, 34, 41, 32, 98, 121, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 99, 111, 108, 50, 34, 41, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 36, 99, 111, 108, 49, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 108, 101, 91, 49, 93, 32, 36, 49, 32, 45, 101, 108, 115, 101, 32, 45, 61, 61, 91, 49, 93, 32, 91, 48, 93, 32, 45, 108, 91, 49, 93, 32, 45, 115, 32, 99, 32, 45, 97, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 49, 93, 32, 36, 50, 10, 49, 44, 49, 44, 49, 44, 64, 123, 48, 44, 115, 125, 44, 36, 99, 111, 108, 50, 32, 45, 114, 91, 50, 93, 32, 91, 48, 93, 32, 45, 106, 91, 48, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 58, 32, 95, 115, 116, 97, 114, 116, 95, 112, 97, 116, 116, 101, 114, 110, 61, 48, 44, 95, 99, 111, 108, 111, 114, 95, 103, 114, 105, 100, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 115, 97, 109, 112, 108, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 95, 112, 97, 116, 116, 101, 114, 110, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 95, 103, 114, 105, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 48, 10, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 97, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 99, 111, 108, 111, 114, 44, 109, 111, 110, 111, 99, 104, 114, 111, 109, 101, 125, 34, 32, 103, 114, 105, 100, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 111, 109, 32, 112, 97, 116, 116, 101, 114, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 36, 49, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 48, 44, 50, 32, 45, 42, 32, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 115, 32, 99, 32, 45, 43, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 48, 32, 58, 32, 40, 49, 44, 48, 59, 48, 44, 48, 94, 48, 44, 49, 59, 49, 44, 48, 94, 48, 44, 48, 59, 48, 44, 49, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 49, 32, 58, 32, 40, 48, 44, 48, 59, 48, 44, 49, 94, 48, 44, 49, 59, 49, 44, 48, 94, 49, 44, 48, 59, 48, 44, 48, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 50, 32, 58, 32, 40, 48, 44, 48, 59, 49, 44, 48, 94, 49, 44, 48, 59, 48, 44, 49, 94, 48, 44, 49, 59, 48, 44, 48, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 51, 32, 58, 32, 40, 48, 44, 49, 59, 48, 44, 48, 94, 49, 44, 48, 59, 48, 44, 49, 94, 48, 44, 48, 59, 49, 44, 48, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 99, 109, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 99, 109, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 99, 109, 121, 107, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 75, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 32, 45, 115, 112, 108, 105, 116, 32, 99, 32, 45, 102, 105, 108, 108, 91, 51, 93, 32, 48, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 114, 103, 98, 50, 99, 109, 121, 107, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 75, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 109, 105, 110, 32, 45, 45, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 47, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 105, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 73, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 105, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 105, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 73, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 105, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 104, 115, 105, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 73, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 105, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 108, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 76, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 108, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 108, 32, 45, 45, 115, 112, 108, 105, 116, 32, 99, 32, 45, 97, 100, 100, 91, 45, 51, 93, 32, 49, 48, 48, 32, 45, 109, 111, 100, 91, 45, 51, 93, 32, 51, 54, 48, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 108, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 108, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 76, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 108, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 104, 115, 108, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 76, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 108, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 118, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 86, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 45, 115, 112, 108, 105, 116, 32, 99, 32, 45, 97, 100, 100, 91, 45, 50, 93, 32, 48, 46, 51, 32, 45, 99, 117, 116, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 104, 115, 118, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 104, 115, 118, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 104, 115, 118, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 108, 97, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 97, 98, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 45, 115, 112, 108, 105, 116, 32, 99, 32, 45, 109, 117, 108, 91, 45, 50, 44, 45, 49, 93, 32, 50, 46, 53, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 108, 97, 98, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 97, 98, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 108, 97, 98, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 97, 98, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 50, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 49, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 49, 53, 57, 48, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 108, 99, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 99, 104, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 108, 99, 104, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 108, 97, 98, 50, 108, 99, 104, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 108, 99, 104, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 99, 104, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 108, 99, 104, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 99, 104, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 56, 56, 56, 56, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 51, 46, 49, 52, 49, 53, 57, 32, 45, 42, 91, 45, 49, 93, 32, 52, 48, 46, 53, 56, 52, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 108, 117, 118, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 85, 86, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 108, 117, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 108, 117, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 85, 86, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 114, 103, 98, 50, 120, 121, 122, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 49, 93, 32, 51, 32, 45, 45, 42, 91, 45, 50, 93, 32, 49, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 10, 45, 42, 91, 45, 51, 93, 32, 52, 32, 45, 42, 91, 45, 50, 93, 32, 57, 32, 45, 47, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 91, 45, 50, 93, 32, 48, 46, 50, 48, 48, 57, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 52, 54, 49, 48, 10, 45, 45, 42, 91, 45, 51, 93, 32, 49, 51, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 115, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 115, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 120, 121, 122, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 116, 104, 101, 32, 68, 54, 53, 32, 105, 108, 108, 117, 109, 105, 110, 97, 110, 116, 32, 105, 115, 32, 117, 115, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 119, 104, 105, 116, 101, 32, 112, 111, 105, 110, 116, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 120, 121, 122, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 120, 121, 122, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 47, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 48, 46, 52, 49, 50, 52, 53, 51, 44, 48, 46, 51, 53, 55, 53, 56, 48, 44, 48, 46, 49, 56, 48, 52, 50, 51, 44, 48, 46, 50, 49, 50, 54, 55, 49, 44, 48, 46, 55, 49, 53, 49, 54, 48, 44, 48, 46, 48, 55, 50, 49, 54, 57, 44, 48, 46, 48, 49, 57, 51, 51, 52, 44, 48, 46, 49, 49, 57, 49, 57, 51, 44, 48, 46, 57, 53, 48, 50, 50, 55, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 120, 121, 122, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 120, 121, 122, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 120, 121, 122, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 120, 121, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 51, 49, 46, 56, 49, 56, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 67, 98, 67, 114, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 67, 98, 67, 114, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 54, 54, 44, 49, 50, 57, 44, 50, 53, 44, 45, 51, 56, 44, 45, 55, 52, 44, 49, 49, 50, 44, 49, 49, 50, 44, 45, 57, 52, 44, 45, 49, 56, 32, 45, 43, 32, 49, 50, 56, 32, 45, 47, 32, 50, 53, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 32, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 121, 117, 118, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 121, 117, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 121, 117, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 47, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 48, 46, 50, 57, 57, 44, 48, 46, 53, 56, 55, 44, 48, 46, 49, 49, 52, 44, 45, 48, 46, 49, 52, 55, 49, 51, 44, 45, 48, 46, 50, 56, 56, 56, 54, 44, 48, 46, 52, 51, 54, 44, 48, 46, 54, 49, 53, 44, 45, 48, 46, 53, 49, 52, 57, 56, 44, 45, 48, 46, 49, 48, 48, 48, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 103, 98, 50, 121, 117, 118, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 103, 98, 50, 121, 117, 118, 56, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 114, 103, 98, 50, 121, 117, 118, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 121, 117, 118, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 52, 52, 32, 45, 42, 91, 45, 49, 93, 32, 50, 56, 57, 46, 55, 55, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 54, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 53, 46, 54, 52, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 111, 112, 97, 99, 105, 116, 121, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 111, 112, 97, 99, 105, 116, 121, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 64, 123, 45, 49, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 91, 37, 93, 62, 61, 48, 44, 99, 111, 108, 49, 44, 46, 46, 44, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 108, 101, 99, 116, 32, 112, 105, 120, 101, 108, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 52, 48, 44, 50, 48, 52, 44, 49, 53, 51, 44, 49, 49, 48, 10, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 102, 99, 32, 36, 123, 50, 45, 45, 49, 125, 32, 45, 45, 32, 45, 110, 111, 114, 109, 32, 45, 108, 101, 32, 36, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 101, 112, 105, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 101, 112, 105, 97, 32, 116, 111, 110, 101, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 101, 112, 105, 97, 10, 115, 101, 112, 105, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 101, 112, 105, 97, 32, 116, 111, 110, 101, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 40, 48, 44, 52, 52, 44, 49, 49, 53, 44, 49, 52, 51, 44, 49, 57, 54, 44, 50, 52, 52, 94, 48, 44, 50, 48, 44, 56, 52, 44, 49, 49, 57, 44, 49, 56, 52, 44, 50, 51, 53, 94, 48, 44, 53, 44, 52, 52, 44, 55, 51, 44, 49, 52, 52, 44, 50, 48, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 94, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 108, 97, 114, 105, 122, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 108, 97, 114, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 111, 108, 97, 114, 105, 122, 101, 10, 115, 111, 108, 97, 114, 105, 122, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 108, 97, 114, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 49, 50, 56, 32, 45, 109, 97, 112, 32, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 108, 105, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 99, 44, 123, 105, 102, 40, 115, 61, 61, 52, 44, 45, 51, 44, 105, 102, 40, 115, 61, 61, 50, 44, 45, 49, 44, 45, 115, 41, 41, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 114, 103, 98, 50, 114, 103, 98, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 115, 82, 71, 66, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 104, 97, 118, 101, 32, 97, 110, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 46, 10, 116, 111, 95, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 104, 97, 118, 101, 32, 97, 110, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 124, 124, 115, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 123, 115, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 123, 115, 45, 49, 125, 44, 123, 115, 45, 49, 125, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 99, 111, 108, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 32, 40, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 41, 46, 10, 116, 111, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 58, 32, 109, 111, 100, 101, 61, 123, 32, 48, 61, 97, 100, 97, 112, 116, 105, 118, 101, 32, 124, 32, 49, 61, 71, 32, 124, 32, 50, 61, 71, 65, 32, 124, 32, 51, 61, 82, 71, 66, 32, 124, 32, 52, 61, 82, 71, 66, 65, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 97, 32, 103, 105, 118, 101, 110, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 109, 111, 100, 101, 61, 48, 39, 46, 10, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 97, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 101, 108, 115, 101, 10, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 115, 125, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 115, 101, 32, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 64, 123, 36, 62, 44, 115, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 36, 115, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 103, 114, 97, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 111, 95, 103, 114, 97, 121, 10, 116, 111, 95, 103, 114, 97, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 62, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 103, 114, 97, 121, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 65, 32, 109, 111, 100, 101, 46, 10, 116, 111, 95, 103, 114, 97, 121, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 65, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 51, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 93, 32, 45, 97, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 95, 109, 97, 120, 95, 115, 116, 101, 112, 62, 61, 48, 44, 95, 105, 115, 95, 112, 101, 114, 99, 101, 112, 116, 117, 97, 108, 95, 99, 111, 110, 115, 116, 114, 97, 105, 110, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 98, 105, 116, 115, 95, 100, 101, 112, 116, 104, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 115, 32, 40, 91, 48, 45, 50, 53, 53, 93, 45, 118, 97, 108, 117, 101, 100, 41, 32, 116, 111, 32, 112, 115, 101, 117, 100, 111, 45, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 32, 39, 109, 97, 120, 95, 115, 116, 101, 112, 61, 53, 39, 44, 32, 39, 105, 115, 95, 112, 101, 114, 99, 101, 112, 116, 117, 97, 108, 95, 99, 111, 110, 115, 116, 114, 97, 105, 110, 116, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 105, 116, 115, 95, 100, 101, 112, 116, 104, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 112, 115, 101, 117, 100, 111, 45, 103, 114, 97, 121, 32, 116, 101, 99, 104, 110, 105, 113, 117, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 105, 110, 116, 114, 111, 100, 117, 99, 101, 100, 32, 98, 121, 32, 82, 105, 99, 104, 32, 70, 114, 97, 110, 122, 101, 110, 32, 91, 104, 116, 116, 112, 58, 47, 47, 114, 48, 107, 46, 117, 115, 47, 103, 114, 97, 112, 104, 105, 99, 115, 47, 112, 115, 101, 117, 100, 111, 71, 114, 101, 121, 46, 104, 116, 109, 108, 93, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 116, 101, 110, 115, 105, 111, 110, 32, 111, 102, 32, 116, 104, 105, 115, 32, 116, 101, 99, 104, 110, 105, 113, 117, 101, 32, 116, 111, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 115, 32, 102, 111, 114, 32, 109, 111, 114, 101, 32, 116, 111, 110, 101, 115, 44, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 100, 111, 110, 101, 32, 98, 121, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 10, 116, 111, 95, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 56, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 112, 115, 101, 117, 100, 111, 45, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 116, 101, 112, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 115, 114, 103, 98, 50, 114, 103, 98, 32, 45, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 36, 49, 44, 123, 50, 46, 51, 42, 36, 50, 125, 44, 36, 51, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 54, 53, 53, 51, 53, 47, 49, 48, 48, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 120, 99, 121, 122, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 36, 62, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 36, 62, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 36, 62, 93, 32, 48, 32, 45, 42, 91, 36, 62, 93, 32, 123, 54, 53, 53, 51, 53, 47, 49, 48, 48, 125, 32, 45, 114, 111, 117, 110, 100, 91, 36, 62, 93, 32, 45, 99, 91, 36, 62, 93, 32, 48, 44, 54, 53, 53, 51, 53, 10, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 32, 109, 111, 100, 101, 46, 10, 116, 111, 95, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 95, 114, 103, 98, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 111, 114, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 65, 32, 109, 111, 100, 101, 46, 10, 116, 111, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 65, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 51, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 32, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 102, 101, 114, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 111, 110, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 116, 114, 97, 110, 115, 102, 101, 114, 95, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 97, 110, 100, 32, 48, 44, 50, 53, 53, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 49, 10, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 101, 114, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 91, 48, 93, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 94, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 41, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 108, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 50, 53, 54, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 42, 32, 50, 53, 53, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 100, 103, 32, 51, 48, 48, 44, 50, 48, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 120, 121, 122, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 88, 89, 90, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 120, 121, 122, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 88, 89, 90, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 42, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 51, 46, 50, 52, 48, 52, 55, 57, 44, 45, 49, 46, 53, 51, 55, 49, 53, 48, 44, 45, 48, 46, 52, 57, 56, 53, 51, 53, 44, 45, 48, 46, 57, 54, 57, 50, 53, 54, 44, 49, 46, 56, 55, 53, 57, 57, 50, 44, 48, 46, 48, 52, 49, 53, 53, 54, 44, 48, 46, 48, 53, 53, 54, 52, 56, 44, 45, 48, 46, 50, 48, 52, 48, 52, 51, 44, 49, 46, 48, 53, 55, 51, 49, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 121, 122, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 88, 89, 90, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 120, 121, 122, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 88, 89, 90, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 51, 49, 46, 56, 49, 56, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 120, 121, 122, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 89, 67, 98, 67, 114, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 121, 99, 98, 99, 114, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 67, 98, 67, 114, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 32, 49, 44, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 109, 105, 120, 95, 114, 103, 98, 32, 50, 57, 56, 44, 48, 44, 52, 48, 57, 44, 50, 57, 56, 44, 45, 49, 48, 48, 44, 45, 50, 48, 56, 44, 50, 57, 56, 44, 53, 49, 54, 44, 48, 32, 45, 43, 32, 49, 50, 56, 32, 45, 47, 32, 50, 53, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 121, 117, 118, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 89, 85, 86, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 98, 97, 115, 101, 115, 46, 10, 121, 117, 118, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 85, 86, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 48, 44, 49, 46, 49, 51, 57, 56, 51, 44, 49, 44, 45, 48, 46, 51, 57, 52, 54, 53, 44, 45, 48, 46, 53, 56, 48, 54, 44, 49, 44, 50, 46, 48, 51, 50, 49, 49, 44, 48, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 121, 117, 118, 56, 50, 114, 103, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 89, 85, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 10, 121, 117, 118, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 85, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 50, 56, 57, 46, 55, 55, 51, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 52, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 48, 53, 46, 54, 52, 53, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 54, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 121, 117, 118, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 71, 101, 111, 109, 101, 116, 114, 121, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 97, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 97, 112, 112, 101, 110, 100, 39, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 101, 110, 100, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 44, 97, 120, 105, 115, 44, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 58, 32, 97, 120, 105, 115, 44, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 101, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 111, 114, 32, 97, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 103, 101, 116, 104, 101, 114, 44, 32, 97, 108, 111, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 97, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 105, 115, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 115, 117, 97, 108, 32, 39, 97, 108, 105, 103, 110, 109, 101, 110, 116, 39, 32, 118, 97, 108, 117, 101, 115, 32, 97, 114, 101, 32, 123, 32, 48, 61, 108, 101, 102, 116, 45, 106, 117, 115, 116, 105, 102, 105, 101, 100, 32, 124, 32, 48, 46, 53, 61, 99, 101, 110, 116, 101, 114, 101, 100, 32, 124, 32, 49, 61, 114, 105, 103, 104, 116, 45, 106, 117, 115, 116, 105, 102, 105, 101, 100, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 108, 105, 103, 110, 109, 101, 110, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 121, 44, 49, 48, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 97, 112, 112, 101, 110, 100, 32, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 44, 123, 49, 48, 43, 49, 56, 42, 36, 62, 125, 37, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 44, 48, 46, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 93, 32, 91, 48, 93, 44, 121, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 58, 32, 95, 77, 62, 61, 48, 44, 95, 78, 62, 61, 48, 44, 48, 60, 61, 95, 120, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 60, 61, 49, 44, 48, 60, 61, 95, 121, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 60, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 101, 110, 100, 32, 77, 120, 78, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 116, 105, 108, 101, 115, 32, 97, 115, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 78, 39, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 48, 44, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 114, 111, 119, 115, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 77, 39, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 48, 44, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 108, 117, 109, 110, 115, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 77, 39, 32, 97, 110, 100, 32, 39, 78, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 44, 32, 97, 117, 116, 111, 45, 109, 111, 100, 101, 32, 105, 115, 32, 117, 115, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 77, 39, 32, 111, 114, 32, 39, 78, 39, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 48, 44, 32, 111, 110, 108, 121, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 112, 114, 111, 100, 117, 99, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 120, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 39, 32, 97, 110, 100, 32, 39, 121, 95, 97, 108, 105, 103, 109, 101, 110, 116, 39, 32, 116, 101, 108, 108, 115, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 111, 102, 32, 116, 105, 108, 101, 115, 32, 119, 104, 101, 110, 32, 116, 104, 101, 121, 32, 104, 97, 118, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 115, 105, 122, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 77, 61, 48, 39, 44, 32, 39, 78, 61, 48, 39, 44, 32, 39, 120, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 61, 121, 95, 97, 108, 105, 103, 110, 109, 101, 110, 116, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 121, 44, 52, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 48, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 32, 38, 38, 32, 36, 123, 52, 61, 36, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 34, 10, 45, 105, 102, 32, 123, 33, 36, 49, 38, 38, 33, 36, 50, 125, 10, 45, 118, 32, 45, 32, 78, 61, 123, 105, 110, 116, 40, 115, 113, 114, 116, 40, 64, 35, 41, 41, 125, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 78, 44, 49, 44, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 32, 40, 97, 117, 116, 111, 45, 109, 111, 100, 101, 41, 46, 34, 32, 45, 118, 32, 45, 10, 77, 78, 61, 123, 36, 77, 42, 36, 78, 125, 32, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 78, 125, 32, 123, 36, 77, 78, 45, 40, 64, 35, 37, 36, 77, 78, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 118, 32, 45, 32, 77, 61, 36, 49, 32, 78, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 49, 44, 49, 44, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 77, 62, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 119, 97, 114, 110, 91, 48, 45, 45, 51, 93, 32, 34, 77, 105, 115, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 32, 102, 111, 114, 32, 104, 97, 118, 105, 110, 103, 32, 111, 110, 101, 32, 114, 111, 119, 32, 105, 110, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 125, 32, 123, 36, 77, 45, 40, 64, 35, 37, 36, 77, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 49, 125, 10, 45, 118, 32, 45, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 50, 44, 49, 44, 49, 41, 125, 32, 78, 61, 36, 50, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 78, 62, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 119, 97, 114, 110, 91, 48, 45, 45, 51, 93, 32, 34, 77, 105, 115, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 32, 102, 111, 114, 32, 104, 97, 118, 105, 110, 103, 32, 111, 110, 101, 32, 99, 111, 108, 117, 109, 110, 32, 105, 110, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 125, 32, 123, 36, 77, 45, 40, 64, 35, 37, 36, 77, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 115, 32, 36, 49, 120, 36, 50, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 34, 32, 45, 118, 32, 45, 10, 77, 61, 36, 49, 32, 78, 61, 36, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 77, 78, 61, 123, 36, 77, 42, 36, 78, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 77, 78, 41, 125, 32, 45, 108, 91, 36, 62, 45, 123, 36, 62, 43, 36, 77, 78, 45, 49, 125, 93, 10, 36, 77, 78, 44, 49, 44, 49, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 78, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 49, 44, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 45, 49, 93, 32, 36, 77, 44, 36, 78, 44, 49, 44, 50, 44, 45, 49, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 108, 91, 45, 50, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 105, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 121, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 32, 45, 114, 91, 36, 105, 93, 32, 64, 123, 45, 50, 44, 36, 62, 125, 44, 64, 123, 45, 49, 44, 36, 121, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 36, 51, 44, 36, 52, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 77, 41, 125, 32, 45, 97, 91, 36, 62, 45, 123, 36, 62, 43, 36, 77, 45, 49, 125, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 78, 41, 125, 32, 45, 97, 91, 36, 62, 45, 123, 36, 62, 43, 36, 78, 45, 49, 125, 93, 32, 121, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 117, 116, 111, 99, 114, 111, 112, 32, 58, 32, 118, 97, 108, 117, 101, 49, 44, 118, 97, 108, 117, 101, 50, 44, 46, 46, 46, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 110, 111, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 44, 32, 99, 114, 111, 112, 112, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 103, 117, 101, 115, 115, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 50, 48, 44, 49, 50, 48, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 45, 97, 117, 116, 111, 99, 114, 111, 112, 10, 35, 64, 103, 109, 105, 99, 32, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 58, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 37, 93, 44, 95, 109, 105, 110, 95, 97, 114, 101, 97, 91, 37, 93, 62, 61, 48, 44, 95, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 111, 117, 116, 112, 117, 116, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 99, 114, 111, 112, 32, 124, 32, 49, 61, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 124, 32, 50, 61, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 97, 110, 100, 32, 101, 120, 116, 114, 97, 99, 116, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 97, 32, 109, 97, 115, 107, 32, 103, 105, 118, 101, 110, 32, 97, 115, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 97, 99, 104, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 40, 101, 46, 103, 46, 32, 97, 108, 112, 104, 97, 45, 99, 104, 97, 110, 110, 101, 108, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 37, 39, 44, 32, 39, 109, 105, 110, 95, 97, 114, 101, 97, 61, 48, 46, 49, 37, 39, 44, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 111, 117, 116, 112, 117, 116, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 110, 111, 105, 115, 101, 32, 48, 46, 49, 44, 50, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 50, 48, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 32, 48, 44, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 45, 110, 101, 113, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 44, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 37, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 49, 37, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 98, 111, 111, 108, 40, 36, 123, 51, 61, 48, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 49, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 117, 116, 111, 99, 114, 111, 112, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 109, 105, 110, 105, 109, 97, 108, 32, 97, 114, 101, 97, 32, 36, 50, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 108, 111, 119, 44, 104, 105, 103, 104, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 34, 92, 10, 34, 97, 110, 100, 32, 111, 117, 116, 112, 117, 116, 32, 116, 121, 112, 101, 32, 115, 101, 116, 32, 116, 111, 32, 39, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 52, 44, 99, 114, 111, 112, 44, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 125, 34, 39, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 105, 110, 95, 97, 114, 101, 97, 61, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 119, 42, 104, 44, 36, 50, 41, 41, 41, 125, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 97, 114, 101, 97, 10, 45, 45, 97, 114, 101, 97, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 108, 116, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 97, 114, 101, 97, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 10, 78, 61, 123, 105, 77, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 77, 125, 10, 110, 61, 123, 49, 43, 36, 62, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 62, 32, 34, 36, 110, 47, 36, 78, 32, 45, 118, 32, 45, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 49, 48, 48, 42, 36, 110, 47, 36, 78, 125, 10, 45, 45, 61, 61, 91, 49, 93, 32, 36, 110, 32, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 97, 117, 116, 111, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 122, 91, 48, 93, 32, 36, 99, 111, 111, 114, 100, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 97, 117, 116, 111, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 40, 36, 99, 111, 111, 114, 100, 115, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 117, 116, 111, 99, 114, 111, 112, 95, 115, 101, 113, 32, 58, 32, 118, 97, 108, 117, 101, 49, 44, 118, 97, 108, 117, 101, 50, 44, 46, 46, 46, 32, 124, 32, 97, 117, 116, 111, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 99, 114, 111, 112, 32, 103, 101, 111, 109, 101, 116, 114, 121, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 111, 110, 101, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 98, 121, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 103, 117, 101, 115, 115, 105, 110, 103, 32, 116, 104, 101, 32, 99, 114, 111, 112, 112, 105, 110, 103, 32, 118, 97, 108, 117, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 97, 117, 116, 111, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 51, 48, 37, 44, 50, 48, 37, 44, 48, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 115, 101, 113, 32, 48, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 115, 101, 113, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 117, 116, 111, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 117, 116, 111, 45, 99, 114, 111, 112, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 99, 114, 111, 112, 32, 103, 101, 111, 109, 101, 116, 114, 121, 32, 111, 102, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 118, 101, 99, 116, 111, 114, 32, 39, 36, 42, 39, 46, 34, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 36, 123, 49, 45, 45, 49, 125, 125, 10, 120, 48, 61, 123, 97, 114, 103, 40, 49, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 121, 48, 61, 123, 97, 114, 103, 40, 50, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 122, 48, 61, 123, 97, 114, 103, 40, 51, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 10, 120, 49, 61, 123, 97, 114, 103, 40, 52, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 121, 49, 61, 123, 97, 114, 103, 40, 53, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 122, 49, 61, 123, 97, 114, 103, 40, 54, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 10, 45, 105, 102, 32, 123, 36, 120, 48, 62, 36, 120, 49, 34, 32, 124, 124, 32, 34, 36, 121, 48, 62, 36, 121, 49, 34, 32, 124, 124, 32, 34, 36, 122, 48, 62, 36, 122, 49, 125, 32, 45, 105, 91, 48, 45, 45, 50, 93, 32, 48, 32, 45, 114, 109, 91, 49, 45, 45, 49, 58, 50, 93, 10, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 122, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 122, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 123, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 124, 32, 99, 48, 91, 37, 93, 32, 125, 44, 95, 123, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 124, 32, 99, 49, 91, 37, 93, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 75, 101, 101, 112, 32, 111, 110, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 114, 105, 99, 104, 108, 101, 116, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 105, 115, 32, 117, 115, 101, 100, 32, 119, 104, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 97, 114, 101, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 117, 109, 110, 115, 32, 58, 32, 123, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 124, 32, 120, 48, 91, 37, 93, 32, 125, 44, 95, 123, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 124, 32, 120, 49, 91, 37, 93, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 75, 101, 101, 112, 32, 111, 110, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 117, 109, 110, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 114, 105, 99, 104, 108, 101, 116, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 105, 115, 32, 117, 115, 101, 100, 32, 119, 104, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 117, 109, 110, 115, 32, 97, 114, 101, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 45, 50, 53, 37, 44, 53, 48, 37, 10, 35, 64, 103, 109, 105, 99, 32, 122, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 114, 111, 112, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 99, 114, 111, 112, 32, 58, 32, 120, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 122, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 122, 49, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 122, 48, 91, 37, 93, 44, 99, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 122, 49, 91, 37, 93, 44, 99, 49, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 111, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 101, 103, 105, 111, 110, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 122, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 117, 110, 115, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 109, 111, 100, 101, 32, 40, 117, 115, 101, 115, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 114, 111, 112, 32, 45, 50, 51, 48, 44, 45, 50, 51, 48, 44, 50, 56, 48, 44, 50, 56, 48, 44, 49, 32, 45, 99, 114, 111, 112, 91, 48, 93, 32, 45, 50, 51, 48, 44, 45, 50, 51, 48, 44, 50, 56, 48, 44, 50, 56, 48, 44, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 114, 111, 112, 32, 50, 53, 37, 44, 50, 53, 37, 44, 55, 53, 37, 44, 55, 53, 37, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 97, 103, 111, 110, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 115, 32, 97, 115, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 109, 97, 116, 114, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 44, 49, 48, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 100, 105, 97, 103, 111, 110, 97, 108, 10, 100, 105, 97, 103, 111, 110, 97, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 118, 101, 99, 116, 111, 114, 36, 63, 32, 97, 115, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 109, 97, 116, 114, 105, 120, 46, 34, 10, 45, 118, 32, 45, 32, 45, 121, 32, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 104, 43, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 104, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 49, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 101, 118, 97, 116, 101, 32, 58, 32, 95, 100, 101, 112, 116, 104, 44, 95, 105, 115, 95, 112, 108, 97, 105, 110, 44, 95, 105, 115, 95, 99, 111, 108, 111, 114, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 108, 101, 118, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 50, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 116, 111, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 112, 116, 104, 61, 54, 52, 39, 44, 32, 39, 105, 115, 95, 112, 108, 97, 105, 110, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 99, 111, 108, 111, 114, 101, 100, 61, 49, 39, 46, 10, 101, 108, 101, 118, 97, 116, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 108, 101, 118, 97, 116, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 116, 111, 32, 36, 49, 45, 115, 108, 105, 99, 101, 115, 32, 118, 111, 108, 117, 109, 101, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 110, 111, 114, 109, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 49, 44, 123, 105, 102, 40, 36, 51, 44, 64, 123, 48, 44, 115, 125, 44, 49, 41, 125, 10, 109, 61, 64, 123, 45, 50, 44, 109, 125, 32, 100, 61, 123, 64, 123, 45, 50, 44, 77, 125, 45, 36, 109, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 105, 102, 32, 36, 50, 32, 45, 45, 103, 101, 91, 49, 93, 32, 123, 36, 109, 43, 36, 100, 42, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 116, 50, 91, 49, 93, 32, 123, 36, 109, 43, 36, 100, 42, 36, 62, 47, 36, 49, 125, 44, 123, 36, 109, 43, 36, 100, 42, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 42, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 97, 110, 100, 95, 120, 32, 58, 32, 115, 105, 122, 101, 95, 120, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 114, 100, 101, 114, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 32, 51, 48, 44, 48, 10, 101, 120, 112, 97, 110, 100, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 114, 100, 101, 114, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 51, 48, 44, 48, 10, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 114, 100, 101, 114, 61, 49, 39, 46, 10, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 100, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 97, 110, 100, 95, 121, 32, 58, 32, 115, 105, 122, 101, 95, 121, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 114, 100, 101, 114, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 101, 120, 112, 97, 110, 100, 95, 121, 32, 51, 48, 44, 48, 10, 101, 120, 112, 97, 110, 100, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 112, 97, 110, 100, 95, 122, 32, 58, 32, 115, 105, 122, 101, 95, 122, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 114, 100, 101, 114, 61, 49, 39, 46, 10, 101, 120, 112, 97, 110, 100, 95, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 100, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 114, 114, 111, 114, 32, 58, 32, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 125, 46, 46, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 50, 44, 50, 10, 35, 64, 103, 109, 105, 99, 32, 112, 101, 114, 109, 117, 116, 101, 32, 58, 32, 112, 101, 114, 109, 117, 116, 97, 116, 105, 111, 110, 95, 115, 116, 114, 105, 110, 103, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 101, 114, 109, 117, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 97, 120, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 101, 114, 109, 117, 116, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 101, 114, 109, 117, 116, 97, 116, 105, 111, 110, 39, 32, 105, 115, 32, 97, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 115, 101, 116, 32, 123, 120, 124, 121, 124, 122, 124, 99, 125, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 46, 103, 46, 32, 39, 120, 121, 99, 122, 39, 44, 32, 39, 99, 120, 121, 122, 39, 44, 32, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 121, 120, 122, 99, 10, 35, 64, 103, 109, 105, 99, 32, 114, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 32, 58, 32, 123, 91, 105, 109, 97, 103, 101, 95, 119, 93, 32, 124, 32, 119, 105, 100, 116, 104, 62, 48, 91, 37, 93, 125, 44, 95, 123, 91, 105, 109, 97, 103, 101, 95, 104, 93, 32, 124, 32, 104, 101, 105, 103, 104, 116, 62, 48, 91, 37, 93, 125, 44, 95, 123, 91, 105, 109, 97, 103, 101, 95, 100, 93, 32, 124, 32, 100, 101, 112, 116, 104, 62, 48, 91, 37, 93, 125, 44, 95, 123, 91, 105, 109, 97, 103, 101, 95, 115, 93, 32, 124, 32, 115, 112, 101, 99, 116, 114, 117, 109, 62, 48, 91, 37, 93, 125, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 32, 111, 114, 32, 52, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 117, 110, 115, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 109, 111, 100, 101, 32, 40, 117, 115, 101, 115, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 105, 102, 32, 111, 112, 101, 110, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 49, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 48, 44, 49, 59, 48, 44, 49, 94, 48, 44, 48, 59, 49, 44, 49, 94, 49, 44, 49, 59, 49, 44, 49, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 109, 117, 108, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 50, 56, 44, 49, 44, 51, 44, 50, 32, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 50, 48, 37, 44, 49, 50, 48, 37, 44, 49, 44, 51, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 50, 48, 37, 44, 49, 50, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 50, 44, 48, 46, 50, 32, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 51, 44, 52, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 119, 50, 32, 58, 32, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 115, 111, 32, 116, 104, 97, 116, 32, 101, 97, 99, 104, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 105, 115, 32, 97, 32, 112, 111, 119, 101, 114, 32, 111, 102, 32, 50, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 115, 105, 122, 101, 95, 112, 111, 119, 50, 91, 45, 49, 93, 32, 48, 10, 114, 101, 115, 105, 122, 101, 95, 112, 111, 119, 50, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 45, 49, 32, 38, 38, 32, 36, 49, 60, 61, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 115, 111, 32, 116, 104, 97, 116, 32, 101, 97, 99, 104, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 105, 115, 32, 97, 32, 112, 111, 119, 101, 114, 32, 111, 102, 32, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 119, 41, 44, 49, 44, 49, 41, 41, 125, 44, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 104, 41, 44, 49, 44, 49, 41, 41, 125, 44, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 100, 41, 44, 49, 44, 49, 41, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 49, 45, 54, 125, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 114, 50, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 39, 46, 10, 114, 114, 50, 100, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 58, 32, 119, 105, 100, 116, 104, 62, 48, 44, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 109, 111, 100, 101, 61, 123, 32, 48, 61, 105, 110, 115, 105, 100, 101, 32, 124, 32, 49, 61, 111, 117, 116, 115, 105, 100, 101, 32, 124, 32, 50, 61, 112, 97, 100, 100, 101, 100, 32, 125, 44, 48, 61, 60, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 60, 61, 54, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 104, 105, 108, 101, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 116, 104, 101, 105, 114, 32, 97, 115, 112, 101, 99, 116, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 114, 50, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 111, 100, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 54, 39, 46, 10, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 54, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 120, 36, 50, 32, 119, 105, 116, 104, 32, 114, 97, 116, 105, 111, 45, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 105, 110, 115, 105, 100, 101, 44, 111, 117, 116, 115, 105, 100, 101, 44, 112, 97, 100, 100, 101, 100, 125, 92, 10, 34, 32, 109, 111, 100, 101, 32, 97, 110, 100, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 114, 97, 116, 105, 111, 61, 64, 123, 36, 62, 44, 105, 102, 40, 36, 51, 61, 61, 49, 44, 109, 97, 120, 40, 36, 49, 47, 119, 44, 36, 50, 47, 104, 41, 44, 109, 105, 110, 40, 36, 49, 47, 119, 44, 36, 50, 47, 104, 41, 41, 125, 10, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 42, 36, 114, 97, 116, 105, 111, 125, 44, 64, 123, 36, 62, 44, 104, 42, 36, 114, 97, 116, 105, 111, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 52, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 114, 32, 36, 49, 44, 36, 50, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 50, 100, 120, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 39, 46, 10, 114, 50, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 58, 32, 119, 105, 100, 116, 104, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 50, 100, 120, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 49, 48, 48, 44, 50, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 119, 41, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 50, 100, 121, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 39, 46, 10, 114, 50, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 58, 32, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 50, 100, 121, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 49, 48, 48, 44, 50, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 104, 41, 125, 44, 36, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 51, 100, 120, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 51, 100, 120, 39, 46, 10, 114, 51, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 58, 32, 119, 105, 100, 116, 104, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 51, 100, 120, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 119, 41, 125, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 100, 42, 36, 49, 47, 119, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 51, 100, 121, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 51, 100, 121, 39, 46, 10, 114, 51, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 58, 32, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 51, 100, 121, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 104, 41, 125, 44, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 100, 42, 36, 49, 47, 104, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 51, 100, 122, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 115, 105, 122, 101, 51, 100, 122, 39, 46, 10, 114, 51, 100, 122, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 58, 32, 100, 101, 112, 116, 104, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 51, 100, 122, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 110, 111, 110, 101, 32, 40, 109, 101, 109, 111, 114, 121, 32, 99, 111, 110, 116, 101, 110, 116, 41, 32, 124, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 50, 61, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 51, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 52, 61, 103, 114, 105, 100, 32, 124, 32, 53, 61, 98, 105, 99, 117, 98, 105, 99, 32, 124, 32, 54, 61, 108, 97, 110, 99, 122, 111, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 104, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 109, 101, 97, 110, 105, 110, 103, 115, 44, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 99, 104, 111, 115, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 109, 111, 100, 101, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 45, 49, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 105, 115, 32, 109, 101, 97, 110, 105, 110, 103, 108, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 46, 32, 87, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 61, 123, 32, 51, 32, 124, 32, 53, 32, 124, 32, 54, 32, 125, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 44, 97, 121, 44, 97, 122, 44, 97, 99, 39, 32, 115, 101, 116, 32, 116, 104, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 109, 111, 100, 101, 32, 97, 108, 111, 110, 103, 32, 101, 97, 99, 104, 32, 97, 120, 105, 115, 32, 119, 104, 101, 110, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 32, 98, 121, 32, 100, 101, 102, 97, 117, 108, 116, 44, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 114, 97, 110, 103, 101, 32, 91, 48, 44, 49, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 97, 120, 61, 97, 121, 61, 97, 122, 61, 97, 99, 61, 48, 39, 46, 10, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 100, 41, 125, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 100, 41, 125, 44, 36, 49, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 97, 116, 101, 32, 58, 32, 97, 110, 103, 108, 101, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 99, 120, 91, 37, 93, 44, 95, 99, 121, 91, 37, 93, 44, 95, 122, 111, 111, 109, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 111, 116, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 110, 103, 108, 101, 32, 40, 105, 110, 32, 100, 101, 103, 46, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 50, 61, 98, 105, 99, 117, 98, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 99, 101, 110, 116, 101, 114, 32, 40, 39, 99, 120, 39, 44, 39, 99, 121, 39, 41, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 112, 114, 101, 115, 101, 114, 118, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 44, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 49, 39, 44, 32, 39, 99, 120, 61, 99, 121, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 122, 111, 111, 109, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 97, 116, 101, 32, 45, 50, 53, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 46, 54, 32, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 50, 53, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 58, 32, 97, 110, 103, 108, 101, 44, 95, 109, 97, 120, 95, 115, 105, 122, 101, 95, 102, 97, 99, 116, 111, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 111, 116, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 110, 103, 108, 101, 32, 97, 110, 100, 32, 109, 97, 107, 101, 32, 116, 104, 101, 109, 32, 116, 105, 108, 101, 97, 98, 108, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 114, 101, 115, 117, 108, 116, 105, 110, 103, 32, 115, 105, 122, 101, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 116, 111, 111, 32, 98, 105, 103, 44, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 114, 101, 112, 108, 97, 99, 101, 100, 32, 98, 121, 32, 97, 32, 49, 120, 49, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 97, 120, 95, 115, 105, 122, 101, 95, 102, 97, 99, 116, 111, 114, 61, 56, 39, 46, 10, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 50, 61, 56, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 111, 116, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 32, 97, 110, 100, 32, 109, 97, 107, 101, 32, 116, 104, 101, 109, 32, 116, 105, 108, 101, 97, 98, 108, 101, 46, 34, 10, 45, 118, 32, 45, 10, 97, 110, 103, 108, 101, 61, 123, 36, 49, 37, 51, 54, 48, 125, 10, 45, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 50, 55, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 55, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 50, 55, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 49, 56, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 49, 56, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 49, 56, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 57, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 57, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 57, 48, 125, 10, 45, 101, 110, 100, 105, 102, 10, 40, 48, 44, 49, 59, 49, 44, 56, 59, 49, 44, 55, 59, 49, 44, 54, 59, 49, 44, 53, 59, 49, 44, 52, 59, 49, 44, 53, 59, 49, 44, 51, 59, 50, 44, 53, 59, 49, 44, 50, 59, 50, 44, 53, 59, 51, 44, 53, 59, 50, 44, 51, 59, 51, 44, 52, 59, 52, 44, 53, 59, 49, 44, 49, 59, 53, 44, 52, 59, 55, 44, 53, 59, 51, 44, 50, 59, 56, 44, 53, 59, 57, 44, 53, 59, 50, 44, 49, 59, 51, 44, 49, 59, 52, 44, 49, 59, 53, 44, 49, 59, 54, 44, 49, 59, 55, 44, 49, 59, 56, 44, 49, 41, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 116, 97, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 10, 40, 36, 97, 110, 103, 108, 101, 41, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 112, 61, 64, 123, 45, 51, 44, 64, 45, 49, 125, 32, 113, 61, 64, 123, 45, 50, 44, 64, 45, 49, 125, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 36, 112, 124, 124, 33, 36, 113, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 116, 104, 101, 116, 97, 61, 123, 97, 116, 97, 110, 50, 40, 36, 112, 44, 36, 113, 41, 125, 10, 103, 99, 100, 61, 64, 123, 45, 103, 99, 100, 34, 32, 34, 123, 104, 42, 36, 113, 125, 44, 123, 119, 42, 36, 112, 125, 125, 10, 112, 119, 61, 123, 104, 42, 36, 113, 47, 36, 103, 99, 100, 125, 10, 110, 119, 61, 123, 114, 111, 117, 110, 100, 40, 36, 112, 119, 42, 119, 47, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 103, 99, 100, 61, 64, 123, 45, 103, 99, 100, 34, 32, 34, 123, 104, 42, 36, 112, 125, 44, 123, 119, 42, 36, 113, 125, 125, 10, 113, 104, 61, 123, 119, 42, 36, 113, 47, 36, 103, 99, 100, 125, 10, 110, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 113, 104, 42, 104, 47, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 36, 50, 34, 32, 124, 124, 32, 34, 40, 36, 110, 119, 60, 36, 50, 42, 119, 34, 32, 38, 38, 32, 34, 36, 110, 104, 60, 36, 50, 42, 104, 41, 125, 10, 45, 114, 32, 123, 49, 46, 53, 42, 36, 110, 119, 125, 44, 123, 49, 46, 53, 42, 36, 110, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 36, 116, 104, 101, 116, 97, 42, 49, 56, 48, 47, 112, 105, 125, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 114, 32, 36, 110, 119, 44, 36, 110, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 119, 115, 32, 58, 32, 123, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 124, 32, 121, 48, 91, 37, 93, 32, 125, 44, 95, 123, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 124, 32, 121, 49, 91, 37, 93, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 75, 101, 101, 112, 32, 111, 110, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 111, 119, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 114, 105, 99, 104, 108, 101, 116, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 105, 115, 32, 117, 115, 101, 100, 32, 119, 104, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 111, 119, 115, 32, 97, 114, 101, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 111, 119, 115, 32, 45, 50, 53, 37, 44, 53, 48, 37, 10, 35, 64, 103, 109, 105, 99, 32, 115, 99, 97, 108, 101, 50, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 83, 99, 97, 108, 101, 50, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 114, 101, 115, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 32, 45, 45, 115, 99, 97, 108, 101, 50, 120, 10, 115, 99, 97, 108, 101, 50, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 111, 117, 98, 108, 101, 32, 120, 121, 45, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 83, 99, 97, 108, 101, 50, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 10, 45, 102, 32, 34, 100, 120, 61, 120, 38, 49, 59, 100, 121, 61, 121, 38, 49, 59, 65, 61, 106, 40, 48, 44, 45, 50, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 106, 40, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 67, 61, 106, 40, 45, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 68, 61, 106, 40, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 33, 100, 121, 42, 40, 33, 100, 120, 42, 105, 102, 40, 67, 61, 61, 65, 38, 38, 67, 33, 61, 68, 38, 38, 65, 33, 61, 66, 44, 65, 44, 105, 41, 32, 43, 32, 100, 120, 42, 105, 102, 40, 65, 61, 61, 66, 38, 38, 65, 33, 61, 67, 38, 38, 66, 33, 61, 68, 44, 66, 44, 105, 41, 41, 32, 43, 32, 100, 121, 42, 40, 100, 120, 42, 105, 102, 40, 66, 61, 61, 68, 38, 38, 66, 33, 61, 65, 38, 38, 68, 33, 61, 67, 44, 68, 44, 105, 41, 32, 43, 32, 33, 100, 120, 42, 105, 102, 40, 68, 61, 61, 67, 38, 38, 68, 33, 61, 66, 38, 38, 67, 33, 61, 65, 44, 67, 44, 105, 41, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 99, 97, 108, 101, 51, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 83, 99, 97, 108, 101, 51, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 114, 101, 115, 105, 122, 101, 32, 51, 51, 37, 44, 51, 51, 37, 32, 45, 45, 115, 99, 97, 108, 101, 51, 120, 10, 115, 99, 97, 108, 101, 51, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 105, 112, 108, 101, 32, 120, 121, 45, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 83, 99, 97, 108, 101, 51, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 51, 48, 48, 37, 44, 51, 48, 48, 37, 10, 45, 102, 32, 34, 100, 120, 61, 120, 37, 51, 59, 100, 121, 61, 121, 37, 51, 59, 99, 48, 61, 33, 100, 120, 59, 99, 49, 61, 40, 100, 120, 61, 61, 49, 41, 59, 99, 50, 61, 40, 100, 120, 61, 61, 50, 41, 59, 34, 92, 10, 34, 65, 61, 106, 40, 45, 51, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 106, 40, 48, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 67, 61, 106, 40, 51, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 68, 61, 106, 40, 45, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 70, 61, 106, 40, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 71, 61, 106, 40, 45, 51, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 72, 61, 106, 40, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 73, 61, 106, 40, 51, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 33, 100, 121, 42, 40, 99, 48, 42, 105, 102, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 102, 40, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 38, 38, 105, 33, 61, 67, 41, 124, 124, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 38, 38, 105, 33, 61, 65, 41, 44, 66, 44, 105, 41, 32, 43, 32, 99, 50, 42, 105, 102, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 44, 70, 44, 105, 41, 41, 32, 43, 32, 34, 92, 10, 34, 40, 100, 121, 61, 61, 49, 41, 42, 40, 99, 48, 42, 105, 102, 40, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 38, 38, 105, 33, 61, 65, 41, 124, 124, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 38, 38, 105, 33, 61, 71, 41, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 32, 43, 32, 99, 50, 42, 105, 102, 40, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 38, 38, 105, 33, 61, 73, 41, 124, 124, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 38, 38, 105, 33, 61, 67, 41, 44, 70, 44, 105, 41, 41, 32, 43, 32, 34, 92, 10, 34, 40, 100, 121, 61, 61, 50, 41, 42, 40, 99, 48, 42, 105, 102, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 102, 40, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 38, 38, 105, 33, 61, 71, 41, 124, 124, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 38, 38, 105, 33, 61, 73, 41, 44, 72, 44, 105, 41, 32, 43, 32, 99, 50, 42, 105, 102, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 44, 70, 44, 105, 41, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 105, 102, 116, 32, 58, 32, 118, 120, 91, 37, 93, 44, 95, 118, 121, 91, 37, 93, 44, 95, 118, 122, 91, 37, 93, 44, 95, 118, 99, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 105, 102, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 118, 101, 99, 116, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 48, 32, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 49, 32, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 114, 105, 110, 107, 95, 120, 32, 58, 32, 115, 105, 122, 101, 95, 120, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 114, 105, 110, 107, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 32, 51, 48, 10, 115, 104, 114, 105, 110, 107, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 114, 105, 110, 107, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 51, 48, 10, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 114, 105, 110, 107, 95, 120, 121, 122, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 114, 105, 110, 107, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 46, 10, 115, 104, 114, 105, 110, 107, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 36, 49, 44, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 100, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 114, 105, 110, 107, 95, 121, 32, 58, 32, 115, 105, 122, 101, 95, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 114, 105, 110, 107, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 104, 114, 105, 110, 107, 95, 121, 32, 51, 48, 10, 115, 104, 114, 105, 110, 107, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 48, 44, 36, 49, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 114, 105, 110, 107, 95, 122, 32, 58, 32, 115, 105, 122, 101, 95, 122, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 114, 105, 110, 107, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 46, 10, 115, 104, 114, 105, 110, 107, 95, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 100, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 108, 105, 99, 101, 115, 32, 58, 32, 123, 32, 91, 105, 109, 97, 103, 101, 48, 93, 32, 124, 32, 122, 48, 91, 37, 93, 32, 125, 44, 95, 123, 32, 91, 105, 109, 97, 103, 101, 49, 93, 32, 124, 32, 122, 49, 91, 37, 93, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 75, 101, 101, 112, 32, 111, 110, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 108, 105, 99, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 114, 105, 99, 104, 108, 101, 116, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 105, 115, 32, 117, 115, 101, 100, 32, 119, 104, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 108, 105, 99, 101, 115, 32, 97, 114, 101, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 114, 116, 32, 58, 32, 95, 111, 114, 100, 101, 114, 105, 110, 103, 61, 123, 32, 43, 32, 124, 32, 45, 32, 125, 44, 95, 97, 120, 105, 115, 61, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 114, 116, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 97, 120, 105, 115, 39, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 115, 111, 114, 116, 105, 110, 103, 32, 105, 115, 32, 100, 111, 110, 101, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 100, 97, 116, 97, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 99, 111, 108, 117, 109, 110, 47, 114, 111, 119, 47, 115, 108, 105, 99, 101, 47, 99, 104, 97, 110, 110, 101, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 114, 100, 101, 114, 105, 110, 103, 61, 43, 39, 32, 97, 110, 100, 32, 39, 97, 120, 105, 115, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 54, 52, 32, 45, 114, 97, 110, 100, 32, 48, 44, 49, 48, 48, 32, 45, 45, 115, 111, 114, 116, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 35, 64, 103, 109, 105, 99, 32, 115, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 112, 108, 105, 116, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 116, 32, 58, 32, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 46, 46, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 44, 95, 110, 98, 95, 112, 97, 114, 116, 115, 32, 58, 32, 107, 101, 101, 112, 95, 115, 112, 108, 105, 116, 116, 105, 110, 103, 95, 118, 97, 108, 117, 101, 115, 61, 123, 32, 43, 32, 124, 32, 45, 32, 125, 44, 118, 97, 108, 117, 101, 49, 44, 118, 97, 108, 117, 101, 50, 44, 46, 46, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 108, 105, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 44, 32, 111, 114, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 115, 99, 97, 108, 97, 114, 32, 118, 97, 108, 117, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 98, 95, 112, 97, 114, 116, 115, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 109, 97, 120, 105, 109, 117, 109, 32, 115, 112, 108, 105, 116, 32, 124, 32, 62, 48, 61, 115, 112, 108, 105, 116, 32, 105, 110, 32, 78, 32, 112, 97, 114, 116, 115, 32, 124, 32, 60, 48, 61, 115, 112, 108, 105, 116, 32, 105, 110, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 115, 105, 122, 101, 32, 45, 78, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 98, 95, 112, 97, 114, 116, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 121, 44, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 120, 44, 45, 49, 50, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 44, 50, 48, 44, 49, 44, 49, 44, 34, 49, 44, 50, 44, 51, 44, 52, 34, 32, 45, 45, 115, 112, 108, 105, 116, 32, 45, 44, 50, 44, 51, 32, 45, 97, 112, 112, 101, 110, 100, 91, 49, 45, 45, 49, 93, 32, 121, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 77, 33, 61, 48, 44, 95, 78, 33, 61, 48, 44, 95, 105, 115, 95, 104, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 108, 105, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 97, 32, 77, 120, 78, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 77, 32, 111, 114, 32, 78, 32, 105, 115, 32, 110, 101, 103, 97, 116, 105, 118, 101, 44, 32, 105, 116, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 116, 105, 108, 101, 32, 115, 105, 122, 101, 32, 105, 110, 115, 116, 101, 97, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 78, 61, 77, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 104, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 111, 99, 97, 108, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 53, 44, 52, 32, 45, 98, 108, 117, 114, 32, 51, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 55, 48, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 52, 44, 53, 32, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 104, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 32, 116, 105, 108, 101, 115, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 121, 44, 36, 50, 32, 45, 115, 32, 120, 44, 36, 49, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 121, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 117, 110, 114, 111, 108, 108, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 117, 110, 114, 111, 108, 108, 32, 58, 32, 97, 120, 105, 115, 61, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 110, 114, 111, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 121, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 44, 50, 44, 51, 59, 52, 44, 53, 44, 54, 59, 55, 44, 56, 44, 57, 41, 32, 45, 45, 117, 110, 114, 111, 108, 108, 32, 121, 10, 35, 64, 103, 109, 105, 99, 32, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 58, 32, 119, 105, 100, 116, 104, 44, 95, 104, 101, 105, 103, 104, 116, 44, 95, 100, 101, 112, 116, 104, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 91, 48, 44, 49, 93, 44, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 112, 115, 99, 97, 108, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 97, 110, 32, 101, 100, 103, 101, 45, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 104, 101, 105, 103, 104, 116, 61, 49, 48, 48, 37, 39, 44, 32, 39, 100, 101, 112, 116, 104, 61, 49, 48, 48, 37, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 50, 39, 44, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 48, 46, 52, 39, 32, 97, 110, 100, 32, 39, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 49, 48, 48, 32, 45, 45, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 53, 48, 48, 37, 44, 53, 48, 48, 37, 32, 45, 97, 112, 112, 101, 110, 100, 32, 120, 10, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 48, 48, 37, 125, 44, 36, 123, 51, 61, 49, 48, 48, 37, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 52, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 49, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 85, 112, 115, 99, 97, 108, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 36, 49, 120, 36, 50, 120, 36, 51, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 53, 32, 97, 110, 100, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 119, 60, 36, 119, 34, 32, 38, 38, 32, 34, 104, 60, 36, 104, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 48, 44, 36, 53, 44, 49, 46, 50, 44, 49, 46, 50, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 48, 48, 37, 44, 53, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 54, 44, 49, 48, 34, 44, 51, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 114, 112, 32, 58, 32, 91, 119, 97, 114, 112, 105, 110, 103, 95, 102, 105, 101, 108, 100, 93, 44, 95, 105, 115, 95, 114, 101, 108, 97, 116, 105, 118, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 97, 114, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 102, 105, 101, 108, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 45, 110, 101, 105, 103, 104, 98, 111, 114, 32, 124, 32, 49, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 50, 61, 99, 117, 98, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 115, 95, 114, 101, 108, 97, 116, 105, 118, 101, 61, 48, 39, 44, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 49, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 102, 114, 97, 109, 101, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 39, 88, 61, 120, 47, 119, 45, 48, 46, 53, 59, 89, 61, 121, 47, 104, 45, 48, 46, 53, 59, 82, 61, 40, 88, 42, 88, 43, 89, 42, 89, 41, 94, 48, 46, 53, 59, 65, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 49, 51, 48, 42, 82, 42, 105, 102, 40, 99, 61, 61, 48, 44, 99, 111, 115, 40, 52, 42, 65, 41, 44, 115, 105, 110, 40, 56, 42, 65, 41, 41, 39, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 48, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 49, 93, 32, 91, 45, 49, 93, 44, 49, 48, 44, 48, 46, 50, 44, 49, 44, 49, 44, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 70, 105, 108, 116, 101, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 58, 32, 95, 109, 105, 110, 95, 102, 114, 101, 113, 91, 37, 93, 44, 95, 109, 97, 120, 95, 102, 114, 101, 113, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 102, 105, 108, 116, 101, 114, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 105, 110, 95, 102, 114, 101, 113, 61, 48, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 95, 102, 114, 101, 113, 61, 50, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 97, 110, 100, 112, 97, 115, 115, 32, 49, 37, 44, 51, 37, 10, 98, 97, 110, 100, 112, 97, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 50, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 102, 105, 108, 116, 101, 114, 32, 91, 36, 49, 44, 36, 50, 93, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 34, 115, 113, 114, 116, 40, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 50, 32, 43, 32, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 50, 32, 43, 32, 40, 122, 47, 100, 45, 48, 46, 53, 41, 94, 50, 41, 34, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 53, 48, 37, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 58, 32, 91, 103, 117, 105, 100, 101, 93, 44, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 115, 62, 48, 91, 37, 93, 44, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 114, 62, 48, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 115, 62, 48, 91, 37, 93, 44, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 114, 62, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 40, 101, 118, 101, 110, 116, 117, 97, 108, 108, 121, 32, 106, 111, 105, 110, 116, 47, 99, 114, 111, 115, 115, 41, 32, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 97, 32, 103, 117, 105, 100, 101, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 112, 114, 111, 118, 105, 100, 101, 100, 44, 32, 105, 116, 32, 105, 115, 32, 117, 115, 101, 100, 32, 102, 111, 114, 32, 99, 111, 109, 112, 117, 116, 105, 110, 103, 32, 116, 104, 101, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 103, 101, 111, 109, 101, 116, 114, 121, 32, 105, 110, 32, 116, 104, 101, 32, 99, 114, 111, 115, 115, 32, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 32, 103, 117, 105, 100, 101, 32, 105, 109, 97, 103, 101, 32, 109, 117, 115, 116, 32, 98, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 120, 121, 122, 45, 115, 105, 122, 101, 32, 97, 115, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 98, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 108, 117, 114, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 62, 61, 48, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 44, 95, 107, 101, 114, 110, 101, 108, 61, 123, 32, 48, 61, 113, 117, 97, 115, 105, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 40, 102, 97, 115, 116, 101, 114, 41, 32, 124, 32, 49, 61, 103, 97, 117, 115, 115, 105, 97, 110, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 97, 32, 113, 117, 97, 115, 105, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 114, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 102, 105, 108, 116, 101, 114, 32, 40, 114, 101, 99, 117, 114, 115, 105, 118, 101, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 107, 101, 114, 110, 101, 108, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 53, 44, 48, 32, 45, 45, 98, 108, 117, 114, 91, 48, 93, 32, 53, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 44, 95, 99, 120, 44, 95, 99, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 97, 110, 103, 117, 108, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 50, 37, 10, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 97, 110, 103, 117, 108, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 49, 46, 51, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 121, 32, 49, 54, 44, 50, 32, 45, 98, 108, 117, 114, 95, 121, 32, 36, 49, 32, 45, 115, 104, 114, 105, 110, 107, 95, 121, 32, 49, 54, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 49, 46, 51, 44, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 49, 91, 37, 93, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 50, 91, 37, 93, 44, 95, 97, 110, 103, 108, 101, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 108, 105, 110, 101, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 110, 103, 108, 101, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 50, 61, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 49, 48, 44, 48, 44, 52, 53, 10, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 108, 105, 110, 101, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 10, 115, 116, 100, 49, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 49, 41, 125, 10, 115, 116, 100, 50, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 50, 41, 125, 10, 115, 116, 100, 77, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 50, 53, 42, 109, 97, 120, 40, 36, 115, 116, 100, 49, 44, 36, 115, 116, 100, 50, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 116, 100, 77, 60, 61, 48, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 36, 115, 116, 100, 77, 44, 123, 36, 52, 33, 61, 48, 125, 10, 123, 50, 42, 36, 115, 116, 100, 77, 125, 44, 123, 50, 42, 36, 115, 116, 100, 77, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 36, 115, 116, 100, 77, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 44, 95, 99, 120, 44, 95, 99, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 97, 100, 105, 97, 108, 32, 98, 108, 117, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 50, 37, 10, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 100, 105, 97, 108, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 53, 44, 49, 32, 45, 98, 108, 117, 114, 95, 120, 32, 36, 49, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 53, 44, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 58, 32, 115, 105, 103, 109, 97, 62, 61, 48, 44, 95, 101, 100, 103, 101, 115, 62, 48, 44, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 115, 99, 97, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 103, 109, 97, 61, 53, 39, 44, 32, 39, 101, 100, 103, 101, 115, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 111, 105, 115, 101, 32, 50, 48, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 32, 45, 45, 108, 91, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 44, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 10, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 53, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 36, 51, 32, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 115, 99, 97, 108, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 101, 100, 103, 101, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 45, 109, 97, 120, 40, 48, 46, 48, 49, 44, 36, 50, 41, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 51, 43, 49, 125, 44, 48, 44, 49, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 123, 36, 51, 45, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 45, 61, 61, 91, 45, 49, 93, 32, 123, 36, 62, 47, 49, 48, 48, 125, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 93, 32, 123, 36, 49, 47, 40, 36, 51, 43, 49, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 120, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 120, 32, 54, 10, 98, 108, 117, 114, 95, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 120, 121, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 120, 91, 37, 93, 44, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 121, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 88, 32, 97, 110, 100, 32, 89, 32, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 120, 121, 32, 54, 10, 98, 108, 117, 114, 95, 120, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 51, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 50, 44, 48, 44, 121, 44, 36, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 120, 121, 122, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 120, 91, 37, 93, 44, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 121, 91, 37, 93, 44, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 122, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 88, 44, 32, 89, 32, 97, 110, 100, 32, 90, 32, 97, 120, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 98, 108, 117, 114, 95, 120, 121, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 52, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 50, 44, 48, 44, 121, 44, 36, 52, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 51, 44, 48, 44, 122, 44, 36, 52, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 121, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 95, 121, 32, 54, 10, 98, 108, 117, 114, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 121, 44, 36, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 117, 114, 95, 122, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 98, 108, 117, 114, 95, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 122, 44, 36, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 111, 107, 101, 104, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 48, 60, 61, 95, 100, 101, 110, 115, 105, 116, 121, 60, 61, 49, 48, 48, 44, 95, 98, 111, 107, 101, 104, 95, 115, 105, 122, 101, 62, 48, 44, 48, 60, 61, 95, 98, 111, 107, 101, 104, 95, 111, 117, 116, 108, 105, 110, 101, 95, 115, 105, 122, 101, 60, 61, 49, 48, 48, 44, 95, 98, 111, 107, 101, 104, 95, 111, 117, 116, 108, 105, 110, 101, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 98, 111, 107, 101, 104, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 66, 111, 107, 101, 104, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 50, 48, 48, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 50, 39, 44, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 50, 39, 44, 32, 39, 98, 111, 107, 101, 104, 95, 115, 105, 122, 101, 61, 50, 52, 39, 44, 32, 39, 98, 111, 107, 101, 104, 95, 111, 117, 116, 108, 105, 110, 101, 95, 115, 105, 122, 101, 61, 49, 48, 39, 44, 32, 39, 98, 111, 107, 101, 104, 95, 111, 117, 116, 108, 105, 110, 101, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 111, 107, 101, 104, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 111, 107, 101, 104, 32, 44, 10, 98, 111, 107, 101, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 54, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 48, 46, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 111, 107, 101, 104, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 51, 37, 44, 32, 98, 111, 107, 101, 104, 32, 115, 105, 122, 101, 32, 36, 52, 44, 32, 98, 111, 107, 101, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 115, 105, 122, 101, 32, 36, 53, 32, 34, 92, 10, 34, 98, 111, 107, 101, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 54, 32, 97, 110, 100, 32, 98, 111, 107, 101, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 10, 50, 53, 54, 44, 50, 53, 54, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 45, 45, 108, 116, 91, 45, 49, 93, 32, 55, 48, 37, 32, 45, 116, 50, 91, 45, 50, 93, 32, 55, 48, 37, 44, 123, 55, 48, 45, 36, 53, 42, 55, 48, 47, 49, 48, 48, 125, 37, 32, 45, 42, 91, 45, 50, 93, 32, 36, 54, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 52, 44, 36, 52, 44, 49, 44, 49, 44, 50, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 123, 51, 42, 36, 55, 125, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 55, 44, 48, 32, 45, 45, 103, 116, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 48, 93, 32, 123, 49, 48, 48, 45, 36, 51, 125, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 49, 10, 45, 98, 91, 48, 93, 32, 36, 50, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 111, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 115, 32, 105, 110, 116, 111, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 50, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 10, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 36, 63, 32, 105, 110, 116, 111, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 43, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 110, 118, 111, 108, 118, 101, 32, 58, 32, 91, 109, 97, 115, 107, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 111, 108, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 97, 115, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 45, 52, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 107, 101, 101, 112, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 48, 44, 49, 44, 48, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 51, 48, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 111, 108, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 50, 48, 44, 49, 44, 52, 53, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 10, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 111, 108, 118, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 119, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 119, 125, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 104, 125, 47, 50, 41, 125, 32, 100, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 100, 125, 47, 50, 41, 125, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 45, 36, 100, 50, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 102, 102, 116, 91, 50, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 114, 114, 101, 108, 97, 116, 101, 32, 58, 32, 91, 109, 97, 115, 107, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 114, 114, 101, 108, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 97, 115, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 45, 52, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 107, 101, 101, 112, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 114, 111, 112, 32, 52, 48, 37, 44, 52, 48, 37, 44, 54, 48, 37, 44, 54, 48, 37, 32, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 32, 45, 51, 48, 44, 45, 50, 48, 32, 45, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 110, 111, 114, 109, 32, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 102, 102, 116, 91, 45, 49, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 54, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 105, 115, 111, 112, 104, 111, 116, 101, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 49, 48, 32, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 10, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 115, 111, 112, 104, 111, 116, 101, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 45, 50, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 94, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 105, 110, 110, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 50, 93, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 51, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 105, 110, 110, 91, 45, 49, 93, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 98, 108, 117, 114, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 91, 37, 93, 62, 61, 48, 44, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 95, 100, 116, 62, 61, 48, 44, 95, 114, 101, 103, 117, 108, 62, 61, 48, 44, 95, 114, 101, 103, 117, 108, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 84, 105, 107, 104, 111, 110, 111, 118, 32, 124, 32, 49, 61, 109, 101, 97, 110, 99, 117, 114, 118, 46, 32, 124, 32, 50, 61, 84, 86, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 32, 117, 115, 105, 110, 103, 32, 97, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 101, 100, 32, 74, 97, 110, 115, 115, 111, 110, 45, 86, 97, 110, 32, 67, 105, 116, 116, 101, 114, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 49, 48, 39, 44, 32, 39, 100, 116, 61, 50, 48, 39, 44, 32, 39, 114, 101, 103, 117, 108, 61, 48, 46, 55, 39, 32, 97, 110, 100, 32, 39, 114, 101, 103, 117, 108, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 32, 45, 45, 100, 101, 98, 108, 117, 114, 32, 51, 44, 52, 48, 44, 50, 48, 44, 48, 46, 48, 49, 10, 100, 101, 98, 108, 117, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 55, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 101, 100, 32, 74, 97, 110, 115, 115, 111, 110, 45, 86, 97, 110, 32, 67, 105, 116, 116, 101, 114, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 51, 32, 97, 110, 100, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 97, 116, 105, 111, 110, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 53, 62, 61, 50, 125, 32, 45, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 62, 61, 49, 125, 32, 45, 45, 105, 101, 101, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 52, 10, 45, 45, 98, 91, 45, 50, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 51, 47, 40, 48, 46, 48, 48, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 41, 125, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 58, 32, 115, 105, 103, 109, 97, 62, 61, 48, 44, 32, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 32, 95, 97, 99, 99, 101, 108, 101, 114, 97, 116, 105, 111, 110, 62, 61, 48, 44, 32, 95, 107, 101, 114, 110, 101, 108, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 113, 117, 97, 115, 105, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 40, 102, 97, 115, 116, 101, 114, 41, 32, 124, 32, 49, 61, 103, 97, 117, 115, 115, 105, 97, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 98, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 71, 111, 108, 100, 45, 77, 101, 105, 110, 101, 108, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 56, 39, 44, 32, 39, 97, 99, 99, 101, 108, 101, 114, 97, 116, 105, 111, 110, 61, 49, 39, 32, 97, 110, 100, 32, 39, 107, 101, 114, 110, 101, 108, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 49, 32, 45, 45, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 91, 45, 49, 93, 32, 49, 10, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 71, 111, 108, 100, 45, 77, 101, 105, 110, 101, 108, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 97, 99, 99, 101, 108, 101, 114, 97, 116, 105, 111, 110, 32, 36, 51, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 52, 44, 34, 34, 44, 113, 117, 97, 115, 105, 45, 125, 34, 103, 97, 117, 115, 115, 105, 97, 110, 32, 107, 101, 114, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 36, 52, 32, 45, 45, 47, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 94, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 58, 32, 115, 105, 103, 109, 97, 62, 61, 48, 44, 32, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 32, 95, 107, 101, 114, 110, 101, 108, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 113, 117, 97, 115, 105, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 40, 102, 97, 115, 116, 101, 114, 41, 32, 124, 32, 49, 61, 103, 97, 117, 115, 115, 105, 97, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 98, 108, 117, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 82, 105, 99, 104, 97, 114, 100, 115, 111, 110, 45, 76, 117, 99, 121, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 53, 48, 39, 32, 97, 110, 100, 32, 39, 107, 101, 114, 110, 101, 108, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 49, 32, 45, 45, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 91, 45, 49, 93, 32, 49, 10, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 82, 105, 99, 104, 97, 114, 100, 115, 111, 110, 45, 76, 117, 99, 121, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 34, 34, 44, 113, 117, 97, 115, 105, 45, 125, 34, 103, 97, 117, 115, 115, 105, 97, 110, 32, 107, 101, 114, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 123, 36, 51, 33, 61, 48, 125, 32, 45, 45, 47, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 123, 36, 51, 33, 61, 48, 125, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 99, 111, 110, 118, 111, 108, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 10, 100, 101, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 99, 111, 110, 118, 111, 108, 118, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 119, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 119, 125, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 104, 125, 47, 50, 41, 125, 32, 100, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 100, 125, 47, 50, 41, 125, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 45, 36, 100, 50, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 102, 102, 116, 91, 49, 93, 10, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 53, 10, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 54, 93, 32, 91, 45, 51, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 54, 44, 45, 52, 93, 10, 45, 42, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 51, 44, 45, 50, 93, 10, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 32, 95, 109, 101, 116, 104, 111, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 39, 109, 101, 116, 104, 111, 100, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 115, 116, 97, 110, 100, 97, 114, 100, 32, 111, 114, 32, 49, 61, 109, 111, 116, 105, 111, 110, 45, 99, 111, 109, 112, 101, 110, 115, 97, 116, 101, 100, 32, 125, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 109, 101, 116, 104, 111, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 97, 116, 101, 32, 51, 44, 49, 44, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 114, 101, 115, 105, 122, 101, 32, 49, 48, 48, 37, 44, 53, 48, 37, 32, 45, 114, 101, 115, 105, 122, 101, 32, 49, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 52, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 97, 100, 100, 32, 45, 45, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 49, 10, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 49, 44, 109, 111, 116, 105, 111, 110, 45, 99, 111, 109, 112, 101, 110, 115, 97, 116, 101, 100, 44, 115, 116, 97, 110, 100, 97, 114, 100, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 115, 32, 121, 32, 45, 97, 91, 48, 45, 45, 49, 58, 50, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 53, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 48, 125, 32, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 46, 48, 53, 32, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 32, 45, 47, 32, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 114, 32, 36, 119, 104, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 110, 111, 105, 115, 101, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 115, 62, 61, 48, 44, 95, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 112, 62, 61, 48, 44, 95, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 108, 111, 111, 107, 117, 112, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 110, 111, 105, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 110, 111, 110, 45, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 32, 97, 118, 101, 114, 97, 103, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 112, 61, 49, 48, 39, 44, 32, 39, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 61, 53, 39, 44, 32, 39, 108, 111, 111, 107, 117, 112, 95, 115, 105, 122, 101, 61, 54, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 101, 110, 111, 105, 115, 101, 32, 53, 44, 53, 44, 56, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 32, 58, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 61, 48, 44, 95, 99, 121, 99, 108, 101, 95, 115, 112, 105, 110, 110, 105, 110, 103, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 110, 111, 105, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 117, 115, 105, 110, 103, 32, 104, 97, 97, 114, 45, 119, 97, 118, 101, 108, 101, 116, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 105, 110, 103, 32, 119, 105, 116, 104, 32, 99, 121, 99, 108, 101, 32, 115, 112, 105, 110, 110, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 61, 48, 39, 32, 116, 111, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 32, 116, 104, 101, 32, 111, 112, 116, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 99, 97, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 49, 46, 52, 39, 44, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 121, 99, 108, 101, 95, 115, 112, 105, 110, 110, 105, 110, 103, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 111, 105, 115, 101, 32, 50, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 91, 45, 49, 93, 32, 48, 46, 56, 10, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 110, 111, 105, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 104, 97, 97, 114, 45, 119, 97, 118, 101, 108, 101, 116, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 105, 110, 103, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 50, 62, 48, 41, 44, 97, 117, 116, 111, 44, 36, 50, 125, 34, 32, 115, 99, 97, 108, 101, 115, 32, 97, 110, 100, 32, 36, 51, 32, 115, 112, 105, 110, 110, 105, 110, 103, 32, 99, 121, 99, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 123, 109, 105, 110, 40, 105, 102, 40, 36, 50, 44, 36, 50, 44, 51, 50, 41, 44, 105, 110, 116, 40, 108, 111, 103, 50, 40, 109, 105, 110, 40, 119, 44, 104, 41, 41, 45, 49, 41, 41, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 115, 105, 103, 109, 97, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 32, 123, 114, 111, 117, 110, 100, 40, 119, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 104, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 125, 44, 123, 105, 102, 40, 100, 61, 61, 49, 44, 49, 44, 114, 111, 117, 110, 100, 40, 100, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 41, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 10, 45, 45, 102, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 125, 10, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 125, 10, 100, 122, 61, 123, 105, 102, 40, 36, 100, 61, 61, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 41, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 36, 100, 122, 44, 48, 44, 50, 10, 45, 104, 97, 97, 114, 91, 45, 49, 93, 32, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 123, 36, 49, 42, 36, 115, 105, 103, 109, 97, 125, 44, 49, 10, 45, 105, 104, 97, 97, 114, 91, 45, 49, 93, 32, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 45, 36, 100, 120, 125, 44, 123, 45, 36, 100, 121, 125, 44, 123, 45, 36, 100, 122, 125, 44, 48, 44, 50, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 47, 32, 36, 51, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 49, 48, 48, 37, 44, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 114, 105, 99, 104, 101, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 62, 61, 48, 91, 37, 93, 44, 111, 114, 100, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 124, 32, 50, 32, 125, 44, 97, 120, 105, 115, 61, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 68, 101, 114, 105, 99, 104, 101, 32, 114, 101, 99, 117, 114, 115, 105, 118, 101, 32, 102, 105, 108, 116, 101, 114, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 44, 32, 111, 114, 100, 101, 114, 44, 32, 97, 120, 105, 115, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 101, 114, 105, 99, 104, 101, 32, 51, 44, 49, 44, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 101, 114, 105, 99, 104, 101, 32, 51, 48, 44, 48, 44, 120, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 50, 93, 32, 51, 48, 44, 48, 44, 121, 32, 45, 97, 100, 100, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 108, 97, 116, 101, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 32, 58, 32, 115, 105, 122, 101, 95, 120, 62, 61, 48, 44, 115, 105, 122, 101, 95, 121, 62, 61, 48, 44, 115, 105, 122, 101, 95, 122, 62, 61, 48, 32, 58, 32, 91, 109, 97, 115, 107, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 108, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 117, 108, 97, 114, 32, 111, 114, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 117, 99, 116, 117, 114, 105, 110, 103, 32, 101, 108, 101, 109, 101, 110, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 122, 61, 49, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 105, 108, 97, 116, 101, 32, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 58, 32, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 55, 10, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 91, 93, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 32, 58, 32, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 32, 55, 10, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 38, 49, 125, 32, 115, 115, 61, 123, 36, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 115, 61, 123, 36, 49, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 105, 91, 49, 93, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 42, 115, 113, 114, 116, 40, 50, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 113, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 114, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 114, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 113, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 113, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 95, 107, 114, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 37, 50, 61, 61, 48, 125, 32, 45, 105, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 36, 49, 47, 50, 125, 10, 95, 106, 102, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 99, 101, 110, 116, 101, 114, 61, 123, 48, 46, 53, 42, 40, 119, 45, 49, 41, 125, 10, 45, 102, 91, 45, 49, 93, 32, 39, 115, 113, 114, 116, 40, 40, 120, 45, 36, 99, 101, 110, 116, 101, 114, 41, 94, 50, 43, 40, 121, 45, 36, 99, 101, 110, 116, 101, 114, 41, 94, 50, 41, 39, 10, 45, 105, 102, 32, 123, 33, 40, 119, 37, 50, 41, 125, 10, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 48, 46, 48, 48, 48, 49, 44, 45, 49, 10, 116, 49, 61, 123, 115, 113, 114, 116, 40, 40, 40, 114, 111, 117, 110, 100, 40, 36, 49, 41, 45, 49, 41, 47, 50, 41, 94, 50, 43, 48, 46, 50, 53, 41, 125, 10, 116, 50, 61, 123, 115, 113, 114, 116, 40, 40, 40, 114, 111, 117, 110, 100, 40, 36, 49, 41, 43, 49, 41, 47, 50, 41, 94, 50, 43, 48, 46, 50, 53, 41, 125, 10, 107, 61, 123, 36, 49, 45, 114, 111, 117, 110, 100, 40, 36, 49, 41, 43, 48, 46, 53, 125, 10, 116, 61, 123, 36, 116, 49, 43, 40, 36, 116, 50, 45, 36, 116, 49, 41, 42, 36, 107, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 36, 116, 10, 45, 101, 108, 115, 101, 32, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 36, 49, 47, 50, 45, 48, 46, 50, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 105, 114, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 114, 60, 50, 125, 32, 36, 105, 114, 44, 36, 105, 114, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 115, 101, 10, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 44, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 40, 105, 43, 48, 46, 52, 41, 47, 115, 113, 114, 116, 40, 50, 41, 125, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 116, 95, 100, 105, 97, 109, 111, 110, 100, 32, 58, 10, 105, 114, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 114, 60, 50, 125, 32, 36, 105, 114, 44, 36, 105, 114, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 115, 101, 10, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 44, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 105, 47, 50, 125, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 91, 45, 49, 93, 10, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 103, 32, 120, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 50, 93, 32, 120, 44, 48, 32, 45, 103, 91, 45, 49, 93, 32, 121, 44, 48, 32, 45, 43, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 51, 93, 32, 120, 44, 48, 32, 45, 103, 91, 45, 50, 93, 32, 121, 44, 48, 32, 45, 103, 91, 45, 49, 93, 32, 122, 44, 48, 32, 45, 43, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 67, 97, 110, 110, 111, 116, 32, 99, 111, 109, 112, 117, 116, 101, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 40, 104, 97, 115, 32, 34, 123, 115, 125, 34, 62, 51, 32, 99, 104, 97, 110, 110, 101, 108, 115, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 103, 32, 58, 32, 95, 115, 105, 103, 109, 97, 49, 62, 61, 48, 91, 37, 93, 44, 95, 115, 105, 103, 109, 97, 50, 62, 61, 48, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 103, 109, 97, 49, 61, 50, 37, 39, 32, 97, 110, 100, 32, 39, 115, 105, 103, 109, 97, 50, 61, 51, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 111, 103, 32, 50, 44, 51, 10, 100, 111, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 37, 125, 44, 36, 123, 50, 61, 51, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 98, 91, 48, 93, 32, 36, 49, 34, 44, 34, 45, 98, 91, 49, 93, 32, 36, 50, 34, 32, 45, 45, 32, 45, 110, 111, 114, 109, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 48, 60, 61, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 60, 61, 49, 44, 95, 97, 108, 112, 104, 97, 91, 37, 93, 44, 95, 115, 105, 103, 109, 97, 91, 37, 93, 44, 105, 115, 95, 115, 113, 114, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 102, 111, 114, 32, 101, 100, 103, 101, 45, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 46, 55, 39, 44, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 48, 46, 51, 39, 44, 32, 39, 97, 108, 112, 104, 97, 61, 48, 46, 54, 39, 44, 32, 39, 115, 105, 103, 109, 97, 61, 49, 46, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 115, 113, 114, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 48, 46, 56, 32, 45, 97, 98, 115, 32, 45, 112, 111, 119, 32, 48, 46, 50, 10, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 46, 54, 125, 44, 36, 123, 52, 61, 49, 46, 49, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 50, 44, 32, 97, 108, 112, 104, 97, 32, 36, 51, 32, 97, 110, 100, 32, 115, 105, 103, 109, 97, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 112, 49, 61, 123, 105, 102, 40, 36, 53, 44, 48, 46, 53, 44, 49, 41, 42, 109, 97, 120, 40, 36, 49, 44, 49, 101, 45, 53, 41, 125, 10, 112, 50, 61, 123, 36, 112, 49, 47, 40, 49, 101, 45, 55, 43, 49, 45, 36, 50, 41, 125, 10, 45, 98, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 50, 32, 45, 98, 32, 36, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 105, 103, 101, 110, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 48, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 45, 94, 91, 45, 50, 93, 32, 45, 36, 112, 49, 32, 45, 94, 91, 45, 51, 93, 32, 45, 36, 112, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 43, 91, 45, 52, 45, 45, 50, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 45, 94, 91, 45, 50, 93, 32, 45, 36, 112, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 94, 91, 45, 51, 93, 32, 45, 36, 112, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 105, 103, 101, 110, 50, 116, 101, 110, 115, 111, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 100, 103, 101, 115, 32, 58, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 115, 116, 105, 109, 97, 116, 101, 32, 99, 111, 110, 116, 111, 117, 114, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 101, 100, 103, 101, 115, 61, 49, 53, 37, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 100, 103, 101, 115, 32, 49, 53, 37, 10, 101, 100, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 53, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 99, 111, 110, 116, 111, 117, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 32, 48, 46, 53, 32, 45, 103, 101, 32, 36, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 99, 32, 51, 48, 37, 44, 55, 48, 37, 32, 45, 110, 32, 48, 44, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 105, 107, 111, 110, 97, 108, 32, 58, 32, 110, 98, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 61, 48, 44, 95, 98, 97, 110, 100, 95, 115, 105, 122, 101, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 101, 105, 107, 111, 110, 97, 108, 32, 101, 113, 117, 97, 116, 105, 111, 110, 32, 40, 115, 105, 103, 110, 101, 100, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 41, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 39, 98, 97, 110, 100, 95, 115, 105, 122, 101, 61, 61, 48, 39, 44, 32, 116, 104, 101, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 32, 112, 101, 114, 102, 111, 114, 109, 115, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 97, 110, 100, 95, 115, 105, 122, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 101, 105, 107, 111, 110, 97, 108, 32, 52, 48, 10, 35, 64, 103, 109, 105, 99, 32, 101, 114, 111, 100, 101, 32, 58, 32, 115, 105, 122, 101, 62, 61, 48, 32, 58, 32, 115, 105, 122, 101, 95, 120, 62, 61, 48, 44, 115, 105, 122, 101, 95, 121, 62, 61, 48, 44, 95, 115, 105, 122, 101, 95, 122, 62, 61, 48, 32, 58, 32, 91, 109, 97, 115, 107, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 114, 111, 100, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 117, 108, 97, 114, 32, 111, 114, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 117, 99, 116, 117, 114, 105, 110, 103, 32, 101, 108, 101, 109, 101, 110, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 122, 61, 49, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 114, 111, 100, 101, 32, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 32, 58, 32, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 32, 55, 10, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 91, 93, 32, 36, 49, 32, 45, 101, 114, 111, 100, 101, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 58, 32, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 55, 10, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 38, 49, 125, 32, 115, 115, 61, 123, 36, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 115, 61, 123, 36, 49, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 105, 91, 49, 93, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 42, 115, 113, 114, 116, 40, 50, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 113, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 114, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 114, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 113, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 113, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 91, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 102, 116, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 100, 105, 114, 101, 99, 116, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 40, 114, 101, 97, 108, 32, 97, 110, 100, 32, 105, 109, 97, 103, 105, 110, 97, 114, 121, 32, 112, 97, 114, 116, 115, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 102, 102, 116, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 108, 111, 103, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 102, 116, 32, 45, 115, 104, 105, 102, 116, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 51, 48, 44, 51, 48, 44, 48, 44, 49, 44, 48, 32, 45, 115, 104, 105, 102, 116, 32, 45, 53, 48, 37, 44, 45, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 105, 102, 102, 116, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 103, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 103, 114, 97, 100, 105, 101, 110, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 32, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 125, 46, 46, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 125, 44, 95, 115, 99, 104, 101, 109, 101, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 40, 102, 105, 114, 115, 116, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 115, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 103, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 115, 99, 104, 101, 109, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 98, 97, 99, 107, 119, 97, 114, 100, 32, 124, 32, 48, 61, 99, 101, 110, 116, 101, 114, 101, 100, 32, 124, 32, 49, 61, 102, 111, 114, 119, 97, 114, 100, 32, 124, 32, 50, 61, 115, 111, 98, 101, 108, 32, 124, 32, 51, 61, 114, 111, 116, 97, 116, 105, 111, 110, 45, 105, 110, 118, 97, 114, 105, 97, 110, 116, 32, 40, 100, 101, 102, 97, 117, 108, 116, 41, 32, 124, 32, 52, 61, 100, 101, 114, 105, 99, 104, 101, 32, 124, 32, 53, 61, 118, 97, 110, 118, 108, 105, 101, 116, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 99, 111, 109, 112, 117, 116, 101, 32, 97, 108, 108, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 50, 100, 47, 51, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 99, 104, 101, 109, 101, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 95, 100, 105, 109, 101, 110, 115, 105, 111, 110, 61, 123, 49, 44, 50, 44, 51, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 78, 45, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 100, 105, 109, 101, 110, 115, 105, 111, 110, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 10, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 61, 61, 49, 32, 124, 124, 32, 36, 49, 61, 61, 50, 32, 124, 124, 32, 36, 49, 61, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 36, 49, 45, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 32, 120, 32, 45, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 32, 120, 121, 32, 45, 45, 115, 113, 114, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 103, 32, 120, 121, 122, 32, 45, 45, 115, 113, 114, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 47, 91, 45, 52, 44, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 32, 120, 32, 45, 115, 113, 114, 91, 45, 49, 93, 10, 45, 45, 103, 91, 45, 50, 93, 32, 121, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 91, 45, 50, 93, 32, 122, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 115, 61, 123, 115, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 36, 115, 45, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 97, 97, 114, 32, 58, 32, 115, 99, 97, 108, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 100, 105, 114, 101, 99, 116, 32, 104, 97, 97, 114, 32, 109, 117, 108, 116, 105, 115, 99, 97, 108, 101, 32, 119, 97, 118, 101, 108, 101, 116, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 104, 97, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 104, 97, 97, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 119, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 119, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 104, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 100, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 45, 45, 122, 32, 48, 44, 48, 44, 48, 44, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 95, 104, 97, 97, 114, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 104, 97, 97, 114, 32, 58, 10, 45, 95, 104, 97, 97, 114, 95, 120, 32, 45, 95, 104, 97, 97, 114, 95, 121, 32, 45, 95, 104, 97, 97, 114, 95, 122, 10, 95, 104, 97, 97, 114, 95, 120, 32, 58, 10, 45, 105, 102, 32, 123, 119, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 61, 34, 123, 119, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 45, 49, 32, 45, 114, 32, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 120, 10, 95, 104, 97, 97, 114, 95, 121, 32, 58, 10, 45, 105, 102, 32, 123, 104, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 48, 44, 45, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 121, 10, 95, 104, 97, 97, 114, 95, 122, 32, 58, 10, 45, 105, 102, 32, 123, 100, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 48, 44, 48, 44, 45, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 122, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 97, 116, 95, 102, 108, 111, 119, 32, 58, 32, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 95, 100, 116, 44, 95, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 104, 101, 97, 116, 32, 102, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 49, 48, 39, 44, 32, 39, 100, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 101, 97, 116, 95, 102, 108, 111, 119, 32, 50, 48, 10, 104, 101, 97, 116, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 104, 101, 97, 116, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 108, 97, 112, 108, 97, 99, 105, 97, 110, 44, 36, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 115, 115, 105, 97, 110, 32, 58, 32, 123, 32, 120, 120, 32, 124, 32, 120, 121, 32, 124, 32, 120, 122, 32, 124, 32, 121, 121, 32, 124, 32, 121, 122, 32, 124, 32, 122, 122, 32, 125, 46, 46, 123, 32, 120, 120, 32, 124, 32, 120, 121, 32, 124, 32, 120, 122, 32, 124, 32, 121, 121, 32, 124, 32, 121, 122, 32, 124, 32, 122, 122, 32, 125, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 104, 101, 115, 115, 105, 97, 110, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 40, 115, 101, 99, 111, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 115, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 99, 111, 109, 112, 117, 116, 101, 32, 97, 108, 108, 32, 115, 105, 103, 110, 105, 102, 105, 99, 97, 110, 116, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 104, 101, 115, 115, 105, 97, 110, 10, 35, 64, 103, 109, 105, 99, 32, 105, 101, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 111, 114, 116, 104, 111, 103, 111, 110, 97, 108, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 40, 115, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 101, 101, 10, 105, 101, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 111, 114, 116, 104, 111, 103, 111, 110, 97, 108, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 45, 50, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 105, 110, 110, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 102, 102, 116, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 40, 114, 101, 97, 108, 32, 97, 110, 100, 32, 105, 109, 97, 103, 105, 110, 97, 114, 121, 32, 112, 97, 114, 116, 115, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 105, 104, 97, 97, 114, 32, 58, 32, 115, 99, 97, 108, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 104, 97, 97, 114, 32, 109, 117, 108, 116, 105, 115, 99, 97, 108, 101, 32, 119, 97, 118, 101, 108, 101, 116, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 105, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 104, 97, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 119, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 119, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 104, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 100, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 45, 45, 122, 32, 48, 44, 48, 44, 48, 44, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 95, 105, 104, 97, 97, 114, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 95, 105, 104, 97, 97, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 105, 104, 97, 97, 114, 32, 58, 10, 45, 95, 105, 104, 97, 97, 114, 95, 120, 32, 45, 95, 105, 104, 97, 97, 114, 95, 121, 32, 45, 95, 105, 104, 97, 97, 114, 95, 122, 10, 95, 105, 104, 97, 97, 114, 95, 120, 32, 58, 10, 45, 105, 102, 32, 123, 119, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 61, 34, 123, 119, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 120, 44, 50, 32, 45, 114, 32, 50, 48, 48, 37, 32, 40, 45, 49, 44, 49, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 95, 105, 104, 97, 97, 114, 95, 121, 32, 58, 10, 45, 105, 102, 32, 123, 104, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 121, 44, 50, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 48, 48, 37, 32, 40, 45, 49, 59, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 95, 105, 104, 97, 97, 114, 95, 122, 32, 58, 10, 45, 105, 102, 32, 123, 100, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 122, 44, 50, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 48, 48, 37, 32, 40, 45, 49, 47, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 40, 115, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 110, 110, 10, 105, 110, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 53, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 50, 10, 45, 43, 91, 45, 53, 44, 45, 52, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 32, 120, 121, 122, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 52, 93, 32, 120, 120, 120, 121, 120, 122, 121, 121, 121, 122, 122, 122, 10, 45, 42, 91, 45, 57, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 56, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 56, 93, 32, 50, 32, 45, 42, 91, 45, 55, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 55, 93, 32, 50, 10, 45, 43, 91, 45, 57, 45, 45, 55, 93, 32, 45, 42, 91, 45, 55, 93, 32, 91, 45, 51, 93, 10, 45, 42, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 53, 93, 32, 50, 10, 45, 43, 91, 45, 54, 44, 45, 53, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 44, 45, 53, 93, 10, 45, 115, 113, 114, 91, 45, 51, 45, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 53, 44, 45, 52, 93, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 112, 97, 105, 110, 116, 32, 58, 32, 91, 109, 97, 115, 107, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 97, 105, 110, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 97, 115, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 51, 48, 44, 51, 48, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 50, 48, 37, 44, 50, 48, 37, 44, 51, 48, 44, 49, 48, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 58, 32, 95, 110, 98, 95, 105, 116, 101, 114, 49, 62, 61, 48, 44, 95, 110, 98, 95, 105, 116, 101, 114, 50, 62, 61, 48, 44, 95, 100, 116, 62, 61, 48, 44, 95, 97, 108, 112, 104, 97, 44, 95, 115, 105, 103, 109, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 49, 61, 52, 39, 44, 32, 39, 110, 98, 95, 105, 116, 101, 114, 50, 61, 49, 53, 39, 44, 32, 39, 100, 116, 61, 49, 53, 39, 44, 32, 39, 97, 108, 112, 104, 97, 61, 49, 39, 32, 97, 110, 100, 32, 39, 115, 105, 103, 109, 97, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 51, 48, 37, 44, 51, 48, 37, 44, 52, 48, 44, 51, 48, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 44, 10, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 49, 53, 125, 44, 36, 123, 51, 61, 49, 53, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 91, 48, 93, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 50, 44, 49, 44, 49, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 36, 62, 32, 45, 108, 91, 48, 44, 36, 62, 93, 10, 45, 114, 91, 48, 93, 32, 91, 49, 93, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 49, 93, 32, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 49, 93, 32, 48, 44, 49, 44, 36, 52, 44, 36, 53, 44, 48, 32, 45, 42, 91, 50, 93, 32, 91, 48, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 49, 93, 32, 91, 50, 93, 44, 36, 50, 44, 36, 51, 44, 48, 32, 45, 114, 109, 91, 50, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 107, 117, 119, 97, 104, 97, 114, 97, 32, 58, 32, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 102, 105, 108, 116, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 107, 117, 119, 97, 104, 97, 114, 97, 32, 53, 10, 107, 117, 119, 97, 104, 97, 114, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 102, 105, 108, 116, 101, 114, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 61, 123, 115, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 105, 110, 10, 45, 45, 101, 114, 111, 100, 101, 91, 48, 93, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 97, 120, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 36, 49, 44, 49, 44, 49, 44, 49, 44, 123, 49, 47, 36, 49, 125, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 112, 61, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 102, 32, 34, 118, 49, 61, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 50, 61, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 51, 61, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 52, 61, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 109, 61, 109, 105, 110, 40, 118, 49, 44, 118, 50, 44, 118, 51, 44, 118, 52, 41, 59, 32, 92, 10, 105, 102, 40, 99, 62, 61, 34, 36, 115, 34, 44, 105, 44, 32, 92, 10, 105, 102, 40, 118, 109, 61, 61, 118, 49, 44, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 102, 40, 118, 109, 61, 61, 118, 50, 44, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 102, 40, 118, 109, 61, 61, 118, 51, 44, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 41, 41, 41, 41, 34, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 123, 115, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 112, 108, 97, 99, 105, 97, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 76, 97, 112, 108, 97, 99, 105, 97, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 10, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 76, 97, 112, 108, 97, 99, 105, 97, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 104, 101, 115, 115, 105, 97, 110, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 100, 61, 61, 49, 41, 44, 120, 120, 121, 121, 122, 122, 44, 120, 120, 121, 121, 125, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 99, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 48, 44, 95, 99, 104, 97, 110, 110, 101, 108, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 76, 73, 67, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 99, 104, 97, 110, 110, 101, 108, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 50, 44, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 45, 119, 47, 50, 44, 121, 45, 104, 47, 50, 41, 39, 32, 45, 45, 108, 105, 99, 32, 50, 48, 48, 44, 51, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 50, 93, 32, 91, 45, 50, 93, 44, 49, 48, 44, 45, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 108, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 76, 73, 67, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 32, 99, 104, 97, 110, 110, 101, 108, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 47, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 125, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 58, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 103, 97, 109, 109, 97, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 80, 111, 105, 115, 115, 111, 110, 32, 101, 113, 117, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 46, 49, 39, 44, 32, 39, 103, 97, 109, 109, 97, 61, 48, 46, 56, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 51, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 44, 10, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 49, 125, 44, 36, 123, 50, 61, 48, 46, 56, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 51, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 103, 97, 109, 109, 97, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 32, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 32, 120, 121, 44, 49, 32, 45, 97, 32, 99, 32, 45, 45, 110, 111, 114, 109, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 10, 45, 42, 91, 45, 49, 93, 32, 39, 97, 108, 112, 104, 97, 61, 36, 49, 42, 105, 77, 59, 40, 97, 108, 112, 104, 97, 47, 40, 49, 101, 45, 49, 48, 43, 105, 41, 41, 42, 40, 105, 47, 40, 49, 101, 45, 49, 48, 43, 97, 108, 112, 104, 97, 41, 41, 94, 36, 50, 39, 10, 45, 42, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 50, 93, 32, 120, 44, 45, 49, 32, 45, 103, 91, 45, 49, 93, 32, 121, 44, 45, 49, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 32, 45, 42, 32, 48, 46, 50, 53, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 50, 53, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 56, 48, 48, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 93, 32, 56, 48, 49, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 91, 37, 93, 62, 61, 48, 44, 95, 112, 111, 119, 101, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 102, 97, 115, 116, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 97, 100, 105, 117, 115, 61, 51, 37, 39, 32, 97, 110, 100, 32, 39, 112, 111, 119, 101, 114, 61, 48, 46, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 44, 10, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 97, 115, 116, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 32, 97, 110, 100, 32, 112, 111, 119, 101, 114, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 32, 48, 44, 49, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 42, 108, 111, 103, 40, 49, 48, 41, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 94, 91, 45, 52, 44, 45, 50, 93, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 58, 32, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 95, 100, 116, 44, 95, 115, 101, 113, 117, 101, 110, 99, 101, 95, 102, 108, 97, 103, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 101, 97, 110, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 102, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 49, 48, 39, 44, 32, 39, 100, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 50, 48, 10, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 101, 97, 110, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 105, 101, 101, 44, 36, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 101, 100, 105, 97, 110, 32, 58, 32, 114, 97, 100, 105, 117, 115, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 109, 101, 100, 105, 97, 110, 32, 102, 105, 108, 116, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 97, 100, 105, 117, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 101, 100, 105, 97, 110, 32, 53, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 114, 97, 100, 105, 117, 115, 62, 48, 44, 95, 110, 95, 115, 109, 111, 111, 116, 104, 62, 61, 48, 91, 37, 93, 44, 95, 97, 95, 115, 109, 111, 111, 116, 104, 62, 61, 48, 91, 37, 93, 44, 95, 105, 115, 95, 99, 117, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 109, 105, 110, 61, 48, 44, 95, 109, 97, 120, 61, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 108, 111, 99, 97, 108, 108, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 51, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 54, 39, 44, 32, 39, 110, 95, 115, 109, 111, 111, 116, 104, 61, 52, 37, 39, 44, 32, 39, 97, 95, 115, 109, 111, 111, 116, 104, 61, 50, 37, 39, 44, 32, 39, 105, 115, 95, 99, 117, 116, 61, 49, 39, 44, 32, 39, 109, 105, 110, 61, 48, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 56, 44, 49, 48, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 105, 115, 98, 111, 111, 108, 40, 36, 123, 53, 61, 49, 125, 41, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 52, 37, 125, 44, 36, 123, 52, 61, 50, 37, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 108, 111, 99, 97, 108, 108, 121, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 97, 118, 101, 114, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 32, 45, 101, 114, 111, 100, 101, 32, 123, 50, 42, 36, 50, 43, 49, 125, 32, 45, 115, 32, 99, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 45, 50, 93, 32, 45, 100, 105, 108, 97, 116, 101, 32, 123, 50, 42, 36, 50, 43, 49, 125, 32, 45, 115, 32, 99, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 45, 45, 98, 91, 45, 51, 93, 32, 36, 52, 32, 45, 98, 91, 45, 51, 44, 45, 50, 93, 32, 36, 51, 10, 45, 45, 45, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 45, 91, 45, 53, 93, 32, 91, 45, 52, 93, 32, 45, 47, 91, 45, 53, 44, 45, 49, 93, 10, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 123, 36, 49, 43, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 53, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 36, 54, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 36, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 105, 102, 32, 36, 53, 32, 45, 99, 32, 36, 54, 44, 36, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 32, 45, 51, 48, 44, 45, 50, 48, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 102, 102, 116, 91, 45, 49, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 117, 108, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 91, 45, 54, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 115, 116, 105, 109, 97, 116, 101, 32, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32, 118, 101, 99, 116, 111, 114, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 32, 45, 51, 48, 44, 45, 50, 48, 32, 45, 45, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 45, 117, 110, 114, 111, 108, 108, 91, 45, 49, 93, 32, 121, 10, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32, 118, 101, 99, 116, 111, 114, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 40, 64, 123, 45, 49, 44, 67, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 45, 51, 62, 64, 123, 45, 52, 44, 119, 125, 125, 32, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 52, 44, 119, 125, 32, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 52, 44, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 45, 50, 62, 64, 123, 45, 52, 44, 104, 125, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 52, 44, 104, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 52, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 45, 49, 62, 64, 123, 45, 52, 44, 100, 125, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 100, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 100, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 47, 32, 50, 32, 45, 42, 32, 45, 49, 10, 45, 110, 109, 32, 91, 112, 104, 97, 115, 101, 92, 32, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 100, 101, 95, 102, 108, 111, 119, 32, 58, 32, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 95, 100, 116, 44, 95, 118, 101, 108, 111, 99, 105, 116, 121, 95, 99, 111, 109, 109, 97, 110, 100, 44, 95, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 97, 32, 103, 101, 110, 101, 114, 105, 99, 32, 80, 68, 69, 32, 102, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 49, 48, 39, 44, 32, 39, 100, 116, 61, 51, 48, 39, 44, 32, 39, 118, 101, 108, 111, 99, 105, 116, 121, 95, 99, 111, 109, 109, 97, 110, 100, 61, 108, 97, 112, 108, 97, 99, 105, 97, 110, 39, 32, 97, 110, 100, 32, 39, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 50, 48, 10, 112, 100, 101, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 108, 97, 112, 108, 97, 99, 105, 97, 110, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 118, 101, 108, 111, 99, 105, 116, 121, 32, 102, 108, 111, 119, 32, 39, 36, 51, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 36, 51, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 40, 48, 46, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 41, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 108, 115, 101, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 32, 120, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 100, 95, 101, 121, 101, 32, 58, 32, 48, 60, 61, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 60, 61, 49, 48, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 48, 60, 61, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 60, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 101, 32, 114, 101, 100, 45, 101, 121, 101, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 55, 53, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 51, 46, 53, 39, 32, 97, 110, 100, 32, 39, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 61, 48, 46, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 100, 95, 101, 121, 101, 32, 44, 10, 114, 101, 100, 95, 101, 121, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 55, 53, 125, 44, 36, 123, 50, 61, 51, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 116, 116, 101, 110, 117, 97, 116, 101, 32, 114, 101, 100, 45, 101, 121, 101, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 97, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 58, 32, 95, 109, 97, 115, 107, 95, 115, 105, 122, 101, 62, 48, 44, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 37, 93, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 104, 111, 116, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 97, 115, 107, 95, 115, 105, 122, 101, 61, 51, 39, 32, 97, 110, 100, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 49, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 111, 105, 115, 101, 32, 49, 48, 44, 50, 32, 45, 45, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 44, 10, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 51, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 104, 111, 116, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 109, 97, 115, 107, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 32, 45, 45, 45, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 32, 58, 32, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 112, 105, 120, 101, 108, 95, 115, 117, 109, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 40, 105, 46, 101, 46, 32, 115, 101, 116, 32, 116, 111, 32, 48, 41, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 110, 115, 105, 116, 121, 32, 40, 105, 110, 32, 112, 101, 114, 99, 101, 110, 116, 41, 32, 111, 102, 32, 110, 111, 110, 45, 122, 101, 114, 111, 32, 112, 105, 120, 101, 108, 115, 32, 116, 111, 32, 48, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 110, 115, 105, 116, 121, 32, 105, 115, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 103, 97, 105, 110, 115, 116, 32, 39, 112, 105, 120, 101, 108, 95, 115, 117, 109, 39, 32, 101, 120, 99, 101, 112, 116, 32, 105, 102, 32, 105, 116, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 39, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 105, 110, 32, 116, 104, 105, 115, 32, 99, 97, 115, 101, 44, 32, 39, 112, 105, 120, 101, 108, 95, 115, 117, 109, 39, 32, 104, 97, 115, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 39, 119, 105, 100, 116, 104, 42, 104, 101, 105, 103, 104, 116, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 49, 48, 39, 44, 32, 39, 112, 105, 120, 101, 108, 95, 115, 117, 109, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 32, 53, 48, 10, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 36, 49, 37, 32, 111, 102, 32, 110, 111, 110, 45, 122, 101, 114, 111, 32, 112, 105, 120, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 110, 111, 114, 109, 32, 45, 103, 116, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 50, 32, 114, 97, 116, 101, 61, 123, 36, 49, 42, 36, 50, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 64, 123, 45, 49, 44, 43, 125, 41, 125, 10, 45, 101, 108, 115, 101, 32, 114, 97, 116, 101, 61, 123, 36, 49, 42, 119, 42, 104, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 64, 123, 45, 49, 44, 43, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 114, 97, 116, 101, 37, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 97, 105, 114, 32, 58, 32, 91, 109, 97, 115, 107, 93, 44, 95, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 62, 61, 49, 44, 95, 108, 111, 111, 107, 117, 112, 95, 115, 105, 122, 101, 62, 61, 49, 44, 95, 108, 111, 111, 107, 117, 112, 95, 105, 110, 99, 114, 101, 109, 101, 110, 116, 62, 61, 49, 44, 95, 98, 108, 101, 110, 100, 95, 115, 105, 122, 101, 62, 61, 48, 44, 48, 60, 61, 95, 98, 108, 101, 110, 100, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 60, 61, 49, 44, 95, 98, 108, 101, 110, 100, 95, 100, 101, 99, 97, 121, 62, 61, 48, 44, 95, 98, 108, 101, 110, 100, 95, 115, 99, 97, 108, 101, 115, 62, 61, 49, 44, 95, 105, 115, 95, 98, 108, 101, 110, 100, 95, 111, 117, 116, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 97, 105, 114, 32, 109, 97, 115, 107, 101, 100, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 121, 32, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 32, 105, 110, 112, 97, 105, 110, 116, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 101, 119, 97, 114, 101, 44, 32, 116, 104, 105, 115, 32, 105, 115, 32, 97, 32, 118, 101, 114, 121, 32, 116, 105, 109, 101, 32, 99, 111, 110, 115, 117, 109, 105, 110, 103, 32, 99, 111, 109, 109, 97, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 32, 58, 32, 39, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 61, 49, 49, 39, 44, 32, 39, 108, 111, 111, 107, 117, 112, 95, 115, 105, 122, 101, 61, 50, 50, 39, 44, 32, 39, 108, 111, 111, 107, 117, 112, 95, 105, 110, 99, 114, 101, 109, 101, 110, 116, 61, 49, 39, 44, 32, 39, 98, 108, 101, 110, 100, 95, 115, 105, 122, 101, 61, 48, 39, 44, 32, 39, 98, 108, 101, 110, 100, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 39, 44, 32, 39, 98, 108, 101, 110, 100, 95, 100, 101, 99, 97, 121, 61, 48, 46, 48, 53, 39, 44, 32, 39, 98, 108, 101, 110, 100, 95, 115, 99, 97, 108, 101, 115, 61, 49, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 98, 108, 101, 110, 100, 95, 111, 117, 116, 101, 114, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 99, 105, 114, 99, 108, 101, 32, 51, 48, 37, 44, 51, 48, 37, 44, 51, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 99, 105, 114, 99, 108, 101, 32, 55, 48, 37, 44, 55, 48, 37, 44, 53, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 45, 114, 101, 112, 97, 105, 114, 91, 48, 93, 32, 91, 49, 93, 44, 49, 55, 44, 50, 52, 44, 50, 44, 51, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 97, 114, 112, 101, 110, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 101, 100, 103, 101, 62, 61, 48, 44, 95, 97, 108, 112, 104, 97, 44, 95, 115, 105, 103, 109, 97, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 98, 121, 32, 105, 110, 118, 101, 114, 115, 101, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 111, 114, 32, 115, 104, 111, 99, 107, 32, 102, 105, 108, 116, 101, 114, 115, 32, 109, 101, 116, 104, 111, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 101, 100, 103, 101, 39, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 116, 111, 32, 101, 110, 97, 98, 108, 101, 32, 115, 104, 111, 99, 107, 45, 102, 105, 108, 116, 101, 114, 32, 109, 101, 116, 104, 111, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 108, 112, 104, 97, 61, 48, 39, 32, 97, 110, 100, 32, 39, 115, 105, 103, 109, 97, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 53, 32, 45, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 51, 48, 48, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 115, 109, 111, 111, 116, 104, 32, 58, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 44, 95, 97, 108, 112, 104, 97, 44, 95, 115, 105, 103, 109, 97, 44, 95, 100, 108, 62, 48, 44, 95, 100, 97, 62, 48, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 48, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 110, 98, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 61, 48, 44, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 44, 95, 97, 108, 112, 104, 97, 44, 95, 115, 105, 103, 109, 97, 44, 95, 100, 116, 62, 48, 44, 48, 32, 58, 32, 91, 116, 101, 110, 115, 111, 114, 95, 102, 105, 101, 108, 100, 93, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 100, 108, 62, 48, 44, 95, 100, 97, 62, 48, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 91, 116, 101, 110, 115, 111, 114, 95, 102, 105, 101, 108, 100, 93, 44, 95, 110, 98, 95, 105, 116, 101, 114, 115, 62, 61, 48, 44, 95, 100, 116, 62, 48, 44, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 97, 108, 108, 121, 32, 117, 115, 105, 110, 103, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 80, 68, 69, 39, 115, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 105, 101, 108, 100, 32, 111, 102, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 39, 32, 109, 117, 115, 116, 32, 98, 101, 32, 105, 110, 32, 91, 48, 44, 49, 93, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 32, 124, 32, 49, 61, 108, 105, 110, 101, 97, 114, 32, 124, 32, 50, 61, 114, 117, 110, 103, 101, 45, 107, 117, 116, 116, 97, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 46, 55, 39, 44, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 48, 46, 51, 39, 44, 32, 39, 97, 108, 112, 104, 97, 61, 48, 46, 54, 39, 44, 32, 39, 115, 105, 103, 109, 97, 61, 49, 46, 49, 39, 44, 32, 39, 100, 108, 61, 48, 46, 56, 39, 44, 32, 39, 100, 97, 61, 51, 48, 39, 44, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 50, 39, 44, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 39, 32, 97, 110, 100, 32, 39, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 50, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 49, 48, 48, 44, 49, 48, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 49, 48, 48, 44, 48, 46, 50, 44, 49, 44, 52, 44, 52, 32, 45, 100, 111, 110, 101, 32, 45, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 58, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 48, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 108, 105, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 116, 111, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 50, 37, 10, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 116, 111, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 115, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 98, 32, 36, 49, 32, 45, 45, 91, 48, 93, 32, 91, 49, 93, 32, 45, 114, 118, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 108, 105, 100, 105, 102, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 97, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 101, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 45, 115, 111, 108, 105, 100, 105, 102, 121, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 115, 111, 108, 105, 100, 105, 102, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 116, 111, 95, 97, 10, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 50, 93, 32, 45, 103, 101, 91, 45, 50, 93, 32, 53, 48, 37, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 100, 111, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 10, 45, 101, 114, 111, 100, 101, 91, 45, 50, 93, 32, 51, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 105, 109, 60, 48, 125, 10, 45, 107, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 95, 115, 105, 103, 109, 97, 62, 61, 49, 44, 95, 100, 115, 105, 103, 109, 97, 62, 61, 49, 44, 48, 60, 61, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 60, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 97, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 108, 105, 110, 101, 97, 114, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 103, 109, 97, 61, 49, 46, 53, 39, 44, 32, 39, 100, 115, 105, 103, 109, 97, 61, 49, 39, 32, 97, 110, 100, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 101, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 45, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 44, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 46, 53, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 108, 105, 110, 101, 97, 114, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 100, 115, 105, 103, 109, 97, 32, 36, 50, 32, 97, 110, 100, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 115, 105, 103, 109, 97, 61, 36, 49, 32, 45, 100, 111, 10, 78, 61, 123, 118, 61, 114, 111, 117, 110, 100, 40, 51, 42, 36, 115, 105, 103, 109, 97, 41, 59, 109, 105, 110, 40, 51, 51, 44, 109, 97, 120, 40, 51, 44, 118, 43, 49, 45, 40, 118, 37, 50, 41, 41, 41, 125, 10, 36, 78, 44, 36, 78, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 45, 49, 47, 36, 115, 105, 103, 109, 97, 94, 50, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 53, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 123, 118, 61, 114, 111, 117, 110, 100, 40, 40, 49, 47, 51, 45, 36, 78, 47, 54, 41, 42, 36, 51, 43, 36, 78, 47, 50, 41, 59, 109, 97, 120, 40, 51, 44, 118, 43, 49, 45, 40, 118, 37, 50, 41, 41, 125, 10, 45, 45, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 115, 105, 103, 109, 97, 61, 123, 36, 115, 105, 103, 109, 97, 42, 36, 50, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 33, 105, 109, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 108, 118, 101, 95, 112, 111, 105, 115, 115, 111, 110, 32, 58, 32, 34, 108, 97, 112, 108, 97, 99, 105, 97, 110, 95, 99, 111, 109, 109, 97, 110, 100, 34, 44, 95, 110, 98, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 61, 48, 44, 95, 116, 105, 109, 101, 95, 115, 116, 101, 112, 62, 48, 44, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 108, 118, 101, 32, 80, 111, 105, 115, 115, 111, 110, 32, 101, 113, 117, 97, 116, 105, 111, 110, 32, 115, 111, 32, 116, 104, 97, 116, 32, 97, 112, 112, 108, 121, 105, 110, 103, 32, 39, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 110, 93, 39, 32, 105, 115, 32, 99, 108, 111, 115, 101, 32, 116, 111, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 32, 111, 102, 32, 39, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 95, 99, 111, 109, 109, 97, 110, 100, 91, 110, 93, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 108, 118, 105, 110, 103, 32, 105, 115, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 32, 117, 115, 105, 110, 103, 32, 97, 32, 109, 117, 108, 116, 105, 45, 115, 99, 97, 108, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 100, 101, 115, 99, 101, 110, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 48, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 99, 97, 108, 101, 115, 32, 105, 115, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 54, 48, 39, 44, 32, 39, 100, 116, 61, 53, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 120, 34, 32, 45, 45, 115, 111, 108, 118, 101, 95, 112, 111, 105, 115, 115, 111, 110, 32, 102, 111, 111, 32, 45, 45, 102, 111, 111, 91, 48, 93, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 49, 93, 10, 115, 111, 108, 118, 101, 95, 112, 111, 105, 115, 115, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 54, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 108, 118, 101, 32, 80, 111, 105, 115, 115, 111, 110, 32, 101, 113, 117, 97, 116, 105, 111, 110, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 111, 114, 32, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 44, 32, 119, 105, 116, 104, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 51, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 52, 61, 61, 48, 41, 44, 36, 52, 44, 97, 117, 116, 111, 125, 34, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 102, 40, 36, 52, 44, 36, 52, 44, 105, 110, 116, 40, 109, 97, 120, 40, 108, 111, 103, 50, 40, 109, 97, 120, 40, 119, 44, 104, 41, 41, 45, 49, 44, 49, 41, 41, 41, 125, 10, 102, 61, 123, 50, 94, 36, 60, 125, 10, 45, 114, 91, 49, 93, 32, 64, 123, 48, 44, 109, 97, 120, 40, 49, 44, 119, 47, 36, 102, 41, 125, 44, 64, 123, 48, 44, 109, 97, 120, 40, 49, 44, 104, 47, 36, 102, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 45, 45, 114, 91, 48, 93, 32, 91, 49, 93, 44, 50, 32, 45, 108, 91, 45, 49, 93, 32, 45, 36, 49, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 51, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 95, 115, 99, 104, 101, 109, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 115, 99, 104, 101, 109, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 99, 101, 110, 116, 101, 114, 101, 100, 32, 124, 32, 49, 61, 102, 111, 114, 119, 97, 114, 100, 45, 98, 97, 99, 107, 119, 97, 114, 100, 49, 32, 124, 32, 50, 61, 102, 111, 114, 119, 97, 114, 100, 45, 98, 97, 99, 107, 119, 97, 114, 100, 50, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 99, 104, 101, 109, 101, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 45, 97, 98, 115, 32, 45, 112, 111, 119, 32, 48, 46, 50, 10, 35, 64, 103, 109, 105, 99, 32, 116, 118, 95, 102, 108, 111, 119, 32, 58, 32, 95, 110, 98, 95, 105, 116, 101, 114, 62, 61, 48, 44, 95, 100, 116, 44, 95, 115, 101, 113, 117, 101, 110, 99, 101, 95, 102, 108, 97, 103, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 116, 111, 116, 97, 108, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 102, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 105, 116, 101, 114, 61, 49, 48, 39, 44, 32, 39, 100, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 107, 101, 101, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 118, 95, 102, 108, 111, 119, 32, 52, 48, 10, 116, 118, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 116, 111, 116, 97, 108, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 99, 117, 114, 118, 97, 116, 117, 114, 101, 44, 36, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 117, 110, 115, 104, 97, 114, 112, 32, 58, 32, 114, 97, 100, 105, 117, 115, 91, 37, 93, 62, 61, 48, 44, 95, 97, 109, 111, 117, 110, 116, 62, 61, 48, 44, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 111, 117, 110, 116, 61, 50, 39, 32, 97, 110, 100, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 32, 45, 45, 117, 110, 115, 104, 97, 114, 112, 32, 49, 46, 53, 44, 49, 53, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 117, 110, 115, 104, 97, 114, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 97, 109, 111, 117, 110, 116, 32, 36, 50, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 98, 91, 36, 62, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 58, 32, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 48, 44, 95, 114, 97, 100, 105, 117, 115, 91, 37, 93, 62, 61, 48, 44, 95, 97, 109, 111, 117, 110, 116, 62, 61, 48, 44, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 118, 101, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 52, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 39, 44, 32, 39, 97, 109, 111, 117, 110, 116, 61, 50, 39, 32, 97, 110, 100, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 32, 45, 45, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 52, 44, 53, 44, 49, 53, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 118, 101, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 97, 109, 111, 117, 110, 116, 32, 36, 51, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 102, 32, 48, 32, 119, 101, 105, 103, 104, 116, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 123, 36, 50, 42, 50, 94, 45, 64, 123, 60, 44, 45, 49, 125, 125, 44, 36, 51, 44, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 123, 50, 94, 45, 36, 62, 125, 32, 119, 101, 105, 103, 104, 116, 61, 123, 36, 119, 101, 105, 103, 104, 116, 43, 50, 94, 45, 36, 62, 125, 32, 45, 43, 91, 49, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 47, 32, 36, 119, 101, 105, 103, 104, 116, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 118, 97, 110, 118, 108, 105, 101, 116, 32, 58, 32, 115, 116, 100, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 62, 61, 48, 91, 37, 93, 44, 111, 114, 100, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 51, 32, 125, 44, 97, 120, 105, 115, 61, 123, 32, 120, 32, 124, 32, 121, 32, 124, 32, 122, 32, 124, 32, 99, 32, 125, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 86, 97, 110, 118, 108, 105, 101, 116, 32, 114, 101, 99, 117, 114, 115, 105, 118, 101, 32, 102, 105, 108, 116, 101, 114, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 44, 32, 111, 114, 100, 101, 114, 44, 32, 97, 120, 105, 115, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 118, 97, 110, 118, 108, 105, 101, 116, 32, 51, 44, 49, 44, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 118, 97, 110, 118, 108, 105, 101, 116, 32, 51, 48, 44, 48, 44, 120, 32, 45, 118, 97, 110, 118, 108, 105, 101, 116, 91, 45, 50, 93, 32, 51, 48, 44, 48, 44, 121, 32, 45, 97, 100, 100, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 32, 116, 101, 120, 116, 44, 95, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 97, 32, 116, 101, 120, 116, 117, 97, 108, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 105, 110, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 100, 111, 109, 97, 105, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 105, 122, 101, 61, 51, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 34, 87, 97, 116, 101, 114, 109, 97, 114, 107, 101, 100, 33, 34, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 51, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 52, 44, 45, 50, 93, 32, 121, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 50, 61, 51, 50, 125, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 116, 101, 120, 116, 117, 97, 108, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 50, 32, 105, 110, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 100, 111, 109, 97, 105, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 91, 48, 93, 32, 48, 32, 45, 116, 91, 48, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 103, 101, 91, 48, 93, 32, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 102, 102, 116, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 119, 50, 44, 36, 104, 50, 44, 48, 44, 48, 44, 50, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 123, 115, 125, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 32, 91, 112, 114, 105, 111, 114, 105, 116, 121, 95, 105, 109, 97, 103, 101, 93, 44, 95, 102, 105, 108, 108, 95, 108, 105, 110, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 105, 108, 108, 95, 108, 105, 110, 101, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 110, 111, 105, 115, 101, 32, 48, 46, 50, 44, 50, 32, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 49, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 45, 49, 32, 45, 108, 97, 98, 101, 108, 91, 45, 50, 93, 32, 48, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 109, 111, 100, 91, 45, 50, 93, 32, 50, 53, 54, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 48, 32, 45, 114, 101, 118, 101, 114, 115, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 70, 101, 97, 116, 117, 114, 101, 115, 32, 101, 120, 116, 114, 97, 99, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 101, 97, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 62, 61, 48, 44, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 45, 49, 93, 32, 49, 32, 45, 45, 97, 114, 101, 97, 32, 48, 10, 97, 114, 101, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 97, 98, 101, 108, 91, 36, 62, 93, 32, 36, 49, 44, 36, 50, 32, 110, 98, 61, 64, 123, 36, 62, 44, 49, 43, 105, 77, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 32, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 101, 97, 95, 102, 103, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 62, 61, 48, 44, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 102, 111, 114, 32, 110, 111, 110, 45, 122, 101, 114, 111, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 105, 109, 105, 108, 97, 114, 32, 116, 111, 32, 39, 45, 97, 114, 101, 97, 39, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 97, 116, 32, 48, 45, 118, 97, 108, 117, 101, 100, 32, 112, 105, 120, 101, 108, 115, 32, 97, 114, 101, 32, 110, 111, 116, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 45, 49, 93, 32, 49, 32, 45, 45, 97, 114, 101, 97, 95, 102, 103, 32, 48, 10, 97, 114, 101, 97, 95, 102, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 36, 62, 93, 32, 36, 49, 44, 36, 50, 32, 110, 98, 61, 64, 123, 36, 62, 44, 49, 43, 105, 77, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 32, 45, 61, 91, 45, 49, 93, 32, 48, 32, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 118, 101, 99, 116, 111, 114, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 50, 48, 37, 44, 50, 48, 37, 44, 48, 44, 49, 44, 49, 32, 45, 100, 101, 102, 111, 114, 109, 32, 50, 48, 32, 45, 45, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 45, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 50, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 53, 44, 53, 44, 48, 44, 49, 48, 10, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 118, 101, 99, 116, 111, 114, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 98, 125, 10, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 105, 102, 32, 123, 36, 115, 117, 109, 62, 48, 125, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 42, 32, 39, 122, 39, 32, 122, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 122, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 45, 42, 32, 39, 121, 39, 32, 121, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 121, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 32, 39, 120, 39, 32, 120, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 36, 120, 47, 36, 115, 117, 109, 125, 59, 123, 36, 121, 47, 36, 115, 117, 109, 125, 59, 123, 36, 122, 47, 36, 115, 117, 109, 125, 41, 10, 45, 101, 108, 115, 101, 32, 40, 123, 119, 47, 50, 125, 44, 123, 104, 47, 50, 125, 44, 123, 100, 47, 50, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 34, 91, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 111, 102, 32, 39, 34, 36, 110, 109, 34, 39, 93, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 58, 32, 91, 115, 111, 117, 114, 99, 101, 95, 105, 109, 97, 103, 101, 93, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 61, 48, 44, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 61, 48, 44, 105, 116, 101, 114, 97, 116, 105, 111, 110, 95, 109, 97, 120, 62, 61, 48, 44, 105, 115, 95, 98, 97, 99, 107, 119, 97, 114, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 115, 116, 105, 109, 97, 116, 101, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 102, 105, 101, 108, 100, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 111, 117, 114, 99, 101, 32, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 39, 44, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 105, 115, 111, 116, 114, 111, 112, 105, 99, 44, 32, 101, 108, 115, 101, 32, 116, 111, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 110, 98, 115, 99, 97, 108, 101, 115, 61, 61, 48, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 110, 101, 101, 100, 101, 100, 32, 115, 99, 97, 108, 101, 115, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 49, 39, 44, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 53, 39, 44, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 48, 39, 44, 32, 39, 105, 116, 101, 114, 97, 116, 105, 111, 110, 95, 109, 97, 120, 61, 49, 48, 48, 48, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 98, 97, 99, 107, 119, 97, 114, 100, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 97, 116, 101, 32, 51, 44, 49, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 46, 57, 32, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 49, 93, 32, 91, 45, 49, 93, 44, 49, 53, 44, 45, 50, 48, 44, 49, 44, 49, 44, 123, 49, 46, 53, 42, 105, 77, 125, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 58, 32, 105, 115, 111, 118, 97, 108, 117, 101, 91, 37, 93, 44, 95, 109, 101, 116, 114, 105, 99, 32, 58, 32, 105, 115, 111, 118, 97, 108, 117, 101, 91, 37, 93, 44, 91, 99, 117, 115, 116, 111, 109, 95, 109, 101, 116, 114, 105, 99, 93, 32, 58, 32, 120, 91, 37, 93, 62, 61, 48, 44, 121, 91, 37, 93, 62, 61, 48, 44, 122, 91, 37, 93, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 117, 110, 115, 105, 103, 110, 101, 100, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 116, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 115, 111, 118, 97, 108, 117, 101, 32, 111, 114, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 109, 101, 116, 114, 105, 99, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 99, 104, 101, 98, 121, 115, 104, 101, 118, 32, 124, 32, 49, 61, 109, 97, 110, 104, 97, 116, 116, 97, 110, 32, 124, 32, 50, 61, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 124, 32, 51, 61, 115, 113, 117, 97, 114, 101, 100, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 32, 99, 117, 115, 116, 111, 109, 32, 109, 101, 116, 114, 105, 99, 32, 102, 111, 114, 32, 99, 104, 97, 109, 102, 101, 114, 32, 100, 105, 115, 116, 97, 110, 99, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 115, 32, 97, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 39, 120, 39, 44, 39, 121, 39, 44, 39, 122, 39, 32, 97, 114, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 44, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 97, 32, 112, 111, 116, 101, 110, 116, 105, 97, 108, 32, 109, 97, 112, 32, 117, 115, 101, 100, 32, 116, 111, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 32, 116, 104, 101, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 109, 97, 112, 32, 116, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 111, 105, 110, 116, 32, 40, 120, 44, 121, 44, 122, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 109, 101, 116, 114, 105, 99, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 50, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 112, 111, 119, 32, 48, 46, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 115, 101, 116, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 48, 93, 32, 49, 44, 50, 32, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 48, 93, 32, 49, 44, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 48, 93, 32, 49, 44, 48, 32, 45, 109, 111, 100, 32, 51, 50, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 49, 54, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 10, 35, 64, 103, 109, 105, 99, 32, 102, 108, 111, 97, 116, 50, 102, 102, 116, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 102, 108, 111, 97, 116, 50, 102, 102, 116, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 50, 93, 32, 45, 102, 108, 111, 97, 116, 50, 105, 110, 116, 56, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 102, 116, 56, 50, 102, 108, 111, 97, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 116, 111, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 102, 102, 116, 56, 50, 102, 108, 111, 97, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 121, 44, 50, 32, 45, 105, 110, 116, 56, 50, 102, 108, 111, 97, 116, 32, 45, 101, 120, 112, 91, 45, 50, 93, 32, 45, 45, 91, 45, 50, 93, 32, 49, 32, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 102, 116, 112, 111, 108, 97, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 97, 115, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 44, 49, 48, 44, 48, 44, 49, 44, 48, 32, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 10, 102, 102, 116, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 115, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 102, 102, 116, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 115, 104, 105, 102, 116, 32, 123, 45, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 100, 47, 50, 41, 125, 44, 48, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 48, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 49, 91, 37, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 115, 101, 116, 44, 32, 116, 104, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 46, 32, 65, 114, 103, 117, 109, 101, 110, 116, 32, 39, 118, 97, 108, 117, 101, 49, 39, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 102, 32, 39, 118, 97, 108, 117, 101, 48, 39, 32, 105, 115, 32, 115, 101, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 118, 97, 108, 117, 101, 48, 61, 48, 37, 39, 32, 97, 110, 100, 32, 39, 118, 97, 108, 117, 101, 49, 61, 49, 48, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 54, 52, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 35, 64, 103, 109, 105, 99, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 58, 32, 95, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 44, 95, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 118, 97, 108, 48, 91, 37, 93, 44, 95, 118, 97, 108, 49, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 50, 53, 54, 39, 44, 32, 39, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 61, 48, 39, 32, 97, 110, 100, 32, 39, 118, 97, 108, 48, 61, 118, 97, 108, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 50, 53, 54, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 48, 93, 32, 50, 53, 54, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 52, 48, 48, 44, 51, 48, 48, 44, 51, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 50, 53, 54, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 97, 114, 103, 32, 49, 43, 33, 36, 50, 44, 34, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 34, 44, 34, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 34, 64, 123, 125, 34, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 49, 44, 36, 51, 44, 36, 52, 32, 45, 99, 117, 109, 117, 108, 32, 45, 105, 102, 32, 36, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 47, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 77, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 48, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 49, 91, 37, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 101, 97, 99, 104, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 111, 105, 110, 116, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 115, 101, 116, 44, 32, 116, 104, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 118, 97, 108, 117, 101, 48, 61, 48, 37, 39, 32, 97, 110, 100, 32, 39, 118, 97, 108, 117, 101, 49, 61, 49, 48, 48, 37, 39, 46, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 37, 125, 44, 36, 123, 51, 61, 49, 48, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 40, 105, 77, 45, 105, 109, 41, 42, 36, 49, 44, 36, 49, 41, 41, 125, 10, 118, 97, 108, 117, 101, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 50, 44, 36, 50, 41, 125, 10, 118, 97, 108, 117, 101, 49, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 51, 44, 36, 51, 41, 125, 10, 45, 45, 32, 36, 118, 97, 108, 117, 101, 48, 32, 45, 42, 32, 123, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 47, 109, 97, 120, 40, 49, 44, 97, 98, 115, 40, 36, 118, 97, 108, 117, 101, 49, 45, 36, 118, 97, 108, 117, 101, 48, 41, 41, 125, 32, 45, 99, 32, 48, 44, 123, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 45, 114, 32, 123, 119, 42, 104, 42, 100, 125, 44, 123, 115, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 51, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 52, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 44, 123, 104, 47, 51, 125, 44, 123, 104, 47, 51, 125, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 104, 47, 51, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 64, 123, 45, 50, 44, 104, 47, 51, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 51, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 49, 32, 45, 121, 91, 45, 53, 44, 45, 51, 44, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 123, 36, 119, 42, 36, 104, 42, 36, 100, 125, 44, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 111, 117, 103, 104, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 95, 118, 111, 116, 105, 110, 103, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 104, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 40, 116, 104, 101, 116, 97, 44, 114, 104, 111, 41, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 53, 49, 50, 39, 44, 32, 39, 104, 101, 105, 103, 104, 116, 61, 119, 105, 100, 116, 104, 39, 32, 97, 110, 100, 32, 39, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 95, 118, 111, 116, 105, 110, 103, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 104, 111, 117, 103, 104, 91, 45, 49, 93, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 10, 104, 111, 117, 103, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 36, 49, 120, 36, 50, 32, 104, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 119, 105, 116, 104, 44, 119, 105, 116, 104, 111, 117, 116, 125, 34, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 118, 111, 116, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 103, 32, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 40, 48, 59, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 51, 44, 119, 125, 44, 64, 123, 45, 51, 44, 104, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 91, 45, 50, 93, 32, 123, 119, 47, 50, 125, 32, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 10, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 91, 45, 52, 45, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 108, 116, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 37, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 36, 114, 104, 111, 109, 97, 120, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 48, 46, 53, 42, 36, 49, 47, 112, 105, 125, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 123, 119, 125, 32, 45, 109, 118, 91, 45, 52, 93, 32, 64, 35, 32, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 49, 32, 45, 114, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 102, 102, 116, 112, 111, 108, 97, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 102, 114, 111, 109, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 105, 102, 102, 116, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 114, 111, 109, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 115, 104, 105, 102, 116, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 100, 47, 50, 41, 125, 44, 48, 44, 50, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 32, 95, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 111, 110, 32, 97, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 54, 52, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 50, 32, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 54, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 53, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 52, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 105, 115, 111, 112, 104, 111, 116, 101, 32, 109, 97, 112, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 115, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 105, 115, 111, 108, 105, 110, 101, 51, 100, 91, 49, 93, 32, 123, 36, 62, 42, 50, 53, 53, 47, 40, 36, 49, 45, 49, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 51, 100, 91, 94, 48, 93, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 10, 91, 48, 93, 44, 91, 48, 93, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 101, 108, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 62, 61, 48, 44, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 98, 101, 108, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 111, 108, 101, 114, 97, 110, 99, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 54, 48, 37, 32, 45, 108, 97, 98, 101, 108, 32, 48, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 32, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 115, 101, 116, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 49, 32, 45, 109, 111, 100, 32, 49, 54, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 56, 32, 45, 108, 97, 98, 101, 108, 32, 48, 32, 45, 109, 111, 100, 32, 50, 53, 53, 32, 45, 109, 97, 112, 32, 50, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 101, 108, 95, 102, 103, 32, 58, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 62, 61, 48, 44, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 98, 101, 108, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 102, 111, 114, 32, 110, 111, 110, 45, 122, 101, 114, 111, 32, 118, 97, 108, 117, 101, 115, 32, 40, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 41, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 105, 109, 105, 108, 97, 114, 32, 116, 111, 32, 39, 45, 108, 97, 98, 101, 108, 39, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 97, 116, 32, 48, 45, 118, 97, 108, 117, 101, 100, 32, 112, 105, 120, 101, 108, 115, 32, 97, 114, 101, 32, 110, 111, 116, 32, 108, 97, 98, 101, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 46, 10, 108, 97, 98, 101, 108, 95, 102, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 97, 98, 101, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 91, 49, 93, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 122, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 123, 100, 45, 49, 125, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 123, 100, 45, 49, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 122, 32, 45, 49, 44, 45, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 123, 49, 43, 105, 77, 125, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 39, 120, 39, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 45, 49, 44, 48, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 112, 97, 116, 99, 104, 32, 58, 32, 95, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 62, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 97, 120, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 103, 105, 118, 101, 110, 32, 115, 105, 122, 101, 32, 102, 111, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 61, 49, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 111, 114, 109, 32, 45, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 32, 49, 54, 10, 109, 97, 120, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 97, 120, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 36, 62, 93, 32, 36, 49, 32, 45, 61, 61, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 112, 97, 116, 99, 104, 32, 58, 32, 95, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 62, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 105, 110, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 103, 105, 118, 101, 110, 32, 115, 105, 122, 101, 32, 102, 111, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 61, 49, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 110, 111, 114, 109, 32, 45, 45, 109, 105, 110, 95, 112, 97, 116, 99, 104, 32, 49, 54, 10, 109, 105, 110, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 105, 110, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 91, 36, 62, 93, 32, 36, 49, 32, 45, 61, 61, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 32, 58, 32, 120, 48, 91, 37, 93, 62, 61, 48, 44, 121, 48, 91, 37, 93, 62, 61, 48, 44, 122, 48, 91, 37, 93, 62, 61, 48, 44, 120, 49, 91, 37, 93, 62, 61, 48, 44, 121, 49, 91, 37, 93, 62, 61, 48, 44, 122, 49, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 119, 111, 32, 112, 111, 105, 110, 116, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 112, 111, 116, 101, 110, 116, 105, 97, 108, 32, 109, 97, 112, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 102, 91, 45, 49, 93, 32, 49, 47, 40, 49, 43, 105, 41, 32, 45, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 56, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 32, 45, 111, 114, 10, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 51, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 112, 111, 105, 110, 116, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 97, 110, 100, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 32, 102, 111, 114, 32, 112, 111, 116, 101, 110, 116, 105, 97, 108, 32, 109, 97, 112, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 123, 52, 45, 54, 125, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 40, 119, 45, 49, 41, 44, 36, 49, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 40, 104, 45, 49, 41, 44, 36, 50, 41, 41, 125, 10, 122, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 36, 51, 42, 40, 100, 45, 49, 41, 44, 36, 51, 41, 41, 125, 10, 40, 36, 120, 59, 36, 121, 59, 36, 122, 41, 10, 45, 100, 111, 10, 112, 61, 64, 123, 48, 44, 40, 36, 120, 44, 36, 121, 44, 36, 122, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 112, 61, 61, 49, 125, 32, 32, 32, 120, 61, 123, 36, 120, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 50, 125, 32, 120, 61, 123, 36, 120, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 51, 125, 32, 121, 61, 123, 36, 121, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 52, 125, 32, 121, 61, 123, 36, 121, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 53, 125, 32, 122, 61, 123, 36, 122, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 54, 125, 32, 122, 61, 123, 36, 122, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 40, 36, 120, 59, 36, 121, 59, 36, 122, 41, 10, 45, 119, 104, 105, 108, 101, 32, 36, 112, 10, 45, 114, 109, 91, 48, 44, 45, 49, 93, 32, 45, 97, 32, 120, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 115, 101, 32, 58, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 77, 83, 69, 32, 40, 77, 101, 97, 110, 45, 83, 113, 117, 97, 114, 101, 100, 32, 69, 114, 114, 111, 114, 41, 32, 109, 97, 116, 114, 105, 120, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 105, 115, 101, 32, 51, 48, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 51, 53, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 51, 56, 32, 45, 99, 117, 116, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 115, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 116, 99, 104, 101, 115, 32, 58, 32, 112, 97, 116, 99, 104, 95, 119, 105, 100, 116, 104, 62, 48, 44, 112, 97, 116, 99, 104, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 112, 97, 116, 99, 104, 95, 100, 101, 112, 116, 104, 62, 48, 44, 120, 48, 44, 121, 48, 44, 122, 48, 44, 95, 120, 49, 44, 95, 121, 49, 44, 95, 122, 49, 44, 46, 46, 46, 44, 95, 120, 78, 44, 95, 121, 78, 44, 95, 122, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 116, 114, 97, 99, 116, 32, 78, 43, 49, 32, 112, 97, 116, 99, 104, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 97, 116, 99, 104, 101, 115, 32, 54, 52, 44, 54, 52, 44, 49, 44, 49, 53, 51, 44, 49, 50, 52, 44, 48, 44, 49, 56, 52, 44, 50, 52, 48, 44, 48, 44, 50, 49, 55, 44, 49, 50, 54, 44, 48, 44, 50, 55, 53, 44, 51, 56, 44, 48, 10, 112, 97, 116, 99, 104, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 51, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 116, 114, 97, 99, 116, 32, 36, 49, 120, 36, 50, 120, 36, 51, 32, 112, 97, 116, 99, 104, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 116, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 123, 52, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 119, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 32, 78, 61, 123, 119, 125, 10, 72, 61, 123, 105, 110, 116, 40, 115, 113, 114, 116, 40, 119, 41, 41, 125, 32, 87, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 72, 44, 49, 44, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 87, 42, 36, 72, 125, 44, 49, 44, 49, 44, 51, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 36, 87, 44, 36, 72, 44, 49, 44, 51, 44, 45, 49, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 50, 125, 44, 123, 100, 42, 36, 51, 125, 10, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 44, 120, 45, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 45, 123, 105, 110, 116, 40, 36, 50, 47, 50, 41, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 122, 45, 123, 105, 110, 116, 40, 36, 51, 47, 50, 41, 125, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 119, 97, 114, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 121, 44, 36, 72, 32, 45, 115, 32, 120, 44, 36, 87, 32, 45, 107, 91, 48, 45, 123, 36, 78, 45, 49, 125, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 108, 111, 116, 50, 118, 97, 108, 117, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 114, 105, 101, 118, 101, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 50, 100, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 51, 48, 48, 44, 49, 44, 49, 44, 39, 105, 102, 40, 121, 62, 51, 48, 48, 42, 97, 98, 115, 40, 99, 111, 115, 40, 120, 47, 49, 48, 43, 50, 42, 63, 41, 41, 44, 49, 44, 48, 41, 39, 32, 45, 45, 112, 108, 111, 116, 50, 118, 97, 108, 117, 101, 32, 45, 45, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 52, 48, 48, 44, 51, 48, 48, 10, 112, 108, 111, 116, 50, 118, 97, 108, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 114, 105, 101, 118, 101, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 50, 100, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 103, 101, 32, 53, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 40, 49, 44, 123, 119, 125, 41, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 42, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 123, 119, 125, 44, 49, 44, 123, 119, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 58, 32, 95, 116, 121, 112, 101, 32, 61, 32, 123, 32, 45, 88, 61, 45, 88, 45, 111, 112, 97, 99, 105, 116, 121, 32, 124, 32, 48, 61, 98, 105, 110, 97, 114, 121, 32, 124, 32, 49, 61, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 124, 32, 50, 61, 108, 97, 98, 101, 108, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 97, 32, 78, 120, 49, 44, 32, 78, 120, 50, 44, 32, 78, 120, 51, 32, 111, 114, 32, 78, 120, 77, 32, 105, 109, 97, 103, 101, 32, 97, 115, 32, 97, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 32, 105, 110, 32, 97, 32, 49, 100, 47, 50, 100, 32, 111, 114, 32, 51, 100, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 77, 39, 62, 51, 44, 32, 116, 104, 101, 32, 51, 45, 116, 111, 45, 77, 32, 108, 105, 110, 101, 115, 32, 115, 101, 116, 115, 32, 116, 104, 101, 32, 40, 77, 45, 51, 41, 45, 100, 105, 109, 101, 110, 115, 105, 111, 110, 97, 108, 32, 99, 111, 108, 111, 114, 32, 97, 116, 32, 101, 97, 99, 104, 32, 112, 111, 105, 110, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 116, 121, 112, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 48, 44, 50, 32, 45, 114, 97, 110, 100, 32, 48, 44, 52, 48, 48, 32, 45, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 48, 44, 50, 32, 45, 114, 97, 110, 100, 32, 48, 44, 52, 48, 48, 32, 123, 119, 125, 32, 123, 119, 125, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 32, 121, 32, 45, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 125, 60, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 115, 44, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 50, 43, 40, 36, 49, 62, 61, 48, 41, 42, 36, 49, 45, 40, 36, 49, 60, 48, 41, 44, 123, 45, 36, 49, 125, 45, 111, 112, 97, 99, 105, 116, 121, 44, 98, 105, 110, 97, 114, 121, 44, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 44, 108, 97, 98, 101, 108, 105, 110, 103, 125, 34, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 34, 100, 62, 49, 32, 124, 124, 32, 115, 62, 49, 34, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 34, 123, 119, 125, 120, 123, 104, 125, 120, 123, 100, 125, 120, 123, 115, 125, 34, 46, 32, 83, 104, 111, 117, 108, 100, 32, 98, 101, 32, 78, 120, 77, 120, 49, 120, 49, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 109, 97, 120, 40, 50, 44, 104, 45, 49, 41, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 120, 61, 123, 105, 77, 43, 49, 125, 10, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 121, 61, 123, 105, 77, 43, 49, 125, 10, 45, 115, 104, 91, 45, 51, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 122, 61, 123, 105, 77, 43, 49, 125, 10, 45, 42, 91, 45, 49, 93, 32, 36, 100, 121, 32, 45, 43, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 115, 32, 120, 44, 45, 49, 48, 48, 48, 48, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 112, 61, 123, 119, 125, 10, 45, 105, 102, 32, 123, 104, 62, 51, 125, 32, 45, 45, 114, 111, 119, 115, 32, 51, 44, 49, 48, 48, 37, 32, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 101, 108, 115, 101, 32, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 43, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 115, 112, 101, 99, 116, 114, 117, 109, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 49, 59, 49, 59, 123, 104, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 51, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 51, 45, 45, 49, 93, 32, 45, 105, 91, 45, 51, 93, 32, 40, 36, 110, 98, 112, 59, 36, 110, 98, 112, 41, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 123, 105, 102, 40, 36, 49, 60, 48, 44, 45, 36, 49, 44, 105, 102, 40, 36, 49, 61, 61, 49, 44, 45, 49, 44, 49, 41, 41, 125, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 10, 36, 100, 120, 44, 123, 36, 100, 121, 42, 36, 100, 122, 125, 44, 49, 44, 36, 115, 112, 101, 99, 116, 114, 117, 109, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 36, 100, 122, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 115, 110, 114, 32, 58, 32, 95, 109, 97, 120, 95, 118, 97, 108, 117, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 80, 83, 78, 82, 32, 40, 80, 101, 97, 107, 32, 83, 105, 103, 110, 97, 108, 45, 116, 111, 45, 78, 111, 105, 115, 101, 32, 82, 97, 116, 105, 111, 41, 32, 109, 97, 116, 114, 105, 120, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 109, 97, 120, 95, 118, 97, 108, 117, 101, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 105, 115, 101, 32, 51, 48, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 51, 53, 32, 45, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 51, 56, 32, 45, 99, 117, 116, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 115, 110, 114, 32, 50, 53, 53, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 105, 110, 102, 32, 48, 10, 112, 115, 110, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 34, 64, 35, 120, 64, 35, 34, 32, 109, 97, 116, 114, 105, 120, 32, 111, 102, 32, 80, 83, 78, 82, 32, 118, 97, 108, 117, 101, 115, 44, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 115, 101, 32, 45, 108, 111, 103, 49, 48, 32, 45, 45, 32, 123, 108, 111, 103, 49, 48, 40, 36, 49, 42, 36, 49, 41, 125, 32, 45, 42, 32, 45, 49, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 80, 83, 78, 82, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 32, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 102, 105, 108, 108, 95, 108, 105, 110, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 39, 32, 97, 110, 100, 32, 39, 102, 105, 108, 108, 95, 108, 105, 110, 101, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 50, 44, 48, 10, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 43, 32, 123, 49, 43, 64, 123, 45, 49, 44, 109, 125, 125, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 60, 36, 49, 32, 38, 38, 32, 105, 60, 106, 40, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 48, 44, 45, 49, 41, 44, 49, 44, 48, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 60, 36, 49, 32, 38, 38, 32, 105, 60, 106, 40, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 45, 49, 41, 44, 49, 44, 48, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 115, 104, 97, 112, 101, 115, 32, 117, 115, 105, 110, 103, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 115, 107, 101, 108, 101, 116, 111, 110, 32, 48, 10, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 48, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 101, 49, 48, 32, 45, 103, 101, 32, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 91, 36, 62, 93, 32, 50, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 115, 100, 95, 112, 97, 116, 99, 104, 32, 58, 32, 95, 117, 115, 101, 95, 102, 111, 117, 114, 105, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 95, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 83, 83, 68, 32, 98, 101, 116, 119, 101, 101, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 97, 110, 100, 32, 97, 32, 112, 97, 116, 99, 104, 44, 32, 116, 97, 107, 101, 110, 32, 97, 115, 32, 99, 111, 110, 115, 101, 99, 117, 116, 105, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 114, 103, 117, 109, 101, 110, 116, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 95, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 39, 32, 105, 115, 32, 118, 97, 108, 105, 100, 32, 111, 110, 108, 121, 32, 119, 104, 101, 110, 32, 39, 117, 115, 101, 95, 102, 111, 117, 114, 105, 101, 114, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 117, 115, 101, 95, 102, 111, 117, 114, 105, 101, 114, 61, 48, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 95, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 114, 111, 112, 32, 50, 48, 37, 44, 50, 48, 37, 44, 51, 53, 37, 44, 51, 53, 37, 32, 45, 45, 115, 115, 100, 95, 112, 97, 116, 99, 104, 32, 48, 44, 48, 10, 115, 115, 100, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 83, 83, 68, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 100, 32, 112, 97, 116, 99, 104, 115, 32, 117, 115, 105, 110, 103, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 49, 44, 102, 111, 117, 114, 105, 101, 114, 44, 115, 112, 97, 116, 105, 97, 108, 125, 34, 32, 109, 111, 100, 101, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 45, 49, 45, 36, 60, 125, 93, 10, 45, 45, 115, 113, 114, 91, 49, 93, 32, 118, 97, 108, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 113, 114, 91, 48, 93, 32, 45, 45, 102, 91, 49, 93, 32, 49, 10, 45, 105, 102, 32, 36, 49, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 49, 93, 32, 120, 121, 122, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 91, 48, 44, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 48, 93, 32, 45, 50, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 43, 32, 36, 118, 97, 108, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 104, 105, 110, 110, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 115, 104, 97, 112, 101, 115, 32, 117, 115, 105, 110, 103, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 116, 104, 105, 110, 110, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 113, 117, 105, 116, 101, 32, 115, 108, 111, 119, 32, 105, 116, 101, 114, 97, 116, 105, 118, 101, 32, 112, 114, 111, 99, 101, 115, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 116, 104, 105, 110, 110, 105, 110, 103, 10, 116, 104, 105, 110, 110, 105, 110, 103, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 116, 104, 105, 110, 110, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 42, 32, 50, 32, 45, 45, 32, 49, 10, 40, 45, 49, 44, 45, 49, 44, 45, 49, 59, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 41, 32, 40, 48, 44, 45, 49, 44, 45, 49, 59, 49, 44, 49, 44, 45, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 56, 125, 10, 98, 97, 118, 103, 61, 64, 123, 45, 57, 44, 43, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 57, 57, 57, 57, 57, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 56, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 55, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 54, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 53, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 52, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 51, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 50, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 97, 97, 118, 103, 61, 64, 123, 45, 57, 44, 43, 125, 32, 45, 105, 102, 32, 123, 36, 97, 97, 118, 103, 61, 61, 36, 98, 97, 118, 103, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 98, 97, 118, 103, 61, 36, 97, 97, 118, 103, 10, 45, 100, 111, 110, 101, 10, 45, 109, 118, 91, 45, 57, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 56, 45, 45, 49, 93, 32, 45, 43, 32, 49, 32, 45, 47, 32, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 110, 101, 115, 32, 58, 32, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 116, 32, 78, 32, 116, 111, 110, 101, 115, 32, 109, 97, 115, 107, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 111, 110, 101, 115, 32, 51, 10, 116, 111, 110, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 36, 49, 32, 116, 111, 110, 101, 115, 32, 109, 97, 115, 107, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 61, 61, 91, 48, 93, 32, 123, 49, 43, 36, 62, 125, 32, 45, 100, 111, 110, 101, 32, 45, 61, 61, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 58, 32, 95, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 32, 109, 97, 112, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 49, 54, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 49, 48, 10, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 32, 109, 97, 112, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 45, 49, 93, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 73, 109, 97, 103, 101, 32, 100, 114, 97, 119, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 97, 120, 101, 115, 32, 58, 32, 120, 48, 44, 120, 49, 44, 121, 48, 44, 121, 49, 44, 95, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 62, 61, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 120, 121, 45, 97, 120, 101, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 111, 32, 100, 114, 97, 119, 32, 111, 110, 108, 121, 32, 111, 110, 101, 32, 120, 45, 97, 120, 105, 115, 32, 97, 116, 32, 114, 111, 119, 32, 89, 44, 32, 115, 101, 116, 32, 98, 111, 116, 104, 32, 39, 121, 48, 39, 32, 97, 110, 100, 32, 39, 121, 49, 39, 32, 116, 111, 32, 89, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 111, 32, 100, 114, 97, 119, 32, 111, 110, 108, 121, 32, 111, 110, 101, 32, 121, 45, 97, 120, 105, 115, 32, 97, 116, 32, 99, 111, 108, 117, 109, 110, 32, 88, 44, 32, 115, 101, 116, 32, 98, 111, 116, 104, 32, 39, 120, 48, 39, 32, 97, 110, 100, 32, 39, 120, 49, 39, 32, 116, 111, 32, 88, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 61, 49, 51, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 97, 120, 101, 115, 32, 45, 49, 44, 49, 44, 49, 44, 45, 49, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 108, 108, 32, 58, 32, 95, 82, 44, 95, 71, 44, 95, 66, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 82, 71, 66, 65, 32, 98, 97, 108, 108, 32, 115, 112, 114, 105, 116, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 82, 61, 50, 53, 53, 39, 44, 32, 39, 71, 61, 82, 39, 32, 97, 110, 100, 32, 39, 66, 61, 82, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 50, 44, 51, 50, 32, 54, 52, 44, 54, 52, 32, 50, 48, 48, 44, 50, 48, 48, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 98, 97, 108, 108, 32, 50, 53, 53, 44, 49, 54, 52, 44, 49, 48, 48, 10, 98, 97, 108, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 98, 97, 108, 108, 32, 115, 112, 114, 105, 116, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 119, 104, 61, 123, 109, 105, 110, 40, 119, 44, 104, 41, 125, 10, 45, 115, 104, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 48, 44, 49, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 40, 36, 109, 119, 104, 43, 121, 45, 120, 41, 47, 40, 50, 42, 119, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 36, 109, 119, 104, 42, 48, 46, 55, 125, 44, 123, 36, 109, 119, 104, 42, 48, 46, 51, 125, 44, 123, 109, 105, 110, 40, 51, 48, 44, 36, 109, 119, 104, 42, 36, 109, 119, 104, 47, 53, 49, 50, 41, 125, 44, 123, 109, 105, 110, 40, 51, 48, 44, 36, 109, 119, 104, 42, 36, 109, 119, 104, 47, 53, 49, 50, 41, 125, 44, 48, 44, 123, 109, 105, 110, 40, 36, 109, 119, 104, 47, 54, 52, 44, 49, 41, 125, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 123, 48, 46, 48, 50, 42, 36, 109, 119, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 51, 44, 51, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 38, 38, 40, 33, 106, 40, 45, 49, 41, 124, 124, 33, 106, 40, 49, 41, 124, 124, 33, 106, 40, 48, 44, 45, 49, 41, 124, 124, 33, 106, 40, 48, 44, 49, 41, 41, 44, 105, 102, 40, 99, 61, 61, 48, 44, 36, 49, 44, 105, 102, 40, 99, 61, 61, 49, 44, 36, 50, 44, 36, 51, 41, 41, 47, 54, 44, 48, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 32, 115, 105, 122, 101, 49, 62, 48, 44, 95, 115, 105, 122, 101, 50, 62, 48, 44, 95, 111, 102, 102, 115, 101, 116, 49, 44, 95, 111, 102, 102, 115, 101, 116, 50, 44, 95, 97, 110, 103, 108, 101, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 44, 95, 99, 111, 108, 111, 114, 50, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 50, 61, 115, 105, 122, 101, 49, 39, 44, 32, 39, 111, 102, 102, 115, 101, 116, 49, 61, 111, 102, 102, 115, 101, 116, 50, 61, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 50, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 51, 50, 44, 51, 50, 44, 48, 44, 48, 44, 50, 53, 44, 48, 46, 51, 44, 50, 53, 53, 44, 49, 50, 56, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 10, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 97, 110, 103, 108, 101, 32, 36, 53, -62, -80, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 115, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 91, 48, 93, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 114, 91, 48, 93, 32, 123, 64, 123, 48, 44, 119, 125, 47, 50, 125, 44, 49, 44, 49, 44, 50, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 48, 93, 32, 99, 121, 122, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 116, 104, 101, 116, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 10, 40, 36, 51, 44, 123, 36, 51, 43, 36, 119, 45, 49, 125, 59, 36, 51, 44, 123, 36, 51, 43, 36, 119, 45, 49, 125, 94, 36, 52, 44, 36, 52, 59, 123, 36, 52, 43, 36, 104, 45, 49, 125, 44, 123, 36, 52, 43, 36, 104, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 50, 44, 51, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 119, 42, 36, 104, 125, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 45, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 59, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 41, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 50, 44, 45, 49, 10, 45, 37, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 50, 125, 32, 45, 62, 61, 91, 45, 49, 93, 32, 36, 49, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 105, 101, 49, 57, 51, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 67, 73, 69, 45, 49, 57, 51, 49, 32, 99, 104, 114, 111, 109, 97, 116, 105, 99, 105, 116, 121, 32, 100, 105, 97, 103, 114, 97, 109, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 53, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 99, 105, 101, 49, 57, 51, 49, 10, 99, 105, 101, 49, 57, 51, 49, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 67, 73, 69, 45, 49, 57, 51, 49, 32, 99, 104, 114, 111, 109, 97, 116, 105, 99, 105, 116, 121, 32, 100, 105, 97, 103, 114, 97, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 51, 55, 59, 51, 54, 41, 10, 40, 50, 56, 48, 44, 52, 50, 48, 44, 48, 59, 49, 55, 49, 44, 56, 50, 57, 44, 48, 59, 49, 53, 56, 44, 56, 50, 48, 44, 48, 59, 49, 53, 51, 44, 56, 49, 54, 44, 48, 59, 49, 52, 55, 44, 56, 49, 49, 44, 48, 59, 49, 52, 48, 44, 56, 48, 52, 44, 48, 59, 49, 51, 50, 44, 55, 57, 52, 44, 48, 59, 49, 50, 49, 44, 55, 55, 54, 44, 48, 59, 49, 48, 54, 44, 55, 52, 55, 44, 48, 59, 56, 56, 44, 55, 48, 49, 44, 48, 59, 92, 10, 54, 53, 44, 54, 51, 51, 44, 48, 59, 52, 50, 44, 53, 51, 57, 44, 48, 59, 50, 48, 44, 52, 50, 49, 44, 48, 59, 53, 44, 50, 57, 53, 44, 48, 59, 48, 44, 49, 55, 57, 44, 48, 59, 52, 44, 49, 49, 53, 44, 48, 59, 49, 48, 44, 56, 51, 44, 48, 59, 49, 54, 44, 54, 49, 44, 48, 59, 50, 53, 44, 51, 56, 44, 48, 59, 51, 53, 44, 50, 49, 44, 48, 59, 52, 55, 44, 49, 48, 44, 48, 59, 53, 56, 44, 51, 44, 48, 59, 92, 10, 55, 49, 44, 48, 44, 48, 59, 57, 50, 44, 49, 44, 48, 59, 49, 49, 49, 44, 55, 44, 48, 59, 49, 53, 49, 44, 50, 56, 44, 48, 59, 49, 56, 57, 44, 53, 50, 44, 48, 59, 50, 50, 54, 44, 55, 57, 44, 48, 59, 50, 54, 50, 44, 49, 48, 57, 44, 48, 59, 50, 57, 56, 44, 49, 52, 49, 44, 48, 59, 51, 51, 52, 44, 49, 55, 53, 44, 48, 59, 51, 55, 48, 44, 50, 48, 57, 44, 48, 59, 52, 48, 53, 44, 50, 52, 52, 44, 48, 59, 92, 10, 52, 52, 49, 44, 50, 55, 57, 44, 48, 59, 52, 55, 53, 44, 51, 49, 51, 44, 48, 59, 53, 48, 57, 44, 51, 52, 55, 44, 48, 59, 55, 51, 49, 44, 53, 54, 56, 44, 48, 41, 10, 120, 77, 61, 55, 51, 49, 32, 121, 77, 61, 56, 50, 57, 10, 50, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 51, 44, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 123, 104, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 54, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 120, 82, 61, 54, 51, 54, 32, 121, 82, 61, 53, 48, 52, 32, 120, 71, 61, 50, 57, 55, 32, 121, 71, 61, 50, 51, 52, 32, 120, 66, 61, 49, 52, 55, 32, 121, 66, 61, 55, 55, 52, 10, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 32, 45, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 119, 45, 49, 125, 44, 48, 44, 48, 44, 123, 104, 45, 49, 125, 44, 34, 34, 50, 53, 53, 44, 48, 44, 48, 44, 34, 34, 48, 44, 50, 53, 53, 44, 48, 44, 34, 34, 48, 44, 48, 44, 50, 53, 53, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 97, 120, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 51, 59, 49, 59, 36, 120, 82, 59, 36, 121, 82, 59, 45, 48, 46, 48, 49, 59, 36, 120, 71, 59, 36, 121, 71, 59, 45, 48, 46, 48, 49, 59, 36, 120, 66, 59, 36, 121, 66, 59, 45, 48, 46, 48, 49, 59, 57, 59, 48, 59, 49, 59, 50, 59, 48, 59, 48, 59, 53, 49, 49, 59, 48, 59, 48, 59, 53, 49, 49, 59, 45, 49, 50, 56, 59, 53, 49, 50, 59, 53, 49, 50, 59, 51, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 32, 40, 49, 41, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 49, 44, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 45, 42, 51, 100, 91, 48, 44, 49, 93, 32, 123, 40, 119, 45, 56, 41, 47, 36, 120, 77, 125, 44, 123, 40, 104, 45, 51, 50, 41, 47, 36, 121, 77, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 10, 45, 45, 110, 101, 113, 91, 45, 51, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 46, 53, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 10, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 52, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 48, 46, 55, 53, 44, 48, 46, 56, 53, 44, 48, 44, 49, 51, 44, 49, 32, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 52, 48, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 105, 114, 99, 108, 101, 32, 58, 32, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 82, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 99, 105, 114, 99, 108, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 32, 114, 97, 100, 105, 117, 115, 32, 111, 102, 32, 39, 49, 48, 48, 37, 39, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 115, 113, 114, 116, 40, 119, 105, 100, 116, 104, 94, 50, 43, 104, 101, 105, 103, 104, 116, 94, 50, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 32, 73, 102, 32, 97, 32, 112, 97, 116, 116, 101, 114, 110, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 99, 105, 114, 99, 108, 101, 32, 105, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 114, 97, 119, 110, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 102, 105, 108, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 51, 48, 41, 125, 44, 48, 46, 51, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 44, 48, 46, 55, 44, 50, 53, 53, 10, 99, 105, 114, 99, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 53, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 40, 36, 49, 44, 36, 50, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 102, 105, 108, 108, 101, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 40, 36, 49, 44, 36, 50, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 53, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 51, 44, 48, 44, 36, 123, 52, 45, 45, 49, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 108, 105, 112, 115, 101, 32, 58, 32, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 82, 91, 37, 93, 44, 114, 91, 37, 93, 44, 95, 97, 110, 103, 108, 101, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 101, 108, 108, 105, 112, 115, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 32, 114, 97, 100, 105, 117, 115, 32, 111, 102, 32, 39, 49, 48, 48, 37, 39, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 115, 113, 114, 116, 40, 119, 105, 100, 116, 104, 94, 50, 43, 104, 101, 105, 103, 104, 116, 94, 50, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 32, 73, 102, 32, 97, 32, 112, 97, 116, 116, 101, 114, 110, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 101, 108, 108, 105, 112, 115, 101, 32, 105, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 114, 97, 119, 110, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 102, 105, 108, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 51, 48, 41, 125, 44, 123, 63, 40, 51, 48, 41, 125, 44, 123, 63, 40, 49, 56, 48, 41, 125, 44, 48, 46, 51, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 44, 49, 48, 48, 44, 48, 44, 48, 46, 55, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 102, 108, 111, 111, 100, 32, 58, 32, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 116, 111, 108, 101, 114, 97, 110, 99, 101, 62, 61, 48, 44, 95, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 108, 111, 111, 100, 45, 102, 105, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 32, 97, 110, 100, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 121, 61, 122, 61, 48, 39, 44, 32, 39, 116, 111, 108, 101, 114, 97, 110, 99, 101, 61, 48, 39, 44, 32, 39, 105, 115, 95, 104, 105, 103, 104, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 32, 45, 102, 108, 111, 111, 100, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 48, 44, 50, 48, 44, 48, 44, 49, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 58, 32, 95, 115, 105, 103, 109, 97, 49, 91, 37, 93, 44, 95, 115, 105, 103, 109, 97, 50, 91, 37, 93, 44, 95, 97, 110, 103, 108, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 97, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 103, 109, 97, 49, 61, 51, 39, 44, 32, 39, 115, 105, 103, 109, 97, 50, 61, 115, 105, 103, 109, 97, 49, 39, 32, 97, 110, 100, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 49, 48, 48, 44, 51, 48, 44, 52, 53, 10, 103, 97, 117, 115, 115, 105, 97, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 46, 34, 10, 45, 118, 32, 45, 10, 117, 61, 123, 99, 111, 115, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 10, 118, 61, 123, 115, 105, 110, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 10, 100, 109, 97, 120, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 49, 41, 125, 32, 108, 49, 61, 36, 49, 32, 45, 101, 108, 115, 101, 32, 108, 49, 61, 123, 36, 123, 49, 125, 49, 48, 48, 48, 48, 42, 36, 100, 109, 97, 120, 47, 49, 48, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 50, 41, 125, 32, 108, 50, 61, 36, 50, 32, 45, 101, 108, 115, 101, 32, 108, 50, 61, 123, 36, 123, 50, 125, 49, 48, 48, 48, 48, 42, 36, 100, 109, 97, 120, 47, 49, 48, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 108, 49, 61, 123, 49, 47, 40, 50, 42, 109, 97, 120, 40, 49, 47, 51, 44, 36, 108, 49, 41, 94, 50, 41, 125, 10, 108, 50, 61, 123, 49, 47, 40, 50, 42, 109, 97, 120, 40, 49, 47, 51, 44, 36, 108, 50, 41, 94, 50, 41, 125, 10, 65, 61, 123, 36, 108, 49, 42, 36, 117, 42, 36, 117, 43, 36, 108, 50, 42, 36, 118, 42, 36, 118, 125, 10, 66, 61, 123, 40, 36, 108, 49, 45, 36, 108, 50, 41, 42, 36, 117, 42, 36, 118, 125, 10, 67, 61, 123, 36, 108, 49, 42, 36, 118, 42, 36, 118, 43, 36, 108, 50, 42, 36, 117, 42, 36, 117, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 115, 61, 123, 100, 125, 44, 123, 115, 125, 32, 45, 114, 109, 10, 40, 123, 45, 36, 119, 47, 50, 125, 44, 123, 36, 119, 47, 50, 125, 41, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 51, 10, 45, 102, 91, 45, 49, 93, 32, 34, 89, 61, 121, 45, 34, 123, 36, 104, 47, 50, 125, 59, 36, 65, 34, 42, 105, 42, 105, 43, 50, 42, 34, 36, 66, 34, 42, 105, 42, 89, 43, 34, 36, 67, 42, 34, 89, 42, 89, 34, 10, 45, 42, 32, 45, 49, 32, 45, 101, 120, 112, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 115, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 97, 112, 104, 32, 58, 32, 91, 102, 117, 110, 99, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 93, 44, 95, 112, 108, 111, 116, 95, 116, 121, 112, 101, 44, 95, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 44, 95, 121, 109, 105, 110, 44, 95, 121, 109, 97, 120, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 44, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 61, 48, 44, 95, 112, 108, 111, 116, 95, 116, 121, 112, 101, 44, 95, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 44, 95, 120, 109, 105, 110, 44, 120, 109, 97, 120, 44, 95, 121, 109, 105, 110, 44, 95, 121, 109, 97, 120, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 103, 114, 97, 112, 104, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 108, 111, 116, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 108, 105, 110, 101, 115, 32, 124, 32, 50, 61, 115, 112, 108, 105, 110, 101, 115, 32, 124, 32, 51, 61, 98, 97, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 112, 111, 105, 110, 116, 115, 32, 124, 32, 50, 44, 51, 61, 99, 114, 111, 115, 115, 101, 115, 32, 124, 32, 52, 44, 53, 61, 99, 105, 114, 99, 108, 101, 115, 32, 124, 32, 54, 44, 55, 61, 115, 113, 117, 97, 114, 101, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 108, 111, 116, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 118, 101, 114, 116, 101, 120, 95, 116, 121, 112, 101, 61, 49, 39, 44, 32, 39, 121, 109, 105, 110, 61, 121, 109, 97, 120, 61, 48, 32, 40, 97, 117, 116, 111, 41, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 119, 115, 32, 53, 48, 37, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 51, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 100, 105, 118, 91, 48, 93, 32, 49, 46, 53, 32, 45, 103, 114, 97, 112, 104, 91, 48, 93, 32, 91, 49, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 32, 45, 103, 114, 97, 112, 104, 91, 48, 93, 32, 91, 50, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 103, 114, 97, 112, 104, 91, 48, 93, 32, 91, 51, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 107, 101, 101, 112, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 103, 114, 105, 100, 32, 58, 32, 115, 105, 122, 101, 95, 120, 91, 37, 93, 62, 61, 48, 44, 115, 105, 122, 101, 95, 121, 91, 37, 93, 62, 61, 48, 44, 95, 111, 102, 102, 115, 101, 116, 95, 120, 91, 37, 93, 44, 95, 111, 102, 102, 115, 101, 116, 95, 121, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 120, 121, 45, 103, 114, 105, 100, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 102, 102, 115, 101, 116, 95, 120, 61, 111, 102, 102, 115, 101, 116, 95, 121, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 103, 114, 105, 100, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 103, 114, 105, 100, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 49, 50, 56, 44, 51, 50, 44, 49, 54, 10, 103, 114, 105, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 54, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 120, 121, 45, 103, 114, 105, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 44, 32, 112, 97, 116, 116, 101, 114, 110, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 112, 97, 116, 116, 101, 114, 110, 61, 36, 54, 32, 99, 111, 108, 111, 114, 61, 36, 123, 55, 45, 45, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 120, 121, 45, 103, 114, 105, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 44, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 112, 97, 116, 116, 101, 114, 110, 61, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 32, 99, 111, 108, 111, 114, 61, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 120, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 32, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 121, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 120, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 32, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 121, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 120, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 41, 44, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 62, 61, 49, 125, 10, 111, 102, 102, 115, 101, 116, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 120, 44, 36, 115, 105, 122, 101, 42, 36, 51, 44, 36, 51, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 49, 44, 123, 49, 43, 105, 110, 116, 40, 36, 119, 47, 36, 115, 105, 122, 101, 41, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 111, 102, 102, 115, 101, 116, 37, 36, 115, 105, 122, 101, 125, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 123, 36, 104, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 110, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 110, 59, 36, 110, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 49, 59, 36, 104, 59, 36, 115, 41, 32, 49, 44, 36, 104, 44, 49, 44, 36, 115, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 36, 99, 111, 108, 111, 114, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 40, 45, 49, 50, 56, 59, 49, 59, 36, 104, 59, 49, 41, 32, 49, 44, 36, 104, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 49, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 94, 48, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 121, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 50, 41, 44, 36, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 62, 61, 49, 125, 10, 111, 102, 102, 115, 101, 116, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 121, 44, 36, 115, 105, 122, 101, 42, 36, 52, 44, 36, 52, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 49, 44, 123, 49, 43, 105, 110, 116, 40, 36, 104, 47, 36, 115, 105, 122, 101, 41, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 111, 102, 102, 115, 101, 116, 37, 36, 115, 105, 122, 101, 125, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 123, 36, 119, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 110, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 110, 59, 36, 110, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 49, 59, 36, 115, 41, 32, 36, 119, 44, 49, 44, 49, 44, 36, 115, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 36, 99, 111, 108, 111, 114, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 49, 59, 49, 41, 32, 36, 119, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 49, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 94, 48, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 106, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 105, 109, 97, 103, 101, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 32, 58, 32, 91, 115, 112, 114, 105, 116, 101, 93, 44, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 99, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 91, 115, 112, 114, 105, 116, 101, 95, 109, 97, 115, 107, 93, 44, 95, 109, 97, 120, 95, 111, 112, 97, 99, 105, 116, 121, 95, 109, 97, 115, 107, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 112, 114, 105, 116, 101, 32, 105, 109, 97, 103, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 106, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 122, 61, 99, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 115, 112, 114, 105, 116, 101, 95, 109, 97, 115, 107, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 95, 111, 112, 97, 99, 105, 116, 121, 95, 109, 97, 115, 107, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 114, 111, 112, 32, 52, 48, 37, 44, 52, 48, 37, 44, 54, 48, 37, 44, 54, 48, 37, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 32, 45, 105, 109, 97, 103, 101, 91, 48, 93, 32, 91, 45, 49, 93, 44, 51, 48, 37, 44, 51, 48, 37, 32, 45, 107, 101, 101, 112, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 110, 101, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 108, 105, 110, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 48, 48, 32, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 63, 40, 119, 41, 125, 44, 123, 63, 40, 104, 41, 125, 44, 48, 46, 53, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 108, 105, 110, 101, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 32, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 32, 122, 48, 114, 44, 122, 48, 105, 44, 122, 49, 114, 44, 122, 49, 105, 44, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 95, 109, 97, 120, 62, 61, 48, 44, 95, 105, 115, 95, 106, 117, 108, 105, 97, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 99, 48, 114, 44, 95, 99, 48, 105, 44, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 47, 106, 117, 108, 105, 97, 32, 102, 114, 97, 99, 116, 97, 108, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 116, 101, 114, 97, 116, 105, 111, 110, 95, 109, 97, 120, 61, 49, 48, 48, 39, 44, 32, 39, 105, 115, 95, 106, 117, 108, 105, 97, 61, 48, 39, 44, 32, 39, 99, 48, 114, 61, 99, 48, 105, 61, 48, 39, 32, 97, 110, 100, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 45, 50, 46, 53, 44, 45, 50, 44, 50, 44, 50, 44, 49, 48, 50, 52, 32, 45, 109, 97, 112, 32, 48, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 45, 48, 46, 50, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 114, 98, 108, 101, 32, 58, 32, 95, 105, 109, 97, 103, 101, 95, 119, 101, 105, 103, 104, 116, 44, 95, 112, 97, 116, 116, 101, 114, 110, 95, 119, 101, 105, 103, 104, 116, 44, 95, 97, 110, 103, 108, 101, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 62, 61, 48, 44, 95, 97, 108, 112, 104, 97, 44, 95, 115, 105, 103, 109, 97, 44, 95, 99, 117, 116, 95, 108, 111, 119, 62, 61, 48, 44, 95, 99, 117, 116, 95, 104, 105, 103, 104, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 109, 97, 114, 98, 108, 101, 32, 108, 105, 107, 101, 32, 112, 97, 116, 116, 101, 114, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 105, 109, 97, 103, 101, 95, 119, 101, 105, 103, 104, 116, 61, 48, 46, 50, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 95, 119, 101, 105, 103, 104, 116, 61, 48, 46, 49, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 52, 53, 39, 44, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 48, 39, 44, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 46, 52, 39, 44, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 48, 46, 56, 39, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 108, 112, 104, 97, 61, 48, 46, 54, 39, 44, 32, 39, 115, 105, 103, 109, 97, 61, 49, 46, 49, 39, 32, 97, 110, 100, 32, 39, 99, 117, 116, 95, 108, 111, 119, 61, 99, 117, 116, 95, 104, 105, 103, 104, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 97, 114, 98, 108, 101, 32, 44, 10, 109, 97, 114, 98, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 48, 46, 49, 125, 44, 36, 123, 51, 61, 52, 53, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 52, 125, 44, 36, 123, 54, 61, 48, 46, 56, 125, 44, 36, 123, 55, 61, 48, 46, 54, 125, 44, 36, 123, 56, 61, 49, 46, 49, 125, 44, 36, 123, 57, 61, 48, 37, 125, 44, 36, 123, 49, 48, 61, 49, 48, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 109, 97, 114, 98, 108, 101, 32, 108, 105, 107, 101, 32, 112, 97, 116, 116, 101, 114, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 105, 109, 97, 103, 101, 32, 119, 101, 105, 103, 104, 116, 32, 36, 49, 44, 32, 112, 97, 116, 116, 101, 114, 110, 32, 119, 101, 105, 103, 104, 116, 32, 36, 50, 44, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 52, 44, 32, 34, 92, 10, 34, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 53, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 54, 44, 32, 97, 108, 112, 104, 97, 32, 36, 55, 44, 32, 115, 105, 103, 109, 97, 32, 36, 56, 44, 32, 97, 110, 100, 32, 99, 117, 116, 32, 40, 36, 57, 44, 36, 49, 48, 41, 46, 34, 10, 45, 118, 32, 45, 32, 115, 120, 61, 123, 36, 50, 42, 115, 105, 110, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 32, 115, 121, 61, 123, 36, 50, 42, 99, 111, 115, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 32, 45, 102, 32, 115, 105, 110, 40, 120, 42, 36, 115, 120, 43, 121, 42, 36, 115, 121, 43, 105, 42, 36, 49, 41, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 57, 44, 36, 49, 48, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 122, 101, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 99, 101, 108, 108, 95, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 109, 97, 122, 101, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 97, 122, 101, 32, 51, 48, 44, 50, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 109, 97, 122, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 36, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 50, 52, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 36, 49, 120, 36, 50, 32, 109, 97, 122, 101, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 114, 111, 117, 110, 100, 40, 63, 40, 36, 49, 45, 49, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 36, 50, 45, 49, 41, 41, 125, 41, 10, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 49, 53, 32, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 36, 49, 44, 36, 50, 10, 45, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 109, 97, 122, 101, 93, 10, 45, 118, 32, 43, 10, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 58, 10, 45, 100, 111, 10, 120, 61, 64, 123, 45, 50, 44, 45, 50, 125, 32, 121, 61, 64, 123, 45, 50, 44, 45, 49, 125, 10, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 120, 44, 36, 121, 44, 48, 44, 49, 10, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 48, 10, 117, 112, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 56, 34, 32, 38, 38, 32, 34, 36, 121, 62, 48, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 44, 36, 121, 45, 49, 44, 48, 44, 49, 41, 125, 32, 117, 112, 61, 36, 120, 44, 123, 36, 121, 45, 49, 125, 44, 56, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 100, 111, 119, 110, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 52, 34, 32, 38, 38, 32, 34, 36, 121, 60, 36, 50, 45, 49, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 44, 36, 121, 43, 49, 44, 48, 44, 49, 41, 125, 32, 100, 111, 119, 110, 61, 36, 120, 44, 123, 36, 121, 43, 49, 125, 44, 52, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 108, 101, 102, 116, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 50, 34, 32, 38, 38, 32, 34, 36, 120, 62, 48, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 45, 49, 44, 36, 121, 44, 48, 44, 49, 41, 125, 32, 108, 101, 102, 116, 61, 123, 36, 120, 45, 49, 125, 44, 36, 121, 44, 50, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 114, 105, 103, 104, 116, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 34, 32, 38, 38, 32, 34, 36, 120, 60, 36, 49, 45, 49, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 43, 49, 44, 36, 121, 44, 48, 44, 49, 41, 125, 32, 114, 105, 103, 104, 116, 61, 123, 36, 120, 43, 49, 125, 44, 36, 121, 44, 49, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 10, 40, 36, 117, 112, 44, 36, 100, 111, 119, 110, 44, 36, 108, 101, 102, 116, 44, 36, 114, 105, 103, 104, 116, 41, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 123, 63, 40, 52, 41, 125, 44, 48, 44, 48, 44, 50, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 56, 125, 32, 32, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 55, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 45, 49, 41, 38, 49, 49, 125, 44, 36, 120, 44, 123, 36, 121, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 52, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 49, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 43, 49, 41, 38, 55, 125, 44, 36, 120, 44, 123, 36, 121, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 50, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 51, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 45, 49, 44, 36, 121, 41, 38, 49, 52, 125, 44, 123, 36, 120, 45, 49, 125, 44, 36, 121, 10, 45, 101, 108, 115, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 52, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 43, 49, 44, 36, 121, 41, 38, 49, 51, 125, 44, 123, 36, 120, 43, 49, 125, 44, 36, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 122, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 121, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 104, 125, 61, 61, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 32, 58, 10, 45, 105, 91, 48, 93, 32, 36, 49, 44, 36, 49, 32, 45, 105, 91, 49, 93, 32, 91, 48, 93, 120, 49, 53, 10, 45, 108, 105, 110, 101, 91, 56, 45, 49, 53, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 52, 45, 55, 44, 49, 50, 45, 49, 53, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 50, 45, 51, 44, 54, 45, 55, 44, 49, 48, 45, 49, 49, 44, 49, 52, 45, 49, 53, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 49, 45, 49, 53, 58, 50, 93, 32, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 97, 91, 48, 45, 49, 53, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 120, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 122, 101, 95, 109, 97, 115, 107, 32, 58, 32, 95, 99, 101, 108, 108, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 109, 97, 122, 101, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 115, 105, 122, 101, 32, 97, 110, 100, 32, 115, 104, 97, 112, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 115, 107, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 97, 115, 107, 32, 109, 97, 121, 32, 99, 111, 110, 116, 97, 105, 110, 32, 100, 105, 115, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 115, 104, 97, 112, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 48, 32, 45, 116, 101, 120, 116, 32, 34, 71, 39, 77, 73, 67, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 100, 105, 108, 97, 116, 101, 32, 51, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 109, 97, 122, 101, 95, 109, 97, 115, 107, 32, 56, 32, 45, 100, 105, 108, 97, 116, 101, 32, 51, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 42, 32, 50, 53, 53, 10, 109, 97, 122, 101, 95, 109, 97, 115, 107, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 52, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 109, 97, 115, 107, 101, 100, 32, 109, 97, 122, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 99, 101, 108, 108, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 100, 111, 10, 45, 45, 114, 97, 110, 100, 91, 48, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 91, 48, 93, 32, 40, 123, 120, 77, 125, 44, 123, 121, 77, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 64, 45, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 50, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 49, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 64, 45, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 123, 119, 125, 44, 123, 104, 125, 10, 45, 119, 104, 105, 108, 101, 32, 64, 123, 48, 44, 77, 125, 10, 45, 114, 109, 91, 48, 93, 32, 45, 43, 32, 45, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 109, 97, 122, 101, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 32, 91, 111, 98, 106, 101, 99, 116, 51, 100, 93, 44, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 114, 101, 110, 100, 101, 114, 105, 110, 103, 95, 109, 111, 100, 101, 44, 95, 105, 115, 95, 100, 111, 117, 98, 108, 101, 51, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 115, 95, 122, 98, 117, 102, 102, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 102, 111, 99, 97, 108, 101, 44, 95, 108, 105, 103, 104, 116, 95, 120, 44, 95, 108, 105, 103, 104, 116, 95, 121, 44, 95, 108, 105, 103, 104, 116, 95, 122, 44, 95, 115, 112, 101, 99, 117, 108, 97, 114, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 95, 115, 112, 101, 99, 117, 108, 97, 114, 95, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 114, 101, 110, 100, 101, 114, 105, 110, 103, 95, 109, 111, 100, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 111, 116, 115, 32, 124, 32, 49, 61, 119, 105, 114, 101, 102, 114, 97, 109, 101, 32, 124, 32, 50, 61, 102, 108, 97, 116, 32, 124, 32, 51, 61, 102, 108, 97, 116, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 52, 61, 103, 111, 117, 114, 97, 117, 100, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 53, 61, 112, 104, 111, 110, 103, 45, 115, 104, 97, 100, 101, 100, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 122, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 122, 98, 117, 102, 102, 101, 114, 61, 49, 39, 46, 32, 65, 108, 108, 32, 111, 116, 104, 101, 114, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 116, 97, 107, 101, 32, 116, 104, 101, 105, 114, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 51, 100, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 49, 48, 32, 45, 99, 111, 110, 101, 51, 100, 32, 51, 48, 44, 45, 49, 50, 48, 32, 45, 97, 100, 100, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 107, 101, 101, 112, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 58, 32, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 61, 48, 44, 48, 60, 61, 95, 109, 105, 110, 95, 115, 99, 97, 108, 101, 60, 61, 49, 48, 48, 44, 95, 97, 108, 108, 111, 119, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 123, 32, 48, 61, 48, -62, -80, 32, 124, 32, 49, 61, 49, 56, 48, -62, -80, 32, 124, 32, 50, 61, 57, 48, -62, -80, 32, 124, 32, 51, 61, 97, 110, 121, 32, 125, 44, 95, 115, 112, 97, 99, 105, 110, 103, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 61, 48, 44, 44, 109, 97, 120, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 121, 32, 116, 111, 32, 114, 97, 110, 100, 111, 109, 108, 121, 32, 112, 97, 99, 107, 32, 97, 115, 32, 109, 117, 99, 104, 32, 115, 112, 114, 105, 116, 101, 115, 32, 97, 115, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 111, 110, 116, 111, 32, 116, 104, 101, 32, 39, 101, 109, 112, 116, 121, 39, 32, 97, 114, 101, 97, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 114, 105, 116, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 101, 118, 101, 110, 116, 117, 97, 108, 108, 121, 32, 114, 111, 116, 97, 116, 101, 100, 32, 97, 110, 100, 32, 115, 99, 97, 108, 101, 100, 32, 100, 117, 114, 105, 110, 103, 32, 116, 104, 101, 32, 112, 97, 99, 107, 105, 110, 103, 32, 112, 114, 111, 99, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 105, 114, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 116, 104, 101, 32, 99, 97, 110, 118, 97, 115, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 98, 101, 32, 102, 105, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 115, 112, 114, 105, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 116, 115, 32, 108, 97, 115, 116, 32, 99, 104, 97, 110, 110, 101, 108, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 32, 98, 105, 110, 97, 114, 121, 32, 109, 97, 115, 107, 32, 119, 104, 111, 115, 101, 32, 122, 101, 114, 111, 32, 118, 97, 108, 117, 101, 115, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 112, 111, 116, 101, 110, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 102, 111, 114, 32, 100, 114, 97, 119, 105, 110, 103, 32, 116, 104, 101, 32, 115, 112, 114, 105, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 116, 104, 101, 32, 115, 112, 114, 105, 116, 101, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 102, 111, 114, 32, 112, 97, 99, 107, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 105, 114, 32, 108, 97, 115, 116, 32, 99, 104, 97, 110, 110, 101, 108, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 32, 98, 105, 110, 97, 114, 121, 32, 109, 97, 115, 107, 32, 116, 104, 97, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 115, 32, 116, 104, 101, 32, 115, 112, 114, 105, 116, 101, 32, 115, 104, 97, 112, 101, 32, 40, 105, 46, 101, 46, 32, 97, 32, 56, 45, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 115, 112, 114, 105, 116, 101, 32, 112, 97, 99, 107, 105, 110, 103, 32, 102, 111, 108, 108, 111, 119, 115, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 112, 114, 105, 116, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 114, 105, 116, 101, 32, 112, 97, 99, 107, 105, 110, 103, 32, 105, 115, 32, 100, 111, 110, 101, 32, 111, 110, 32, 114, 97, 110, 100, 111, 109, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 105, 116, 101, 114, 97, 116, 105, 118, 101, 108, 121, 32, 119, 105, 116, 104, 32, 100, 101, 99, 114, 101, 97, 115, 105, 110, 103, 32, 115, 99, 97, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 39, 32, 115, 101, 116, 115, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 100, 101, 99, 114, 101, 97, 115, 105, 110, 103, 32, 115, 99, 97, 108, 101, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 102, 111, 114, 32, 97, 108, 108, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 112, 114, 105, 116, 101, 115, 32, 116, 111, 32, 98, 101, 32, 112, 97, 99, 107, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 109, 105, 110, 95, 115, 99, 97, 108, 101, 39, 32, 40, 105, 110, 32, 37, 41, 32, 115, 101, 116, 115, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 115, 105, 122, 101, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 102, 111, 114, 32, 112, 97, 99, 107, 105, 110, 103, 32, 40, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 115, 32, 97, 32, 112, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 115, 112, 114, 105, 116, 101, 32, 115, 105, 122, 101, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 115, 112, 97, 99, 105, 110, 103, 39, 32, 99, 97, 110, 32, 98, 101, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 111, 114, 32, 110, 101, 103, 97, 116, 105, 118, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 39, 32, 116, 101, 108, 108, 115, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 100, 101, 115, 105, 114, 101, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 102, 97, 105, 108, 101, 100, 32, 116, 114, 105, 97, 108, 115, 32, 98, 101, 102, 111, 114, 101, 32, 101, 110, 100, 105, 110, 103, 32, 116, 104, 101, 32, 102, 105, 108, 108, 105, 110, 103, 32, 112, 114, 111, 99, 101, 115, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 53, 39, 44, 32, 39, 109, 105, 110, 95, 115, 99, 97, 108, 101, 61, 50, 53, 39, 44, 32, 39, 97, 108, 108, 111, 119, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 51, 39, 44, 32, 39, 115, 112, 97, 99, 105, 110, 103, 61, 49, 39, 44, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 55, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 50, 53, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 34, 109, 105, 110, 40, 50, 53, 53, 44, 121, 42, 99, 47, 50, 41, 34, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 44, 49, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 51, 44, 50, 53, 10, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 51, 125, 41, 32, 38, 38, 32, 36, 51, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 51, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 49, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 53, 61, 55, 125, 41, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 54, 61, 50, 53, 54, 125, 41, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 97, 110, 100, 111, 109, 108, 121, 32, 112, 97, 99, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 44, 32, 109, 105, 110, 105, 109, 117, 109, 32, 115, 99, 97, 108, 101, 32, 36, 50, 37, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 110, 111, 44, 49, 56, 48, -62, -80, 44, 57, 48, -62, -80, 44, 97, 110, 121, 125, 34, 32, 114, 111, 116, 97, 116, 105, 111, 110, 44, 32, 115, 112, 97, 99, 105, 110, 103, 32, 36, 52, 44, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 53, 32, 97, 110, 100, 32, 36, 54, 32, 109, 97, 120, 105, 109, 117, 109, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 78, 61, 123, 64, 35, 45, 49, 125, 32, 105, 115, 95, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 123, 109, 97, 120, 40, 50, 44, 64, 123, 36, 62, 44, 115, 125, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 36, 62, 42, 49, 48, 48, 47, 36, 49, 125, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 10, 114, 97, 116, 105, 111, 61, 123, 105, 102, 40, 36, 49, 62, 49, 44, 36, 50, 43, 40, 49, 48, 48, 45, 36, 50, 41, 42, 36, 60, 47, 40, 36, 49, 45, 49, 41, 44, 49, 48, 48, 41, 125, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 45, 108, 91, 123, 49, 43, 36, 62, 125, 93, 10, 119, 61, 123, 119, 42, 36, 114, 97, 116, 105, 111, 125, 32, 104, 61, 123, 104, 42, 36, 114, 97, 116, 105, 111, 125, 10, 45, 105, 102, 32, 123, 36, 119, 60, 49, 124, 124, 36, 104, 60, 49, 125, 32, 45, 114, 109, 10, 45, 101, 108, 115, 101, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 97, 114, 101, 97, 123, 49, 43, 36, 62, 125, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 108, 91, 48, 44, 123, 36, 78, 43, 49, 125, 45, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 10, 105, 110, 100, 61, 123, 49, 43, 40, 36, 62, 37, 36, 78, 41, 125, 32, 97, 114, 101, 97, 61, 36, 123, 97, 114, 101, 97, 36, 105, 110, 100, 125, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 91, 36, 105, 110, 100, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 41, 42, 49, 56, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 51, 41, 41, 42, 57, 48, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 63, 42, 51, 54, 48, 125, 32, 45, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 97, 114, 101, 97, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 36, 52, 62, 49, 125, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 123, 50, 42, 36, 52, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 60, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 123, 45, 50, 42, 36, 52, 43, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 105, 102, 32, 36, 105, 115, 95, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 49, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 64, 123, 36, 105, 110, 100, 44, 109, 97, 120, 40, 119, 44, 104, 41, 125, 41, 125, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 108, 91, 45, 49, 93, 10, 45, 115, 51, 100, 32, 45, 47, 91, 49, 93, 32, 36, 78, 32, 45, 114, 111, 117, 110, 100, 91, 49, 93, 32, 45, 109, 97, 120, 91, 49, 93, 32, 49, 32, 110, 61, 64, 123, 49, 44, 48, 125, 10, 45, 114, 91, 50, 93, 32, 51, 44, 123, 64, 123, 50, 44, 104, 125, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 50, 93, 32, 49, 44, 64, 123, 50, 44, 104, 125, 32, 45, 114, 97, 110, 100, 91, 50, 93, 32, 48, 44, 49, 32, 45, 97, 91, 50, 44, 51, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 50, 93, 32, 43, 44, 121, 32, 45, 122, 91, 50, 93, 32, 49, 44, 51, 32, 45, 114, 91, 50, 93, 32, 51, 44, 36, 110, 44, 49, 44, 49, 32, 45, 121, 91, 50, 93, 32, 121, 10, 45, 114, 91, 51, 93, 32, 49, 44, 123, 50, 42, 36, 110, 125, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 52, 93, 32, 49, 44, 123, 51, 42, 36, 110, 125, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 53, 93, 32, 49, 44, 36, 110, 44, 49, 44, 49, 44, 48, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 105, 102, 32, 36, 110, 10, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 91, 45, 54, 93, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 52, 44, 123, 36, 110, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 91, 45, 51, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 54, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 49, 41, 41, 42, 49, 56, 48, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 49, 56, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 52, 44, 123, 36, 110, 45, 50, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 52, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 52, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 91, 45, 53, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 54, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 51, 41, 41, 42, 57, 48, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 51, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 52, 125, 32, 52, 44, 123, 36, 110, 45, 52, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 51, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 52, 125, 32, 91, 45, 57, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 123, 36, 78, 43, 51, 125, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 123, 36, 78, 43, 51, 125, 45, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 51, 93, 10, 91, 48, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 36, 97, 114, 101, 97, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 64, 123, 45, 50, 44, 115, 45, 50, 125, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 105, 77, 125, 32, 45, 106, 91, 48, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 62, 36, 53, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 108, 115, 101, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 32, 45, 107, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 101, 99, 104, 97, 114, 116, 32, 58, 32, 108, 97, 98, 101, 108, 95, 104, 101, 105, 103, 104, 116, 62, 61, 48, 44, 108, 97, 98, 101, 108, 95, 82, 44, 108, 97, 98, 101, 108, 95, 71, 44, 108, 97, 98, 101, 108, 95, 66, 44, 34, 108, 97, 98, 101, 108, 49, 34, 44, 118, 97, 108, 117, 101, 49, 44, 82, 49, 44, 71, 49, 44, 66, 49, 44, 46, 46, 46, 44, 34, 108, 97, 98, 101, 108, 78, 34, 44, 118, 97, 108, 117, 101, 78, 44, 82, 78, 44, 71, 78, 44, 66, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 112, 105, 101, 32, 99, 104, 97, 114, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 40, 82, 71, 66, 41, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 105, 101, 99, 104, 97, 114, 116, 32, 50, 53, 44, 48, 44, 48, 44, 48, 44, 34, 82, 101, 100, 34, 44, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 34, 71, 114, 101, 101, 110, 34, 44, 52, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 34, 66, 108, 117, 101, 34, 44, 51, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 34, 79, 116, 104, 101, 114, 34, 44, 53, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 10, 112, 105, 101, 99, 104, 97, 114, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 112, 105, 101, 32, 99, 104, 97, 114, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 108, 97, 98, 101, 108, 32, 104, 101, 105, 103, 104, 116, 32, 36, 49, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 50, 44, 36, 51, 44, 36, 52, 41, 46, 34, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 10, 40, 36, 123, 54, 45, 45, 49, 58, 53, 125, 41, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 116, 104, 101, 116, 97, 61, 48, 10, 45, 105, 102, 32, 123, 119, 62, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 120, 101, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 121, 101, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 45, 108, 105, 110, 101, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 120, 101, 44, 36, 121, 101, 10, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 50, 42, 112, 105, 42, 105, 40, 36, 62, 41, 125, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 104, 101, 116, 97, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 105, 102, 32, 123, 105, 40, 36, 62, 41, 125, 10, 110, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 50, 42, 112, 105, 42, 105, 40, 36, 62, 41, 125, 10, 120, 99, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 48, 46, 53, 42, 99, 111, 115, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 121, 99, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 48, 46, 53, 42, 115, 105, 110, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 120, 102, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 48, 46, 56, 42, 99, 111, 115, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 121, 102, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 48, 46, 56, 42, 115, 105, 110, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 45, 102, 108, 111, 111, 100, 91, 45, 50, 93, 32, 36, 120, 102, 44, 36, 121, 102, 44, 48, 44, 48, 44, 48, 44, 49, 44, 36, 123, 97, 114, 103, 123, 55, 43, 53, 42, 36, 62, 125, 125, 44, 36, 123, 97, 114, 103, 123, 56, 43, 53, 42, 36, 62, 125, 125, 44, 36, 123, 97, 114, 103, 123, 57, 43, 53, 42, 36, 62, 125, 125, 10, 45, 105, 102, 32, 123, 97, 98, 115, 40, 36, 110, 116, 104, 101, 116, 97, 45, 36, 116, 104, 101, 116, 97, 41, 62, 48, 46, 49, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 123, 97, 114, 103, 123, 53, 43, 53, 42, 36, 62, 125, 125, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 49, 10, 40, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 106, 91, 45, 52, 93, 32, 91, 45, 49, 93, 44, 123, 36, 120, 99, 45, 119, 47, 50, 125, 44, 123, 36, 121, 99, 45, 104, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 116, 104, 101, 116, 97, 61, 36, 110, 116, 104, 101, 116, 97, 10, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 108, 97, 115, 109, 97, 32, 58, 32, 97, 108, 112, 104, 97, 44, 95, 98, 101, 116, 97, 44, 95, 115, 99, 97, 108, 101, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 101, 100, 32, 112, 108, 97, 115, 109, 97, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 101, 116, 97, 61, 49, 39, 32, 97, 110, 100, 32, 39, 115, 99, 97, 108, 101, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 112, 108, 97, 115, 109, 97, 32, 49, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 105, 110, 116, 32, 58, 32, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 112, 105, 120, 101, 108, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 122, 61, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 48, 32, 45, 112, 111, 105, 110, 116, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 48, 44, 49, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 58, 32, 100, 105, 97, 109, 101, 116, 101, 114, 62, 61, 48, 44, 95, 100, 101, 110, 115, 105, 116, 121, 44, 95, 111, 102, 102, 115, 101, 116, 49, 44, 95, 111, 102, 102, 115, 101, 116, 50, 44, 95, 97, 110, 103, 108, 101, 44, 95, 97, 108, 105, 97, 115, 105, 110, 103, 44, 95, 115, 104, 97, 100, 105, 110, 103, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 100, 111, 116, 115, 32, 112, 97, 116, 116, 101, 114, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 50, 48, 39, 44, 32, 39, 111, 102, 102, 115, 101, 116, 49, 61, 111, 102, 102, 115, 101, 116, 50, 61, 53, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 44, 32, 39, 97, 108, 105, 97, 115, 105, 110, 103, 61, 49, 48, 39, 44, 32, 39, 115, 104, 97, 100, 105, 110, 103, 61, 49, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 49, 48, 44, 49, 53, 44, 48, 44, 48, 44, 50, 48, 44, 49, 48, 44, 49, 44, 48, 46, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 10, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 48, 125, 44, 36, 123, 55, 61, 49, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 112, 111, 108, 107, 97, 32, 100, 111, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 105, 97, 109, 101, 116, 101, 114, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 115, 104, 105, 102, 116, 32, 40, 36, 52, 44, 36, 53, 41, 44, 32, 97, 108, 105, 97, 115, 105, 110, 103, 32, 36, 54, 32, 97, 110, 100, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 32, 116, 104, 101, 116, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 32, 99, 116, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 115, 116, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 109, 105, 100, 49, 61, 123, 36, 49, 47, 50, 125, 32, 109, 105, 100, 50, 61, 123, 36, 50, 47, 50, 125, 10, 45, 105, 91, 48, 93, 32, 40, 36, 123, 57, 45, 45, 49, 125, 41, 32, 45, 121, 91, 48, 93, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 87, 72, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 34, 120, 110, 32, 61, 32, 49, 48, 48, 42, 120, 47, 34, 36, 87, 72, 34, 45, 36, 51, 59, 32, 121, 110, 32, 61, 32, 49, 48, 48, 42, 121, 47, 34, 36, 87, 72, 34, 45, 36, 52, 59, 32, 92, 10, 120, 114, 32, 61, 32, 120, 110, 42, 34, 36, 99, 116, 34, 45, 121, 110, 42, 34, 36, 115, 116, 34, 59, 32, 121, 114, 32, 61, 32, 120, 110, 42, 34, 36, 115, 116, 34, 43, 121, 110, 42, 34, 36, 99, 116, 34, 59, 32, 92, 10, 120, 99, 32, 61, 32, 120, 114, 37, 36, 50, 45, 34, 36, 109, 105, 100, 50, 34, 59, 32, 121, 99, 32, 61, 32, 121, 114, 37, 36, 50, 45, 34, 36, 109, 105, 100, 50, 34, 59, 32, 92, 10, 34, 36, 109, 105, 100, 49, 34, 45, 115, 113, 114, 116, 40, 120, 99, 42, 120, 99, 43, 121, 99, 42, 121, 99, 41, 34, 10, 45, 42, 91, 45, 49, 93, 32, 36, 54, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 56, 32, 40, 36, 123, 57, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 108, 121, 103, 111, 110, 32, 58, 32, 78, 62, 61, 49, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 46, 46, 44, 120, 78, 91, 37, 93, 44, 121, 78, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 78, 45, 118, 101, 114, 116, 105, 99, 101, 115, 32, 112, 111, 108, 121, 103, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 32, 73, 102, 32, 97, 32, 112, 97, 116, 116, 101, 114, 110, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 112, 111, 108, 121, 103, 111, 110, 32, 105, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 114, 97, 119, 110, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 102, 105, 108, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 50, 48, 37, 44, 50, 48, 37, 44, 56, 48, 37, 44, 51, 48, 37, 44, 56, 48, 37, 44, 55, 48, 37, 44, 50, 48, 37, 44, 56, 48, 37, 44, 48, 46, 51, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 50, 48, 37, 44, 50, 48, 37, 44, 56, 48, 37, 44, 51, 48, 37, 44, 56, 48, 37, 44, 55, 48, 37, 44, 50, 48, 37, 44, 56, 48, 37, 44, 49, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 50, 44, 49, 54, 44, 49, 44, 49, 44, 39, 63, 40, 105, 102, 40, 120, 44, 64, 123, 45, 49, 44, 104, 125, 44, 64, 123, 45, 49, 44, 119, 125, 41, 41, 39, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 123, 104, 125, 44, 64, 45, 49, 44, 48, 46, 54, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 105, 118, 101, 114, 32, 58, 32, 91, 102, 117, 110, 99, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 93, 44, 95, 115, 97, 109, 112, 108, 105, 110, 103, 62, 48, 44, 95, 102, 97, 99, 116, 111, 114, 44, 95, 105, 115, 95, 97, 114, 114, 111, 119, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 50, 100, 32, 118, 101, 99, 116, 111, 114, 47, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 102, 105, 101, 108, 100, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 97, 109, 112, 108, 105, 110, 103, 61, 50, 53, 39, 44, 32, 39, 102, 97, 99, 116, 111, 114, 61, 45, 50, 48, 39, 44, 32, 39, 105, 115, 95, 97, 114, 114, 111, 119, 61, 49, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 48, 48, 44, 49, 48, 48, 44, 49, 44, 50, 44, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 45, 119, 47, 50, 44, 121, 45, 104, 47, 50, 41, 39, 32, 53, 48, 48, 44, 53, 48, 48, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 54, 48, 48, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 91, 48, 93, 32, 45, 109, 117, 108, 91, 49, 93, 32, 45, 49, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 93, 32, 99, 32, 45, 98, 108, 117, 114, 91, 48, 93, 32, 56, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 48, 93, 32, 45, 113, 117, 105, 118, 101, 114, 91, 49, 93, 32, 91, 48, 93, 44, 49, 48, 44, 49, 48, 44, 49, 44, 48, 46, 56, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 112, 97, 116, 116, 101, 114, 110, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 39, 32, 105, 115, 32, 97, 110, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 48, 120, 39, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 111, 109, 105, 116, 116, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 101, 118, 101, 110, 32, 105, 102, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 46, 32, 73, 102, 32, 97, 32, 112, 97, 116, 116, 101, 114, 110, 32, 105, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 105, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 114, 97, 119, 110, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 102, 105, 108, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 44, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 48, 46, 51, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 10, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 53, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 116, 111, 32, 40, 36, 51, 44, 36, 52, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 102, 105, 108, 108, 101, 100, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 116, 111, 32, 40, 36, 51, 44, 36, 52, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 49, 44, 36, 52, 44, 36, 123, 53, 45, 45, 49, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 39, 44, 39, 109, 105, 114, 114, 111, 114, 105, 110, 103, 61, 123, 32, 48, 61, 110, 111, 110, 101, 32, 124, 32, 49, 61, 120, 32, 124, 32, 50, 61, 121, 32, 124, 32, 51, 61, 120, 121, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 114, 111, 114, 115, 99, 104, 97, 99, 104, 45, 108, 105, 107, 101, 32, 105, 110, 107, 98, 108, 111, 116, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 53, 37, 39, 32, 97, 110, 100, 32, 39, 109, 105, 114, 114, 111, 114, 105, 110, 103, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 51, 37, 10, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 37, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 114, 111, 114, 115, 99, 104, 97, 99, 104, 45, 108, 105, 107, 101, 32, 105, 110, 107, 98, 108, 111, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 50, 44, 110, 111, 44, 120, 44, 121, 44, 120, 121, 125, 34, 45, 109, 105, 114, 114, 111, 114, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 10, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 10, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 119, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 105, 102, 32, 123, 36, 119, 37, 50, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 104, 61, 123, 104, 125, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 105, 102, 32, 123, 36, 104, 37, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 122, 32, 48, 44, 48, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 105, 102, 32, 123, 36, 119, 37, 50, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 105, 102, 32, 123, 36, 104, 37, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 32, 114, 101, 99, 117, 114, 115, 105, 111, 110, 95, 108, 101, 118, 101, 108, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 101, 99, 117, 114, 115, 105, 111, 110, 95, 108, 101, 118, 101, 108, 61, 55, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 55, 10, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 55, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 48, 48, 125, 44, 36, 123, 54, 61, 49, 48, 48, 125, 44, 36, 123, 55, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 111, 102, 32, 100, 101, 103, 114, 101, 101, 32, 36, 49, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 36, 123, 50, 45, 55, 125, 44, 36, 49, 32, 32, 45, 118, 32, 43, 10, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 10, 45, 105, 102, 32, 123, 36, 55, 60, 61, 48, 125, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 49, 44, 50, 53, 53, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 36, 49, 44, 36, 50, 44, 123, 40, 36, 49, 43, 36, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 123, 40, 36, 49, 43, 36, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 52, 41, 47, 50, 125, 44, 36, 51, 44, 36, 52, 44, 123, 40, 36, 51, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 52, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 123, 40, 36, 49, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 54, 41, 47, 50, 125, 44, 36, 53, 44, 36, 54, 44, 123, 40, 36, 51, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 52, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 32, 95, 114, 101, 99, 117, 114, 115, 105, 111, 110, 62, 61, 48, 44, 95, 120, 48, 44, 95, 121, 48, 44, 95, 120, 49, 44, 95, 121, 49, 44, 95, 120, 50, 44, 95, 121, 50, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 49, 44, 46, 46, 46, 95, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 97, 32, 75, 111, 99, 104, 32, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 99, 117, 114, 115, 105, 111, 110, 61, 52, 39, 44, 32, 39, 120, 48, 61, 50, 48, 39, 44, 32, 39, 121, 48, 61, 55, 48, 39, 44, 32, 39, 120, 49, 61, 56, 48, 39, 44, 32, 39, 121, 49, 61, 55, 48, 39, 44, 32, 39, 120, 50, 61, 53, 48, 39, 44, 32, 39, 121, 50, 61, 49, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 49, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 52, 10, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 52, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 55, 48, 125, 44, 36, 123, 52, 61, 56, 48, 125, 44, 36, 123, 53, 61, 55, 48, 125, 44, 36, 123, 54, 61, 53, 48, 125, 44, 36, 123, 55, 61, 49, 48, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 54, 44, 36, 55, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 54, 44, 36, 55, 44, 36, 52, 44, 36, 53, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 52, 44, 36, 53, 44, 36, 50, 44, 36, 51, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 118, 32, 43, 10, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 10, 120, 48, 61, 123, 36, 50, 43, 40, 36, 52, 45, 36, 50, 41, 47, 51, 125, 32, 121, 48, 61, 123, 36, 51, 43, 40, 36, 53, 45, 36, 51, 41, 47, 51, 125, 10, 120, 49, 61, 123, 36, 50, 43, 50, 42, 40, 36, 52, 45, 36, 50, 41, 47, 51, 125, 32, 121, 49, 61, 123, 36, 51, 43, 50, 42, 40, 36, 53, 45, 36, 51, 41, 47, 51, 125, 10, 99, 61, 123, 99, 111, 115, 40, 45, 112, 105, 47, 51, 41, 125, 32, 115, 61, 123, 115, 105, 110, 40, 45, 112, 105, 47, 51, 41, 125, 10, 120, 50, 61, 123, 36, 120, 48, 43, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 36, 99, 45, 40, 36, 121, 49, 45, 36, 121, 48, 41, 42, 36, 115, 125, 32, 121, 50, 61, 123, 36, 121, 48, 43, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 36, 115, 43, 40, 36, 121, 49, 45, 36, 121, 48, 41, 42, 36, 99, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 120, 48, 37, 44, 36, 121, 48, 37, 44, 36, 120, 49, 37, 44, 36, 121, 49, 37, 44, 36, 120, 50, 37, 44, 36, 121, 50, 37, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 105, 102, 32, 36, 49, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 50, 44, 36, 51, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 52, 44, 36, 53, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 105, 114, 97, 108, 98, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 40, 115, 113, 117, 97, 114, 101, 100, 41, 32, 115, 112, 105, 114, 97, 108, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 54, 44, 49, 54, 32, 45, 115, 112, 105, 114, 97, 108, 98, 119, 10, 115, 112, 105, 114, 97, 108, 98, 119, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 40, 115, 113, 117, 97, 114, 101, 100, 41, 32, 98, 108, 97, 99, 107, 32, 97, 110, 100, 32, 119, 104, 105, 116, 101, 32, 115, 112, 105, 114, 97, 108, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 102, 32, 34, 114, 61, 109, 105, 110, 40, 120, 44, 121, 44, 119, 45, 49, 45, 120, 44, 104, 45, 49, 45, 121, 41, 59, 32, 50, 42, 114, 42, 40, 119, 43, 104, 45, 50, 42, 114, 45, 49, 41, 32, 43, 32, 105, 102, 40, 109, 105, 110, 40, 120, 44, 104, 45, 49, 45, 121, 41, 62, 61, 109, 105, 110, 40, 119, 45, 49, 45, 120, 44, 121, 41, 44, 120, 43, 121, 44, 50, 42, 40, 119, 43, 104, 45, 50, 45, 50, 42, 114, 41, 45, 120, 45, 121, 41, 34, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 110, 101, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 117, 48, 91, 37, 93, 44, 118, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 117, 49, 91, 37, 93, 44, 118, 49, 91, 37, 93, 44, 95, 110, 98, 95, 118, 101, 114, 116, 105, 99, 101, 115, 62, 61, 50, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 115, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 118, 101, 114, 116, 105, 99, 101, 115, 61, 50, 53, 54, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 32, 45, 115, 112, 108, 105, 110, 101, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 45, 54, 48, 48, 44, 54, 48, 48, 41, 125, 44, 123, 63, 40, 45, 54, 48, 48, 44, 54, 48, 48, 41, 125, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 45, 54, 48, 48, 44, 54, 48, 48, 41, 125, 44, 123, 63, 40, 45, 54, 48, 48, 44, 54, 48, 48, 41, 125, 44, 50, 53, 54, 44, 48, 46, 51, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 10, 115, 112, 108, 105, 110, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 57, 61, 50, 53, 54, 125, 44, 36, 123, 49, 48, 61, 49, 125, 44, 36, 123, 49, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 115, 112, 108, 105, 110, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 91, 36, 51, 44, 36, 52, 93, 32, 116, 111, 32, 40, 36, 53, 44, 36, 54, 41, 32, 91, 36, 55, 44, 36, 56, 93, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 57, 32, 118, 101, 114, 116, 105, 99, 101, 115, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 48, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 49, 49, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 49, 34, 125, 44, 36, 49, 42, 40, 119, 45, 49, 41, 44, 36, 49, 41, 125, 10, 121, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 36, 50, 42, 40, 104, 45, 49, 41, 44, 36, 50, 41, 125, 10, 117, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 51, 34, 125, 44, 36, 51, 42, 40, 119, 45, 49, 41, 44, 36, 51, 41, 125, 10, 118, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 52, 34, 125, 44, 36, 52, 42, 40, 104, 45, 49, 41, 44, 36, 52, 41, 125, 10, 120, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 53, 34, 125, 44, 36, 53, 42, 40, 119, 45, 49, 41, 44, 36, 53, 41, 125, 10, 121, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 54, 34, 125, 44, 36, 54, 42, 40, 104, 45, 49, 41, 44, 36, 54, 41, 125, 10, 117, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 55, 34, 125, 44, 36, 55, 42, 40, 119, 45, 49, 41, 44, 36, 55, 41, 125, 10, 118, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 56, 34, 125, 44, 36, 56, 42, 40, 104, 45, 49, 41, 44, 36, 56, 41, 125, 10, 45, 115, 112, 108, 105, 110, 101, 51, 100, 32, 36, 120, 48, 44, 36, 121, 48, 44, 48, 44, 36, 117, 48, 44, 36, 118, 48, 44, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 48, 44, 36, 117, 49, 44, 36, 118, 49, 44, 48, 44, 36, 57, 10, 45, 115, 104, 91, 45, 49, 93, 32, 56, 44, 123, 56, 43, 51, 42, 36, 57, 45, 49, 125, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 108, 51, 100, 91, 49, 93, 32, 36, 123, 49, 49, 45, 45, 49, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 49, 48, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 101, 120, 116, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 32, 58, 32, 116, 101, 120, 116, 44, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 62, 61, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 116, 101, 120, 116, 32, 115, 116, 114, 105, 110, 103, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 97, 99, 116, 32, 112, 114, 101, 45, 100, 101, 102, 105, 110, 101, 100, 32, 115, 105, 122, 101, 115, 32, 97, 114, 101, 32, 39, 49, 51, 39, 44, 39, 50, 52, 39, 44, 39, 51, 50, 39, 32, 97, 110, 100, 32, 39, 53, 55, 39, 46, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 115, 105, 122, 101, 32, 105, 115, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 101, 99, 105, 102, 121, 105, 110, 103, 32, 97, 110, 32, 101, 109, 112, 116, 121, 32, 116, 97, 114, 103, 101, 116, 32, 105, 109, 97, 103, 101, 32, 114, 101, 115, 105, 122, 101, 115, 32, 105, 116, 32, 116, 111, 32, 110, 101, 119, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 115, 117, 99, 104, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 99, 111, 110, 116, 97, 105, 110, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 116, 104, 101, 32, 101, 110, 116, 105, 114, 101, 32, 116, 101, 120, 116, 32, 115, 116, 114, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 54, 48, 48, 32, 121, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 32, 45, 116, 101, 120, 116, 32, 123, 50, 42, 36, 62, 125, 34, 32, 58, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 110, 105, 99, 101, 32, 116, 101, 120, 116, 44, 32, 105, 115, 110, 39, 116, 32, 105, 116, 32, 63, 34, 44, 49, 48, 44, 36, 121, 44, 123, 50, 42, 36, 62, 125, 44, 48, 46, 57, 44, 50, 53, 53, 32, 121, 61, 123, 36, 121, 43, 50, 42, 36, 62, 125, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 48, 32, 45, 116, 101, 120, 116, 32, 34, 71, 39, 77, 73, 67, 34, 44, 48, 44, 48, 44, 50, 52, 44, 49, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 32, 58, 32, 116, 101, 120, 116, 44, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 111, 117, 116, 108, 105, 110, 101, 62, 61, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 99, 111, 108, 111, 114, 49, 44, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 97, 110, 100, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 116, 101, 120, 116, 32, 115, 116, 114, 105, 110, 103, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 50, 39, 44, 32, 39, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 61, 49, 51, 39, 44, 32, 39, 111, 117, 116, 108, 105, 110, 101, 61, 50, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 49, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 32, 34, 72, 105, 32, 116, 104, 101, 114, 101, 33, 34, 44, 49, 48, 44, 49, 48, 44, 53, 50, 44, 51, 10, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 49, 51, 125, 44, 36, 123, 53, 61, 50, 125, 44, 36, 123, 54, 61, 49, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 44, 36, 123, 56, 61, 36, 45, 49, 125, 44, 36, 123, 57, 61, 36, 45, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 116, 101, 120, 116, 32, 39, 36, 49, 39, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 50, 44, 36, 51, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 111, 110, 116, 32, 104, 101, 105, 103, 104, 116, 32, 36, 52, 44, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 53, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 36, 123, 55, 45, 45, 49, 125, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 52, 44, 49, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 123, 49, 43, 36, 53, 125, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 123, 50, 42, 36, 53, 43, 49, 125, 10, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 32, 45, 109, 97, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 105, 102, 32, 64, 123, 36, 62, 44, 119, 125, 32, 45, 106, 91, 36, 62, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 44, 48, 44, 48, 44, 36, 54, 44, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 36, 62, 93, 32, 45, 105, 91, 36, 62, 93, 32, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 116, 32, 34, 36, 49, 34, 44, 36, 123, 50, 45, 52, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 32, 58, 32, 120, 48, 44, 121, 48, 44, 120, 49, 44, 121, 48, 44, 120, 50, 44, 121, 50, 44, 82, 48, 44, 71, 48, 44, 66, 48, 44, 46, 46, 46, 44, 82, 49, 44, 71, 49, 44, 66, 49, 44, 46, 46, 46, 44, 82, 50, 44, 71, 50, 44, 66, 50, 44, 46, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 119, 105, 116, 104, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 32, 50, 48, 44, 50, 48, 44, 52, 48, 48, 44, 49, 48, 48, 44, 49, 50, 48, 44, 50, 48, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 41, 45, 40, 36, 51, 44, 36, 52, 41, 45, 40, 36, 53, 44, 36, 54, 41, 32, 119, 105, 116, 104, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 40, 36, 49, 44, 36, 50, 44, 49, 59, 36, 51, 44, 36, 52, 44, 49, 59, 36, 53, 44, 36, 54, 44, 49, 41, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 47, 51, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 94, 45, 49, 93, 32, 51, 44, 36, 123, 49, 45, 54, 125, 44, 49, 44, 45, 54, 53, 53, 51, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 10, 97, 61, 123, 105, 40, 48, 44, 48, 44, 48, 44, 36, 62, 41, 125, 32, 98, 61, 123, 105, 40, 48, 44, 49, 44, 48, 44, 36, 62, 41, 125, 32, 99, 61, 123, 105, 40, 48, 44, 50, 44, 48, 44, 36, 62, 41, 125, 10, 45, 115, 104, 91, 48, 93, 32, 36, 62, 44, 36, 62, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 36, 97, 42, 120, 43, 36, 98, 42, 121, 43, 36, 99, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 117, 99, 104, 101, 116, 32, 58, 32, 95, 115, 99, 97, 108, 101, 62, 48, 44, 95, 114, 97, 100, 105, 117, 115, 62, 61, 48, 44, 95, 112, 97, 116, 116, 101, 114, 110, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 115, 116, 114, 97, 105, 103, 104, 116, 32, 124, 32, 49, 61, 99, 117, 114, 118, 101, 100, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 70, 105, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 114, 97, 110, 100, 111, 109, 32, 116, 114, 117, 99, 104, 101, 116, 32, 112, 97, 116, 116, 101, 114, 110, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 99, 97, 108, 101, 61, 51, 50, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 53, 39, 32, 97, 110, 100, 32, 39, 112, 97, 116, 116, 101, 114, 110, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 51, 48, 48, 32, 45, 116, 114, 117, 99, 104, 101, 116, 32, 44, 10, 116, 114, 117, 99, 104, 101, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 51, 50, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 99, 117, 114, 118, 101, 100, 44, 115, 116, 114, 97, 105, 103, 104, 116, 125, 34, 32, 116, 114, 117, 99, 104, 101, 116, 32, 112, 97, 116, 116, 101, 114, 110, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 97, 110, 100, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 32, 45, 114, 109, 10, 36, 49, 44, 36, 49, 32, 45, 61, 32, 49, 44, 48, 44, 48, 32, 45, 61, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 49, 44, 123, 49, 43, 36, 51, 125, 32, 77, 61, 123, 105, 110, 116, 40, 105, 77, 47, 50, 41, 125, 10, 45, 116, 50, 32, 123, 36, 77, 45, 36, 50, 47, 50, 45, 40, 36, 49, 37, 50, 41, 125, 44, 123, 36, 77, 43, 36, 50, 47, 50, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 120, 10, 123, 114, 111, 117, 110, 100, 40, 36, 119, 47, 36, 49, 44, 49, 44, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 36, 104, 47, 36, 49, 44, 49, 44, 49, 41, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 40, 48, 44, 123, 36, 49, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 51, 32, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 115, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 62, 48, 44, 95, 111, 99, 116, 97, 118, 101, 115, 61, 123, 49, 44, 50, 44, 51, 46, 46, 46, 44, 49, 50, 125, 44, 95, 97, 108, 112, 104, 97, 62, 48, 44, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 61, 123, 45, 49, 48, 44, 49, 48, 125, 44, 95, 109, 111, 100, 101, 61, 123, 48, 44, 49, 44, 50, 44, 51, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 102, 114, 97, 99, 116, 97, 108, 32, 110, 111, 105, 115, 101, 32, 111, 114, 32, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 97, 100, 105, 117, 115, 61, 51, 50, 39, 44, 32, 39, 111, 99, 116, 97, 118, 101, 115, 61, 54, 39, 44, 32, 39, 97, 108, 112, 104, 97, 61, 51, 39, 44, 32, 39, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 109, 111, 100, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 32, 45, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 49, 54, 10, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 51, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 114, 97, 99, 116, 97, 108, 32, 110, 111, 105, 115, 101, 32, 111, 114, 32, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 111, 99, 116, 97, 118, 101, 115, 32, 36, 50, 44, 32, 100, 97, 109, 112, 105, 110, 103, 32, 112, 101, 114, 32, 111, 99, 116, 97, 118, 101, 32, 36, 51, 44, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 36, 52, 32, 97, 110, 100, 32, 109, 111, 100, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 124, 124, 36, 53, 61, 61, 49, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 49, 44, 97, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 124, 124, 36, 53, 61, 61, 52, 125, 32, 45, 94, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 94, 91, 45, 49, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 10, 45, 45, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 123, 36, 49, 47, 50, 94, 36, 62, 125, 44, 48, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 49, 44, 97, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 94, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 94, 91, 45, 49, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 43, 91, 45, 50, 45, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 109, 118, 91, 45, 50, 93, 32, 50, 32, 45, 45, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 121, 105, 110, 121, 97, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 97, 32, 121, 105, 110, 45, 121, 97, 110, 103, 32, 115, 121, 109, 98, 111, 108, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 52, 48, 48, 44, 52, 48, 48, 32, 45, 121, 105, 110, 121, 97, 110, 103, 10, 121, 105, 110, 121, 97, 110, 103, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 121, 105, 110, 45, 121, 97, 110, 103, 32, 115, 121, 109, 98, 111, 108, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 61, 123, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 48, 46, 57, 53, 42, 109, 105, 110, 40, 119, 44, 104, 41, 47, 52, 41, 125, 10, 45, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 50, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 45, 36, 114, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 50, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 43, 36, 114, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 123, 119, 47, 50, 45, 36, 114, 125, 44, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 123, 119, 47, 50, 43, 36, 114, 125, 44, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 50, 42, 36, 114, 125, 44, 123, 50, 42, 36, 114, 125, 44, 48, 44, 49, 44, 49, 10, 45, 42, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 45, 36, 114, 125, 44, 123, 36, 114, 47, 51, 125, 44, 123, 36, 114, 47, 51, 125, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 43, 36, 114, 125, 44, 123, 36, 114, 47, 51, 125, 44, 123, 36, 114, 47, 51, 125, 44, 48, 44, 49, 44, 50, 10, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 115, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 77, 97, 116, 114, 105, 120, 32, 99, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 106, 107, 115, 116, 114, 97, 32, 58, 32, 115, 116, 97, 114, 116, 105, 110, 103, 95, 110, 111, 100, 101, 62, 61, 48, 44, 101, 110, 100, 105, 110, 103, 95, 110, 111, 100, 101, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 100, 105, 115, 116, 97, 110, 99, 101, 115, 32, 97, 110, 100, 32, 112, 97, 116, 104, 101, 115, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 100, 106, 97, 99, 101, 110, 99, 121, 32, 109, 97, 116, 114, 105, 99, 101, 115, 32, 98, 121, 32, 116, 104, 101, 32, 68, 105, 106, 107, 115, 116, 114, 97, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 105, 103, 101, 110, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 101, 105, 103, 101, 110, 118, 97, 108, 117, 101, 115, 32, 97, 110, 100, 32, 101, 105, 103, 101, 110, 118, 101, 99, 116, 111, 114, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 115, 121, 109, 109, 101, 116, 114, 105, 99, 32, 109, 97, 116, 114, 105, 99, 101, 115, 32, 111, 114, 32, 109, 97, 116, 114, 105, 120, 32, 102, 105, 101, 108, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 111, 110, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 104, 97, 115, 32, 51, 32, 111, 114, 32, 54, 32, 99, 104, 97, 110, 110, 101, 108, 115, 44, 32, 105, 116, 32, 105, 115, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 120, 50, 32, 111, 114, 32, 51, 120, 51, 32, 115, 121, 109, 109, 101, 116, 114, 105, 99, 32, 109, 97, 116, 114, 105, 99, 101, 115, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 119, 104, 111, 115, 101, 32, 101, 105, 103, 101, 110, 32, 101, 108, 101, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 97, 116, 32, 101, 97, 99, 104, 32, 112, 111, 105, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 101, 108, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 49, 44, 48, 44, 48, 59, 48, 44, 50, 44, 48, 59, 48, 44, 48, 44, 51, 41, 32, 45, 45, 101, 105, 103, 101, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 45, 98, 108, 117, 114, 32, 50, 32, 45, 101, 105, 103, 101, 110, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 35, 64, 103, 109, 105, 99, 32, 105, 110, 118, 101, 114, 116, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 116, 114, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 59, 49, 44, 48, 44, 48, 41, 32, 45, 45, 105, 110, 118, 101, 114, 116, 10, 35, 64, 103, 109, 105, 99, 32, 115, 111, 108, 118, 101, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 108, 118, 101, 32, 108, 105, 110, 101, 97, 114, 32, 115, 121, 115, 116, 101, 109, 32, 65, 88, 32, 61, 32, 66, 32, 102, 111, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 66, 45, 118, 101, 99, 116, 111, 114, 115, 32, 97, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 65, 45, 109, 97, 116, 114, 105, 120, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 116, 104, 101, 32, 115, 121, 115, 116, 101, 109, 32, 105, 115, 32, 117, 110, 100, 101, 114, 45, 32, 111, 114, 32, 111, 118, 101, 114, 45, 100, 101, 116, 101, 114, 109, 105, 110, 101, 100, 44, 32, 108, 101, 97, 115, 116, 32, 115, 113, 117, 97, 114, 101, 32, 115, 111, 108, 117, 116, 105, 111, 110, 32, 105, 115, 32, 114, 101, 116, 117, 114, 110, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 41, 32, 40, 49, 59, 50, 59, 51, 41, 32, 45, 45, 115, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 115, 118, 100, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 112, 117, 116, 101, 32, 83, 86, 68, 32, 100, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 116, 114, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 48, 44, 49, 48, 44, 49, 44, 49, 44, 39, 105, 102, 40, 120, 61, 61, 121, 44, 120, 43, 63, 40, 45, 48, 46, 50, 44, 48, 46, 50, 41, 44, 48, 41, 39, 32, 45, 45, 115, 118, 100, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 97, 110, 115, 112, 111, 115, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 112, 111, 115, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 116, 114, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 10, 116, 114, 97, 110, 115, 112, 111, 115, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 121, 120, 122, 99, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 105, 115, 111, 108, 118, 101, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 111, 108, 118, 101, 32, 116, 114, 105, 100, 105, 97, 103, 111, 110, 97, 108, 32, 115, 121, 115, 116, 101, 109, 32, 65, 88, 32, 61, 32, 66, 32, 102, 111, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 66, 45, 118, 101, 99, 116, 111, 114, 115, 32, 97, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 116, 114, 105, 100, 105, 97, 103, 111, 110, 97, 108, 32, 65, 45, 109, 97, 116, 114, 105, 120, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 105, 100, 105, 97, 103, 111, 110, 97, 108, 32, 109, 97, 116, 114, 105, 120, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 116, 111, 114, 101, 100, 32, 97, 115, 32, 97, 32, 51, 32, 99, 111, 108, 117, 109, 110, 32, 118, 101, 99, 116, 111, 114, 44, 32, 119, 104, 101, 114, 101, 32, 50, 110, 100, 32, 99, 111, 108, 117, 109, 110, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 116, 104, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 44, 32, 119, 104, 105, 108, 101, 32, 49, 115, 116, 32, 97, 110, 100, 32, 51, 114, 100, 32, 99, 111, 108, 117, 109, 110, 115, 32, 99, 111, 110, 116, 97, 105, 110, 32, 116, 104, 101, 32, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 48, 44, 49, 59, 49, 44, 48, 44, 48, 59, 48, 44, 49, 44, 48, 41, 32, 40, 49, 59, 50, 59, 51, 41, 32, 45, 45, 116, 114, 105, 115, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 43, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 97, 100, 100, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 97, 100, 100, 51, 100, 32, 58, 32, 116, 120, 44, 95, 116, 121, 44, 95, 116, 122, 32, 58, 32, 91, 111, 98, 106, 101, 99, 116, 51, 100, 93, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 105, 102, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 118, 101, 99, 116, 111, 114, 44, 32, 111, 114, 32, 109, 101, 114, 103, 101, 32, 116, 104, 101, 109, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 111, 114, 32, 109, 101, 114, 103, 101, 32, 97, 108, 108, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 116, 111, 103, 101, 116, 104, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 43, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 121, 61, 116, 122, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 97, 100, 100, 51, 100, 91, 45, 49, 93, 32, 49, 48, 44, 123, 63, 40, 45, 49, 48, 44, 49, 48, 41, 125, 44, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 48, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 53, 44, 50, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 109, 117, 108, 51, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 49, 32, 45, 105, 102, 32, 123, 36, 62, 37, 50, 125, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 100, 100, 51, 100, 91, 45, 49, 93, 32, 55, 48, 32, 45, 97, 100, 100, 51, 100, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 56, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 10, 35, 64, 103, 109, 105, 99, 32, 97, 110, 105, 109, 97, 116, 101, 51, 100, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 100, 120, 44, 95, 100, 121, 44, 95, 100, 122, 44, 95, 122, 111, 111, 109, 62, 61, 48, 44, 95, 102, 105, 108, 101, 110, 97, 109, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 110, 105, 109, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 110, 32, 97, 32, 119, 105, 110, 100, 111, 119, 46, 10, 97, 110, 105, 109, 97, 116, 101, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 52, 48, 125, 44, 36, 123, 50, 61, 52, 56, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 34, 36, 123, 55, 61, 34, 34, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 54, 61, 49, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 105, 110, 32, 97, 32, 36, 49, 120, 36, 50, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 118, 101, 108, 111, 99, 105, 116, 105, 101, 115, 32, 40, 36, 51, 44, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 108, 91, 36, 62, 93, 10, 45, 110, 51, 100, 32, 45, 42, 51, 100, 32, 123, 36, 54, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 49, 46, 53, 125, 32, 45, 99, 51, 100, 10, 97, 120, 61, 48, 32, 97, 121, 61, 48, 32, 97, 122, 61, 48, 32, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 45, 45, 114, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 97, 120, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 97, 121, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 97, 122, 10, 97, 120, 61, 123, 36, 97, 120, 43, 36, 51, 125, 32, 97, 121, 61, 123, 36, 97, 121, 43, 36, 52, 125, 32, 97, 122, 61, 123, 36, 97, 122, 43, 36, 53, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 55, 34, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 54, 52, 44, 54, 52, 44, 54, 52, 44, 48, 10, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 55, 34, 44, 36, 62, 44, 36, 102, 114, 97, 109, 101, 125, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 54, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 32, 45, 119, 97, 105, 116, 32, 50, 48, 32, 45, 107, 91, 48, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 32, 45, 119, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 51, 100, 32, 58, 32, 112, 111, 115, 95, 120, 44, 112, 111, 115, 95, 121, 44, 112, 111, 115, 95, 122, 44, 116, 97, 114, 103, 101, 116, 95, 120, 44, 116, 97, 114, 103, 101, 116, 95, 121, 44, 116, 97, 114, 103, 101, 116, 95, 122, 44, 117, 112, 95, 120, 44, 117, 112, 95, 121, 44, 117, 112, 95, 122, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 51, 100, 32, 99, 97, 109, 101, 114, 97, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 97, 114, 103, 101, 116, 95, 120, 61, 48, 39, 44, 32, 39, 116, 97, 114, 103, 101, 116, 95, 121, 61, 48, 39, 44, 32, 39, 116, 97, 114, 103, 101, 116, 95, 122, 61, 48, 39, 44, 32, 39, 117, 112, 95, 120, 61, 48, 39, 44, 32, 39, 117, 112, 95, 121, 61, 45, 49, 39, 32, 97, 110, 100, 32, 39, 117, 112, 95, 122, 61, 48, 39, 46, 10, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 45, 49, 125, 44, 36, 123, 57, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 51, 100, 32, 99, 97, 109, 101, 114, 97, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 97, 109, 101, 114, 97, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 44, 32, 116, 97, 114, 103, 101, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 32, 97, 110, 100, 32, 117, 112, 45, 118, 101, 99, 116, 111, 114, 32, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 36, 52, 45, 36, 49, 125, 94, 123, 36, 53, 45, 36, 50, 125, 94, 123, 36, 54, 45, 36, 51, 125, 41, 10, 40, 36, 55, 94, 36, 56, 94, 36, 57, 41, 10, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 99, 114, 111, 115, 115, 51, 100, 32, 64, 45, 50, 44, 64, 45, 49, 10, 45, 95, 99, 114, 111, 115, 115, 51, 100, 32, 64, 45, 49, 44, 64, 45, 51, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 51, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 51, 10, 45, 45, 51, 100, 91, 94, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 91, 94, 45, 49, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 51, 100, 32, 48, 44, 48, 44, 56, 48, 48, 10, 45, 118, 32, 43, 10, 95, 99, 114, 111, 115, 115, 51, 100, 32, 58, 10, 40, 123, 36, 50, 42, 36, 54, 45, 36, 51, 42, 36, 53, 125, 59, 123, 36, 51, 42, 36, 52, 45, 36, 49, 42, 36, 54, 125, 59, 123, 36, 49, 42, 36, 53, 45, 36, 50, 42, 36, 52, 125, 41, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 32, 58, 32, 112, 49, 44, 46, 46, 44, 112, 49, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 51, 100, 32, 112, 111, 115, 101, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 50, 48, 32, 45, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 32, 48, 46, 49, 53, 50, 52, 51, 55, 44, 49, 46, 50, 48, 54, 54, 54, 44, 45, 48, 46, 53, 52, 54, 51, 54, 54, 44, 48, 44, 45, 48, 46, 53, 51, 53, 57, 54, 50, 44, 48, 46, 53, 53, 57, 49, 50, 57, 44, 49, 46, 48, 56, 53, 51, 49, 44, 48, 44, 49, 46, 50, 49, 49, 51, 50, 44, 48, 46, 48, 57, 53, 53, 52, 51, 49, 44, 48, 46, 53, 52, 56, 57, 54, 54, 44, 48, 44, 48, 44, 48, 44, 45, 50, 48, 54, 44, 49, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 52, 48, 48, 10, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 51, 100, 32, 112, 111, 115, 101, 32, 109, 97, 116, 114, 105, 120, 32, 91, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 59, 32, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 59, 32, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 32, 93, 32, 116, 111, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 51, 100, 125, 10, 45, 115, 51, 100, 32, 45, 114, 91, 50, 93, 32, 51, 44, 64, 123, 50, 44, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 105, 91, 51, 93, 32, 49, 44, 64, 123, 50, 44, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 50, 44, 51, 93, 32, 120, 10, 45, 105, 91, 51, 93, 32, 40, 36, 49, 44, 36, 53, 44, 36, 57, 59, 36, 50, 44, 36, 54, 44, 36, 49, 48, 59, 36, 51, 44, 36, 55, 44, 36, 49, 49, 59, 36, 52, 44, 36, 56, 44, 36, 49, 50, 41, 32, 45, 42, 42, 91, 50, 44, 51, 93, 10, 45, 114, 91, 50, 93, 32, 49, 44, 64, 123, 50, 44, 51, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 120, 101, 115, 51, 100, 32, 58, 32, 95, 115, 105, 122, 101, 95, 120, 44, 95, 115, 105, 122, 101, 95, 121, 44, 95, 115, 105, 122, 101, 95, 122, 44, 95, 102, 111, 110, 116, 95, 115, 105, 122, 101, 62, 48, 44, 95, 108, 97, 98, 101, 108, 95, 120, 44, 95, 108, 97, 98, 101, 108, 95, 121, 44, 95, 108, 97, 98, 101, 108, 95, 122, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 44, 121, 32, 97, 110, 100, 32, 122, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 120, 61, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 122, 61, 49, 39, 44, 32, 39, 102, 111, 110, 116, 95, 115, 105, 122, 101, 61, 50, 52, 39, 44, 32, 39, 108, 97, 98, 101, 108, 95, 120, 61, 88, 39, 44, 32, 39, 108, 97, 98, 101, 108, 95, 121, 61, 89, 39, 32, 97, 110, 100, 32, 39, 108, 97, 98, 101, 108, 95, 122, 61, 90, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 97, 120, 101, 115, 51, 100, 32, 44, 10, 97, 120, 101, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 34, 36, 123, 53, 61, 88, 125, 44, 36, 123, 54, 61, 89, 125, 44, 36, 123, 55, 61, 90, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 109, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 44, 97, 98, 115, 40, 36, 51, 41, 41, 47, 52, 48, 125, 32, 109, 50, 61, 123, 50, 42, 36, 109, 125, 32, 109, 51, 61, 123, 49, 46, 50, 42, 36, 109, 50, 125, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 79, 34, 44, 36, 52, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 36, 109, 51, 44, 36, 109, 51, 44, 36, 109, 51, 10, 45, 105, 102, 32, 36, 49, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 45, 36, 109, 50, 125, 44, 48, 44, 48, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 53, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 109, 51, 125, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 36, 50, 44, 48, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 123, 36, 50, 45, 36, 109, 50, 125, 44, 48, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 54, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 123, 36, 50, 43, 36, 109, 51, 125, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 51, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 36, 51, 45, 36, 109, 50, 125, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 55, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 36, 51, 43, 36, 109, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 43, 51, 100, 32, 45, 110, 109, 32, 91, 51, 100, 92, 32, 97, 120, 101, 115, 93, 10, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 95, 97, 120, 101, 115, 51, 100, 32, 58, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 50, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 105, 91, 45, 51, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 49, 59, 49, 59, 48, 59, 48, 59, 48, 59, 49, 59, 48, 59, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 32, 45, 121, 91, 45, 51, 44, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 10, 35, 64, 103, 109, 105, 99, 32, 98, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 51, 100, 32, 58, 32, 82, 44, 95, 71, 44, 95, 66, 32, 58, 32, 91, 105, 109, 97, 103, 101, 93, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 105, 110, 101, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 108, 111, 114, 32, 111, 114, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 51, 100, 32, 118, 105, 101, 119, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 98, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 114, 101, 115, 101, 116, 115, 32, 116, 104, 101, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 116, 111, 32, 100, 101, 102, 97, 117, 108, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 98, 111, 120, 51, 100, 32, 58, 32, 95, 115, 105, 122, 101, 95, 120, 44, 95, 115, 105, 122, 101, 95, 121, 44, 95, 115, 105, 122, 101, 95, 122, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 98, 111, 120, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 120, 61, 49, 39, 32, 97, 110, 100, 32, 39, 115, 105, 122, 101, 95, 122, 61, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 120, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 98, 111, 120, 51, 100, 32, 49, 48, 48, 44, 52, 48, 44, 51, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 98, 111, 120, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 10, 49, 44, 56, 54, 44, 49, 44, 49, 44, 92, 10, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 56, 44, 54, 44, 92, 10, 48, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 44, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 36, 50, 44, 48, 44, 92, 10, 48, 44, 48, 44, 36, 51, 44, 36, 49, 44, 48, 44, 36, 51, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 48, 44, 36, 50, 44, 36, 51, 44, 92, 10, 52, 44, 48, 44, 51, 44, 50, 44, 49, 44, 52, 44, 52, 44, 53, 44, 54, 44, 55, 44, 52, 44, 48, 44, 49, 44, 53, 44, 52, 44, 52, 44, 51, 44, 55, 44, 54, 44, 50, 44, 52, 44, 48, 44, 52, 44, 55, 44, 51, 44, 52, 44, 49, 44, 50, 44, 54, 44, 53, 44, 92, 10, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 98, 111, 120, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 101, 110, 116, 101, 114, 51, 100, 39, 46, 10, 99, 51, 100, 32, 58, 10, 45, 95, 99, 101, 110, 116, 101, 114, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 99, 101, 110, 116, 101, 114, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 101, 110, 116, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 32, 45, 99, 105, 114, 99, 108, 101, 51, 100, 32, 123, 63, 40, 49, 48, 48, 41, 125, 44, 123, 63, 40, 49, 48, 48, 41, 125, 44, 123, 63, 40, 49, 48, 48, 41, 125, 44, 50, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 32, 45, 45, 99, 101, 110, 116, 101, 114, 51, 100, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 48, 32, 45, 97, 100, 100, 51, 100, 10, 99, 101, 110, 116, 101, 114, 51, 100, 32, 58, 10, 45, 95, 36, 48, 10, 95, 99, 101, 110, 116, 101, 114, 51, 100, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 101, 110, 116, 101, 114, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 61, 123, 105, 40, 48, 44, 54, 41, 125, 10, 45, 105, 102, 32, 123, 36, 110, 62, 48, 125, 10, 45, 115, 104, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 10, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 51, 44, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 50, 44, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 32, 45, 45, 91, 45, 49, 93, 32, 123, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 105, 114, 99, 108, 101, 51, 100, 32, 58, 32, 95, 120, 48, 44, 95, 121, 48, 44, 95, 122, 48, 44, 95, 114, 97, 100, 105, 117, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 48, 61, 121, 48, 61, 122, 48, 61, 48, 39, 32, 97, 110, 100, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 48, 48, 32, 97, 61, 123, 36, 62, 42, 112, 105, 47, 50, 53, 48, 125, 32, 45, 99, 105, 114, 99, 108, 101, 51, 100, 32, 123, 99, 111, 115, 40, 51, 42, 36, 97, 41, 125, 44, 123, 115, 105, 110, 40, 50, 42, 36, 97, 41, 125, 44, 48, 44, 123, 36, 97, 47, 53, 48, 125, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 44, 48, 46, 52, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 99, 105, 114, 99, 108, 101, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 114, 61, 123, 36, 52, 47, 115, 113, 114, 116, 40, 51, 41, 125, 10, 49, 44, 50, 52, 44, 49, 44, 49, 44, 92, 10, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 50, 44, 49, 44, 92, 10, 123, 36, 49, 45, 36, 114, 125, 44, 123, 36, 50, 45, 36, 114, 125, 44, 123, 36, 51, 45, 36, 114, 125, 44, 92, 10, 123, 36, 49, 43, 36, 114, 125, 44, 123, 36, 50, 43, 36, 114, 125, 44, 123, 36, 51, 43, 36, 114, 125, 44, 92, 10, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 105, 114, 99, 108, 101, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 105, 114, 99, 108, 101, 115, 51, 100, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 116, 111, 32, 115, 101, 116, 115, 32, 111, 102, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 97, 100, 105, 117, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 52, 48, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 42, 32, 50, 53, 53, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 32, 48, 46, 55, 10, 99, 105, 114, 99, 108, 101, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 32, 116, 111, 32, 115, 101, 116, 115, 32, 111, 102, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 115, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 118, 61, 64, 123, 45, 49, 44, 54, 125, 32, 110, 98, 112, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 105, 102, 32, 123, 36, 110, 98, 118, 38, 38, 36, 110, 98, 112, 125, 10, 45, 45, 51, 100, 32, 123, 36, 49, 47, 50, 125, 44, 48, 44, 48, 32, 45, 45, 43, 51, 100, 32, 36, 49, 44, 48, 44, 48, 32, 45, 43, 51, 100, 32, 110, 98, 112, 50, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 115, 51, 100, 32, 45, 61, 91, 49, 93, 32, 36, 110, 98, 112, 44, 48, 44, 49, 10, 45, 114, 91, 51, 93, 32, 50, 44, 36, 110, 98, 112, 50, 44, 49, 44, 49, 44, 45, 49, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 51, 93, 32, 49, 44, 49, 32, 45, 115, 91, 51, 93, 32, 121, 44, 50, 32, 45, 105, 91, 51, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 53, 32, 45, 97, 91, 51, 45, 53, 93, 32, 120, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 51, 93, 32, 48, 44, 53, 32, 45, 121, 91, 51, 93, 32, 121, 10, 45, 114, 111, 119, 115, 91, 52, 93, 32, 48, 44, 123, 51, 42, 36, 110, 98, 112, 45, 49, 125, 32, 45, 114, 111, 119, 115, 91, 53, 93, 32, 48, 44, 123, 36, 110, 98, 112, 45, 49, 125, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 111, 108, 111, 114, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 111, 114, 51, 100, 32, 58, 32, 82, 44, 95, 71, 44, 95, 66, 44, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 99, 111, 108, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 49, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 55, 32, 45, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 50, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 99, 117, 98, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 109, 111, 100, 101, 51, 100, 32, 50, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 10, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 82, 71, 66, 45, 99, 111, 108, 111, 114, 32, 99, 117, 98, 101, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 56, 59, 54, 41, 10, 40, 48, 59, 48, 59, 48, 59, 92, 10, 50, 53, 53, 59, 48, 59, 48, 59, 92, 10, 50, 53, 53, 59, 50, 53, 53, 59, 48, 59, 92, 10, 48, 59, 50, 53, 53, 59, 48, 59, 92, 10, 48, 59, 48, 59, 50, 53, 53, 59, 92, 10, 50, 53, 53, 59, 48, 59, 50, 53, 53, 59, 92, 10, 50, 53, 53, 59, 50, 53, 53, 59, 50, 53, 53, 59, 92, 10, 48, 59, 50, 53, 53, 59, 50, 53, 53, 41, 10, 40, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 59, 92, 10, 49, 50, 59, 49, 59, 50, 59, 54, 59, 53, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 59, 92, 10, 49, 50, 59, 48, 59, 52, 59, 55, 59, 51, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 52, 59, 53, 59, 54, 59, 55, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 48, 59, 49, 59, 53, 59, 52, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 51, 59, 55, 59, 54, 59, 50, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 48, 44, 48, 41, 10, 40, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 41, 10, 40, 48, 44, 48, 59, 48, 44, 48, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 48, 44, 48, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 114, 91, 45, 54, 45, 45, 49, 93, 32, 54, 52, 44, 54, 52, 44, 49, 44, 51, 44, 51, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 105, 91, 45, 55, 45, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 54, 52, 59, 54, 52, 59, 51, 41, 10, 40, 49, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 91, 45, 49, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 111, 108, 111, 114, 99, 117, 98, 101, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 110, 101, 51, 100, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 44, 95, 104, 101, 105, 103, 104, 116, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 111, 110, 101, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 39, 44, 39, 104, 101, 105, 103, 104, 116, 61, 49, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 61, 50, 52, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 99, 111, 110, 101, 51, 100, 32, 49, 48, 44, 52, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 99, 111, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 111, 110, 101, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 41, 10, 40, 123, 36, 51, 43, 50, 125, 59, 123, 50, 42, 36, 51, 125, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 36, 50, 41, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 51, 45, 49, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 48, 32, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 52, 93, 32, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 49, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 120, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 111, 110, 101, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 117, 112, 51, 100, 32, 58, 32, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 117, 112, 32, 111, 98, 106, 101, 99, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 99, 117, 112, 51, 100, 32, 44, 10, 99, 117, 112, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 50, 56, 125, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 117, 112, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 10, 49, 48, 48, 44, 50, 48, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 37, 44, 48, 37, 44, 52, 48, 37, 44, 52, 48, 37, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 51, 53, 37, 44, 51, 53, 37, 44, 48, 44, 49, 44, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 48, 44, 52, 53, 37, 44, 56, 37, 44, 52, 53, 37, 44, 50, 48, 37, 44, 57, 48, 37, 44, 48, 44, 57, 48, 37, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 37, 44, 49, 48, 48, 37, 44, 51, 48, 37, 44, 49, 48, 37, 44, 48, 44, 49, 44, 49, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 49, 37, 10, 45, 108, 97, 116, 104, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 117, 112, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 44, 95, 104, 101, 105, 103, 104, 116, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 121, 108, 105, 110, 100, 101, 114, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 39, 44, 39, 104, 101, 105, 103, 104, 116, 61, 49, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 61, 50, 52, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 49, 48, 44, 52, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 121, 108, 105, 110, 100, 101, 114, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 41, 10, 40, 123, 50, 42, 36, 51, 43, 50, 125, 59, 123, 51, 42, 36, 51, 125, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 36, 50, 41, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 51, 45, 49, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 49, 44, 36, 51, 44, 49, 44, 49, 44, 36, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 120, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 49, 32, 91, 45, 51, 93, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 48, 32, 91, 45, 51, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 36, 51, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 45, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 36, 51, 32, 45, 105, 91, 45, 55, 93, 32, 49, 44, 36, 51, 44, 49, 44, 49, 44, 52, 32, 45, 114, 118, 91, 45, 54, 44, 45, 53, 93, 32, 45, 97, 91, 45, 55, 45, 45, 53, 44, 45, 50, 44, 45, 49, 93, 32, 120, 10, 51, 44, 123, 51, 42, 36, 51, 125, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 56, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 121, 108, 105, 110, 100, 101, 114, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 97, 100, 100, 51, 100, 10, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 34, 99, 120, 121, 122, 34, 32, 45, 121, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 112, 61, 123, 104, 47, 51, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 36, 110, 98, 112, 59, 36, 110, 98, 112, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 98, 112, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 91, 45, 50, 93, 10, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 10, 45, 97, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 47, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 105, 118, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 100, 105, 118, 51, 100, 32, 58, 32, 102, 97, 99, 116, 111, 114, 32, 58, 32, 102, 97, 99, 116, 111, 114, 95, 120, 44, 102, 97, 99, 116, 111, 114, 95, 121, 44, 95, 102, 97, 99, 116, 111, 114, 95, 122, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 99, 97, 108, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 115, 111, 116, 114, 111, 112, 105, 99, 97, 108, 108, 121, 32, 111, 114, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 97, 108, 108, 121, 44, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 102, 97, 99, 116, 111, 114, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 47, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 97, 99, 116, 111, 114, 95, 122, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 53, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 97, 100, 100, 51, 100, 91, 45, 49, 93, 32, 49, 50, 44, 48, 44, 48, 32, 45, 100, 105, 118, 51, 100, 91, 45, 49, 93, 32, 49, 46, 50, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 100, 98, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 111, 117, 98, 108, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 117, 98, 108, 101, 51, 100, 32, 58, 32, 105, 115, 95, 100, 111, 117, 98, 108, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 110, 97, 98, 108, 101, 47, 100, 105, 115, 97, 98, 108, 101, 32, 100, 111, 117, 98, 108, 101, 45, 115, 105, 100, 101, 100, 32, 109, 111, 100, 101, 32, 102, 111, 114, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 100, 98, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 111, 100, 101, 51, 100, 32, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 36, 62, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 45, 49, 93, 32, 52, 48, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 32, 122, 45, 102, 97, 99, 116, 111, 114, 32, 58, 32, 91, 101, 108, 101, 118, 97, 116, 105, 111, 110, 95, 109, 97, 112, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 117, 105, 108, 100, 32, 51, 100, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 109, 97, 112, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 105, 110, 118, 111, 107, 101, 100, 32, 119, 105, 116, 104, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 111, 114, 32, 39, 122, 45, 102, 97, 99, 116, 111, 114, 39, 44, 32, 116, 104, 101, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 109, 97, 112, 32, 105, 115, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 76, 50, 32, 110, 111, 114, 109, 32, 111, 102, 32, 116, 104, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 32, 79, 116, 104, 101, 114, 119, 105, 115, 101, 44, 32, 116, 104, 101, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 109, 97, 112, 32, 105, 115, 32, 116, 97, 107, 101, 110, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 111, 114, 32, 102, 111, 114, 109, 117, 108, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 53, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 48, 46, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 51, 44, 63, 40, 50, 53, 53, 41, 32, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 44, 51, 32, 45, 98, 108, 117, 114, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 48, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 39, 88, 61, 40, 120, 45, 54, 52, 41, 47, 54, 59, 89, 61, 40, 121, 45, 54, 52, 41, 47, 54, 59, 49, 48, 48, 42, 101, 120, 112, 40, 45, 40, 88, 94, 50, 43, 89, 94, 50, 41, 47, 51, 48, 41, 42, 97, 98, 115, 40, 99, 111, 115, 40, 88, 41, 42, 115, 105, 110, 40, 89, 41, 41, 39, 10, 35, 64, 103, 109, 105, 99, 32, 101, 109, 112, 116, 121, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 101, 109, 112, 116, 121, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 101, 109, 112, 116, 121, 51, 100, 10, 101, 109, 112, 116, 121, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 101, 109, 112, 116, 121, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 34, 10, 45, 118, 32, 45, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 48, 59, 48, 41, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 101, 109, 112, 116, 121, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 32, 95, 100, 101, 112, 116, 104, 62, 48, 44, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 101, 120, 116, 114, 117, 100, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 112, 116, 104, 61, 49, 54, 39, 44, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 49, 48, 50, 52, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 49, 54, 10, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 101, 120, 116, 114, 117, 100, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 50, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 114, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 49, 44, 105, 102, 40, 119, 62, 104, 44, 109, 105, 110, 40, 36, 50, 44, 119, 41, 44, 109, 105, 110, 40, 36, 50, 44, 104, 41, 42, 119, 47, 104, 41, 41, 41, 125, 10, 104, 114, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 49, 44, 105, 102, 40, 119, 62, 104, 44, 109, 105, 110, 40, 36, 50, 44, 119, 41, 42, 104, 47, 119, 44, 109, 105, 110, 40, 36, 50, 44, 104, 41, 41, 41, 41, 125, 10, 102, 97, 99, 116, 61, 123, 36, 49, 47, 109, 97, 120, 40, 119, 47, 36, 119, 114, 44, 104, 47, 36, 104, 114, 41, 125, 10, 45, 98, 32, 36, 51, 44, 48, 32, 45, 114, 32, 36, 119, 114, 44, 36, 104, 114, 44, 49, 44, 49, 44, 50, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 49, 44, 48, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 32, 45, 42, 51, 100, 32, 49, 44, 49, 44, 36, 102, 97, 99, 116, 32, 45, 114, 118, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 111, 99, 97, 108, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 102, 111, 99, 97, 108, 101, 51, 100, 32, 58, 32, 102, 111, 99, 97, 108, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 51, 100, 32, 102, 111, 99, 97, 108, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 39, 102, 111, 99, 97, 108, 101, 39, 32, 116, 111, 32, 48, 32, 116, 111, 32, 101, 110, 97, 98, 108, 101, 32, 112, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 32, 40, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 39, 102, 111, 99, 97, 108, 101, 39, 32, 119, 105, 108, 108, 32, 100, 105, 115, 97, 98, 108, 101, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 32, 122, 111, 111, 109, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 111, 99, 97, 108, 101, 61, 55, 48, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 102, 111, 99, 97, 108, 101, 51, 100, 32, 123, 36, 60, 42, 57, 48, 125, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 45, 49, 93, 32, 52, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 103, 97, 117, 115, 115, 105, 97, 110, 115, 51, 100, 32, 58, 32, 95, 115, 105, 122, 101, 62, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 110, 116, 111, 32, 115, 101, 116, 32, 111, 102, 32, 51, 100, 32, 103, 97, 117, 115, 115, 105, 97, 110, 45, 115, 104, 97, 112, 101, 100, 32, 115, 112, 114, 105, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 50, 100, 121, 32, 51, 50, 32, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 115, 51, 100, 32, 50, 48, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 43, 51, 100, 10, 103, 97, 117, 115, 115, 105, 97, 110, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 32, 105, 110, 116, 111, 32, 115, 101, 116, 115, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 45, 115, 104, 97, 112, 101, 100, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 51, 100, 32, 50, 32, 45, 112, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 115, 51, 100, 10, 110, 98, 118, 61, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 40, 45, 49, 50, 56, 59, 36, 49, 59, 36, 49, 59, 49, 41, 10, 36, 49, 44, 36, 49, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 51, 53, 37, 44, 51, 53, 37, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 51, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 50, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 110, 98, 118, 62, 49, 125, 32, 52, 44, 123, 36, 110, 98, 118, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 121, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 109, 105, 99, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 97, 32, 51, 100, 32, 71, 39, 77, 73, 67, 32, 108, 111, 103, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 103, 109, 105, 99, 51, 100, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 10, 103, 109, 105, 99, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 71, 39, 77, 73, 67, 32, 108, 111, 103, 111, 46, 34, 10, 45, 118, 32, 45, 10, 45, 116, 101, 120, 116, 51, 100, 32, 71, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 54, 44, 54, 52, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 92, 39, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 51, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 77, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 52, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 57, 54, 44, 49, 57, 54, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 73, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 67, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 57, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 54, 44, 54, 52, 44, 50, 53, 53, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 56, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 56, 53, 44, 45, 49, 48, 44, 49, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 57, 50, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 43, 51, 100, 91, 45, 54, 45, 45, 49, 93, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 10, 45, 98, 111, 120, 51, 100, 32, 123, 109, 105, 110, 40, 51, 43, 64, 123, 60, 44, 45, 49, 125, 47, 50, 44, 49, 48, 41, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 51, 48, 42, 36, 62, 125, 44, 123, 50, 48, 43, 56, 48, 42, 36, 62, 125, 44, 123, 49, 48, 42, 36, 62, 125, 44, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 36, 62, 42, 49, 50, 125, 10, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 56, 48, 42, 99, 111, 115, 40, 48, 46, 53, 43, 49, 46, 48, 50, 42, 36, 62, 42, 49, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 44, 123, 51, 48, 42, 115, 105, 110, 40, 48, 46, 56, 43, 36, 62, 42, 49, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 44, 123, 50, 42, 36, 62, 45, 55, 53, 125, 10, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 91, 45, 51, 48, 45, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 53, 44, 51, 48, 32, 45, 43, 51, 100, 91, 45, 50, 45, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 103, 109, 105, 99, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 121, 114, 111, 105, 100, 51, 100, 32, 58, 32, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 48, 44, 95, 122, 111, 111, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 103, 121, 114, 111, 105, 100, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 51, 50, 39, 32, 97, 110, 100, 32, 39, 122, 111, 111, 109, 61, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 52, 56, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 10, 103, 121, 114, 111, 105, 100, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 51, 50, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 103, 121, 114, 111, 105, 100, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 32, 97, 110, 100, 32, 114, 97, 110, 103, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 34, 39, 48, 46, 52, 57, 42, 40, 92, 10, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 50, 42, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 50, 42, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 50, 42, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 50, 42, 121, 32, 43, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 121, 32, 43, 32, 50, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 121, 32, 45, 32, 50, 42, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 121, 32, 43, 32, 50, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 121, 32, 45, 32, 50, 42, 122, 41, 92, 10, 41, 32, 43, 32, 48, 46, 50, 55, 42, 40, 32, 92, 10, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 122, 32, 43, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 122, 32, 45, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 122, 32, 43, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 122, 32, 45, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 92, 10, 41, 32, 45, 32, 48, 46, 54, 57, 39, 34, 44, 48, 44, 123, 45, 36, 50, 125, 44, 123, 45, 36, 50, 125, 44, 123, 45, 36, 50, 125, 44, 36, 50, 44, 36, 50, 44, 36, 50, 44, 36, 49, 44, 36, 49, 44, 36, 49, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 103, 121, 114, 111, 105, 100, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 51, 100, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 97, 100, 100, 51, 100, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 51, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 93, 34, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 54, 45, 115, 101, 116, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 110, 105, 109, 97, 116, 101, 32, 102, 108, 111, 119, 101, 114, 44, 34, 51, 48, 44, 48, 34, 44, 34, 51, 48, 44, 53, 34, 44, 54, 32, 45, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 10, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 77, 61, 123, 109, 97, 120, 40, 64, 123, 45, 109, 97, 120, 95, 119, 104, 125, 41, 125, 32, 45, 114, 32, 36, 77, 44, 36, 77, 44, 49, 44, 51, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 45, 110, 51, 100, 32, 45, 99, 51, 100, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 54, 41, 125, 10, 45, 43, 51, 100, 91, 45, 54, 93, 32, 48, 44, 48, 44, 45, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 53, 93, 32, 49, 44, 48, 44, 48, 44, 49, 56, 48, 32, 45, 43, 51, 100, 91, 45, 53, 93, 32, 48, 44, 48, 44, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 52, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 52, 93, 32, 45, 48, 46, 53, 44, 48, 44, 48, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 51, 93, 32, 48, 46, 53, 44, 48, 44, 48, 10, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 50, 93, 32, 48, 44, 45, 48, 46, 53, 44, 48, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 46, 53, 44, 48, 10, 45, 43, 51, 100, 91, 45, 54, 45, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 105, 109, 97, 103, 101, 32, 99, 117, 98, 101, 93, 34, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 56, 59, 54, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 49, 59, 50, 59, 54, 59, 53, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 53, 59, 54, 59, 55, 59, 52, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 52, 59, 55, 59, 51, 59, 48, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 52, 59, 48, 59, 49, 59, 53, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 51, 59, 55, 59, 54, 59, 50, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 52, 59, 49, 59, 92, 10, 48, 59, 48, 59, 48, 59, 92, 10, 123, 119, 125, 59, 48, 59, 48, 59, 92, 10, 123, 119, 125, 59, 123, 104, 125, 59, 48, 59, 92, 10, 123, 48, 125, 59, 123, 104, 125, 59, 48, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 121, 114, 97, 109, 105, 100, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 121, 114, 97, 109, 105, 100, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 32, 119, 50, 61, 123, 119, 47, 50, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 59, 48, 59, 48, 46, 53, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 57, 59, 48, 59, 52, 59, 51, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 49, 59, 52, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 50, 59, 52, 59, 49, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 51, 59, 52, 59, 50, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 58, 32, 95, 120, 121, 95, 116, 105, 108, 101, 115, 62, 61, 49, 44, 48, 60, 61, 120, 121, 95, 115, 104, 105, 102, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 122, 95, 115, 104, 105, 102, 116, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 114, 117, 98, 105, 107, 39, 115, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 121, 95, 116, 105, 108, 101, 115, 61, 51, 39, 44, 32, 39, 120, 121, 95, 115, 104, 105, 102, 116, 61, 53, 39, 32, 97, 110, 100, 32, 39, 122, 95, 115, 104, 105, 102, 116, 61, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 44, 10, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 114, 117, 98, 105, 107, 39, 115, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 120, 121, 45, 116, 105, 108, 101, 115, 44, 32, 120, 121, 45, 115, 104, 105, 102, 116, 32, 36, 50, 32, 97, 110, 100, 32, 122, 45, 115, 104, 105, 102, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 40, 56, 44, 53, 41, 10, 40, 48, 44, 48, 44, 48, 59, 92, 10, 49, 48, 48, 44, 48, 44, 48, 59, 92, 10, 49, 48, 48, 44, 49, 48, 48, 44, 48, 59, 92, 10, 48, 44, 49, 48, 48, 44, 48, 59, 92, 10, 36, 50, 44, 36, 50, 44, 123, 45, 36, 51, 125, 59, 92, 10, 123, 49, 48, 48, 45, 36, 50, 125, 44, 36, 50, 44, 123, 45, 36, 51, 125, 59, 92, 10, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 45, 36, 51, 125, 59, 92, 10, 36, 50, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 45, 36, 51, 125, 41, 10, 40, 52, 44, 52, 44, 55, 44, 54, 44, 53, 59, 92, 10, 52, 44, 48, 44, 52, 44, 53, 44, 49, 59, 92, 10, 52, 44, 51, 44, 50, 44, 54, 44, 55, 59, 92, 10, 52, 44, 48, 44, 51, 44, 55, 44, 52, 59, 92, 10, 52, 44, 49, 44, 53, 44, 54, 44, 50, 41, 10, 51, 44, 53, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 53, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 45, 36, 49, 45, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 45, 36, 49, 45, 45, 49, 93, 10, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 47, 51, 100, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 53, 48, 44, 53, 48, 44, 53, 48, 10, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 10, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 56, 48, 10, 45, 43, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 58, 32, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 49, 62, 61, 51, 44, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 50, 62, 61, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 115, 112, 104, 101, 114, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 49, 61, 51, 50, 39, 32, 97, 110, 100, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 115, 50, 61, 49, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 51, 50, 44, 49, 54, 10, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 61, 51, 32, 38, 38, 32, 36, 123, 50, 61, 49, 54, 125, 62, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 115, 112, 104, 101, 114, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 116, 119, 61, 123, 119, 45, 49, 125, 32, 116, 104, 61, 123, 104, 45, 49, 125, 10, 110, 98, 118, 61, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 50, 41, 125, 10, 110, 98, 112, 61, 123, 36, 49, 42, 40, 36, 50, 45, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 36, 110, 98, 118, 59, 36, 110, 98, 112, 41, 10, 40, 48, 59, 48, 59, 49, 41, 32, 40, 48, 59, 48, 59, 45, 49, 41, 32, 40, 48, 44, 123, 50, 42, 112, 105, 125, 59, 48, 44, 123, 50, 42, 112, 105, 125, 94, 48, 44, 48, 59, 123, 112, 105, 125, 44, 123, 112, 105, 125, 41, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 49, 43, 49, 125, 44, 36, 50, 44, 49, 44, 50, 44, 51, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 99, 111, 115, 91, 45, 52, 93, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 116, 120, 48, 61, 123, 36, 62, 42, 36, 116, 119, 47, 36, 49, 125, 32, 116, 120, 49, 61, 123, 40, 36, 62, 43, 49, 41, 42, 36, 116, 119, 47, 36, 49, 125, 32, 116, 121, 49, 61, 123, 36, 116, 104, 47, 40, 36, 50, 45, 49, 41, 125, 10, 40, 57, 59, 48, 59, 123, 50, 43, 36, 62, 125, 59, 123, 50, 43, 40, 36, 62, 43, 49, 41, 37, 36, 49, 125, 59, 123, 36, 116, 119, 47, 50, 125, 59, 48, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 51, 125, 10, 116, 121, 48, 61, 36, 116, 121, 49, 32, 116, 121, 49, 61, 123, 40, 36, 62, 43, 50, 41, 42, 36, 116, 104, 47, 40, 36, 50, 45, 49, 41, 125, 32, 105, 48, 61, 123, 50, 43, 36, 62, 42, 36, 49, 43, 64, 123, 62, 44, 45, 50, 125, 125, 32, 105, 49, 61, 123, 50, 43, 36, 62, 42, 36, 49, 43, 40, 64, 123, 62, 44, 45, 50, 125, 43, 49, 41, 37, 36, 49, 125, 10, 40, 49, 50, 59, 36, 105, 48, 59, 123, 36, 105, 48, 43, 36, 49, 125, 59, 123, 36, 105, 49, 43, 36, 49, 125, 59, 36, 105, 49, 59, 36, 116, 120, 48, 59, 36, 116, 121, 48, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 48, 41, 10, 45, 100, 111, 110, 101, 10, 40, 57, 59, 49, 59, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 51, 41, 43, 40, 36, 62, 43, 49, 41, 37, 36, 49, 125, 59, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 51, 41, 43, 36, 62, 125, 59, 123, 36, 116, 119, 47, 50, 125, 59, 36, 116, 104, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 41, 10, 45, 100, 111, 110, 101, 10, 45, 97, 91, 45, 36, 110, 98, 112, 45, 45, 49, 93, 32, 121, 10, 45, 109, 118, 91, 45, 52, 93, 32, 64, 35, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 49, 44, 123, 52, 42, 40, 36, 110, 98, 112, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 111, 108, 105, 110, 101, 51, 100, 32, 58, 32, 105, 115, 111, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 44, 118, 97, 108, 117, 101, 44, 95, 120, 48, 44, 95, 121, 48, 44, 95, 120, 49, 44, 95, 121, 49, 44, 95, 115, 105, 122, 101, 95, 120, 62, 48, 91, 37, 93, 44, 95, 115, 105, 122, 101, 95, 121, 62, 48, 91, 37, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 116, 114, 97, 99, 116, 32, 51, 100, 32, 105, 115, 111, 108, 105, 110, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 111, 114, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 117, 108, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 48, 61, 121, 48, 61, 45, 51, 39, 44, 32, 39, 120, 49, 61, 121, 49, 61, 51, 39, 32, 97, 110, 100, 32, 39, 115, 105, 122, 101, 95, 120, 61, 115, 105, 122, 101, 95, 121, 61, 50, 53, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 105, 115, 111, 108, 105, 110, 101, 51, 100, 32, 53, 48, 37, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 105, 115, 111, 108, 105, 110, 101, 51, 100, 32, 39, 88, 61, 120, 45, 119, 47, 50, 59, 89, 61, 121, 45, 104, 47, 50, 59, 40, 88, 94, 50, 43, 89, 94, 50, 41, 37, 50, 48, 39, 44, 49, 48, 44, 45, 49, 48, 44, 45, 49, 48, 44, 49, 48, 44, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 58, 32, 105, 115, 111, 118, 97, 108, 117, 101, 91, 37, 93, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 44, 118, 97, 108, 117, 101, 44, 95, 120, 48, 44, 95, 121, 48, 44, 95, 122, 48, 44, 95, 120, 49, 44, 95, 121, 49, 44, 95, 122, 49, 44, 95, 115, 105, 122, 101, 95, 120, 62, 48, 91, 37, 93, 44, 95, 115, 105, 122, 101, 95, 121, 62, 48, 91, 37, 93, 44, 95, 115, 105, 122, 101, 95, 122, 62, 48, 91, 37, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 116, 114, 97, 99, 116, 32, 51, 100, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 111, 114, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 117, 108, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 48, 61, 121, 48, 61, 122, 48, 61, 45, 51, 39, 44, 32, 39, 120, 49, 61, 121, 49, 61, 122, 49, 61, 51, 39, 32, 97, 110, 100, 32, 39, 115, 105, 122, 101, 95, 120, 61, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 122, 61, 51, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 49, 50, 56, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 101, 120, 112, 97, 110, 100, 95, 122, 32, 50, 44, 48, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 32, 45, 109, 117, 108, 51, 100, 32, 49, 44, 49, 44, 51, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 39, 120, 94, 50, 43, 121, 94, 50, 43, 97, 98, 115, 40, 122, 41, 94, 97, 98, 115, 40, 52, 42, 99, 111, 115, 40, 120, 42, 121, 42, 122, 42, 51, 41, 41, 39, 44, 51, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 98, 101, 108, 95, 112, 111, 105, 110, 116, 115, 51, 100, 32, 58, 32, 95, 108, 97, 98, 101, 108, 95, 115, 105, 122, 101, 62, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 97, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 108, 97, 98, 101, 108, 32, 116, 111, 32, 97, 108, 108, 32, 118, 101, 114, 116, 105, 99, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 108, 97, 98, 101, 108, 95, 115, 105, 122, 101, 61, 49, 51, 39, 32, 97, 110, 100, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 52, 48, 44, 54, 44, 54, 32, 45, 108, 97, 98, 101, 108, 95, 112, 111, 105, 110, 116, 115, 51, 100, 32, 50, 52, 44, 49, 32, 45, 109, 111, 100, 101, 51, 100, 32, 49, 10, 108, 97, 98, 101, 108, 95, 112, 111, 105, 110, 116, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 51, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 97, 98, 101, 108, 32, 118, 101, 114, 116, 105, 99, 101, 115, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 112, 51, 100, 91, 36, 62, 93, 32, 48, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 51, 100, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 110, 98, 112, 61, 64, 123, 45, 50, 44, 48, 125, 32, 45, 61, 91, 45, 50, 93, 32, 36, 110, 98, 112, 44, 48, 44, 49, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 98, 112, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 112, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 112, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 36, 50, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 10, 45, 43, 51, 100, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 97, 116, 104, 101, 51, 100, 32, 58, 32, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 109, 97, 120, 95, 97, 110, 103, 108, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 49, 50, 56, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 37, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 95, 97, 110, 103, 108, 101, 61, 51, 54, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 51, 48, 48, 44, 51, 48, 48, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 108, 117, 114, 32, 52, 48, 32, 45, 115, 105, 103, 110, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 32, 45, 108, 97, 116, 104, 101, 51, 100, 32, 44, 10, 108, 97, 116, 104, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 50, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 53, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 54, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 108, 97, 116, 104, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 109, 97, 120, 105, 109, 117, 109, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 116, 109, 97, 120, 61, 123, 40, 36, 51, 45, 49, 56, 48, 41, 42, 112, 105, 47, 49, 56, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 114, 61, 123, 109, 97, 120, 40, 49, 44, 119, 50, 61, 50, 42, 119, 59, 105, 102, 40, 119, 50, 62, 104, 44, 109, 105, 110, 40, 36, 49, 44, 119, 50, 41, 44, 109, 105, 110, 40, 36, 49, 44, 104, 41, 42, 119, 50, 47, 104, 41, 41, 125, 10, 104, 114, 61, 123, 109, 97, 120, 40, 49, 44, 119, 50, 61, 50, 42, 119, 59, 105, 102, 40, 119, 50, 62, 104, 44, 109, 105, 110, 40, 36, 49, 44, 119, 50, 41, 42, 104, 47, 119, 50, 44, 109, 105, 110, 40, 36, 49, 44, 104, 41, 41, 41, 125, 10, 114, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 40, 36, 119, 114, 41, 94, 50, 43, 40, 36, 104, 114, 41, 94, 50, 41, 47, 50, 125, 10, 36, 119, 114, 44, 49, 44, 36, 119, 114, 44, 49, 44, 34, 120, 99, 61, 120, 45, 119, 47, 50, 59, 32, 122, 99, 61, 122, 45, 100, 47, 50, 59, 32, 116, 61, 97, 116, 97, 110, 50, 40, 122, 99, 44, 120, 99, 41, 59, 32, 105, 102, 40, 116, 62, 34, 36, 116, 109, 97, 120, 34, 44, 34, 36, 114, 109, 97, 120, 34, 44, 115, 113, 114, 116, 40, 120, 99, 42, 120, 99, 43, 122, 99, 42, 122, 99, 41, 41, 34, 10, 45, 42, 91, 45, 49, 93, 32, 123, 50, 42, 40, 64, 123, 45, 50, 44, 119, 125, 45, 49, 41, 47, 40, 119, 45, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 114, 44, 36, 104, 114, 44, 36, 119, 114, 10, 40, 48, 59, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 114, 44, 36, 104, 114, 44, 36, 119, 114, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 49, 48, 44, 48, 32, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 32, 45, 114, 118, 51, 100, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 105, 103, 104, 116, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 103, 104, 116, 51, 100, 32, 58, 32, 112, 111, 115, 105, 116, 105, 111, 110, 95, 120, 44, 112, 111, 115, 105, 116, 105, 111, 110, 95, 121, 44, 112, 111, 115, 105, 116, 105, 111, 110, 95, 122, 32, 58, 32, 91, 116, 101, 120, 116, 117, 114, 101, 93, 32, 58, 32, 40, 110, 111, 32, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 116, 104, 101, 32, 108, 105, 103, 104, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 114, 32, 116, 104, 101, 32, 108, 105, 103, 104, 116, 32, 116, 101, 120, 116, 117, 114, 101, 32, 102, 111, 114, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 101, 115, 101, 116, 115, 32, 116, 104, 101, 32, 51, 100, 32, 108, 105, 103, 104, 116, 32, 116, 111, 32, 100, 101, 102, 97, 117, 108, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 115, 112, 101, 99, 115, 51, 100, 32, 49, 46, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 108, 105, 103, 104, 116, 51, 100, 32, 123, 36, 62, 42, 49, 48, 48, 125, 44, 48, 44, 45, 51, 48, 48, 32, 45, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 48, 93, 32, 52, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 110, 101, 51, 100, 32, 58, 32, 120, 48, 44, 121, 48, 44, 122, 48, 44, 120, 49, 44, 121, 49, 44, 122, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 110, 101, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 32, 97, 61, 123, 36, 62, 42, 112, 105, 47, 53, 48, 125, 32, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 123, 99, 111, 115, 40, 51, 42, 36, 97, 41, 125, 44, 123, 115, 105, 110, 40, 50, 42, 36, 97, 41, 125, 44, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 108, 105, 110, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 110, 101, 32, 40, 36, 123, 49, 45, 51, 125, 41, 45, 40, 36, 123, 52, 45, 54, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 49, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 50, 44, 49, 44, 36, 123, 49, 45, 54, 125, 44, 50, 44, 48, 44, 49, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 108, 105, 110, 101, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 58, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 44, 97, 44, 65, 44, 98, 44, 66, 44, 99, 44, 67, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 99, 117, 114, 118, 101, 115, 32, 40, 120, 40, 116, 41, 61, 115, 105, 110, 40, 97, 42, 116, 43, 65, 42, 50, 42, 112, 105, 41, 44, 121, 40, 116, 41, 61, 115, 105, 110, 40, 98, 42, 116, 43, 66, 42, 50, 42, 112, 105, 41, 44, 122, 40, 116, 41, 61, 115, 105, 110, 40, 99, 42, 116, 43, 67, 42, 50, 42, 112, 105, 41, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 49, 48, 50, 52, 39, 44, 32, 39, 97, 61, 50, 39, 44, 32, 39, 65, 61, 48, 39, 44, 32, 39, 98, 61, 49, 39, 44, 32, 39, 66, 61, 48, 39, 44, 32, 39, 99, 61, 48, 39, 32, 97, 110, 100, 32, 39, 67, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 44, 10, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 48, 50, 52, 125, 62, 49, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 99, 117, 114, 118, 101, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 40, 97, 44, 65, 41, 61, 40, 36, 50, 44, 36, 51, 41, 44, 32, 40, 98, 44, 66, 41, 61, 40, 36, 52, 44, 36, 53, 41, 32, 97, 110, 100, 32, 40, 99, 44, 67, 41, 61, 40, 36, 54, 44, 36, 55, 41, 46, 34, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 36, 114, 101, 115, 59, 123, 36, 114, 101, 115, 45, 49, 125, 41, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 114, 101, 115, 44, 49, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 120, 50, 10, 45, 42, 91, 45, 51, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 93, 32, 123, 36, 51, 42, 50, 42, 112, 105, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 123, 36, 53, 42, 50, 42, 112, 105, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 54, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 55, 42, 50, 42, 112, 105, 125, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 59, 123, 36, 114, 101, 115, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 51, 42, 40, 36, 114, 101, 115, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 108, 105, 115, 115, 97, 106, 111, 117, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 111, 100, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 100, 101, 51, 100, 32, 58, 32, 109, 111, 100, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 115, 116, 97, 116, 105, 99, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 109, 111, 100, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 98, 111, 117, 110, 100, 105, 110, 103, 45, 98, 111, 120, 32, 124, 32, 48, 61, 100, 111, 116, 115, 32, 124, 32, 49, 61, 119, 105, 114, 101, 102, 114, 97, 109, 101, 32, 124, 32, 50, 61, 102, 108, 97, 116, 32, 124, 32, 51, 61, 102, 108, 97, 116, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 52, 61, 103, 111, 117, 114, 97, 117, 100, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 53, 61, 112, 104, 111, 110, 103, 45, 115, 104, 97, 100, 101, 100, 32, 125, 46, 34, 41, 59, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 111, 117, 110, 100, 105, 110, 103, 45, 98, 111, 120, 32, 109, 111, 100, 101, 32, 40, 39, 109, 111, 100, 101, 61, 61, 49, 39, 41, 32, 105, 115, 32, 97, 99, 116, 105, 118, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 51, 100, 32, 118, 105, 101, 119, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 49, 44, 50, 44, 51, 44, 52, 44, 53, 41, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 109, 111, 100, 101, 51, 100, 32, 64, 123, 48, 44, 36, 62, 125, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 45, 49, 93, 32, 51, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 109, 100, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 111, 100, 101, 100, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 100, 101, 100, 51, 100, 32, 58, 32, 109, 111, 100, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 100, 121, 110, 97, 109, 105, 99, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 32, 102, 111, 114, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 51, 100, 32, 118, 105, 101, 119, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 100, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 109, 111, 100, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 45, 49, 61, 98, 111, 117, 110, 100, 105, 110, 103, 45, 98, 111, 120, 32, 124, 32, 48, 61, 100, 111, 116, 115, 32, 124, 32, 49, 61, 119, 105, 114, 101, 102, 114, 97, 109, 101, 32, 124, 32, 50, 61, 102, 108, 97, 116, 32, 124, 32, 51, 61, 102, 108, 97, 116, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 52, 61, 103, 111, 117, 114, 97, 117, 100, 45, 115, 104, 97, 100, 101, 100, 32, 124, 32, 53, 61, 112, 104, 111, 110, 103, 45, 115, 104, 97, 100, 101, 100, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 42, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 109, 117, 108, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 109, 117, 108, 51, 100, 32, 58, 32, 102, 97, 99, 116, 111, 114, 32, 58, 32, 102, 97, 99, 116, 111, 114, 95, 120, 44, 102, 97, 99, 116, 111, 114, 95, 121, 44, 95, 102, 97, 99, 116, 111, 114, 95, 122, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 99, 97, 108, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 115, 111, 116, 114, 111, 112, 105, 99, 97, 108, 108, 121, 32, 111, 114, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 97, 108, 108, 121, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 97, 99, 116, 111, 114, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 42, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 97, 99, 116, 111, 114, 95, 122, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 53, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 97, 100, 100, 51, 100, 91, 45, 49, 93, 32, 49, 48, 44, 48, 44, 48, 32, 45, 109, 117, 108, 51, 100, 91, 45, 49, 93, 32, 49, 46, 50, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 110, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 39, 46, 10, 110, 51, 100, 32, 58, 10, 45, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 116, 111, 32, 117, 110, 105, 116, 32, 115, 105, 122, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 110, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 32, 45, 99, 105, 114, 99, 108, 101, 51, 100, 32, 123, 63, 40, 51, 41, 125, 44, 123, 63, 40, 51, 41, 125, 44, 123, 63, 40, 51, 41, 125, 44, 48, 46, 49, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 32, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 91, 45, 49, 93, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 48, 32, 45, 97, 100, 100, 51, 100, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 32, 58, 10, 45, 95, 36, 48, 10, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 61, 123, 105, 40, 48, 44, 54, 41, 125, 10, 45, 105, 102, 32, 123, 36, 110, 62, 48, 125, 10, 45, 115, 104, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 10, 45, 115, 104, 91, 45, 52, 93, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 123, 118, 97, 108, 61, 109, 97, 120, 40, 64, 123, 45, 51, 44, 105, 77, 125, 45, 64, 123, 45, 51, 44, 105, 109, 125, 44, 64, 123, 45, 50, 44, 105, 77, 125, 45, 64, 123, 45, 50, 44, 105, 109, 125, 44, 105, 77, 45, 105, 109, 41, 59, 105, 102, 40, 118, 97, 108, 44, 118, 97, 108, 44, 49, 41, 125, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 112, 97, 99, 105, 116, 121, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 111, 112, 97, 99, 105, 116, 121, 51, 100, 32, 58, 32, 111, 112, 97, 99, 105, 116, 121, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 111, 112, 97, 99, 105, 116, 121, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 111, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 49, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 55, 32, 45, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 50, 48, 32, 45, 111, 112, 97, 99, 105, 116, 121, 51, 100, 91, 45, 49, 93, 32, 123, 63, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 51, 100, 32, 58, 32, 95, 120, 40, 97, 44, 98, 41, 44, 95, 121, 40, 97, 44, 98, 41, 44, 95, 122, 40, 97, 44, 98, 41, 44, 95, 97, 109, 105, 110, 44, 95, 97, 109, 97, 120, 44, 95, 98, 109, 105, 110, 44, 95, 98, 109, 97, 120, 44, 95, 114, 101, 115, 95, 97, 62, 48, 44, 95, 114, 101, 115, 95, 98, 62, 48, 44, 95, 114, 101, 115, 95, 120, 62, 48, 44, 95, 114, 101, 115, 95, 121, 62, 48, 44, 95, 114, 101, 115, 95, 122, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 105, 115, 111, 118, 97, 108, 117, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 32, 115, 117, 114, 102, 97, 99, 101, 32, 40, 120, 40, 97, 44, 98, 41, 44, 121, 40, 97, 44, 98, 41, 44, 122, 40, 97, 44, 98, 41, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 115, 105, 110, 40, 97, 41, 39, 44, 32, 39, 121, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 99, 111, 115, 40, 97, 41, 39, 44, 32, 39, 99, 61, 115, 105, 110, 40, 98, 41, 39, 44, 32, 39, 97, 109, 105, 110, 61, 45, 112, 105, 39, 44, 32, 39, 97, 109, 97, 120, 61, 39, 112, 105, 39, 44, 32, 39, 98, 109, 105, 110, 61, 45, 112, 105, 39, 44, 32, 39, 98, 109, 97, 120, 61, 39, 112, 105, 39, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 114, 101, 115, 95, 97, 61, 53, 49, 50, 39, 44, 32, 39, 114, 101, 115, 95, 98, 61, 114, 101, 115, 95, 97, 39, 44, 32, 39, 114, 101, 115, 95, 120, 61, 54, 52, 39, 44, 32, 39, 114, 101, 115, 95, 121, 61, 114, 101, 115, 95, 120, 39, 44, 32, 39, 114, 101, 115, 95, 122, 61, 114, 101, 115, 95, 121, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 50, 37, 39, 32, 97, 110, 100, 32, 39, 105, 115, 111, 118, 97, 108, 117, 101, 61, 49, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 51, 100, 32, 44, 10, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 115, 105, 110, 40, 97, 41, 125, 34, 44, 34, 36, 123, 50, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 99, 111, 115, 40, 97, 41, 125, 34, 44, 34, 36, 123, 51, 61, 115, 105, 110, 40, 98, 41, 125, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 123, 45, 112, 105, 125, 125, 44, 36, 123, 53, 61, 123, 112, 105, 125, 125, 44, 36, 123, 54, 61, 123, 45, 112, 105, 125, 125, 44, 36, 123, 55, 61, 123, 112, 105, 125, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 56, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 57, 61, 36, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 54, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 36, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 36, 49, 49, 125, 62, 48, 32, 38, 38, 32, 92, 10, 36, 123, 49, 51, 61, 50, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 52, 61, 49, 48, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 32, 115, 117, 114, 102, 97, 99, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 52, 44, 36, 53, 59, 36, 52, 44, 36, 53, 94, 36, 54, 44, 36, 54, 59, 36, 55, 44, 36, 55, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 56, 44, 36, 57, 44, 49, 44, 50, 44, 51, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 102, 91, 45, 49, 93, 32, 34, 97, 61, 105, 40, 120, 44, 121, 44, 48, 44, 48, 41, 59, 98, 61, 105, 40, 120, 44, 121, 44, 48, 44, 49, 41, 59, 105, 102, 40, 99, 61, 61, 48, 44, 36, 49, 44, 105, 102, 40, 99, 61, 61, 49, 44, 36, 50, 44, 36, 51, 41, 41, 34, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 120, 109, 105, 110, 61, 123, 105, 109, 125, 32, 120, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 48, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 121, 109, 105, 110, 61, 123, 105, 109, 125, 32, 121, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 49, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 122, 109, 105, 110, 61, 123, 105, 109, 125, 32, 122, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 50, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 49, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 51, 44, 48, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 52, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 36, 120, 109, 97, 120, 45, 36, 120, 109, 105, 110, 125, 44, 123, 36, 121, 109, 97, 120, 45, 36, 121, 109, 105, 110, 125, 44, 123, 36, 122, 109, 97, 120, 45, 36, 122, 109, 105, 110, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 99, 97, 95, 112, 97, 116, 99, 104, 51, 100, 32, 58, 32, 95, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 62, 48, 44, 95, 77, 62, 48, 44, 95, 78, 62, 48, 44, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 105, 110, 112, 117, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 117, 116, 112, 117, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 108, 97, 109, 98, 100, 97, 95, 120, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 116, 32, 51, 100, 32, 112, 97, 116, 99, 104, 45, 112, 99, 97, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 51, 100, 32, 112, 97, 116, 99, 104, 45, 112, 99, 97, 32, 105, 115, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 77, 32, 112, 97, 116, 99, 104, 101, 115, 32, 111, 110, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 44, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 97, 115, 32, 97, 32, 99, 108, 111, 117, 100, 32, 111, 102, 32, 78, 32, 51, 100, 32, 112, 111, 105, 110, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 97, 116, 99, 104, 95, 115, 105, 122, 101, 61, 55, 39, 44, 32, 39, 77, 61, 49, 48, 48, 48, 39, 44, 32, 39, 78, 61, 51, 48, 48, 48, 39, 44, 32, 39, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 105, 110, 112, 117, 116, 61, 49, 39, 44, 32, 39, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 117, 116, 112, 117, 116, 61, 48, 39, 44, 32, 97, 110, 100, 32, 39, 108, 97, 109, 98, 100, 97, 95, 120, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 99, 97, 95, 112, 97, 116, 99, 104, 51, 100, 32, 55, 10, 112, 99, 97, 95, 112, 97, 116, 99, 104, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 55, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 49, 48, 48, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 51, 48, 48, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 112, 97, 116, 99, 104, 45, 112, 99, 97, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 64, 35, 62, 49, 41, 44, 115, 44, 34, 34, 125, 34, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 114, 111, 109, 32, 36, 50, 32, 36, 49, 120, 36, 49, 32, 105, 110, 112, 117, 116, 32, 112, 97, 116, 99, 104, 115, 44, 10, 119, 105, 116, 104, 32, 36, 51, 32, 111, 117, 116, 112, 117, 116, 32, 112, 97, 116, 99, 104, 115, 44, 32, 105, 110, 112, 117, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 52, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 44, 32, 111, 117, 116, 112, 117, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 10, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 53, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 32, 97, 110, 100, 32, 108, 97, 109, 98, 100, 97, 95, 120, 121, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 10, 80, 49, 61, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 10, 80, 50, 61, 123, 36, 49, 45, 36, 80, 49, 45, 49, 125, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 10, 49, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 64, 123, 48, 44, 119, 45, 49, 125, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 64, 123, 48, 44, 104, 45, 49, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 45, 112, 97, 116, 99, 104, 101, 115, 91, 48, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 64, 45, 49, 32, 45, 121, 91, 50, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 120, 10, 45, 122, 91, 49, 93, 32, 48, 44, 49, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 36, 54, 32, 45, 97, 91, 49, 44, 50, 93, 32, 121, 32, 45, 115, 91, 94, 48, 93, 32, 120, 10, 45, 45, 43, 91, 94, 48, 93, 32, 45, 47, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 49, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 94, 48, 93, 32, 120, 10, 45, 105, 102, 32, 36, 52, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 121, 32, 45, 47, 32, 39, 115, 113, 114, 116, 40, 49, 101, 45, 56, 43, 105, 118, 41, 39, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 105, 103, 101, 110, 91, 45, 49, 93, 32, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 53, 32, 45, 115, 113, 114, 116, 91, 45, 50, 93, 32, 45, 47, 91, 45, 50, 93, 32, 64, 123, 45, 50, 44, 77, 125, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 64, 123, 48, 44, 119, 125, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 64, 123, 48, 44, 104, 125, 41, 41, 125, 10, 40, 123, 36, 54, 42, 36, 120, 125, 59, 123, 36, 54, 42, 36, 121, 125, 41, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 120, 45, 36, 80, 49, 125, 44, 123, 36, 121, 45, 36, 80, 49, 125, 44, 123, 36, 120, 43, 36, 80, 50, 125, 44, 123, 36, 121, 43, 36, 80, 50, 125, 44, 49, 10, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 45, 97, 91, 50, 45, 45, 49, 93, 32, 120, 32, 45, 42, 42, 91, 49, 44, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 49, 93, 10, 45, 114, 111, 119, 115, 91, 50, 45, 45, 49, 93, 32, 50, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 36, 115, 33, 61, 51, 125, 10, 45, 114, 91, 50, 45, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 123, 109, 105, 110, 40, 51, 44, 36, 115, 41, 125, 44, 45, 49, 10, 45, 114, 91, 50, 45, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 51, 44, 123, 105, 102, 40, 36, 115, 33, 61, 49, 44, 48, 44, 49, 41, 125, 10, 45, 121, 91, 50, 45, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 50, 45, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 36, 49, 59, 36, 49, 59, 51, 41, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 121, 10, 45, 114, 109, 91, 48, 93, 10, 45, 105, 91, 48, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 10, 45, 105, 91, 49, 93, 32, 40, 36, 51, 59, 36, 51, 41, 10, 45, 105, 91, 51, 93, 32, 50, 44, 36, 51, 44, 49, 44, 49, 44, 105, 102, 40, 120, 61, 61, 48, 44, 49, 44, 121, 41, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 49, 10, 45, 121, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 108, 97, 110, 101, 51, 100, 32, 58, 32, 95, 115, 105, 122, 101, 95, 120, 44, 95, 115, 105, 122, 101, 95, 121, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 95, 120, 62, 48, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 115, 105, 118, 105, 111, 110, 115, 95, 121, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 108, 97, 110, 101, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 120, 61, 49, 39, 44, 32, 39, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 120, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 95, 120, 61, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 95, 121, 61, 50, 52, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 53, 48, 44, 51, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 112, 108, 97, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 108, 97, 110, 101, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 40, 36, 123, 49, 44, 50, 125, 41, 32, 97, 110, 100, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 123, 51, 44, 52, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 123, 36, 51, 43, 49, 125, 44, 123, 36, 52, 43, 49, 125, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 47, 36, 51, 125, 44, 123, 36, 50, 47, 36, 52, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 108, 97, 110, 101, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 105, 110, 116, 51, 100, 32, 58, 32, 120, 48, 44, 121, 48, 44, 122, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 32, 97, 61, 123, 36, 62, 42, 112, 105, 47, 53, 48, 48, 125, 32, 45, 112, 111, 105, 110, 116, 51, 100, 32, 123, 99, 111, 115, 40, 51, 42, 36, 97, 41, 125, 44, 123, 115, 105, 110, 40, 50, 42, 36, 97, 41, 125, 44, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 112, 111, 105, 110, 116, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 49, 55, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 49, 44, 49, 44, 36, 123, 49, 45, 51, 125, 44, 49, 44, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 111, 105, 110, 116, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 112, 108, 97, 110, 97, 114, 32, 111, 114, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 49, 48, 48, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 42, 32, 50, 53, 53, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 110, 111, 114, 109, 32, 45, 33, 61, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 49, 44, 123, 119, 125, 59, 49, 44, 123, 119, 125, 94, 49, 44, 49, 59, 123, 104, 125, 44, 123, 104, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 50, 44, 51, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 48, 32, 45, 97, 32, 121, 32, 105, 115, 95, 112, 111, 105, 110, 116, 115, 61, 64, 35, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 111, 105, 110, 116, 115, 10, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 104, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 121, 122, 120, 32, 45, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 93, 32, 99, 121, 122, 120, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 62, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 45, 105, 91, 45, 51, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 51, 93, 32, 40, 123, 104, 125, 44, 123, 104, 125, 41, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 121, 122, 120, 10, 45, 105, 102, 32, 123, 119, 61, 61, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 119, 62, 51, 125, 32, 45, 105, 91, 45, 50, 93, 32, 52, 44, 123, 104, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 49, 44, 49, 44, 123, 119, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 32, 45, 101, 109, 112, 116, 121, 51, 100, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 115, 101, 51, 100, 32, 58, 32, 118, 97, 108, 117, 101, 49, 44, 46, 46, 44, 118, 97, 108, 117, 101, 49, 54, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 116, 104, 101, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 51, 100, 32, 112, 111, 115, 101, 32, 109, 97, 116, 114, 105, 120, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 110, 111, 97, 114, 103, 115, 41, 32, 114, 101, 115, 101, 116, 115, 32, 116, 104, 101, 32, 51, 100, 32, 112, 111, 115, 101, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 100, 101, 102, 97, 117, 108, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 112, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 58, 32, 109, 111, 100, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 112, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 109, 111, 100, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 112, 111, 105, 110, 116, 115, 32, 124, 32, 49, 61, 115, 101, 103, 109, 101, 110, 116, 115, 32, 124, 32, 50, 61, 110, 111, 110, 45, 116, 101, 120, 116, 117, 114, 101, 100, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 51, 48, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 53, 48, 44, 49, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 115, 51, 100, 32, 58, 32, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 105, 115, 95, 98, 111, 117, 110, 100, 105, 110, 103, 95, 98, 111, 120, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 120, 121, 44, 120, 122, 44, 121, 122, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 46, 10, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 115, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 51, 61, 53, 48, 37, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 120, 121, 44, 120, 122, 44, 121, 122, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 120, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 119, 44, 36, 49, 41, 125, 10, 121, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 104, 44, 36, 50, 41, 125, 10, 122, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 36, 51, 42, 100, 44, 36, 51, 41, 125, 10, 45, 45, 114, 111, 119, 115, 32, 36, 50, 44, 36, 50, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 100, 125, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 50, 93, 32, 36, 49, 44, 36, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 121, 120, 99, 10, 45, 115, 108, 105, 99, 101, 115, 91, 45, 51, 93, 32, 36, 51, 44, 36, 51, 32, 45, 114, 91, 45, 51, 45, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 45, 51, 45, 45, 49, 93, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 10, 45, 43, 51, 100, 91, 45, 51, 93, 32, 48, 44, 48, 44, 36, 122, 32, 45, 43, 51, 100, 91, 45, 50, 93, 32, 48, 44, 36, 121, 44, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 36, 120, 44, 48, 44, 48, 10, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 56, 10, 45, 105, 102, 32, 36, 52, 32, 45, 98, 111, 120, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 52, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 58, 32, 119, 105, 100, 116, 104, 44, 104, 101, 105, 103, 104, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 121, 114, 97, 109, 105, 100, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 49, 48, 48, 44, 49, 48, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 110, 101, 119, 32, 51, 100, 32, 112, 121, 114, 97, 109, 105, 100, 44, 32, 119, 105, 116, 104, 32, 119, 105, 100, 116, 104, 32, 36, 49, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 36, 49, 47, 50, 125, 59, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 45, 36, 49, 47, 50, 125, 59, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 48, 59, 48, 59, 123, 36, 50, 47, 50, 125, 59, 92, 10, 52, 59, 48, 59, 51, 59, 50, 59, 49, 59, 92, 10, 51, 59, 48, 59, 52, 59, 51, 59, 92, 10, 51, 59, 49, 59, 52, 59, 48, 59, 92, 10, 51, 59, 50, 59, 52, 59, 49, 59, 92, 10, 51, 59, 51, 59, 52, 59, 50, 41, 10, 49, 44, 49, 53, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 53, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 121, 114, 97, 109, 105, 100, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 51, 100, 32, 58, 32, 120, 48, 44, 121, 48, 44, 122, 48, 44, 120, 49, 44, 121, 49, 44, 122, 49, 44, 120, 50, 44, 121, 50, 44, 122, 50, 44, 120, 51, 44, 121, 51, 44, 122, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 51, 100, 32, 45, 49, 48, 44, 45, 49, 48, 44, 49, 48, 44, 49, 48, 44, 45, 49, 48, 44, 49, 48, 44, 49, 48, 44, 49, 48, 44, 49, 48, 44, 45, 49, 48, 44, 49, 48, 44, 49, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 32, 45, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 51, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 44, 48, 46, 54, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 32, 45, 109, 111, 100, 101, 51, 100, 32, 50, 10, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 45, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 45, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 45, 40, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 57, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 52, 44, 49, 44, 36, 123, 49, 45, 49, 50, 125, 44, 52, 44, 48, 44, 49, 44, 50, 44, 51, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 118, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 101, 118, 101, 114, 115, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 118, 101, 114, 115, 101, 51, 100, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 118, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 52, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 45, 114, 101, 118, 101, 114, 115, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 114, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 111, 116, 97, 116, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 97, 116, 101, 51, 100, 32, 58, 32, 117, 44, 118, 44, 119, 44, 97, 110, 103, 108, 101, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 111, 116, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 97, 114, 111, 117, 110, 100, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 110, 103, 108, 101, 32, 40, 105, 110, 32, 100, 101, 103, 46, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 114, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 49, 48, 32, 45, 100, 111, 117, 98, 108, 101, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 55, 32, 45, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 50, 48, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 58, 32, 117, 44, 118, 44, 119, 44, 97, 110, 103, 108, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 120, 51, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 109, 97, 116, 114, 105, 120, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 32, 97, 110, 100, 32, 97, 110, 103, 108, 101, 32, 40, 105, 110, 32, 100, 101, 103, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 49, 44, 48, 44, 48, 44, 49, 56, 48, 10, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 109, 97, 116, 114, 105, 120, 32, 97, 114, 111, 117, 110, 100, 32, 97, 120, 105, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 48, 41, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 121, 91, 45, 49, 93, 32, 120, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 105, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 99, 111, 115, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 44, 51, 10, 120, 120, 61, 123, 105, 40, 48, 41, 42, 105, 40, 48, 41, 125, 32, 120, 121, 61, 123, 105, 40, 48, 41, 42, 105, 40, 49, 41, 125, 32, 120, 122, 61, 123, 105, 40, 48, 41, 42, 105, 40, 50, 41, 125, 32, 120, 119, 61, 123, 105, 40, 48, 41, 42, 105, 40, 51, 41, 125, 10, 121, 121, 61, 123, 105, 40, 49, 41, 42, 105, 40, 49, 41, 125, 32, 121, 122, 61, 123, 105, 40, 49, 41, 42, 105, 40, 50, 41, 125, 32, 121, 119, 61, 123, 105, 40, 49, 41, 42, 105, 40, 51, 41, 125, 10, 122, 122, 61, 123, 105, 40, 50, 41, 42, 105, 40, 50, 41, 125, 32, 122, 119, 61, 123, 105, 40, 50, 41, 42, 105, 40, 51, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 49, 45, 50, 42, 40, 36, 121, 121, 43, 36, 122, 122, 41, 125, 44, 123, 50, 42, 40, 36, 120, 121, 43, 36, 122, 119, 41, 125, 44, 123, 50, 42, 40, 36, 120, 122, 45, 36, 121, 119, 41, 125, 59, 92, 10, 123, 50, 42, 40, 36, 120, 121, 45, 36, 122, 119, 41, 125, 44, 123, 49, 45, 50, 42, 40, 36, 120, 120, 43, 36, 122, 122, 41, 125, 44, 123, 50, 42, 40, 36, 121, 122, 43, 36, 120, 119, 41, 125, 59, 92, 10, 123, 50, 42, 40, 36, 120, 122, 43, 36, 121, 119, 41, 125, 44, 123, 50, 42, 40, 36, 121, 122, 45, 36, 120, 119, 41, 125, 44, 123, 49, 45, 50, 42, 40, 36, 120, 120, 43, 36, 121, 121, 41, 125, 41, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 114, 111, 116, 97, 116, 105, 111, 110, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 58, 32, 95, 114, 101, 99, 117, 114, 115, 105, 111, 110, 95, 108, 101, 118, 101, 108, 62, 61, 48, 44, 95, 119, 105, 100, 116, 104, 44, 95, 104, 101, 105, 103, 104, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 112, 121, 114, 97, 109, 105, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 51, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 52, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 112, 121, 114, 97, 109, 105, 100, 32, 111, 102, 32, 100, 101, 103, 114, 101, 101, 32, 36, 49, 44, 32, 119, 105, 116, 104, 32, 119, 105, 100, 116, 104, 32, 36, 50, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 48, 44, 48, 44, 123, 36, 51, 47, 50, 125, 44, 36, 49, 32, 45, 43, 51, 100, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 93, 32, 45, 118, 32, 43, 10, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 54, 60, 61, 48, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 36, 49, 59, 36, 50, 59, 36, 51, 59, 92, 10, 36, 52, 59, 36, 53, 59, 36, 54, 59, 92, 10, 36, 55, 59, 36, 56, 59, 36, 57, 59, 92, 10, 36, 49, 48, 59, 36, 49, 49, 59, 36, 49, 50, 59, 92, 10, 36, 49, 51, 59, 36, 49, 52, 59, 36, 49, 53, 59, 92, 10, 52, 59, 48, 59, 51, 59, 50, 59, 49, 59, 92, 10, 51, 59, 48, 59, 52, 59, 51, 59, 92, 10, 51, 59, 49, 59, 52, 59, 48, 59, 92, 10, 51, 59, 50, 59, 52, 59, 49, 59, 92, 10, 51, 59, 51, 59, 52, 59, 50, 41, 10, 49, 44, 49, 53, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 53, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 54, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 54, 41, 47, 50, 125, 44, 92, 10, 36, 52, 44, 36, 53, 44, 36, 54, 44, 92, 10, 123, 40, 36, 52, 43, 36, 55, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 56, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 57, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 55, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 56, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 57, 41, 47, 50, 125, 44, 92, 10, 36, 55, 44, 36, 56, 44, 36, 57, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 92, 10, 123, 40, 36, 49, 48, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 49, 49, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 50, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 48, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 49, 49, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 50, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 58, 32, 95, 115, 105, 122, 101, 62, 48, 44, 95, 122, 111, 111, 109, 62, 61, 48, 44, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 82, 44, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 71, 44, 95, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 66, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 97, 107, 101, 32, 50, 100, 32, 115, 110, 97, 112, 115, 104, 111, 116, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 39, 122, 111, 111, 109, 39, 32, 116, 111, 32, 48, 32, 116, 111, 32, 100, 105, 115, 97, 98, 108, 101, 32, 111, 98, 106, 101, 99, 116, 32, 97, 117, 116, 111, 45, 115, 99, 97, 108, 105, 110, 103, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 61, 53, 49, 50, 39, 44, 32, 39, 122, 111, 111, 109, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 82, 61, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 71, 61, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 66, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 50, 48, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 52, 48, 48, 44, 49, 46, 50, 44, 49, 50, 56, 44, 54, 52, 44, 51, 50, 10, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 34, 34, 125, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 51, 41, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 84, 97, 107, 101, 32, 36, 49, 120, 36, 49, 32, 115, 110, 97, 112, 115, 104, 111, 116, 36, 63, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 32, 97, 110, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 99, 111, 108, 111, 114, 32, 36, 123, 51, 45, 45, 49, 125, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 84, 97, 107, 101, 32, 36, 49, 120, 36, 49, 32, 115, 110, 97, 112, 115, 104, 111, 116, 36, 63, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 99, 51, 100, 32, 45, 110, 51, 100, 32, 45, 42, 51, 100, 32, 123, 51, 42, 36, 49, 42, 36, 50, 47, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 51, 41, 125, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 101, 108, 115, 101, 32, 49, 44, 50, 44, 49, 44, 51, 44, 51, 50, 44, 54, 52, 44, 51, 50, 44, 49, 49, 54, 44, 54, 52, 44, 57, 54, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 51, 44, 51, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 108, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 112, 101, 99, 108, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 101, 99, 108, 51, 100, 32, 58, 32, 118, 97, 108, 117, 101, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 111, 102, 32, 51, 100, 32, 115, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 108, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 48, 46, 51, 44, 48, 46, 54, 44, 48, 46, 57, 44, 49, 46, 50, 41, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 32, 45, 115, 112, 101, 99, 108, 51, 100, 32, 64, 123, 48, 44, 36, 62, 125, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 45, 49, 93, 32, 52, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 115, 115, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 112, 101, 99, 115, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 101, 99, 115, 51, 100, 32, 58, 32, 118, 97, 108, 117, 101, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 111, 102, 32, 51, 100, 32, 115, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 115, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 40, 48, 44, 48, 46, 51, 44, 48, 46, 54, 44, 48, 46, 57, 44, 49, 46, 50, 41, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 54, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 32, 45, 115, 112, 101, 99, 115, 51, 100, 32, 64, 123, 48, 44, 36, 62, 125, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 45, 49, 93, 32, 52, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 104, 101, 114, 101, 51, 100, 32, 58, 32, 114, 97, 100, 105, 117, 115, 44, 95, 110, 98, 95, 114, 101, 99, 117, 114, 115, 105, 111, 110, 115, 62, 61, 48, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 112, 104, 101, 114, 101, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 110, 98, 95, 114, 101, 99, 117, 114, 115, 105, 111, 110, 115, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 48, 48, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 58, 32, 95, 110, 98, 95, 97, 122, 105, 109, 117, 116, 104, 62, 61, 51, 44, 95, 110, 98, 95, 122, 101, 110, 105, 116, 104, 62, 61, 51, 44, 95, 114, 97, 100, 105, 117, 115, 95, 102, 117, 110, 99, 116, 105, 111, 110, 40, 112, 104, 105, 44, 116, 104, 101, 116, 97, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 32, 111, 98, 106, 101, 99, 116, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 122, 101, 110, 105, 116, 104, 61, 110, 98, 95, 97, 122, 105, 109, 117, 116, 61, 54, 52, 39, 32, 97, 110, 100, 32, 39, 114, 97, 100, 105, 117, 115, 95, 102, 117, 110, 99, 116, 105, 111, 110, 61, 34, 97, 98, 115, 40, 49, 43, 48, 46, 53, 42, 99, 111, 115, 40, 51, 42, 112, 104, 105, 41, 42, 115, 105, 110, 40, 52, 42, 116, 104, 101, 116, 97, 41, 41, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 54, 52, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 10, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 125, 62, 61, 51, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 51, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 97, 98, 115, 40, 49, 43, 48, 46, 53, 42, 99, 111, 115, 40, 51, 42, 112, 104, 105, 41, 42, 115, 105, 110, 40, 52, 42, 116, 104, 101, 116, 97, 41, 41, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 32, 111, 98, 106, 101, 99, 116, 44, 32, 119, 105, 116, 104, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 39, 36, 51, 39, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 110, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 32, 110, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 41, 125, 10, 36, 110, 49, 44, 123, 36, 110, 50, 45, 49, 125, 44, 49, 44, 51, 44, 34, 112, 104, 105, 61, 50, 42, 112, 105, 42, 40, 120, 43, 48, 46, 53, 41, 47, 119, 59, 92, 10, 116, 104, 101, 116, 97, 61, 45, 112, 105, 47, 50, 43, 112, 105, 42, 40, 121, 43, 48, 46, 53, 41, 47, 104, 59, 92, 10, 99, 112, 61, 99, 111, 115, 40, 112, 104, 105, 41, 59, 92, 10, 115, 112, 61, 115, 105, 110, 40, 112, 104, 105, 41, 59, 92, 10, 99, 116, 61, 99, 111, 115, 40, 116, 104, 101, 116, 97, 41, 59, 92, 10, 40, 36, 51, 41, 42, 105, 102, 40, 99, 61, 61, 48, 44, 99, 116, 42, 99, 112, 44, 105, 102, 40, 99, 61, 61, 49, 44, 99, 116, 42, 115, 112, 44, 115, 105, 110, 40, 116, 104, 101, 116, 97, 41, 41, 41, 34, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 120, 122, 99, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 48, 44, 123, 112, 104, 105, 61, 48, 59, 116, 104, 101, 116, 97, 61, 45, 112, 105, 47, 50, 59, 45, 36, 51, 125, 59, 48, 44, 48, 44, 123, 112, 104, 105, 61, 48, 59, 116, 104, 101, 116, 97, 61, 112, 105, 47, 50, 59, 36, 51, 125, 41, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 110, 98, 118, 61, 123, 104, 125, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 36, 110, 49, 44, 123, 36, 110, 50, 45, 50, 125, 44, 49, 44, 52, 44, 34, 110, 120, 61, 40, 120, 43, 49, 41, 37, 119, 59, 110, 121, 61, 40, 121, 43, 49, 41, 59, 50, 43, 105, 102, 40, 99, 61, 61, 48, 44, 120, 43, 121, 42, 34, 36, 110, 49, 34, 44, 105, 102, 40, 99, 61, 61, 49, 44, 110, 120, 43, 121, 42, 34, 36, 110, 49, 34, 44, 105, 102, 40, 99, 61, 61, 50, 44, 110, 120, 43, 110, 121, 42, 34, 36, 110, 49, 34, 44, 120, 43, 110, 121, 42, 34, 36, 110, 49, 34, 41, 41, 41, 34, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 52, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 120, 122, 99, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 52, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 50, 44, 36, 110, 49, 44, 49, 44, 49, 44, 51, 44, 48, 32, 49, 44, 36, 110, 49, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 123, 104, 125, 32, 50, 44, 36, 110, 49, 44, 49, 44, 49, 44, 51, 44, 49, 32, 91, 45, 51, 44, 45, 50, 93, 10, 45, 43, 91, 45, 53, 44, 45, 52, 93, 32, 50, 32, 45, 114, 118, 91, 45, 53, 44, 45, 52, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 123, 36, 110, 98, 118, 45, 36, 110, 49, 125, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 120, 10, 110, 98, 112, 61, 123, 104, 43, 64, 123, 45, 50, 44, 104, 125, 43, 64, 123, 45, 51, 44, 104, 125, 125, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 51, 93, 32, 40, 36, 110, 98, 118, 59, 36, 110, 98, 112, 41, 10, 49, 44, 123, 51, 42, 36, 110, 98, 112, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 32, 115, 117, 114, 102, 97, 99, 101, 32, 39, 36, 51, 39, 93, 34, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 112, 108, 105, 116, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 110, 101, 51, 100, 32, 58, 32, 120, 48, 91, 37, 93, 44, 121, 48, 91, 37, 93, 44, 122, 48, 91, 37, 93, 44, 117, 48, 91, 37, 93, 44, 118, 48, 91, 37, 93, 44, 119, 48, 91, 37, 93, 44, 120, 49, 91, 37, 93, 44, 121, 49, 91, 37, 93, 44, 122, 49, 91, 37, 93, 44, 117, 49, 91, 37, 93, 44, 118, 49, 91, 37, 93, 44, 119, 49, 91, 37, 93, 44, 95, 110, 98, 95, 118, 101, 114, 116, 105, 99, 101, 115, 62, 61, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 112, 108, 105, 110, 101, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 118, 101, 114, 116, 105, 99, 101, 115, 61, 49, 50, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 32, 45, 115, 112, 108, 105, 110, 101, 51, 100, 32, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 49, 50, 56, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 98, 111, 120, 51, 100, 32, 49, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 43, 51, 100, 10, 115, 112, 108, 105, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 51, 61, 49, 50, 56, 125, 62, 61, 50, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 110, 101, 119, 32, 51, 100, 32, 115, 112, 108, 105, 110, 101, 32, 102, 114, 111, 109, 32, 40, 36, 123, 49, 45, 51, 125, 41, 32, 91, 36, 123, 52, 45, 54, 125, 93, 32, 116, 111, 32, 40, 36, 123, 55, 45, 57, 125, 41, 32, 91, 36, 123, 49, 48, 45, 49, 50, 125, 93, 32, 119, 105, 116, 104, 32, 36, 49, 51, 32, 118, 101, 114, 116, 105, 99, 101, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 40, 36, 49, 51, 59, 123, 36, 49, 51, 45, 49, 125, 41, 10, 49, 44, 36, 49, 51, 44, 49, 44, 49, 44, 49, 32, 40, 48, 59, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 36, 49, 51, 44, 49, 44, 49, 44, 51, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 36, 50, 44, 36, 53, 44, 123, 51, 42, 40, 40, 36, 56, 41, 45, 40, 36, 50, 41, 41, 45, 50, 42, 40, 36, 53, 41, 45, 40, 36, 49, 49, 41, 125, 44, 123, 40, 36, 53, 41, 43, 40, 36, 49, 49, 41, 43, 50, 42, 40, 40, 36, 50, 41, 45, 40, 36, 56, 41, 41, 125, 39, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 45, 42, 91, 45, 50, 93, 32, 39, 36, 51, 44, 36, 54, 44, 123, 51, 42, 40, 40, 36, 57, 41, 45, 40, 36, 51, 41, 41, 45, 50, 42, 40, 36, 54, 41, 45, 40, 36, 49, 50, 41, 125, 44, 123, 40, 36, 54, 41, 43, 40, 36, 49, 50, 41, 43, 50, 42, 40, 40, 36, 51, 41, 45, 40, 36, 57, 41, 41, 125, 39, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 42, 91, 45, 51, 93, 32, 39, 36, 49, 44, 36, 52, 44, 123, 51, 42, 40, 40, 36, 55, 41, 45, 40, 36, 49, 41, 41, 45, 50, 42, 40, 36, 52, 41, 45, 40, 36, 49, 48, 41, 125, 44, 123, 40, 36, 52, 41, 43, 40, 36, 49, 48, 41, 43, 50, 42, 40, 40, 36, 49, 41, 45, 40, 36, 55, 41, 41, 125, 39, 32, 45, 108, 91, 45, 51, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 49, 44, 123, 36, 49, 51, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 44, 49, 59, 123, 36, 49, 51, 45, 50, 125, 44, 123, 36, 49, 51, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 49, 44, 123, 51, 42, 40, 36, 49, 51, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 49, 51, 45, 49, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 51, 44, 45, 52, 44, 45, 54, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 108, 105, 116, 51, 100, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 108, 105, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 105, 110, 116, 111, 32, 54, 32, 102, 101, 97, 116, 117, 114, 101, 32, 118, 101, 99, 116, 111, 114, 115, 32, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 123, 32, 104, 101, 97, 100, 101, 114, 44, 32, 115, 105, 122, 101, 115, 44, 32, 118, 101, 114, 116, 105, 99, 101, 115, 44, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 44, 32, 99, 111, 108, 111, 114, 115, 44, 32, 111, 112, 97, 99, 105, 116, 105, 101, 115, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 111, 32, 114, 101, 99, 114, 101, 97, 116, 101, 32, 116, 104, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 97, 112, 112, 101, 110, 100, 32, 116, 104, 101, 115, 101, 32, 54, 32, 105, 109, 97, 103, 101, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 98, 111, 120, 51, 100, 32, 49, 48, 48, 32, 45, 45, 115, 112, 108, 105, 116, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 114, 105, 116, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 97, 114, 101, 32, 109, 97, 110, 97, 103, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 114, 105, 116, 101, 51, 100, 10, 115, 112, 114, 105, 116, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 91, 48, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 49, 59, 49, 59, 48, 59, 48, 59, 48, 59, 49, 59, 48, 59, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 64, 123, 48, 44, 115, 125, 41, 32, 45, 121, 91, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 40, 49, 41, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 114, 105, 116, 101, 115, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 97, 115, 32, 115, 112, 114, 105, 116, 101, 115, 32, 99, 108, 111, 117, 100, 115, 44, 32, 119, 104, 101, 114, 101, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 50, 100, 32, 115, 112, 114, 105, 116, 101, 32, 105, 115, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 115, 112, 114, 105, 116, 101, 32, 104, 97, 115, 32, 97, 32, 52, 116, 104, 32, 99, 104, 97, 110, 110, 101, 108, 44, 32, 105, 116, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 115, 112, 114, 105, 116, 101, 32, 97, 108, 112, 104, 97, 45, 99, 104, 97, 110, 110, 101, 108, 32, 40, 105, 110, 32, 91, 48, 44, 50, 53, 53, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 50, 48, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 91, 45, 49, 93, 32, 54, 52, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 51, 48, 37, 44, 51, 48, 37, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 45, 115, 112, 114, 105, 116, 101, 115, 51, 100, 32, 45, 100, 114, 103, 98, 97, 91, 45, 50, 93, 10, 115, 112, 114, 105, 116, 101, 115, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 32, 99, 108, 111, 117, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 123, 36, 62, 44, 40, 48, 44, 55, 41, 125, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 91, 45, 49, 93, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 115, 51, 100, 91, 48, 93, 32, 78, 61, 64, 123, 49, 44, 48, 125, 32, 45, 61, 91, 49, 93, 32, 36, 78, 44, 48, 44, 49, 10, 45, 114, 109, 91, 51, 45, 53, 93, 32, 45, 105, 91, 51, 93, 32, 40, 49, 44, 48, 59, 49, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 51, 93, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 51, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 52, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 44, 45, 51, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 51, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 121, 91, 45, 51, 44, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 121, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 97, 114, 51, 100, 32, 58, 32, 110, 98, 95, 98, 114, 97, 110, 99, 104, 101, 115, 62, 48, 44, 48, 60, 61, 116, 104, 105, 99, 107, 110, 101, 115, 115, 60, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 116, 97, 114, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 98, 114, 97, 110, 99, 104, 101, 115, 61, 53, 39, 32, 97, 110, 100, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 48, 46, 51, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 116, 97, 114, 51, 100, 32, 44, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 115, 116, 97, 114, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 116, 97, 114, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 98, 114, 97, 110, 99, 104, 101, 115, 32, 97, 110, 100, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 78, 61, 123, 50, 42, 36, 49, 125, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 36, 78, 43, 49, 125, 59, 36, 78, 41, 10, 40, 123, 45, 112, 105, 47, 50, 125, 59, 123, 51, 42, 112, 105, 47, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 78, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 104, 45, 50, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 40, 49, 44, 49, 59, 36, 50, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 43, 49, 125, 44, 49, 44, 49, 44, 48, 10, 40, 51, 44, 36, 78, 44, 49, 44, 48, 59, 51, 44, 36, 78, 44, 36, 78, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 50, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 54, 44, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 116, 97, 114, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 32, 58, 32, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 122, 91, 37, 93, 44, 95, 76, 62, 61, 48, 44, 95, 100, 108, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 105, 115, 95, 98, 97, 99, 107, 119, 97, 114, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 115, 95, 111, 114, 105, 101, 110, 116, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 39, 102, 111, 114, 109, 117, 108, 97, 39, 44, 120, 44, 121, 44, 122, 44, 95, 76, 62, 61, 48, 44, 95, 100, 108, 62, 48, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 105, 115, 95, 98, 97, 99, 107, 119, 97, 114, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 115, 95, 111, 114, 105, 101, 110, 116, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 116, 114, 97, 99, 116, 32, 51, 100, 32, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 115, 32, 111, 114, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 117, 108, 97, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 32, 105, 110, 116, 101, 103, 101, 114, 32, 124, 32, 49, 61, 49, 115, 116, 45, 111, 114, 100, 101, 114, 32, 124, 32, 50, 61, 50, 110, 100, 45, 111, 114, 100, 101, 114, 32, 124, 32, 51, 61, 52, 116, 104, 45, 111, 114, 100, 101, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 108, 61, 48, 46, 49, 39, 44, 32, 39, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 50, 39, 44, 32, 39, 105, 115, 95, 98, 97, 99, 107, 119, 97, 114, 100, 61, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 111, 114, 105, 101, 110, 116, 101, 100, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 49, 48, 48, 44, 49, 48, 48, 44, 49, 48, 48, 44, 51, 32, 45, 114, 97, 110, 100, 32, 45, 49, 48, 44, 49, 48, 32, 45, 98, 108, 117, 114, 32, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 48, 32, 45, 45, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 91, 48, 93, 32, 123, 63, 40, 49, 48, 48, 41, 125, 44, 123, 63, 40, 49, 48, 48, 41, 125, 44, 123, 63, 40, 49, 48, 48, 41, 125, 44, 49, 48, 48, 48, 44, 49, 44, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 98, 111, 120, 51, 100, 32, 49, 48, 48, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 45, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 117, 98, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 117, 98, 51, 100, 32, 58, 32, 116, 120, 44, 95, 116, 121, 44, 95, 116, 122, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 104, 105, 102, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 112, 112, 111, 115, 105, 116, 101, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 118, 101, 99, 116, 111, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 45, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 121, 61, 116, 122, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 53, 32, 45, 45, 115, 117, 98, 51, 100, 91, 45, 49, 93, 32, 49, 48, 44, 123, 63, 40, 45, 49, 48, 44, 49, 48, 41, 125, 44, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 58, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 49, 44, 109, 62, 61, 49, 44, 110, 49, 44, 110, 50, 44, 110, 51, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 50, 100, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 99, 117, 114, 118, 101, 32, 97, 115, 32, 97, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 49, 48, 50, 52, 39, 44, 32, 39, 109, 61, 56, 39, 44, 32, 39, 110, 49, 61, 49, 39, 44, 32, 39, 110, 50, 61, 53, 39, 32, 97, 110, 100, 32, 39, 110, 51, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 44, 10, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 50, 52, 125, 62, 49, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 53, 125, 44, 36, 123, 53, 61, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 50, 100, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 99, 117, 114, 118, 101, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 109, 61, 36, 50, 32, 97, 110, 100, 32, 40, 110, 49, 44, 110, 50, 44, 110, 51, 41, 61, 40, 36, 51, 44, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 36, 114, 101, 115, 59, 123, 36, 114, 101, 115, 45, 49, 125, 41, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 114, 101, 115, 44, 49, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 52, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 98, 115, 91, 45, 50, 44, 45, 49, 93, 10, 45, 94, 91, 45, 50, 93, 32, 36, 52, 32, 45, 94, 91, 45, 49, 93, 32, 36, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 123, 45, 49, 47, 36, 51, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 93, 32, 45, 99, 111, 115, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 49, 44, 49, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 59, 123, 36, 114, 101, 115, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 51, 42, 40, 36, 114, 101, 115, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 32, 95, 34, 116, 101, 120, 116, 49, 34, 44, 95, 34, 116, 101, 120, 116, 50, 34, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 101, 120, 116, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 116, 119, 111, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 101, 120, 116, 49, 61, 34, 116, 101, 120, 116, 49, 34, 39, 44, 32, 39, 116, 101, 120, 116, 50, 61, 34, 116, 101, 120, 116, 50, 34, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 34, 71, 39, 77, 73, 67, 34, 44, 34, 82, 111, 99, 107, 115, 33, 34, 10, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 116, 101, 120, 116, 49, 34, 125, 44, 36, 123, 50, 61, 34, 116, 101, 120, 116, 50, 34, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 116, 101, 120, 116, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 116, 114, 105, 110, 103, 115, 32, 39, 36, 49, 39, 32, 97, 110, 100, 32, 39, 36, 50, 39, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 50, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 50, 44, 45, 49, 93, 32, 50, 44, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 121, 120, 99, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 100, 125, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 122, 61, 61, 105, 44, 49, 44, 48, 41, 39, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 100, 125, 32, 45, 61, 61, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 61, 61, 105, 44, 49, 44, 48, 41, 39, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 100, 125, 32, 45, 61, 61, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 50, 53, 37, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 116, 101, 120, 116, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 93, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 51, 100, 32, 58, 32, 116, 101, 120, 116, 44, 95, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 100, 101, 112, 116, 104, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 97, 32, 51, 100, 32, 116, 101, 120, 116, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 116, 101, 120, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 102, 111, 110, 116, 95, 104, 101, 105, 103, 104, 116, 61, 53, 55, 39, 44, 32, 39, 100, 101, 112, 116, 104, 61, 49, 48, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 101, 120, 116, 51, 100, 32, 34, 71, 39, 77, 73, 67, 32, 97, 115, 32, 97, 92, 110, 51, 68, 32, 108, 111, 103, 111, 33, 34, 10, 116, 101, 120, 116, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 55, 125, 44, 36, 123, 51, 61, 49, 48, 125, 44, 36, 123, 52, 61, 49, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 101, 120, 116, 32, 111, 98, 106, 101, 99, 116, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 100, 101, 112, 116, 104, 32, 36, 51, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 51, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 91, 45, 49, 93, 32, 49, 48, 44, 48, 10, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 52, 48, 37, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 116, 101, 120, 116, 32, 39, 36, 49, 39, 93, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 51, 100, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 51, 100, 39, 46, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 117, 114, 105, 122, 101, 51, 100, 32, 58, 32, 91, 105, 110, 100, 95, 116, 101, 120, 116, 117, 114, 101, 93, 44, 95, 91, 105, 110, 100, 95, 99, 111, 111, 114, 100, 115, 93, 32, 58, 32, 40, 43, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 101, 120, 116, 117, 114, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 116, 101, 120, 116, 117, 114, 101, 32, 97, 110, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 116, 51, 100, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 39, 91, 105, 110, 100, 95, 99, 111, 111, 114, 100, 115, 93, 39, 32, 105, 115, 32, 111, 109, 105, 116, 116, 101, 100, 44, 32, 100, 101, 102, 97, 117, 108, 116, 32, 88, 89, 32, 116, 101, 120, 116, 117, 114, 101, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 32, 105, 115, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 105, 110, 100, 95, 99, 111, 111, 114, 100, 115, 61, 40, 117, 110, 100, 101, 102, 105, 110, 101, 100, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 114, 117, 115, 51, 100, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 49, 44, 95, 114, 97, 100, 105, 117, 115, 50, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 49, 62, 50, 44, 95, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 50, 62, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 111, 114, 117, 115, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 103, 101, 111, 109, 101, 116, 114, 121, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 97, 100, 105, 117, 115, 49, 61, 49, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 50, 61, 48, 46, 51, 39, 44, 32, 39, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 49, 61, 50, 52, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 50, 61, 49, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 44, 51, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 116, 111, 114, 117, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 50, 52, 125, 62, 50, 32, 38, 38, 32, 36, 123, 52, 61, 49, 50, 125, 62, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 46, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 111, 114, 117, 115, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 51, 44, 36, 52, 41, 46, 34, 10, 45, 118, 32, 45, 10, 110, 98, 112, 61, 123, 36, 51, 42, 36, 52, 125, 10, 49, 44, 56, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 36, 110, 98, 112, 44, 123, 36, 52, 42, 36, 51, 125, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 45, 121, 91, 45, 49, 93, 32, 120, 10, 45, 114, 91, 45, 50, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 122, 91, 45, 50, 93, 32, 48, 44, 48, 44, 48, 44, 123, 36, 51, 45, 49, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 52, 43, 49, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 123, 36, 52, 45, 49, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 52, 44, 45, 51, 93, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 52, 44, 36, 51, 10, 45, 42, 91, 45, 51, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 93, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 36, 52, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 52, 44, 36, 51, 10, 45, 45, 43, 91, 45, 52, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 121, 91, 45, 52, 45, 45, 49, 93, 32, 121, 32, 45, 105, 91, 45, 53, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 52, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 116, 111, 114, 117, 115, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 105, 97, 110, 103, 108, 101, 51, 100, 32, 58, 32, 120, 48, 44, 121, 48, 44, 122, 48, 44, 120, 49, 44, 121, 49, 44, 122, 49, 44, 120, 50, 44, 121, 50, 44, 122, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 97, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 32, 97, 61, 123, 36, 62, 42, 112, 105, 47, 53, 48, 125, 32, 45, 116, 114, 105, 97, 110, 103, 108, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 51, 44, 123, 99, 111, 115, 40, 51, 42, 36, 97, 41, 125, 44, 123, 115, 105, 110, 40, 50, 42, 36, 97, 41, 125, 44, 48, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 45, 82, 71, 66, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 100, 100, 51, 100, 10, 116, 114, 105, 97, 110, 103, 108, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 45, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 45, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 53, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 51, 44, 49, 44, 36, 123, 49, 45, 57, 125, 44, 51, 44, 48, 44, 49, 44, 50, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 116, 114, 105, 97, 110, 103, 108, 101, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 118, 111, 108, 117, 109, 101, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 51, 100, 32, 112, 97, 114, 97, 108, 108, 101, 108, 101, 112, 105, 112, 101, 100, 105, 99, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 110, 105, 109, 97, 116, 101, 32, 98, 108, 117, 114, 44, 48, 44, 53, 44, 51, 48, 32, 45, 97, 32, 122, 32, 45, 118, 111, 108, 117, 109, 101, 51, 100, 10, 118, 111, 108, 117, 109, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 112, 97, 114, 97, 108, 108, 101, 108, 101, 112, 105, 112, 101, 100, 105, 99, 32, 111, 98, 106, 101, 99, 116, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 45, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 45, 115, 108, 105, 99, 101, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 48, 93, 32, 48, 32, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 122, 121, 120, 99, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 120, 10, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 32, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 120, 122, 121, 99, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 121, 10, 45, 114, 109, 91, 48, 93, 32, 45, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 32, 45, 42, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 101, 105, 114, 100, 51, 100, 32, 58, 32, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 112, 117, 116, 32, 51, 100, 32, 119, 101, 105, 114, 100, 32, 111, 98, 106, 101, 99, 116, 32, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 44, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 51, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 52, 56, 32, 45, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 32, 49, 32, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 50, 93, 32, 64, 123, 45, 82, 71, 66, 125, 10, 119, 101, 105, 114, 100, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 119, 101, 105, 114, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 34, 39, 92, 10, 84, 32, 61, 32, 49, 46, 54, 49, 56, 48, 51, 51, 57, 57, 59, 92, 10, 50, 32, 45, 32, 40, 99, 111, 115, 40, 120, 32, 43, 32, 84, 42, 121, 41, 32, 43, 32, 99, 111, 115, 40, 120, 32, 45, 32, 84, 42, 121, 41, 32, 43, 32, 99, 111, 115, 40, 121, 32, 43, 32, 84, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 121, 32, 45, 32, 84, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 122, 32, 45, 32, 84, 42, 120, 41, 32, 43, 32, 99, 111, 115, 40, 122, 32, 43, 32, 84, 42, 120, 41, 41, 92, 10, 39, 34, 44, 48, 44, 45, 52, 46, 55, 44, 45, 52, 46, 55, 44, 45, 52, 46, 55, 44, 52, 46, 55, 44, 52, 46, 55, 44, 52, 46, 55, 44, 36, 49, 44, 36, 49, 44, 36, 49, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 119, 101, 105, 114, 100, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 80, 114, 111, 103, 114, 97, 109, 32, 99, 111, 110, 116, 114, 111, 108, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 32, 34, 99, 111, 109, 109, 97, 110, 100, 34, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 101, 97, 99, 104, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 121, 32, 112, 97, 114, 97, 108, 108, 101, 108, 105, 122, 105, 110, 103, 32, 105, 116, 32, 102, 111, 114, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 98, 108, 117, 114, 32, 51, 34, 10, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 46, 62, 49, 53, 55, 48, 125, 32, 77, 61, 64, 42, 32, 45, 101, 108, 115, 101, 32, 77, 61, 56, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 101, 99, 117, 116, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 42, 39, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 112, 97, 114, 97, 108, 108, 101, 108, 44, 32, 117, 115, 105, 110, 103, 32, 34, 36, 77, 34, 32, 116, 104, 114, 101, 97, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 32, 34, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 32, 36, 42, 34, 32, 78, 61, 64, 35, 10, 45, 108, 91, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 32, 40, 123, 39, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 91, 36, 62, 93, 39, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 44, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 97, 114, 103, 48, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 78, 37, 36, 77, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 78, 37, 36, 77, 125, 32, 40, 123, 39, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 91, 36, 62, 93, 39, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 44, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 97, 114, 103, 49, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 77, 44, 49, 44, 49, 41, 125, 32, 45, 108, 91, 123, 36, 77, 42, 36, 62, 125, 45, 123, 109, 105, 110, 40, 36, 77, 42, 36, 62, 43, 36, 77, 45, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 36, 123, 97, 114, 103, 123, 64, 35, 33, 61, 36, 77, 125, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 58, 32, 34, 99, 111, 109, 109, 97, 110, 100, 34, 44, 111, 118, 101, 114, 108, 97, 112, 91, 37, 93, 44, 110, 98, 95, 116, 104, 114, 101, 97, 100, 115, 61, 123, 32, 48, 61, 97, 117, 116, 111, 32, 124, 32, 49, 32, 124, 32, 50, 32, 124, 32, 52, 32, 124, 32, 56, 32, 124, 32, 49, 54, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 101, 97, 99, 104, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 121, 32, 112, 97, 114, 97, 108, 108, 101, 108, 105, 122, 105, 110, 103, 32, 105, 116, 32, 111, 110, 32, 39, 110, 98, 95, 116, 104, 114, 101, 97, 100, 115, 39, 32, 111, 118, 101, 114, 108, 97, 112, 112, 101, 100, 32, 115, 117, 98, 45, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 98, 95, 116, 104, 114, 101, 97, 100, 115, 39, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 32, 112, 111, 119, 101, 114, 32, 111, 102, 32, 50, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 118, 101, 114, 108, 97, 112, 61, 48, 39, 44, 39, 110, 98, 95, 116, 104, 114, 101, 97, 100, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 45, 115, 109, 111, 111, 116, 104, 32, 53, 48, 48, 44, 48, 44, 49, 34, 44, 49, 54, 10, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 46, 62, 49, 53, 55, 48, 125, 32, 78, 61, 123, 105, 102, 40, 36, 51, 44, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 51, 41, 41, 44, 64, 42, 41, 125, 32, 45, 101, 108, 115, 101, 32, 78, 61, 123, 105, 102, 40, 36, 51, 44, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 51, 41, 41, 44, 52, 41, 125, 32, 45, 101, 110, 100, 105, 102, 32, 78, 61, 123, 50, 94, 105, 110, 116, 40, 108, 111, 103, 50, 40, 109, 105, 110, 40, 49, 54, 44, 36, 78, 41, 41, 41, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 97, 114, 97, 108, 108, 101, 108, 105, 122, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 118, 101, 114, 108, 97, 112, 32, 36, 50, 32, 97, 110, 100, 32, 34, 36, 78, 34, 32, 116, 104, 114, 101, 97, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 36, 78, 32, 34, 36, 49, 34, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 49, 32, 58, 10, 36, 49, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 50, 32, 58, 10, 45, 105, 102, 32, 123, 119, 62, 61, 104, 125, 10, 111, 118, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 119, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 49, 48, 48, 37, 32, 45, 122, 91, 48, 93, 32, 48, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 122, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 32, 45, 122, 91, 49, 93, 32, 36, 111, 118, 120, 44, 49, 48, 48, 37, 32, 45, 97, 32, 120, 10, 45, 101, 108, 115, 101, 10, 111, 118, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 49, 48, 48, 37, 32, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 32, 45, 114, 111, 119, 115, 91, 49, 93, 32, 36, 111, 118, 121, 44, 49, 48, 48, 37, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 58, 10, 111, 118, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 119, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 10, 111, 118, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 48, 44, 49, 48, 48, 37, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 32, 45, 45, 122, 91, 48, 93, 32, 48, 44, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 44, 49, 48, 48, 37, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 122, 91, 48, 93, 32, 48, 44, 48, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 51, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 122, 91, 48, 93, 32, 48, 44, 48, 44, 64, 123, 48, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 44, 64, 123, 48, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 32, 45, 122, 91, 49, 93, 32, 36, 111, 118, 120, 44, 48, 44, 49, 48, 48, 37, 44, 64, 123, 49, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 10, 45, 122, 91, 50, 93, 32, 48, 44, 36, 111, 118, 121, 44, 64, 123, 50, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 44, 49, 48, 48, 37, 32, 45, 122, 91, 51, 93, 32, 36, 111, 118, 120, 44, 36, 111, 118, 121, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 97, 91, 48, 44, 49, 93, 32, 120, 32, 45, 97, 91, 49, 44, 50, 93, 32, 120, 32, 45, 97, 32, 121, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 56, 32, 58, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 50, 32, 34, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 92, 34, 36, 49, 92, 34, 44, 36, 50, 34, 44, 36, 50, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 49, 54, 32, 58, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 34, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 92, 34, 36, 49, 92, 34, 44, 36, 50, 34, 44, 36, 50, 10, 35, 64, 103, 109, 105, 99, 32, 99, 104, 101, 99, 107, 32, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 118, 97, 108, 117, 97, 116, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 109, 101, 115, 115, 97, 103, 101, 32, 105, 102, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 116, 111, 32, 102, 97, 108, 115, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 39, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 39, 32, 105, 115, 32, 110, 111, 116, 32, 101, 118, 97, 108, 117, 97, 98, 108, 101, 44, 32, 105, 116, 32, 105, 115, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 97, 110, 100, 32, 99, 104, 101, 99, 107, 101, 100, 32, 105, 102, 32, 105, 116, 32, 101, 120, 105, 115, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 111, 32, 116, 111, 32, 101, 110, 100, 32, 111, 102, 32, 99, 117, 114, 114, 101, 110, 116, 32, 98, 108, 111, 99, 107, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 44, 32, 39, 100, 111, 46, 46, 119, 104, 105, 108, 101, 39, 32, 111, 114, 32, 39, 108, 111, 99, 97, 108, 46, 46, 101, 110, 100, 108, 111, 99, 97, 108, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 105, 102, 32, 123, 49, 61, 61, 49, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 101, 102, 111, 114, 109, 32, 49, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 98, 114, 101, 97, 107, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 114, 101, 97, 107, 32, 99, 117, 114, 114, 101, 110, 116, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 44, 32, 39, 100, 111, 46, 46, 119, 104, 105, 108, 101, 39, 32, 111, 114, 32, 39, 108, 111, 99, 97, 108, 46, 46, 101, 110, 100, 108, 111, 99, 97, 108, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 105, 102, 32, 123, 49, 61, 61, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 101, 102, 111, 114, 109, 32, 49, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 116, 97, 114, 116, 32, 97, 32, 39, 100, 111, 46, 46, 119, 104, 105, 108, 101, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 105, 61, 123, 105, 97, 43, 50, 125, 32, 45, 100, 111, 32, 45, 115, 101, 116, 32, 50, 53, 53, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 32, 45, 119, 104, 105, 108, 101, 32, 123, 105, 97, 60, 36, 105, 125, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 110, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 110, 100, 32, 97, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 32, 98, 108, 111, 99, 107, 44, 32, 97, 110, 100, 32, 103, 111, 32, 116, 111, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 39, 45, 114, 101, 112, 101, 97, 116, 39, 32, 112, 111, 115, 105, 116, 105, 111, 110, 44, 32, 105, 102, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 114, 101, 109, 97, 105, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 105, 102, 32, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 116, 97, 114, 116, 32, 97, 32, 39, 101, 108, 105, 102, 46, 46, 91, 101, 108, 115, 101, 93, 46, 46, 101, 110, 100, 105, 102, 39, 32, 98, 108, 111, 99, 107, 32, 105, 102, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 39, 45, 105, 102, 39, 32, 119, 97, 115, 32, 110, 111, 116, 32, 118, 101, 114, 105, 102, 105, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 97, 110, 100, 32, 116, 101, 115, 116, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 111, 111, 108, 101, 97, 110, 32, 105, 115, 32, 116, 114, 117, 101, 44, 32, 111, 114, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 101, 120, 105, 115, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 111, 108, 101, 97, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 32, 102, 108, 111, 97, 116, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 110, 100, 105, 110, 103, 32, 102, 111, 114, 32, 123, 32, 48, 61, 102, 97, 108, 115, 101, 32, 124, 32, 111, 116, 104, 101, 114, 61, 116, 114, 117, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 115, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 101, 99, 117, 116, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 102, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 39, 45, 105, 102, 39, 32, 111, 114, 32, 39, 45, 101, 108, 105, 102, 39, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 102, 97, 105, 108, 101, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 110, 100, 105, 102, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 110, 100, 32, 97, 32, 39, 105, 102, 46, 46, 91, 101, 108, 105, 102, 93, 46, 46, 91, 101, 108, 115, 101, 93, 46, 46, 101, 110, 100, 105, 102, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 110, 100, 108, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 110, 100, 108, 111, 99, 97, 108, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 101, 110, 100, 108, 111, 99, 97, 108, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 110, 100, 32, 97, 32, 39, 108, 111, 99, 97, 108, 46, 46, 101, 110, 100, 108, 111, 99, 97, 108, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 110, 100, 108, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 101, 114, 114, 111, 114, 32, 58, 32, 109, 101, 115, 115, 97, 103, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 114, 114, 111, 114, 32, 109, 101, 115, 115, 97, 103, 101, 32, 111, 110, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 101, 114, 114, 111, 114, 32, 40, 115, 116, 100, 101, 114, 114, 41, 32, 97, 110, 100, 32, 101, 120, 105, 116, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 101, 120, 99, 101, 112, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 105, 102, 32, 101, 114, 114, 111, 114, 32, 105, 115, 32, 99, 97, 117, 103, 104, 116, 32, 98, 121, 32, 97, 32, 39, 45, 111, 110, 102, 97, 105, 108, 39, 32, 99, 111, 109, 109, 97, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 40, 105, 102, 32, 97, 110, 121, 41, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 115, 99, 111, 112, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 120, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 101, 120, 101, 99, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 101, 120, 101, 99, 32, 58, 32, 99, 111, 109, 109, 97, 110, 100, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 101, 99, 117, 116, 101, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 99, 111, 109, 109, 97, 110, 100, 32, 117, 115, 105, 110, 103, 32, 97, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 116, 104, 101, 110, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 101, 114, 114, 111, 114, 32, 99, 111, 100, 101, 32, 114, 101, 116, 117, 114, 110, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 120, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 105, 102, 32, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 116, 97, 114, 116, 32, 97, 32, 39, 105, 102, 46, 46, 91, 101, 108, 105, 102, 93, 46, 46, 91, 101, 108, 115, 101, 93, 46, 46, 101, 110, 100, 105, 102, 39, 32, 98, 108, 111, 99, 107, 32, 97, 110, 100, 32, 116, 101, 115, 116, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 111, 111, 108, 101, 97, 110, 32, 105, 115, 32, 116, 114, 117, 101, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 111, 114, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 101, 120, 105, 115, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 111, 108, 101, 97, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 32, 102, 108, 111, 97, 116, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 110, 100, 105, 110, 103, 32, 102, 111, 114, 32, 123, 32, 48, 61, 102, 97, 108, 115, 101, 32, 124, 32, 111, 116, 104, 101, 114, 61, 116, 114, 117, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 102, 32, 123, 105, 97, 60, 54, 52, 125, 32, 45, 97, 100, 100, 32, 53, 48, 37, 32, 45, 101, 108, 105, 102, 32, 123, 105, 97, 60, 49, 50, 56, 125, 32, 45, 97, 100, 100, 32, 50, 53, 37, 32, 45, 101, 108, 105, 102, 32, 123, 105, 97, 60, 49, 57, 50, 125, 32, 45, 115, 117, 98, 32, 50, 53, 37, 32, 45, 101, 108, 115, 101, 32, 45, 115, 117, 98, 32, 53, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 108, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 111, 99, 97, 108, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 108, 111, 99, 97, 108, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 116, 97, 114, 116, 32, 97, 32, 39, 108, 111, 99, 97, 108, 46, 46, 91, 111, 110, 102, 97, 105, 108, 93, 46, 46, 101, 110, 100, 108, 111, 99, 97, 108, 39, 32, 98, 108, 111, 99, 107, 44, 32, 119, 105, 116, 104, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 108, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 108, 111, 99, 97, 108, 91, 93, 32, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 32, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 111, 99, 97, 108, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 100, 101, 102, 111, 114, 109, 32, 50, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 111, 110, 102, 97, 105, 108, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 101, 99, 117, 116, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 119, 104, 101, 110, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 105, 115, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 98, 111, 100, 121, 32, 111, 102, 32, 116, 104, 101, 32, 39, 108, 111, 99, 97, 108, 46, 46, 101, 110, 100, 108, 111, 99, 97, 108, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 115, 101, 116, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 101, 114, 114, 111, 114, 32, 109, 101, 115, 115, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 111, 99, 97, 108, 32, 45, 98, 108, 117, 114, 32, 45, 51, 32, 45, 111, 110, 102, 97, 105, 108, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 32, 34, 99, 111, 109, 109, 97, 110, 100, 49, 34, 44, 34, 99, 111, 109, 109, 97, 110, 100, 50, 34, 44, 46, 46, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 120, 101, 99, 117, 116, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 110, 32, 112, 97, 114, 97, 108, 108, 101, 108, 44, 32, 101, 97, 99, 104, 32, 105, 110, 32, 97, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 116, 104, 114, 101, 97, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 108, 108, 32, 114, 117, 110, 110, 105, 110, 103, 32, 116, 104, 114, 101, 97, 100, 115, 32, 115, 104, 97, 114, 101, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 91, 48, 93, 32, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 98, 108, 117, 114, 91, 48, 93, 32, 51, 34, 44, 34, 45, 109, 105, 114, 114, 111, 114, 91, 49, 93, 32, 99, 34, 10, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 35, 32, 45, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 36, 123, 97, 114, 103, 123, 49, 43, 36, 62, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 48, 60, 61, 118, 97, 108, 117, 101, 60, 61, 49, 48, 48, 32, 58, 32, 45, 49, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 116, 104, 101, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 105, 115, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 117, 115, 101, 102, 117, 108, 32, 111, 110, 108, 121, 32, 119, 104, 101, 110, 32, 71, 39, 77, 73, 67, 32, 105, 115, 32, 117, 115, 101, 100, 32, 98, 121, 32, 97, 110, 32, 101, 109, 98, 101, 100, 100, 105, 110, 103, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 113, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 113, 117, 105, 116, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 105, 116, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 81, 117, 105, 116, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 113, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 112, 101, 97, 116, 32, 58, 32, 110, 98, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 116, 97, 114, 116, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 97, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 32, 98, 108, 111, 99, 107, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 112, 108, 105, 116, 32, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 105, 102, 116, 91, 36, 62, 93, 32, 36, 60, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 32, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 109, 111, 100, 101, 51, 100, 32, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 49, 44, 49, 44, 48, 44, 52, 48, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 52, 48, 48, 44, 49, 46, 52, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 116, 117, 114, 110, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 102, 114, 111, 109, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 46, 10, 35, 64, 103, 109, 105, 99, 32, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 48, 60, 61, 118, 97, 108, 117, 101, 60, 61, 49, 48, 48, 32, 124, 32, 45, 49, 32, 124, 32, 34, 99, 111, 109, 109, 97, 110, 100, 34, 44, 48, 60, 61, 118, 97, 108, 117, 101, 95, 109, 105, 110, 60, 61, 49, 48, 48, 44, 48, 60, 61, 118, 97, 108, 117, 101, 95, 109, 97, 120, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 116, 104, 101, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 40, 114, 101, 108, 97, 116, 105, 118, 101, 108, 121, 32, 116, 111, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 112, 114, 101, 118, 105, 111, 117, 115, 108, 121, 32, 100, 101, 102, 105, 110, 101, 100, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 98, 111, 117, 110, 100, 115, 41, 44, 32, 111, 114, 32, 99, 97, 108, 108, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 119, 105, 116, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 98, 111, 117, 110, 100, 115, 46, 10, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 34, 34, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 109, 61, 123, 97, 114, 103, 40, 45, 50, 44, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 32, 77, 61, 123, 97, 114, 103, 40, 45, 49, 44, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 10, 45, 105, 102, 32, 123, 36, 35, 61, 61, 50, 38, 38, 33, 110, 97, 114, 103, 40, 36, 50, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 83, 101, 116, 32, 114, 101, 108, 97, 116, 105, 118, 101, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 105, 110, 100, 105, 99, 101, 32, 116, 111, 32, 36, 49, 37, 46, 34, 32, 45, 118, 32, 45, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 105, 102, 40, 36, 49, 60, 48, 44, 45, 49, 44, 109, 105, 110, 40, 49, 48, 48, 44, 109, 97, 120, 40, 48, 44, 36, 109, 43, 40, 36, 77, 45, 36, 109, 41, 42, 36, 49, 37, 41, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 35, 61, 61, 51, 125, 10, 110, 109, 61, 123, 109, 105, 110, 40, 36, 50, 44, 36, 45, 49, 41, 125, 32, 110, 77, 61, 123, 109, 97, 120, 40, 36, 50, 44, 36, 45, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 97, 108, 108, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 98, 111, 117, 110, 100, 115, 32, 91, 34, 36, 110, 109, 44, 36, 110, 77, 34, 93, 46, 34, 32, 45, 118, 32, 45, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 109, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 44, 123, 36, 109, 43, 36, 110, 109, 42, 40, 36, 77, 45, 36, 109, 41, 47, 49, 48, 48, 125, 44, 123, 36, 109, 43, 36, 110, 77, 42, 40, 36, 77, 45, 36, 109, 41, 47, 49, 48, 48, 125, 10, 45, 95, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 34, 36, 49, 34, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 77, 32, 40, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 64, 123, 45, 49, 44, 48, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 67, 111, 109, 109, 97, 110, 100, 32, 39, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 39, 32, 58, 32, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 39, 36, 42, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 36, 42, 10, 35, 64, 103, 109, 105, 99, 32, 115, 107, 105, 112, 32, 58, 32, 105, 116, 101, 109, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 111, 32, 110, 111, 116, 104, 105, 110, 103, 32, 98, 117, 116, 32, 115, 107, 105, 112, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 116, 101, 109, 46, 10, 35, 64, 103, 109, 105, 99, 32, 117, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 115, 116, 97, 116, 117, 115, 39, 46, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 97, 116, 117, 115, 32, 58, 32, 118, 97, 108, 117, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 116, 32, 99, 117, 114, 114, 101, 110, 116, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 46, 32, 85, 115, 101, 100, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 97, 32, 114, 101, 116, 117, 114, 110, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 97, 32, 102, 117, 110, 99, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 117, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 99, 111, 109, 109, 97, 110, 100, 32, 34, 102, 111, 111, 32, 58, 32, 117, 48, 61, 68, 97, 114, 107, 32, 117, 49, 61, 66, 114, 105, 103, 104, 116, 32, 45, 115, 116, 97, 116, 117, 115, 32, 36, 123, 117, 123, 105, 97, 62, 61, 49, 50, 56, 125, 125, 34, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 32, 64, 123, 45, 102, 111, 111, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 10, 35, 64, 103, 109, 105, 99, 32, 119, 104, 105, 108, 101, 32, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 40, 42, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 69, 110, 100, 32, 97, 32, 39, 100, 111, 46, 46, 119, 104, 105, 108, 101, 39, 32, 98, 108, 111, 99, 107, 32, 97, 110, 100, 32, 103, 111, 32, 98, 97, 99, 107, 32, 116, 111, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 39, 45, 100, 111, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 111, 111, 108, 101, 97, 110, 32, 105, 115, 32, 116, 114, 117, 101, 32, 111, 114, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 101, 120, 105, 115, 116, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 111, 111, 108, 101, 97, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 32, 102, 108, 111, 97, 116, 32, 110, 117, 109, 98, 101, 114, 32, 115, 116, 97, 110, 100, 105, 110, 103, 32, 102, 111, 114, 32, 123, 32, 48, 61, 102, 97, 108, 115, 101, 32, 124, 32, 111, 116, 104, 101, 114, 61, 116, 114, 117, 101, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 65, 114, 114, 97, 121, 115, 44, 32, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 102, 114, 97, 109, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 114, 97, 121, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 44, 95, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 123, 32, 48, 61, 109, 105, 110, 32, 124, 32, 49, 61, 109, 97, 120, 32, 124, 32, 50, 61, 97, 108, 108, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 120, 78, 32, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 78, 61, 77, 39, 32, 97, 110, 100, 32, 39, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 114, 114, 97, 121, 32, 51, 44, 50, 44, 50, 10, 97, 114, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 36, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 114, 48, 61, 123, 49, 48, 48, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 114, 49, 61, 123, 49, 48, 48, 47, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 125, 32, 114, 50, 61, 49, 48, 48, 10, 45, 114, 32, 36, 123, 114, 36, 51, 125, 37, 44, 36, 123, 114, 36, 51, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 32, 123, 36, 49, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 44, 48, 60, 61, 95, 102, 97, 100, 101, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 102, 97, 100, 101, 95, 101, 110, 100, 60, 61, 49, 48, 48, 44, 95, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 123, 48, 61, 109, 105, 110, 32, 124, 32, 49, 61, 109, 97, 120, 32, 124, 32, 50, 61, 97, 108, 108, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 120, 78, 32, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 78, 61, 77, 39, 44, 32, 39, 102, 97, 100, 101, 95, 115, 116, 97, 114, 116, 61, 54, 48, 39, 44, 32, 39, 102, 97, 100, 101, 95, 101, 110, 100, 61, 57, 48, 39, 32, 97, 110, 100, 32, 39, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 51, 44, 50, 10, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 54, 48, 125, 44, 36, 123, 52, 61, 57, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 32, 102, 97, 100, 101, 100, 32, 116, 105, 108, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 49, 44, 50, 32, 45, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 36, 51, 44, 36, 52, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 53, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 58, 32, 78, 62, 61, 48, 44, 95, 100, 105, 114, 61, 123, 32, 48, 61, 120, 32, 124, 32, 49, 61, 121, 32, 124, 32, 50, 61, 120, 121, 32, 124, 32, 51, 61, 116, 114, 105, 45, 120, 121, 32, 125, 44, 95, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 50, 94, 78, 120, 50, 94, 78, 32, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 105, 114, 61, 50, 39, 32, 97, 110, 100, 32, 39, 101, 120, 112, 97, 110, 100, 95, 116, 121, 112, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 50, 10, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 97, 32, 50, 94, 36, 49, 120, 50, 94, 36, 49, 32, 109, 105, 114, 114, 111, 114, 101, 100, 45, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 50, 62, 61, 51, 125, 32, 45, 114, 32, 51, 51, 37, 44, 51, 51, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 32, 45, 114, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 121, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 114, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 32, 58, 32, 77, 115, 62, 48, 44, 95, 78, 115, 62, 48, 44, 95, 77, 100, 62, 48, 44, 95, 78, 100, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 100, 120, 78, 100, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 77, 115, 120, 78, 115, 32, 115, 111, 117, 114, 99, 101, 32, 97, 114, 114, 97, 121, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 78, 115, 61, 77, 115, 39, 44, 32, 39, 77, 100, 61, 77, 115, 39, 32, 97, 110, 100, 32, 39, 78, 100, 61, 78, 115, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 32, 56, 44, 56, 44, 49, 53, 44, 49, 48, 10, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 49, 125, 44, 36, 123, 52, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 51, 120, 36, 52, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 32, 102, 114, 111, 109, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 91, 123, 63, 40, 36, 49, 42, 36, 50, 45, 49, 41, 125, 93, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 123, 36, 49, 42, 36, 50, 45, 49, 125, 93, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 51, 44, 36, 52, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 32, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 114, 97, 109, 101, 95, 120, 121, 39, 46, 10, 102, 114, 97, 109, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 53, 53, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 102, 114, 97, 109, 101, 95, 120, 121, 32, 36, 123, 49, 45, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 58, 32, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 48, 44, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 115, 104, 97, 100, 105, 110, 103, 44, 95, 98, 108, 117, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 82, 71, 66, 65, 45, 99, 111, 108, 111, 114, 101, 100, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 49, 48, 39, 44, 32, 39, 115, 105, 122, 101, 61, 51, 48, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 44, 32, 39, 115, 104, 97, 100, 105, 110, 103, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 108, 117, 114, 61, 51, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 51, 44, 51, 48, 44, 56, 44, 49, 48, 37, 10, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 51, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 32, 97, 110, 100, 32, 98, 108, 117, 114, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 45, 40, 97, 98, 115, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 36, 49, 32, 43, 32, 97, 98, 115, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 36, 49, 41, 94, 40, 49, 47, 36, 49, 41, 34, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 45, 98, 91, 45, 50, 93, 32, 36, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 51, 32, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 58, 32, 95, 100, 101, 112, 116, 104, 62, 61, 48, 44, 95, 120, 95, 99, 101, 110, 116, 101, 114, 44, 95, 121, 95, 99, 101, 110, 116, 101, 114, 44, 95, 108, 101, 102, 116, 95, 115, 105, 100, 101, 61, 123, 48, 61, 110, 111, 114, 109, 97, 108, 32, 124, 32, 49, 61, 109, 105, 114, 114, 111, 114, 45, 120, 32, 124, 32, 50, 61, 109, 105, 114, 114, 111, 114, 45, 121, 32, 124, 32, 51, 61, 109, 105, 114, 114, 111, 114, 45, 120, 121, 125, 44, 95, 114, 105, 103, 104, 116, 95, 115, 105, 100, 101, 44, 95, 108, 111, 119, 101, 114, 95, 115, 105, 100, 101, 44, 95, 117, 112, 112, 101, 114, 95, 115, 105, 100, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 51, 100, 32, 102, 114, 97, 109, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 112, 116, 104, 61, 49, 39, 44, 32, 39, 120, 95, 99, 101, 110, 116, 101, 114, 61, 121, 95, 99, 101, 110, 116, 101, 114, 61, 48, 39, 32, 97, 110, 100, 32, 39, 108, 101, 102, 116, 95, 115, 105, 100, 101, 61, 114, 105, 103, 104, 116, 95, 115, 105, 100, 101, 44, 108, 111, 119, 101, 114, 95, 115, 105, 100, 101, 61, 117, 112, 112, 101, 114, 95, 115, 105, 100, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 44, 10, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 51, 100, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 32, 97, 110, 100, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 97, 32, 99, 10, 45, 101, 108, 115, 101, 10, 109, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 45, 99, 51, 100, 32, 45, 47, 51, 100, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 52, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 45, 48, 46, 53, 44, 48, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 53, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 48, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 46, 53, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 55, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 45, 48, 46, 53, 44, 45, 48, 46, 53, 10, 45, 43, 51, 100, 32, 48, 44, 48, 44, 49, 32, 45, 43, 51, 100, 32, 45, 42, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 109, 10, 102, 61, 49, 48, 48, 48, 10, 99, 120, 61, 36, 50, 42, 36, 119, 47, 50, 42, 40, 36, 102, 43, 36, 109, 42, 36, 49, 41, 47, 36, 102, 10, 99, 121, 61, 36, 51, 42, 36, 104, 47, 50, 42, 40, 36, 102, 43, 36, 109, 42, 36, 49, 41, 47, 36, 102, 10, 45, 115, 51, 100, 32, 45, 114, 91, 50, 93, 32, 51, 44, 123, 64, 123, 50, 44, 104, 125, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 102, 91, 50, 93, 32, 34, 105, 102, 40, 105, 40, 50, 44, 121, 41, 60, 48, 46, 53, 44, 105, 44, 105, 43, 105, 102, 40, 120, 61, 61, 48, 44, 34, 36, 99, 120, 34, 44, 105, 102, 40, 120, 61, 61, 49, 44, 34, 36, 99, 121, 34, 44, 40, 36, 49, 45, 49, 41, 42, 34, 36, 109, 34, 41, 41, 41, 34, 10, 45, 121, 91, 50, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 42, 51, 100, 32, 50, 32, 123, 50, 42, 36, 119, 125, 44, 123, 50, 42, 36, 104, 125, 44, 49, 44, 36, 115, 32, 45, 102, 51, 100, 32, 123, 50, 42, 36, 102, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 49, 56, 48, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 49, 56, 48, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 56, 48, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 58, 32, 115, 105, 122, 101, 95, 120, 62, 61, 48, 44, 95, 115, 105, 122, 101, 95, 121, 62, 61, 48, 44, 95, 102, 117, 122, 122, 121, 110, 101, 115, 115, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 82, 44, 95, 71, 44, 95, 66, 44, 95, 65, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 82, 71, 66, 65, 45, 99, 111, 108, 111, 114, 101, 100, 32, 102, 117, 122, 122, 121, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 120, 39, 44, 32, 39, 102, 117, 122, 122, 121, 110, 101, 115, 115, 61, 53, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 82, 61, 71, 61, 66, 61, 65, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 50, 48, 10, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 53, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 36, 54, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 36, 49, 120, 36, 50, 32, 102, 117, 122, 122, 121, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 117, 122, 122, 121, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 40, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 91, 48, 93, 32, 40, 36, 49, 59, 36, 50, 41, 32, 45, 42, 91, 48, 93, 32, 50, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 64, 123, 48, 44, 49, 125, 44, 49, 44, 49, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 64, 123, 48, 44, 48, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 114, 109, 91, 48, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 36, 49, 44, 45, 36, 50, 44, 48, 44, 48, 44, 50, 32, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 51, 32, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 95, 102, 97, 100, 101, 32, 53, 48, 44, 56, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 95, 115, 105, 122, 101, 91, 37, 93, 62, 61, 48, 44, 48, 60, 61, 95, 99, 111, 110, 116, 114, 97, 115, 116, 60, 61, 49, 44, 95, 112, 114, 111, 102, 105, 108, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 82, 44, 95, 71, 44, 95, 66, 44, 95, 118, 105, 103, 110, 101, 116, 116, 101, 95, 115, 105, 122, 101, 91, 37, 93, 62, 61, 48, 44, 95, 118, 105, 103, 110, 101, 116, 116, 101, 95, 99, 111, 110, 116, 114, 97, 115, 116, 62, 61, 48, 44, 95, 100, 101, 102, 101, 99, 116, 115, 95, 99, 111, 110, 116, 114, 97, 115, 116, 62, 61, 48, 44, 48, 60, 61, 95, 100, 101, 102, 101, 99, 116, 115, 95, 100, 101, 110, 115, 105, 116, 121, 60, 61, 49, 48, 48, 44, 95, 100, 101, 102, 101, 99, 116, 115, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 100, 101, 102, 101, 99, 116, 115, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 115, 101, 114, 105, 97, 108, 95, 110, 117, 109, 98, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 97, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 61, 49, 48, 37, 39, 44, 32, 39, 99, 111, 110, 116, 114, 97, 115, 116, 61, 48, 46, 52, 39, 44, 32, 39, 112, 114, 111, 102, 105, 108, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 54, 37, 39, 44, 32, 39, 82, 61, 50, 50, 53, 39, 44, 32, 39, 71, 61, 50, 48, 48, 39, 44, 32, 39, 66, 61, 49, 50, 48, 39, 44, 32, 39, 118, 105, 103, 110, 101, 116, 116, 101, 95, 115, 105, 122, 101, 61, 50, 37, 39, 44, 32, 39, 118, 105, 103, 110, 101, 116, 116, 101, 95, 99, 111, 110, 116, 114, 97, 115, 116, 61, 52, 48, 48, 39, 44, 32, 39, 100, 101, 102, 101, 99, 116, 115, 95, 99, 111, 110, 116, 114, 97, 115, 116, 61, 53, 48, 39, 44, 32, 39, 100, 101, 102, 101, 99, 116, 115, 95, 100, 101, 110, 115, 105, 116, 121, 61, 49, 48, 39, 44, 32, 39, 100, 101, 102, 101, 99, 116, 115, 95, 115, 105, 122, 101, 61, 49, 39, 44, 32, 39, 100, 101, 102, 101, 99, 116, 115, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 37, 39, 32, 97, 110, 100, 32, 39, 115, 101, 114, 105, 97, 108, 95, 110, 117, 109, 98, 101, 114, 61, 49, 50, 51, 52, 53, 54, 55, 56, 57, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 44, 10, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 54, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 50, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 52, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 57, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 48, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 50, 53, 125, 44, 36, 123, 53, 61, 50, 48, 48, 125, 44, 36, 123, 54, 61, 49, 50, 48, 125, 44, 36, 123, 49, 51, 61, 49, 50, 51, 52, 53, 54, 55, 56, 57, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 36, 50, 44, 32, 112, 114, 111, 102, 105, 108, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 52, 45, 54, 125, 41, 44, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 115, 105, 122, 101, 32, 36, 55, 44, 32, 34, 92, 10, 34, 118, 105, 103, 110, 101, 116, 116, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 36, 56, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 36, 57, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 48, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 115, 105, 122, 101, 32, 36, 49, 49, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 50, 32, 97, 110, 100, 32, 115, 101, 114, 105, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 36, 49, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 36, 49, 44, 36, 49, 32, 115, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 39, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 49, 51, 125, 39, 125, 41, 32, 45, 45, 91, 45, 49, 93, 32, 123, 39, 48, 39, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 10, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 123, 49, 45, 36, 50, 125, 44, 123, 49, 43, 36, 50, 125, 10, 45, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 45, 50, 44, 119, 125, 43, 50, 42, 36, 115, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 64, 123, 45, 52, 44, 104, 125, 43, 50, 42, 36, 115, 125, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 44, 123, 36, 115, 45, 49, 125, 44, 123, 36, 115, 45, 49, 125, 44, 48, 44, 123, 36, 115, 45, 49, 125, 44, 49, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 48, 48, 37, 44, 48, 44, 123, 119, 45, 36, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 44, 48, 44, 49, 48, 48, 37, 44, 123, 36, 115, 45, 50, 125, 44, 49, 48, 48, 37, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 115, 43, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 54, 45, 45, 51, 93, 32, 36, 123, 52, 45, 54, 125, 44, 36, 123, 57, 45, 49, 50, 125, 10, 123, 64, 123, 45, 55, 44, 119, 125, 43, 50, 42, 36, 115, 125, 44, 123, 64, 123, 45, 55, 44, 104, 125, 43, 50, 42, 36, 115, 125, 44, 49, 44, 51, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 55, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 51, 93, 44, 49, 32, 45, 114, 109, 91, 45, 55, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 51, 93, 32, 121, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 48, 44, 123, 104, 45, 36, 115, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 51, 93, 44, 49, 32, 45, 114, 109, 91, 45, 54, 44, 45, 51, 93, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 49, 32, 45, 114, 109, 91, 45, 52, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 120, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 123, 119, 45, 36, 115, 125, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 49, 32, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 45, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 56, 32, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 105, 61, 48, 32, 45, 100, 111, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 53, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 34, 109, 61, 36, 53, 47, 50, 48, 48, 59, 40, 105, 97, 60, 109, 45, 48, 46, 50, 32, 124, 124, 32, 105, 97, 62, 109, 43, 48, 46, 50, 41, 32, 38, 38, 32, 34, 36, 105, 34, 60, 49, 48, 34, 125, 10, 45, 98, 91, 45, 49, 93, 32, 36, 55, 32, 45, 103, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 52, 44, 36, 52, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 32, 77, 62, 61, 51, 44, 95, 112, 97, 116, 116, 101, 114, 110, 32, 61, 32, 123, 32, 48, 61, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 32, 124, 32, 49, 61, 115, 101, 108, 102, 32, 125, 44, 95, 99, 111, 110, 115, 116, 114, 97, 105, 110, 95, 115, 105, 122, 101, 32, 61, 32, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 112, 97, 116, 116, 101, 114, 110, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 97, 116, 116, 101, 114, 110, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 111, 110, 115, 116, 114, 97, 105, 110, 95, 115, 105, 122, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 56, 10, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 51, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 124, 124, 36, 50, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 49, 32, 115, 101, 108, 102, 45, 112, 97, 116, 116, 101, 114, 110, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 114, 32, 123, 119, 47, 40, 36, 49, 45, 50, 41, 125, 44, 123, 104, 47, 40, 36, 49, 45, 50, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 49, 42, 119, 125, 44, 123, 36, 49, 42, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 50, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 120, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 49, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 45, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 49, 32, 112, 97, 116, 116, 101, 114, 110, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 114, 91, 48, 93, 32, 123, 119, 47, 40, 36, 49, 45, 50, 41, 125, 44, 123, 104, 47, 40, 36, 49, 45, 50, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 114, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 119, 125, 43, 50, 42, 119, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 43, 50, 42, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 50, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 120, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 49, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 45, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 58, 32, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 48, 44, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 115, 104, 97, 100, 105, 110, 103, 44, 95, 82, 44, 95, 71, 44, 95, 66, 44, 95, 65, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 97, 119, 32, 82, 71, 66, 65, 45, 99, 111, 108, 111, 114, 101, 100, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 49, 48, 39, 44, 32, 39, 115, 105, 122, 101, 61, 49, 48, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 44, 32, 39, 115, 104, 97, 100, 105, 110, 103, 61, 48, 39, 32, 97, 110, 100, 32, 39, 82, 61, 71, 61, 66, 61, 65, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 49, 48, 10, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 49, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 36, 54, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 40, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 45, 40, 97, 98, 115, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 36, 49, 32, 43, 32, 97, 98, 115, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 36, 49, 41, 94, 40, 49, 47, 36, 49, 41, 34, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 105, 91, 45, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 45, 51, 93, 32, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 120, 32, 58, 32, 115, 105, 122, 101, 95, 120, 91, 37, 93, 62, 61, 48, 44, 95, 99, 111, 108, 49, 44, 46, 46, 46, 44, 95, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 99, 111, 108, 111, 114, 101, 100, 32, 102, 114, 97, 109, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 108, 49, 61, 99, 111, 108, 50, 61, 99, 111, 108, 51, 61, 50, 53, 53, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 52, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 120, 32, 50, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 102, 114, 97, 109, 101, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 53, 53, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 48, 44, 48, 44, 36, 123, 50, 45, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 120, 121, 32, 58, 32, 115, 105, 122, 101, 95, 120, 91, 37, 93, 62, 61, 48, 44, 95, 115, 105, 122, 101, 95, 121, 91, 37, 93, 62, 61, 48, 44, 95, 99, 111, 108, 49, 44, 46, 46, 46, 44, 95, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 99, 111, 108, 111, 114, 101, 100, 32, 102, 114, 97, 109, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 120, 39, 44, 32, 39, 99, 111, 108, 49, 61, 99, 111, 108, 50, 61, 99, 111, 108, 51, 61, 50, 53, 53, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 52, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 45, 102, 114, 97, 109, 101, 39, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 120, 121, 32, 49, 44, 49, 44, 48, 32, 45, 102, 114, 97, 109, 101, 95, 120, 121, 32, 50, 48, 44, 49, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 102, 114, 97, 109, 101, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 53, 53, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 123, 49, 45, 45, 49, 125, 10, 95, 102, 114, 97, 109, 101, 95, 120, 121, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 50, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 123, 51, 45, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 120, 121, 122, 32, 58, 32, 115, 105, 122, 101, 95, 120, 91, 37, 93, 62, 61, 48, 44, 95, 115, 105, 122, 101, 95, 121, 91, 37, 93, 62, 61, 48, 44, 95, 115, 105, 122, 101, 95, 122, 91, 37, 93, 62, 61, 48, 95, 99, 111, 108, 49, 44, 46, 46, 46, 44, 95, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 99, 111, 108, 111, 114, 101, 100, 32, 102, 114, 97, 109, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 95, 121, 61, 115, 105, 122, 101, 95, 120, 61, 115, 105, 122, 101, 95, 122, 39, 44, 32, 39, 99, 111, 108, 49, 61, 99, 111, 108, 50, 61, 99, 111, 108, 51, 61, 50, 53, 53, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 52, 61, 50, 53, 53, 39, 46, 10, 102, 114, 97, 109, 101, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 36, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 53, 53, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 50, 120, 36, 51, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 123, 52, 45, 45, 49, 125, 10, 35, 64, 103, 109, 105, 99, 32, 102, 114, 97, 109, 101, 95, 121, 32, 58, 32, 115, 105, 122, 101, 95, 121, 91, 37, 93, 62, 61, 48, 44, 95, 99, 111, 108, 49, 44, 46, 46, 46, 44, 95, 99, 111, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 115, 101, 114, 116, 32, 99, 111, 108, 111, 114, 101, 100, 32, 102, 114, 97, 109, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 108, 49, 61, 99, 111, 108, 50, 61, 99, 111, 108, 51, 61, 50, 53, 53, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 52, 61, 50, 53, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 114, 97, 109, 101, 95, 121, 32, 50, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 102, 114, 97, 109, 101, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 53, 53, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 48, 44, 36, 49, 44, 48, 44, 36, 123, 50, 45, 45, 49, 125, 10, 95, 102, 114, 97, 109, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 44, 49, 41, 41, 125, 10, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 44, 49, 41, 41, 125, 10, 100, 61, 123, 114, 111, 117, 110, 100, 40, 36, 51, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 100, 44, 49, 41, 41, 125, 10, 45, 114, 32, 123, 119, 43, 50, 42, 36, 119, 125, 44, 123, 104, 43, 50, 42, 36, 104, 125, 44, 123, 100, 43, 50, 42, 36, 100, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 102, 32, 123, 36, 119, 125, 32, 36, 119, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 64, 123, 48, 44, 119, 45, 36, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 125, 32, 49, 48, 48, 37, 44, 36, 104, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 64, 123, 48, 44, 104, 45, 36, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 100, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 100, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 64, 123, 48, 44, 100, 45, 36, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 120, 78, 32, 105, 109, 97, 103, 101, 32, 103, 114, 105, 100, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 78, 61, 77, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 49, 54, 10, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 105, 109, 97, 103, 101, 32, 103, 114, 105, 100, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 50, 93, 32, 64, 45, 49, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 50, 93, 32, 64, 45, 49, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 91, 45, 49, 93, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 105, 110, 101, 97, 114, 105, 122, 101, 32, 77, 120, 78, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 78, 61, 77, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 49, 54, 10, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 105, 110, 101, 97, 114, 105, 122, 101, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 102, 32, 120, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 121, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 119, 104, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 48, 125, 34, 42, 120, 32, 43, 32, 34, 64, 123, 45, 49, 44, 49, 125, 34, 42, 121, 32, 43, 32, 34, 64, 123, 45, 49, 44, 50, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 115, 41, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 81, 117, 97, 100, 114, 97, 116, 105, 122, 101, 32, 77, 120, 78, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 78, 61, 77, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 49, 54, 10, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 81, 117, 97, 100, 114, 97, 116, 105, 122, 101, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 102, 32, 120, 94, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 94, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 120, 42, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 120, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 121, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 119, 104, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 48, 125, 34, 42, 120, 94, 50, 32, 43, 32, 34, 64, 123, 45, 49, 44, 49, 125, 34, 42, 121, 94, 50, 32, 43, 32, 34, 64, 123, 45, 49, 44, 50, 125, 34, 42, 120, 42, 121, 32, 43, 34, 64, 123, 45, 49, 44, 51, 125, 34, 42, 120, 32, 43, 32, 34, 64, 123, 45, 49, 44, 52, 125, 34, 42, 121, 32, 43, 32, 34, 64, 123, 45, 49, 44, 53, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 115, 41, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 97, 110, 103, 108, 101, 44, 95, 77, 62, 48, 44, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 77, 120, 78, 32, 116, 105, 108, 101, 100, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 77, 61, 56, 39, 32, 97, 110, 100, 32, 39, 78, 61, 77, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 49, 48, 44, 56, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 49, 48, 44, 49, 48, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 56, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 50, 120, 36, 51, 32, 116, 105, 108, 101, 100, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 50, 44, 36, 51, 44, 49, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 49, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 50, 44, 36, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 77, 120, 78, 32, 116, 105, 108, 101, 100, 45, 115, 104, 105, 102, 116, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 78, 61, 77, 39, 32, 97, 110, 100, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 50, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 56, 44, 56, 44, 49, 48, 10, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 100, 45, 115, 104, 105, 102, 116, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 97, 113, 117, 105, 110, 32, 58, 32, 77, 62, 48, 44, 95, 78, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 120, 78, 32, 116, 97, 113, 117, 105, 110, 32, 112, 117, 122, 122, 108, 101, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 78, 61, 77, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 97, 113, 117, 105, 110, 32, 56, 10, 116, 97, 113, 117, 105, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 116, 97, 113, 117, 105, 110, 32, 112, 117, 122, 122, 108, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 42, 36, 50, 125, 32, 45, 109, 118, 91, 36, 62, 93, 32, 123, 63, 40, 64, 35, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 117, 110, 110, 101, 108, 32, 58, 32, 95, 108, 101, 118, 101, 108, 62, 61, 48, 44, 95, 102, 97, 99, 116, 111, 114, 62, 48, 44, 95, 99, 120, 44, 95, 99, 121, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 97, 110, 103, 108, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 116, 117, 110, 110, 101, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 108, 101, 118, 101, 108, 61, 57, 39, 44, 32, 39, 102, 97, 99, 116, 111, 114, 61, 56, 48, 37, 39, 44, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 117, 110, 110, 101, 108, 32, 50, 48, 10, 116, 117, 110, 110, 101, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 57, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 56, 48, 37, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 44, 36, 123, 53, 61, 48, 46, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 117, 110, 110, 101, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 44, 32, 99, 101, 110, 116, 101, 114, 105, 110, 103, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 97, 110, 103, 108, 101, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 114, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 49, 44, 49, 48, 48, 37, 44, 53, 10, 45, 105, 102, 32, 36, 54, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 54, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 119, 41, 42, 36, 51, 125, 44, 123, 40, 64, 123, 45, 51, 44, 104, 125, 45, 104, 41, 42, 36, 52, 125, 44, 48, 44, 48, 44, 36, 53, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 42, 36, 51, 125, 44, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 104, 41, 42, 36, 52, 125, 44, 48, 44, 48, 44, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 65, 114, 116, 105, 115, 116, 105, 99, 10, 35, 64, 103, 109, 105, 99, 32, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 58, 32, 95, 109, 105, 110, 95, 98, 111, 120, 95, 115, 105, 122, 101, 62, 61, 49, 44, 95, 109, 97, 120, 95, 98, 111, 120, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 105, 110, 105, 116, 105, 97, 108, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 62, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 98, 111, 120, 32, 102, 105, 116, 116, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 44, 32, 97, 115, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 116, 104, 101, 32, 119, 101, 98, 32, 112, 97, 103, 101, 58, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 91, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 99, 111, 109, 112, 108, 101, 120, 105, 102, 105, 99, 97, 116, 105, 111, 110, 46, 110, 101, 116, 47, 103, 97, 108, 108, 101, 114, 121, 47, 109, 97, 99, 104, 105, 110, 101, 115, 47, 98, 111, 120, 70, 105, 116, 116, 105, 110, 103, 73, 109, 103, 47, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 109, 105, 110, 95, 98, 111, 120, 95, 115, 105, 122, 101, 61, 49, 39, 44, 32, 39, 109, 97, 120, 95, 98, 111, 120, 95, 115, 105, 122, 101, 61, 48, 39, 44, 32, 39, 105, 110, 105, 116, 105, 97, 108, 95, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 49, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 116, 114, 105, 101, 115, 61, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 44, 10, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 51, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 51, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 111, 120, 32, 102, 105, 116, 116, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 111, 120, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 97, 116, 116, 101, 109, 112, 116, 115, 46, 34, 10, 45, 118, 32, 45, 10, 109, 105, 110, 95, 115, 105, 122, 101, 61, 36, 49, 10, 109, 97, 120, 95, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 50, 44, 36, 50, 44, 109, 97, 120, 40, 119, 44, 104, 41, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 32, 112, 114, 101, 99, 61, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 101, 56, 10, 45, 105, 102, 32, 123, 36, 62, 60, 49, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 101, 45, 51, 44, 36, 51, 41, 125, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 36, 112, 114, 101, 99, 42, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 125, 10, 112, 114, 101, 99, 61, 123, 109, 97, 120, 40, 49, 44, 36, 112, 114, 101, 99, 42, 48, 46, 57, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 115, 105, 122, 101, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 94, 50, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 51, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 33, 105, 77, 125, 32, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 43, 49, 125, 32, 45, 105, 102, 32, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 62, 36, 52, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 40, 36, 109, 97, 120, 95, 115, 105, 122, 101, 45, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 47, 50, 41, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 43, 50, 42, 36, 62, 43, 50, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 33, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 97, 114, 116, 111, 111, 110, 32, 58, 32, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 44, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 62, 61, 48, 44, 95, 99, 111, 108, 111, 114, 62, 61, 48, 44, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 97, 114, 116, 111, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 51, 39, 44, 32, 39, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 61, 49, 53, 48, 39, 44, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 48, 39, 44, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 48, 46, 50, 53, 39, 44, 32, 39, 99, 111, 108, 111, 114, 61, 49, 46, 53, 39, 32, 97, 110, 100, 32, 39, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 97, 114, 116, 111, 111, 110, 32, 51, 44, 56, 48, 44, 49, 53, 10, 99, 97, 114, 116, 111, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 49, 53, 48, 125, 44, 36, 123, 51, 61, 50, 48, 125, 44, 36, 123, 52, 61, 48, 46, 50, 53, 125, 44, 36, 123, 53, 61, 49, 46, 53, 125, 44, 36, 123, 54, 61, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 97, 114, 116, 111, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 36, 50, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 52, 44, 32, 99, 111, 108, 111, 114, 32, 36, 53, 32, 97, 110, 100, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 50, 44, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 45, 101, 100, 103, 101, 115, 32, 36, 51, 32, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 103, 101, 91, 45, 49, 93, 32, 48, 46, 57, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 36, 53, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 50, 93, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 54, 44, 49, 44, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 105, 114, 99, 108, 105, 115, 109, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 95, 109, 105, 110, 62, 48, 44, 95, 114, 97, 100, 105, 117, 115, 95, 109, 97, 120, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 114, 97, 100, 105, 117, 115, 95, 108, 105, 110, 101, 97, 114, 105, 116, 121, 62, 61, 48, 44, 95, 108, 111, 99, 97, 116, 105, 111, 110, 95, 108, 105, 110, 101, 97, 114, 105, 116, 121, 62, 61, 48, 44, 95, 115, 104, 97, 112, 101, 61, 123, 48, 61, 115, 113, 117, 97, 114, 101, 115, 32, 124, 32, 49, 61, 100, 105, 97, 109, 111, 110, 100, 115, 32, 124, 32, 50, 61, 99, 105, 114, 99, 108, 101, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 108, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 101, 102, 102, 101, 99, 116, 32, 105, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 66, 101, 110, 32, 72, 101, 105, 110, 101, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 97, 100, 105, 117, 115, 95, 109, 105, 110, 61, 50, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 95, 109, 97, 120, 61, 50, 48, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 95, 108, 105, 110, 101, 97, 114, 105, 116, 121, 61, 48, 46, 52, 39, 44, 32, 39, 108, 111, 99, 97, 116, 105, 111, 110, 95, 108, 105, 110, 101, 97, 114, 105, 116, 121, 61, 51, 39, 32, 97, 110, 100, 32, 39, 115, 104, 97, 112, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 105, 114, 99, 108, 105, 115, 109, 32, 44, 10, 99, 105, 114, 99, 108, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 51, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 54, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 108, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 114, 97, 100, 105, 117, 115, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 36, 53, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 45, 94, 91, 45, 49, 93, 32, 36, 53, 32, 45, 94, 91, 45, 50, 93, 32, 36, 52, 32, 115, 117, 109, 103, 48, 61, 64, 123, 45, 49, 44, 43, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 105, 116, 61, 48, 32, 102, 97, 105, 108, 101, 100, 61, 48, 32, 110, 111, 101, 100, 103, 101, 115, 61, 48, 32, 115, 118, 103, 61, 34, 45, 49, 44, 45, 49, 34, 10, 45, 100, 111, 10, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 51, 10, 45, 105, 102, 32, 36, 110, 111, 101, 100, 103, 101, 115, 32, 120, 121, 122, 99, 61, 64, 123, 45, 49, 44, 67, 125, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 120, 121, 122, 99, 61, 64, 123, 45, 49, 44, 67, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 64, 123, 45, 52, 44, 40, 36, 120, 121, 122, 99, 41, 125, 10, 120, 61, 123, 97, 114, 103, 40, 49, 44, 36, 120, 121, 122, 99, 41, 125, 10, 121, 61, 123, 97, 114, 103, 40, 50, 44, 36, 120, 121, 122, 99, 41, 125, 10, 114, 61, 123, 109, 105, 110, 40, 109, 97, 120, 40, 36, 49, 44, 36, 50, 42, 40, 49, 45, 36, 110, 41, 41, 44, 115, 113, 114, 116, 40, 64, 123, 45, 49, 44, 40, 36, 120, 121, 122, 99, 41, 125, 41, 45, 50, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 114, 62, 61, 36, 49, 125, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 50, 93, 32, 36, 120, 44, 36, 121, 44, 123, 36, 114, 43, 36, 49, 125, 44, 123, 36, 114, 43, 36, 49, 125, 44, 48, 44, 49, 44, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 120, 48, 61, 123, 36, 120, 45, 36, 114, 47, 50, 125, 32, 121, 48, 61, 123, 36, 121, 45, 36, 114, 47, 50, 125, 32, 120, 49, 61, 123, 36, 120, 43, 36, 114, 47, 50, 125, 32, 121, 49, 61, 123, 36, 121, 43, 36, 114, 47, 50, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 49, 10, 120, 48, 61, 123, 36, 120, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 121, 48, 61, 123, 36, 121, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 120, 49, 61, 123, 36, 120, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 121, 49, 61, 123, 36, 121, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 50, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 45, 49, 10, 45, 101, 108, 115, 101, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 45, 36, 114, 47, 50, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 45, 36, 114, 47, 50, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 43, 36, 114, 47, 50, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 43, 36, 114, 47, 50, 41, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 44, 36, 120, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 44, 36, 120, 44, 36, 121, 49, 44, 49, 44, 49, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 44, 36, 120, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 44, 36, 120, 44, 36, 121, 49, 44, 49, 44, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 102, 97, 105, 108, 101, 100, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 61, 91, 45, 50, 93, 32, 45, 49, 44, 36, 120, 44, 36, 121, 10, 102, 97, 105, 108, 101, 100, 61, 123, 36, 102, 97, 105, 108, 101, 100, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 102, 97, 105, 108, 101, 100, 61, 61, 49, 48, 48, 125, 32, 102, 97, 105, 108, 101, 100, 61, 48, 32, 45, 105, 102, 32, 36, 110, 111, 101, 100, 103, 101, 115, 32, 110, 61, 45, 49, 32, 45, 101, 108, 115, 101, 32, 110, 111, 101, 100, 103, 101, 115, 61, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 105, 116, 61, 123, 36, 105, 116, 43, 49, 125, 10, 45, 105, 102, 32, 123, 33, 40, 36, 105, 116, 37, 53, 48, 41, 125, 10, 112, 61, 123, 114, 111, 117, 110, 100, 40, 49, 48, 48, 42, 40, 40, 36, 115, 117, 109, 103, 48, 45, 64, 123, 45, 50, 44, 43, 125, 41, 47, 64, 123, 45, 50, 44, 119, 104, 125, 41, 94, 51, 41, 125, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 112, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 34, 36, 112, 37, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 110, 62, 61, 48, 125, 10, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 45, 49, 10, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 32, 95, 99, 111, 117, 110, 116, 62, 48, 44, 95, 114, 97, 100, 105, 117, 115, 62, 61, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 32, 101, 108, 108, 105, 112, 115, 101, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 117, 110, 116, 61, 52, 48, 48, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 53, 39, 32, 97, 110, 100, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 44, 44, 48, 46, 49, 53, 10, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 52, 48, 48, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 36, 49, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 32, 101, 108, 108, 105, 112, 115, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 109, 97, 120, 105, 109, 117, 109, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 63, 40, 48, 44, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 48, 44, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 48, 44, 36, 50, 41, 125, 37, 44, 123, 63, 40, 48, 44, 36, 50, 41, 125, 37, 44, 123, 63, 40, 48, 44, 51, 54, 48, 41, 125, 44, 36, 51, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 99, 117, 98, 105, 115, 109, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 48, 60, 61, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 60, 61, 53, 48, 44, 95, 109, 97, 120, 95, 97, 110, 103, 108, 101, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 99, 117, 98, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 53, 48, 39, 44, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 49, 48, 39, 44, 32, 39, 109, 97, 120, 95, 97, 110, 103, 108, 101, 61, 55, 53, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 55, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 117, 98, 105, 115, 109, 32, 44, 10, 99, 117, 98, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 53, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 55, 53, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 117, 98, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 109, 97, 120, 105, 109, 117, 109, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 53, 46, 34, 10, 45, 105, 102, 32, 123, 34, 33, 36, 49, 32, 124, 124, 32, 33, 36, 50, 32, 124, 124, 32, 33, 36, 51, 32, 124, 124, 32, 33, 36, 52, 34, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 80, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 50, 48, 48, 41, 125, 10, 78, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 36, 49, 42, 119, 42, 104, 47, 40, 52, 42, 36, 80, 41, 47, 49, 48, 48, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 52, 42, 36, 78, 125, 59, 36, 78, 41, 10, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 36, 80, 44, 123, 36, 119, 45, 49, 45, 36, 80, 125, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 36, 80, 44, 123, 36, 104, 45, 49, 45, 36, 80, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 45, 45, 43, 91, 45, 49, 93, 32, 39, 45, 36, 80, 44, 45, 36, 80, 39, 32, 45, 45, 43, 91, 45, 50, 93, 32, 39, 36, 80, 44, 45, 36, 80, 39, 32, 45, 45, 43, 91, 45, 51, 93, 32, 39, 36, 80, 44, 36, 80, 39, 32, 45, 45, 43, 91, 45, 52, 93, 32, 39, 45, 36, 80, 44, 36, 80, 39, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 105, 91, 45, 50, 93, 32, 40, 49, 50, 44, 48, 44, 49, 44, 50, 44, 51, 59, 49, 50, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 49, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 50, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 51, 125, 41, 10, 45, 114, 91, 45, 50, 93, 32, 53, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 50, 50, 53, 45, 36, 51, 125, 44, 123, 50, 50, 53, 43, 36, 51, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 52, 45, 45, 51, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 52, 44, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 32, 45, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 113, 114, 116, 40, 50, 41, 42, 36, 80, 125, 10, 45, 114, 91, 45, 51, 93, 32, 52, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 36, 104, 59, 36, 115, 41, 32, 45, 45, 98, 91, 48, 93, 32, 36, 53, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 52, 44, 123, 36, 78, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 49, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 49, 45, 45, 49, 93, 32, 121, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 62, 61, 49, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 111, 116, 115, 98, 119, 32, 58, 32, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 62, 48, 44, 48, 60, 61, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 60, 61, 49, 48, 48, 44, 95, 114, 97, 100, 105, 117, 115, 95, 102, 97, 99, 116, 111, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 100, 111, 116, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 49, 54, 39, 44, 32, 39, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 49, 48, 39, 32, 97, 110, 100, 32, 39, 114, 97, 100, 105, 117, 115, 95, 102, 97, 99, 116, 111, 114, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 111, 116, 115, 98, 119, 32, 44, 32, 45, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 100, 111, 116, 115, 98, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 100, 111, 116, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 40, 115, 41, 44, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 50, 37, 32, 97, 110, 100, 32, 114, 97, 100, 105, 117, 115, 32, 102, 97, 99, 116, 111, 114, 32, 37, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 111, 114, 109, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 44, 50, 32, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 36, 119, 47, 119, 41, 125, 32, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 36, 104, 47, 104, 41, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 10, 36, 119, 44, 36, 104, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 48, 44, 110, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 61, 61, 91, 48, 93, 32, 36, 62, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 48, 46, 54, 53, 42, 36, 51, 42, 36, 100, 120, 42, 36, 62, 47, 36, 49, 45, 49, 125, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 104, 105, 114, 108, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 44, 10, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 104, 105, 114, 108, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 55, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 97, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 49, 44, 48, 44, 49, 44, 50, 44, 50, 10, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 114, 97, 119, 105, 110, 103, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 50, 48, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 114, 97, 119, 105, 110, 103, 32, 44, 10, 100, 114, 97, 119, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 48, 46, 50, 44, 49, 44, 51, 44, 51, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 32, 91, 48, 93, 10, 45, 114, 91, 48, 93, 32, 50, 48, 44, 50, 48, 44, 49, 44, 51, 44, 50, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 105, 110, 100, 101, 120, 91, 49, 93, 32, 91, 48, 93, 44, 49, 44, 49, 10, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 58, 32, 95, 111, 102, 102, 115, 101, 116, 95, 120, 91, 37, 93, 44, 95, 111, 102, 102, 115, 101, 116, 95, 121, 91, 37, 93, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 48, 60, 61, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 60, 61, 49, 44, 95, 101, 120, 112, 97, 110, 100, 95, 115, 105, 122, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 114, 111, 112, 32, 115, 104, 97, 100, 111, 119, 32, 98, 101, 104, 105, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 102, 102, 115, 101, 116, 95, 120, 61, 50, 48, 39, 44, 32, 39, 111, 102, 102, 115, 101, 116, 95, 121, 61, 111, 102, 102, 115, 101, 116, 95, 120, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 53, 39, 44, 32, 39, 99, 117, 114, 118, 97, 116, 117, 114, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 101, 120, 112, 97, 110, 100, 95, 115, 105, 122, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 49, 48, 44, 50, 48, 44, 53, 44, 48, 46, 53, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 50, 48, 44, 48, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 111, 112, 32, 115, 104, 97, 100, 111, 119, 32, 98, 101, 104, 105, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 100, 120, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 36, 49, 44, 36, 49, 41, 125, 10, 100, 121, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 125, 10, 115, 105, 103, 109, 97, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 51, 44, 36, 51, 41, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 114, 111, 112, 32, 36, 99, 111, 111, 114, 100, 115, 10, 45, 114, 32, 123, 119, 43, 97, 98, 115, 40, 36, 100, 120, 41, 125, 44, 123, 104, 43, 97, 98, 115, 40, 36, 100, 121, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 123, 105, 102, 40, 36, 100, 120, 62, 48, 44, 48, 44, 49, 41, 125, 44, 123, 105, 102, 40, 36, 100, 121, 62, 48, 44, 48, 44, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 52, 42, 36, 115, 105, 103, 109, 97, 125, 44, 123, 104, 43, 52, 42, 36, 115, 105, 103, 109, 97, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 36, 100, 120, 44, 36, 100, 121, 10, 45, 101, 108, 115, 101, 10, 40, 48, 59, 123, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 100, 120, 10, 40, 48, 44, 123, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 100, 121, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 115, 105, 103, 109, 97, 44, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 36, 119, 44, 36, 104, 44, 49, 44, 36, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 97, 114, 103, 40, 49, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 44, 123, 97, 114, 103, 40, 50, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 32, 95, 82, 62, 48, 91, 37, 93, 44, 95, 114, 62, 48, 91, 37, 93, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 91, 37, 93, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 111, 117, 116, 108, 105, 110, 101, 62, 48, 44, 95, 100, 101, 110, 115, 105, 116, 121, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 102, 105, 108, 116, 101, 114, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 82, 61, 49, 48, 39, 44, 32, 39, 114, 61, 51, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 37, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 55, 39, 44, 32, 39, 111, 117, 116, 108, 105, 115, 101, 61, 56, 39, 32, 97, 110, 100, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 44, 10, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 37, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 102, 105, 108, 116, 101, 114, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 97, 116, 97, 110, 50, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 32, 45, 43, 91, 45, 49, 93, 32, 57, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 44, 49, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 54, 42, 119, 42, 104, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 10, 120, 121, 61, 123, 63, 40, 119, 41, 125, 44, 123, 63, 40, 104, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 121, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 50, 44, 40, 36, 120, 121, 41, 125, 44, 36, 52, 44, 92, 10, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 48, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 49, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 50, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 51, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 121, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 50, 44, 40, 36, 120, 121, 41, 125, 44, 36, 52, 44, 48, 120, 49, 44, 92, 10, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 48, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 49, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 50, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 51, 41, 125, 47, 36, 53, 125, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 95, 101, 100, 103, 101, 115, 62, 61, 48, 44, 48, 60, 61, 95, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 60, 61, 49, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 95, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 48, 44, 95, 115, 116, 97, 114, 116, 105, 110, 103, 95, 102, 114, 97, 109, 101, 62, 61, 48, 44, 102, 114, 97, 109, 101, 95, 115, 107, 105, 112, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 102, 105, 114, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 101, 100, 103, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 101, 100, 103, 101, 115, 61, 48, 46, 55, 39, 44, 32, 39, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 61, 48, 46, 50, 53, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 39, 44, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 53, 39, 44, 32, 39, 110, 98, 95, 102, 114, 97, 109, 101, 115, 61, 49, 39, 44, 32, 39, 115, 116, 97, 114, 116, 105, 110, 103, 95, 102, 114, 97, 109, 101, 61, 50, 48, 39, 32, 97, 110, 100, 32, 39, 102, 114, 97, 109, 101, 95, 115, 107, 105, 112, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 44, 10, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 102, 105, 114, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 101, 100, 103, 101, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 44, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 44, 32, 34, 92, 10, 34, 36, 53, 32, 102, 114, 97, 109, 101, 115, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 36, 54, 32, 97, 110, 100, 32, 102, 114, 97, 109, 101, 32, 115, 107, 105, 112, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 110, 111, 114, 109, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 49, 32, 45, 102, 91, 48, 93, 32, 48, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 49, 45, 36, 50, 94, 52, 41, 47, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 53, 42, 40, 49, 43, 36, 55, 41, 43, 36, 54, 125, 10, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 10, 45, 105, 102, 32, 36, 52, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 101, 108, 115, 101, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 105, 102, 32, 123, 36, 62, 62, 61, 36, 54, 34, 32, 38, 38, 32, 34, 40, 36, 62, 45, 36, 54, 41, 37, 40, 36, 55, 43, 49, 41, 61, 61, 48, 125, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 108, 111, 119, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 115, 111, 102, 116, 32, 103, 108, 111, 119, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 103, 108, 111, 119, 32, 44, 10, 103, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 115, 111, 102, 116, 32, 103, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 98, 91, 48, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 48, 44, 45, 49, 93, 32, 49, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 97, 108, 102, 116, 111, 110, 101, 32, 58, 32, 110, 98, 95, 108, 101, 118, 101, 108, 115, 62, 61, 50, 44, 95, 115, 105, 122, 101, 95, 100, 97, 114, 107, 62, 61, 50, 44, 95, 115, 105, 122, 101, 95, 98, 114, 105, 103, 104, 116, 62, 61, 50, 44, 95, 115, 104, 97, 112, 101, 61, 123, 32, 48, 61, 115, 113, 117, 97, 114, 101, 32, 124, 32, 49, 61, 100, 105, 97, 109, 111, 110, 100, 32, 124, 32, 50, 61, 99, 105, 114, 99, 108, 101, 32, 124, 32, 51, 61, 105, 110, 118, 45, 115, 113, 117, 97, 114, 101, 32, 124, 32, 52, 61, 105, 110, 118, 45, 100, 105, 97, 109, 111, 110, 100, 32, 124, 32, 53, 61, 105, 110, 118, 45, 99, 105, 114, 99, 108, 101, 32, 125, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 104, 97, 108, 102, 116, 111, 110, 101, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 53, 39, 44, 32, 39, 115, 105, 122, 101, 95, 100, 97, 114, 107, 61, 56, 39, 44, 32, 39, 115, 105, 122, 101, 95, 98, 114, 105, 103, 104, 116, 61, 56, 39, 44, 32, 39, 115, 104, 97, 112, 101, 61, 53, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 97, 108, 102, 116, 111, 110, 101, 32, 44, 10, 104, 97, 108, 102, 116, 111, 110, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 51, 61, 56, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 53, 125, 10, 45, 118, 32, 45, 32, 115, 48, 61, 34, 115, 113, 117, 97, 114, 101, 34, 32, 115, 49, 61, 34, 100, 105, 97, 109, 111, 110, 100, 34, 32, 115, 50, 61, 34, 99, 105, 114, 99, 108, 101, 34, 32, 115, 51, 61, 34, 105, 110, 118, 45, 115, 113, 117, 97, 114, 101, 34, 32, 115, 52, 61, 34, 105, 110, 118, 45, 100, 105, 97, 109, 111, 110, 100, 34, 32, 115, 53, 61, 34, 105, 110, 118, 45, 99, 105, 114, 99, 108, 101, 34, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 97, 108, 102, 116, 111, 110, 101, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 44, 32, 100, 97, 114, 107, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 98, 114, 105, 103, 104, 116, 32, 115, 105, 122, 101, 32, 36, 52, 44, 32, 34, 36, 123, 115, 36, 52, 125, 34, 32, 115, 104, 97, 112, 101, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 48, 44, 50, 53, 53, 41, 32, 45, 97, 32, 121, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 49, 44, 48, 32, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 45, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 115, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 50, 42, 36, 60, 43, 36, 51, 42, 36, 62, 41, 47, 40, 36, 49, 45, 49, 41, 41, 125, 10, 36, 115, 44, 36, 115, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 123, 36, 52, 37, 51, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 109, 105, 110, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 62, 61, 51, 125, 32, 45, 108, 116, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 60, 47, 40, 36, 49, 45, 49, 46, 49, 41, 125, 37, 32, 45, 42, 91, 45, 49, 93, 32, 123, 45, 50, 53, 53, 125, 32, 45, 43, 91, 45, 49, 93, 32, 123, 50, 53, 53, 45, 36, 62, 125, 10, 45, 101, 108, 115, 101, 32, 45, 108, 116, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 62, 47, 40, 36, 49, 45, 49, 46, 49, 41, 125, 37, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 36, 62, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 36, 53, 32, 45, 45, 101, 113, 91, 45, 50, 93, 32, 36, 62, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 111, 112, 97, 99, 105, 116, 121, 44, 48, 60, 61, 95, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 60, 61, 49, 48, 48, 44, 95, 105, 115, 95, 102, 97, 115, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 104, 97, 114, 100, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 48, 48, 39, 44, 32, 39, 115, 97, 109, 112, 108, 105, 110, 103, 61, 51, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 49, 39, 44, 32, 39, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 102, 97, 115, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 50, 48, 48, 44, 55, 48, 44, 48, 46, 49, 44, 49, 48, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 50, 32, 45, 45, 108, 111, 99, 97, 108, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 51, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 32, 45, 101, 110, 100, 108, 10, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 48, 125, 44, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 44, 36, 123, 52, 61, 50, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 97, 114, 100, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 51, 32, 97, 110, 100, 32, 101, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 50, 53, 53, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 103, 32, 120, 121, 32, 45, 114, 118, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 97, 32, 99, 10, 45, 105, 102, 32, 36, 52, 32, 45, 45, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 42, 32, 45, 101, 110, 100, 105, 102, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 109, 97, 120, 40, 49, 44, 49, 48, 45, 36, 50, 47, 54, 41, 125, 44, 36, 49, 44, 48, 44, 36, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 103, 32, 120, 121, 32, 45, 114, 118, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 97, 32, 99, 32, 45, 42, 32, 36, 49, 10, 45, 45, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 50, 44, 50, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 32, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 115, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 91, 45, 51, 93, 32, 49, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 50, 93, 32, 40, 123, 50, 42, 104, 125, 44, 123, 104, 125, 41, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 42, 121, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 51, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 97, 114, 116, 115, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 104, 101, 97, 114, 116, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 101, 97, 114, 116, 115, 32, 44, 10, 104, 101, 97, 114, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 101, 97, 114, 116, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 45, 95, 104, 101, 97, 114, 116, 57, 120, 55, 10, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 104, 101, 97, 114, 116, 57, 120, 55, 32, 58, 10, 40, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 109, 105, 99, 32, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 114, 97, 100, 105, 117, 115, 62, 48, 44, 48, 60, 61, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 111, 112, 97, 99, 105, 116, 121, 60, 61, 49, 44, 95, 118, 111, 116, 101, 115, 105, 122, 101, 91, 37, 93, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 104, 111, 117, 103, 104, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 56, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 53, 39, 44, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 56, 48, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 49, 39, 32, 97, 110, 100, 32, 39, 118, 111, 116, 101, 115, 105, 122, 101, 61, 49, 48, 48, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 44, 10, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 56, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 49, 48, 48, 37, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 111, 117, 103, 104, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 118, 111, 116, 101, 115, 105, 122, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 53, 125, 44, 36, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 53, 41, 41, 125, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 104, 111, 117, 103, 104, 32, 36, 114, 101, 115, 44, 36, 114, 101, 115, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 51, 37, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 10, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 10, 45, 42, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 47, 36, 114, 101, 115, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 114, 104, 111, 109, 97, 120, 47, 36, 114, 101, 115, 125, 10, 45, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 119, 47, 50, 125, 10, 45, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 104, 47, 50, 125, 10, 45, 114, 109, 91, 45, 51, 93, 10, 45, 105, 91, 45, 51, 93, 32, 91, 45, 51, 93, 10, 45, 99, 111, 115, 91, 45, 52, 93, 32, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 49, 48, 48, 48, 48, 10, 45, 45, 43, 91, 45, 50, 93, 32, 91, 45, 51, 93, 10, 45, 45, 45, 91, 45, 50, 93, 32, 91, 45, 53, 93, 10, 45, 45, 91, 45, 52, 93, 32, 91, 45, 53, 93, 10, 45, 43, 91, 45, 51, 93, 32, 91, 45, 54, 93, 10, 45, 114, 109, 91, 45, 54, 44, 45, 53, 93, 10, 45, 105, 91, 45, 51, 93, 32, 49, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 50, 93, 32, 40, 123, 50, 42, 104, 125, 44, 123, 104, 125, 41, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 42, 121, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 52, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 58, 32, 49, 48, 48, 60, 61, 95, 100, 101, 110, 115, 105, 116, 121, 60, 61, 48, 44, 95, 99, 120, 44, 95, 99, 121, 44, 95, 114, 97, 121, 95, 108, 101, 110, 103, 116, 104, 62, 61, 48, 44, 95, 114, 97, 121, 95, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 114, 97, 121, 32, 108, 105, 103, 104, 116, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 101, 100, 103, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 115, 32, 118, 97, 108, 117, 101, 115, 32, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 53, 48, 37, 39, 44, 32, 39, 99, 120, 61, 48, 46, 53, 39, 44, 32, 39, 99, 121, 61, 48, 46, 53, 39, 44, 32, 39, 114, 97, 121, 95, 108, 101, 110, 103, 116, 104, 61, 48, 46, 57, 39, 32, 97, 110, 100, 32, 39, 114, 97, 121, 95, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 44, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 125, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 114, 97, 121, 32, 108, 105, 103, 104, 116, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 44, 32, 114, 97, 121, 32, 108, 101, 110, 103, 116, 104, 32, 36, 52, 32, 97, 110, 100, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 42, 32, 45, 49, 32, 45, 108, 116, 32, 36, 49, 37, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 108, 111, 103, 50, 40, 119, 41, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 50, 94, 36, 62, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 48, 46, 53, 44, 48, 44, 49, 44, 123, 36, 52, 42, 119, 125, 44, 49, 44, 123, 49, 43, 40, 36, 52, 43, 49, 45, 36, 53, 41, 42, 119, 125, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 10, 40, 49, 44, 123, 119, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 58, 32, 95, 97, 109, 98, 105, 101, 110, 116, 95, 108, 105, 103, 104, 116, 44, 95, 115, 112, 101, 99, 117, 108, 97, 114, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 95, 115, 112, 101, 99, 117, 108, 97, 114, 95, 115, 105, 122, 101, 44, 95, 108, 105, 103, 104, 116, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 95, 100, 97, 114, 107, 110, 101, 115, 115, 44, 95, 120, 108, 44, 95, 121, 108, 44, 95, 122, 108, 44, 95, 122, 115, 99, 97, 108, 101, 44, 95, 111, 112, 97, 99, 105, 116, 121, 95, 98, 117, 109, 112, 109, 97, 112, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 101, 108, 105, 101, 102, 32, 108, 105, 103, 104, 116, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 40, 115, 41, 32, 58, 32, 39, 97, 109, 98, 105, 101, 110, 116, 95, 108, 105, 103, 104, 116, 61, 48, 46, 51, 39, 44, 32, 39, 115, 112, 101, 99, 117, 108, 97, 114, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 46, 53, 39, 44, 32, 39, 115, 112, 101, 99, 117, 108, 97, 114, 95, 115, 105, 122, 101, 61, 48, 46, 50, 39, 44, 32, 39, 100, 97, 114, 107, 110, 101, 115, 115, 61, 48, 39, 44, 32, 39, 120, 108, 61, 48, 46, 50, 39, 44, 32, 39, 121, 108, 61, 122, 108, 61, 48, 46, 53, 39, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 122, 115, 99, 97, 108, 101, 61, 49, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 111, 112, 97, 99, 105, 116, 121, 95, 98, 117, 109, 112, 109, 97, 112, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 91, 45, 49, 93, 32, 48, 46, 51, 44, 52, 44, 48, 46, 49, 44, 48, 10, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 51, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 50, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 50, 125, 44, 36, 123, 54, 61, 48, 46, 53, 125, 44, 36, 123, 55, 61, 48, 46, 53, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 49, 125, 44, 36, 123, 49, 48, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 101, 108, 105, 101, 102, 32, 108, 105, 103, 104, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 45, 36, 54, 125, 44, 123, 49, 45, 36, 54, 125, 59, 123, 45, 36, 54, 125, 44, 123, 49, 45, 36, 54, 125, 94, 123, 45, 36, 55, 125, 44, 123, 45, 36, 55, 125, 59, 123, 49, 45, 36, 55, 125, 44, 123, 49, 45, 36, 55, 125, 94, 36, 56, 44, 36, 56, 59, 36, 56, 44, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 44, 51, 10, 45, 105, 102, 32, 36, 49, 48, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 51, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 51, 93, 32, 45, 101, 108, 115, 101, 32, 45, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 57, 32, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 36, 54, 42, 49, 48, 48, 125, 37, 44, 123, 36, 55, 42, 49, 48, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 47, 91, 45, 49, 93, 32, 123, 40, 36, 51, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 94, 50, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 36, 49, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 77, 125, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 115, 97, 105, 99, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 101, 100, 103, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 114, 97, 110, 100, 111, 109, 32, 109, 111, 115, 97, 105, 99, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 56, 39, 32, 97, 110, 100, 32, 39, 101, 100, 103, 101, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 111, 115, 97, 105, 99, 32, 44, 10, 109, 111, 115, 97, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 56, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 111, 115, 97, 105, 99, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 108, 97, 98, 101, 108, 48, 61, 123, 49, 43, 105, 109, 125, 32, 45, 43, 32, 36, 108, 97, 98, 101, 108, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 36, 49, 42, 50, 125, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 105, 102, 40, 36, 50, 44, 48, 44, 49, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 50, 32, 45, 45, 108, 91, 45, 49, 93, 32, 45, 103, 116, 32, 48, 32, 45, 115, 32, 99, 32, 45, 97, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 50, 93, 32, 36, 108, 97, 98, 101, 108, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 45, 91, 45, 49, 93, 32, 36, 108, 97, 98, 101, 108, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 111, 108, 100, 95, 112, 104, 111, 116, 111, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 111, 108, 100, 32, 112, 104, 111, 116, 111, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 111, 108, 100, 95, 112, 104, 111, 116, 111, 10, 111, 108, 100, 95, 112, 104, 111, 116, 111, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 108, 100, 32, 112, 104, 111, 116, 111, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 105, 115, 101, 32, 50, 48, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 51, 48, 44, 54, 48, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 32, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 50, 48, 44, 50, 48, 44, 54, 44, 51, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 48, 46, 55, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 115, 101, 112, 105, 97, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 95, 115, 105, 122, 101, 62, 61, 48, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 112, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 61, 48, 46, 51, 39, 32, 97, 110, 100, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 54, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 101, 110, 99, 105, 108, 98, 119, 32, 44, 10, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 51, 125, 44, 36, 123, 50, 61, 54, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 112, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 110, 111, 114, 109, 32, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 52, 48, 48, 48, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 50, 44, 48, 44, 49, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 115, 113, 114, 116, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 108, 97, 114, 111, 105, 100, 32, 58, 32, 95, 115, 105, 122, 101, 49, 62, 61, 48, 44, 95, 115, 105, 122, 101, 50, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 112, 111, 108, 97, 114, 111, 105, 100, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 105, 122, 101, 49, 61, 49, 48, 39, 32, 97, 110, 100, 32, 39, 115, 105, 122, 101, 50, 61, 50, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 112, 111, 108, 97, 114, 111, 105, 100, 32, 53, 44, 51, 48, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 48, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 44, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 112, 111, 108, 97, 114, 111, 105, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 112, 111, 108, 97, 114, 111, 105, 100, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 111, 114, 100, 101, 114, 115, 32, 115, 105, 122, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 123, 49, 48, 48, 43, 36, 49, 125, 37, 44, 123, 49, 48, 48, 43, 36, 49, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 49, 48, 48, 43, 36, 50, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 58, 32, 48, 60, 61, 95, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 100, 103, 101, 95, 115, 104, 97, 100, 101, 60, 61, 49, 48, 48, 44, 95, 101, 100, 103, 101, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 62, 61, 48, 44, 95, 101, 100, 103, 101, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 62, 61, 48, 44, 48, 60, 61, 95, 112, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 95, 108, 101, 118, 101, 108, 60, 61, 49, 53, 44, 95, 112, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 112, 111, 115, 116, 101, 114, 32, 101, 100, 103, 101, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 52, 48, 39, 44, 32, 39, 101, 100, 103, 101, 95, 115, 104, 97, 100, 101, 61, 53, 39, 44, 32, 39, 101, 100, 103, 101, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 48, 46, 53, 39, 44, 32, 39, 101, 100, 103, 101, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 61, 49, 48, 39, 44, 32, 39, 112, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 95, 108, 101, 118, 101, 108, 61, 49, 50, 39, 32, 97, 110, 100, 32, 39, 112, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 44, 10, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 53, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 120, 121, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 49, 44, 48, 44, 49, 44, 123, 109, 97, 120, 40, 48, 44, 40, 49, 48, 48, 45, 40, 36, 49, 37, 41, 94, 48, 46, 49, 42, 49, 48, 48, 41, 42, 50, 53, 53, 37, 41, 125, 44, 48, 46, 57, 57, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 40, 49, 48, 49, 45, 40, 36, 49, 37, 41, 94, 48, 46, 49, 42, 49, 48, 48, 43, 36, 50, 41, 42, 50, 53, 53, 37, 41, 125, 44, 48, 46, 48, 49, 44, 50, 53, 53, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 123, 109, 105, 110, 40, 53, 48, 44, 36, 52, 41, 125, 44, 48, 44, 49, 44, 123, 36, 52, 47, 52, 48, 125, 44, 123, 36, 52, 47, 52, 48, 125, 44, 48, 46, 56, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 123, 114, 111, 117, 110, 100, 40, 40, 52, 45, 115, 113, 114, 116, 40, 36, 53, 43, 49, 41, 41, 42, 51, 50, 43, 50, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 123, 109, 105, 110, 40, 53, 48, 44, 36, 54, 41, 125, 44, 48, 44, 49, 44, 123, 36, 54, 47, 52, 48, 125, 44, 123, 36, 54, 47, 52, 48, 125, 44, 48, 46, 56, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 32, 48, 60, 61, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 60, 61, 49, 48, 48, 44, 95, 48, 60, 61, 116, 104, 105, 99, 107, 110, 101, 115, 115, 60, 61, 49, 48, 48, 44, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 95, 110, 98, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 62, 48, 44, 95, 111, 102, 102, 115, 101, 116, 44, 95, 99, 111, 108, 111, 114, 95, 109, 111, 100, 101, 61, 123, 32, 48, 61, 100, 97, 114, 107, 101, 114, 32, 124, 32, 49, 61, 98, 114, 105, 103, 104, 116, 101, 114, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 111, 100, 105, 108, 105, 117, 115, 32, 40, 102, 114, 97, 99, 116, 97, 108, 105, 117, 115, 45, 108, 105, 107, 101, 41, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 39, 44, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 49, 48, 39, 44, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 52, 48, 48, 39, 44, 32, 39, 110, 98, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 61, 55, 39, 44, 32, 39, 111, 102, 102, 115, 101, 116, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 95, 109, 111, 100, 101, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 100, 105, 108, 105, 117, 115, 32, 49, 50, 44, 49, 48, 44, 51, 48, 48, 44, 49, 48, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 44, 54, 10, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 50, 48, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 52, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 55, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 111, 100, 105, 108, 105, 117, 115, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 51, 44, 32, 36, 52, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 44, 32, 111, 102, 102, 115, 101, 116, 32, 36, 53, 32, 97, 110, 100, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 54, 44, 98, 114, 105, 103, 104, 116, 101, 114, 44, 100, 97, 114, 107, 101, 114, 125, 34, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 105, 102, 32, 123, 33, 36, 54, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 110, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 36, 52, 41, 125, 10, 97, 110, 103, 108, 101, 61, 123, 36, 53, 43, 36, 62, 42, 49, 56, 48, 47, 114, 111, 117, 110, 100, 40, 36, 52, 41, 125, 10, 45, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 50, 93, 32, 36, 49, 37, 44, 123, 36, 49, 42, 36, 50, 47, 49, 48, 48, 125, 37, 44, 36, 97, 110, 103, 108, 101, 44, 49, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 55, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 33, 36, 54, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 58, 32, 95, 101, 100, 103, 101, 115, 91, 37, 93, 62, 61, 48, 44, 32, 115, 104, 97, 100, 105, 110, 103, 62, 61, 48, 44, 32, 105, 115, 95, 116, 104, 105, 110, 95, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 115, 116, 97, 105, 110, 101, 100, 32, 103, 108, 97, 115, 115, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 101, 100, 103, 101, 115, 61, 52, 48, 37, 39, 44, 32, 39, 115, 104, 97, 100, 105, 110, 103, 61, 48, 46, 50, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 112, 114, 101, 99, 105, 115, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 44, 10, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 116, 97, 105, 110, 101, 100, 32, 103, 108, 97, 115, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 50, 32, 97, 110, 100, 32, 116, 104, 105, 110, 45, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 105, 109, 61, 123, 49, 43, 105, 109, 125, 32, 45, 43, 32, 36, 105, 109, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 101, 49, 48, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 93, 32, 36, 105, 109, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 32, 45, 94, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 97, 114, 115, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 91, 37, 93, 62, 61, 48, 44, 95, 100, 101, 112, 116, 104, 62, 61, 48, 44, 95, 115, 105, 122, 101, 62, 48, 44, 95, 110, 98, 95, 98, 114, 97, 110, 99, 104, 101, 115, 62, 61, 49, 44, 48, 60, 61, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 60, 61, 49, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 82, 44, 95, 71, 44, 95, 66, 44, 95, 111, 112, 97, 99, 105, 116, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 115, 116, 97, 114, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 49, 48, 37, 39, 44, 32, 39, 100, 101, 112, 116, 104, 61, 49, 39, 44, 32, 39, 115, 105, 122, 101, 61, 51, 50, 39, 44, 32, 39, 110, 98, 95, 98, 114, 97, 110, 99, 104, 101, 115, 61, 53, 39, 44, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 48, 46, 51, 56, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 39, 44, 32, 39, 82, 61, 71, 61, 66, 61, 50, 48, 48, 39, 32, 97, 110, 100, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 115, 116, 97, 114, 115, 32, 44, 10, 115, 116, 97, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 53, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 46, 51, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 50, 48, 48, 125, 44, 36, 123, 56, 61, 36, 55, 125, 44, 36, 123, 57, 61, 36, 56, 125, 44, 36, 123, 49, 48, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 36, 49, 32, 114, 97, 110, 100, 111, 109, 32, 115, 116, 97, 114, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 50, 44, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 36, 52, 32, 98, 114, 97, 110, 99, 104, 101, 115, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 53, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 54, 44, 32, 99, 111, 108, 111, 114, 32, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 48, 46, 34, 10, 45, 118, 32, 45, 10, 45, 115, 116, 97, 114, 51, 100, 32, 36, 52, 44, 36, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 10, 45, 108, 91, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 123, 114, 111, 117, 110, 100, 40, 50, 42, 36, 51, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 50, 42, 36, 51, 41, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 48, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 51, 100, 91, 48, 93, 32, 48, 44, 48, 44, 49, 44, 57, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 52, 45, 45, 49, 93, 32, 48, 32, 45, 114, 50, 100, 121, 91, 45, 52, 45, 45, 49, 93, 32, 36, 51, 32, 45, 98, 91, 45, 52, 45, 45, 49, 93, 32, 36, 54, 44, 48, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 115, 104, 91, 123, 45, 49, 45, 36, 62, 125, 93, 32, 48, 44, 50, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 91, 45, 52, 45, 45, 49, 93, 32, 45, 108, 91, 36, 62, 44, 45, 52, 45, 45, 49, 93, 10, 78, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 104, 42, 36, 49, 44, 36, 49, 41, 47, 52, 44, 49, 44, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 50, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 49, 44, 49, 32, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 78, 59, 36, 78, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 52, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 112, 114, 105, 116, 101, 115, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 55, 53, 42, 64, 123, 48, 44, 119, 125, 125, 44, 123, 48, 46, 55, 53, 42, 64, 123, 48, 44, 104, 125, 125, 44, 123, 49, 48, 48, 48, 42, 36, 50, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 36, 49, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 107, 101, 116, 99, 104, 98, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 95, 110, 98, 95, 111, 114, 105, 101, 110, 116, 115, 62, 48, 44, 95, 115, 116, 97, 114, 116, 95, 97, 110, 103, 108, 101, 44, 95, 97, 110, 103, 108, 101, 95, 114, 97, 110, 103, 101, 62, 61, 48, 44, 95, 108, 101, 110, 103, 116, 104, 62, 61, 48, 44, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 61, 48, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 95, 111, 112, 97, 99, 105, 116, 121, 44, 95, 98, 103, 102, 97, 99, 116, 111, 114, 62, 61, 48, 44, 95, 100, 101, 110, 115, 105, 116, 121, 62, 48, 44, 95, 115, 104, 97, 114, 112, 110, 101, 115, 115, 62, 61, 48, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 99, 111, 104, 101, 114, 101, 110, 99, 101, 62, 61, 48, 44, 95, 105, 115, 95, 98, 111, 111, 115, 116, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 105, 115, 95, 99, 117, 114, 118, 101, 100, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 92, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 111, 114, 105, 101, 110, 116, 115, 61, 50, 39, 44, 32, 39, 115, 116, 97, 114, 116, 95, 97, 110, 103, 108, 101, 61, 52, 53, 39, 44, 32, 39, 97, 110, 103, 108, 101, 95, 114, 97, 110, 103, 101, 61, 49, 56, 48, 39, 44, 32, 39, 108, 101, 110, 103, 116, 104, 61, 51, 48, 39, 44, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 49, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 48, 51, 39, 44, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 103, 102, 97, 99, 116, 111, 114, 61, 48, 39, 44, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 54, 39, 44, 32, 39, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 46, 49, 39, 44, 32, 39, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 48, 46, 54, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 50, 53, 39, 44, 32, 39, 99, 111, 104, 101, 114, 101, 110, 99, 101, 61, 49, 39, 44, 32, 39, 105, 115, 95, 98, 111, 111, 115, 116, 61, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 99, 117, 114, 118, 101, 100, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 107, 101, 116, 99, 104, 98, 119, 32, 49, 32, 45, 45, 108, 111, 99, 97, 108, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 51, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 32, 45, 101, 110, 100, 108, 10, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 56, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 51, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 48, 46, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 57, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 48, 46, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 48, 46, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 49, 125, 62, 61, 48, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 52, 53, 125, 44, 36, 123, 54, 61, 48, 46, 48, 51, 125, 44, 36, 123, 49, 51, 61, 48, 125, 44, 36, 123, 49, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 10, 119, 61, 49, 32, 104, 61, 49, 32, 45, 105, 91, 48, 93, 32, 49, 32, 45, 109, 51, 100, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 47, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 105, 77, 44, 105, 109, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 110, 125, 44, 49, 10, 45, 105, 102, 32, 123, 36, 119, 33, 61, 119, 124, 124, 36, 104, 33, 61, 104, 125, 10, 45, 114, 109, 91, 48, 93, 32, 123, 36, 56, 42, 119, 42, 104, 47, 40, 36, 49, 42, 115, 113, 114, 116, 40, 36, 52, 41, 41, 125, 10, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 32, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 123, 64, 123, 45, 51, 44, 119, 125, 45, 49, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 108, 112, 104, 97, 61, 123, 40, 36, 50, 43, 36, 62, 42, 36, 51, 47, 36, 49, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 119, 125, 10, 120, 121, 61, 64, 123, 48, 44, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 48, 44, 40, 36, 62, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 53, 44, 40, 36, 120, 121, 41, 125, 43, 64, 123, 45, 51, 44, 40, 36, 120, 121, 41, 125, 60, 36, 53, 125, 32, 111, 112, 97, 99, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 111, 112, 97, 99, 61, 123, 36, 55, 42, 36, 54, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 111, 112, 97, 99, 10, 45, 45, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 91, 45, 49, 93, 32, 36, 120, 121, 44, 48, 44, 36, 52, 44, 48, 46, 56, 44, 48, 44, 48, 44, 49, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 111, 112, 97, 99, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 91, 45, 49, 93, 32, 36, 120, 121, 44, 48, 44, 36, 52, 44, 48, 46, 56, 44, 48, 44, 49, 44, 49, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 111, 112, 97, 99, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 108, 112, 104, 97, 61, 123, 40, 36, 50, 43, 36, 62, 42, 36, 51, 47, 36, 49, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 119, 125, 10, 120, 61, 64, 123, 48, 44, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 48, 44, 40, 36, 62, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 53, 44, 40, 36, 120, 44, 36, 121, 41, 125, 43, 64, 123, 45, 51, 44, 40, 36, 120, 44, 36, 121, 41, 125, 60, 36, 53, 125, 32, 111, 112, 97, 99, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 111, 112, 97, 99, 61, 123, 36, 55, 42, 36, 54, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 111, 112, 97, 99, 10, 45, 108, 105, 110, 101, 91, 45, 50, 93, 32, 123, 36, 120, 45, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 48, 41, 125, 125, 44, 123, 36, 121, 45, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 49, 41, 125, 125, 44, 92, 10, 123, 36, 120, 43, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 48, 41, 125, 125, 44, 123, 36, 121, 43, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 49, 41, 125, 125, 44, 92, 10, 123, 51, 42, 36, 111, 112, 97, 99, 125, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 52, 45, 45, 50, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 111, 110, 103, 101, 32, 58, 32, 95, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 112, 111, 110, 103, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 105, 122, 101, 61, 49, 51, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 112, 111, 110, 103, 101, 32, 44, 10, 115, 112, 111, 110, 103, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 112, 111, 110, 103, 101, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 114, 117, 115, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 95, 99, 105, 114, 99, 108, 101, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 37, 50, 61, 61, 48, 125, 32, 45, 105, 32, 50, 44, 50, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 46, 56, 53, 44, 48, 46, 56, 54, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 101, 110, 99, 105, 108, 32, 58, 32, 95, 114, 97, 100, 105, 117, 115, 91, 37, 93, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 116, 101, 110, 99, 105, 108, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 114, 97, 100, 105, 117, 115, 61, 51, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 116, 101, 110, 99, 105, 108, 32, 49, 44, 49, 48, 44, 51, 10, 115, 116, 101, 110, 99, 105, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 56, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 116, 101, 110, 99, 105, 108, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 98, 32, 36, 49, 32, 45, 117, 110, 115, 104, 97, 114, 112, 32, 123, 36, 49, 43, 36, 50, 125, 44, 49, 48, 48, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 95, 101, 100, 103, 101, 115, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 115, 116, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 101, 100, 103, 101, 115, 61, 49, 53, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 52, 48, 44, 52, 10, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 53, 125, 44, 36, 123, 50, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 115, 116, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 101, 100, 103, 101, 115, 91, 48, 93, 32, 36, 49, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 51, 44, 48, 44, 49, 32, 45, 98, 91, 48, 93, 32, 36, 50, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 48, 93, 32, 49, 48, 48, 48, 48, 48, 48, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 116, 114, 105, 115, 32, 58, 32, 95, 115, 99, 97, 108, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 116, 101, 116, 114, 105, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 99, 97, 108, 101, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 101, 116, 114, 105, 115, 32, 49, 48, 10, 116, 101, 116, 114, 105, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 101, 116, 114, 105, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 123, 115, 125, 32, 45, 114, 32, 36, 49, 37, 44, 36, 49, 37, 44, 36, 49, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 49, 48, 44, 49, 44, 48, 32, 45, 114, 32, 36, 119, 104, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 48, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 114, 104, 111, 108, 32, 58, 32, 95, 77, 62, 48, 44, 95, 78, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 99, 111, 108, 111, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 77, 120, 78, 32, 65, 110, 100, 121, 32, 87, 97, 114, 104, 111, 108, 45, 108, 105, 107, 101, 32, 97, 114, 116, 119, 111, 114, 107, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 77, 61, 51, 39, 44, 32, 39, 78, 61, 77, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 50, 39, 32, 97, 110, 100, 32, 39, 99, 111, 108, 111, 114, 61, 50, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 114, 104, 111, 108, 32, 53, 44, 51, 44, 51, 44, 52, 48, 10, 119, 97, 114, 104, 111, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 65, 110, 100, 121, 32, 87, 97, 114, 104, 111, 108, 45, 108, 105, 107, 101, 32, 97, 114, 116, 119, 111, 114, 107, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 114, 48, 61, 123, 49, 48, 48, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 114, 109, 32, 45, 98, 32, 36, 51, 32, 45, 114, 32, 36, 114, 48, 37, 44, 36, 114, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 54, 32, 45, 110, 32, 48, 44, 53, 32, 45, 114, 111, 117, 110, 100, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 40, 48, 44, 49, 44, 50, 44, 51, 44, 52, 44, 53, 41, 32, 45, 110, 91, 45, 49, 93, 32, 51, 50, 44, 50, 50, 52, 32, 54, 44, 49, 44, 49, 44, 50, 44, 49, 50, 56, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 52, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 94, 48, 93, 32, 36, 49, 44, 36, 50, 32, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 101, 97, 118, 101, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 48, 60, 61, 95, 116, 104, 105, 99, 107, 110, 101, 115, 115, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 115, 104, 97, 100, 111, 119, 60, 61, 49, 48, 48, 44, 95, 115, 104, 97, 100, 105, 110, 103, 62, 61, 48, 44, 95, 102, 105, 98, 101, 114, 115, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 102, 105, 98, 101, 114, 115, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 97, 110, 103, 108, 101, 44, 45, 49, 60, 61, 95, 120, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 60, 61, 49, 44, 45, 49, 60, 61, 95, 121, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 60, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 101, 97, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 110, 103, 108, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 48, -62, -80, 32, 124, 32, 49, 61, 50, 50, 46, 53, -62, -80, 32, 124, 32, 50, 61, 52, 53, -62, -80, 32, 124, 32, 51, 61, 54, 55, 46, 53, -62, -80, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 54, 39, 44, 32, 39, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 54, 53, 39, 44, 32, 39, 115, 104, 97, 100, 111, 119, 61, 52, 48, 39, 44, 32, 39, 115, 104, 97, 100, 105, 110, 103, 61, 48, 46, 53, 39, 44, 32, 39, 102, 105, 98, 101, 114, 115, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 48, 39, 44, 32, 39, 102, 105, 98, 101, 114, 115, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 120, 61, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 121, 61, 48, 39, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 101, 97, 118, 101, 32, 44, 10, 119, 101, 97, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 54, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 52, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 53, 125, 62, 61, 48, 34, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 51, 32, 38, 38, 32, 36, 123, 56, 61, 48, 125, 62, 61, 45, 49, 32, 38, 38, 32, 36, 56, 60, 61, 49, 32, 38, 38, 32, 36, 123, 57, 61, 48, 125, 62, 61, 45, 49, 32, 38, 38, 32, 36, 57, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 101, 97, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 116, 114, 105, 112, 115, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 115, 104, 97, 100, 111, 119, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 44, 32, 34, 92, 10, 34, 102, 105, 98, 101, 114, 115, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 53, 32, 97, 110, 100, 32, 102, 105, 98, 101, 114, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 54, 44, 32, 97, 110, 103, 108, 101, 32, 34, 123, 36, 55, 42, 50, 50, 46, 53, 125, 34, -62, -80, 32, 97, 110, 100, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 115, 32, 40, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 119, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 119, 44, 104, 41, 47, 36, 49, 44, 49, 44, 49, 41, 125, 32, 104, 61, 36, 119, 32, 115, 61, 123, 40, 49, 48, 48, 45, 36, 51, 41, 42, 50, 53, 53, 37, 125, 32, 112, 61, 123, 109, 97, 120, 40, 48, 46, 48, 49, 44, 36, 52, 41, 125, 10, 49, 44, 36, 104, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 48, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 112, 32, 45, 99, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 50, 42, 36, 119, 37, 41, 41, 125, 44, 49, 48, 48, 37, 10, 36, 119, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 112, 32, 45, 99, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 50, 42, 36, 104, 37, 41, 41, 125, 10, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 32, 45, 110, 91, 45, 52, 44, 45, 50, 93, 32, 48, 44, 36, 115, 32, 45, 110, 91, 45, 51, 44, 45, 49, 93, 32, 36, 115, 44, 50, 53, 53, 10, 123, 119, 125, 44, 49, 32, 49, 44, 91, 45, 51, 93, 32, 45, 114, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 54, 37, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 53, 44, 36, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 49, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 102, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 49, 93, 32, 99, 32, 45, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 97, 109, 112, 95, 120, 61, 123, 36, 56, 42, 40, 36, 119, 45, 119, 41, 47, 50, 125, 32, 97, 109, 112, 95, 121, 61, 123, 36, 57, 42, 40, 36, 119, 45, 119, 41, 47, 50, 125, 10, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 102, 91, 45, 52, 93, 32, 39, 105, 40, 120, 43, 36, 97, 109, 112, 95, 120, 42, 115, 105, 110, 40, 121, 47, 104, 42, 112, 105, 41, 44, 121, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 40, 120, 45, 36, 97, 109, 112, 95, 120, 42, 115, 105, 110, 40, 121, 47, 104, 42, 112, 105, 41, 44, 121, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 10, 45, 102, 91, 45, 51, 93, 32, 39, 105, 40, 120, 44, 121, 43, 36, 97, 109, 112, 95, 121, 42, 115, 105, 110, 40, 120, 47, 119, 42, 112, 105, 41, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 32, 45, 102, 91, 45, 50, 93, 32, 39, 105, 40, 120, 44, 121, 45, 36, 97, 109, 112, 95, 121, 42, 115, 105, 110, 40, 120, 47, 119, 42, 112, 105, 41, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 10, 45, 98, 108, 101, 110, 100, 91, 45, 52, 44, 45, 51, 93, 32, 97, 108, 112, 104, 97, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 32, 45, 99, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 50, 53, 53, 32, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 52, 44, 45, 50, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 91, 45, 49, 93, 32, 123, 36, 55, 42, 50, 50, 46, 53, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 104, 105, 114, 108, 115, 32, 58, 32, 95, 116, 101, 120, 116, 117, 114, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 100, 97, 114, 107, 110, 101, 115, 115, 62, 61, 48, 44, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 119, 104, 105, 114, 108, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 101, 120, 116, 117, 114, 101, 61, 51, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 54, 39, 44, 32, 39, 100, 97, 114, 107, 110, 101, 115, 115, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 108, 105, 103, 104, 116, 110, 101, 115, 115, 61, 49, 46, 56, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 104, 105, 114, 108, 115, 32, 44, 10, 119, 104, 105, 114, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 54, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 49, 46, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 119, 104, 105, 114, 108, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 101, 120, 116, 117, 114, 101, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 51, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 48, 46, 50, 32, 45, 100, 111, 110, 101, 10, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 87, 97, 114, 112, 105, 110, 103, 115, 10, 35, 64, 103, 109, 105, 99, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 58, 32, 95, 99, 120, 44, 95, 99, 121, 44, 95, 110, 62, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 44, 32, 39, 110, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 44, 10, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 40, 123, 34, 115, 113, 114, 116, 40, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 48, 125, 34, 44, 34, 64, 123, 45, 50, 44, 119, 125, 34, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 49, 125, 34, 44, 34, 64, 123, 45, 50, 44, 104, 125, 34, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 34, 125, 41, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 50, 125, 34, 42, 40, 120, 47, 119, 41, 94, 36, 51, 42, 99, 111, 115, 40, 121, 42, 50, 42, 112, 105, 47, 104, 41, 34, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 125, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 64, 123, 45, 50, 44, 50, 125, 34, 42, 40, 120, 47, 119, 41, 94, 36, 51, 42, 115, 105, 110, 40, 121, 42, 50, 42, 112, 105, 47, 104, 41, 34, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 45, 51, 44, 49, 125, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 102, 111, 114, 109, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 97, 110, 100, 111, 109, 32, 115, 109, 111, 111, 116, 104, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 101, 102, 111, 114, 109, 91, 48, 93, 32, 49, 48, 32, 45, 45, 100, 101, 102, 111, 114, 109, 91, 48, 93, 32, 50, 48, 10, 100, 101, 102, 111, 114, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 110, 100, 111, 109, 32, 115, 109, 111, 111, 116, 104, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 50, 37, 44, 50, 37, 44, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 53, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 115, 104, 101, 121, 101, 32, 58, 32, 95, 120, 44, 95, 121, 44, 48, 60, 61, 95, 114, 97, 100, 105, 117, 115, 60, 61, 49, 48, 48, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 53, 48, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 53, 48, 39, 32, 97, 110, 100, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 46, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 102, 105, 115, 104, 101, 121, 101, 32, 44, 10, 102, 105, 115, 104, 101, 121, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 125, 44, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 49, 46, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 70, 105, 115, 104, 45, 101, 121, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 97, 116, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 37, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 52, 46, 34, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 49, 37, 44, 36, 50, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 51, 37, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 45, 36, 49, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 49, 47, 49, 48, 48, 125, 59, 123, 45, 36, 49, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 49, 47, 49, 48, 48, 125, 94, 123, 45, 36, 50, 47, 49, 48, 48, 125, 44, 123, 45, 36, 50, 47, 49, 48, 48, 125, 59, 123, 49, 45, 36, 50, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 50, 47, 49, 48, 48, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 50, 44, 51, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 108, 111, 119, 101, 114, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 44, 95, 111, 102, 102, 115, 101, 116, 95, 114, 91, 37, 93, 44, 95, 97, 110, 103, 108, 101, 44, 95, 99, 120, 44, 95, 99, 121, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 102, 108, 111, 119, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 51, 48, 39, 44, 32, 39, 102, 114, 101, 113, 117, 101, 110, 99, 121, 61, 54, 39, 44, 32, 39, 111, 102, 102, 115, 101, 116, 95, 114, 61, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 44, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 102, 108, 111, 119, 101, 114, 32, 44, 10, 102, 108, 111, 119, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 54, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 53, 125, 44, 36, 123, 54, 61, 48, 46, 53, 125, 44, 36, 123, 55, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 108, 111, 119, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 44, 32, 111, 102, 102, 115, 101, 116, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 53, 44, 36, 54, 44, 49, 44, 36, 55, 32, 45, 115, 104, 105, 102, 116, 32, 36, 51, 44, 48, 44, 48, 44, 48, 44, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 32, 45, 47, 91, 45, 49, 93, 32, 123, 104, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 40, 123, 36, 52, 47, 51, 54, 48, 125, 41, 32, 45, 43, 91, 45, 50, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 54, 46, 50, 56, 51, 49, 56, 53, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 119, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 36, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 53, 44, 36, 54, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 95, 99, 120, 44, 95, 99, 121, 44, 95, 114, 97, 100, 105, 117, 115, 44, 95, 97, 110, 103, 108, 101, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 48, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 44, 10, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 48, 48, 125, 44, 36, 123, 52, 61, 51, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 36, 51, 37, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 36, 52, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 53, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 58, 32, 95, 119, 105, 100, 116, 104, 62, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 48, 44, 95, 114, 97, 100, 105, 117, 115, 44, 95, 100, 105, 108, 97, 116, 105, 111, 110, 62, 48, 44, 95, 102, 97, 100, 105, 110, 103, 62, 61, 48, 44, 95, 102, 97, 100, 105, 110, 103, 95, 112, 111, 119, 101, 114, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 77, 97, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 111, 110, 32, 97, 32, 115, 112, 104, 101, 114, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 119, 105, 100, 116, 104, 61, 104, 101, 105, 103, 104, 116, 61, 53, 49, 50, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 61, 49, 48, 48, 39, 44, 32, 39, 100, 105, 108, 97, 116, 105, 111, 110, 61, 48, 46, 53, 39, 44, 32, 39, 102, 97, 100, 105, 110, 103, 61, 48, 39, 32, 97, 110, 100, 32, 39, 102, 97, 100, 105, 110, 103, 95, 112, 111, 119, 101, 114, 61, 48, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 44, 10, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 48, 48, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 97, 112, 32, 105, 109, 97, 103, 101, 36, 63, 32, 111, 110, 32, 115, 112, 104, 101, 114, 101, 115, 32, 105, 110, 32, 36, 49, 120, 36, 50, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 44, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 36, 52, 32, 97, 110, 100, 32, 102, 97, 100, 105, 110, 103, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 114, 50, 61, 123, 40, 36, 51, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 50, 48, 48, 41, 94, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 32, 45, 97, 32, 121, 10, 40, 123, 45, 36, 49, 47, 50, 125, 44, 123, 36, 49, 47, 50, 125, 41, 32, 40, 123, 45, 36, 50, 47, 50, 125, 59, 123, 36, 50, 47, 50, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 51, 32, 45, 97, 116, 97, 110, 50, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 36, 49, 44, 36, 50, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 51, 32, 45, 47, 91, 45, 49, 93, 32, 36, 114, 50, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 97, 115, 105, 110, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 49, 41, 47, 40, 50, 42, 112, 105, 41, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 50, 47, 112, 105, 125, 32, 45, 94, 91, 45, 49, 93, 32, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 53, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 54, 32, 45, 99, 91, 45, 50, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 58, 32, 95, 99, 120, 44, 95, 99, 121, 44, 95, 110, 62, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 44, 32, 39, 110, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 44, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 91, 45, 49, 93, 32, 44, 10, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 40, 123, 34, 115, 113, 114, 116, 40, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 48, 125, 34, 44, 34, 64, 123, 45, 50, 44, 119, 125, 34, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 49, 125, 34, 44, 34, 64, 123, 45, 50, 44, 104, 125, 34, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 34, 125, 41, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 34, 119, 42, 40, 115, 113, 114, 116, 40, 40, 120, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 40, 121, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 47, 34, 64, 123, 45, 49, 44, 50, 125, 34, 41, 94, 40, 49, 47, 36, 51, 41, 34, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 34, 40, 97, 116, 97, 110, 50, 40, 121, 45, 34, 64, 123, 45, 50, 44, 49, 125, 34, 44, 120, 45, 34, 64, 123, 45, 50, 44, 48, 125, 34, 41, 42, 104, 47, 40, 50, 42, 112, 105, 41, 43, 104, 41, 37, 104, 34, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 119, 97, 118, 101, 108, 101, 110, 103, 116, 104, 62, 61, 48, 44, 95, 109, 101, 114, 103, 105, 110, 103, 95, 115, 116, 101, 112, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 32, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 56, 48, 39, 44, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 49, 39, 44, 32, 39, 119, 97, 118, 101, 108, 101, 110, 103, 116, 104, 61, 49, 39, 32, 97, 110, 100, 32, 39, 109, 101, 114, 103, 105, 110, 103, 95, 115, 116, 101, 112, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 44, 10, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 48, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 56, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 119, 97, 118, 101, 108, 101, 110, 103, 116, 104, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 109, 101, 114, 103, 105, 110, 103, 32, 115, 116, 101, 112, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 50, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 99, 111, 115, 40, 105, 41, 47, 40, 49, 43, 105, 47, 36, 51, 41, 39, 10, 45, 105, 102, 32, 36, 52, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 48, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 47, 91, 45, 50, 93, 32, 50, 32, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 119, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 49, 47, 40, 49, 101, 45, 53, 43, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 41, 125, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 105, 112, 112, 108, 101, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 44, 95, 115, 104, 97, 112, 101, 61, 123, 32, 48, 61, 98, 108, 111, 99, 32, 124, 32, 49, 61, 116, 114, 105, 97, 110, 103, 108, 101, 32, 124, 32, 50, 61, 115, 105, 110, 101, 32, 124, 32, 51, 61, 115, 105, 110, 101, 43, 32, 124, 32, 52, 61, 114, 97, 110, 100, 111, 109, 32, 125, 44, 95, 97, 110, 103, 108, 101, 44, 95, 111, 102, 102, 115, 101, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 114, 105, 112, 112, 108, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 39, 44, 32, 39, 102, 114, 101, 113, 117, 101, 110, 99, 121, 61, 49, 48, 39, 44, 32, 39, 115, 104, 97, 112, 101, 61, 50, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 111, 102, 102, 115, 101, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 105, 112, 112, 108, 101, 32, 44, 10, 114, 105, 112, 112, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 105, 112, 112, 108, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 44, 32, 115, 104, 97, 112, 101, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 32, 97, 110, 100, 32, 111, 102, 102, 115, 101, 116, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 10, 116, 104, 101, 116, 97, 61, 123, 36, 52, 42, 112, 105, 47, 49, 56, 48, 125, 32, 67, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 83, 61, 123, 45, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 120, 34, 32, 45, 45, 91, 45, 49, 93, 32, 123, 119, 47, 50, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 39, 10, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 45, 36, 53, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 83, 32, 45, 42, 91, 45, 49, 93, 32, 36, 67, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 114, 105, 112, 112, 108, 101, 36, 51, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 45, 42, 91, 45, 49, 93, 32, 123, 45, 36, 83, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 67, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 114, 105, 112, 112, 108, 101, 48, 32, 58, 32, 45, 102, 32, 123, 36, 49, 47, 50, 125, 42, 34, 40, 49, 45, 50, 42, 40, 105, 37, 34, 123, 50, 42, 36, 50, 125, 34, 60, 36, 50, 41, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 49, 32, 58, 32, 45, 102, 32, 34, 73, 61, 40, 105, 37, 36, 50, 41, 47, 36, 50, 59, 36, 49, 42, 40, 50, 42, 105, 102, 40, 73, 60, 48, 46, 53, 44, 73, 44, 49, 45, 73, 41, 45, 48, 46, 53, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 50, 32, 58, 32, 45, 102, 32, 123, 45, 36, 49, 47, 50, 125, 42, 34, 99, 111, 115, 40, 105, 42, 34, 123, 50, 42, 112, 105, 47, 36, 50, 125, 34, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 51, 32, 58, 32, 45, 102, 32, 123, 45, 36, 49, 47, 50, 125, 42, 34, 97, 98, 115, 40, 99, 111, 115, 40, 105, 42, 34, 123, 50, 42, 112, 105, 47, 36, 50, 125, 34, 41, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 52, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 42, 32, 45, 110, 32, 48, 44, 123, 104, 45, 49, 125, 32, 49, 44, 123, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 49, 47, 50, 125, 44, 123, 36, 49, 47, 50, 125, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 98, 91, 45, 49, 93, 32, 123, 36, 50, 47, 49, 48, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 95, 99, 120, 44, 95, 99, 121, 44, 95, 116, 105, 108, 101, 115, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 97, 108, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 120, 61, 99, 121, 61, 53, 48, 37, 39, 44, 32, 39, 116, 105, 108, 101, 115, 61, 49, 48, 39, 44, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 44, 10, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 53, 61, 49, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 97, 108, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 36, 51, 32, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 51, 54, 48, 47, 36, 51, 125, 44, 49, 44, 36, 53, 44, 36, 49, 44, 36, 50, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 36, 52, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 32, 95, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 97, 110, 103, 108, 101, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 44, 95, 105, 115, 95, 97, 110, 116, 105, 115, 121, 109, 109, 101, 116, 114, 121, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 115, 119, 97, 112, 95, 115, 105, 100, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 114, 101, 103, 97, 114, 100, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 120, 105, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 61, 121, 61, 53, 48, 37, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 57, 48, 39, 44, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 44, 32, 39, 105, 115, 95, 97, 110, 116, 105, 115, 121, 109, 109, 101, 116, 114, 121, 61, 48, 39, 32, 97, 110, 100, 32, 39, 115, 119, 97, 112, 95, 115, 105, 100, 101, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 52, 53, 32, 45, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 45, 52, 53, 10, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 51, 61, 57, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 114, 101, 103, 97, 114, 100, 105, 110, 103, 32, 97, 120, 105, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, -62, -80, 41, 46, 34, 10, 45, 118, 32, 45, 10, 116, 104, 101, 116, 97, 61, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 125, 32, 117, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 118, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 105, 102, 32, 36, 54, 32, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 61, 65, 60, 48, 32, 45, 101, 108, 115, 101, 32, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 61, 65, 62, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 36, 49, 44, 36, 49, 41, 125, 10, 121, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 102, 32, 39, 65, 61, 40, 36, 121, 48, 45, 121, 41, 42, 36, 117, 45, 40, 36, 120, 48, 45, 120, 41, 42, 36, 118, 59, 88, 61, 120, 43, 50, 42, 40, 36, 120, 48, 45, 120, 41, 59, 89, 61, 121, 43, 50, 42, 40, 36, 121, 48, 45, 121, 41, 59, 105, 102, 40, 36, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 49, 44, 36, 52, 41, 44, 105, 41, 39, 10, 45, 101, 108, 115, 101, 32, 45, 102, 32, 39, 65, 61, 40, 36, 121, 48, 45, 121, 41, 42, 36, 117, 45, 40, 36, 120, 48, 45, 120, 41, 42, 36, 118, 59, 88, 61, 120, 45, 50, 42, 36, 118, 42, 65, 59, 89, 61, 121, 43, 50, 42, 36, 117, 42, 65, 59, 105, 102, 40, 36, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 49, 44, 36, 52, 41, 44, 105, 41, 39, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 58, 32, 34, 101, 120, 112, 114, 95, 114, 97, 100, 105, 117, 115, 34, 44, 95, 34, 101, 120, 112, 114, 95, 97, 110, 103, 108, 101, 34, 44, 95, 120, 95, 99, 101, 110, 116, 101, 114, 44, 95, 121, 95, 99, 101, 110, 116, 101, 114, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 117, 115, 101, 114, 45, 100, 101, 102, 105, 110, 101, 100, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 112, 111, 108, 97, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 101, 120, 112, 114, 95, 114, 97, 100, 105, 117, 115, 61, 82, 45, 114, 39, 44, 32, 39, 101, 120, 112, 114, 95, 114, 97, 110, 103, 108, 101, 61, 97, 39, 44, 32, 39, 120, 95, 99, 101, 110, 116, 101, 114, 61, 121, 95, 99, 101, 110, 116, 101, 114, 61, 53, 48, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 91, 48, 93, 32, 82, 42, 40, 114, 47, 82, 41, 94, 50, 44, 97, 32, 45, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 91, 48, 93, 32, 114, 44, 50, 42, 97, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 82, 45, 114, 125, 34, 44, 34, 36, 123, 50, 61, 97, 125, 34, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 117, 115, 116, 111, 109, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 119, 105, 116, 104, 32, 39, 110, 101, 119, 95, 114, 32, 61, 32, 36, 49, 39, 44, 32, 39, 110, 101, 119, 95, 97, 32, 61, 32, 36, 50, 39, 44, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 97, 116, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 82, 61, 123, 34, 115, 113, 114, 116, 40, 40, 109, 97, 120, 40, 36, 51, 44, 49, 48, 48, 45, 36, 51, 41, 42, 119, 47, 49, 48, 48, 41, 94, 50, 32, 43, 32, 40, 109, 97, 120, 40, 36, 52, 44, 49, 48, 48, 45, 36, 52, 41, 42, 104, 47, 49, 48, 48, 41, 94, 50, 41, 34, 125, 10, 119, 61, 123, 34, 36, 51, 42, 119, 47, 49, 48, 48, 34, 125, 10, 104, 61, 123, 34, 36, 52, 42, 104, 47, 49, 48, 48, 34, 125, 10, 45, 102, 32, 34, 82, 32, 61, 34, 36, 82, 34, 59, 10, 114, 32, 61, 32, 115, 113, 114, 116, 40, 40, 120, 45, 34, 36, 119, 34, 41, 94, 50, 32, 43, 32, 40, 121, 45, 34, 36, 104, 34, 41, 94, 50, 41, 59, 10, 97, 32, 61, 32, 97, 116, 97, 110, 50, 40, 121, 45, 34, 36, 104, 34, 44, 120, 45, 34, 36, 119, 34, 41, 59, 10, 110, 114, 32, 61, 32, 36, 49, 59, 10, 110, 97, 32, 61, 32, 36, 50, 59, 10, 105, 40, 34, 36, 119, 34, 32, 43, 32, 110, 114, 42, 99, 111, 115, 40, 110, 97, 41, 44, 32, 34, 36, 104, 34, 32, 43, 32, 110, 114, 42, 115, 105, 110, 40, 110, 97, 41, 44, 32, 122, 44, 32, 99, 44, 32, 49, 44, 36, 53, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 119, 105, 114, 108, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 99, 120, 44, 95, 99, 121, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 116, 119, 105, 114, 108, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 39, 44, 32, 39, 99, 120, 61, 99, 121, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 119, 105, 114, 108, 32, 48, 46, 54, 10, 116, 119, 105, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 119, 105, 114, 108, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 97, 116, 32, 40, 36, 50, 37, 44, 36, 51, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 49, 44, 36, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 49, 44, 36, 49, 42, 120, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 45, 49, 44, 48, 32, 45, 119, 97, 114, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 49, 44, 49, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 32, 95, 120, 45, 97, 110, 103, 108, 101, 44, 95, 121, 45, 97, 110, 103, 108, 101, 44, 95, 122, 111, 111, 109, 62, 48, 44, 95, 120, 45, 99, 101, 110, 116, 101, 114, 44, 95, 121, 45, 99, 101, 110, 116, 101, 114, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 97, 114, 112, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 120, 45, 97, 110, 103, 108, 101, 61, 49, 46, 53, 39, 44, 32, 39, 121, 45, 97, 110, 103, 108, 101, 61, 48, 39, 44, 32, 39, 122, 111, 111, 109, 61, 49, 39, 44, 32, 39, 120, 45, 99, 101, 110, 116, 101, 114, 61, 121, 45, 99, 101, 110, 116, 101, 114, 61, 53, 48, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 44, 10, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 46, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 53, 48, 125, 44, 36, 123, 54, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 119, 97, 114, 112, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 115, 32, 40, 36, 49, -62, -80, 44, 36, 50, -62, -80, 41, 44, 32, 122, 111, 111, 109, 32, 36, 51, 32, 97, 110, 100, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 48, 44, 49, 48, 48, 41, 32, 45, 45, 91, 45, 49, 93, 32, 36, 52, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 40, 48, 59, 49, 48, 48, 41, 32, 45, 45, 91, 45, 49, 93, 32, 36, 53, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 51, 10, 45, 45, 42, 91, 45, 50, 93, 32, 36, 50, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 36, 51, 32, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 50, 93, 32, 49, 48, 48, 32, 45, 43, 91, 45, 50, 93, 32, 36, 52, 32, 45, 47, 91, 45, 50, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 50, 93, 32, 64, 123, 45, 51, 44, 119, 125, 10, 45, 42, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 53, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 45, 51, 44, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 116, 101, 114, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 46, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 116, 101, 114, 32, 44, 10, 119, 97, 116, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 49, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 50, 53, 37, 44, 50, 53, 37, 44, 50, 53, 37, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 122, 32, 45, 43, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 51, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 118, 101, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 62, 61, 48, 44, 95, 99, 101, 110, 116, 101, 114, 95, 120, 44, 95, 99, 101, 110, 116, 101, 114, 95, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 97, 118, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 52, 39, 44, 32, 39, 102, 114, 101, 113, 117, 101, 110, 99, 121, 61, 48, 46, 52, 39, 32, 97, 110, 100, 32, 39, 99, 101, 110, 116, 101, 114, 95, 120, 61, 99, 101, 110, 116, 101, 114, 95, 121, 61, 53, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 118, 101, 32, 44, 10, 119, 97, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 46, 52, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 118, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 97, 116, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 51, 37, 44, 36, 52, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 105, 110, 100, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 97, 110, 103, 108, 101, 44, 48, 60, 61, 95, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 60, 61, 49, 44, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 119, 105, 110, 100, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 50, 48, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 48, 39, 44, 32, 39, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 61, 48, 46, 55, 39, 32, 97, 110, 100, 32, 39, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 50, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 105, 110, 100, 32, 44, 10, 119, 105, 110, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 50, 61, 48, 125, 44, 36, 123, 52, 61, 50, 48, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 105, 110, 100, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 97, 110, 103, 108, 101, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 52, 53, 41, 42, 52, 53, 125, 34, 32, 100, 101, 103, 46, 44, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 51, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 100, 120, 100, 121, 61, 64, 123, 45, 95, 119, 105, 110, 100, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 52, 53, 41, 37, 56, 125, 125, 10, 102, 97, 99, 116, 61, 123, 40, 49, 45, 36, 51, 41, 94, 40, 49, 47, 36, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 10, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 36, 100, 120, 100, 121, 44, 48, 44, 48, 44, 48, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 102, 97, 99, 116, 10, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 44, 36, 115, 117, 109, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 119, 105, 110, 100, 48, 32, 58, 32, 45, 117, 32, 49, 44, 48, 10, 95, 119, 105, 110, 100, 49, 32, 58, 32, 45, 117, 32, 49, 44, 49, 10, 95, 119, 105, 110, 100, 50, 32, 58, 32, 45, 117, 32, 48, 44, 49, 10, 95, 119, 105, 110, 100, 51, 32, 58, 32, 45, 117, 32, 45, 49, 44, 49, 10, 95, 119, 105, 110, 100, 52, 32, 58, 32, 45, 117, 32, 45, 49, 44, 48, 10, 95, 119, 105, 110, 100, 53, 32, 58, 32, 45, 117, 32, 45, 49, 44, 45, 49, 10, 95, 119, 105, 110, 100, 54, 32, 58, 32, 45, 117, 32, 48, 44, 45, 49, 10, 95, 119, 105, 110, 100, 55, 32, 58, 32, 45, 117, 32, 49, 44, 45, 49, 10, 35, 64, 103, 109, 105, 99, 32, 122, 111, 111, 109, 32, 58, 32, 95, 102, 97, 99, 116, 111, 114, 44, 95, 99, 120, 44, 95, 99, 121, 44, 95, 99, 122, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 61, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 112, 112, 108, 121, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 102, 97, 99, 116, 111, 114, 61, 49, 39, 44, 32, 39, 99, 120, 61, 99, 121, 61, 99, 122, 61, 48, 46, 53, 39, 32, 97, 110, 100, 32, 39, 98, 111, 117, 110, 100, 97, 114, 121, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 122, 111, 111, 109, 91, 48, 93, 32, 48, 46, 54, 32, 45, 45, 122, 111, 111, 109, 91, 48, 93, 32, 49, 46, 53, 10, 122, 111, 111, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 122, 111, 111, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 97, 99, 116, 111, 114, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 40, 123, 40, 119, 45, 49, 41, 42, 36, 50, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 44, 123, 40, 119, 45, 49, 41, 42, 40, 36, 50, 43, 40, 49, 45, 36, 50, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 36, 51, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 59, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 40, 36, 51, 43, 40, 49, 45, 36, 51, 41, 47, 36, 49, 41, 125, 41, 10, 45, 114, 91, 45, 50, 45, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 115, 101, 10, 40, 123, 40, 119, 45, 49, 41, 42, 36, 50, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 44, 123, 40, 119, 45, 49, 41, 42, 40, 36, 50, 43, 40, 49, 45, 36, 50, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 36, 51, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 59, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 40, 36, 51, 43, 40, 49, 45, 36, 51, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 51, 44, 100, 125, 45, 49, 41, 42, 36, 52, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 47, 123, 40, 64, 123, 45, 51, 44, 100, 125, 45, 49, 41, 42, 40, 36, 52, 43, 40, 49, 45, 36, 52, 41, 47, 36, 49, 41, 125, 41, 10, 45, 114, 91, 45, 51, 45, 45, 49, 93, 32, 91, 45, 52, 93, 44, 91, 45, 52, 93, 44, 91, 45, 52, 93, 44, 49, 44, 51, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 68, 101, 103, 114, 97, 100, 97, 116, 105, 111, 110, 115, 10, 35, 64, 103, 109, 105, 99, 32, 99, 114, 97, 99, 107, 115, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 61, 48, 44, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 95, 114, 101, 108, 105, 101, 102, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 99, 114, 97, 99, 107, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 48, 46, 50, 39, 44, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 52, 48, 39, 32, 97, 110, 100, 32, 39, 114, 101, 108, 105, 101, 102, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 99, 114, 97, 99, 107, 115, 32, 48, 46, 50, 44, 54, 48, 44, 49, 10, 99, 114, 97, 99, 107, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 52, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 99, 114, 97, 99, 107, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 105, 109, 125, 44, 123, 105, 77, 125, 41, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 48, 48, 48, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 49, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 58, 32, 95, 100, 101, 110, 115, 105, 116, 121, 62, 48, 44, 95, 100, 97, 114, 107, 110, 101, 115, 115, 62, 61, 48, 44, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 108, 105, 103, 104, 116, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 101, 110, 115, 105, 116, 121, 61, 49, 48, 39, 44, 32, 39, 100, 97, 114, 107, 110, 101, 115, 115, 61, 48, 46, 57, 39, 32, 97, 110, 100, 32, 39, 108, 105, 103, 104, 116, 110, 101, 115, 115, 61, 49, 46, 55, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 50, 48, 44, 48, 46, 57, 44, 52, 10, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 48, 46, 57, 125, 44, 36, 123, 51, 61, 49, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 108, 105, 103, 104, 116, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 36, 49, 44, 36, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 52, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 110, 111, 105, 115, 101, 95, 104, 117, 114, 108, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 104, 117, 114, 108, 32, 110, 111, 105, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 110, 111, 105, 115, 101, 95, 104, 117, 114, 108, 32, 44, 10, 110, 111, 105, 115, 101, 95, 104, 117, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 104, 117, 114, 108, 32, 110, 111, 105, 115, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 37, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 102, 32, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 32, 45, 110, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 109, 125, 44, 64, 123, 45, 50, 44, 77, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 120, 101, 108, 105, 122, 101, 32, 58, 32, 95, 115, 99, 97, 108, 101, 95, 120, 62, 48, 44, 95, 115, 99, 97, 108, 101, 95, 121, 62, 48, 44, 95, 115, 99, 97, 108, 101, 95, 122, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 105, 120, 101, 108, 105, 122, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 99, 97, 108, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 99, 97, 108, 101, 95, 120, 61, 50, 48, 39, 32, 97, 110, 100, 32, 39, 115, 99, 97, 108, 101, 95, 121, 61, 115, 99, 97, 108, 101, 95, 122, 61, 115, 99, 97, 108, 101, 95, 120, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 105, 120, 101, 108, 105, 122, 101, 32, 44, 10, 112, 105, 120, 101, 108, 105, 122, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 80, 105, 120, 101, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 115, 32, 40, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 32, 36, 119, 104, 100, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 58, 32, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 62, 61, 48, 44, 95, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 123, 32, 48, 61, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 124, 32, 49, 61, 118, 101, 114, 116, 105, 99, 97, 108, 32, 125, 44, 95, 100, 97, 114, 107, 110, 101, 115, 115, 62, 61, 48, 44, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 115, 104, 97, 100, 101, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 102, 114, 101, 113, 117, 101, 110, 99, 121, 61, 53, 39, 44, 32, 39, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 49, 39, 44, 32, 39, 100, 97, 114, 107, 110, 101, 115, 115, 61, 48, 46, 56, 39, 32, 97, 110, 100, 32, 39, 108, 105, 103, 104, 116, 110, 101, 115, 115, 61, 50, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 51, 48, 10, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 46, 56, 125, 44, 36, 123, 52, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 118, 101, 114, 116, 105, 99, 97, 108, 44, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 125, 34, 32, 115, 104, 97, 100, 101, 100, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 49, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 123, 109, 97, 120, 40, 49, 44, 119, 42, 40, 36, 50, 33, 61, 48, 41, 41, 125, 44, 123, 109, 97, 120, 40, 49, 44, 104, 42, 40, 36, 50, 61, 61, 48, 41, 41, 125, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 58, 32, 95, 111, 112, 97, 99, 105, 116, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 115, 104, 97, 100, 111, 119, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 55, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 48, 46, 52, 10, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 104, 97, 100, 111, 119, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 50, 44, 45, 50, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 51, 44, 48, 46, 51, 44, 56, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 51, 37, 44, 49, 53, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 110, 91, 45, 49, 93, 32, 36, 49, 44, 49, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 112, 114, 101, 97, 100, 32, 58, 32, 95, 100, 120, 62, 61, 48, 44, 95, 100, 121, 62, 61, 48, 44, 95, 100, 122, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 114, 97, 110, 100, 111, 109, 108, 121, 32, 97, 108, 111, 110, 103, 32, 120, 44, 121, 32, 97, 110, 100, 32, 122, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 100, 120, 61, 51, 39, 44, 32, 39, 100, 121, 61, 100, 120, 39, 32, 97, 110, 100, 32, 39, 100, 122, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 112, 114, 101, 97, 100, 32, 51, 10, 115, 112, 114, 101, 97, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 114, 101, 97, 100, 32, 112, 105, 120, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 114, 97, 110, 100, 111, 109, 108, 121, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 49, 125, 44, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 50, 125, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 51, 125, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 58, 32, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 102, 114, 101, 113, 117, 101, 110, 99, 121, 61, 49, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 44, 10, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 49, 93, 32, 48, 46, 49, 53, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 58, 32, 95, 97, 109, 112, 108, 105, 116, 117, 100, 101, 62, 61, 48, 44, 95, 102, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 62, 61, 48, 44, 95, 101, 109, 98, 111, 115, 115, 95, 108, 101, 118, 101, 108, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 112, 97, 105, 110, 116, 32, 99, 97, 110, 118, 97, 115, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 50, 48, 39, 44, 32, 39, 102, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 61, 51, 39, 32, 97, 110, 100, 32, 39, 101, 109, 98, 111, 115, 115, 95, 108, 101, 118, 101, 108, 61, 48, 46, 54, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 44, 10, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 56, 48, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 99, 97, 110, 118, 97, 115, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 101, 109, 98, 111, 115, 115, 32, 108, 101, 118, 101, 108, 32, 36, 51, 46, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 50, 93, 32, 36, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 43, 32, 45, 110, 91, 45, 50, 93, 32, 36, 51, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 56, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 49, 44, 36, 49, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 112, 97, 112, 101, 114, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 10, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 112, 97, 112, 101, 114, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 45, 49, 93, 32, 51, 48, 37, 44, 51, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 48, 32, 45, 105, 102, 102, 116, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 46, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 58, 32, 95, 115, 116, 114, 101, 110, 103, 116, 104, 62, 61, 48, 44, 48, 60, 61, 95, 114, 97, 100, 105, 117, 115, 95, 109, 105, 110, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 114, 97, 100, 105, 117, 115, 95, 109, 97, 120, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 114, 101, 110, 103, 116, 104, 61, 49, 48, 48, 39, 44, 32, 39, 114, 97, 100, 105, 117, 115, 95, 109, 105, 110, 61, 55, 48, 39, 32, 97, 110, 100, 32, 39, 114, 97, 100, 105, 117, 115, 95, 109, 97, 120, 61, 57, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 44, 10, 118, 105, 103, 110, 101, 116, 116, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 55, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 57, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 36, 49, 32, 97, 110, 100, 32, 115, 105, 122, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 100, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 36, 100, 44, 36, 100, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 50, 10, 45, 99, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 51, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 49, 32, 45, 45, 32, 45, 99, 32, 36, 109, 77, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 58, 32, 95, 116, 101, 120, 116, 44, 48, 60, 95, 111, 112, 97, 99, 105, 116, 121, 60, 49, 44, 95, 115, 105, 122, 101, 62, 48, 44, 95, 97, 110, 103, 108, 101, 44, 95, 109, 111, 100, 101, 61, 123, 32, 48, 61, 114, 101, 109, 111, 118, 101, 32, 124, 32, 49, 61, 97, 100, 100, 32, 125, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 100, 100, 32, 111, 114, 32, 114, 101, 109, 111, 118, 101, 32, 97, 32, 118, 105, 115, 105, 98, 108, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 111, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 109, 117, 115, 116, 32, 98, 101, 32, 91, 48, 44, 50, 53, 53, 93, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 101, 120, 116, 61, 40, 67, 41, 32, 71, 39, 77, 73, 67, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 51, 39, 44, 32, 39, 115, 105, 122, 101, 61, 53, 55, 39, 44, 32, 39, 97, 110, 103, 108, 101, 61, 50, 53, 39, 44, 32, 39, 109, 111, 100, 101, 61, 49, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 44, 48, 46, 55, 10, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 92, 50, 53, 49, 92, 32, 71, 39, 77, 73, 67, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 51, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 49, 32, 38, 38, 32, 36, 123, 51, 61, 53, 55, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 53, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 53, 44, 65, 100, 100, 44, 82, 101, 109, 111, 118, 101, 125, 34, 32, 118, 105, 115, 105, 98, 108, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 44, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 51, 44, 49, 44, 50, 53, 53, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 53, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 50, 125, 32, 45, 43, 10, 45, 101, 108, 115, 101, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 32, 45, 47, 32, 123, 49, 45, 36, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 66, 108, 101, 110, 100, 105, 110, 103, 32, 97, 110, 100, 32, 102, 97, 100, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 101, 110, 100, 32, 58, 32, 98, 108, 101, 110, 100, 105, 110, 103, 95, 109, 111, 100, 101, 44, 48, 60, 61, 95, 111, 112, 97, 99, 105, 116, 121, 60, 61, 49, 44, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 95, 111, 114, 100, 101, 114, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 115, 44, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 98, 108, 101, 110, 100, 105, 110, 103, 95, 109, 111, 100, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 97, 100, 100, 32, 124, 32, 97, 108, 112, 104, 97, 32, 124, 32, 97, 110, 100, 32, 124, 32, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 98, 108, 117, 101, 32, 124, 32, 98, 117, 114, 110, 32, 124, 32, 100, 97, 114, 107, 101, 110, 32, 124, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 124, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 100, 105, 118, 105, 100, 101, 32, 124, 32, 100, 111, 100, 103, 101, 32, 124, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 124, 32, 102, 114, 101, 101, 122, 101, 32, 124, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 124, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 124, 32, 103, 114, 101, 101, 110, 32, 124, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 124, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 104, 97, 114, 100, 109, 105, 120, 32, 124, 32, 104, 117, 101, 32, 124, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 124, 32, 108, 105, 103, 104, 116, 101, 110, 32, 124, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 124, 32, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 32, 124, 32, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 32, 124, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 124, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 124, 32, 110, 101, 103, 97, 116, 105, 111, 110, 32, 124, 32, 111, 114, 32, 124, 32, 111, 118, 101, 114, 108, 97, 121, 32, 124, 32, 112, 105, 110, 108, 105, 103, 104, 116, 32, 124, 32, 114, 101, 100, 32, 124, 32, 114, 101, 102, 108, 101, 99, 116, 32, 124, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 124, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 115, 99, 114, 101, 101, 110, 32, 124, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 124, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 124, 32, 115, 111, 102, 116, 98, 117, 114, 110, 32, 124, 32, 115, 111, 102, 116, 100, 111, 100, 103, 101, 32, 124, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 124, 32, 115, 116, 97, 109, 112, 32, 124, 32, 115, 117, 98, 116, 114, 97, 99, 116, 32, 124, 32, 118, 97, 108, 117, 101, 32, 124, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 32, 124, 32, 120, 111, 114, 32, 125, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 98, 108, 101, 110, 100, 105, 110, 103, 95, 109, 111, 100, 101, 61, 97, 108, 112, 104, 97, 39, 44, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 49, 39, 32, 97, 110, 100, 32, 39, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 44, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 50, 48, 32, 45, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 32, 45, 100, 114, 103, 98, 97, 91, 45, 50, 93, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 97, 100, 100, 44, 97, 108, 112, 104, 97, 44, 97, 110, 100, 44, 97, 118, 101, 114, 97, 103, 101, 44, 98, 108, 117, 101, 44, 98, 117, 114, 110, 44, 100, 97, 114, 107, 101, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 100, 105, 118, 105, 100, 101, 44, 100, 111, 100, 103, 101, 44, 101, 120, 99, 108, 117, 115, 105, 111, 110, 44, 102, 114, 101, 101, 122, 101, 44, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 44, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 103, 114, 101, 101, 110, 44, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 104, 97, 114, 100, 109, 105, 120, 44, 104, 117, 101, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 108, 105, 103, 104, 116, 101, 110, 44, 108, 105, 103, 104, 116, 110, 101, 115, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 44, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 44, 108, 117, 109, 105, 110, 97, 110, 99, 101, 44, 109, 117, 108, 116, 105, 112, 108, 121, 44, 110, 101, 103, 97, 116, 105, 111, 110, 44, 111, 114, 44, 111, 118, 101, 114, 108, 97, 121, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 112, 105, 110, 108, 105, 103, 104, 116, 44, 114, 101, 100, 44, 114, 101, 102, 108, 101, 99, 116, 44, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 115, 99, 114, 101, 101, 110, 44, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 115, 111, 102, 116, 98, 117, 114, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 109, 32, 34, 101, 120, 32, 58, 32, 36, 34, 34, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 34, 34, 35, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 77, 111, 100, 101, 58, 92, 34, 32, 92, 34, 36, 123, 97, 114, 103, 123, 36, 62, 43, 49, 125, 125, 44, 50, 44, 50, 44, 50, 52, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 34, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 120, 32, 115, 111, 102, 116, 100, 111, 100, 103, 101, 44, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 115, 116, 97, 109, 112, 44, 115, 117, 98, 116, 114, 97, 99, 116, 44, 118, 97, 108, 117, 101, 44, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 44, 120, 111, 114, 10, 98, 108, 101, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 108, 112, 104, 97, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 118, 32, 45, 32, 115, 48, 61, 34, 34, 32, 115, 49, 61, 34, 40, 114, 101, 118, 101, 114, 116, 101, 100, 32, 108, 97, 121, 101, 114, 115, 41, 32, 34, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 39, 36, 49, 39, 32, 109, 111, 100, 101, 32, 34, 36, 123, 115, 123, 36, 51, 33, 61, 48, 125, 125, 34, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 99, 111, 100, 101, 61, 64, 123, 45, 95, 98, 108, 101, 110, 100, 95, 36, 49, 125, 10, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 50, 93, 32, 34, 85, 110, 107, 110, 111, 119, 110, 32, 98, 108, 101, 110, 100, 105, 110, 103, 32, 109, 111, 100, 101, 32, 39, 36, 49, 39, 32, 114, 101, 113, 117, 101, 115, 116, 101, 100, 46, 34, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 115, 61, 123, 115, 48, 61, 105, 102, 40, 64, 123, 48, 44, 115, 125, 60, 51, 44, 49, 44, 51, 41, 59, 115, 49, 61, 105, 102, 40, 115, 60, 51, 44, 49, 44, 51, 41, 59, 109, 97, 120, 40, 115, 48, 44, 115, 49, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 36, 115, 43, 49, 45, 40, 64, 123, 48, 44, 115, 125, 37, 50, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 49, 93, 32, 123, 36, 115, 43, 49, 45, 40, 115, 37, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 115, 125, 61, 61, 50, 124, 124, 64, 123, 48, 44, 115, 125, 61, 61, 52, 125, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 124, 124, 115, 61, 61, 52, 125, 10, 45, 115, 104, 91, 48, 44, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 95, 98, 108, 101, 110, 100, 91, 50, 44, 51, 93, 32, 36, 99, 111, 100, 101, 32, 45, 114, 109, 91, 50, 44, 51, 93, 10, 45, 105, 102, 32, 123, 36, 49, 39, 61, 61, 39, 97, 108, 112, 104, 97, 125, 10, 45, 115, 104, 91, 48, 44, 49, 93, 32, 48, 44, 123, 64, 123, 48, 44, 115, 125, 45, 50, 125, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 42, 91, 50, 44, 52, 93, 32, 45, 42, 91, 51, 44, 52, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 49, 48, 48, 37, 32, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 51, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 51, 93, 10, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 49, 44, 50, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 43, 91, 50, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 49, 44, 50, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 106, 91, 48, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 51, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 123, 64, 123, 48, 44, 115, 125, 45, 50, 125, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 95, 98, 108, 101, 110, 100, 91, 49, 44, 50, 93, 32, 36, 99, 111, 100, 101, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 124, 124, 115, 61, 61, 52, 125, 10, 45, 115, 104, 91, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 95, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 36, 99, 111, 100, 101, 32, 45, 114, 109, 91, 50, 93, 10, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 108, 115, 101, 10, 45, 95, 98, 108, 101, 110, 100, 32, 36, 99, 111, 100, 101, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 98, 108, 101, 110, 100, 32, 58, 32, 36, 42, 10, 95, 98, 108, 101, 110, 100, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 117, 32, 34, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 110, 100, 32, 58, 10, 45, 117, 32, 34, 45, 97, 110, 100, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 100, 100, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 47, 91, 49, 93, 32, 50, 34, 10, 95, 98, 108, 101, 110, 100, 95, 98, 108, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 48, 44, 49, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 91, 49, 93, 32, 49, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 109, 105, 110, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 97, 98, 115, 91, 49, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 94, 91, 49, 93, 32, 45, 49, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 49, 93, 32, 45, 49, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 43, 91, 49, 44, 50, 93, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 45, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 48, 46, 49, 32, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 115, 113, 114, 91, 50, 93, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 91, 49, 93, 32, 49, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 101, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 32, 45, 106, 91, 49, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 50, 55, 46, 53, 32, 45, 45, 43, 91, 48, 44, 49, 93, 32, 45, 42, 91, 51, 93, 32, 50, 32, 45, 45, 91, 51, 93, 32, 50, 53, 53, 32, 45, 45, 91, 51, 93, 32, 91, 50, 93, 32, 45, 103, 116, 91, 49, 93, 32, 49, 50, 56, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 97, 114, 100, 109, 105, 120, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 101, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 93, 32, 123, 112, 105, 47, 50, 53, 53, 125, 32, 45, 42, 91, 49, 93, 32, 123, 112, 105, 47, 50, 53, 53, 125, 32, 45, 99, 111, 115, 91, 49, 44, 50, 93, 32, 45, 43, 91, 49, 44, 50, 93, 32, 45, 45, 91, 49, 93, 32, 50, 32, 45, 42, 91, 49, 93, 32, 45, 54, 51, 46, 55, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 109, 97, 120, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 97, 98, 115, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 111, 114, 32, 58, 10, 45, 117, 32, 34, 45, 111, 114, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 91, 50, 93, 32, 45, 45, 108, 116, 91, 48, 93, 32, 49, 50, 56, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 112, 105, 110, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 98, 108, 101, 110, 100, 32, 100, 97, 114, 107, 101, 110, 32, 45, 45, 91, 49, 93, 32, 50, 53, 54, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 32, 45, 103, 101, 91, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 45, 115, 113, 114, 91, 48, 93, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 114, 101, 100, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 105, 102, 116, 91, 50, 44, 51, 93, 32, 48, 44, 48, 44, 48, 44, 45, 49, 44, 50, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 115, 104, 105, 102, 116, 91, 50, 44, 51, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 44, 50, 93, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 78, 61, 123, 105, 77, 43, 49, 125, 32, 34, 92, 10, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 36, 62, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 49, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 78, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 78, 45, 49, 47, 50, 53, 54, 125, 32, 34, 92, 10, 34, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 42, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 43, 36, 109, 39, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 78, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 34, 92, 10, 34, 45, 97, 91, 50, 45, 45, 49, 93, 32, 99, 32, 45, 109, 97, 112, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 58, 10, 45, 117, 32, 34, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 78, 61, 64, 123, 49, 44, 105, 77, 43, 49, 125, 32, 34, 92, 10, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 36, 62, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 49, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 78, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 78, 45, 49, 47, 50, 53, 54, 125, 32, 34, 92, 10, 34, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 42, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 43, 36, 109, 39, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 78, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 34, 92, 10, 34, 45, 97, 91, 51, 45, 45, 49, 93, 32, 99, 32, 45, 109, 97, 112, 91, 49, 93, 32, 91, 51, 93, 32, 45, 114, 109, 91, 51, 93, 32, 45, 42, 91, 49, 44, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 50, 93, 32, 45, 49, 32, 45, 42, 91, 50, 93, 32, 91, 49, 93, 32, 45, 42, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 51, 44, 52, 93, 32, 45, 42, 91, 51, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 51, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 116, 91, 49, 93, 32, 50, 53, 53, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 100, 111, 100, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 50, 93, 32, 45, 49, 32, 45, 42, 91, 50, 93, 32, 91, 48, 93, 32, 45, 42, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 43, 91, 48, 93, 32, 48, 46, 49, 32, 45, 47, 91, 51, 44, 52, 93, 32, 45, 42, 91, 51, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 51, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 116, 91, 49, 93, 32, 50, 53, 53, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 50, 93, 32, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 91, 51, 93, 32, 45, 42, 91, 49, 93, 32, 45, 50, 32, 45, 42, 91, 50, 93, 32, 50, 32, 45, 43, 91, 49, 45, 51, 93, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 117, 98, 116, 114, 97, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 118, 97, 108, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 48, 44, 49, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 32, 45, 114, 109, 91, 52, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 98, 108, 101, 110, 100, 32, 98, 117, 114, 110, 32, 45, 45, 91, 49, 93, 32, 50, 53, 54, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 100, 111, 100, 103, 101, 32, 45, 103, 101, 91, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 120, 111, 114, 32, 58, 10, 45, 117, 32, 34, 45, 120, 111, 114, 91, 49, 93, 32, 91, 48, 93, 34, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 58, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 103, 101, 116, 104, 101, 114, 115, 32, 117, 115, 105, 110, 103, 32, 39, 101, 100, 103, 101, 115, 39, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 48, 46, 56, 10, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 123, 36, 49, 62, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 101, 100, 103, 101, 115, 39, 32, 109, 111, 100, 101, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 48, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 47, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 118, 32, 43, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 103, 101, 116, 104, 101, 114, 115, 32, 117, 115, 105, 110, 103, 32, 97, 32, 103, 105, 118, 101, 110, 32, 102, 97, 100, 105, 110, 103, 32, 112, 97, 116, 116, 101, 114, 110, 32, 40, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 105, 109, 97, 103, 101, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 99, 111, 115, 40, 121, 47, 49, 48, 41, 39, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 102, 97, 100, 101, 39, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 51, 10, 45, 114, 91, 49, 45, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 45, 45, 91, 45, 49, 93, 32, 36, 62, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 117, 115, 105, 110, 103, 32, 39, 109, 101, 100, 105, 97, 110, 39, 32, 109, 111, 100, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 32, 45, 45, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 10, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 109, 101, 100, 105, 97, 110, 39, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 104, 42, 100, 125, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 43, 32, 45, 47, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 62, 50, 125, 10, 45, 112, 101, 114, 109, 117, 116, 101, 32, 120, 121, 99, 122, 32, 45, 97, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 45, 49, 45, 36, 62, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 115, 104, 91, 45, 50, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 45, 103, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 106, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 115, 37, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 53, 48, 37, 32, 45, 101, 108, 115, 101, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 123, 115, 47, 50, 45, 49, 125, 44, 123, 115, 47, 50, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 47, 32, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 101, 114, 109, 117, 116, 101, 32, 120, 121, 99, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 100, 44, 49, 48, 48, 37, 44, 45, 49, 32, 45, 118, 32, 43, 10, 95, 102, 97, 100, 101, 32, 58, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 99, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 58, 32, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 100, 105, 97, 109, 111, 110, 100, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 61, 56, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 57, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 56, 48, 44, 56, 53, 10, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 55, 48, 125, 44, 36, 123, 50, 61, 57, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 100, 105, 97, 109, 111, 110, 100, 45, 115, 104, 97, 112, 101, 100, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 95, 97, 110, 103, 108, 101, 44, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 108, 105, 110, 101, 97, 114, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 110, 103, 108, 101, 61, 52, 53, 39, 44, 32, 39, 115, 116, 97, 114, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 55, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 52, 53, 44, 52, 56, 44, 53, 50, 10, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 53, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 50, 37, 44, 36, 51, 37, 41, 32, 108, 105, 110, 101, 97, 114, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 54, 52, 44, 54, 52, 44, 49, 44, 49, 44, 34, 120, 42, 99, 111, 115, 40, 36, 49, 42, 112, 105, 47, 49, 56, 48, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 36, 49, 42, 112, 105, 47, 49, 56, 48, 41, 34, 32, 45, 95, 102, 97, 100, 101, 32, 36, 50, 44, 36, 51, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 114, 97, 100, 105, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 55, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 102, 97, 100, 101, 95, 114, 97, 100, 105, 97, 108, 32, 51, 48, 44, 55, 48, 10, 102, 97, 100, 101, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 114, 97, 100, 105, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 120, 32, 58, 32, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 55, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 102, 97, 100, 101, 95, 120, 32, 51, 48, 44, 55, 48, 10, 102, 97, 100, 101, 95, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 44, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 121, 32, 58, 32, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 55, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 45, 102, 97, 100, 101, 95, 121, 32, 51, 48, 44, 55, 48, 10, 102, 97, 100, 101, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 59, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 100, 101, 95, 122, 32, 58, 32, 48, 60, 61, 95, 115, 116, 97, 114, 116, 60, 61, 49, 48, 48, 44, 48, 60, 61, 95, 101, 110, 100, 60, 61, 49, 48, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 116, 114, 97, 110, 115, 118, 101, 114, 115, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 116, 97, 114, 116, 61, 51, 48, 39, 32, 97, 110, 100, 32, 39, 101, 110, 100, 61, 55, 48, 39, 46, 10, 102, 97, 100, 101, 95, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 116, 114, 97, 110, 115, 118, 101, 114, 115, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 47, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 73, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 110, 105, 109, 97, 116, 101, 32, 58, 32, 102, 105, 108, 116, 101, 114, 95, 110, 97, 109, 101, 44, 34, 112, 97, 114, 97, 109, 49, 95, 115, 116, 97, 114, 116, 44, 46, 46, 44, 112, 97, 114, 97, 109, 78, 95, 115, 116, 97, 114, 116, 34, 44, 34, 112, 97, 114, 97, 109, 49, 95, 101, 110, 100, 44, 46, 46, 44, 112, 97, 114, 97, 109, 78, 95, 101, 110, 100, 34, 44, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 61, 48, 44, 95, 111, 117, 116, 112, 117, 116, 95, 102, 114, 97, 109, 101, 115, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 111, 117, 116, 112, 117, 116, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 100, 101, 108, 97, 121, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 110, 105, 109, 97, 116, 101, 32, 102, 105, 108, 116, 101, 114, 32, 102, 114, 111, 109, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 116, 111, 32, 101, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 111, 114, 32, 97, 110, 105, 109, 97, 116, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 105, 110, 32, 97, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 100, 101, 108, 97, 121, 61, 51, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 97, 110, 105, 109, 97, 116, 101, 32, 102, 108, 111, 119, 101, 114, 44, 34, 48, 44, 51, 34, 44, 34, 50, 48, 44, 56, 34, 44, 57, 10, 97, 110, 105, 109, 97, 116, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 34, 34, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 34, 36, 123, 54, 61, 125, 34, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 36, 50, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 32, 100, 101, 108, 97, 121, 32, 111, 102, 32, 36, 49, 32, 109, 115, 44, 32, 97, 110, 100, 32, 112, 105, 110, 103, 45, 112, 111, 110, 103, 32, 109, 111, 100, 101, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 32, 100, 101, 108, 97, 121, 32, 111, 102, 32, 36, 49, 32, 109, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 115, 112, 101, 101, 100, 61, 36, 49, 10, 112, 97, 117, 115, 101, 61, 45, 49, 10, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 49, 10, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 45, 119, 91, 36, 102, 114, 97, 109, 101, 93, 32, 45, 49, 44, 45, 49, 44, 49, 44, 48, 44, 64, 123, 36, 102, 114, 97, 109, 101, 44, 98, 125, 46, 64, 123, 36, 102, 114, 97, 109, 101, 44, 120, 125, 10, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 36, 100, 105, 114, 101, 99, 116, 105, 111, 110, 125, 10, 45, 105, 102, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 102, 114, 97, 109, 101, 61, 61, 45, 49, 125, 32, 102, 114, 97, 109, 101, 61, 48, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 102, 114, 97, 109, 101, 61, 61, 64, 35, 125, 32, 102, 114, 97, 109, 101, 61, 123, 64, 35, 45, 49, 125, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 37, 64, 35, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 36, 115, 112, 101, 101, 100, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 111, 125, 32, 115, 112, 101, 101, 100, 61, 123, 109, 105, 110, 40, 53, 48, 48, 44, 109, 97, 120, 40, 49, 48, 44, 36, 115, 112, 101, 101, 100, 45, 49, 48, 42, 64, 123, 33, 44, 111, 125, 41, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 117, 115, 101, 62, 61, 48, 125, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 36, 112, 97, 117, 115, 101, 32, 112, 97, 117, 115, 101, 61, 45, 49, 10, 45, 101, 108, 115, 101, 32, 112, 97, 117, 115, 101, 61, 36, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 110, 105, 109, 97, 116, 101, 100, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 32, 39, 36, 49, 39, 44, 32, 102, 114, 111, 109, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 36, 50, 32, 116, 111, 32, 36, 51, 32, 119, 105, 116, 104, 32, 36, 52, 32, 102, 114, 97, 109, 101, 115, 46, 34, 10, 45, 105, 102, 32, 123, 33, 40, 36, 53, 124, 124, 110, 97, 114, 103, 40, 34, 36, 54, 34, 41, 41, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 40, 36, 50, 41, 32, 40, 36, 51, 41, 32, 45, 121, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 36, 52, 44, 49, 44, 49, 44, 51, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 62, 32, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 108, 91, 48, 44, 49, 93, 10, 45, 36, 49, 91, 45, 49, 93, 32, 64, 123, 48, 44, 123, 36, 62, 42, 64, 123, 48, 44, 119, 125, 125, 45, 123, 40, 36, 62, 43, 49, 41, 42, 64, 123, 48, 44, 119, 125, 45, 49, 125, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 54, 34, 41, 125, 32, 45, 111, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 54, 34, 44, 64, 123, 62, 44, 45, 50, 125, 44, 36, 62, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 49, 48, 48, 42, 40, 36, 62, 43, 49, 41, 47, 36, 52, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 91, 34, 64, 123, 62, 44, 45, 50, 125, 34, 93, 32, 58, 32, 70, 114, 97, 109, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 47, 36, 52, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 109, 111, 114, 112, 104, 32, 58, 32, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 109, 111, 114, 112, 104, 105, 110, 103, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 49, 39, 32, 97, 110, 100, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 53, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 97, 116, 101, 32, 50, 48, 44, 49, 44, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 109, 111, 114, 112, 104, 32, 57, 10, 109, 111, 114, 112, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 49, 125, 44, 36, 123, 51, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 109, 111, 114, 112, 104, 105, 110, 103, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 105, 110, 116, 114, 97, 45, 102, 114, 97, 109, 101, 115, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 51, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 51, 32, 45, 105, 91, 48, 93, 32, 40, 64, 35, 41, 32, 45, 45, 91, 48, 93, 32, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 48, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 77, 111, 114, 112, 104, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 32, 45, 45, 119, 97, 114, 112, 91, 45, 53, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 97, 91, 45, 36, 49, 45, 45, 49, 93, 32, 122, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 32, 45, 45, 119, 97, 114, 112, 91, 45, 53, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 97, 91, 45, 36, 49, 45, 45, 49, 93, 32, 122, 32, 45, 114, 109, 91, 45, 55, 45, 45, 52, 44, 45, 50, 93, 10, 40, 49, 47, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 122, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 122, 10, 45, 109, 118, 91, 45, 36, 49, 45, 45, 49, 93, 32, 49, 32, 45, 109, 118, 91, 49, 93, 32, 64, 35, 10, 45, 100, 111, 110, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 58, 32, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 44, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 62, 48, 44, 95, 110, 98, 95, 115, 99, 97, 108, 101, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 103, 105, 115, 116, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 110, 111, 110, 45, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 50, 39, 44, 32, 39, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 54, 39, 32, 97, 110, 100, 32, 39, 110, 98, 95, 115, 99, 97, 108, 101, 61, 48, 40, 97, 117, 116, 111, 41, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 114, 111, 116, 97, 116, 101, 32, 50, 48, 44, 49, 44, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 44, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 103, 105, 115, 116, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 110, 111, 110, 45, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 44, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 99, 97, 108, 101, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 36, 62, 62, 49, 125, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 49, 93, 32, 91, 45, 49, 93, 44, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 32, 58, 32, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 103, 105, 115, 116, 101, 114, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 115, 104, 105, 102, 116, 32, 51, 48, 44, 50, 48, 32, 45, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 32, 44, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 103, 105, 115, 116, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 36, 62, 62, 49, 125, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 91, 49, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 64, 45, 49, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 58, 32, 95, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 61, 50, 44, 95, 115, 99, 97, 108, 101, 62, 61, 48, 44, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 91, 37, 93, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 112, 108, 97, 115, 109, 97, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 99, 111, 110, 115, 101, 99, 117, 116, 105, 118, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 102, 114, 97, 109, 101, 115, 61, 49, 48, 39, 44, 32, 39, 115, 99, 97, 108, 101, 61, 53, 39, 32, 97, 110, 100, 32, 39, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 46, 53, 37, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 57, 10, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 50, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 53, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 112, 108, 97, 115, 109, 97, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 102, 114, 97, 109, 101, 115, 44, 32, 115, 99, 97, 108, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 115, 125, 44, 51, 10, 111, 102, 102, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 123, 36, 62, 43, 36, 111, 102, 102, 125, 44, 123, 36, 62, 43, 36, 111, 102, 102, 43, 49, 125, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 48, 44, 36, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 50, 125, 32, 45, 45, 108, 101, 91, 50, 93, 32, 123, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 91, 48, 93, 32, 45, 106, 91, 45, 49, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 36, 62, 42, 49, 48, 48, 47, 40, 36, 49, 45, 50, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 50, 93, 32, 45, 109, 118, 91, 50, 45, 45, 49, 93, 32, 49, 32, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 36, 49, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 58, 32, 95, 110, 98, 95, 102, 114, 97, 109, 101, 115, 62, 61, 50, 44, 95, 110, 98, 95, 120, 116, 105, 108, 101, 115, 62, 48, 44, 95, 110, 98, 95, 121, 116, 105, 108, 101, 115, 62, 48, 44, 95, 97, 120, 105, 115, 95, 120, 44, 95, 97, 120, 105, 115, 95, 121, 44, 95, 97, 120, 105, 115, 95, 122, 44, 95, 105, 115, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 51, 100, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 110, 115, 101, 99, 117, 116, 105, 118, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 97, 120, 105, 115, 95, 120, 39, 44, 32, 39, 97, 120, 105, 115, 95, 121, 39, 32, 97, 110, 100, 32, 39, 97, 120, 105, 115, 95, 122, 39, 32, 99, 97, 110, 32, 98, 101, 32, 115, 101, 116, 32, 97, 115, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 44, 32, 100, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 39, 120, 39, 32, 97, 110, 100, 32, 39, 121, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 110, 98, 95, 102, 114, 97, 109, 101, 115, 61, 49, 48, 39, 44, 32, 39, 110, 98, 95, 120, 116, 105, 108, 101, 115, 61, 110, 98, 95, 121, 116, 105, 108, 101, 115, 61, 51, 39, 44, 32, 39, 97, 120, 105, 115, 95, 120, 61, 49, 39, 44, 32, 39, 97, 120, 105, 115, 95, 121, 61, 49, 39, 44, 32, 39, 97, 120, 105, 115, 95, 122, 61, 48, 39, 32, 97, 110, 100, 32, 39, 105, 115, 95, 97, 110, 116, 105, 97, 108, 105, 97, 115, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 53, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 57, 32, 45, 100, 114, 103, 98, 97, 10, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 50, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 51, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 36, 50, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 51, 100, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 102, 114, 97, 109, 101, 115, 44, 32, 36, 50, 120, 36, 51, 32, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 97, 120, 105, 115, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 115, 125, 44, 51, 10, 111, 102, 102, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 123, 36, 62, 43, 36, 111, 102, 102, 125, 44, 123, 36, 62, 43, 36, 111, 102, 102, 43, 49, 125, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 52, 39, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 53, 39, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 54, 39, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 122, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 120, 121, 99, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 36, 50, 42, 36, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 114, 111, 116, 36, 62, 61, 64, 123, 45, 49, 44, 48, 45, 50, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 109, 118, 91, 48, 44, 49, 93, 32, 64, 35, 10, 78, 61, 123, 36, 50, 42, 36, 51, 125, 32, 105, 61, 48, 32, 121, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 120, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 108, 119, 61, 64, 123, 36, 105, 44, 119, 125, 32, 108, 104, 61, 64, 123, 36, 105, 44, 104, 125, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 36, 105, 93, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 36, 78, 93, 32, 45, 114, 51, 100, 91, 36, 78, 93, 32, 36, 123, 114, 111, 116, 36, 105, 125, 44, 45, 49, 56, 48, 32, 45, 99, 51, 100, 91, 36, 105, 44, 36, 78, 93, 32, 45, 43, 51, 100, 91, 36, 105, 44, 36, 78, 93, 10, 120, 36, 105, 61, 36, 120, 32, 121, 36, 105, 61, 36, 121, 32, 120, 61, 123, 36, 120, 43, 36, 108, 119, 125, 32, 105, 61, 123, 36, 105, 43, 49, 125, 10, 45, 100, 111, 110, 101, 10, 121, 61, 123, 36, 121, 43, 36, 108, 104, 125, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 114, 51, 100, 91, 36, 62, 93, 32, 36, 123, 114, 111, 116, 36, 62, 125, 44, 123, 49, 56, 48, 47, 40, 36, 49, 45, 49, 41, 125, 32, 45, 45, 43, 51, 100, 91, 36, 62, 93, 32, 36, 123, 120, 36, 62, 125, 44, 36, 123, 121, 36, 62, 125, 44, 48, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 91, 45, 36, 78, 45, 45, 49, 93, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 55, 10, 45, 105, 91, 45, 51, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 49, 44, 51, 44, 45, 49, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 50, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 105, 91, 45, 51, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 123, 36, 78, 45, 49, 125, 93, 10, 45, 110, 109, 91, 49, 45, 45, 50, 93, 32, 64, 123, 48, 44, 110, 125, 10, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 36, 49, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 100, 101, 109, 111, 115, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 98, 108, 111, 98, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 98, 108, 111, 98, 115, 32, 101, 100, 105, 116, 111, 114, 46, 10, 120, 95, 98, 108, 111, 98, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 66, 108, 111, 98, 115, 32, 101, 100, 105, 116, 111, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 105, 110, 115, 101, 114, 116, 47, 109, 111, 118, 101, 47, 100, 101, 108, 101, 116, 101, 32, 98, 108, 111, 98, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 40, 48, 59, 48, 94, 48, 59, 49, 50, 56, 94, 48, 59, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 51, 53, 48, 44, 51, 53, 48, 44, 49, 44, 51, 44, 51, 32, 45, 102, 108, 111, 119, 101, 114, 91, 45, 49, 93, 32, 51, 48, 44, 56, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 32, 45, 119, 97, 116, 101, 114, 91, 45, 49, 93, 32, 50, 48, 10, 45, 119, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 66, 108, 111, 98, 115, 32, 101, 100, 105, 116, 111, 114, 34, 10, 109, 111, 118, 105, 110, 103, 61, 45, 49, 10, 45, 100, 111, 10, 120, 61, 64, 123, 33, 44, 120, 125, 32, 121, 61, 64, 123, 33, 44, 121, 125, 32, 98, 61, 64, 123, 33, 44, 98, 125, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 114, 61, 123, 64, 123, 49, 44, 50, 125, 42, 40, 49, 43, 64, 123, 49, 44, 51, 125, 42, 99, 111, 115, 40, 64, 123, 49, 44, 52, 125, 43, 64, 123, 49, 44, 53, 125, 42, 64, 124, 42, 49, 48, 48, 48, 41, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 49, 44, 48, 44, 49, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 64, 123, 49, 44, 54, 45, 55, 125, 10, 100, 61, 123, 115, 113, 114, 116, 40, 40, 36, 120, 45, 64, 123, 49, 44, 48, 125, 41, 94, 50, 43, 40, 36, 121, 45, 64, 123, 49, 44, 49, 125, 41, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 100, 60, 36, 114, 125, 32, 110, 101, 97, 114, 101, 115, 116, 61, 36, 62, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 100, 111, 110, 101, 10, 45, 98, 91, 45, 49, 93, 32, 49, 53, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 32, 45, 108, 101, 91, 45, 50, 93, 32, 52, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 54, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 71, 39, 77, 73, 67, 32, 66, 108, 111, 98, 115, 32, 69, 100, 105, 116, 111, 114, 34, 44, 54, 53, 44, 52, 48, 44, 50, 52, 44, 51, 44, 49, 44, 50, 48, 48, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 91, 45, 49, 93, 32, 34, 42, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 97, 110, 100, 32, 109, 111, 118, 101, 32, 98, 108, 111, 98, 115, 46, 92, 110, 92, 110, 92, 10, 42, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 98, 108, 111, 98, 46, 92, 110, 92, 110, 92, 10, 42, 32, 77, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 97, 108, 108, 32, 98, 108, 111, 98, 115, 46, 92, 110, 92, 110, 92, 10, 42, 32, 75, 101, 121, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 58, 32, 81, 117, 105, 116, 46, 92, 110, 92, 110, 92, 10, 42, 32, 67, 111, 108, 111, 114, 115, 32, 97, 110, 100, 32, 115, 105, 122, 101, 115, 32, 111, 102, 32, 97, 112, 112, 101, 97, 114, 105, 110, 103, 32, 98, 108, 111, 98, 115, 32, 97, 114, 101, 92, 110, 32, 32, 32, 99, 104, 111, 115, 101, 110, 32, 114, 97, 110, 100, 111, 109, 108, 121, 34, 44, 92, 10, 54, 48, 44, 49, 50, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 105, 102, 32, 123, 36, 120, 60, 48, 124, 124, 36, 121, 60, 48, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 125, 10, 45, 105, 102, 32, 123, 36, 110, 101, 97, 114, 101, 115, 116, 62, 61, 48, 34, 32, 124, 124, 32, 34, 36, 109, 111, 118, 105, 110, 103, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 109, 111, 118, 105, 110, 103, 60, 48, 125, 32, 109, 111, 118, 105, 110, 103, 61, 36, 110, 101, 97, 114, 101, 115, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 61, 91, 49, 93, 32, 36, 120, 44, 48, 44, 36, 109, 111, 118, 105, 110, 103, 32, 45, 61, 91, 49, 93, 32, 36, 121, 44, 49, 44, 36, 109, 111, 118, 105, 110, 103, 10, 45, 101, 108, 115, 101, 10, 40, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 63, 40, 50, 48, 44, 53, 48, 41, 125, 44, 123, 63, 40, 45, 48, 46, 51, 44, 48, 46, 51, 41, 125, 44, 123, 63, 40, 48, 44, 112, 105, 47, 50, 41, 125, 44, 123, 63, 40, 48, 44, 48, 46, 48, 48, 57, 41, 125, 44, 123, 63, 40, 54, 52, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 52, 44, 50, 53, 53, 41, 125, 41, 32, 45, 97, 91, 94, 48, 93, 32, 121, 10, 109, 111, 118, 105, 110, 103, 61, 123, 104, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 125, 10, 45, 105, 102, 32, 123, 36, 110, 101, 97, 114, 101, 115, 116, 62, 61, 48, 125, 32, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 114, 109, 91, 36, 110, 101, 97, 114, 101, 115, 116, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 52, 125, 10, 45, 107, 91, 48, 93, 10, 45, 101, 108, 115, 101, 10, 109, 111, 118, 105, 110, 103, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 102, 105, 114, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 102, 105, 114, 101, 32, 100, 101, 109, 111, 46, 10, 120, 95, 102, 105, 114, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 71, 39, 77, 73, 67, 125, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 114, 101, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 44, 51, 50, 32, 45, 119, 91, 48, 93, 32, 54, 48, 48, 44, 51, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 114, 101, 32, 100, 101, 109, 111, 34, 10, 45, 105, 91, 49, 93, 32, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 41, 32, 45, 114, 91, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 105, 91, 50, 93, 32, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 50, 93, 32, 48, 46, 50, 49, 10, 45, 116, 101, 120, 116, 51, 100, 32, 34, 36, 49, 34, 44, 51, 52, 44, 51, 44, 49, 32, 45, 109, 118, 91, 45, 49, 93, 32, 51, 32, 45, 99, 51, 100, 91, 51, 93, 32, 45, 110, 51, 100, 91, 51, 93, 32, 45, 42, 51, 100, 91, 51, 93, 32, 51, 50, 48, 32, 45, 99, 111, 108, 51, 100, 91, 51, 93, 32, 50, 53, 53, 44, 50, 48, 53, 44, 49, 51, 48, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 102, 51, 100, 32, 51, 48, 48, 10, 49, 48, 48, 44, 49, 48, 48, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 51, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 49, 48, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 108, 105, 103, 104, 116, 51, 100, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 97, 110, 103, 108, 101, 61, 48, 10, 45, 100, 111, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 50, 93, 10, 64, 123, 48, 44, 119, 125, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 48, 44, 104, 125, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 114, 91, 48, 93, 32, 52, 48, 48, 44, 50, 48, 48, 44, 49, 44, 49, 44, 51, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 45, 114, 51, 100, 91, 51, 93, 32, 48, 44, 49, 44, 48, 44, 36, 97, 110, 103, 108, 101, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 48, 46, 50, 53, 44, 48, 46, 49, 54, 44, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 45, 114, 109, 91, 45, 49, 93, 10, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 43, 51, 125, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 52, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 48, 45, 51, 93, 32, 45, 119, 32, 48, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 102, 105, 114, 101, 119, 111, 114, 107, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 102, 105, 114, 101, 119, 111, 114, 107, 115, 32, 100, 101, 109, 111, 46, 10, 120, 95, 102, 105, 114, 101, 119, 111, 114, 107, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 114, 101, 119, 111, 114, 107, 115, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 116, 105, 109, 101, 61, 48, 10, 40, 48, 59, 54, 52, 94, 48, 59, 51, 50, 94, 49, 50, 56, 59, 48, 41, 32, 45, 114, 32, 50, 53, 54, 44, 49, 50, 56, 44, 49, 44, 51, 44, 51, 10, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 53, 49, 50, 44, 50, 53, 54, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 114, 101, 119, 111, 114, 107, 115, 32, 100, 101, 109, 111, 34, 10, 45, 100, 111, 10, 116, 105, 109, 101, 61, 123, 36, 116, 105, 109, 101, 45, 49, 125, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 92, 32, 124, 124, 92, 32, 36, 116, 105, 109, 101, 60, 48, 125, 10, 45, 105, 91, 48, 93, 32, 40, 123, 63, 40, 119, 41, 125, 44, 92, 10, 123, 104, 125, 44, 92, 10, 123, 63, 40, 45, 51, 44, 51, 41, 125, 44, 92, 10, 123, 63, 40, 50, 41, 45, 53, 125, 44, 92, 10, 123, 51, 48, 43, 63, 40, 50, 48, 41, 125, 44, 92, 10, 49, 46, 53, 44, 92, 10, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 116, 105, 109, 101, 61, 123, 63, 40, 52, 48, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 48, 46, 57, 57, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 50, 10, 105, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 48, 10, 114, 97, 100, 105, 117, 115, 61, 123, 105, 102, 40, 64, 123, 36, 105, 44, 52, 125, 62, 48, 44, 64, 123, 36, 105, 44, 53, 125, 47, 51, 44, 64, 123, 36, 105, 44, 53, 125, 42, 40, 49, 43, 50, 42, 40, 64, 123, 36, 105, 44, 52, 125, 43, 50, 41, 47, 49, 50, 48, 41, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 36, 105, 44, 48, 125, 44, 64, 123, 36, 105, 44, 49, 125, 44, 64, 123, 36, 105, 44, 53, 125, 44, 123, 109, 97, 120, 40, 48, 46, 53, 44, 36, 114, 97, 100, 105, 117, 115, 41, 125, 44, 123, 97, 116, 97, 110, 50, 40, 64, 123, 36, 105, 44, 51, 125, 44, 64, 123, 36, 105, 44, 50, 125, 41, 42, 49, 56, 48, 47, 112, 105, 125, 44, 48, 46, 54, 44, 64, 123, 36, 105, 44, 54, 45, 56, 125, 10, 40, 64, 123, 36, 105, 44, 50, 125, 44, 64, 123, 36, 105, 44, 51, 125, 44, 48, 44, 48, 46, 48, 57, 44, 45, 49, 44, 48, 44, 48, 44, 48, 44, 48, 41, 32, 45, 43, 91, 36, 105, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 36, 105, 44, 48, 125, 60, 48, 92, 32, 124, 124, 92, 32, 64, 123, 36, 105, 44, 48, 125, 62, 61, 119, 92, 32, 124, 124, 92, 32, 64, 123, 36, 105, 44, 49, 125, 62, 61, 104, 92, 32, 124, 124, 92, 32, 36, 114, 97, 100, 105, 117, 115, 60, 48, 125, 32, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 36, 105, 44, 52, 125, 60, 48, 92, 32, 38, 38, 92, 32, 64, 123, 36, 105, 44, 52, 125, 62, 61, 45, 49, 125, 10, 99, 111, 108, 111, 114, 61, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 10, 114, 97, 100, 105, 117, 115, 61, 123, 63, 40, 49, 48, 41, 125, 10, 78, 61, 123, 53, 43, 63, 40, 49, 48, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 97, 110, 103, 108, 101, 61, 123, 36, 62, 42, 50, 42, 112, 105, 47, 36, 78, 125, 10, 45, 105, 91, 45, 51, 93, 32, 40, 64, 123, 36, 105, 44, 48, 44, 49, 125, 44, 123, 50, 42, 99, 111, 115, 40, 36, 97, 110, 103, 108, 101, 41, 43, 64, 123, 36, 105, 44, 50, 125, 47, 49, 46, 53, 125, 44, 123, 50, 42, 115, 105, 110, 40, 36, 97, 110, 103, 108, 101, 41, 43, 64, 123, 36, 105, 44, 51, 125, 47, 49, 46, 53, 125, 44, 45, 50, 44, 36, 114, 97, 100, 105, 117, 115, 44, 36, 99, 111, 108, 111, 114, 41, 10, 45, 100, 111, 110, 101, 10, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 101, 108, 115, 101, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 119, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 110, 100, 108, 32, 45, 107, 91, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 102, 105, 115, 104, 101, 121, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 100, 101, 109, 111, 46, 10, 120, 95, 102, 105, 115, 104, 101, 121, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 115, 104, 45, 101, 121, 101, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 112, 111, 105, 110, 116, 101, 114, 32, 109, 111, 118, 101, 115, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 99, 101, 110, 116, 101, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 115, 101, 116, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 115, 105, 122, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 62, 48, 125, 32, 45, 97, 32, 120, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 50, 100, 121, 32, 50, 50, 48, 32, 45, 101, 108, 115, 101, 10, 49, 50, 48, 44, 57, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 48, 46, 51, 44, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 116, 32, 34, 32, 32, 71, 39, 77, 73, 67, 92, 110, 70, 73, 83, 72, 45, 69, 89, 69, 92, 110, 32, 32, 68, 69, 77, 79, 34, 44, 49, 53, 44, 49, 51, 44, 50, 52, 44, 49, 44, 50, 53, 53, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 98, 32, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 10, 45, 102, 32, 105, 43, 49, 53, 48, 45, 52, 42, 97, 98, 115, 40, 121, 45, 104, 47, 50, 41, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 49, 93, 32, 49, 53, 44, 49, 48, 44, 49, 53, 44, 49, 46, 53, 44, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 50, 48, 44, 54, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 53, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 82, 61, 51, 48, 10, 45, 119, 91, 45, 50, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 115, 104, 45, 69, 121, 101, 32, 68, 101, 109, 111, 34, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 52, 48, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 49, 125, 32, 82, 61, 123, 109, 105, 110, 40, 56, 48, 44, 36, 82, 43, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 50, 125, 32, 82, 61, 123, 109, 97, 120, 40, 51, 44, 36, 82, 45, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 53, 48, 43, 51, 48, 42, 99, 111, 115, 40, 64, 124, 42, 50, 46, 53, 41, 125, 37, 44, 123, 53, 48, 43, 51, 48, 42, 115, 105, 110, 40, 64, 124, 42, 49, 46, 54, 41, 125, 37, 44, 123, 53, 48, 43, 51, 51, 48, 42, 115, 105, 110, 40, 64, 124, 42, 50, 46, 54, 41, 125, 44, 48, 46, 55, 44, 51, 44, 48, 44, 48, 32, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 46, 50, 44, 48, 46, 54, 44, 51, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 45, 102, 105, 115, 104, 101, 121, 101, 91, 45, 49, 93, 32, 123, 64, 123, 33, 44, 120, 125, 42, 49, 48, 48, 47, 64, 123, 33, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 121, 125, 42, 49, 48, 48, 47, 64, 123, 33, 44, 104, 125, 125, 44, 36, 82, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 33, 61, 61, 48, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 102, 111, 117, 114, 105, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 100, 101, 109, 111, 46, 10, 120, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 111, 117, 114, 105, 101, 114, 45, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 115, 101, 116, 32, 109, 105, 110, 47, 109, 97, 120, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 10, 102, 114, 101, 113, 109, 105, 110, 61, 48, 10, 102, 114, 101, 113, 109, 97, 120, 61, 49, 48, 48, 10, 45, 105, 102, 32, 123, 119, 62, 51, 42, 64, 123, 33, 44, 117, 125, 47, 53, 125, 32, 45, 114, 50, 100, 120, 91, 45, 49, 93, 32, 123, 51, 42, 64, 123, 33, 44, 117, 125, 47, 49, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 51, 42, 64, 123, 33, 44, 118, 125, 47, 53, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 123, 51, 42, 64, 123, 33, 44, 118, 125, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 102, 116, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 50, 93, 32, 114, 101, 97, 108, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 97, 103, 10, 45, 45, 115, 113, 114, 91, 114, 101, 97, 108, 44, 105, 109, 97, 103, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 103, 109, 97, 103, 10, 45, 119, 91, 48, 44, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 111, 117, 114, 105, 101, 114, 32, 70, 105, 108, 116, 101, 114, 105, 110, 103, 32, 68, 101, 109, 111, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 70, 111, 117, 114, 105, 101, 114, 32, 70, 105, 108, 116, 101, 114, 105, 110, 103, 32, 68, 101, 109, 111, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 70, 111, 117, 114, 105, 101, 114, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 92, 110, 34, 92, 10, 34, 111, 102, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 111, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 32, 85, 115, 101, 32, 121, 111, 117, 114, 32, 109, 111, 117, 115, 101, 92, 110, 34, 92, 10, 34, 98, 117, 116, 116, 111, 110, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 98, 111, 117, 110, 100, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 92, 110, 34, 92, 10, 34, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 70, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 92, 110, 34, 92, 10, 34, 40, 114, 105, 103, 104, 116, 32, 105, 109, 97, 103, 101, 41, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 10, 45, 105, 91, 109, 97, 115, 107, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 114, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 42, 36, 102, 114, 101, 113, 109, 97, 120, 47, 50, 48, 48, 125, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 109, 97, 115, 107, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 10, 114, 61, 123, 109, 97, 120, 40, 48, 44, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 42, 36, 102, 114, 101, 113, 109, 105, 110, 47, 50, 48, 48, 45, 49, 41, 125, 32, 45, 105, 102, 32, 36, 114, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 109, 97, 115, 107, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 42, 91, 108, 111, 103, 109, 97, 103, 93, 32, 91, 109, 97, 115, 107, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 109, 97, 115, 107, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 115, 104, 105, 102, 116, 91, 109, 97, 115, 107, 93, 32, 45, 53, 48, 37, 44, 45, 53, 48, 37, 44, 48, 44, 48, 44, 50, 10, 45, 45, 42, 91, 114, 101, 97, 108, 44, 105, 109, 97, 103, 93, 32, 91, 109, 97, 115, 107, 93, 10, 45, 114, 109, 91, 45, 52, 93, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 64, 33, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 50, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 34, 70, 114, 101, 113, 46, 32, 77, 105, 110, 47, 77, 97, 120, 32, 61, 32, 34, 123, 105, 110, 116, 40, 36, 102, 114, 101, 113, 109, 105, 110, 41, 125, 34, 37, 32, 47, 32, 34, 123, 105, 110, 116, 40, 36, 102, 114, 101, 113, 109, 97, 120, 41, 125, 34, 37, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 119, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 64, 123, 33, 44, 119, 125, 47, 50, 125, 10, 114, 61, 123, 50, 48, 48, 42, 115, 113, 114, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 51, 42, 64, 123, 33, 44, 119, 125, 47, 52, 41, 94, 50, 43, 40, 64, 123, 33, 44, 121, 125, 45, 64, 123, 33, 44, 104, 125, 47, 50, 41, 94, 50, 41, 47, 92, 10, 115, 113, 114, 116, 40, 40, 64, 123, 33, 44, 119, 125, 47, 50, 41, 94, 50, 43, 64, 123, 33, 44, 104, 125, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 102, 114, 101, 113, 109, 97, 120, 61, 36, 114, 10, 45, 101, 108, 115, 101, 32, 102, 114, 101, 113, 109, 105, 110, 61, 123, 109, 97, 120, 40, 48, 44, 36, 114, 45, 51, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 102, 114, 101, 113, 109, 105, 110, 62, 61, 36, 102, 114, 101, 113, 109, 97, 120, 125, 32, 102, 114, 101, 113, 109, 105, 110, 61, 36, 102, 114, 101, 113, 109, 97, 120, 32, 45, 101, 110, 100, 105, 102, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 48, 44, 119, 125, 125, 44, 64, 123, 48, 44, 104, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 119, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 100, 101, 109, 111, 46, 10, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 72, 105, 115, 116, 111, 103, 114, 97, 109, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 98, 117, 116, 116, 111, 110, 32, 111, 114, 32, 107, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 51, 48, 48, 44, 51, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 107, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 50, 100, 121, 32, 51, 48, 48, 44, 50, 32, 45, 105, 102, 32, 123, 119, 62, 56, 48, 48, 125, 32, 45, 114, 32, 56, 48, 48, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 51, 48, 48, 44, 123, 104, 125, 44, 49, 44, 51, 44, 50, 50, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 109, 97, 32, 58, 34, 44, 53, 44, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 67, 111, 110, 116, 114, 97, 115, 116, 32, 58, 34, 44, 53, 44, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 49, 48, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 49, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 50, 48, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 67, 108, 117, 115, 116, 101, 114, 115, 32, 58, 34, 44, 53, 44, 50, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 123, 119, 125, 44, 50, 48, 48, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 48, 10, 45, 102, 114, 97, 109, 101, 91, 45, 50, 44, 45, 49, 93, 32, 53, 44, 53, 44, 50, 50, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 99, 108, 117, 115, 116, 101, 114, 115, 61, 54, 52, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 32, 99, 111, 110, 116, 114, 97, 115, 116, 61, 49, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 32, 103, 97, 109, 109, 97, 61, 49, 10, 45, 100, 111, 10, 91, 48, 93, 10, 105, 97, 61, 123, 105, 97, 125, 10, 45, 105, 102, 32, 36, 103, 97, 109, 109, 97, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 103, 97, 109, 109, 97, 125, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 36, 105, 97, 32, 45, 42, 91, 45, 49, 93, 32, 36, 99, 111, 110, 116, 114, 97, 115, 116, 32, 45, 43, 91, 45, 49, 93, 32, 36, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 45, 43, 91, 45, 49, 93, 32, 36, 105, 97, 10, 45, 98, 91, 45, 49, 93, 32, 36, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 115, 104, 97, 114, 112, 110, 101, 115, 115, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 54, 44, 54, 10, 115, 120, 61, 123, 64, 123, 48, 44, 119, 125, 43, 49, 50, 125, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 103, 97, 109, 109, 97, 42, 49, 48, 48, 47, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 99, 111, 110, 116, 114, 97, 115, 116, 42, 49, 48, 48, 47, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 40, 36, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 43, 49, 50, 56, 41, 42, 49, 48, 48, 47, 50, 53, 54, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 49, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 42, 49, 48, 48, 47, 49, 48, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 49, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 115, 104, 97, 114, 112, 110, 101, 115, 115, 42, 49, 48, 48, 47, 50, 48, 48, 48, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 99, 108, 117, 115, 116, 101, 114, 115, 42, 49, 48, 48, 47, 50, 53, 54, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 45, 45, 49, 93, 32, 36, 99, 108, 117, 115, 116, 101, 114, 115, 44, 48, 44, 50, 53, 53, 32, 45, 47, 91, 45, 51, 45, 45, 49, 93, 32, 123, 51, 42, 64, 123, 48, 44, 119, 104, 125, 47, 36, 99, 108, 117, 115, 116, 101, 114, 115, 125, 32, 45, 114, 109, 91, 45, 53, 93, 10, 45, 45, 122, 91, 45, 52, 93, 32, 53, 44, 51, 49, 55, 44, 123, 64, 123, 45, 52, 44, 119, 125, 45, 53, 125, 44, 123, 64, 123, 45, 52, 44, 104, 125, 45, 54, 125, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 52, 45, 45, 50, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 44, 51, 49, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 72, 105, 115, 116, 111, 103, 114, 97, 109, 32, 100, 101, 109, 111, 34, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 120, 125, 62, 61, 64, 123, 48, 44, 119, 125, 45, 49, 48, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 52, 50, 125, 10, 103, 97, 109, 109, 97, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 52, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 52, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 57, 50, 125, 10, 99, 111, 110, 116, 114, 97, 115, 116, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 52, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 52, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 49, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 49, 52, 50, 125, 10, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 45, 49, 50, 56, 44, 109, 105, 110, 40, 49, 50, 56, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 53, 54, 47, 50, 56, 48, 45, 49, 50, 56, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 49, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 49, 57, 50, 125, 10, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 48, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 49, 48, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 50, 52, 50, 125, 10, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 50, 48, 48, 48, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 48, 48, 48, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 50, 57, 50, 125, 10, 99, 108, 117, 115, 116, 101, 114, 115, 61, 123, 109, 97, 120, 40, 50, 44, 109, 105, 110, 40, 50, 53, 54, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 53, 54, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 92, 32, 124, 124, 92, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 32, 99, 108, 117, 115, 116, 101, 114, 115, 61, 54, 52, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 32, 99, 111, 110, 116, 114, 97, 115, 116, 61, 49, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 32, 103, 97, 109, 109, 97, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 118, 97, 108, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 48, 48, 44, 36, 49, 41, 41, 125, 10, 50, 56, 48, 44, 50, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 118, 97, 108, 37, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 44, 36, 118, 97, 108, 37, 44, 49, 44, 49, 44, 50, 52, 48, 44, 50, 53, 53, 44, 54, 50, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 54, 44, 49, 44, 51, 44, 51, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 36, 118, 97, 108, 41, 125, 37, 44, 48, 44, 48, 44, 50, 48, 44, 49, 44, 49, 32, 45, 45, 42, 91, 45, 49, 93, 32, 45, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 123, 40, 50, 56, 48, 45, 119, 41, 47, 50, 125, 44, 123, 40, 49, 54, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 50, 125, 44, 123, 104, 43, 50, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 104, 111, 117, 103, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 104, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 100, 101, 109, 111, 46, 10, 120, 95, 104, 111, 117, 103, 104, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 72, 111, 117, 103, 104, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 118, 111, 116, 101, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 100, 114, 97, 119, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 108, 105, 110, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 118, 111, 116, 101, 32, 102, 111, 114, 32, 97, 108, 108, 32, 108, 105, 110, 101, 115, 32, 99, 114, 111, 115, 115, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 116, 104, 101, 32, 99, 108, 105, 99, 107, 101, 100, 32, 112, 111, 105, 110, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 116, 104, 101, 32, 104, 111, 117, 103, 104, 32, 119, 105, 110, 100, 111, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 52, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 116, 115, 99, 114, 101, 101, 110, 92, 32, 123, 119, 125, 44, 123, 104, 125, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 45, 98, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 104, 111, 117, 103, 104, 91, 45, 49, 93, 32, 53, 49, 50, 44, 52, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 73, 109, 97, 103, 101, 34, 32, 45, 119, 49, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 48, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 72, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 116, 104, 101, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 92, 110, 34, 92, 10, 34, 111, 102, 32, 116, 104, 101, 32, 72, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 116, 111, 32, 100, 101, 116, 101, 99, 116, 32, 108, 105, 110, 101, 115, 32, 105, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 32, 85, 115, 101, 32, 121, 111, 117, 114, 92, 110, 34, 92, 10, 34, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 116, 111, 32, 101, 120, 112, 108, 111, 114, 101, 32, 116, 104, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 32, 97, 110, 100, 32, 115, 101, 101, 32, 104, 111, 119, 92, 110, 34, 92, 10, 34, 108, 105, 110, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 32, 97, 114, 101, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 101, 100, 32, 98, 121, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 64, 123, 33, 44, 98, 125, 10, 120, 48, 61, 123, 64, 123, 33, 44, 120, 125, 45, 64, 123, 33, 44, 119, 125, 47, 50, 125, 10, 121, 48, 61, 123, 64, 123, 33, 44, 121, 125, 45, 64, 123, 33, 44, 104, 125, 47, 50, 125, 10, 114, 104, 111, 48, 61, 123, 115, 113, 114, 116, 40, 40, 36, 120, 48, 41, 94, 50, 43, 40, 36, 121, 48, 41, 94, 50, 41, 125, 10, 116, 104, 101, 116, 97, 48, 61, 123, 97, 116, 97, 110, 50, 40, 36, 121, 48, 44, 36, 120, 48, 41, 125, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 40, 36, 116, 104, 101, 116, 97, 48, 44, 123, 36, 116, 104, 101, 116, 97, 48, 45, 50, 42, 112, 105, 125, 41, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 51, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 51, 10, 45, 99, 111, 115, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 104, 111, 48, 32, 45, 45, 108, 116, 91, 45, 49, 93, 32, 48, 32, 45, 97, 98, 115, 91, 45, 50, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 37, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 125, 10, 45, 42, 91, 45, 50, 93, 32, 123, 48, 46, 53, 42, 64, 123, 45, 51, 44, 119, 125, 47, 112, 105, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 47, 36, 114, 104, 111, 109, 97, 120, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 112, 111, 105, 110, 116, 91, 45, 50, 93, 32, 64, 123, 45, 49, 44, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 45, 49, 44, 40, 36, 62, 44, 49, 41, 125, 44, 48, 44, 48, 46, 51, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 49, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 49, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 49, 44, 98, 125, 125, 10, 116, 104, 101, 116, 97, 61, 123, 64, 123, 33, 49, 44, 120, 125, 42, 50, 42, 112, 105, 47, 64, 123, 33, 49, 44, 119, 125, 125, 10, 114, 104, 111, 61, 123, 64, 123, 33, 49, 44, 121, 125, 42, 36, 114, 104, 111, 109, 97, 120, 47, 64, 123, 33, 49, 44, 104, 125, 125, 10, 120, 61, 123, 64, 123, 45, 50, 44, 119, 125, 47, 50, 43, 36, 114, 104, 111, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 61, 123, 64, 123, 45, 50, 44, 104, 125, 47, 50, 43, 36, 114, 104, 111, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 120, 48, 61, 123, 36, 120, 43, 49, 48, 48, 48, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 48, 61, 123, 36, 121, 45, 49, 48, 48, 48, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 120, 49, 61, 123, 36, 120, 45, 49, 48, 48, 48, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 49, 61, 123, 36, 121, 43, 49, 48, 48, 48, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 91, 45, 50, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 120, 48, 43, 49, 125, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 123, 36, 121, 48, 43, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 120, 48, 43, 49, 125, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 123, 36, 121, 48, 43, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 49, 44, 83, 80, 65, 67, 69, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 98, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 104, 111, 117, 103, 104, 91, 45, 49, 93, 32, 53, 49, 50, 44, 52, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 49, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 34, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 49, 44, 114, 125, 32, 45, 119, 49, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 64, 123, 33, 49, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 33, 64, 123, 33, 49, 125, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 48, 32, 48, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 58, 32, 48, 60, 95, 119, 105, 100, 116, 104, 60, 50, 48, 44, 48, 60, 95, 104, 101, 105, 103, 104, 116, 60, 50, 48, 44, 48, 60, 95, 98, 97, 108, 108, 115, 60, 61, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 103, 97, 109, 101, 46, 10, 120, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 49, 60, 50, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 51, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 50, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 51, 60, 61, 56, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 111, 102, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 105, 115, 32, 116, 111, 32, 114, 101, 109, 111, 118, 101, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 92, 110, 10, 45, 45, 45, 45, 32, 98, 97, 108, 108, 115, 32, 111, 110, 32, 116, 104, 101, 32, 98, 111, 97, 114, 100, 44, 32, 115, 105, 109, 112, 108, 121, 32, 98, 121, 32, 99, 108, 105, 99, 107, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 109, 46, 32, 66, 117, 116, 32, 97, 92, 110, 10, 45, 45, 45, 45, 32, 99, 111, 108, 111, 114, 101, 100, 32, 98, 97, 108, 108, 32, 99, 97, 110, 32, 100, 105, 115, 97, 112, 112, 101, 97, 114, 32, 111, 110, 108, 121, 32, 105, 102, 32, 105, 116, 32, 105, 115, 32, 103, 114, 111, 117, 112, 101, 100, 32, 119, 105, 116, 104, 32, 97, 116, 92, 110, 10, 45, 45, 45, 45, 32, 108, 101, 97, 115, 116, 32, 111, 110, 101, 32, 98, 97, 108, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 99, 111, 108, 111, 114, 46, 32, 84, 104, 101, 32, 115, 99, 111, 114, 101, 32, 105, 115, 32, 104, 105, 103, 104, 101, 114, 32, 105, 102, 92, 110, 10, 45, 45, 45, 45, 32, 121, 111, 117, 32, 100, 101, 115, 116, 114, 111, 121, 32, 108, 97, 114, 103, 101, 114, 32, 115, 101, 116, 115, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 98, 97, 108, 108, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 47, 100, 101, 115, 116, 114, 111, 121, 32, 98, 97, 108, 108, 115, 32, 111, 110, 32, 98, 111, 97, 114, 100, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 66, 65, 67, 75, 83, 80, 65, 67, 69, 39, 32, 111, 114, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 117, 110, 100, 111, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 109, 111, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 98, 111, 97, 114, 100, 93, 32, 36, 49, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 98, 111, 97, 114, 100, 93, 32, 49, 44, 36, 51, 32, 45, 114, 111, 117, 110, 100, 91, 98, 111, 97, 114, 100, 93, 32, 49, 10, 45, 105, 91, 117, 110, 100, 111, 93, 32, 91, 45, 49, 93, 10, 45, 105, 91, 98, 97, 108, 108, 115, 93, 32, 51, 50, 44, 51, 50, 32, 45, 98, 97, 108, 108, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 42, 119, 125, 44, 123, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 42, 104, 125, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 98, 97, 99, 107, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 108, 91, 45, 49, 93, 10, 45, 114, 97, 110, 100, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 54, 44, 50, 48, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 49, 48, 48, 44, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 50, 44, 52, 10, 45, 115, 104, 32, 48, 44, 48, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 115, 104, 91, 45, 51, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 51, 93, 32, 52, 32, 45, 47, 91, 45, 50, 93, 32, 56, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 105, 91, 118, 105, 115, 117, 93, 32, 91, 98, 97, 99, 107, 93, 10, 115, 99, 111, 114, 101, 61, 48, 10, 117, 110, 100, 111, 115, 99, 111, 114, 101, 61, 48, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 48, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 10, 45, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 51, 54, 48, 47, 36, 51, 125, 32, 45, 45, 103, 101, 91, 98, 111, 97, 114, 100, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 57, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 98, 97, 108, 108, 115, 93, 32, 91, 98, 97, 108, 108, 115, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 103, 116, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 98, 97, 99, 107, 93, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 125, 32, 45, 119, 91, 118, 105, 115, 117, 93, 32, 64, 123, 98, 97, 99, 107, 44, 119, 125, 44, 64, 123, 98, 97, 99, 107, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 10, 45, 45, 116, 91, 118, 105, 115, 117, 93, 32, 34, 43, 34, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 44, 64, 123, 33, 44, 120, 125, 44, 123, 64, 123, 33, 44, 121, 125, 45, 54, 52, 43, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 125, 44, 51, 50, 44, 123, 40, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 45, 49, 41, 47, 51, 49, 125, 44, 50, 53, 53, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 123, 109, 97, 120, 40, 48, 44, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 45, 49, 41, 125, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 98, 97, 99, 107, 44, 119, 125, 44, 64, 123, 98, 97, 99, 107, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 53, 10, 45, 101, 108, 115, 101, 32, 45, 119, 97, 105, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 34, 105, 102, 40, 105, 44, 106, 40, 45, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 48, 44, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 48, 44, 45, 49, 41, 61, 61, 105, 44, 48, 41, 34, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 118, 105, 115, 117, 93, 32, 103, 109, 105, 99, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 46, 112, 110, 103, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 10, 45, 97, 98, 115, 91, 117, 110, 100, 111, 93, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 117, 110, 100, 111, 93, 10, 115, 99, 111, 114, 101, 61, 36, 117, 110, 100, 111, 115, 99, 111, 114, 101, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 34, 62, 61, 48, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 125, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 120, 61, 123, 34, 105, 110, 116, 40, 34, 64, 123, 33, 44, 120, 125, 34, 42, 34, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 34, 47, 34, 64, 123, 33, 44, 119, 125, 34, 41, 34, 125, 10, 121, 61, 123, 34, 105, 110, 116, 40, 34, 64, 123, 33, 44, 121, 125, 34, 42, 34, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 34, 47, 34, 64, 123, 33, 44, 104, 125, 34, 41, 34, 125, 10, 45, 105, 102, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 62, 48, 125, 10, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 45, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 45, 103, 101, 91, 98, 111, 97, 114, 100, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 61, 123, 40, 64, 123, 45, 49, 44, 43, 125, 43, 49, 41, 94, 50, 125, 32, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 123, 105, 102, 40, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 44, 51, 50, 44, 48, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 45, 49, 32, 45, 61, 61, 91, 45, 49, 93, 32, 45, 49, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 43, 125, 62, 49, 125, 10, 45, 106, 91, 117, 110, 100, 111, 93, 32, 91, 98, 111, 97, 114, 100, 93, 10, 117, 110, 100, 111, 115, 99, 111, 114, 101, 61, 36, 115, 99, 111, 114, 101, 10, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 98, 111, 97, 114, 100, 93, 32, 36, 62, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 104, 61, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 48, 32, 45, 97, 32, 121, 32, 45, 105, 102, 32, 64, 35, 32, 45, 114, 32, 49, 44, 36, 104, 44, 49, 44, 49, 44, 48, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 44, 36, 104, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 10, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 45, 49, 93, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 111, 119, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 49, 44, 49, 48, 48, 37, 32, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 34, 105, 102, 40, 121, 61, 61, 48, 44, 105, 102, 40, 105, 40, 120, 44, 104, 45, 49, 41, 44, 120, 44, 119, 41, 44, 105, 41, 34, 32, 45, 115, 111, 114, 116, 91, 98, 111, 97, 114, 100, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 98, 111, 97, 114, 100, 93, 32, 49, 44, 49, 48, 48, 37, 10, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 105, 110, 116, 40, 40, 64, 123, 45, 49, 44, 43, 125, 45, 49, 41, 94, 50, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 10, 45, 105, 102, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 10, 45, 119, 91, 93, 32, 64, 123, 118, 105, 115, 117, 44, 119, 125, 44, 64, 123, 118, 105, 115, 117, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 102, 105, 110, 97, 108, 32, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 10, 45, 105, 91, 103, 97, 109, 101, 111, 118, 101, 114, 93, 32, 50, 51, 48, 44, 56, 53, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 32, 79, 118, 101, 114, 33, 34, 44, 51, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 44, 50, 52, 44, 53, 52, 44, 51, 50, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 109, 103, 97, 109, 101, 111, 118, 101, 114, 34, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 50, 53, 10, 45, 45, 114, 91, 103, 97, 109, 101, 111, 118, 101, 114, 44, 109, 103, 97, 109, 101, 111, 118, 101, 114, 93, 32, 123, 52, 48, 48, 45, 49, 50, 42, 40, 36, 62, 43, 49, 41, 125, 37, 44, 123, 52, 48, 48, 45, 49, 50, 42, 40, 36, 62, 43, 49, 41, 125, 37, 10, 45, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 118, 105, 115, 117, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 40, 64, 123, 118, 105, 115, 117, 44, 104, 125, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 123, 36, 62, 47, 50, 53, 125, 44, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 53, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 98, 125, 125, 10, 45, 114, 109, 91, 103, 97, 109, 101, 111, 118, 101, 114, 44, 109, 103, 97, 109, 101, 111, 118, 101, 114, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 98, 111, 97, 114, 100, 44, 117, 110, 100, 111, 44, 98, 97, 108, 108, 115, 44, 98, 97, 99, 107, 44, 118, 105, 115, 117, 93, 10, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 108, 105, 102, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 111, 102, 32, 108, 105, 102, 101, 46, 10, 120, 95, 108, 105, 102, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 97, 109, 101, 32, 111, 102, 32, 108, 105, 102, 101, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 105, 115, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 116, 104, 101, 32, 98, 105, 103, 103, 101, 115, 116, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 98, 105, 111, 108, 111, 103, 105, 99, 97, 108, 92, 110, 10, 45, 45, 45, 45, 32, 115, 121, 115, 116, 101, 109, 46, 32, 89, 111, 117, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 115, 116, 111, 99, 107, 32, 111, 102, 32, 99, 101, 108, 108, 115, 32, 119, 104, 105, 99, 104, 32, 121, 111, 117, 32, 99, 97, 110, 92, 110, 10, 45, 45, 45, 45, 32, 115, 112, 114, 101, 97, 100, 32, 111, 118, 101, 114, 32, 116, 104, 101, 32, 98, 111, 97, 114, 100, 46, 32, 70, 111, 114, 32, 101, 97, 99, 104, 32, 110, 101, 119, 32, 99, 101, 108, 108, 115, 32, 99, 114, 101, 97, 116, 101, 100, 92, 110, 10, 45, 45, 45, 45, 32, 115, 105, 109, 117, 108, 116, 97, 110, 101, 111, 117, 115, 108, 121, 32, 97, 110, 100, 32, 115, 112, 111, 110, 116, 97, 110, 101, 111, 117, 115, 108, 121, 32, 98, 121, 32, 121, 111, 117, 114, 32, 115, 121, 115, 116, 101, 109, 44, 32, 121, 111, 117, 92, 110, 10, 45, 45, 45, 45, 32, 103, 97, 105, 110, 32, 109, 111, 114, 101, 32, 110, 101, 119, 32, 99, 101, 108, 108, 115, 32, 116, 111, 32, 115, 99, 97, 116, 116, 101, 114, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 115, 99, 97, 116, 116, 101, 114, 32, 99, 101, 108, 108, 115, 32, 105, 110, 32, 115, 116, 111, 99, 107, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 48, 93, 32, 57, 48, 44, 57, 48, 44, 49, 44, 49, 44, 48, 10, 45, 105, 91, 49, 93, 32, 91, 48, 93, 32, 45, 102, 91, 49, 93, 32, 48, 10, 45, 105, 91, 50, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 10, 45, 105, 91, 51, 93, 32, 49, 10, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 48, 10, 115, 99, 111, 114, 101, 61, 48, 10, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 48, 10, 115, 116, 111, 99, 107, 61, 53, 48, 48, 10, 45, 119, 91, 48, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 84, 104, 101, 32, 71, 97, 109, 101, 32, 111, 102, 32, 76, 105, 102, 101, 34, 10, 45, 100, 111, 10, 40, 49, 44, 49, 44, 49, 59, 49, 44, 48, 44, 49, 59, 49, 44, 49, 44, 49, 41, 32, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 116, 50, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 116, 50, 91, 45, 50, 93, 32, 51, 44, 51, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 118, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 61, 61, 49, 34, 32, 38, 38, 32, 34, 36, 115, 116, 111, 99, 107, 62, 48, 125, 10, 110, 98, 61, 123, 63, 42, 55, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 10, 120, 61, 123, 64, 123, 33, 44, 120, 125, 47, 64, 123, 33, 44, 119, 125, 42, 64, 123, 48, 44, 119, 125, 43, 63, 40, 45, 52, 44, 52, 41, 125, 10, 121, 61, 123, 64, 123, 33, 44, 121, 125, 47, 64, 123, 33, 44, 104, 125, 42, 64, 123, 48, 44, 104, 125, 43, 63, 40, 45, 51, 44, 51, 41, 125, 10, 45, 61, 91, 48, 93, 32, 49, 44, 36, 120, 44, 36, 121, 10, 45, 61, 91, 49, 93, 32, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 44, 36, 120, 44, 36, 121, 10, 45, 112, 111, 105, 110, 116, 91, 50, 93, 32, 123, 36, 120, 42, 64, 123, 50, 44, 119, 125, 47, 64, 123, 48, 44, 119, 125, 125, 44, 123, 36, 121, 42, 64, 123, 50, 44, 104, 125, 47, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 46, 56, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 115, 116, 111, 99, 107, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 48, 44, 36, 115, 116, 111, 99, 107, 45, 36, 110, 98, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 115, 116, 111, 99, 107, 61, 123, 36, 115, 116, 111, 99, 107, 45, 50, 42, 40, 109, 105, 110, 40, 48, 44, 105, 110, 116, 40, 64, 123, 45, 49, 44, 43, 125, 47, 49, 54, 42, 36, 115, 99, 111, 114, 101, 47, 49, 53, 48, 41, 41, 41, 125, 10, 45, 43, 91, 49, 93, 32, 91, 48, 93, 10, 45, 109, 105, 110, 91, 45, 49, 93, 32, 48, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 50, 125, 10, 45, 102, 91, 48, 45, 50, 93, 32, 48, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 48, 32, 115, 99, 111, 114, 101, 61, 48, 32, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 48, 32, 115, 116, 111, 99, 107, 61, 53, 48, 48, 32, 45, 114, 109, 91, 51, 93, 32, 45, 105, 91, 51, 93, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 51, 44, 119, 125, 61, 61, 49, 125, 10, 45, 114, 109, 91, 51, 93, 32, 45, 105, 91, 51, 93, 32, 123, 63, 40, 51, 44, 49, 50, 41, 125, 44, 49, 44, 49, 44, 51, 44, 63, 40, 49, 48, 48, 44, 50, 53, 53, 41, 10, 45, 114, 91, 51, 93, 32, 123, 63, 40, 49, 48, 48, 44, 51, 48, 48, 41, 125, 37, 44, 49, 44, 49, 44, 51, 44, 52, 10, 45, 112, 111, 105, 110, 116, 91, 51, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 91, 51, 93, 32, 123, 63, 40, 49, 48, 48, 44, 54, 48, 48, 41, 125, 37, 44, 49, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 91, 49, 93, 32, 64, 123, 50, 44, 119, 125, 44, 64, 123, 50, 44, 104, 125, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 55, 32, 45, 98, 91, 45, 49, 93, 32, 123, 49, 43, 36, 115, 99, 111, 114, 101, 42, 48, 46, 48, 53, 125, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 64, 123, 51, 44, 119, 125, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 43, 91, 50, 44, 45, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 46, 49, 10, 91, 50, 93, 32, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 48, 125, 10, 111, 112, 97, 99, 61, 123, 48, 46, 55, 42, 109, 105, 110, 40, 49, 44, 36, 115, 116, 111, 99, 107, 47, 53, 48, 48, 41, 125, 32, 114, 61, 123, 109, 105, 110, 40, 53, 48, 48, 44, 36, 115, 116, 111, 99, 107, 41, 42, 99, 111, 115, 40, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 41, 47, 49, 48, 48, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 49, 53, 43, 36, 114, 125, 44, 123, 49, 53, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 48, 44, 49, 57, 54, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 49, 48, 43, 36, 114, 125, 44, 123, 49, 48, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 51, 50, 44, 54, 52, 44, 49, 54, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 53, 43, 36, 114, 125, 44, 123, 53, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 50, 53, 53, 44, 50, 51, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 34, 76, 105, 118, 105, 110, 103, 32, 99, 101, 108, 108, 115, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 92, 110, 34, 92, 10, 34, 83, 116, 111, 99, 107, 32, 58, 32, 34, 36, 115, 116, 111, 99, 107, 34, 92, 110, 34, 92, 10, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 98, 101, 115, 116, 115, 99, 111, 114, 101, 44, 53, 44, 51, 44, 50, 50, 44, 48, 46, 55, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 45, 49, 93, 32, 103, 109, 105, 99, 95, 108, 105, 102, 101, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 40, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 37, 49, 48, 41, 125, 32, 115, 99, 111, 114, 101, 61, 64, 123, 48, 44, 43, 125, 32, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 123, 109, 97, 120, 40, 36, 115, 99, 111, 114, 101, 44, 36, 98, 101, 115, 116, 115, 99, 111, 114, 101, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 54, 48, 10, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 123, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 43, 49, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 48, 45, 51, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 108, 105, 103, 104, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 108, 105, 103, 104, 116, 32, 100, 101, 109, 111, 46, 10, 120, 95, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 76, 105, 103, 104, 116, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 118, 101, 32, 108, 105, 103, 104, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 109, 111, 117, 115, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 102, 97, 100, 101, 32, 108, 105, 103, 104, 116, 32, 105, 110, 47, 111, 117, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 32, 32, 32, 71, 39, 77, 73, 67, 92, 110, 76, 105, 103, 104, 116, 32, 68, 101, 109, 111, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 53, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 51, 10, 91, 45, 49, 93, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 55, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 53, 48, 37, 44, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 50, 48, 44, 50, 48, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 49, 48, 44, 48, 44, 49, 44, 49, 44, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 98, 91, 45, 49, 93, 32, 51, 32, 45, 110, 91, 45, 49, 93, 32, 45, 54, 48, 44, 54, 48, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 91, 45, 49, 93, 32, 45, 49, 53, 48, 44, 49, 53, 48, 10, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 76, 105, 103, 104, 116, 32, 68, 101, 109, 111, 34, 10, 108, 105, 103, 104, 116, 61, 55, 48, 10, 53, 49, 50, 44, 53, 49, 50, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 116, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 88, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 45, 64, 123, 33, 44, 120, 125, 41, 47, 50, 41, 125, 10, 89, 61, 123, 114, 111, 117, 110, 100, 40, 40, 104, 45, 64, 123, 33, 44, 121, 125, 41, 47, 50, 41, 125, 10, 45, 101, 108, 115, 101, 10, 88, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 45, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 99, 111, 115, 40, 50, 42, 36, 116, 41, 41, 41, 47, 50, 41, 125, 10, 89, 61, 123, 114, 111, 117, 110, 100, 40, 40, 104, 45, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 115, 105, 110, 40, 50, 46, 53, 42, 36, 116, 41, 41, 41, 47, 50, 41, 125, 10, 116, 61, 123, 36, 116, 43, 48, 46, 48, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 108, 105, 103, 104, 116, 61, 123, 109, 105, 110, 40, 50, 48, 48, 44, 36, 108, 105, 103, 104, 116, 43, 49, 48, 41, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 125, 32, 108, 105, 103, 104, 116, 61, 123, 109, 97, 120, 40, 49, 48, 44, 36, 108, 105, 103, 104, 116, 45, 49, 48, 41, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 122, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 88, 43, 64, 123, 45, 50, 44, 119, 125, 45, 49, 125, 44, 123, 36, 89, 43, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 49, 44, 48, 44, 49, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 50, 42, 119, 125, 44, 123, 50, 42, 104, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 98, 125, 125, 32, 45, 119, 97, 105, 116, 32, 45, 101, 108, 115, 101, 32, 45, 119, 97, 105, 116, 32, 50, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 32, 95, 106, 117, 108, 105, 97, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 99, 48, 114, 44, 95, 99, 48, 105, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 47, 74, 117, 108, 105, 97, 32, 101, 120, 112, 108, 111, 114, 101, 114, 46, 10, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 46, 51, 49, 55, 125, 44, 36, 123, 51, 61, 48, 46, 48, 51, 125, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 47, 74, 117, 108, 105, 97, 32, 101, 120, 112, 108, 111, 114, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 83, 101, 108, 101, 99, 116, 32, 122, 111, 111, 109, 105, 110, 103, 32, 114, 101, 103, 105, 111, 110, 32, 119, 105, 116, 104, 32, 109, 111, 117, 115, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 67, 108, 105, 99, 107, 32, 111, 110, 99, 101, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 67, 39, 32, 116, 111, 32, 112, 114, 105, 110, 116, 32, 99, 117, 114, 114, 101, 110, 116, 32, 102, 114, 97, 99, 116, 97, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 45, 119, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 36, 49, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 10, 45, 100, 111, 10, 115, 105, 122, 61, 123, 109, 105, 110, 40, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 41, 125, 10, 36, 115, 105, 122, 44, 36, 115, 105, 122, 32, 45, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 91, 45, 49, 93, 32, 64, 48, 44, 50, 53, 54, 44, 36, 49, 44, 123, 105, 102, 40, 36, 49, 44, 36, 50, 44, 48, 41, 125, 44, 123, 105, 102, 40, 36, 49, 44, 36, 51, 44, 48, 41, 125, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 36, 115, 105, 122, 44, 36, 115, 105, 122, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 117, 108, 105, 97, 32, 115, 101, 116, 32, 99, 61, 40, 34, 64, 123, 48, 44, 48, 125, 34, 44, 34, 64, 123, 48, 44, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 125, 34, 44, 34, 64, 123, 48, 44, 51, 125, 34, 41, 44, 32, 99, 48, 61, 40, 36, 50, 44, 36, 51, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 119, 91, 45, 49, 93, 32, 36, 115, 105, 122, 44, 36, 115, 105, 122, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 115, 101, 116, 32, 99, 61, 40, 34, 64, 123, 48, 44, 48, 125, 34, 44, 34, 64, 123, 48, 44, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 125, 34, 44, 34, 64, 123, 48, 44, 51, 125, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 115, 101, 108, 101, 99, 116, 91, 45, 49, 93, 32, 50, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 62, 48, 125, 10, 77, 61, 123, 109, 97, 120, 40, 64, 123, 45, 49, 44, 51, 125, 45, 64, 123, 45, 49, 44, 48, 125, 44, 64, 123, 45, 49, 44, 52, 125, 45, 64, 123, 45, 49, 44, 49, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 77, 60, 53, 125, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 36, 49, 32, 45, 114, 109, 91, 49, 93, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 40, 123, 64, 123, 48, 44, 48, 125, 43, 64, 123, 45, 49, 44, 48, 125, 42, 40, 64, 123, 48, 44, 50, 125, 45, 64, 123, 48, 44, 48, 125, 41, 47, 36, 119, 125, 59, 92, 10, 123, 64, 123, 48, 44, 49, 125, 43, 64, 123, 45, 49, 44, 49, 125, 42, 40, 64, 123, 48, 44, 51, 125, 45, 64, 123, 48, 44, 49, 125, 41, 47, 36, 104, 125, 59, 92, 10, 123, 64, 123, 48, 44, 48, 125, 43, 40, 64, 123, 45, 49, 44, 48, 125, 43, 36, 77, 41, 42, 40, 64, 123, 48, 44, 50, 125, 45, 64, 123, 48, 44, 48, 125, 41, 47, 36, 119, 125, 59, 92, 10, 123, 64, 123, 48, 44, 49, 125, 43, 40, 64, 123, 45, 49, 44, 49, 125, 43, 36, 77, 41, 42, 40, 64, 123, 48, 44, 51, 125, 45, 64, 123, 48, 44, 49, 125, 41, 47, 36, 104, 125, 41, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 67, 125, 125, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 74, 117, 108, 105, 97, 32, 115, 101, 116, 44, 32, 97, 116, 32, 99, 32, 61, 32, 40, 34, 64, 123, 48, 44, 48, 45, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 45, 51, 125, 34, 41, 44, 32, 119, 105, 116, 104, 32, 99, 48, 32, 61, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 115, 101, 116, 44, 32, 97, 116, 32, 99, 32, 61, 32, 40, 34, 64, 123, 48, 44, 48, 45, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 45, 51, 125, 34, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 40, 45, 50, 59, 45, 50, 59, 50, 59, 50, 41, 32, 45, 101, 108, 115, 101, 32, 40, 45, 50, 46, 49, 59, 45, 49, 46, 53, 59, 49, 46, 50, 59, 49, 46, 53, 41, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 32, 58, 10, 54, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 50, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 51, 50, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 50, 52, 44, 49, 44, 49, 44, 51, 44, 48, 44, 50, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 50, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 109, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 58, 32, 56, 60, 61, 95, 119, 105, 100, 116, 104, 61, 60, 50, 48, 44, 56, 60, 61, 95, 104, 101, 105, 103, 104, 116, 60, 61, 50, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 77, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 103, 97, 109, 101, 46, 10, 120, 95, 109, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 125, 62, 61, 56, 32, 38, 38, 32, 36, 49, 60, 61, 51, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 56, 32, 38, 38, 32, 36, 50, 60, 61, 51, 48, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 105, 115, 32, 116, 111, 32, 99, 108, 101, 97, 114, 32, 116, 104, 101, 32, 109, 105, 110, 101, 102, 105, 101, 108, 100, 32, 119, 105, 116, 104, 111, 117, 116, 32, 100, 101, 116, 111, 110, 97, 116, 105, 110, 103, 32, 97, 92, 110, 10, 45, 45, 45, 45, 32, 109, 105, 110, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 116, 114, 121, 32, 99, 108, 101, 97, 114, 105, 110, 103, 32, 111, 110, 101, 32, 115, 113, 117, 97, 114, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 102, 108, 97, 103, 32, 111, 114, 32, 117, 110, 102, 108, 97, 103, 32, 97, 32, 115, 113, 117, 97, 114, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 109, 105, 110, 101, 32, 102, 105, 101, 108, 100, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 34, 10, 45, 118, 32, 45, 10, 36, 49, 44, 36, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 51, 48, 44, 50, 32, 110, 98, 95, 109, 105, 110, 101, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 48, 44, 49, 59, 49, 44, 49, 44, 49, 41, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 61, 61, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 105, 101, 108, 100, 10, 45, 100, 111, 32, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 119, 45, 49, 41, 41, 125, 32, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 104, 45, 49, 41, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 33, 61, 49, 125, 10, 45, 45, 102, 91, 102, 105, 101, 108, 100, 93, 32, 49, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 50, 44, 36, 120, 44, 36, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 98, 111, 97, 114, 100, 10, 50, 52, 44, 50, 52, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 49, 56, 48, 44, 49, 51, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 49, 50, 44, 49, 50, 44, 52, 44, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 54, 44, 49, 50, 44, 49, 56, 44, 49, 50, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 50, 44, 54, 44, 49, 50, 44, 49, 56, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 51, 44, 49, 48, 44, 49, 52, 44, 49, 48, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 51, 44, 49, 49, 44, 49, 52, 44, 49, 49, 44, 49, 44, 50, 53, 53, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 45, 102, 99, 91, 45, 49, 93, 32, 50, 51, 48, 44, 50, 53, 48, 44, 50, 53, 53, 10, 45, 45, 116, 91, 45, 49, 93, 32, 34, 49, 34, 44, 49, 48, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 49, 57, 54, 44, 48, 32, 45, 45, 116, 91, 45, 50, 93, 32, 34, 50, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 49, 50, 56, 44, 48, 32, 45, 45, 116, 91, 45, 51, 93, 32, 34, 51, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 45, 116, 91, 45, 52, 93, 32, 34, 52, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 53, 93, 32, 34, 53, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 54, 93, 32, 34, 54, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 49, 53, 48, 44, 48, 44, 48, 10, 45, 45, 116, 91, 45, 55, 93, 32, 34, 55, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 49, 50, 56, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 56, 93, 32, 34, 56, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 54, 52, 44, 48, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 56, 45, 45, 49, 93, 32, 50, 10, 45, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 60, 61, 49, 124, 124, 121, 60, 61, 49, 124, 124, 120, 62, 61, 119, 45, 50, 124, 124, 121, 62, 61, 104, 45, 50, 44, 105, 102, 40, 120, 60, 121, 44, 49, 50, 56, 44, 50, 53, 53, 41, 44, 49, 54, 48, 43, 50, 42, 40, 121, 43, 120, 41, 41, 39, 10, 45, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 49, 51, 44, 49, 53, 44, 49, 49, 44, 49, 53, 44, 54, 44, 49, 56, 44, 49, 55, 44, 49, 56, 44, 49, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 50, 44, 49, 53, 44, 49, 50, 44, 54, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 50, 44, 54, 44, 54, 44, 57, 44, 49, 50, 44, 49, 50, 44, 49, 44, 50, 50, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 54, 44, 49, 52, 44, 49, 48, 44, 49, 56, 44, 49, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 56, 44, 49, 54, 44, 54, 44, 49, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 50, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 48, 46, 55, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 49, 51, 45, 45, 49, 93, 32, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 112, 114, 105, 116, 101, 115, 10, 40, 48, 44, 50, 51, 59, 48, 44, 50, 51, 94, 48, 44, 48, 59, 50, 51, 44, 50, 51, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 52, 44, 50, 52, 44, 49, 44, 50, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 42, 50, 52, 125, 44, 123, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 42, 50, 52, 125, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 102, 102, 115, 101, 116, 115, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 50, 51, 44, 50, 51, 44, 50, 53, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 109, 105, 110, 101, 115, 32, 58, 32, 34, 36, 110, 98, 95, 109, 105, 110, 101, 115, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 49, 48, 48, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 104, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 97, 110, 118, 97, 115, 10, 102, 97, 105, 108, 101, 100, 61, 48, 32, 115, 117, 99, 99, 101, 101, 100, 101, 100, 61, 48, 32, 110, 98, 95, 102, 108, 97, 103, 115, 61, 48, 32, 115, 116, 97, 114, 116, 101, 100, 61, 48, 10, 45, 100, 111, 10, 45, 45, 42, 91, 98, 111, 97, 114, 100, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 111, 102, 102, 115, 101, 116, 115, 93, 44, 91, 111, 102, 102, 115, 101, 116, 115, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 91, 111, 102, 102, 115, 101, 116, 115, 93, 32, 45, 45, 119, 97, 114, 112, 91, 115, 112, 114, 105, 116, 101, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 50, 52, 44, 50, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 105, 102, 32, 36, 102, 97, 105, 108, 101, 100, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 51, 44, 51, 44, 51, 56, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 49, 32, 45, 98, 108, 101, 110, 100, 91, 99, 97, 110, 118, 97, 115, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 66, 111, 111, 109, 33, 32, 89, 111, 117, 32, 102, 97, 105, 108, 101, 100, 33, 34, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 49, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 32, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 108, 105, 102, 32, 36, 115, 117, 99, 99, 101, 101, 100, 101, 100, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 117, 99, 99, 101, 115, 115, 33, 34, 44, 51, 44, 51, 44, 51, 56, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 49, 32, 45, 98, 108, 101, 110, 100, 91, 99, 97, 110, 118, 97, 115, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 67, 111, 110, 103, 114, 97, 116, 117, 108, 97, 116, 105, 111, 110, 115, 33, 32, 40, 34, 123, 114, 111, 117, 110, 100, 40, 64, 124, 45, 36, 116, 105, 99, 41, 125, 34, 32, 115, 41, 34, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 50, 53, 53, 44, 49, 48, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 32, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 108, 115, 101, 10, 45, 45, 61, 61, 91, 98, 111, 97, 114, 100, 93, 32, 49, 48, 32, 110, 98, 95, 102, 108, 97, 103, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 33, 36, 115, 116, 97, 114, 116, 101, 100, 125, 32, 116, 105, 99, 61, 64, 124, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 69, 108, 97, 112, 115, 101, 100, 32, 116, 105, 109, 101, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 64, 124, 45, 36, 116, 105, 99, 41, 125, 34, 32, 115, 32, 47, 32, 70, 108, 97, 103, 115, 32, 58, 32, 34, 36, 110, 98, 95, 102, 108, 97, 103, 115, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 50, 53, 53, 44, 50, 48, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 53, 48, 10, 120, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 50, 52, 41, 47, 50, 52, 41, 125, 32, 121, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 121, 125, 45, 50, 52, 41, 47, 50, 52, 41, 125, 32, 98, 61, 64, 123, 33, 44, 98, 125, 10, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 77, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 34, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 36, 98, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 62, 61, 48, 92, 32, 38, 38, 92, 32, 36, 121, 62, 61, 48, 92, 32, 38, 38, 92, 32, 36, 120, 60, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 92, 32, 38, 38, 92, 32, 36, 121, 60, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 125, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 125, 10, 115, 116, 97, 114, 116, 101, 100, 61, 49, 32, 118, 97, 108, 61, 64, 123, 102, 105, 101, 108, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 105, 102, 32, 123, 36, 118, 97, 108, 61, 61, 48, 125, 32, 45, 45, 61, 61, 91, 102, 105, 101, 108, 100, 93, 32, 48, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 102, 105, 101, 108, 100, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 102, 97, 105, 108, 101, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 118, 97, 108, 61, 61, 49, 125, 32, 45, 45, 102, 108, 111, 111, 100, 91, 102, 105, 101, 108, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 49, 44, 49, 44, 45, 49, 32, 45, 61, 61, 91, 45, 49, 93, 32, 45, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 102, 105, 101, 108, 100, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 61, 91, 98, 111, 97, 114, 100, 93, 32, 36, 118, 97, 108, 44, 36, 120, 44, 36, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 110, 61, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 59, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 110, 62, 61, 49, 48, 34, 32, 38, 38, 32, 34, 110, 60, 61, 49, 49, 125, 10, 45, 61, 91, 98, 111, 97, 114, 100, 93, 32, 123, 105, 102, 40, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 61, 61, 49, 49, 44, 49, 48, 44, 49, 49, 41, 125, 44, 36, 120, 44, 36, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 52, 125, 32, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 49, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 98, 95, 109, 105, 110, 101, 115, 61, 61, 36, 110, 98, 95, 102, 108, 97, 103, 115, 92, 32, 38, 38, 92, 32, 64, 123, 98, 111, 97, 114, 100, 44, 77, 125, 33, 61, 49, 49, 125, 32, 115, 117, 99, 99, 101, 101, 100, 101, 100, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 100, 101, 109, 111, 46, 10, 120, 95, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 67, 108, 105, 99, 107, 32, 111, 110, 32, 116, 119, 111, 32, 112, 111, 105, 110, 116, 115, 32, 116, 111, 32, 99, 111, 109, 112, 117, 116, 101, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 92, 110, 10, 45, 45, 45, 45, 32, 112, 97, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 111, 115, 101, 32, 112, 111, 105, 110, 116, 115, 46, 32, 84, 104, 101, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 105, 115, 32, 116, 104, 101, 110, 92, 110, 10, 45, 45, 45, 45, 32, 99, 104, 111, 115, 101, 110, 32, 97, 115, 32, 116, 104, 101, 32, 110, 101, 120, 116, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 102, 111, 114, 32, 97, 110, 111, 116, 104, 101, 114, 32, 112, 97, 116, 104, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 52, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 119, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 101, 108, 101, 99, 116, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 80, 48, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 48, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 77, 105, 110, 105, 109, 97, 108, 32, 80, 97, 116, 104, 32, 68, 101, 109, 111, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 77, 105, 110, 105, 109, 97, 108, 32, 80, 97, 116, 104, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 104, 111, 119, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 115, 92, 110, 34, 92, 10, 34, 99, 97, 110, 32, 98, 101, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 100, 101, 116, 101, 99, 116, 32, 97, 110, 100, 32, 116, 114, 97, 99, 107, 32, 101, 100, 103, 101, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 34, 92, 10, 34, 85, 115, 101, 32, 121, 111, 117, 114, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 100, 101, 115, 105, 114, 101, 100, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 97, 110, 100, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 115, 44, 92, 110, 34, 92, 10, 34, 97, 110, 100, 32, 115, 101, 101, 32, 119, 104, 97, 116, 32, 105, 115, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 115, 101, 32, 112, 111, 105, 110, 116, 115, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 101, 120, 112, 40, 45, 105, 47, 49, 48, 41, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 45, 115, 101, 108, 101, 99, 116, 91, 48, 93, 32, 48, 32, 80, 48, 61, 64, 45, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 109, 105, 110, 40, 36, 80, 48, 41, 62, 61, 48, 125, 10, 112, 61, 49, 10, 45, 100, 111, 10, 45, 119, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 101, 108, 101, 99, 116, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 80, 34, 36, 112, 10, 45, 45, 115, 101, 108, 101, 99, 116, 91, 48, 93, 32, 48, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 83, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 83, 97, 118, 105, 110, 103, 32, 115, 110, 97, 112, 115, 104, 111, 116, 46, 46, 46, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 111, 91, 48, 93, 32, 103, 109, 105, 99, 95, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 46, 112, 110, 103, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 115, 101, 10, 80, 49, 61, 64, 45, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 109, 105, 110, 40, 36, 80, 49, 41, 62, 61, 48, 125, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 46, 46, 46, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 91, 49, 93, 32, 36, 80, 48, 44, 36, 80, 49, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 48, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 32, 45, 111, 114, 91, 48, 44, 45, 49, 93, 10, 80, 48, 61, 36, 80, 49, 32, 112, 61, 123, 36, 112, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 112, 97, 99, 109, 97, 110, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 112, 97, 99, 109, 97, 110, 32, 103, 97, 109, 101, 46, 10, 120, 95, 112, 97, 99, 109, 97, 110, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 80, 97, 99, 109, 97, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 71, 39, 77, 73, 67, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 112, 97, 99, 109, 97, 110, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 118, 101, 32, 116, 104, 101, 32, 112, 97, 99, 109, 97, 110, 32, 116, 111, 32, 101, 97, 116, 32, 97, 108, 108, 32, 112, 97, 99, 100, 111, 116, 115, 32, 111, 110, 32, 116, 104, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 108, 101, 118, 101, 108, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 112, 97, 99, 103, 117, 109, 32, 109, 97, 107, 101, 115, 32, 112, 97, 99, 109, 97, 110, 32, 105, 110, 118, 105, 110, 99, 105, 98, 108, 101, 32, 102, 111, 114, 32, 49, 48, 32, 115, 101, 99, 111, 110, 100, 115, 44, 92, 110, 10, 45, 45, 45, 45, 32, 119, 104, 105, 99, 104, 32, 109, 101, 97, 110, 32, 112, 97, 99, 109, 97, 110, 32, 99, 97, 110, 32, 101, 97, 116, 32, 103, 104, 111, 115, 116, 115, 32, 100, 117, 114, 105, 110, 103, 32, 116, 104, 105, 115, 32, 116, 105, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 103, 104, 111, 115, 116, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 99, 104, 101, 114, 114, 121, 32, 101, 97, 114, 110, 115, 32, 49, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 110, 32, 111, 114, 97, 110, 103, 101, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 98, 97, 110, 97, 110, 97, 32, 101, 97, 114, 110, 115, 32, 53, 48, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 116, 111, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 97, 99, 109, 97, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 109, 32, 34, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 58, 32, 51, 49, 44, 49, 57, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 49, 53, 44, 49, 53, 44, 49, 53, 44, 49, 44, 49, 32, 51, 49, 44, 49, 50, 44, 49, 44, 49, 44, 39, 121, 60, 52, 43, 56, 42, 97, 98, 115, 40, 99, 111, 115, 40, 120, 42, 48, 46, 51, 43, 48, 46, 50, 53, 42, 112, 105, 42, 36, 34, 34, 49, 41, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 48, 44, 48, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 48, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 48, 44, 50, 53, 53, 44, 50, 50, 50, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 49, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 49, 56, 52, 44, 50, 50, 50, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 50, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 49, 56, 52, 44, 55, 49, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 51, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 97, 102, 114, 97, 105, 100, 95, 103, 102, 120, 32, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 97, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 62, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 109, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 48, 44, 48, 44, 48, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 100, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 36, 62, 32, 45, 110, 109, 91, 45, 50, 93, 32, 112, 97, 99, 109, 97, 110, 95, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 97, 99, 109, 97, 110, 109, 95, 36, 62, 10, 45, 100, 111, 110, 101, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 103, 104, 111, 115, 116, 100, 95, 48, 93, 32, 48, 32, 45, 33, 61, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 100, 109, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 99, 104, 101, 114, 114, 121, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 48, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 49, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 111, 114, 97, 110, 103, 101, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 50, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 98, 97, 110, 97, 110, 97, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 51, 10, 50, 48, 44, 50, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 97, 116, 101, 10, 115, 99, 111, 114, 101, 48, 61, 34, 49, 48, 34, 32, 115, 99, 111, 114, 101, 49, 61, 34, 49, 48, 48, 34, 32, 115, 99, 111, 114, 101, 50, 61, 34, 49, 48, 48, 48, 34, 32, 115, 99, 111, 114, 101, 51, 61, 34, 53, 48, 48, 48, 34, 32, 115, 99, 111, 114, 101, 52, 61, 34, 65, 114, 103, 104, 33, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 123, 115, 99, 111, 114, 101, 36, 62, 125, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 109, 36, 62, 32, 45, 110, 109, 91, 45, 50, 93, 32, 115, 99, 111, 114, 101, 36, 62, 10, 45, 100, 111, 110, 101, 10, 116, 105, 109, 101, 52, 61, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 116, 105, 109, 101, 51, 61, 50, 53, 53, 44, 50, 53, 53, 44, 51, 50, 32, 116, 105, 109, 101, 50, 61, 50, 53, 53, 44, 49, 50, 56, 44, 51, 50, 32, 116, 105, 109, 101, 49, 61, 50, 53, 53, 44, 51, 50, 44, 51, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 49, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 60, 34, 32, 115, 34, 44, 48, 44, 48, 44, 50, 51, 44, 49, 44, 36, 123, 116, 105, 109, 101, 123, 109, 105, 110, 40, 52, 44, 114, 111, 117, 110, 100, 40, 40, 36, 60, 43, 49, 41, 47, 50, 41, 41, 125, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 116, 105, 109, 101, 36, 60, 32, 45, 100, 111, 110, 101, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 101, 116, 32, 82, 101, 97, 100, 121, 33, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 56, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 110, 109, 91, 45, 50, 93, 32, 103, 101, 116, 95, 114, 101, 97, 100, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 101, 116, 95, 114, 101, 97, 100, 121, 109, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 56, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 110, 109, 91, 45, 50, 93, 32, 103, 97, 109, 101, 95, 111, 118, 101, 114, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 97, 109, 101, 95, 111, 118, 101, 114, 109, 10, 115, 99, 111, 114, 101, 61, 48, 32, 108, 101, 118, 101, 108, 61, 45, 49, 32, 108, 105, 118, 101, 115, 61, 51, 32, 105, 115, 95, 113, 117, 105, 116, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 36, 108, 101, 118, 101, 108, 60, 48, 125, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 123, 40, 40, 45, 36, 108, 101, 118, 101, 108, 45, 49, 41, 37, 54, 41, 43, 49, 125, 32, 109, 119, 61, 123, 119, 125, 32, 109, 104, 61, 123, 104, 125, 32, 109, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 109, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 108, 101, 118, 101, 108, 60, 45, 54, 125, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 51, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 97, 112, 48, 32, 45, 105, 91, 109, 97, 112, 93, 32, 91, 45, 49, 93, 10, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 45, 49, 44, 48, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 48, 44, 45, 49, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 49, 44, 48, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 122, 32, 45, 33, 61, 91, 45, 49, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 97, 110, 95, 103, 111, 10, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 36, 109, 119, 50, 44, 36, 109, 104, 50, 44, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 50, 44, 48, 44, 105, 102, 40, 105, 61, 61, 52, 44, 49, 44, 105, 102, 40, 105, 61, 61, 49, 44, 50, 44, 105, 41, 41, 41, 39, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 97, 116, 104, 10, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 50, 32, 112, 97, 99, 100, 111, 116, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 108, 101, 118, 101, 108, 61, 123, 45, 36, 108, 101, 118, 101, 108, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 109, 97, 112, 93, 32, 39, 105, 102, 40, 105, 62, 61, 52, 44, 48, 44, 105, 41, 39, 32, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 48, 48, 37, 44, 49, 54, 48, 48, 37, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 57, 32, 45, 98, 91, 45, 49, 93, 32, 50, 10, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 98, 115, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 56, 48, 37, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 91, 45, 49, 93, 32, 49, 54, 10, 45, 45, 42, 91, 45, 49, 93, 32, 36, 95, 103, 108, 101, 118, 101, 108, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 95, 98, 108, 101, 118, 101, 108, 32, 45, 42, 91, 45, 51, 93, 32, 36, 95, 114, 108, 101, 118, 101, 108, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 45, 91, 109, 97, 112, 93, 32, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 48, 48, 37, 44, 49, 54, 48, 48, 37, 10, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 114, 91, 45, 51, 44, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 100, 111, 116, 115, 95, 103, 102, 120, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 103, 117, 109, 95, 103, 102, 120, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 43, 50, 52, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 116, 91, 45, 49, 93, 32, 34, 76, 105, 118, 101, 115, 32, 58, 34, 44, 49, 48, 44, 48, 44, 50, 51, 44, 49, 44, 50, 53, 53, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 34, 44, 123, 119, 45, 49, 52, 48, 125, 44, 48, 44, 50, 51, 44, 49, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 108, 105, 118, 101, 115, 32, 45, 45, 114, 91, 112, 97, 99, 109, 97, 110, 95, 50, 93, 32, 49, 50, 44, 49, 50, 44, 49, 44, 52, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 108, 105, 118, 101, 115, 125, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 44, 48, 44, 50, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 57, 48, 44, 55, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 10, 45, 119, 91, 118, 105, 115, 117, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 80, 97, 99, 109, 97, 110, 34, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 76, 101, 118, 101, 108, 32, 34, 36, 108, 101, 118, 101, 108, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 48, 41, 32, 45, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 56, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 95, 78, 32, 45, 110, 109, 91, 45, 50, 93, 32, 108, 101, 118, 101, 108, 109, 95, 78, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 120, 103, 36, 62, 61, 123, 49, 54, 42, 36, 109, 119, 50, 125, 32, 121, 103, 36, 62, 61, 123, 49, 54, 42, 36, 109, 104, 50, 43, 52, 42, 36, 62, 125, 32, 100, 103, 36, 62, 61, 51, 32, 109, 103, 36, 62, 61, 48, 32, 45, 100, 111, 110, 101, 10, 120, 112, 61, 123, 49, 54, 42, 49, 48, 125, 32, 121, 112, 61, 123, 49, 54, 42, 50, 49, 125, 32, 100, 112, 61, 45, 49, 32, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 45, 49, 32, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 61, 64, 124, 32, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 48, 32, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 61, 49, 10, 120, 115, 99, 111, 114, 101, 61, 48, 32, 121, 115, 99, 111, 114, 101, 61, 48, 32, 110, 115, 99, 111, 114, 101, 61, 48, 32, 111, 115, 99, 111, 114, 101, 61, 48, 10, 45, 100, 111, 10, 116, 61, 123, 105, 110, 116, 40, 54, 42, 64, 124, 41, 37, 52, 125, 32, 108, 101, 102, 116, 61, 123, 105, 102, 40, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 62, 61, 48, 44, 49, 48, 45, 64, 124, 43, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 44, 45, 49, 41, 125, 10, 91, 118, 105, 115, 117, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 109, 103, 61, 36, 123, 109, 103, 36, 62, 125, 32, 120, 103, 61, 36, 123, 120, 103, 36, 62, 125, 32, 121, 103, 61, 123, 36, 123, 121, 103, 36, 62, 125, 43, 50, 52, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 61, 61, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 36, 62, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 49, 125, 32, 116, 50, 61, 123, 105, 102, 40, 36, 108, 101, 102, 116, 62, 55, 44, 36, 116, 44, 105, 102, 40, 36, 108, 101, 102, 116, 62, 51, 44, 105, 110, 116, 40, 49, 50, 42, 64, 124, 41, 37, 52, 44, 105, 110, 116, 40, 50, 52, 42, 64, 124, 41, 37, 52, 41, 41, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 97, 95, 36, 116, 50, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 100, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 103, 104, 111, 115, 116, 100, 109, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 36, 62, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 123, 36, 109, 103, 45, 50, 125, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 100, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 100, 109, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 47, 50, 125, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 57, 48, 42, 40, 97, 98, 115, 40, 36, 100, 112, 41, 45, 49, 41, 125, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 62, 54, 52, 125, 10, 45, 105, 102, 32, 123, 36, 108, 105, 118, 101, 115, 33, 61, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 103, 97, 109, 101, 95, 111, 118, 101, 114, 93, 44, 123, 40, 119, 45, 64, 123, 103, 97, 109, 101, 95, 111, 118, 101, 114, 44, 119, 125, 41, 47, 50, 125, 44, 123, 49, 50, 43, 40, 104, 45, 64, 123, 103, 97, 109, 101, 95, 111, 118, 101, 114, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 123, 109, 105, 110, 40, 49, 44, 40, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 45, 54, 52, 41, 47, 53, 48, 41, 125, 44, 91, 103, 97, 109, 101, 95, 111, 118, 101, 114, 109, 93, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 57, 48, 44, 55, 44, 49, 48, 49, 44, 49, 56, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 112, 97, 99, 109, 97, 110, 95, 36, 116, 44, 112, 97, 99, 109, 97, 110, 109, 95, 36, 116, 93, 32, 123, 57, 48, 42, 40, 97, 98, 115, 40, 36, 100, 112, 41, 45, 49, 41, 125, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 108, 101, 102, 116, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 108, 101, 102, 116, 62, 61, 53, 34, 32, 124, 124, 32, 34, 36, 116, 60, 61, 50, 41, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 116, 105, 109, 101, 123, 114, 111, 117, 110, 100, 40, 36, 108, 101, 102, 116, 41, 125, 93, 44, 123, 40, 119, 45, 64, 123, 116, 105, 109, 101, 48, 44, 119, 125, 41, 47, 50, 125, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 36, 115, 99, 111, 114, 101, 44, 123, 119, 45, 54, 53, 125, 44, 49, 44, 50, 50, 44, 49, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 125, 10, 45, 106, 91, 45, 49, 93, 32, 91, 108, 101, 118, 101, 108, 95, 78, 93, 44, 123, 40, 119, 45, 64, 123, 108, 101, 118, 101, 108, 95, 78, 44, 119, 125, 41, 47, 50, 125, 44, 123, 49, 50, 43, 40, 104, 45, 49, 46, 53, 42, 64, 123, 108, 101, 118, 101, 108, 95, 78, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 108, 101, 118, 101, 108, 109, 95, 78, 93, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 64, 124, 42, 52, 41, 37, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 101, 116, 95, 114, 101, 97, 100, 121, 93, 44, 123, 40, 119, 45, 64, 123, 103, 101, 116, 95, 114, 101, 97, 100, 121, 44, 119, 125, 41, 47, 50, 125, 44, 123, 50, 52, 43, 40, 104, 43, 64, 123, 103, 101, 116, 95, 114, 101, 97, 100, 121, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 103, 101, 116, 95, 114, 101, 97, 100, 121, 109, 93, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 111, 115, 99, 111, 114, 101, 62, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 115, 99, 111, 114, 101, 36, 110, 115, 99, 111, 114, 101, 93, 44, 36, 120, 115, 99, 111, 114, 101, 44, 36, 121, 115, 99, 111, 114, 101, 44, 48, 44, 48, 44, 36, 111, 115, 99, 111, 114, 101, 44, 91, 115, 99, 111, 114, 101, 109, 36, 110, 115, 99, 111, 114, 101, 93, 44, 50, 53, 53, 32, 111, 115, 99, 111, 114, 101, 61, 123, 36, 111, 115, 99, 111, 114, 101, 45, 48, 46, 48, 52, 125, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 115, 99, 111, 114, 101, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 103, 97, 116, 101, 93, 44, 49, 53, 56, 44, 50, 50, 51, 44, 48, 44, 48, 44, 48, 46, 54, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 120, 103, 61, 36, 123, 120, 103, 36, 62, 125, 32, 121, 103, 61, 36, 123, 121, 103, 36, 62, 125, 32, 100, 103, 61, 36, 123, 100, 103, 36, 62, 125, 32, 109, 103, 61, 36, 123, 109, 103, 36, 62, 125, 10, 45, 105, 102, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 120, 103, 45, 36, 120, 112, 41, 44, 97, 98, 115, 40, 36, 121, 103, 45, 36, 121, 112, 41, 41, 60, 61, 56, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 61, 61, 48, 34, 32, 38, 38, 32, 34, 33, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 125, 32, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 49, 10, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 49, 125, 32, 109, 103, 61, 50, 32, 109, 103, 36, 62, 61, 36, 109, 103, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 49, 48, 48, 125, 10, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 109, 103, 62, 61, 50, 34, 32, 38, 38, 32, 34, 40, 36, 120, 103, 62, 62, 52, 41, 61, 61, 36, 109, 119, 50, 34, 32, 38, 38, 32, 34, 40, 36, 121, 103, 62, 62, 52, 41, 61, 61, 36, 109, 104, 50, 125, 10, 109, 103, 61, 123, 36, 109, 103, 43, 48, 46, 48, 49, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 62, 61, 51, 125, 32, 109, 103, 61, 48, 32, 120, 103, 61, 123, 36, 120, 103, 38, 45, 50, 125, 32, 121, 103, 61, 123, 36, 121, 103, 38, 45, 50, 125, 32, 45, 101, 110, 100, 105, 102, 10, 109, 103, 36, 62, 61, 36, 109, 103, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 40, 36, 120, 103, 38, 49, 53, 41, 34, 32, 38, 38, 32, 34, 33, 40, 36, 121, 103, 38, 49, 53, 41, 125, 10, 40, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 59, 48, 44, 49, 44, 50, 44, 51, 41, 10, 45, 105, 102, 32, 123, 36, 109, 103, 60, 50, 125, 10, 45, 61, 91, 45, 49, 93, 32, 123, 63, 40, 48, 46, 54, 44, 49, 41, 125, 44, 123, 105, 102, 40, 36, 109, 103, 61, 61, 48, 44, 100, 88, 48, 61, 36, 120, 112, 45, 36, 120, 103, 59, 100, 89, 48, 61, 36, 121, 112, 45, 36, 121, 103, 59, 105, 102, 40, 97, 98, 115, 40, 100, 88, 48, 41, 62, 97, 98, 115, 40, 100, 89, 48, 41, 44, 105, 102, 40, 100, 88, 48, 62, 48, 44, 48, 44, 50, 41, 44, 105, 102, 40, 100, 89, 48, 62, 48, 44, 49, 44, 51, 41, 41, 44, 92, 10, 100, 88, 49, 61, 36, 120, 112, 45, 36, 120, 103, 59, 100, 89, 49, 61, 36, 121, 112, 45, 36, 121, 103, 59, 105, 102, 40, 97, 98, 115, 40, 100, 88, 49, 41, 60, 97, 98, 115, 40, 100, 89, 49, 41, 44, 105, 102, 40, 100, 88, 49, 62, 48, 44, 50, 44, 48, 41, 44, 105, 102, 40, 100, 89, 49, 62, 48, 44, 51, 44, 49, 41, 41, 41, 125, 10, 45, 61, 91, 45, 49, 93, 32, 48, 44, 123, 40, 36, 100, 103, 43, 50, 41, 37, 52, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 32, 45, 61, 91, 45, 49, 93, 32, 48, 46, 56, 44, 64, 123, 112, 97, 116, 104, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 64, 123, 112, 97, 116, 104, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 120, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 100, 61, 123, 105, 40, 36, 62, 44, 49, 41, 125, 32, 45, 105, 102, 32, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 44, 36, 100, 41, 125, 32, 100, 103, 61, 36, 100, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 103, 36, 62, 61, 36, 100, 10, 45, 101, 110, 100, 105, 102, 10, 117, 61, 123, 68, 61, 36, 123, 100, 103, 36, 62, 125, 59, 40, 68, 61, 61, 48, 41, 45, 40, 68, 61, 61, 50, 41, 125, 10, 118, 61, 123, 68, 61, 36, 123, 100, 103, 36, 62, 125, 59, 40, 68, 61, 61, 49, 41, 45, 40, 68, 61, 61, 51, 41, 125, 10, 120, 103, 36, 62, 61, 123, 40, 36, 120, 103, 43, 36, 117, 42, 40, 49, 43, 40, 36, 109, 103, 61, 61, 48, 41, 41, 41, 37, 40, 49, 54, 42, 36, 109, 119, 41, 125, 10, 121, 103, 36, 62, 61, 123, 40, 36, 121, 103, 43, 36, 118, 42, 40, 49, 43, 40, 36, 109, 103, 61, 61, 48, 41, 41, 41, 37, 40, 49, 54, 42, 36, 109, 104, 41, 125, 10, 45, 100, 111, 110, 101, 10, 45, 119, 97, 105, 116, 32, 50, 50, 10, 45, 105, 102, 32, 123, 33, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 125, 10, 100, 61, 123, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 44, 49, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 44, 50, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 44, 51, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 44, 52, 44, 36, 100, 112, 41, 41, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 40, 36, 120, 112, 38, 49, 53, 41, 34, 32, 38, 38, 32, 34, 33, 40, 36, 121, 112, 38, 49, 53, 41, 125, 10, 105, 61, 64, 123, 109, 97, 112, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 61, 61, 50, 125, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 49, 48, 125, 32, 112, 97, 99, 100, 111, 116, 115, 61, 123, 36, 112, 97, 99, 100, 111, 116, 115, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 105, 61, 61, 51, 125, 32, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 64, 124, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 105, 102, 32, 123, 33, 36, 123, 109, 103, 36, 62, 125, 125, 32, 109, 103, 36, 62, 61, 49, 32, 100, 103, 36, 62, 61, 123, 40, 36, 123, 100, 103, 36, 62, 125, 43, 50, 41, 37, 52, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 105, 62, 61, 52, 125, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 36, 123, 115, 99, 111, 114, 101, 123, 36, 105, 45, 52, 125, 125, 125, 32, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 123, 36, 105, 45, 52, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 61, 91, 109, 97, 112, 93, 32, 48, 44, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 49, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 61, 123, 105, 102, 40, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 44, 123, 97, 98, 115, 40, 36, 100, 41, 45, 49, 125, 41, 125, 44, 36, 100, 44, 36, 100, 112, 41, 125, 10, 100, 61, 123, 105, 102, 40, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 44, 123, 97, 98, 115, 40, 36, 100, 41, 45, 49, 125, 41, 125, 44, 36, 100, 44, 45, 97, 98, 115, 40, 36, 100, 112, 41, 41, 125, 10, 100, 112, 61, 36, 100, 10, 45, 101, 108, 115, 101, 32, 100, 112, 61, 123, 105, 102, 40, 97, 98, 115, 40, 36, 100, 45, 36, 100, 112, 41, 61, 61, 50, 44, 36, 100, 44, 36, 100, 112, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 61, 123, 105, 102, 40, 36, 100, 112, 62, 48, 44, 48, 44, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 41, 125, 10, 117, 61, 123, 40, 36, 100, 112, 61, 61, 49, 41, 45, 40, 36, 100, 112, 61, 61, 51, 41, 125, 10, 118, 61, 123, 40, 36, 100, 112, 61, 61, 50, 41, 45, 40, 36, 100, 112, 61, 61, 52, 41, 125, 10, 120, 112, 61, 123, 40, 36, 120, 112, 43, 50, 42, 36, 117, 41, 37, 40, 49, 54, 42, 36, 109, 119, 41, 125, 10, 121, 112, 61, 123, 40, 36, 121, 112, 43, 50, 42, 36, 118, 41, 37, 40, 49, 54, 42, 36, 109, 104, 41, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 124, 62, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 43, 49, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 120, 103, 36, 62, 61, 123, 36, 123, 120, 103, 36, 62, 125, 38, 45, 50, 125, 32, 121, 103, 36, 62, 61, 123, 36, 123, 121, 103, 36, 62, 125, 38, 45, 50, 125, 32, 109, 103, 36, 62, 61, 123, 105, 102, 40, 36, 123, 109, 103, 36, 62, 125, 61, 61, 49, 44, 48, 44, 36, 123, 109, 103, 36, 62, 125, 41, 125, 32, 45, 100, 111, 110, 101, 10, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 34, 32, 38, 38, 32, 34, 40, 64, 124, 45, 36, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 41, 62, 61, 49, 48, 125, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 64, 123, 109, 97, 112, 48, 44, 119, 125, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 64, 123, 109, 97, 112, 48, 44, 104, 125, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 64, 123, 109, 97, 112, 44, 40, 36, 120, 44, 36, 121, 41, 125, 34, 32, 38, 38, 32, 34, 64, 123, 109, 97, 112, 48, 44, 40, 36, 120, 44, 36, 121, 41, 125, 61, 61, 50, 125, 10, 110, 61, 123, 109, 105, 110, 40, 51, 44, 105, 110, 116, 40, 97, 98, 115, 40, 103, 42, 49, 46, 55, 41, 41, 41, 125, 32, 45, 61, 91, 109, 97, 112, 93, 32, 123, 52, 43, 36, 110, 125, 44, 36, 120, 44, 36, 121, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 102, 114, 117, 105, 116, 36, 110, 93, 44, 123, 49, 54, 42, 36, 120, 125, 44, 123, 49, 54, 42, 36, 121, 43, 50, 52, 125, 32, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 61, 64, 124, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 105, 115, 95, 113, 117, 105, 116, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 33, 36, 105, 115, 95, 113, 117, 105, 116, 34, 32, 38, 38, 32, 34, 36, 112, 97, 99, 100, 111, 116, 115, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 113, 117, 105, 116, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 108, 105, 102, 32, 36, 112, 97, 99, 100, 111, 116, 115, 10, 108, 105, 118, 101, 115, 61, 123, 36, 108, 105, 118, 101, 115, 45, 49, 125, 10, 45, 101, 108, 115, 101, 10, 108, 101, 118, 101, 108, 61, 123, 45, 36, 108, 101, 118, 101, 108, 45, 49, 125, 32, 45, 119, 97, 105, 116, 91, 48, 93, 32, 45, 49, 10, 45, 114, 109, 91, 109, 97, 112, 48, 44, 109, 97, 112, 44, 99, 97, 110, 95, 103, 111, 44, 112, 97, 116, 104, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 118, 105, 115, 117, 44, 108, 101, 118, 101, 108, 95, 78, 44, 108, 101, 118, 101, 108, 109, 95, 78, 93, 10, 45, 119, 104, 105, 108, 101, 32, 36, 108, 105, 118, 101, 115, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 58, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 52, 32, 40, 48, 44, 36, 49, 94, 48, 44, 36, 50, 94, 48, 44, 36, 51, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 49, 44, 51, 44, 52, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 48, 44, 49, 49, 44, 51, 44, 52, 44, 48, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 50, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 53, 44, 123, 55, 45, 40, 36, 52, 62, 61, 50, 41, 125, 44, 48, 44, 49, 44, 49, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 49, 48, 44, 123, 55, 45, 40, 36, 52, 62, 61, 50, 41, 125, 44, 48, 44, 49, 44, 49, 10, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 97, 102, 114, 97, 105, 100, 95, 103, 102, 120, 32, 58, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 99, 111, 108, 61, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 40, 48, 44, 48, 94, 48, 44, 48, 94, 48, 44, 50, 48, 56, 41, 32, 45, 101, 108, 115, 101, 32, 99, 111, 108, 61, 50, 53, 53, 44, 48, 44, 48, 32, 40, 48, 44, 50, 52, 56, 94, 48, 44, 50, 52, 56, 94, 48, 44, 50, 52, 56, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 50, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 54, 44, 54, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 52, 44, 54, 44, 54, 44, 52, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 57, 44, 52, 44, 49, 49, 44, 54, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 57, 44, 54, 44, 49, 49, 44, 52, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 121, 62, 61, 57, 38, 38, 121, 60, 61, 49, 48, 38, 38, 120, 62, 61, 50, 38, 38, 120, 60, 61, 49, 51, 38, 38, 40, 40, 105, 110, 116, 40, 40, 120, 43, 49, 41, 47, 50, 41, 43, 121, 41, 37, 50, 41, 44, 97, 114, 103, 40, 99, 43, 49, 44, 36, 99, 111, 108, 41, 44, 105, 41, 39, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 58, 10, 51, 50, 44, 51, 50, 44, 49, 44, 49, 44, 39, 88, 61, 120, 45, 49, 53, 59, 89, 61, 121, 45, 49, 53, 59, 65, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 82, 61, 115, 113, 114, 116, 40, 88, 94, 50, 43, 89, 94, 50, 41, 59, 82, 60, 49, 53, 46, 53, 38, 38, 97, 98, 115, 40, 65, 41, 62, 48, 46, 56, 42, 48, 46, 51, 51, 42, 36, 49, 39, 10, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 48, 94, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 52, 44, 50, 32, 45, 115, 91, 45, 49, 93, 32, 99, 44, 45, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 100, 111, 116, 115, 95, 103, 102, 120, 32, 58, 10, 40, 50, 53, 53, 94, 49, 56, 52, 94, 49, 53, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 52, 44, 49, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 103, 117, 109, 95, 103, 102, 120, 32, 58, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 55, 44, 55, 44, 55, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 10, 95, 112, 97, 99, 109, 97, 110, 95, 99, 104, 101, 114, 114, 121, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 59, 50, 44, 51, 44, 50, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 50, 44, 50, 44, 51, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 50, 44, 50, 44, 50, 44, 48, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 48, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 51, 44, 50, 59, 92, 10, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 59, 48, 44, 50, 44, 51, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 51, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 48, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 111, 114, 97, 110, 103, 101, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 49, 55, 51, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 98, 97, 110, 97, 110, 97, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 59, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 48, 59, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 49, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 50, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 49, 44, 51, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 51, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 52, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 50, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 48, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 53, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 53, 53, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 54, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 53, 53, 32, 95, 103, 108, 101, 118, 101, 108, 61, 49, 51, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 51, 51, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 112, 97, 105, 110, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 112, 97, 105, 110, 116, 101, 114, 46, 10, 120, 95, 112, 97, 105, 110, 116, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 112, 97, 105, 110, 116, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 85, 115, 101, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 98, 114, 117, 115, 104, 46, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 98, 117, 116, 116, 111, 110, 32, 100, 114, 97, 119, 115, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 115, 116, 114, 111, 107, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 98, 117, 116, 116, 111, 110, 32, 102, 105, 108, 108, 115, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 114, 101, 103, 105, 111, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 111, 114, 32, 83, 80, 65, 67, 69, 32, 97, 110, 100, 32, 66, 65, 67, 75, 83, 80, 65, 67, 69, 32, 116, 111, 32, 115, 119, 97, 112, 92, 110, 10, 45, 45, 45, 45, 32, 98, 101, 116, 119, 101, 101, 110, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 105, 91, 48, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 110, 109, 91, 48, 93, 32, 34, 91, 78, 101, 119, 32, 105, 109, 97, 103, 101, 93, 34, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 108, 111, 114, 61, 48, 44, 48, 44, 48, 10, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 49, 10, 98, 114, 117, 115, 104, 115, 105, 122, 101, 61, 51, 10, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 61, 48, 10, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 61, 57, 48, 10, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 49, 10, 105, 109, 97, 103, 101, 61, 48, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 49, 10, 111, 120, 49, 61, 45, 49, 10, 111, 121, 49, 61, 45, 49, 10, 49, 32, 49, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 40, 48, 44, 51, 53, 57, 59, 48, 44, 51, 53, 57, 94, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 59, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 94, 49, 44, 49, 59, 48, 44, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 54, 52, 44, 49, 44, 51, 44, 51, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 40, 50, 53, 53, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 64, 123, 45, 50, 44, 104, 125, 44, 49, 44, 51, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 48, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 123, 119, 125, 44, 49, 54, 44, 49, 44, 51, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 34, 44, 52, 44, 50, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 56, 48, 44, 51, 44, 49, 48, 48, 44, 49, 51, 44, 49, 44, 36, 99, 111, 108, 111, 114, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 56, 48, 44, 51, 44, 49, 48, 48, 44, 49, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 119, 50, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 80, 97, 108, 101, 116, 116, 101, 34, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 10, 45, 114, 109, 91, 45, 49, 93, 32, 40, 51, 50, 44, 54, 52, 59, 54, 52, 44, 51, 50, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 56, 42, 52, 56, 125, 44, 123, 52, 42, 52, 56, 125, 44, 49, 44, 51, 44, 48, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 56, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 52, 56, 42, 36, 62, 43, 50, 52, 125, 44, 123, 52, 56, 42, 64, 123, 62, 44, 45, 50, 125, 43, 50, 52, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 44, 123, 40, 50, 42, 36, 62, 43, 49, 41, 42, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 125, 44, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 44, 123, 49, 45, 64, 123, 62, 44, 45, 50, 125, 47, 52, 125, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 42, 52, 56, 125, 44, 123, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 42, 52, 56, 125, 44, 92, 10, 123, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 42, 52, 56, 43, 52, 55, 125, 44, 123, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 42, 52, 56, 43, 52, 55, 125, 44, 92, 10, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 10, 123, 119, 125, 44, 49, 54, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 10, 98, 120, 61, 123, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 42, 119, 47, 49, 56, 48, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 49, 50, 56, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 50, 48, 37, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 43, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 54, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 45, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 54, 52, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 54, 44, 123, 104, 45, 49, 54, 125, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 10, 98, 121, 61, 123, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 42, 40, 104, 45, 49, 54, 41, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 49, 50, 56, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 56, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 54, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 54, 52, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 119, 51, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 66, 114, 117, 115, 104, 34, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 10, 45, 119, 49, 91, 36, 105, 109, 97, 103, 101, 93, 32, 64, 123, 36, 105, 109, 97, 103, 101, 44, 119, 125, 44, 64, 123, 36, 105, 109, 97, 103, 101, 44, 104, 125, 44, 48, 44, 48, 44, 34, 73, 109, 97, 103, 101, 32, 34, 35, 36, 105, 109, 97, 103, 101, 34, 32, 58, 32, 34, 64, 123, 36, 105, 109, 97, 103, 101, 44, 98, 125, 46, 64, 123, 36, 105, 109, 97, 103, 101, 44, 120, 125, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 120, 49, 61, 64, 123, 33, 49, 44, 120, 125, 32, 121, 49, 61, 64, 123, 33, 49, 44, 121, 125, 10, 120, 50, 61, 64, 123, 33, 50, 44, 120, 125, 32, 121, 50, 61, 64, 123, 33, 50, 44, 121, 125, 10, 120, 51, 61, 64, 123, 33, 51, 44, 120, 125, 32, 121, 51, 61, 64, 123, 33, 51, 44, 121, 125, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 98, 125, 38, 49, 125, 10, 111, 120, 49, 61, 123, 105, 102, 40, 36, 111, 120, 49, 60, 48, 44, 36, 120, 49, 44, 36, 111, 120, 49, 41, 125, 10, 111, 121, 49, 61, 123, 105, 102, 40, 36, 111, 121, 49, 60, 48, 44, 36, 121, 49, 44, 36, 111, 121, 49, 41, 125, 10, 100, 101, 108, 116, 97, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 120, 49, 45, 36, 111, 120, 49, 41, 44, 97, 98, 115, 40, 36, 121, 49, 45, 36, 111, 121, 49, 41, 41, 125, 10, 114, 49, 61, 123, 50, 42, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 43, 49, 125, 10, 114, 50, 61, 123, 36, 114, 49, 42, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 125, 10, 100, 120, 61, 123, 50, 42, 40, 36, 120, 49, 45, 36, 111, 120, 49, 41, 47, 109, 97, 120, 40, 49, 44, 36, 100, 101, 108, 116, 97, 41, 125, 10, 100, 121, 61, 123, 50, 42, 40, 36, 121, 49, 45, 36, 111, 121, 49, 41, 47, 109, 97, 120, 40, 49, 44, 36, 100, 101, 108, 116, 97, 41, 125, 10, 111, 61, 123, 49, 45, 40, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 47, 52, 41, 94, 48, 46, 48, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 109, 97, 120, 40, 49, 44, 40, 36, 100, 101, 108, 116, 97, 43, 49, 41, 47, 50, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 36, 105, 109, 97, 103, 101, 93, 32, 123, 36, 111, 120, 49, 43, 36, 62, 42, 36, 100, 120, 125, 44, 123, 36, 111, 121, 49, 43, 36, 62, 42, 36, 100, 121, 125, 44, 36, 114, 49, 44, 36, 114, 50, 44, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 44, 36, 111, 44, 36, 99, 111, 108, 111, 114, 10, 45, 100, 111, 110, 101, 10, 111, 120, 49, 61, 36, 120, 49, 32, 111, 121, 49, 61, 36, 121, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 108, 115, 101, 10, 111, 120, 49, 61, 45, 49, 32, 111, 121, 49, 61, 45, 49, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 98, 125, 38, 50, 125, 10, 45, 102, 108, 111, 111, 100, 91, 36, 105, 109, 97, 103, 101, 93, 32, 36, 120, 49, 44, 36, 121, 49, 44, 48, 44, 49, 48, 44, 48, 44, 49, 44, 36, 99, 111, 108, 111, 114, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 83, 80, 65, 67, 69, 125, 125, 10, 105, 109, 97, 103, 101, 61, 123, 40, 36, 105, 109, 97, 103, 101, 43, 49, 41, 37, 40, 64, 35, 45, 50, 41, 125, 32, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 125, 10, 105, 109, 97, 103, 101, 61, 123, 40, 36, 105, 109, 97, 103, 101, 45, 49, 41, 37, 40, 64, 35, 45, 50, 41, 125, 32, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 49, 44, 83, 125, 32, 45, 111, 91, 36, 105, 109, 97, 103, 101, 93, 32, 103, 109, 105, 99, 95, 112, 97, 105, 110, 116, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 50, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 120, 50, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 121, 50, 60, 54, 52, 125, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 50, 53, 54, 125, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 123, 49, 45, 36, 121, 50, 47, 54, 51, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 125, 32, 99, 111, 108, 111, 114, 61, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 48, 41, 125, 44, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 49, 41, 125, 44, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 50, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 51, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 120, 51, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 120, 51, 60, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 62, 61, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 61, 123, 36, 120, 51, 42, 49, 56, 48, 47, 40, 119, 45, 49, 54, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 51, 62, 61, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 60, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 123, 36, 121, 51, 47, 40, 104, 45, 49, 54, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 51, 60, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 60, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 115, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 120, 51, 42, 56, 47, 40, 119, 45, 49, 54, 41, 41, 125, 32, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 61, 123, 105, 110, 116, 40, 36, 121, 51, 42, 52, 47, 40, 104, 45, 49, 54, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 123, 33, 49, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 125, 10, 45, 119, 49, 91, 93, 32, 48, 32, 45, 119, 50, 91, 93, 32, 48, 32, 45, 119, 51, 91, 93, 32, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 112, 108, 97, 115, 109, 97, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 112, 108, 97, 115, 109, 97, 32, 100, 101, 109, 111, 46, 10, 120, 95, 112, 108, 97, 115, 109, 97, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 80, 108, 97, 115, 109, 97, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 78, 61, 56, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 50, 53, 54, 44, 49, 53, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 48, 44, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 97, 109, 112, 61, 123, 63, 40, 45, 52, 48, 44, 52, 48, 41, 125, 32, 102, 114, 101, 113, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 44, 54, 41, 41, 125, 32, 100, 105, 114, 36, 62, 61, 123, 105, 102, 40, 63, 60, 48, 46, 53, 44, 45, 49, 44, 49, 41, 42, 114, 111, 117, 110, 100, 40, 63, 40, 49, 44, 50, 41, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 36, 97, 109, 112, 42, 99, 111, 115, 40, 121, 42, 50, 42, 112, 105, 42, 36, 102, 114, 101, 113, 47, 104, 41, 39, 10, 45, 100, 111, 110, 101, 10, 123, 119, 43, 50, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 120, 39, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 89, 61, 40, 121, 45, 54, 48, 43, 53, 42, 99, 111, 115, 40, 120, 47, 51, 48, 41, 43, 49, 48, 42, 115, 105, 110, 40, 120, 47, 49, 53, 41, 41, 59, 105, 102, 40, 89, 60, 48, 124, 124, 89, 62, 61, 51, 50, 44, 45, 49, 44, 89, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 42, 42, 32, 87, 101, 108, 99, 111, 109, 101, 32, 116, 111, 32, 71, 39, 77, 73, 67, 44, 32, 97, 32, 112, 111, 119, 101, 114, 102, 117, 108, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 42, 42, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 10, 45, 98, 91, 45, 49, 93, 32, 48, 46, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 77, 61, 123, 119, 125, 10, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 48, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 80, 108, 97, 115, 109, 97, 32, 100, 101, 109, 111, 34, 10, 116, 61, 48, 32, 116, 116, 61, 123, 45, 49, 46, 53, 42, 64, 123, 48, 44, 119, 125, 125, 10, 45, 100, 111, 10, 116, 105, 99, 61, 64, 124, 10, 97, 61, 123, 105, 110, 116, 40, 36, 116, 41, 125, 32, 32, 32, 97, 50, 61, 123, 50, 42, 36, 97, 125, 32, 97, 50, 49, 61, 123, 36, 97, 50, 43, 49, 125, 10, 98, 61, 123, 40, 36, 97, 43, 49, 41, 37, 36, 78, 125, 32, 98, 50, 61, 123, 50, 42, 36, 98, 125, 32, 98, 50, 49, 61, 123, 36, 98, 50, 43, 49, 125, 10, 45, 45, 119, 97, 114, 112, 91, 36, 97, 50, 93, 32, 91, 36, 97, 50, 49, 93, 44, 49, 44, 48, 44, 50, 10, 45, 45, 119, 97, 114, 112, 91, 36, 98, 50, 93, 32, 91, 36, 98, 50, 49, 93, 44, 49, 44, 48, 44, 50, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 36, 116, 45, 36, 97, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 36, 97, 50, 49, 93, 32, 48, 44, 36, 123, 100, 105, 114, 36, 97, 125, 44, 48, 44, 48, 44, 50, 10, 45, 115, 104, 105, 102, 116, 91, 36, 98, 50, 49, 93, 32, 48, 44, 36, 123, 100, 105, 114, 36, 98, 125, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 36, 116, 43, 48, 46, 48, 48, 53, 41, 62, 105, 110, 116, 40, 36, 116, 41, 125, 32, 100, 105, 114, 36, 97, 61, 123, 105, 102, 40, 63, 60, 48, 46, 53, 44, 45, 49, 44, 49, 41, 42, 114, 111, 117, 110, 100, 40, 63, 40, 49, 44, 51, 41, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 116, 61, 123, 40, 36, 116, 43, 40, 64, 124, 45, 36, 116, 105, 99, 41, 41, 37, 36, 78, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 36, 116, 116, 44, 123, 36, 116, 116, 43, 119, 45, 49, 43, 50, 125, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 45, 50, 44, 45, 50, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 116, 116, 61, 123, 36, 116, 116, 43, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 49, 48, 48, 125, 10, 45, 105, 102, 32, 123, 36, 116, 116, 62, 61, 36, 77, 125, 32, 116, 116, 61, 123, 45, 49, 46, 53, 42, 64, 123, 48, 44, 119, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 123, 45, 50, 42, 36, 78, 45, 50, 125, 45, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 32, 58, 32, 95, 110, 98, 99, 111, 108, 111, 114, 115, 62, 61, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 100, 101, 109, 111, 46, 10, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 49, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 82, 71, 66, 32, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 100, 101, 109, 111, 32, 115, 104, 111, 119, 115, 32, 104, 111, 119, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 99, 97, 110, 32, 98, 101, 32, 113, 117, 97, 110, 116, 105, 102, 105, 101, 100, 32, 117, 115, 105, 110, 103, 92, 110, 10, 45, 45, 45, 45, 32, 116, 104, 101, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 51, 100, 32, 118, 105, 101, 119, 32, 114, 111, 116, 97, 116, 101, 115, 32, 116, 104, 101, 32, 99, 111, 108, 111, 114, 32, 99, 117, 98, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 51, 100, 32, 118, 105, 101, 119, 32, 116, 111, 103, 103, 108, 101, 115, 32, 99, 111, 108, 111, 114, 115, 47, 99, 108, 117, 115, 116, 101, 114, 115, 32, 109, 111, 100, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 116, 111, 103, 103, 108, 101, 115, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 44, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 97, 100, 100, 115, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 114, 101, 109, 111, 118, 101, 115, 32, 97, 32, 99, 111, 108, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 82, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 85, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 117, 110, 105, 102, 111, 114, 109, 32, 115, 97, 109, 112, 108, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 77, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 100, 111, 101, 115, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 110, 100, 32, 112, 97, 117, 115, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 69, 78, 84, 69, 82, 39, 32, 114, 117, 110, 115, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 51, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 123, 104, 62, 51, 48, 48, 125, 32, 45, 114, 50, 100, 121, 32, 51, 48, 48, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 103, 10, 45, 45, 114, 32, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 51, 44, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 109, 105, 110, 40, 119, 44, 56, 49, 57, 50, 41, 125, 44, 49, 44, 49, 44, 51, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 108, 111, 114, 115, 10, 36, 49, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 40, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 48, 41, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 111, 115, 101, 51, 100, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 67, 111, 108, 111, 114, 115, 34, 44, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 48, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 67, 108, 117, 115, 116, 101, 114, 115, 34, 44, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 49, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 68, 105, 116, 104, 101, 114, 105, 110, 103, 58, 32, 111, 102, 102, 34, 44, 100, 105, 116, 104, 101, 114, 105, 110, 103, 48, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 68, 105, 116, 104, 101, 114, 105, 110, 103, 58, 32, 111, 110, 34, 44, 100, 105, 116, 104, 101, 114, 105, 110, 103, 49, 10, 45, 105, 102, 32, 123, 64, 123, 105, 109, 103, 44, 104, 125, 60, 51, 48, 48, 125, 32, 45, 45, 114, 50, 100, 121, 91, 105, 109, 103, 93, 32, 51, 48, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 91, 105, 109, 103, 93, 32, 45, 101, 110, 100, 105, 102, 10, 123, 119, 43, 51, 49, 53, 125, 44, 51, 54, 53, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 51, 48, 53, 44, 51, 48, 53, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 51, 48, 57, 44, 52, 44, 123, 119, 45, 53, 125, 44, 51, 48, 53, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 51, 48, 57, 44, 123, 119, 45, 53, 125, 44, 51, 54, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 51, 49, 48, 44, 53, 44, 123, 119, 45, 54, 125, 44, 51, 48, 53, 44, 49, 44, 49, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 53, 44, 51, 49, 48, 44, 123, 119, 45, 54, 125, 44, 51, 54, 48, 44, 49, 44, 50, 10, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 49, 44, 39, 40, 121, 60, 60, 49, 49, 41, 43, 40, 120, 60, 60, 50, 41, 43, 51, 39, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 44, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 32, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 10, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 48, 32, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 61, 48, 32, 112, 97, 117, 115, 101, 61, 49, 32, 115, 48, 61, 111, 102, 102, 32, 115, 49, 61, 111, 110, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 101, 49, 48, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 51, 100, 41, 125, 10, 45, 45, 45, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 50, 32, 45, 45, 43, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 106, 91, 111, 98, 106, 51, 100, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 111, 98, 106, 51, 100, 93, 10, 45, 105, 102, 32, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 10, 45, 105, 102, 32, 123, 64, 123, 99, 111, 108, 111, 114, 115, 44, 77, 125, 60, 50, 53, 54, 125, 32, 45, 45, 105, 110, 100, 101, 120, 91, 99, 111, 108, 111, 114, 115, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 99, 111, 108, 111, 114, 115, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 99, 111, 108, 111, 114, 115, 93, 32, 48, 32, 45, 62, 62, 91, 45, 49, 93, 32, 56, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 50, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 36, 95, 78, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 91, 45, 49, 93, 32, 64, 112, 111, 115, 101, 51, 100, 32, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 51, 48, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 106, 91, 45, 49, 93, 32, 91, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 93, 44, 50, 53, 53, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 51, 100, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 51, 100, 93, 44, 53, 44, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 105, 109, 103, 41, 125, 10, 45, 45, 105, 110, 100, 101, 120, 91, 105, 109, 103, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 123, 48, 46, 55, 42, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 125, 44, 49, 32, 45, 105, 102, 32, 123, 104, 60, 51, 48, 48, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 51, 48, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 100, 105, 116, 104, 101, 114, 105, 110, 103, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 100, 105, 116, 104, 101, 114, 105, 110, 103, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 93, 44, 50, 53, 53, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 44, 51, 49, 48, 44, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 41, 125, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 91, 45, 49, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 118, 105, 115, 117, 44, 119, 125, 45, 49, 48, 125, 44, 53, 48, 44, 49, 44, 51, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 67, 111, 108, 111, 114, 115, 58, 32, 34, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 50, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 53, 44, 51, 49, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 118, 105, 115, 117, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 82, 71, 66, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 100, 101, 109, 111, 34, 10, 120, 61, 123, 105, 110, 116, 40, 64, 123, 33, 44, 120, 125, 42, 64, 123, 118, 105, 115, 117, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 41, 125, 10, 121, 61, 123, 105, 110, 116, 40, 64, 123, 33, 44, 121, 125, 42, 64, 123, 118, 105, 115, 117, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 41, 125, 10, 98, 61, 64, 123, 33, 44, 98, 125, 10, 105, 61, 64, 123, 118, 105, 115, 117, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 51, 41, 125, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 49, 125, 10, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 123, 33, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 125, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 50, 125, 10, 40, 64, 123, 45, 82, 71, 66, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 97, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 45, 49, 93, 32, 120, 32, 32, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 50, 34, 32, 38, 38, 32, 34, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 62, 50, 125, 10, 45, 114, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 45, 49, 125, 32, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 36, 105, 62, 61, 51, 125, 10, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 61, 123, 33, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 125, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 77, 125, 10, 45, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 48, 44, 48, 32, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 82, 125, 10, 45, 114, 97, 110, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 49, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 85, 125, 10, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 69, 78, 84, 69, 82, 125, 10, 112, 97, 117, 115, 101, 61, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 62, 61, 51, 125, 10, 99, 111, 111, 114, 100, 115, 61, 123, 64, 123, 118, 105, 115, 117, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 51, 41, 125, 45, 51, 125, 32, 117, 49, 61, 123, 40, 40, 36, 99, 111, 111, 114, 100, 115, 62, 62, 50, 41, 38, 53, 49, 49, 41, 45, 49, 53, 48, 125, 32, 118, 49, 61, 123, 40, 36, 99, 111, 111, 114, 100, 115, 62, 62, 49, 49, 41, 45, 49, 53, 48, 125, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 117, 48, 41, 125, 32, 117, 48, 61, 36, 117, 49, 32, 118, 48, 61, 36, 118, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 117, 48, 33, 61, 36, 117, 49, 34, 32, 38, 38, 32, 34, 36, 118, 48, 33, 61, 36, 118, 49, 125, 10, 110, 48, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 48, 41, 94, 50, 43, 40, 36, 118, 48, 41, 94, 50, 41, 125, 10, 110, 117, 48, 61, 123, 105, 102, 40, 36, 110, 48, 62, 49, 51, 53, 44, 36, 117, 48, 42, 49, 51, 53, 47, 36, 110, 48, 44, 36, 117, 48, 41, 125, 32, 110, 118, 48, 61, 123, 105, 102, 40, 36, 110, 48, 62, 49, 51, 53, 44, 36, 118, 48, 42, 49, 51, 53, 47, 36, 110, 48, 44, 36, 118, 48, 41, 125, 32, 110, 119, 48, 61, 123, 115, 113, 114, 116, 40, 109, 97, 120, 40, 48, 44, 49, 56, 50, 50, 53, 45, 40, 36, 110, 117, 48, 41, 94, 50, 45, 40, 36, 110, 118, 48, 41, 94, 50, 41, 41, 125, 10, 110, 49, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 49, 41, 94, 50, 43, 40, 36, 118, 49, 41, 94, 50, 41, 125, 10, 110, 117, 49, 61, 123, 105, 102, 40, 36, 110, 49, 62, 49, 51, 53, 44, 36, 117, 49, 42, 49, 51, 53, 47, 36, 110, 49, 44, 36, 117, 49, 41, 125, 32, 110, 118, 49, 61, 123, 105, 102, 40, 36, 110, 49, 62, 49, 51, 53, 44, 36, 118, 49, 42, 49, 51, 53, 47, 36, 110, 49, 44, 36, 118, 49, 41, 125, 32, 110, 119, 49, 61, 123, 115, 113, 114, 116, 40, 109, 97, 120, 40, 48, 44, 49, 56, 50, 50, 53, 45, 40, 36, 110, 117, 49, 41, 94, 50, 45, 40, 36, 110, 118, 49, 41, 94, 50, 41, 41, 125, 10, 117, 61, 123, 36, 110, 118, 48, 42, 36, 110, 119, 49, 45, 36, 110, 119, 48, 42, 36, 110, 118, 49, 125, 32, 118, 61, 123, 36, 110, 119, 48, 42, 36, 110, 117, 49, 45, 36, 110, 117, 48, 42, 36, 110, 119, 49, 125, 32, 119, 61, 123, 36, 110, 118, 48, 42, 36, 110, 117, 49, 45, 36, 110, 117, 48, 42, 36, 110, 118, 49, 125, 32, 110, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 41, 94, 50, 43, 40, 36, 118, 41, 94, 50, 43, 40, 36, 119, 41, 94, 50, 41, 125, 10, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 91, 93, 32, 36, 117, 44, 36, 118, 44, 36, 119, 44, 123, 97, 115, 105, 110, 40, 36, 110, 47, 49, 56, 50, 50, 53, 41, 42, 49, 56, 48, 47, 112, 105, 125, 32, 45, 109, 118, 91, 112, 111, 115, 101, 51, 100, 93, 32, 64, 35, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 111, 115, 101, 51, 100, 10, 117, 48, 61, 36, 117, 49, 32, 118, 48, 61, 36, 118, 49, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 40, 36, 98, 38, 49, 41, 125, 32, 117, 48, 61, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 112, 97, 117, 115, 101, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 10, 112, 97, 117, 115, 101, 61, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 10, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 45, 105, 110, 100, 101, 120, 91, 99, 111, 108, 111, 114, 115, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 99, 111, 108, 111, 114, 115, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 99, 111, 108, 111, 114, 115, 44, 115, 125, 10, 45, 115, 104, 91, 99, 111, 108, 111, 114, 115, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 42, 50, 53, 54, 125, 44, 48, 44, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 42, 50, 53, 54, 45, 49, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 97, 91, 45, 64, 123, 99, 111, 108, 111, 114, 115, 44, 115, 125, 45, 45, 49, 93, 32, 99, 10, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 45, 62, 62, 91, 99, 111, 108, 111, 114, 115, 93, 32, 56, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 48, 44, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 45, 49, 125, 10, 99, 109, 97, 120, 61, 64, 123, 45, 49, 44, 120, 77, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 105, 102, 32, 123, 33, 105, 40, 36, 62, 41, 125, 32, 45, 112, 111, 105, 110, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 36, 62, 44, 48, 44, 48, 44, 49, 44, 64, 123, 45, 97, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 92, 32, 36, 99, 109, 97, 120, 125, 32, 45, 112, 111, 105, 110, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 36, 62, 44, 48, 44, 48, 44, 45, 48, 46, 48, 48, 49, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 119, 97, 105, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 111, 98, 106, 51, 100, 32, 45, 114, 109, 91, 111, 98, 106, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 91, 45, 49, 93, 32, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 10, 45, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 56, 32, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 98, 106, 51, 100, 32, 95, 78, 61, 123, 105, 40, 48, 44, 55, 41, 125, 10, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 58, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 50, 125, 44, 49, 53, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 50, 93, 32, 36, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 109, 36, 50, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 51, 100, 32, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 100, 101, 109, 111, 46, 10, 120, 95, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 51, 100, 32, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 49, 50, 56, 44, 50, 53, 54, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 51, 48, 44, 50, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 57, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 56, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 51, 48, 44, 49, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 48, 48, 44, 48, 10, 45, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 52, 55, 44, 51, 52, 44, 34, 56, 48, 43, 50, 48, 42, 97, 98, 115, 40, 99, 111, 115, 40, 50, 42, 116, 104, 101, 116, 97, 41, 41, 34, 32, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 105, 91, 45, 50, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 53, 48, 44, 50, 50, 48, 44, 50, 53, 53, 44, 50, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 121, 91, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 52, 55, 44, 51, 52, 44, 34, 49, 48, 48, 42, 97, 98, 115, 40, 49, 43, 48, 46, 54, 42, 99, 111, 115, 40, 51, 42, 112, 104, 105, 41, 42, 115, 105, 110, 40, 52, 42, 116, 104, 101, 116, 97, 41, 41, 34, 10, 45, 114, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 100, 98, 51, 100, 32, 48, 10, 120, 98, 61, 48, 32, 120, 108, 61, 48, 32, 97, 110, 105, 109, 61, 48, 10, 45, 119, 91, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 51, 100, 32, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 100, 101, 109, 111, 34, 10, 45, 100, 111, 10, 116, 105, 99, 61, 64, 124, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 56, 44, 123, 56, 43, 51, 42, 105, 40, 48, 44, 54, 41, 45, 49, 125, 32, 45, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 44, 48, 44, 48, 44, 123, 105, 102, 40, 36, 97, 110, 105, 109, 60, 50, 53, 48, 44, 48, 44, 48, 46, 53, 45, 48, 46, 53, 42, 99, 111, 115, 40, 40, 36, 97, 110, 105, 109, 45, 50, 53, 48, 41, 47, 49, 48, 48, 41, 41, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 122, 91, 45, 54, 93, 32, 36, 120, 98, 44, 48, 44, 123, 36, 120, 98, 43, 50, 53, 53, 125, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 55, 53, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 45, 45, 122, 91, 45, 54, 93, 32, 36, 120, 108, 44, 48, 44, 123, 36, 120, 108, 43, 50, 53, 53, 125, 44, 50, 53, 53, 10, 120, 102, 61, 123, 109, 105, 110, 40, 51, 48, 44, 36, 97, 110, 105, 109, 45, 55, 48, 41, 43, 50, 48, 42, 99, 111, 115, 40, 49, 46, 56, 42, 64, 124, 41, 125, 10, 121, 102, 61, 123, 53, 48, 43, 50, 48, 42, 115, 105, 110, 40, 50, 46, 55, 42, 64, 124, 41, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 123, 50, 48, 43, 36, 120, 102, 125, 37, 44, 36, 121, 102, 37, 44, 48, 44, 49, 44, 52, 44, 48, 44, 48, 10, 45, 108, 51, 100, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 55, 53, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 54, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 36, 120, 102, 37, 44, 36, 121, 102, 37, 44, 48, 44, 49, 44, 52, 44, 48, 44, 48, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 120, 98, 61, 123, 40, 36, 120, 98, 43, 54, 41, 38, 50, 53, 53, 125, 10, 120, 108, 61, 123, 40, 36, 120, 108, 45, 54, 41, 38, 50, 53, 53, 125, 10, 97, 110, 105, 109, 61, 123, 36, 97, 110, 105, 109, 43, 49, 125, 10, 45, 114, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 123, 115, 105, 110, 40, 48, 46, 53, 42, 64, 124, 41, 125, 44, 123, 99, 111, 115, 40, 64, 124, 41, 125, 44, 49, 44, 123, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 51, 51, 125, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 45, 49, 44, 48, 46, 51, 44, 48, 46, 56, 44, 123, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 49, 48, 48, 125, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 53, 45, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 114, 117, 98, 98, 101, 114, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 51, 100, 32, 114, 117, 98, 98, 101, 114, 32, 100, 101, 109, 111, 46, 10, 120, 95, 114, 117, 98, 98, 101, 114, 51, 100, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 51, 100, 32, 114, 117, 98, 98, 101, 114, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 53, 48, 44, 48, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 55, 48, 44, 49, 53, 32, 45, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 50, 48, 44, 52, 48, 10, 45, 99, 111, 108, 51, 100, 91, 45, 51, 93, 32, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 48, 46, 51, 32, 45, 99, 111, 108, 51, 100, 91, 45, 50, 93, 32, 49, 50, 56, 44, 50, 48, 48, 44, 55, 54, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 48, 48, 44, 49, 50, 56, 44, 55, 54, 10, 45, 99, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 55, 48, 32, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 48, 44, 45, 56, 44, 50, 48, 10, 50, 53, 54, 44, 50, 53, 54, 44, 54, 52, 44, 51, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 105, 102, 40, 99, 61, 61, 49, 44, 121, 44, 121, 42, 64, 123, 49, 44, 100, 125, 47, 104, 41, 41, 39, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 102, 99, 91, 45, 49, 93, 32, 49, 54, 44, 51, 50, 44, 51, 50, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 48, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 32, 45, 106, 91, 49, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 36, 102, 114, 97, 109, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 51, 100, 91, 48, 93, 32, 48, 46, 49, 44, 49, 44, 48, 46, 54, 44, 123, 51, 42, 99, 111, 115, 40, 64, 124, 42, 49, 46, 50, 53, 41, 125, 32, 45, 114, 51, 100, 91, 48, 93, 32, 49, 44, 48, 46, 50, 44, 48, 46, 54, 44, 45, 49, 10, 45, 45, 119, 97, 114, 112, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 32, 45, 42, 91, 51, 93, 32, 48, 46, 56, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 50, 32, 45, 43, 91, 51, 44, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 49, 46, 50, 42, 119, 125, 44, 123, 49, 46, 50, 42, 104, 125, 44, 48, 44, 48, 44, 34, 82, 117, 98, 98, 101, 114, 32, 51, 100, 34, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 115, 104, 91, 50, 93, 32, 50, 44, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 123, 64, 123, 49, 44, 100, 125, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 102, 114, 97, 109, 101, 61, 123, 40, 36, 102, 114, 97, 109, 101, 45, 49, 41, 37, 64, 123, 49, 44, 100, 125, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 104, 101, 32, 115, 104, 97, 100, 101, 32, 98, 111, 98, 115, 32, 100, 101, 109, 111, 46, 10, 120, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 83, 104, 97, 100, 101, 32, 98, 111, 98, 115, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 32, 116, 61, 49, 48, 48, 32, 45, 119, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 104, 97, 100, 101, 32, 98, 111, 98, 115, 34, 10, 45, 100, 111, 10, 116, 61, 123, 36, 116, 43, 48, 46, 48, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 116, 62, 52, 42, 112, 105, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 98, 125, 125, 10, 114, 120, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 121, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 122, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 116, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 99, 120, 61, 123, 63, 40, 45, 48, 46, 54, 42, 48, 46, 54, 41, 125, 32, 116, 61, 48, 10, 78, 61, 123, 50, 48, 43, 114, 111, 117, 110, 100, 40, 63, 40, 56, 48, 41, 41, 125, 32, 82, 61, 123, 40, 50, 43, 114, 111, 117, 110, 100, 40, 63, 40, 52, 48, 41, 41, 41, 42, 109, 105, 110, 40, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 41, 47, 51, 48, 48, 125, 10, 45, 105, 102, 32, 36, 111, 98, 106, 51, 100, 32, 45, 114, 109, 91, 99, 111, 108, 111, 114, 109, 97, 112, 44, 105, 109, 103, 44, 111, 98, 106, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 123, 52, 43, 114, 111, 117, 110, 100, 40, 63, 40, 49, 50, 41, 41, 125, 44, 49, 44, 49, 44, 51, 32, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 50, 53, 53, 44, 50, 32, 45, 114, 91, 48, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 108, 111, 114, 109, 97, 112, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 123, 50, 42, 36, 78, 125, 59, 36, 78, 41, 32, 51, 44, 123, 50, 42, 36, 78, 125, 44, 49, 44, 49, 44, 48, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 53, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 39, 121, 43, 120, 42, 36, 78, 39, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 53, 10, 52, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 98, 106, 51, 100, 10, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 103, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 114, 61, 123, 36, 114, 121, 43, 36, 114, 120, 42, 99, 111, 115, 40, 54, 42, 36, 114, 122, 42, 36, 116, 41, 43, 40, 49, 45, 36, 114, 120, 41, 42, 115, 105, 110, 40, 54, 42, 36, 114, 116, 42, 36, 116, 41, 125, 10, 40, 48, 59, 123, 51, 48, 42, 36, 114, 121, 42, 40, 36, 78, 45, 49, 41, 125, 41, 32, 40, 36, 116, 59, 123, 50, 42, 112, 105, 42, 40, 36, 78, 45, 49, 41, 47, 36, 78, 43, 36, 116, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 51, 10, 45, 43, 91, 45, 50, 93, 32, 123, 51, 54, 48, 42, 115, 105, 110, 40, 36, 114, 122, 42, 36, 116, 41, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 50, 93, 32, 36, 114, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 36, 114, 99, 120, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 50, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 50, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 33, 44, 104, 125, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 43, 91, 45, 49, 93, 32, 36, 82, 32, 45, 45, 91, 45, 50, 93, 32, 36, 82, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 111, 98, 106, 51, 100, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 105, 109, 103, 93, 32, 91, 111, 98, 106, 51, 100, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 45, 49, 44, 50, 44, 48, 44, 48, 10, 45, 97, 110, 100, 91, 105, 109, 103, 93, 32, 50, 53, 53, 32, 45, 45, 109, 97, 112, 91, 105, 109, 103, 93, 32, 91, 99, 111, 108, 111, 114, 109, 97, 112, 93, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 115, 112, 108, 105, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 115, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 32, 101, 100, 105, 116, 111, 114, 46, 10, 120, 95, 115, 112, 108, 105, 110, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 83, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 32, 101, 100, 105, 116, 111, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 105, 110, 115, 101, 114, 116, 47, 109, 111, 118, 101, 47, 100, 101, 108, 101, 116, 101, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 82, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 116, 104, 101, 32, 99, 117, 114, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 115, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 80, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 69, 78, 84, 69, 82, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 111, 108, 121, 103, 111, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 84, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 116, 97, 110, 103, 101, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 73, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 105, 110, 100, 105, 99, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 67, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 43, 39, 32, 97, 110, 100, 32, 39, 45, 39, 32, 116, 111, 32, 105, 110, 99, 114, 101, 97, 115, 101, 47, 100, 101, 99, 114, 101, 97, 115, 101, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 64, 35, 32, 45, 97, 32, 120, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 108, 115, 101, 32, 40, 48, 59, 48, 94, 48, 59, 49, 50, 56, 94, 48, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 51, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 112, 108, 105, 110, 101, 32, 69, 100, 105, 116, 111, 114, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 48, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 49, 44, 110, 125, 32, 45, 114, 91, 48, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 51, 44, 49, 10, 45, 105, 91, 49, 93, 32, 49, 10, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 48, 46, 53, 10, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 50, 51, 10, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 10, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 64, 123, 49, 44, 35, 125, 61, 61, 49, 125, 10, 45, 114, 109, 91, 49, 93, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 48, 46, 53, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 32, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 105, 91, 49, 93, 32, 40, 123, 48, 46, 50, 42, 119, 125, 44, 123, 48, 46, 50, 42, 104, 125, 59, 92, 10, 123, 48, 46, 50, 42, 119, 125, 44, 123, 48, 46, 56, 42, 104, 125, 59, 92, 10, 123, 48, 46, 56, 42, 119, 125, 44, 123, 48, 46, 56, 42, 104, 125, 59, 92, 10, 123, 48, 46, 56, 42, 119, 125, 44, 123, 48, 46, 50, 42, 104, 125, 41, 10, 45, 101, 110, 100, 105, 102, 10, 91, 49, 93, 32, 40, 123, 64, 123, 33, 44, 119, 125, 47, 64, 123, 48, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 64, 123, 48, 44, 104, 125, 125, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 10, 45, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 50, 32, 45, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 114, 91, 48, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 51, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 52, 125, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 64, 123, 50, 44, 104, 125, 44, 64, 50, 44, 48, 46, 51, 44, 49, 50, 56, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 51, 125, 44, 48, 46, 51, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 125, 32, 45, 115, 112, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 64, 123, 51, 44, 48, 45, 49, 125, 44, 64, 123, 50, 44, 50, 45, 51, 125, 44, 64, 123, 51, 44, 50, 45, 51, 125, 44, 51, 50, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 56, 125, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 64, 123, 50, 44, 48, 125, 45, 64, 123, 52, 44, 48, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 49, 125, 45, 64, 123, 52, 44, 49, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 48, 125, 43, 64, 123, 52, 44, 48, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 49, 125, 43, 64, 123, 52, 44, 49, 125, 42, 50, 48, 125, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 54, 125, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 123, 64, 123, 50, 44, 48, 125, 45, 51, 125, 44, 123, 64, 123, 50, 44, 49, 125, 45, 49, 56, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 51, 50, 125, 32, 45, 116, 91, 45, 49, 93, 32, 34, 40, 34, 123, 114, 111, 117, 110, 100, 40, 64, 123, 49, 44, 48, 125, 41, 125, 34, 44, 34, 123, 114, 111, 117, 110, 100, 40, 64, 123, 49, 44, 49, 125, 41, 125, 34, 41, 34, 44, 123, 64, 123, 50, 44, 48, 125, 45, 49, 54, 125, 44, 123, 64, 123, 50, 44, 49, 125, 43, 49, 48, 125, 44, 49, 51, 44, 49, 44, 49, 48, 48, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 91, 49, 45, 52, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 34, 38, 50, 34, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 52, 44, 52, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 50, 44, 50, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 48, 48, 44, 49, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 51, 44, 52, 44, 45, 49, 93, 32, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 44, 45, 49, 44, 49, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 80, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 50, 44, 45, 50, 44, 50, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 69, 78, 84, 69, 82, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 52, 44, 45, 52, 44, 52, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 84, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 56, 44, 45, 56, 44, 56, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 73, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 54, 44, 45, 49, 54, 44, 49, 54, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 51, 50, 44, 45, 51, 50, 44, 51, 50, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 80, 65, 68, 65, 68, 68, 125, 34, 32, 38, 38, 32, 34, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 60, 49, 125, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 123, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 42, 49, 46, 49, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 80, 65, 68, 83, 85, 66, 125, 34, 32, 38, 38, 32, 34, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 62, 48, 46, 49, 125, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 123, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 42, 48, 46, 57, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 82, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 91, 49, 93, 32, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 48, 125, 32, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 97, 99, 116, 105, 118, 101, 61, 61, 45, 49, 125, 10, 91, 50, 93, 32, 40, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 41, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 40, 64, 123, 45, 49, 44, 99, 125, 41, 32, 110, 101, 97, 114, 101, 115, 116, 61, 64, 123, 45, 49, 44, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 109, 125, 60, 54, 52, 125, 32, 97, 99, 116, 105, 118, 101, 61, 36, 110, 101, 97, 114, 101, 115, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 50, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 97, 99, 116, 105, 118, 101, 33, 61, 45, 49, 125, 10, 45, 61, 91, 49, 93, 32, 123, 64, 123, 33, 44, 120, 125, 42, 64, 123, 48, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 125, 44, 48, 44, 36, 97, 99, 116, 105, 118, 101, 10, 45, 61, 91, 49, 93, 32, 123, 64, 123, 33, 44, 121, 125, 42, 64, 123, 48, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 125, 44, 49, 44, 36, 97, 99, 116, 105, 118, 101, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 49, 44, 104, 125, 62, 51, 125, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 114, 109, 91, 36, 110, 101, 97, 114, 101, 115, 116, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 120, 121, 61, 40, 123, 64, 123, 33, 44, 120, 125, 42, 64, 123, 48, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 121, 125, 42, 64, 123, 48, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 125, 41, 10, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 36, 120, 121, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 40, 64, 123, 45, 49, 44, 99, 125, 41, 32, 110, 115, 61, 64, 123, 45, 49, 44, 49, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 105, 91, 123, 36, 110, 115, 43, 49, 125, 93, 32, 36, 120, 121, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 97, 99, 116, 105, 118, 101, 61, 123, 36, 110, 115, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 50, 32, 45, 114, 109, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 32, 45, 115, 112, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 48, 45, 49, 125, 44, 64, 123, 49, 44, 48, 45, 49, 125, 44, 64, 123, 48, 44, 50, 45, 51, 125, 44, 64, 123, 49, 44, 50, 45, 51, 125, 44, 49, 50, 56, 44, 49, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 100, 111, 110, 101, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 116, 101, 116, 114, 105, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 101, 116, 114, 105, 115, 32, 103, 97, 109, 101, 46, 10, 120, 95, 116, 101, 116, 114, 105, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 101, 116, 114, 105, 115, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 71, 39, 77, 73, 67, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 84, 101, 116, 114, 105, 115, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 116, 111, 32, 109, 111, 118, 101, 47, 114, 111, 116, 97, 116, 101, 32, 116, 104, 101, 32, 116, 114, 105, 111, 109, 105, 110, 111, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 109, 97, 107, 101, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 116, 114, 105, 111, 109, 105, 110, 111, 32, 102, 97, 108, 108, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 105, 91, 109, 48, 93, 32, 52, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 56, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 49, 50, 93, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 49, 54, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 10, 45, 105, 91, 109, 50, 48, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 50, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 105, 102, 32, 123, 63, 60, 48, 46, 50, 53, 125, 10, 45, 105, 91, 109, 50, 56, 93, 32, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 51, 50, 93, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 105, 91, 109, 51, 54, 93, 32, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 48, 93, 32, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 105, 91, 109, 52, 56, 93, 32, 51, 44, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 105, 61, 123, 52, 42, 36, 62, 125, 32, 45, 108, 91, 109, 36, 105, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 57, 48, 42, 40, 36, 62, 43, 49, 41, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 109, 123, 36, 105, 43, 36, 62, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 78, 61, 64, 35, 10, 45, 105, 91, 99, 111, 108, 111, 114, 115, 93, 32, 51, 44, 36, 78, 44, 49, 44, 49, 44, 39, 63, 40, 49, 54, 44, 50, 50, 52, 41, 39, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 52, 48, 48, 37, 32, 45, 105, 91, 109, 97, 115, 107, 93, 32, 40, 48, 44, 45, 49, 44, 48, 59, 49, 44, 48, 44, 45, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 45, 45, 114, 91, 109, 36, 62, 93, 32, 53, 48, 48, 37, 44, 53, 48, 48, 37, 44, 49, 44, 51, 32, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 109, 97, 115, 107, 93, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 49, 44, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 51, 48, 37, 44, 49, 48, 48, 37, 10, 45, 45, 114, 91, 109, 36, 62, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 64, 123, 99, 111, 108, 111, 114, 115, 44, 123, 51, 42, 36, 62, 125, 45, 123, 51, 42, 36, 62, 43, 50, 125, 125, 32, 45, 114, 118, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 36, 62, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 99, 111, 108, 111, 114, 115, 44, 109, 97, 115, 107, 93, 10, 102, 97, 99, 116, 61, 123, 64, 123, 115, 48, 44, 119, 125, 47, 64, 123, 109, 48, 44, 119, 125, 125, 10, 87, 61, 49, 50, 32, 72, 61, 50, 48, 10, 45, 105, 91, 98, 111, 97, 114, 100, 93, 32, 36, 87, 44, 36, 72, 32, 45, 105, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 98, 111, 97, 114, 100, 93, 10, 45, 105, 91, 114, 101, 110, 100, 101, 114, 93, 32, 123, 36, 102, 97, 99, 116, 42, 36, 87, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 72, 125, 44, 49, 44, 51, 32, 45, 105, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 10, 45, 45, 114, 111, 119, 115, 91, 114, 101, 110, 100, 101, 114, 93, 32, 48, 44, 53, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 52, 48, 37, 44, 49, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 91, 45, 49, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 54, 52, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 49, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 53, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 51, 48, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 10, 116, 105, 109, 101, 61, 64, 124, 32, 115, 99, 111, 114, 101, 61, 48, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 48, 32, 103, 97, 109, 101, 111, 118, 101, 114, 61, 48, 32, 110, 61, 45, 49, 32, 110, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 78, 45, 49, 41, 41, 125, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 123, 105, 102, 40, 36, 102, 97, 108, 108, 95, 109, 111, 100, 101, 44, 45, 49, 44, 45, 50, 48, 41, 125, 10, 45, 105, 102, 32, 36, 103, 97, 109, 101, 111, 118, 101, 114, 10, 45, 45, 106, 91, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 55, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 51, 48, 44, 51, 48, 37, 44, 51, 50, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 60, 48, 125, 10, 45, 108, 91, 98, 111, 97, 114, 100, 93, 32, 45, 115, 32, 121, 32, 105, 61, 45, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 64, 123, 36, 60, 44, 109, 125, 32, 105, 61, 36, 60, 44, 36, 105, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 48, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 97, 32, 121, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 50, 94, 40, 110, 97, 114, 103, 40, 36, 105, 41, 45, 49, 41, 45, 49, 125, 32, 45, 114, 32, 36, 87, 44, 36, 72, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 110, 109, 32, 98, 111, 97, 114, 100, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 105, 41, 62, 49, 125, 32, 45, 108, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 115, 32, 121, 44, 36, 72, 32, 48, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 97, 32, 121, 32, 45, 114, 32, 123, 36, 102, 97, 99, 116, 42, 36, 87, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 72, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 110, 109, 32, 114, 101, 110, 100, 101, 114, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 36, 110, 110, 32, 110, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 78, 45, 49, 41, 41, 125, 32, 120, 61, 123, 36, 87, 47, 50, 125, 32, 121, 61, 48, 32, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 100, 111, 95, 114, 101, 110, 100, 101, 114, 10, 45, 114, 109, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 10, 45, 105, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 98, 111, 97, 114, 100, 93, 32, 45, 106, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 110, 93, 44, 123, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 49, 44, 91, 109, 36, 110, 93, 10, 45, 105, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 115, 104, 91, 115, 36, 110, 93, 32, 51, 44, 51, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 115, 36, 110, 93, 44, 123, 36, 102, 97, 99, 116, 42, 40, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 41, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 121, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 42, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 32, 32, 32, 32, 78, 101, 120, 116, 32, 58, 34, 44, 52, 44, 48, 44, 51, 50, 44, 49, 44, 49, 54, 52, 32, 45, 114, 91, 45, 49, 93, 32, 52, 48, 37, 44, 52, 48, 37, 44, 49, 44, 51, 44, 50, 32, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 109, 36, 110, 110, 93, 32, 49, 57, 54, 32, 45, 114, 91, 45, 49, 93, 32, 51, 48, 48, 37, 44, 51, 48, 48, 37, 44, 49, 44, 51, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 119, 125, 45, 119, 45, 52, 125, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 49, 57, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 91, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 93, 32, 48, 44, 123, 45, 49, 51, 42, 64, 124, 42, 49, 46, 48, 52, 94, 36, 115, 99, 111, 114, 101, 125, 44, 48, 44, 48, 44, 50, 10, 45, 106, 91, 45, 49, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 50, 42, 119, 125, 44, 123, 50, 42, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 84, 101, 116, 114, 105, 115, 34, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 125, 10, 97, 110, 61, 123, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 44, 110, 61, 36, 110, 43, 49, 59, 105, 102, 40, 110, 37, 52, 44, 110, 44, 110, 45, 52, 41, 44, 36, 110, 41, 125, 10, 110, 120, 61, 123, 119, 50, 61, 105, 110, 116, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 47, 50, 41, 59, 109, 97, 120, 40, 119, 50, 44, 109, 105, 110, 40, 36, 120, 45, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 43, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 44, 36, 87, 45, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 37, 50, 41, 45, 119, 50, 41, 41, 125, 10, 45, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 97, 110, 93, 44, 123, 36, 110, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 45, 49, 44, 91, 109, 36, 97, 110, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 77, 125, 61, 61, 49, 125, 32, 120, 61, 36, 110, 120, 32, 110, 61, 36, 97, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 124, 45, 36, 116, 105, 109, 101, 62, 48, 46, 57, 94, 105, 110, 116, 40, 36, 115, 99, 111, 114, 101, 47, 50, 41, 34, 32, 124, 124, 32, 34, 36, 102, 97, 108, 108, 95, 109, 111, 100, 101, 125, 10, 121, 61, 123, 36, 121, 43, 49, 125, 10, 45, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 110, 93, 44, 123, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 45, 49, 44, 91, 109, 36, 110, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 77, 125, 62, 49, 34, 32, 124, 124, 32, 34, 36, 121, 43, 64, 123, 109, 36, 110, 44, 104, 125, 62, 36, 72, 125, 10, 45, 105, 102, 32, 123, 36, 121, 60, 61, 49, 125, 32, 103, 97, 109, 101, 111, 118, 101, 114, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 45, 106, 91, 114, 101, 110, 100, 101, 114, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 110, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 116, 105, 109, 101, 61, 64, 124, 32, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 116, 105, 99, 45, 116, 97, 99, 45, 116, 111, 101, 32, 103, 97, 109, 101, 46, 10, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 103, 97, 109, 101, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 85, 115, 101, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 92, 110, 10, 45, 45, 45, 45, 32, 115, 121, 109, 98, 111, 108, 115, 46, 32, 67, 108, 111, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 116, 111, 32, 101, 120, 105, 116, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 109, 101, 115, 115, 97, 103, 101, 61, 48, 10, 99, 111, 117, 110, 116, 101, 114, 61, 48, 10, 112, 108, 97, 121, 101, 114, 61, 48, 10, 115, 116, 97, 116, 101, 61, 48, 10, 116, 109, 112, 51, 61, 48, 10, 116, 109, 112, 50, 61, 48, 10, 116, 109, 112, 49, 61, 48, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 50, 10, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 32, 34, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 112, 108, 97, 121, 101, 114, 32, 109, 101, 115, 115, 97, 103, 101, 61, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 79, 32, 116, 111, 32, 112, 108, 97, 121, 41, 34, 10, 45, 101, 108, 115, 101, 32, 109, 101, 115, 115, 97, 103, 101, 61, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 88, 32, 116, 111, 32, 112, 108, 97, 121, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 119, 91, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 34, 36, 109, 101, 115, 115, 97, 103, 101, 32, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 33, 64, 33, 125, 32, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 50, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 121, 125, 62, 50, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 60, 52, 48, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 121, 125, 60, 52, 48, 48, 125, 10, 116, 109, 112, 51, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 49, 53, 41, 47, 49, 51, 48, 41, 125, 10, 116, 109, 112, 50, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 121, 125, 45, 49, 53, 41, 47, 49, 51, 48, 41, 125, 10, 116, 109, 112, 49, 61, 123, 52, 94, 40, 36, 116, 109, 112, 50, 42, 51, 43, 36, 116, 109, 112, 51, 41, 125, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 36, 115, 116, 97, 116, 101, 47, 36, 116, 109, 112, 49, 41, 37, 52, 125, 32, 116, 109, 112, 49, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 116, 109, 112, 49, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 116, 109, 112, 49, 60, 48, 125, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 123, 36, 112, 108, 97, 121, 101, 114, 37, 50, 125, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 34, 49, 51, 48, 42, 34, 36, 116, 109, 112, 51, 34, 32, 43, 32, 49, 53, 43, 63, 40, 45, 53, 44, 53, 41, 34, 125, 44, 92, 10, 123, 34, 49, 51, 48, 42, 34, 36, 116, 109, 112, 50, 34, 32, 43, 32, 49, 53, 43, 63, 40, 45, 53, 44, 53, 41, 34, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 10, 115, 116, 97, 116, 101, 61, 123, 36, 115, 116, 97, 116, 101, 43, 40, 49, 43, 36, 112, 108, 97, 121, 101, 114, 41, 42, 36, 116, 109, 112, 49, 125, 10, 40, 50, 49, 44, 49, 51, 52, 52, 44, 56, 54, 48, 49, 54, 44, 52, 49, 54, 49, 44, 49, 54, 54, 52, 52, 44, 54, 54, 53, 55, 54, 44, 54, 53, 55, 57, 51, 44, 52, 51, 54, 56, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 59, 92, 10, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 51, 44, 51, 44, 51, 44, 52, 44, 52, 44, 52, 44, 53, 44, 54, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 116, 109, 112, 49, 61, 64, 123, 45, 49, 44, 36, 62, 125, 10, 45, 105, 102, 32, 123, 40, 36, 115, 116, 97, 116, 101, 38, 36, 116, 109, 112, 49, 41, 61, 61, 36, 116, 109, 112, 49, 124, 124, 40, 36, 115, 116, 97, 116, 101, 38, 40, 50, 42, 36, 116, 109, 112, 49, 41, 41, 61, 61, 50, 42, 36, 116, 109, 112, 49, 125, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 64, 123, 45, 49, 44, 40, 36, 62, 44, 51, 41, 125, 10, 45, 106, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 123, 49, 51, 48, 42, 64, 123, 45, 51, 44, 40, 36, 62, 44, 49, 41, 125, 43, 63, 40, 45, 53, 44, 53, 41, 125, 44, 92, 10, 123, 49, 51, 48, 42, 64, 123, 45, 51, 44, 40, 36, 62, 44, 50, 41, 125, 43, 63, 40, 45, 53, 44, 53, 41, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 105, 102, 32, 123, 40, 36, 115, 116, 97, 116, 101, 38, 36, 116, 109, 112, 49, 41, 61, 61, 36, 116, 109, 112, 49, 125, 32, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 88, 32, 119, 111, 110, 33, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 79, 32, 119, 111, 110, 33, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 32, 45, 119, 97, 105, 116, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 33, 10, 45, 114, 109, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 112, 108, 97, 121, 101, 114, 61, 123, 40, 36, 112, 108, 97, 121, 101, 114, 43, 49, 41, 37, 50, 125, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 99, 111, 117, 110, 116, 101, 114, 60, 57, 125, 10, 45, 119, 91, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 84, 105, 101, 100, 32, 103, 97, 109, 101, 33, 41, 34, 10, 45, 100, 111, 32, 45, 119, 97, 105, 116, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 33, 10, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 52, 32, 45, 98, 91, 45, 49, 93, 32, 54, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 48, 46, 56, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 45, 102, 91, 45, 49, 93, 32, 49, 45, 105, 32, 45, 45, 110, 91, 45, 50, 93, 32, 36, 50, 44, 50, 53, 53, 32, 45, 45, 110, 91, 45, 51, 93, 32, 36, 51, 44, 50, 53, 53, 32, 45, 110, 91, 45, 52, 93, 32, 36, 49, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 48, 32, 58, 10, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 53, 37, 44, 49, 53, 37, 44, 56, 53, 37, 44, 56, 53, 37, 44, 49, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 53, 37, 44, 56, 53, 37, 44, 56, 53, 37, 44, 49, 53, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 49, 50, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 52, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 52, 48, 44, 52, 48, 44, 49, 54, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 49, 32, 58, 10, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 50, 50, 37, 44, 50, 50, 37, 44, 48, 44, 49, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 49, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 52, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 54, 48, 44, 52, 48, 44, 49, 54, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 50, 32, 58, 10, 51, 57, 49, 44, 51, 57, 49, 44, 49, 44, 49, 44, 34, 33, 40, 120, 37, 49, 51, 48, 41, 32, 124, 124, 32, 33, 40, 121, 37, 49, 51, 48, 41, 34, 32, 45, 114, 91, 45, 49, 93, 32, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 102, 91, 45, 49, 93, 32, 49, 45, 105, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 32, 45, 98, 91, 45, 49, 93, 32, 56, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 110, 91, 45, 49, 93, 32, 50, 50, 48, 44, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 51, 32, 58, 10, 52, 50, 49, 44, 49, 51, 48, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 54, 48, 37, 44, 57, 48, 37, 44, 54, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 123, 63, 40, 45, 54, 44, 54, 41, 125, 44, 49, 44, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 52, 32, 58, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 51, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 50, 45, 45, 49, 93, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 53, 32, 58, 10, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 54, 32, 58, 10, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 35, 64, 103, 109, 105, 99, 32, 120, 95, 119, 104, 105, 114, 108, 32, 58, 32, 95, 111, 112, 97, 99, 105, 116, 121, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 76, 97, 117, 110, 99, 104, 32, 102, 114, 97, 99, 116, 97, 108, 32, 119, 104, 105, 114, 108, 32, 100, 101, 109, 111, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 111, 112, 97, 99, 105, 116, 121, 61, 48, 46, 50, 39, 46, 10, 120, 95, 119, 104, 105, 114, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 48, 46, 50, 125, 62, 61, 48, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 114, 97, 99, 116, 97, 108, 32, 119, 104, 105, 114, 108, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 53, 44, 53, 44, 49, 44, 51, 32, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 32, 91, 45, 49, 93, 32, 45, 119, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 114, 97, 99, 116, 97, 108, 32, 119, 104, 105, 114, 108, 32, 100, 101, 109, 111, 34, 10, 116, 97, 110, 103, 108, 101, 61, 48, 32, 116, 122, 111, 111, 109, 61, 48, 32, 120, 99, 61, 123, 40, 119, 45, 64, 123, 45, 51, 44, 119, 125, 41, 47, 50, 125, 32, 121, 99, 61, 123, 40, 104, 45, 64, 123, 45, 51, 44, 104, 125, 41, 47, 50, 125, 10, 45, 100, 111, 10, 45, 114, 97, 110, 100, 91, 45, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 36, 120, 99, 44, 36, 121, 99, 44, 48, 44, 48, 10, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 93, 32, 123, 56, 42, 115, 105, 110, 40, 36, 116, 97, 110, 103, 108, 101, 41, 125, 44, 48, 44, 48, 44, 123, 119, 47, 50, 43, 63, 40, 45, 50, 44, 50, 41, 125, 44, 123, 104, 47, 50, 125, 44, 123, 49, 46, 48, 51, 43, 48, 46, 48, 50, 42, 115, 105, 110, 40, 36, 116, 122, 111, 111, 109, 41, 125, 10, 116, 97, 110, 103, 108, 101, 61, 123, 36, 116, 97, 110, 103, 108, 101, 43, 48, 46, 48, 48, 49, 125, 32, 116, 122, 111, 111, 109, 61, 123, 36, 116, 122, 111, 111, 109, 43, 48, 46, 48, 50, 125, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 80, 73, 78, 75, 45, 108, 105, 98, 114, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 10, 95, 119, 114, 98, 121, 116, 101, 112, 110, 107, 32, 58, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 49, 125, 46, 112, 110, 107, 10, 95, 120, 112, 105, 110, 107, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 102, 105, 108, 101, 95, 114, 97, 110, 100, 125, 10, 112, 114, 101, 102, 105, 120, 61, 112, 105, 110, 107, 46, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 125, 10, 45, 120, 32, 34, 119, 104, 105, 99, 104, 32, 34, 36, 123, 112, 114, 101, 102, 105, 120, 125, 36, 123, 49, 125, 34, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 45, 105, 102, 32, 123, 64, 123, 125, 33, 61, 48, 125, 32, 112, 114, 101, 102, 105, 120, 61, 34, 34, 32, 45, 120, 32, 34, 119, 104, 105, 99, 104, 32, 34, 36, 49, 34, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 9, 32, 32, 45, 105, 102, 32, 123, 64, 123, 125, 33, 61, 48, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 40, 112, 105, 110, 107, 46, 41, 34, 36, 49, 34, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 80, 65, 84, 72, 44, 32, 115, 116, 97, 116, 117, 115, 32, 61, 32, 34, 64, 123, 125, 34, 33, 33, 32, 82, 101, 116, 117, 114, 110, 105, 110, 103, 33, 33, 92, 110, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 32, 45, 120, 32, 36, 123, 112, 114, 101, 102, 105, 120, 125, 36, 123, 49, 125, 34, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 112, 110, 107, 32, 36, 50, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 95, 111, 46, 112, 110, 107, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 45, 101, 108, 115, 101, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 32, 45, 120, 32, 36, 49, 34, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 112, 110, 107, 32, 36, 50, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 95, 111, 46, 112, 110, 107, 34, 10, 45, 101, 110, 100, 105, 102, 10, 115, 116, 97, 116, 117, 115, 61, 64, 123, 125, 10, 45, 102, 105, 108, 101, 95, 114, 109, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 10, 45, 105, 102, 32, 123, 36, 115, 116, 97, 116, 117, 115, 33, 61, 48, 92, 32, 38, 38, 92, 32, 123, 36, 49, 39, 33, 61, 39, 115, 101, 117, 105, 108, 97, 117, 116, 111, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 32, 83, 116, 97, 116, 117, 115, 32, 105, 115, 32, 34, 36, 123, 115, 116, 97, 116, 117, 115, 125, 34, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 108, 105, 102, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 105, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 102, 105, 108, 101, 95, 114, 109, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 32, 69, 114, 114, 111, 114, 33, 33, 34, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 112, 105, 110, 107, 115, 32, 58, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 32, 45, 95, 120, 112, 105, 110, 107, 32, 36, 49, 44, 34, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 102, 114, 97, 109, 101, 32, 58, 10, 45, 108, 105, 110, 101, 32, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 44, 48, 37, 32, 45, 108, 105, 110, 101, 32, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 108, 105, 110, 101, 32, 48, 37, 44, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 32, 45, 108, 105, 110, 101, 32, 49, 48, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 35, 64, 103, 109, 105, 99, 32, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 97, 118, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 80, 53, 45, 99, 111, 100, 101, 100, 32, 80, 80, 77, 32, 102, 105, 108, 101, 115, 32, 40, 80, 73, 78, 75, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 102, 111, 114, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 41, 46, 10, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 32, 40, 105, 110, 32, 51, 100, 32, 112, 105, 110, 107, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 111, 102, 32, 80, 53, 45, 99, 111, 100, 101, 100, 32, 80, 80, 77, 32, 102, 111, 114, 109, 97, 116, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 48, 61, 34, 36, 49, 34, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 61, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 92, 34, 36, 49, 92, 34, 34, 44, 36, 62, 125, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 32, 45, 111, 91, 45, 49, 93, 32, 112, 112, 109, 58, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 125, 10, 45, 101, 108, 115, 101, 10, 40, 123, 39, 80, 53, 92, 110, 123, 119, 125, 92, 32, 123, 104, 125, 92, 32, 123, 100, 125, 92, 110, 50, 53, 53, 92, 110, 39, 125, 41, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 32, 45, 121, 91, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 125, 44, 117, 99, 104, 97, 114, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 105, 110, 107, 32, 119, 114, 97, 112, 112, 101, 114, 32, 110, 97, 109, 101, 44, 112, 49, 44, 32, 46, 46, 32, 44, 112, 110, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 112, 114, 101, 112, 97, 114, 101, 115, 32, 105, 110, 112, 117, 116, 44, 32, 99, 97, 108, 108, 115, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 34, 110, 97, 109, 101, 32, 105, 110, 112, 117, 116, 32, 112, 49, 32, 46, 46, 46, 32, 112, 110, 32, 111, 117, 116, 112, 117, 116, 34, 32, 97, 110, 100, 32, 114, 101, 97, 100, 115, 32, 111, 117, 116, 112, 117, 116, 32, 40, 47, 116, 109, 112, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 105, 110, 107, 32, 97, 115, 102, 114, 44, 53, 32, 45, 112, 105, 110, 107, 91, 48, 93, 32, 97, 115, 102, 44, 53, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 112, 105, 110, 107, 32, 109, 97, 120, 105, 109, 97, 44, 52, 10, 112, 105, 110, 107, 32, 58, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 62, 49, 125, 32, 40, 123, 34, 39, 36, 123, 50, 45, 45, 49, 125, 39, 34, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 44, 39, 125, 44, 123, 34, 39, 32, 39, 34, 125, 32, 112, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 112, 61, 34, 32, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 97, 108, 108, 32, 112, 105, 110, 107, 32, 112, 97, 99, 107, 97, 103, 101, 32, 119, 105, 116, 104, 32, 99, 109, 100, 58, 32, 92, 34, 36, 49, 36, 63, 32, 34, 36, 112, 34, 36, 63, 92, 34, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 36, 49, 44, 36, 112, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 32, 95, 108, 97, 109, 98, 100, 97, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 103, 114, 97, 121, 115, 107, 101, 108, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 32, 104, 111, 109, 111, 116, 111, 112, 105, 99, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 108, 97, 109, 98, 100, 97, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 32, 44, 32, 45, 45, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 91, 48, 93, 32, 44, 49, 48, 32, 45, 45, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 91, 48, 93, 32, 44, 49, 48, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 50, 10, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 103, 114, 97, 121, 115, 107, 101, 108, 34, 44, 34, 110, 117, 108, 108, 32, 36, 49, 32, 36, 50, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 104, 101, 105, 103, 104, 116, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 72, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 104, 101, 105, 103, 104, 116, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 45, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 44, 49, 53, 32, 45, 45, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 91, 48, 44, 49, 93, 32, 44, 49, 53, 32, 45, 45, 91, 45, 51, 44, 45, 49, 93, 32, 45, 45, 91, 45, 51, 44, 45, 49, 93, 32, 45, 107, 91, 45, 49, 44, 45, 50, 93, 10, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 105, 108, 116, 101, 114, 32, 98, 121, 32, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 104, 101, 105, 103, 104, 116, 61, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 72, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 104, 101, 105, 103, 104, 116, 61, 49, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 45, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 44, 49, 53, 32, 45, 45, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 91, 48, 44, 49, 93, 32, 44, 49, 53, 32, 45, 45, 91, 45, 51, 44, 45, 49, 93, 32, 45, 45, 91, 45, 51, 44, 45, 49, 93, 32, 45, 107, 91, 45, 49, 44, 45, 50, 93, 10, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 105, 108, 116, 101, 114, 32, 98, 121, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 104, 116, 107, 101, 114, 110, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 32, 95, 116, 121, 112, 101, 61, 123, 34, 34, 124, 117, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 104, 116, 107, 101, 114, 110, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 104, 116, 107, 101, 114, 110, 117, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 32, 117, 108, 116, 105, 109, 97, 116, 101, 32, 104, 111, 109, 111, 116, 111, 112, 105, 99, 32, 116, 104, 105, 110, 110, 105, 110, 103, 47, 116, 104, 105, 99, 107, 101, 110, 105, 110, 103, 32, 119, 105, 116, 104, 111, 117, 116, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 116, 121, 112, 101, 61, 34, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 105, 110, 107, 95, 104, 116, 107, 101, 114, 110, 32, 44, 117, 32, 45, 45, 112, 105, 110, 107, 95, 104, 116, 107, 101, 114, 110, 91, 48, 93, 32, 44, 32, 45, 45, 45, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 109, 91, 48, 93, 10, 112, 105, 110, 107, 95, 104, 116, 107, 101, 114, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 104, 116, 107, 101, 114, 110, 36, 50, 44, 34, 110, 117, 108, 108, 32, 36, 49, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 108, 118, 107, 101, 114, 110, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 32, 95, 116, 121, 112, 101, 61, 123, 34, 34, 124, 117, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 108, 118, 107, 101, 114, 110, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 108, 118, 107, 101, 114, 110, 117, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 32, 117, 108, 116, 105, 109, 97, 116, 101, 32, 108, 101, 118, 101, 108, 105, 110, 103, 32, 116, 104, 105, 110, 110, 105, 110, 103, 47, 116, 104, 105, 99, 107, 101, 110, 105, 110, 103, 32, 119, 105, 116, 104, 111, 117, 116, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 116, 121, 112, 101, 61, 34, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 112, 105, 110, 107, 95, 108, 118, 107, 101, 114, 110, 32, 44, 117, 10, 112, 105, 110, 107, 95, 108, 118, 107, 101, 114, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 34, 34, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 108, 118, 107, 101, 114, 110, 36, 123, 50, 125, 44, 34, 110, 117, 108, 108, 32, 36, 49, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 114, 101, 103, 95, 109, 105, 110, 105, 109, 97, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 109, 105, 110, 105, 109, 97, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 103, 105, 111, 110, 97, 108, 32, 109, 105, 110, 105, 109, 97, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 98, 108, 117, 114, 32, 50, 32, 45, 112, 105, 110, 107, 95, 114, 101, 103, 95, 109, 105, 110, 105, 109, 97, 32, 44, 10, 112, 105, 110, 107, 95, 114, 101, 103, 95, 109, 105, 110, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 114, 101, 103, 105, 111, 110, 97, 108, 32, 109, 105, 110, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 109, 105, 110, 105, 109, 97, 34, 44, 34, 36, 49, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 32, 58, 32, 95, 112, 114, 105, 111, 61, 123, 48, 124, 49, 124, 50, 124, 51, 124, 52, 124, 56, 124, 54, 124, 50, 54, 125, 44, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 105, 110, 104, 105, 98, 105, 116, 61, 123, 34, 34, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 115, 107, 101, 108, 99, 117, 114, 118, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 117, 114, 118, 105, 108, 105, 110, 101, 97, 114, 32, 98, 105, 110, 97, 114, 121, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 103, 117, 105, 100, 101, 100, 32, 98, 121, 32, 97, 32, 112, 114, 105, 111, 114, 105, 116, 121, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 105, 109, 97, 103, 101, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 114, 105, 111, 61, 48, 39, 44, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 105, 110, 104, 105, 98, 105, 116, 61, 34, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 62, 119, 47, 50, 44, 50, 53, 53, 44, 48, 41, 39, 32, 116, 112, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 32, 45, 111, 117, 116, 112, 117, 116, 91, 45, 49, 93, 32, 36, 123, 116, 112, 125, 47, 105, 110, 104, 105, 98, 105, 116, 46, 112, 103, 109, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 91, 48, 93, 32, 44, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 91, 48, 93, 32, 44, 44, 36, 123, 116, 112, 125, 47, 105, 110, 104, 105, 98, 105, 116, 46, 112, 103, 109, 32, 45, 101, 120, 101, 99, 32, 34, 114, 109, 32, 34, 36, 123, 116, 112, 125, 34, 47, 105, 110, 104, 105, 98, 105, 116, 46, 112, 103, 109, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 32, 44, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 91, 45, 50, 93, 32, 44, 56, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 52, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 117, 114, 118, 105, 108, 105, 110, 101, 97, 114, 32, 98, 105, 110, 97, 114, 121, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 103, 117, 105, 100, 101, 100, 32, 98, 121, 32, 97, 32, 112, 114, 105, 111, 114, 105, 116, 121, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 112, 114, 105, 111, 61, 36, 49, 44, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 36, 50, 44, 32, 105, 110, 104, 105, 98, 105, 116, 61, 36, 51, 46, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 99, 117, 114, 118, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 110, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 115, 107, 101, 108, 101, 110, 100, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 72, 111, 109, 111, 116, 111, 112, 105, 99, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 97, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 100, 121, 110, 97, 109, 105, 99, 32, 100, 101, 116, 101, 99, 116, 105, 111, 110, 32, 111, 102, 32, 101, 110, 100, 32, 112, 111, 105, 110, 116, 115, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 110, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 32, 44, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 91, 45, 50, 93, 32, 44, 45, 49, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 101, 110, 100, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 95, 112, 114, 105, 111, 61, 123, 48, 124, 49, 124, 50, 124, 51, 124, 52, 124, 56, 124, 54, 124, 50, 54, 125, 44, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 105, 110, 104, 105, 98, 105, 116, 61, 123, 34, 34, 125, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 115, 107, 101, 108, 101, 116, 111, 110, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 108, 116, 105, 109, 97, 116, 101, 32, 98, 105, 110, 97, 114, 121, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 103, 117, 105, 100, 101, 100, 32, 98, 121, 32, 97, 32, 112, 114, 105, 111, 114, 105, 116, 121, 32, 105, 109, 97, 103, 101, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 112, 114, 105, 111, 61, 48, 39, 44, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 32, 97, 110, 100, 32, 39, 105, 110, 104, 105, 98, 105, 116, 61, 34, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 44, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 52, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 101, 116, 111, 110, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 32, 58, 32, 95, 97, 108, 103, 111, 114, 105, 116, 104, 109, 61, 123, 48, 46, 46, 50, 57, 125, 44, 95, 110, 115, 116, 101, 112, 115, 61, 95, 49, 44, 95, 105, 110, 104, 105, 98, 105, 116, 61, 34, 34, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 115, 107, 101, 108, 112, 97, 114, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 98, 105, 110, 97, 114, 121, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 97, 108, 103, 111, 114, 105, 116, 104, 109, 61, 52, 39, 44, 32, 39, 110, 115, 116, 101, 112, 115, 61, 45, 49, 39, 32, 97, 110, 100, 32, 39, 105, 110, 104, 105, 98, 105, 116, 61, 34, 34, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 53, 48, 37, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 91, 45, 49, 93, 32, 48, 32, 45, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 91, 45, 49, 93, 32, 50, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 45, 49, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 102, 114, 97, 109, 101, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 112, 97, 114, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 109, 105, 99, 32, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 32, 58, 32, 95, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 123, 32, 52, 32, 124, 32, 56, 32, 124, 32, 54, 32, 124, 32, 50, 54, 32, 125, 44, 95, 105, 110, 118, 101, 114, 115, 101, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 104, 101, 105, 103, 104, 116, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 119, 115, 104, 101, 100, 116, 111, 112, 111, 95, 56, 99, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 97, 116, 101, 114, 115, 104, 101, 100, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 104, 101, 32, 80, 73, 78, 75, 32, 108, 105, 98, 114, 97, 114, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 52, 39, 44, 32, 39, 105, 110, 118, 101, 114, 115, 101, 61, 48, 39, 32, 97, 110, 100, 32, 39, 104, 101, 105, 103, 104, 116, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 32, 44, 49, 44, 53, 32, 45, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 91, 48, 93, 32, 44, 44, 53, 10, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 105, 110, 118, 101, 114, 115, 105, 111, 110, 32, 36, 50, 32, 104, 101, 105, 103, 104, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 32, 109, 97, 120, 40, 109, 105, 110, 40, 105, 44, 50, 53, 53, 41, 44, 48, 41, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 36, 49, 44, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 32, 109, 97, 120, 40, 109, 105, 110, 40, 105, 44, 50, 53, 53, 41, 44, 48, 41, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 10, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 36, 49, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 67, 111, 110, 118, 101, 110, 105, 101, 110, 99, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 10, 35, 64, 103, 109, 105, 99, 32, 97, 108, 101, 114, 116, 32, 58, 32, 95, 116, 105, 116, 108, 101, 44, 95, 109, 101, 115, 115, 97, 103, 101, 44, 95, 108, 97, 98, 101, 108, 95, 98, 117, 116, 116, 111, 110, 49, 44, 95, 108, 97, 98, 101, 108, 95, 98, 117, 116, 116, 111, 110, 50, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 97, 110, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 32, 97, 110, 100, 32, 119, 97, 105, 116, 32, 102, 111, 114, 32, 117, 115, 101, 114, 39, 115, 32, 99, 104, 111, 105, 99, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 102, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 44, 32, 105, 116, 32, 105, 115, 32, 117, 115, 101, 100, 32, 97, 115, 32, 97, 110, 32, 105, 99, 111, 110, 32, 102, 111, 114, 32, 116, 104, 101, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 58, 32, 39, 116, 105, 116, 108, 101, 61, 91, 71, 39, 77, 73, 67, 32, 65, 108, 101, 114, 116, 93, 39, 32, 97, 110, 100, 32, 39, 109, 101, 115, 115, 97, 103, 101, 61, 84, 104, 105, 115, 32, 105, 115, 32, 97, 110, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 39, 46, 10, 97, 108, 101, 114, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 91, 71, 39, 77, 73, 67, 32, 65, 108, 101, 114, 116, 93, 125, 44, 36, 123, 50, 61, 84, 104, 105, 115, 32, 105, 115, 32, 97, 110, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 125, 44, 36, 123, 51, 61, 79, 75, 125, 34, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 116, 105, 116, 108, 101, 32, 39, 36, 49, 39, 44, 32, 109, 101, 115, 115, 97, 103, 101, 32, 39, 36, 50, 39, 32, 97, 110, 100, 32, 98, 117, 116, 116, 111, 110, 115, 32, 39, 36, 123, 51, 45, 45, 49, 125, 39, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 116, 105, 116, 108, 101, 32, 39, 36, 49, 39, 44, 32, 109, 101, 115, 115, 97, 103, 101, 32, 39, 36, 50, 39, 32, 97, 110, 100, 32, 98, 117, 116, 116, 111, 110, 115, 32, 39, 36, 123, 51, 45, 45, 49, 125, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 108, 111, 103, 111, 61, 32, 45, 101, 108, 115, 101, 32, 108, 111, 103, 111, 61, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 108, 36, 108, 111, 103, 111, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 115, 101, 10, 54, 52, 44, 54, 52, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 53, 48, 37, 44, 49, 48, 37, 44, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 49, 32, 45, 98, 32, 51, 32, 45, 103, 101, 32, 53, 48, 37, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 53, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 52, 55, 37, 44, 52, 51, 37, 44, 53, 51, 37, 44, 52, 51, 37, 44, 53, 51, 37, 44, 54, 54, 37, 44, 52, 55, 37, 44, 54, 54, 37, 44, 49, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 55, 54, 37, 44, 50, 44, 49, 44, 48, 10, 45, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 45, 91, 45, 49, 93, 32, 39, 51, 42, 40, 121, 45, 104, 47, 50, 41, 39, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 45, 114, 118, 32, 45, 97, 32, 99, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 51, 44, 51, 44, 49, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 45, 49, 44, 50, 10, 36, 61, 97, 114, 103, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 50, 125, 32, 108, 97, 98, 101, 108, 61, 36, 123, 97, 114, 103, 123, 36, 62, 43, 51, 125, 125, 32, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 36, 108, 97, 98, 101, 108, 44, 48, 44, 48, 44, 49, 52, 44, 49, 44, 45, 50, 48, 48, 32, 45, 100, 111, 110, 101, 10, 45, 114, 91, 94, 48, 93, 32, 123, 109, 105, 110, 40, 49, 50, 56, 44, 109, 97, 120, 40, 54, 52, 44, 64, 123, 45, 109, 97, 120, 95, 119, 91, 94, 48, 93, 125, 43, 49, 50, 41, 41, 125, 44, 123, 109, 105, 110, 40, 52, 56, 44, 109, 97, 120, 40, 50, 52, 44, 64, 123, 45, 109, 97, 120, 95, 104, 91, 94, 48, 93, 125, 43, 49, 50, 41, 41, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 43, 91, 94, 48, 93, 32, 50, 48, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 94, 48, 93, 10, 45, 109, 118, 91, 48, 93, 32, 64, 35, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 39, 40, 121, 45, 104, 47, 50, 41, 39, 32, 45, 42, 91, 45, 49, 93, 32, 45, 50, 32, 45, 99, 91, 45, 49, 93, 32, 45, 51, 48, 44, 51, 48, 32, 45, 43, 91, 48, 45, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 91, 94, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 44, 123, 104, 45, 51, 125, 44, 123, 119, 45, 51, 125, 44, 123, 104, 45, 51, 125, 44, 49, 44, 49, 53, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 119, 45, 51, 125, 44, 123, 104, 45, 51, 125, 44, 123, 119, 45, 51, 125, 44, 50, 44, 49, 44, 49, 53, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 51, 125, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 104, 45, 51, 125, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 53, 125, 44, 49, 44, 48, 120, 65, 65, 65, 65, 65, 65, 65, 65, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 49, 53, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 53, 125, 44, 49, 44, 48, 120, 65, 65, 65, 65, 65, 65, 65, 65, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 49, 44, 123, 104, 45, 50, 125, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 49, 53, 48, 32, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 123, 119, 45, 50, 125, 44, 49, 44, 49, 44, 49, 53, 48, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 123, 119, 45, 50, 125, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 48, 44, 123, 104, 45, 50, 125, 44, 49, 44, 50, 53, 53, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 48, 93, 32, 49, 44, 48, 44, 48, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 108, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 51, 32, 45, 115, 104, 32, 49, 44, 49, 48, 48, 37, 32, 45, 45, 91, 53, 48, 37, 45, 45, 49, 93, 32, 50, 48, 48, 32, 45, 114, 109, 91, 53, 48, 37, 45, 45, 49, 93, 32, 45, 102, 114, 97, 109, 101, 32, 56, 44, 56, 44, 48, 10, 45, 105, 102, 32, 123, 64, 35, 60, 54, 125, 32, 45, 97, 91, 94, 45, 49, 93, 32, 120, 32, 45, 101, 108, 115, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 94, 45, 49, 93, 32, 44, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 36, 50, 34, 44, 48, 44, 48, 44, 49, 52, 44, 49, 44, 48, 44, 45, 50, 48, 48, 44, 45, 50, 48, 48, 44, 45, 50, 48, 48, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 49, 54, 125, 44, 123, 104, 43, 56, 125, 44, 49, 44, 52, 44, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 44, 48, 46, 53, 32, 45, 114, 118, 32, 45, 97, 32, 121, 44, 48, 46, 53, 10, 45, 115, 104, 32, 49, 44, 49, 48, 48, 37, 32, 45, 43, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 32, 48, 44, 48, 44, 123, 119, 45, 50, 125, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 32, 48, 44, 48, 44, 48, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 40, 48, 59, 64, 123, 45, 50, 44, 104, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 51, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 45, 51, 44, 119, 125, 32, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 62, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 62, 44, 49, 41, 125, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 120, 48, 43, 64, 123, 48, 44, 119, 125, 45, 49, 125, 44, 123, 36, 121, 48, 43, 64, 123, 48, 44, 104, 125, 45, 49, 125, 44, 49, 44, 123, 49, 43, 36, 62, 125, 32, 45, 100, 111, 110, 101, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 57, 32, 45, 105, 102, 32, 123, 33, 64, 123, 33, 36, 62, 125, 125, 32, 100, 105, 115, 112, 61, 36, 62, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 100, 105, 115, 112, 41, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 67, 97, 110, 110, 111, 116, 32, 111, 112, 101, 110, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 102, 111, 114, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 105, 102, 40, 36, 35, 61, 61, 51, 44, 48, 44, 45, 49, 41, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 45, 49, 10, 45, 100, 111, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 105, 102, 32, 123, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 125, 10, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 99, 108, 105, 99, 107, 101, 100, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 99, 108, 105, 99, 107, 101, 100, 44, 49, 41, 125, 10, 45, 45, 115, 104, 91, 36, 99, 108, 105, 99, 107, 101, 100, 93, 32, 55, 44, 57, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 48, 44, 36, 121, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 115, 101, 108, 101, 99, 116, 101, 100, 62, 61, 48, 125, 10, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 44, 49, 41, 125, 10, 45, 45, 115, 104, 91, 36, 115, 101, 108, 101, 99, 116, 101, 100, 93, 32, 52, 44, 54, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 48, 44, 36, 121, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 36, 100, 105, 115, 112, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 34, 36, 49, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 10, 120, 109, 61, 64, 123, 33, 36, 100, 105, 115, 112, 44, 120, 125, 32, 121, 109, 61, 64, 123, 33, 36, 100, 105, 115, 112, 44, 121, 125, 32, 98, 109, 61, 123, 64, 123, 33, 36, 100, 105, 115, 112, 44, 98, 125, 38, 49, 125, 32, 118, 97, 108, 61, 123, 105, 40, 36, 120, 109, 44, 36, 121, 109, 44, 48, 44, 51, 41, 125, 10, 45, 105, 102, 32, 123, 36, 98, 109, 34, 32, 38, 38, 32, 34, 36, 118, 97, 108, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 123, 36, 118, 97, 108, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 109, 34, 32, 38, 38, 32, 34, 33, 36, 118, 97, 108, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 36, 99, 108, 105, 99, 107, 101, 100, 32, 99, 108, 105, 99, 107, 101, 100, 61, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 98, 109, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 61, 61, 36, 118, 97, 108, 45, 49, 125, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 36, 100, 105, 115, 112, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 43, 49, 41, 37, 64, 123, 45, 50, 44, 119, 125, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 36, 100, 105, 115, 112, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 45, 49, 41, 37, 64, 123, 45, 50, 44, 119, 125, 43, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 61, 61, 45, 49, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 115, 101, 108, 101, 99, 116, 101, 100, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 36, 100, 105, 115, 112, 44, 69, 78, 84, 69, 82, 125, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 36, 115, 101, 108, 101, 99, 116, 101, 100, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 123, 33, 36, 100, 105, 115, 112, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 36, 100, 105, 115, 112, 44, 69, 83, 67, 125, 125, 10, 45, 119, 36, 100, 105, 115, 112, 32, 48, 32, 45, 114, 109, 32, 45, 117, 32, 36, 99, 108, 105, 99, 107, 101, 100, 10, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 114, 103, 32, 58, 32, 110, 44, 95, 97, 114, 103, 49, 44, 46, 46, 46, 44, 95, 97, 114, 103, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 110, 45, 116, 104, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 108, 105, 115, 116, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 39, 110, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 110, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 97, 114, 103, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 117, 32, 36, 123, 97, 114, 103, 123, 49, 43, 40, 36, 49, 41, 125, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 116, 32, 58, 32, 95, 120, 44, 95, 121, 44, 95, 122, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 111, 105, 110, 116, 32, 40, 120, 44, 121, 44, 122, 41, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 97, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 118, 32, 45, 32, 45, 45, 122, 91, 45, 49, 93, 32, 36, 123, 49, 45, 51, 125, 44, 36, 123, 49, 45, 51, 125, 32, 45, 117, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 32, 58, 32, 118, 97, 108, 117, 101, 49, 44, 118, 97, 108, 117, 101, 50, 44, 46, 46, 46, 32, 124, 32, 97, 117, 116, 111, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 40, 120, 48, 44, 121, 48, 44, 122, 48, 44, 120, 49, 44, 121, 49, 44, 122, 49, 41, 32, 111, 102, 32, 116, 104, 101, 32, 97, 117, 116, 111, 99, 114, 111, 112, 32, 116, 104, 97, 116, 32, 99, 111, 117, 108, 100, 32, 98, 101, 32, 112, 101, 114, 102, 111, 114, 109, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 97, 117, 116, 111, 39, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 117, 116, 111, 125, 10, 45, 118, 32, 45, 10, 105, 115, 95, 97, 117, 116, 111, 61, 123, 36, 49, 39, 61, 61, 39, 97, 117, 116, 111, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 118, 97, 108, 117, 101, 61, 123, 105, 40, 119, 45, 49, 44, 104, 45, 49, 44, 100, 45, 49, 41, 125, 32, 45, 45, 61, 91, 45, 49, 93, 32, 123, 49, 43, 36, 118, 97, 108, 117, 101, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 61, 91, 45, 49, 93, 32, 36, 118, 97, 108, 117, 101, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 120, 48, 61, 123, 36, 119, 45, 119, 125, 32, 121, 48, 61, 123, 36, 104, 45, 104, 125, 32, 122, 48, 61, 123, 36, 100, 45, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 49, 125, 10, 120, 49, 61, 123, 36, 120, 48, 43, 119, 45, 49, 125, 32, 121, 49, 61, 123, 36, 121, 48, 43, 104, 45, 49, 125, 32, 122, 49, 61, 123, 36, 122, 48, 43, 100, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 117, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 122, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 122, 49, 10, 45, 118, 32, 43, 10, 95, 97, 117, 116, 111, 99, 114, 111, 112, 48, 32, 58, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 36, 42, 10, 95, 97, 117, 116, 111, 99, 114, 111, 112, 49, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 42, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 10, 35, 64, 103, 109, 105, 99, 32, 97, 118, 101, 114, 97, 103, 101, 95, 99, 111, 108, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 97, 118, 101, 114, 97, 103, 101, 32, 99, 111, 108, 111, 114, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 97, 118, 101, 114, 97, 103, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 45, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 123, 49, 43, 36, 62, 125, 44, 123, 49, 43, 36, 62, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 123, 105, 97, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 117, 32, 123, 105, 97, 125, 36, 114, 101, 115, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 97, 115, 101, 110, 97, 109, 101, 32, 58, 32, 102, 105, 108, 101, 95, 112, 97, 116, 104, 44, 95, 118, 97, 114, 105, 97, 98, 108, 101, 95, 110, 97, 109, 101, 95, 102, 111, 114, 95, 102, 111, 108, 100, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 98, 97, 115, 101, 110, 97, 109, 101, 32, 111, 102, 32, 97, 32, 102, 105, 108, 101, 32, 112, 97, 116, 104, 44, 32, 97, 110, 100, 32, 111, 112, 116, 46, 32, 105, 116, 115, 32, 102, 111, 108, 100, 101, 114, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 87, 104, 101, 110, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 39, 118, 97, 114, 105, 97, 98, 108, 101, 95, 110, 97, 109, 101, 95, 102, 111, 114, 95, 102, 111, 108, 100, 101, 114, 39, 32, 109, 117, 115, 116, 32, 115, 116, 97, 114, 116, 115, 32, 98, 121, 32, 97, 110, 32, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 40, 103, 108, 111, 98, 97, 108, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 97, 99, 99, 101, 115, 115, 105, 98, 108, 101, 32, 102, 114, 111, 109, 32, 99, 97, 108, 108, 105, 110, 103, 32, 102, 117, 110, 99, 116, 105, 111, 110, 41, 46, 10, 98, 97, 115, 101, 110, 97, 109, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 117, 110, 117, 115, 101, 100, 125, 10, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 40, 123, 34, 39, 36, 49, 39, 34, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 57, 50, 44, 52, 55, 32, 45, 115, 32, 43, 44, 52, 55, 10, 45, 105, 102, 32, 123, 105, 61, 61, 52, 55, 125, 32, 45, 97, 32, 121, 32, 36, 50, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 117, 32, 34, 34, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 36, 50, 61, 34, 34, 10, 45, 101, 108, 115, 101, 32, 45, 97, 91, 94, 45, 49, 93, 32, 121, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 36, 50, 61, 64, 123, 45, 50, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 98, 105, 110, 32, 58, 32, 98, 105, 110, 97, 114, 121, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 111, 99, 116, 97, 108, 44, 32, 100, 101, 99, 105, 109, 97, 108, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 98, 105, 110, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 98, 105, 110, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 98, 105, 110, 97, 114, 121, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 10, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 35, 64, 103, 109, 105, 99, 32, 98, 105, 110, 50, 100, 101, 99, 32, 58, 32, 98, 105, 110, 97, 114, 121, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 98, 105, 110, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 98, 105, 110, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 52, 57, 44, 40, 105, 45, 52, 56, 41, 42, 50, 94, 40, 119, 45, 49, 45, 120, 41, 44, 110, 97, 110, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 99, 111, 109, 112, 114, 101, 115, 115, 95, 103, 109, 105, 99, 32, 58, 10, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 104, 101, 97, 100, 95, 115, 116, 100, 61, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 10, 45, 115, 32, 45, 44, 49, 48, 32, 78, 61, 64, 35, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 33, 40, 36, 62, 37, 49, 48, 48, 41, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 47, 36, 78, 42, 49, 48, 48, 41, 125, 37, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 10, 104, 101, 97, 100, 61, 64, 123, 45, 49, 44, 48, 45, 123, 109, 105, 110, 40, 53, 44, 104, 45, 49, 41, 125, 125, 10, 45, 105, 102, 32, 123, 123, 36, 104, 101, 97, 100, 39, 33, 61, 39, 36, 104, 101, 97, 100, 95, 115, 116, 100, 125, 34, 32, 124, 124, 32, 34, 40, 105, 40, 48, 44, 54, 41, 33, 61, 123, 39, 34, 32, 34, 39, 125, 34, 32, 38, 38, 32, 34, 105, 40, 48, 44, 54, 41, 33, 61, 123, 39, 58, 39, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 32, 43, 44, 51, 50, 44, 51, 53, 32, 45, 105, 102, 32, 123, 64, 35, 62, 50, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 32, 45, 105, 102, 32, 123, 33, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 97, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 49, 48, 48, 37, 34, 10, 99, 111, 109, 112, 114, 101, 115, 115, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 32, 58, 10, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 104, 101, 97, 100, 95, 115, 116, 100, 61, 123, 39, 34, 35, 64, 103, 105, 109, 112, 34, 39, 125, 10, 45, 115, 32, 45, 44, 49, 48, 32, 78, 61, 64, 35, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 33, 40, 36, 62, 37, 49, 48, 48, 41, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 47, 36, 78, 42, 49, 48, 48, 41, 125, 37, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 10, 104, 101, 97, 100, 61, 64, 123, 45, 49, 44, 48, 45, 123, 109, 105, 110, 40, 53, 44, 104, 45, 49, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 104, 101, 97, 100, 39, 33, 61, 39, 36, 104, 101, 97, 100, 95, 115, 116, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 32, 43, 44, 51, 50, 44, 51, 53, 32, 45, 105, 102, 32, 123, 64, 35, 62, 50, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 32, 45, 105, 102, 32, 123, 33, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 97, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 49, 48, 48, 37, 34, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 32, 58, 32, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 98, 105, 110, 97, 114, 121, 44, 32, 111, 99, 116, 97, 108, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 100, 101, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 44, 10, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 46, 34, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 50, 115, 116, 114, 32, 58, 32, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 97, 108, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 105, 116, 115, 32, 115, 116, 114, 105, 110, 103, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 46, 10, 100, 101, 99, 50, 115, 116, 114, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 96, 36, 123, 94, 48, 125, 96, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 50, 98, 105, 110, 32, 58, 32, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 98, 105, 110, 97, 114, 121, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 100, 101, 99, 50, 98, 105, 110, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 98, 105, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 123, 36, 114, 37, 50, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 50, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 50, 104, 101, 120, 32, 58, 32, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 100, 101, 99, 50, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 104, 101, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 64, 123, 45, 95, 100, 101, 99, 50, 104, 101, 120, 95, 123, 36, 114, 37, 49, 54, 125, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 49, 54, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 48, 32, 58, 32, 45, 117, 32, 48, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 32, 58, 32, 45, 117, 32, 49, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 50, 32, 58, 32, 45, 117, 32, 50, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 51, 32, 58, 32, 45, 117, 32, 51, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 52, 32, 58, 32, 45, 117, 32, 52, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 53, 32, 58, 32, 45, 117, 32, 53, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 54, 32, 58, 32, 45, 117, 32, 54, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 55, 32, 58, 32, 45, 117, 32, 55, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 56, 32, 58, 32, 45, 117, 32, 56, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 57, 32, 58, 32, 45, 117, 32, 57, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 48, 32, 58, 32, 45, 117, 32, 97, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 49, 32, 58, 32, 45, 117, 32, 98, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 50, 32, 58, 32, 45, 117, 32, 99, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 51, 32, 58, 32, 45, 117, 32, 100, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 52, 32, 58, 32, 45, 117, 32, 101, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 53, 32, 58, 32, 45, 117, 32, 102, 10, 35, 64, 103, 109, 105, 99, 32, 100, 101, 99, 50, 111, 99, 116, 32, 58, 32, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 111, 99, 116, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 100, 101, 99, 50, 111, 99, 116, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 123, 36, 114, 37, 56, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 56, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 35, 64, 103, 109, 105, 99, 32, 102, 97, 99, 116, 32, 58, 32, 118, 97, 108, 117, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 102, 97, 99, 116, 111, 114, 105, 97, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 118, 97, 108, 117, 101, 46, 10, 102, 97, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 114, 101, 115, 61, 123, 36, 114, 101, 115, 42, 40, 36, 62, 43, 49, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 101, 95, 109, 118, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 95, 115, 114, 99, 44, 102, 105, 108, 101, 110, 97, 109, 101, 95, 100, 101, 115, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 110, 97, 109, 101, 32, 111, 114, 32, 109, 111, 118, 101, 32, 97, 32, 102, 105, 108, 101, 32, 102, 114, 111, 109, 32, 97, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 36, 49, 32, 116, 111, 32, 97, 110, 111, 116, 104, 101, 114, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 36, 50, 46, 10, 102, 105, 108, 101, 95, 109, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 111, 118, 101, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 32, 116, 111, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 45, 120, 32, 34, 109, 111, 118, 101, 32, 34, 36, 49, 34, 32, 34, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 120, 32, 34, 109, 118, 32, 34, 36, 49, 34, 32, 34, 36, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 101, 95, 114, 97, 110, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 102, 111, 114, 32, 115, 116, 111, 114, 105, 110, 103, 32, 116, 101, 109, 112, 111, 114, 97, 114, 121, 32, 100, 97, 116, 97, 46, 10, 102, 105, 108, 101, 95, 114, 97, 110, 100, 32, 58, 10, 45, 118, 32, 45, 10, 45, 100, 111, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 64, 123, 45, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 125, 103, 109, 105, 99, 64, 37, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 10, 45, 119, 104, 105, 108, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 10, 45, 117, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 101, 95, 114, 109, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 108, 101, 116, 101, 32, 97, 32, 102, 105, 108, 101, 46, 10, 102, 105, 108, 101, 95, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 10, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 36, 49, 34, 32, 100, 105, 114, 61, 64, 123, 45, 49, 44, 102, 125, 32, 98, 97, 115, 101, 61, 64, 123, 45, 49, 44, 98, 125, 32, 101, 120, 116, 61, 64, 123, 45, 49, 44, 120, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 99, 111, 109, 61, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 100, 105, 114, 41, 125, 32, 99, 111, 109, 61, 34, 99, 100, 32, 92, 34, 34, 36, 100, 105, 114, 34, 92, 92, 92, 34, 32, 38, 38, 32, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 101, 120, 116, 41, 125, 32, 99, 111, 109, 61, 36, 123, 99, 111, 109, 125, 34, 100, 101, 108, 32, 92, 34, 34, 36, 98, 97, 115, 101, 46, 36, 101, 120, 116, 34, 92, 34, 34, 32, 45, 101, 108, 115, 101, 32, 99, 111, 109, 61, 36, 123, 99, 111, 109, 125, 34, 100, 101, 108, 32, 92, 34, 34, 36, 98, 97, 115, 101, 34, 92, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 120, 32, 36, 99, 111, 109, 10, 45, 101, 108, 115, 101, 10, 45, 120, 32, 34, 114, 109, 32, 45, 102, 32, 92, 34, 36, 49, 92, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 39, 47, 39, 32, 111, 114, 32, 39, 92, 39, 32, 97, 115, 32, 97, 32, 112, 97, 116, 104, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 102, 111, 114, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 46, 10, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 45, 117, 32, 34, 92, 92, 34, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 47, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 95, 110, 117, 109, 98, 101, 114, 49, 44, 95, 110, 117, 109, 98, 101, 114, 50, 44, 46, 46, 46, 44, 95, 110, 117, 109, 98, 101, 114, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 119, 105, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 100, 101, 102, 97, 117, 108, 116, 125, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 61, 61, 49, 125, 32, 45, 117, 32, 34, 36, 49, 34, 10, 45, 101, 108, 115, 101, 10, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 34, 36, 49, 34, 32, 45, 117, 32, 64, 123, 45, 49, 44, 102, 125, 64, 123, 45, 49, 44, 98, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 45, 117, 32, 64, 123, 125, 95, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 41, 37, 49, 48, 125, 123, 105, 37, 49, 48, 125, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 64, 123, 45, 49, 44, 120, 125, 39, 125, 41, 125, 32, 45, 117, 32, 64, 123, 125, 46, 64, 123, 45, 49, 44, 120, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 32, 58, 32, 109, 105, 110, 95, 119, 105, 100, 116, 104, 44, 109, 105, 110, 95, 104, 101, 105, 103, 104, 116, 44, 114, 97, 116, 105, 111, 95, 119, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 50, 100, 32, 115, 105, 122, 101, 32, 39, 119, 105, 100, 116, 104, 44, 104, 101, 105, 103, 104, 116, 39, 32, 119, 104, 105, 99, 104, 32, 105, 115, 32, 98, 105, 103, 103, 101, 114, 32, 116, 104, 97, 110, 32, 39, 109, 105, 110, 95, 119, 105, 100, 116, 104, 44, 109, 105, 110, 95, 104, 101, 105, 103, 104, 116, 39, 32, 97, 110, 100, 32, 104, 97, 115, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 47, 104, 32, 114, 97, 116, 105, 111, 46, 10, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 36, 51, 42, 36, 50, 62, 36, 49, 125, 32, 45, 117, 32, 123, 105, 110, 116, 40, 36, 51, 42, 36, 50, 41, 125, 44, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 49, 44, 123, 105, 110, 116, 40, 36, 49, 47, 36, 51, 41, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 102, 105, 116, 115, 99, 114, 101, 101, 110, 32, 58, 32, 119, 105, 100, 116, 104, 44, 104, 101, 105, 103, 104, 116, 44, 95, 100, 101, 112, 116, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 39, 105, 100, 101, 97, 108, 39, 32, 115, 105, 122, 101, 32, 87, 120, 72, 32, 102, 111, 114, 32, 97, 32, 119, 105, 110, 100, 111, 119, 32, 105, 110, 116, 101, 110, 100, 101, 100, 32, 116, 111, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 32, 111, 110, 32, 115, 99, 114, 101, 101, 110, 46, 10, 102, 105, 116, 115, 99, 114, 101, 101, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 48, 34, 10, 45, 118, 32, 45, 10, 119, 61, 123, 105, 102, 40, 36, 51, 62, 49, 44, 36, 49, 43, 36, 51, 44, 36, 49, 41, 125, 10, 104, 61, 123, 105, 102, 40, 36, 51, 62, 49, 44, 36, 50, 43, 36, 51, 44, 36, 50, 41, 125, 10, 77, 119, 61, 123, 105, 110, 116, 40, 48, 46, 56, 53, 42, 64, 123, 33, 44, 117, 125, 41, 125, 10, 77, 104, 61, 123, 105, 110, 116, 40, 48, 46, 56, 53, 42, 64, 123, 33, 44, 118, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 119, 60, 49, 50, 56, 125, 32, 104, 61, 123, 105, 110, 116, 40, 36, 104, 42, 49, 50, 56, 47, 36, 119, 41, 125, 32, 119, 61, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 60, 49, 50, 56, 125, 32, 119, 61, 123, 105, 110, 116, 40, 36, 119, 42, 49, 50, 56, 47, 36, 104, 41, 125, 32, 104, 61, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 119, 62, 36, 77, 119, 125, 32, 104, 61, 123, 109, 97, 120, 40, 49, 44, 105, 110, 116, 40, 36, 104, 42, 36, 77, 119, 47, 36, 119, 41, 41, 125, 32, 119, 61, 36, 77, 119, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 62, 36, 77, 104, 125, 32, 119, 61, 123, 109, 97, 120, 40, 49, 44, 105, 110, 116, 40, 36, 119, 42, 36, 77, 104, 47, 36, 104, 41, 41, 125, 32, 104, 61, 36, 77, 119, 32, 45, 101, 110, 100, 105, 102, 10, 119, 61, 123, 109, 97, 120, 40, 36, 119, 44, 49, 50, 56, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 49, 50, 56, 41, 125, 10, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 103, 99, 100, 32, 58, 32, 97, 44, 98, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 71, 67, 68, 32, 40, 103, 114, 101, 97, 116, 101, 115, 116, 32, 99, 111, 109, 109, 111, 110, 32, 100, 105, 118, 105, 115, 111, 114, 41, 32, 98, 101, 116, 119, 101, 101, 110, 32, 97, 32, 97, 110, 100, 32, 98, 46, 10, 103, 99, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 49, 42, 36, 50, 33, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 95, 103, 99, 100, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 41, 125, 44, 123, 109, 105, 110, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 41, 125, 32, 45, 118, 32, 43, 10, 95, 103, 99, 100, 32, 58, 10, 114, 61, 123, 36, 49, 37, 36, 50, 125, 32, 45, 105, 102, 32, 36, 114, 32, 45, 117, 32, 64, 123, 45, 95, 103, 99, 100, 92, 32, 36, 50, 44, 36, 114, 125, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 120, 32, 58, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 98, 105, 110, 97, 114, 121, 44, 32, 111, 99, 116, 97, 108, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 104, 101, 120, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 115, 44, 34, 34, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 10, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 120, 50, 100, 101, 99, 32, 58, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 104, 101, 120, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 104, 101, 120, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 53, 55, 44, 105, 45, 52, 56, 44, 105, 102, 40, 105, 62, 61, 57, 55, 32, 38, 38, 32, 105, 60, 61, 49, 48, 50, 44, 105, 45, 56, 55, 44, 110, 97, 110, 41, 41, 42, 49, 54, 94, 40, 119, 45, 49, 45, 120, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 120, 50, 115, 116, 114, 32, 58, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 95, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 115, 116, 114, 105, 110, 103, 32, 105, 110, 116, 111, 32, 97, 32, 115, 116, 114, 105, 110, 103, 46, 10, 104, 101, 120, 50, 115, 116, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 34, 36, 49, 34, 41, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 123, 39, 36, 42, 39, 125, 41, 10, 45, 105, 102, 32, 123, 119, 60, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 119, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 44, 105, 45, 56, 55, 44, 105, 45, 52, 56, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 61, 61, 48, 44, 105, 42, 49, 54, 43, 105, 40, 120, 43, 49, 41, 44, 48, 41, 39, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 10, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 103, 50, 115, 116, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 99, 111, 110, 116, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 97, 115, 32, 97, 32, 115, 112, 101, 99, 105, 97, 108, 32, 71, 39, 77, 73, 67, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 46, 10, 105, 109, 103, 50, 115, 116, 114, 32, 58, 10, 45, 118, 32, 45, 10, 45, 117, 32, 34, 40, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 99, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 100, 125, 32, 122, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 121, 61, 36, 62, 10, 45, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 44, 36, 121, 44, 36, 122, 44, 36, 99, 44, 49, 48, 48, 37, 44, 36, 121, 44, 36, 122, 44, 36, 99, 10, 45, 117, 32, 64, 123, 125, 64, 45, 49, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 121, 33, 61, 104, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 59, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 32, 64, 123, 125, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 122, 33, 61, 100, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 47, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 99, 33, 61, 115, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 94, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 117, 32, 64, 123, 125, 34, 41, 34, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 103, 50, 116, 101, 120, 116, 32, 58, 32, 95, 108, 105, 110, 101, 95, 115, 101, 112, 97, 114, 97, 116, 111, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 101, 120, 116, 32, 99, 111, 110, 116, 97, 105, 110, 101, 100, 32, 105, 110, 32, 97, 32, 109, 117, 108, 116, 105, 45, 108, 105, 110, 101, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 108, 105, 110, 101, 95, 115, 101, 112, 97, 114, 97, 116, 111, 114, 61, 32, 39, 46, 10, 105, 109, 103, 50, 116, 101, 120, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 32, 125, 34, 10, 45, 118, 32, 45, 32, 45, 45, 108, 32, 45, 115, 32, 121, 32, 45, 115, 32, 45, 44, 48, 32, 45, 121, 32, 120, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 45, 117, 32, 64, 123, 48, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 109, 103, 56, 50, 104, 101, 120, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 46, 10, 105, 109, 103, 56, 50, 104, 101, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 36, 63, 32, 105, 110, 116, 111, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 111, 100, 32, 50, 53, 54, 32, 45, 121, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 102, 91, 36, 62, 93, 32, 39, 118, 61, 105, 110, 116, 40, 105, 41, 38, 49, 53, 59, 118, 43, 105, 102, 40, 118, 60, 49, 48, 44, 52, 56, 44, 56, 55, 41, 39, 10, 45, 102, 91, 36, 62, 93, 32, 39, 118, 61, 105, 110, 116, 40, 105, 41, 62, 62, 52, 59, 118, 43, 105, 102, 40, 118, 60, 49, 48, 44, 52, 56, 44, 56, 55, 41, 39, 10, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 104, 101, 120, 50, 105, 109, 103, 56, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 32, 105, 110, 116, 111, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 10, 104, 101, 120, 50, 105, 109, 103, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 36, 63, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 32, 105, 110, 116, 111, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 102, 91, 45, 50, 44, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 44, 105, 45, 56, 55, 44, 105, 45, 52, 56, 41, 39, 32, 45, 42, 91, 45, 50, 93, 32, 49, 54, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 95, 51, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 49, 32, 105, 102, 32, 97, 108, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 97, 114, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 105, 115, 95, 51, 100, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 48, 10, 45, 105, 102, 32, 64, 35, 32, 114, 101, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 43, 51, 100, 32, 48, 32, 45, 111, 110, 102, 97, 105, 108, 32, 114, 101, 115, 61, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 58, 32, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 49, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 101, 110, 100, 115, 32, 119, 105, 116, 104, 32, 97, 32, 39, 37, 39, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 45, 49, 44, 123, 39, 34, 36, 49, 34, 39, 125, 41, 61, 61, 51, 55, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 49, 32, 105, 102, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 111, 109, 112, 117, 116, 101, 114, 32, 79, 83, 32, 105, 115, 32, 87, 105, 110, 100, 111, 119, 115, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 110, 97, 114, 103, 40, 36, 79, 83, 41, 61, 61, 49, 34, 32, 38, 38, 32, 34, 110, 97, 114, 103, 40, 36, 87, 73, 78, 68, 73, 82, 41, 61, 61, 49, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 77, 65, 68, 32, 40, 77, 97, 120, 105, 109, 117, 109, 32, 65, 98, 115, 111, 108, 117, 116, 101, 32, 68, 101, 118, 105, 97, 116, 105, 111, 110, 41, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 101, 32, 77, 65, 68, 32, 105, 115, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 32, 77, 65, 68, 32, 61, 32, 109, 101, 100, 95, 105, 124, 120, 95, 105, 45, 109, 101, 100, 95, 106, 40, 120, 95, 106, 41, 124, 10, 109, 97, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 109, 101, 100, 91, 45, 49, 93, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 109, 101, 100, 91, 45, 49, 93, 32, 45, 117, 32, 123, 49, 46, 52, 56, 50, 54, 42, 64, 123, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 119, 105, 100, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 119, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 49, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 104, 101, 105, 103, 104, 116, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 50, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 100, 101, 112, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 51, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 52, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 119, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 119, 120, 104, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 119, 104, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 119, 120, 104, 120, 100, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 119, 104, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 97, 120, 95, 119, 104, 100, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 97, 108, 32, 119, 120, 104, 120, 100, 120, 115, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 97, 120, 95, 119, 104, 100, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 52, 32, 45, 118, 32, 43, 10, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 58, 10, 119, 61, 48, 32, 104, 61, 48, 32, 100, 61, 48, 32, 115, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 109, 97, 120, 40, 36, 119, 44, 119, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 104, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 36, 100, 44, 100, 41, 125, 10, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 115, 41, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 52, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 119, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 109, 101, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 101, 100, 105, 97, 110, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 46, 10, 109, 101, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 117, 32, 64, 123, 45, 49, 44, 123, 119, 42, 104, 42, 100, 42, 115, 47, 50, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 119, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 119, 105, 100, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 119, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 49, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 104, 101, 105, 103, 104, 116, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 50, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 100, 101, 112, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 51, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 115, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 115, 32, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 32, 45, 118, 32, 43, 10, 95, 109, 105, 110, 95, 115, 32, 58, 10, 45, 117, 32, 36, 52, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 119, 104, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 119, 120, 104, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 50, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 119, 104, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 119, 120, 104, 120, 100, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 119, 104, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 51, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 109, 105, 110, 95, 119, 104, 100, 115, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 119, 120, 104, 120, 100, 120, 115, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 109, 105, 110, 95, 119, 104, 100, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 52, 32, 45, 118, 32, 43, 10, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 115, 61, 123, 115, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 109, 105, 110, 40, 36, 119, 44, 119, 41, 125, 10, 104, 61, 123, 109, 105, 110, 40, 36, 104, 44, 104, 41, 125, 10, 100, 61, 123, 109, 105, 110, 40, 36, 100, 44, 100, 41, 125, 10, 115, 61, 123, 109, 105, 110, 40, 36, 115, 44, 115, 41, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 52, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 119, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 109, 105, 99, 32, 111, 99, 116, 32, 58, 32, 111, 99, 116, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 111, 99, 116, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 98, 105, 110, 97, 114, 121, 44, 32, 100, 101, 99, 105, 109, 97, 108, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 111, 99, 116, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 111, 99, 116, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 111, 99, 116, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 44, 10, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 35, 64, 103, 109, 105, 99, 32, 111, 99, 116, 50, 100, 101, 99, 32, 58, 32, 111, 99, 116, 97, 108, 95, 105, 110, 116, 49, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 111, 99, 116, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 115, 32, 105, 110, 116, 111, 32, 116, 104, 101, 105, 114, 32, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 111, 99, 116, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 111, 99, 116, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 53, 53, 44, 40, 105, 45, 52, 56, 41, 42, 56, 94, 40, 119, 45, 49, 45, 120, 41, 44, 110, 97, 110, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 100, 105, 110, 116, 32, 58, 32, 110, 117, 109, 98, 101, 114, 44, 95, 115, 105, 122, 101, 62, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 105, 110, 116, 101, 103, 101, 114, 32, 119, 105, 116, 104, 32, 39, 115, 105, 122, 101, 39, 32, 100, 105, 103, 105, 116, 115, 32, 40, 101, 118, 101, 110, 116, 117, 97, 108, 108, 121, 32, 108, 101, 102, 116, 45, 112, 97, 100, 100, 101, 100, 32, 119, 105, 116, 104, 32, 39, 48, 39, 41, 46, 10, 112, 97, 100, 105, 110, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 52, 125, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 117, 32, 64, 123, 125, 123, 105, 110, 116, 40, 36, 49, 47, 49, 48, 94, 36, 60, 41, 37, 49, 48, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 116, 104, 95, 116, 109, 112, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 112, 97, 116, 104, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 121, 32, 102, 105, 108, 101, 115, 32, 40, 119, 104, 111, 115, 101, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 79, 83, 45, 100, 101, 112, 101, 110, 100, 101, 110, 116, 41, 46, 10, 112, 97, 116, 104, 95, 116, 109, 112, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 77, 80, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 77, 80, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 69, 77, 80, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 69, 77, 80, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 77, 80, 68, 73, 82, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 77, 80, 68, 73, 82, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 72, 79, 77, 69, 125, 39, 125, 41, 125, 32, 45, 117, 32, 34, 47, 116, 109, 112, 34, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 112, 97, 116, 104, 95, 117, 115, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 112, 97, 116, 104, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 112, 101, 114, 115, 105, 115, 116, 101, 110, 116, 32, 99, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 32, 102, 105, 108, 101, 115, 32, 102, 111, 114, 32, 111, 110, 101, 32, 117, 115, 101, 114, 32, 40, 119, 104, 111, 115, 101, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 79, 83, 45, 100, 101, 112, 101, 110, 100, 101, 110, 116, 41, 46, 10, 112, 97, 116, 104, 95, 117, 115, 101, 114, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 65, 80, 80, 68, 65, 84, 65, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 65, 80, 80, 68, 65, 84, 65, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 72, 79, 77, 69, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 72, 79, 77, 69, 125, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 113, 117, 111, 116, 101, 32, 58, 32, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 34, 113, 117, 111, 116, 105, 102, 105, 101, 100, 34, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 46, 10, 113, 117, 111, 116, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 36, 42, 34, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 103, 105, 111, 110, 95, 102, 101, 97, 116, 117, 114, 101, 32, 58, 32, 114, 101, 103, 105, 111, 110, 95, 108, 97, 98, 101, 108, 44, 102, 101, 97, 116, 117, 114, 101, 44, 95, 100, 101, 102, 97, 117, 108, 116, 95, 118, 97, 108, 117, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 102, 101, 97, 116, 117, 114, 101, 32, 102, 111, 114, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 114, 101, 103, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 84, 104, 105, 115, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 116, 119, 111, 32, 105, 109, 97, 103, 101, 115, 32, 91, 105, 109, 103, 44, 114, 101, 103, 105, 111, 110, 95, 108, 97, 98, 101, 108, 93, 32, 105, 110, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 65, 114, 103, 117, 109, 101, 110, 116, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 105, 115, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 116, 104, 97, 116, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 115, 32, 116, 111, 32, 116, 104, 101, 32, 119, 97, 121, 32, 116, 104, 101, 32, 102, 101, 97, 116, 117, 114, 101, 32, 119, 111, 117, 108, 100, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 98, 101, 32, 97, 115, 107, 101, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 101, 110, 116, 105, 114, 101, 32, 105, 109, 97, 103, 101, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 58, 32, 39, 100, 101, 102, 97, 117, 108, 116, 95, 118, 97, 108, 117, 101, 61, 48, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 50, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 44, 49, 32, 109, 101, 97, 110, 61, 64, 123, 34, 45, 114, 101, 103, 105, 111, 110, 95, 102, 101, 97, 116, 117, 114, 101, 91, 48, 44, 49, 93, 32, 49, 48, 44, 92, 34, 123, 105, 97, 125, 92, 34, 34, 125, 32, 115, 117, 109, 61, 64, 123, 34, 45, 114, 101, 103, 105, 111, 110, 95, 102, 101, 97, 116, 117, 114, 101, 91, 48, 44, 49, 93, 32, 49, 48, 44, 92, 34, 64, 123, 45, 49, 44, 43, 125, 92, 34, 34, 125, 10, 114, 101, 103, 105, 111, 110, 95, 102, 101, 97, 116, 117, 114, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 48, 125, 34, 10, 45, 118, 32, 45, 10, 115, 61, 64, 123, 45, 50, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 61, 61, 91, 45, 49, 93, 32, 36, 49, 32, 45, 94, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 108, 91, 45, 49, 93, 10, 45, 115, 91, 45, 49, 93, 32, 45, 44, 105, 110, 102, 32, 45, 97, 32, 121, 10, 45, 105, 102, 32, 64, 35, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 104, 47, 36, 115, 125, 44, 49, 44, 36, 115, 44, 45, 49, 32, 45, 117, 32, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 114, 101, 115, 101, 116, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 115, 101, 116, 32, 103, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 46, 10, 114, 101, 115, 101, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 115, 101, 116, 32, 103, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 98, 51, 100, 32, 49, 32, 45, 98, 51, 100, 32, 45, 109, 51, 100, 32, 52, 32, 45, 109, 100, 51, 100, 32, 45, 49, 32, 45, 102, 51, 100, 32, 55, 48, 48, 32, 45, 108, 51, 100, 32, 45, 115, 108, 51, 100, 32, 48, 46, 49, 53, 32, 45, 115, 115, 51, 100, 32, 48, 46, 56, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 82, 71, 66, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 105, 110, 116, 45, 118, 97, 108, 117, 101, 100, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 46, 10, 82, 71, 66, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 82, 71, 66, 65, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 105, 110, 116, 45, 118, 97, 108, 117, 101, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 46, 10, 82, 71, 66, 65, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 32, 58, 32, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 105, 110, 116, 111, 32, 105, 116, 115, 32, 98, 105, 110, 97, 114, 121, 44, 32, 111, 99, 116, 97, 108, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 97, 110, 100, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 10, 115, 116, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 123, 39, 36, 42, 39, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 115, 116, 114, 105, 110, 103, 32, 39, 36, 42, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 32, 97, 110, 100, 10, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 50, 104, 101, 120, 32, 58, 32, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 67, 111, 110, 118, 101, 114, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 105, 110, 116, 111, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 115, 116, 114, 50, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 42, 34, 39, 125, 41, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 121, 61, 61, 48, 44, 105, 110, 116, 40, 105, 47, 49, 54, 41, 44, 105, 40, 120, 44, 121, 45, 49, 41, 37, 49, 54, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 60, 61, 57, 44, 52, 56, 43, 105, 44, 56, 55, 43, 105, 41, 39, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 101, 115, 99, 32, 58, 32, 118, 97, 108, 49, 44, 46, 46, 46, 44, 118, 97, 108, 78, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 101, 115, 99, 97, 112, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 46, 10, 115, 116, 114, 101, 115, 99, 32, 58, 10, 45, 118, 32, 45, 32, 40, 36, 42, 41, 32, 45, 99, 91, 45, 49, 93, 32, 51, 50, 44, 50, 53, 53, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 91, 45, 49, 93, 10, 45, 102, 91, 45, 50, 93, 32, 39, 105, 102, 40, 105, 61, 61, 51, 50, 124, 124, 105, 61, 61, 51, 52, 124, 124, 105, 61, 61, 51, 54, 124, 124, 105, 61, 61, 52, 52, 124, 124, 105, 61, 61, 54, 52, 124, 124, 105, 61, 61, 57, 50, 124, 124, 105, 61, 61, 49, 50, 51, 124, 124, 105, 61, 61, 49, 50, 53, 44, 57, 50, 44, 45, 49, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 99, 97, 116, 32, 58, 32, 115, 116, 114, 105, 110, 103, 49, 44, 115, 116, 114, 105, 110, 103, 50, 44, 46, 46, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 99, 111, 110, 99, 97, 116, 101, 110, 97, 116, 105, 111, 110, 32, 111, 102, 32, 97, 108, 108, 32, 115, 116, 114, 105, 110, 103, 115, 32, 112, 97, 115, 115, 101, 100, 32, 97, 115, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 10, 115, 116, 114, 99, 97, 116, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 115, 32, 114, 101, 115, 61, 34, 36, 49, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 36, 123, 115, 123, 36, 62, 43, 50, 125, 125, 32, 45, 100, 111, 110, 101, 10, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 99, 109, 112, 32, 58, 32, 115, 116, 114, 105, 110, 103, 49, 44, 115, 116, 114, 105, 110, 103, 50, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 49, 32, 105, 102, 32, 116, 104, 101, 32, 116, 119, 111, 32, 115, 116, 114, 105, 110, 103, 115, 32, 97, 114, 101, 32, 101, 113, 117, 97, 108, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 115, 116, 114, 99, 109, 112, 32, 58, 10, 45, 118, 32, 45, 32, 40, 48, 44, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 40, 123, 119, 125, 44, 123, 39, 34, 36, 50, 34, 39, 125, 41, 32, 45, 61, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 117, 32, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 108, 101, 110, 32, 58, 32, 115, 116, 114, 105, 110, 103, 49, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 108, 101, 110, 103, 116, 104, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 10, 115, 116, 114, 108, 101, 110, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 117, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 114, 101, 112, 108, 97, 99, 101, 32, 58, 32, 115, 116, 114, 105, 110, 103, 44, 115, 101, 97, 114, 99, 104, 44, 114, 101, 112, 108, 97, 99, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 83, 101, 97, 114, 99, 104, 32, 97, 110, 100, 32, 114, 101, 112, 108, 97, 99, 101, 32, 115, 117, 98, 115, 116, 114, 105, 110, 103, 115, 32, 105, 110, 32, 97, 110, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 46, 10, 115, 116, 114, 114, 101, 112, 108, 97, 99, 101, 32, 58, 10, 45, 118, 32, 45, 10, 108, 115, 61, 64, 123, 45, 115, 116, 114, 108, 101, 110, 92, 32, 34, 36, 50, 34, 125, 10, 108, 114, 61, 123, 64, 123, 45, 115, 116, 114, 108, 101, 110, 92, 32, 34, 36, 51, 34, 125, 45, 49, 125, 10, 45, 108, 91, 93, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 115, 32, 43, 44, 123, 39, 34, 36, 50, 34, 39, 125, 32, 45, 115, 32, 121, 44, 45, 36, 108, 115, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 116, 125, 39, 61, 61, 39, 34, 36, 50, 34, 125, 32, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 44, 36, 108, 114, 32, 45, 102, 91, 36, 62, 93, 32, 123, 39, 34, 36, 51, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 121, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 117, 110, 99, 97, 115, 101, 32, 58, 32, 115, 116, 114, 105, 110, 103, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 97, 32, 108, 111, 119, 101, 114, 45, 99, 97, 115, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 46, 10, 115, 116, 114, 117, 110, 99, 97, 115, 101, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 42, 34, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 54, 53, 38, 38, 105, 60, 61, 57, 48, 44, 51, 50, 44, 48, 41, 39, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 115, 116, 114, 118, 101, 114, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 97, 115, 32, 97, 32, 115, 116, 114, 105, 110, 103, 46, 10, 115, 116, 114, 118, 101, 114, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 64, 46, 39, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 55, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 37, 50, 44, 123, 39, 46, 39, 125, 44, 105, 41, 39, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 105, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 32, 116, 105, 99, 45, 116, 111, 99, 32, 116, 105, 109, 101, 114, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 115, 101, 32, 105, 116, 32, 105, 110, 32, 99, 111, 110, 106, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 39, 45, 116, 111, 99, 39, 46, 10, 116, 105, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 32, 116, 105, 109, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 95, 95, 116, 105, 99, 61, 64, 124, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 116, 111, 99, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 101, 108, 97, 112, 115, 101, 100, 32, 116, 105, 109, 101, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 99, 45, 116, 111, 99, 32, 116, 105, 109, 101, 114, 32, 115, 105, 110, 99, 101, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 99, 97, 108, 108, 32, 116, 111, 32, 39, 45, 116, 105, 99, 39, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 85, 115, 101, 32, 105, 116, 32, 105, 110, 32, 99, 111, 110, 106, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 39, 45, 116, 105, 99, 39, 46, 10, 116, 111, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 108, 97, 112, 115, 101, 100, 32, 116, 105, 109, 101, 32, 58, 32, 34, 123, 95, 64, 124, 45, 36, 95, 95, 116, 105, 99, 125, 34, 32, 115, 34, 46, 10, 35, 64, 103, 109, 105, 99, 32, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 82, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 110, 111, 105, 115, 101, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 46, 10, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 49, 93, 32, 45, 117, 32, 123, 64, 123, 45, 109, 97, 100, 91, 45, 49, 93, 125, 47, 115, 113, 114, 116, 40, 105, 102, 40, 100, 61, 61, 49, 44, 50, 48, 44, 52, 50, 41, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 35, 64, 103, 109, 105, 99, 32, 58, 58, 32, 79, 116, 104, 101, 114, 115, 10, 35, 64, 103, 109, 105, 99, 32, 103, 112, 116, 32, 58, 32, 95, 115, 99, 111, 114, 101, 102, 105, 108, 101, 44, 95, 110, 117, 109, 98, 101, 114, 95, 111, 102, 95, 115, 101, 115, 115, 105, 111, 110, 115, 62, 61, 48, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 115, 99, 111, 114, 101, 32, 98, 111, 97, 114, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 71, 80, 84, 32, 99, 104, 97, 109, 112, 105, 111, 110, 115, 104, 105, 112, 32, 40, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 41, 46, 10, 35, 64, 103, 109, 105, 99, 32, 58, 32, 36, 32, 45, 103, 112, 116, 32, 44, 10, 103, 112, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 104, 116, 116, 112, 115, 58, 47, 47, 116, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 117, 115, 101, 114, 115, 46, 103, 114, 101, 121, 99, 46, 102, 114, 47, 103, 112, 116, 46, 114, 97, 119, 125, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 115, 99, 111, 114, 101, 32, 98, 111, 97, 114, 100, 32, 102, 111, 114, 32, 71, 80, 84, 45, 108, 105, 107, 101, 32, 99, 104, 97, 109, 112, 105, 111, 110, 115, 104, 105, 112, 32, 40, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 41, 44, 32, 102, 114, 111, 109, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 45, 105, 32, 114, 97, 119, 58, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 115, 91, 45, 49, 93, 32, 45, 44, 49, 48, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 45, 44, 123, 39, 92, 32, 39, 125, 10, 45, 105, 102, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 115, 99, 111, 114, 101, 32, 102, 105, 108, 101, 32, 40, 108, 105, 110, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 32, 100, 101, 102, 105, 110, 101, 115, 32, 34, 64, 35, 34, 32, 105, 116, 101, 109, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 52, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 116, 125, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 117, 114, 108, 61, 64, 123, 49, 44, 116, 125, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 102, 105, 108, 101, 61, 64, 123, 50, 44, 116, 125, 10, 40, 64, 123, 51, 44, 116, 125, 41, 32, 45, 114, 109, 91, 48, 45, 51, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 32, 49, 32, 45, 97, 32, 121, 44, 49, 32, 45, 45, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 122, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 44, 119, 45, 36, 50, 41, 125, 44, 49, 48, 48, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 122, 91, 45, 49, 93, 32, 123, 119, 45, 49, 45, 40, 40, 119, 45, 49, 41, 37, 45, 36, 50, 41, 125, 44, 49, 48, 48, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 115, 32, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 64, 123, 36, 60, 44, 77, 125, 60, 48, 125, 10, 105, 61, 36, 60, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 36, 105, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 110, 97, 109, 101, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 110, 97, 109, 101, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 117, 114, 108, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 117, 114, 108, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 102, 105, 108, 101, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 102, 105, 108, 101, 125, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 115, 10, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 61, 123, 105, 102, 40, 36, 50, 44, 50, 52, 44, 52, 56, 41, 125, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 32, 45, 45, 61, 61, 91, 115, 99, 111, 114, 101, 115, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 119, 105, 110, 110, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 101, 56, 32, 45, 115, 32, 121, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 32, 45, 45, 61, 61, 91, 115, 99, 111, 114, 101, 115, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 115, 101, 114, 115, 10, 45, 45, 108, 91, 119, 105, 110, 110, 101, 114, 115, 93, 32, 45, 115, 32, 121, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 119, 105, 110, 110, 101, 114, 115, 10, 45, 45, 108, 91, 108, 111, 115, 101, 114, 115, 93, 32, 45, 115, 32, 121, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 108, 111, 115, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 114, 32, 50, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 32, 45, 102, 32, 39, 105, 102, 40, 120, 44, 121, 44, 105, 41, 39, 32, 45, 115, 111, 114, 116, 32, 45, 44, 121, 10, 45, 114, 32, 51, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 102, 32, 39, 105, 102, 40, 120, 44, 105, 44, 121, 43, 49, 41, 39, 10, 45, 102, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 49, 44, 121, 41, 61, 61, 105, 40, 49, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 115, 111, 114, 116, 32, 43, 44, 121, 32, 45, 122, 32, 49, 44, 50, 32, 45, 102, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 61, 61, 45, 49, 44, 45, 49, 44, 105, 41, 39, 10, 45, 122, 32, 49, 44, 49, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 114, 97, 110, 107, 115, 10, 45, 114, 111, 117, 110, 100, 91, 115, 99, 111, 114, 101, 115, 93, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 102, 32, 104, 32, 45, 114, 111, 119, 115, 32, 48, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 97, 120, 95, 115, 99, 111, 114, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 101, 56, 32, 45, 115, 32, 121, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 103, 101, 32, 48, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 103, 97, 109, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 110, 101, 113, 32, 45, 49, 32, 45, 115, 32, 121, 32, 45, 42, 32, 39, 119, 45, 120, 39, 32, 45, 102, 32, 120, 77, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 102, 105, 114, 115, 116, 95, 103, 97, 109, 101, 10, 45, 45, 108, 116, 91, 115, 99, 111, 114, 101, 115, 93, 32, 48, 10, 45, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 49, 93, 32, 91, 102, 105, 114, 115, 116, 95, 103, 97, 109, 101, 93, 10, 45, 108, 91, 45, 50, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 44, 105, 44, 45, 120, 41, 39, 32, 45, 115, 32, 121, 32, 45, 108, 97, 98, 101, 108, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 110, 61, 123, 64, 123, 36, 62, 44, 77, 125, 125, 32, 45, 105, 102, 32, 36, 110, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 44, 49, 44, 36, 110, 32, 45, 101, 108, 115, 101, 32, 45, 102, 91, 36, 62, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 97, 32, 121, 32, 45, 45, 32, 49, 32, 45, 109, 97, 120, 32, 48, 32, 45, 114, 111, 117, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 97, 98, 115, 95, 109, 97, 108, 117, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 97, 98, 115, 95, 109, 97, 108, 117, 115, 93, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 110, 109, 91, 45, 49, 93, 32, 114, 97, 110, 107, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 10, 115, 117, 109, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 44, 43, 125, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 109, 97, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 119, 45, 50, 125, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 49, 93, 32, 91, 97, 98, 115, 95, 109, 97, 108, 117, 115, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 112, 114, 101, 118, 105, 111, 117, 115, 95, 115, 99, 111, 114, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 104, 105, 112, 115, 10, 115, 117, 109, 95, 99, 104, 105, 112, 115, 61, 64, 123, 99, 104, 105, 112, 115, 44, 43, 125, 10, 45, 118, 32, 43, 10, 45, 101, 32, 34, 83, 117, 109, 32, 111, 102, 32, 99, 104, 105, 112, 115, 32, 58, 32, 34, 36, 115, 117, 109, 95, 99, 104, 105, 112, 115, 10, 45, 101, 32, 34, 83, 117, 109, 32, 111, 102, 32, 115, 99, 111, 114, 101, 115, 32, 58, 32, 34, 36, 115, 117, 109, 95, 115, 99, 111, 114, 101, 10, 45, 118, 32, 45, 10, 45, 45, 45, 91, 112, 114, 101, 118, 105, 111, 117, 115, 95, 115, 99, 111, 114, 101, 44, 115, 99, 111, 114, 101, 93, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 116, 114, 101, 110, 100, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 117, 110, 114, 111, 108, 108, 32, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 32, 45, 102, 32, 105, 77, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 117, 110, 114, 111, 108, 108, 32, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 32, 45, 102, 32, 105, 109, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 45, 45, 91, 115, 99, 111, 114, 101, 115, 93, 32, 91, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 93, 32, 91, 109, 97, 120, 95, 115, 99, 111, 114, 101, 115, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 108, 91, 45, 49, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 60, 48, 44, 45, 49, 44, 105, 41, 39, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 102, 32, 39, 105, 102, 40, 105, 97, 60, 48, 44, 48, 44, 105, 97, 41, 39, 32, 45, 114, 111, 119, 115, 32, 48, 32, 45, 97, 32, 121, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 45, 32, 49, 48, 48, 32, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 97, 118, 101, 114, 97, 103, 101, 10, 45, 45, 33, 61, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 49, 10, 45, 45, 42, 91, 108, 111, 115, 101, 114, 115, 44, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 110, 98, 95, 108, 111, 115, 101, 114, 115, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 52, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 10, 45, 99, 111, 110, 101, 51, 100, 32, 49, 46, 53, 44, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 98, 111, 120, 51, 100, 32, 52, 44, 49, 44, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 45, 48, 46, 53, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 49, 56, 48, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 55, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 48, 48, 32, 45, 45, 42, 91, 45, 51, 93, 32, 50, 48, 48, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 101, 113, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 48, 44, 48, 44, 49, 44, 51, 53, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 54, 52, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 45, 42, 91, 45, 51, 93, 32, 54, 52, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 117, 112, 10, 45, 114, 51, 100, 91, 45, 53, 93, 32, 48, 44, 48, 44, 49, 44, 45, 55, 48, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 42, 91, 45, 50, 93, 32, 54, 52, 32, 45, 45, 42, 91, 45, 51, 93, 32, 51, 50, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 10, 45, 100, 105, 108, 97, 116, 101, 91, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 44, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 44, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 93, 32, 51, 10, 45, 114, 109, 91, 45, 55, 93, 10, 98, 111, 97, 114, 100, 61, 64, 35, 10, 105, 61, 64, 35, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 82, 97, 110, 107, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 78, 97, 109, 101, 34, 44, 49, 53, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 99, 111, 114, 101, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 67, 104, 105, 112, 115, 92, 110, 91, 109, 97, 108, 117, 115, 93, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 80, 108, 97, 121, 101, 100, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 87, 111, 110, 47, 92, 110, 76, 111, 115, 116, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 84, 114, 100, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 84, 114, 101, 110, 100, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 116, 97, 116, 115, 34, 44, 123, 50, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 116, 97, 116, 105, 115, 116, 105, 99, 115, 34, 44, 123, 52, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 43, 50, 125, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 76, 97, 115, 116, 92, 110, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 66, 101, 115, 116, 92, 110, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 72, 105, 103, 104, 101, 115, 116, 92, 110, 99, 104, 105, 112, 115, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 76, 111, 119, 101, 115, 116, 92, 110, 99, 104, 105, 112, 115, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 92, 110, 32, 32, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 65, 118, 101, 114, 97, 103, 101, 92, 110, 91, 115, 116, 100, 93, 32, 40, 114, 97, 110, 107, 41, 34, 44, 49, 48, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 67, 111, 102, 102, 101, 101, 32, 98, 97, 108, 97, 110, 99, 101, 92, 110, 32, 32, 32, 32, 32, 40, 114, 97, 110, 107, 41, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 120, 10, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 77, 125, 10, 45, 45, 122, 91, 114, 97, 110, 107, 93, 32, 48, 44, 48, 32, 109, 97, 120, 95, 114, 97, 110, 107, 61, 123, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 97, 118, 101, 114, 97, 103, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 114, 97, 110, 107, 44, 104, 125, 10, 112, 61, 64, 123, 114, 97, 110, 107, 44, 40, 49, 44, 36, 62, 41, 125, 10, 110, 61, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 99, 61, 123, 105, 102, 40, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 61, 61, 48, 44, 48, 44, 118, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 41, 125, 10, 105, 61, 64, 35, 10, 116, 95, 114, 97, 110, 107, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 114, 97, 110, 107, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 36, 99, 10, 45, 105, 102, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 10, 45, 101, 108, 115, 101, 32, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 117, 114, 108, 125, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 110, 97, 109, 101, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 110, 97, 109, 101, 125, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 116, 95, 110, 97, 109, 101, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 40, 50, 45, 99, 41, 42, 48, 46, 57, 42, 121, 47, 104, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 50, 50, 53, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 50, 48, 44, 49, 44, 36, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 48, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 115, 99, 111, 114, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 115, 99, 111, 114, 101, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 48, 44, 36, 110, 44, 36, 99, 10, 116, 95, 99, 104, 105, 112, 115, 61, 64, 123, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 116, 95, 109, 97, 108, 117, 115, 61, 123, 45, 64, 123, 97, 98, 115, 95, 109, 97, 108, 117, 115, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 99, 104, 105, 112, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 99, 104, 105, 112, 115, 92, 32, 91, 36, 116, 95, 109, 97, 108, 117, 115, 93, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 110, 98, 95, 103, 97, 109, 101, 115, 61, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 110, 98, 95, 103, 97, 109, 101, 115, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 45, 114, 111, 119, 115, 91, 119, 105, 110, 110, 101, 114, 115, 93, 32, 36, 112, 10, 116, 95, 119, 111, 110, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 45, 114, 111, 119, 115, 91, 108, 111, 115, 101, 114, 115, 93, 32, 36, 112, 10, 116, 95, 108, 111, 115, 116, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 119, 111, 110, 47, 36, 116, 95, 108, 111, 115, 116, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 101, 108, 115, 101, 10, 116, 95, 116, 114, 101, 110, 100, 61, 123, 45, 64, 123, 116, 114, 101, 110, 100, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 62, 48, 125, 32, 116, 95, 116, 114, 101, 110, 100, 61, 43, 36, 116, 95, 116, 114, 101, 110, 100, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 117, 112, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 60, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 101, 113, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 105, 102, 32, 36, 50, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 62, 48, 125, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 92, 110, 92, 110, 32, 32, 32, 32, 34, 36, 116, 95, 116, 114, 101, 110, 100, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 60, 48, 125, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 92, 110, 92, 110, 34, 36, 116, 95, 116, 114, 101, 110, 100, 34, 32, 32, 32, 32, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 123, 105, 102, 40, 36, 50, 44, 50, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 43, 50, 41, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 123, 51, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 45, 114, 111, 119, 115, 91, 114, 97, 110, 107, 115, 93, 32, 36, 112, 44, 36, 112, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 44, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 46, 50, 44, 48, 44, 54, 52, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 114, 111, 119, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 36, 112, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 91, 45, 49, 93, 32, 115, 97, 61, 123, 105, 97, 125, 32, 115, 109, 61, 123, 105, 109, 125, 32, 115, 77, 61, 123, 105, 77, 125, 10, 45, 103, 114, 105, 100, 91, 45, 50, 93, 32, 123, 109, 97, 120, 40, 50, 48, 44, 49, 48, 48, 47, 109, 97, 120, 40, 49, 44, 104, 45, 49, 41, 41, 125, 37, 44, 49, 48, 44, 48, 44, 48, 44, 48, 46, 54, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 40, 48, 44, 48, 41, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 36, 115, 97, 44, 36, 115, 97, 41, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 48, 44, 49, 53, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 50, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 50, 53, 53, 44, 51, 50, 44, 52, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 49, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 48, 10, 45, 45, 114, 111, 119, 115, 91, 114, 97, 110, 107, 115, 93, 32, 36, 112, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 44, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 105, 112, 61, 64, 35, 10, 40, 49, 44, 49, 48, 44, 50, 53, 53, 44, 50, 52, 50, 44, 49, 53, 51, 41, 10, 40, 50, 44, 49, 48, 44, 50, 50, 50, 44, 50, 50, 50, 44, 50, 50, 50, 41, 10, 40, 51, 44, 49, 48, 44, 50, 51, 50, 44, 50, 48, 57, 44, 49, 57, 54, 41, 10, 40, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 45, 49, 125, 44, 49, 48, 44, 50, 53, 53, 44, 50, 48, 52, 44, 50, 48, 52, 41, 10, 40, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 48, 44, 50, 53, 53, 44, 49, 53, 51, 44, 49, 53, 51, 41, 10, 45, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 49, 125, 32, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 50, 125, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 51, 125, 32, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 52, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 62, 53, 125, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 121, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 45, 51, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 105, 112, 45, 45, 49, 93, 32, 121, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 112, 105, 101, 99, 104, 97, 114, 116, 91, 45, 49, 93, 32, 53, 55, 44, 48, 44, 48, 44, 48, 44, 64, 45, 50, 44, 34, 97, 98, 115, 46, 34, 44, 123, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 45, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 125, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 50, 53, 53, 10, 49, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 48, 10, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 112, 105, 101, 99, 104, 97, 114, 116, 91, 45, 49, 93, 32, 53, 55, 44, 48, 44, 48, 44, 48, 44, 64, 45, 52, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 52, 93, 32, 45, 114, 50, 100, 121, 91, 45, 51, 44, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 120, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 61, 45, 49, 125, 32, 116, 95, 108, 97, 115, 116, 61, 97, 98, 115, 46, 10, 45, 101, 108, 115, 101, 10, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 45, 49, 48, 48, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 108, 97, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 114, 97, 110, 107, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 10, 116, 95, 108, 97, 115, 116, 61, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 92, 32, 40, 36, 116, 95, 108, 97, 115, 116, 95, 114, 97, 110, 107, 41, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 114, 97, 110, 107, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 45, 49, 125, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 45, 49, 125, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 108, 97, 115, 116, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 123, 118, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 98, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 61, 45, 49, 125, 32, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 92, 32, 40, 36, 116, 95, 98, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 123, 118, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 61, 45, 49, 125, 32, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 92, 32, 40, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 123, 118, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 108, 111, 119, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 61, 45, 49, 125, 32, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 43, 49, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 92, 32, 40, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 48, 44, 36, 112, 41, 125, 10, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 37, 92, 32, 40, 36, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 45, 114, 111, 119, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 36, 112, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 61, 123, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 105, 97, 45, 49, 48, 48, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 62, 48, 125, 32, 116, 95, 97, 118, 101, 114, 97, 103, 101, 61, 43, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 115, 116, 100, 61, 123, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 115, 113, 114, 116, 40, 105, 118, 41, 41, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 61, 64, 123, 97, 118, 101, 114, 97, 103, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 97, 118, 101, 114, 97, 103, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 92, 32, 91, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 115, 116, 100, 93, 92, 32, 40, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 41, 44, 49, 48, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 61, 123, 95, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 62, 48, 125, 32, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 61, 43, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 99, 111, 102, 102, 101, 101, 95, 114, 97, 110, 107, 61, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 92, 36, 92, 32, 40, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 114, 97, 110, 107, 41, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 45, 102, 91, 36, 105, 44, 123, 36, 105, 43, 50, 125, 45, 45, 49, 93, 32, 34, 105, 42, 40, 48, 46, 55, 43, 48, 46, 51, 42, 40, 40, 40, 120, 43, 121, 41, 37, 56, 41, 33, 61, 48, 41, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 120, 10, 45, 100, 111, 110, 101, 10, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 97, 125, 44, 48, 46, 53, 41, 125, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 83, 101, 115, 115, 105, 111, 110, 32, 92, 35, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 32, 32, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 76, 97, 115, 116, 32, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 32, 115, 101, 115, 115, 105, 111, 110, 115, 32, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 108, 115, 101, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 83, 101, 115, 115, 105, 111, 110, 32, 92, 35, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 47, 34, 123, 45, 36, 50, 125, 34, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 116, 95, 116, 105, 116, 108, 101, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 123, 105, 102, 40, 36, 50, 44, 48, 46, 57, 44, 48, 46, 54, 41, 125, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 51, 44, 49, 44, 51, 44, 51, 50, 44, 48, 44, 54, 52, 44, 51, 50, 44, 54, 52, 44, 49, 50, 56, 44, 54, 52, 44, 50, 48, 48, 44, 50, 53, 54, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 36, 98, 111, 97, 114, 100, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 49, 48, 48, 37, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 61, 61, 105, 40, 48, 44, 48, 41, 44, 105, 44, 45, 49, 41, 39, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 10, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 123, 104, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 10, 105, 61, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 105, 125, 95, 110, 97, 109, 101, 125, 34, 95, 95, 34, 36, 123, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 125, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 123, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 125, 95, 102, 105, 108, 101, 125, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 53, 54, 44, 53, 54, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 100, 111, 110, 101, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 115, 115, 105, 111, 110, 32, 119, 105, 110, 110, 101, 114, 34, 64, 123, 45, 105, 102, 92, 32, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 61, 49, 125, 92, 32, 45, 117, 92, 32, 92, 34, 92, 34, 92, 32, 45, 101, 108, 115, 101, 92, 32, 45, 117, 92, 32, 115, 92, 32, 45, 101, 110, 100, 105, 102, 125, 34, 32, 58, 32, 34, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 49, 44, 48, 46, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 50, 44, 49, 44, 51, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 54, 52, 44, 49, 50, 56, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 123, 45, 50, 45, 36, 60, 125, 93, 44, 123, 119, 45, 54, 52, 45, 36, 62, 42, 54, 52, 125, 44, 55, 32, 45, 100, 111, 110, 101, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 123, 36, 98, 111, 97, 114, 100, 43, 49, 125, 10, 45, 114, 109, 91, 45, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 43, 49, 125, 45, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 108, 111, 115, 101, 114, 115, 93, 32, 49, 48, 48, 37, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 44, 105, 44, 45, 49, 41, 39, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 10, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 123, 104, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 10, 105, 61, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 105, 125, 95, 110, 97, 109, 101, 125, 34, 95, 95, 34, 36, 123, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 125, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 123, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 125, 95, 102, 105, 108, 101, 125, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 53, 54, 44, 53, 54, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 100, 111, 110, 101, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 115, 115, 105, 111, 110, 32, 108, 111, 115, 101, 114, 34, 64, 123, 45, 105, 102, 92, 32, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 61, 49, 125, 92, 32, 45, 117, 92, 32, 92, 34, 92, 34, 92, 32, 45, 101, 108, 115, 101, 92, 32, 45, 117, 92, 32, 115, 92, 32, 45, 101, 110, 100, 105, 102, 125, 34, 32, 58, 32, 34, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 49, 44, 48, 46, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 50, 44, 49, 44, 51, 44, 49, 50, 56, 44, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 123, 45, 50, 45, 36, 60, 125, 93, 44, 123, 119, 45, 54, 52, 45, 36, 62, 42, 54, 52, 125, 44, 55, 32, 45, 100, 111, 110, 101, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 43, 50, 125, 45, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 98, 111, 97, 114, 100, 45, 45, 49, 93, 32, 121, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 54, 44, 54, 44, 52, 32, 45, 105, 91, 45, 50, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 107, 91, 36, 98, 111, 97, 114, 100, 93, 32, 45, 118, 32, 43, 10, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 58, 10, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 95, 39, 125, 44, 123, 39, 92, 32, 39, 125, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 123, 36, 50, 45, 50, 125, 44, 123, 36, 51, 45, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 52, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 50, 45, 50, 125, 44, 123, 36, 51, 45, 50, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 91, 45, 49, 93, 120, 50, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 52, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 53, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 50, 50, 32, 45, 42, 91, 45, 50, 93, 32, 50, 50, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 50, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 51, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 51, 50, 32, 45, 42, 91, 45, 50, 93, 32, 50, 48, 57, 32, 45, 42, 91, 45, 49, 93, 32, 49, 57, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 52, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 48, 52, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 53, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 49, 53, 51, 32, 45, 42, 91, 45, 49, 93, 32, 49, 53, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 54, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 52, 48, 32, 45, 42, 91, 45, 50, 93, 32, 50, 52, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 52, 48, 10, 45, 101, 108, 115, 101, 32, 45, 42, 91, 45, 51, 45, 45, 49, 93, 32, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 103, 105, 109, 112, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 58, 10, 40, 123, 39, 103, 109, 105, 99, 39, 125, 41, 10, 40, 123, 39, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 117, 112, 100, 97, 116, 101, 64, 46, 46, 103, 109, 105, 99, 39, 125, 44, 49, 41, 10, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 36, 49, 34, 44, 36, 51, 44, 123, 105, 102, 40, 36, 50, 44, 50, 94, 40, 36, 50, 45, 49, 41, 44, 48, 41, 125, 10, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 64, 46, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 118, 32, 45, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 34, 47, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 47, 76, 111, 99, 97, 108, 126, 99, 111, 110, 116, 114, 97, 115, 116, 126, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 34, 44, 34, 47, 68, 101, 116, 97, 105, 108, 115, 34, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 34, 47, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 47, 89, 65, 71, 95, 101, 102, 102, 101, 99, 116, 34, 44, 34, 47, 68, 101, 116, 97, 105, 108, 115, 34, 10, 45, 109, 32, 34, 112, 97, 114, 101, 110, 116, 32, 58, 32, 45, 108, 91, 93, 32, 40, 123, 39, 36, 34, 34, 49, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 105, 102, 32, 64, 35, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 91, 48, 45, 45, 49, 93, 32, 40, 52, 55, 41, 32, 45, 97, 32, 121, 32, 45, 117, 32, 64, 123, 48, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 34, 10, 45, 109, 32, 34, 95, 109, 97, 120, 32, 58, 32, 40, 123, 39, 92, 34, 36, 34, 34, 49, 92, 34, 39, 125, 41, 32, 40, 123, 39, 92, 34, 36, 34, 34, 50, 92, 34, 39, 125, 41, 32, 45, 102, 91, 45, 50, 44, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 38, 38, 105, 60, 61, 49, 50, 50, 44, 105, 45, 51, 50, 44, 105, 41, 39, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 119, 44, 64, 123, 45, 50, 44, 119, 125, 41, 125, 44, 49, 44, 49, 44, 49, 44, 48, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 117, 32, 123, 105, 62, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 34, 10, 45, 109, 32, 34, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 58, 32, 34, 92, 10, 34, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 61, 123, 36, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 43, 49, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 92, 34, 45, 98, 97, 115, 101, 110, 97, 109, 101, 32, 36, 34, 34, 49, 92, 34, 125, 32, 34, 92, 10, 34, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 92, 34, 36, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 92, 34, 46, 32, 92, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 92, 34, 32, 32, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 45, 108, 91, 93, 32, 34, 92, 10, 34, 32, 32, 45, 105, 32, 114, 97, 119, 58, 36, 34, 34, 49, 44, 117, 99, 104, 97, 114, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 114, 101, 116, 114, 105, 101, 118, 101, 100, 32, 102, 114, 111, 109, 32, 115, 111, 117, 114, 99, 101, 32, 39, 36, 34, 34, 49, 39, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 108, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 111, 32, 114, 97, 119, 58, 47, 116, 109, 112, 47, 36, 102, 105, 108, 101, 110, 97, 109, 101, 44, 117, 99, 104, 97, 114, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 120, 32, 92, 34, 115, 99, 112, 32, 47, 116, 109, 112, 47, 92, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 92, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 105, 110, 99, 108, 117, 100, 101, 47, 92, 34, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 97, 114, 99, 104, 105, 118, 101, 100, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 99, 111, 117, 108, 100, 32, 110, 111, 116, 32, 98, 101, 32, 97, 114, 99, 104, 105, 118, 101, 100, 33, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 108, 32, 34, 92, 10, 34, 45, 111, 110, 102, 97, 105, 108, 32, 45, 108, 91, 93, 32, 34, 92, 10, 34, 32, 32, 115, 111, 117, 114, 99, 101, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 110, 99, 108, 117, 100, 101, 47, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 34, 92, 10, 34, 32, 32, 45, 105, 32, 114, 97, 119, 58, 36, 115, 111, 117, 114, 99, 101, 44, 117, 99, 104, 97, 114, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 114, 101, 116, 114, 105, 101, 118, 101, 100, 32, 102, 114, 111, 109, 32, 97, 114, 99, 104, 105, 118, 101, 32, 39, 92, 34, 36, 115, 111, 117, 114, 99, 101, 92, 34, 39, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 101, 114, 114, 111, 114, 44, 32, 110, 111, 116, 32, 114, 101, 97, 99, 104, 97, 98, 108, 101, 33, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 34, 92, 10, 34, 32, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 108, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 64, 46, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 85, 112, 108, 111, 97, 100, 32, 108, 97, 116, 101, 115, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 111, 110, 32, 83, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 32, 115, 101, 114, 118, 101, 114, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 120, 32, 34, 115, 99, 112, 32, 34, 36, 72, 79, 77, 69, 47, 119, 111, 114, 107, 47, 115, 114, 99, 47, 103, 109, 105, 99, 47, 115, 114, 99, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 103, 109, 105, 99, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 34, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 76, 111, 97, 100, 32, 97, 110, 100, 32, 97, 114, 99, 104, 105, 118, 101, 32, 46, 103, 109, 105, 99, 32, 115, 111, 117, 114, 99, 101, 32, 102, 105, 108, 101, 115, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 61, 48, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 36, 49, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 99, 111, 109, 112, 97, 116, 105, 98, 105, 108, 105, 116, 121, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 107, 97, 114, 111, 48, 51, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 103, 109, 105, 99, 47, 107, 97, 114, 111, 115, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 112, 104, 111, 116, 111, 99, 111, 109, 105, 120, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 115, 97, 117, 110, 97, 108, 97, 104, 116, 105, 46, 102, 105, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 110, 97, 103, 103, 111, 98, 111, 116, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 105, 97, 105, 110, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 105, 97, 105, 110, 95, 102, 101, 114, 103, 117, 115, 115, 111, 110, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 115, 52, 48, 54, 56, 51, 51, 50, 52, 55, 46, 119, 101, 98, 115, 105, 116, 101, 104, 111, 109, 101, 46, 99, 111, 46, 117, 107, 47, 103, 109, 105, 99, 47, 103, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 108, 106, 97, 99, 111, 109, 46, 99, 111, 109, 47, 126, 103, 109, 105, 99, 47, 115, 97, 109, 106, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 100, 111, 99, 103, 109, 105, 99, 46, 116, 117, 120, 102, 97, 109, 105, 108, 121, 46, 111, 114, 103, 47, 122, 111, 110, 100, 101, 114, 114, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 116, 111, 109, 107, 101, 105, 108, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 104, 45, 112, 115, 46, 100, 101, 109, 111, 110, 46, 99, 111, 46, 117, 107, 47, 71, 77, 73, 67, 47, 106, 97, 121, 112, 114, 105, 99, 104, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 115, 58, 47, 47, 114, 97, 119, 46, 103, 105, 116, 104, 117, 98, 46, 99, 111, 109, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 45, 103, 109, 105, 99, 47, 109, 97, 115, 116, 101, 114, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 46, 103, 109, 105, 99, 10, 45, 105, 91, 48, 93, 32, 40, 49, 48, 41, 32, 45, 105, 91, 50, 45, 45, 49, 93, 32, 40, 123, 34, 39, 92, 110, 35, 64, 103, 105, 109, 112, 32, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 110, 39, 34, 125, 41, 32, 45, 121, 32, 121, 32, 45, 97, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 49, 51, 10, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 105, 109, 112, 34, 39, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 40, 64, 35, 45, 49, 41, 47, 50, 41, 125, 32, 45, 97, 91, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 50, 125, 93, 32, 121, 32, 45, 100, 111, 110, 101, 10, 45, 110, 109, 91, 48, 93, 32, 33, 104, 101, 97, 100, 101, 114, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 83, 116, 97, 114, 116, 32, 115, 111, 117, 114, 99, 101, 32, 112, 97, 114, 115, 105, 110, 103, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 112, 114, 111, 103, 114, 101, 115, 115, 95, 102, 97, 99, 116, 111, 114, 61, 123, 49, 48, 48, 47, 40, 64, 35, 45, 49, 41, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 48, 10, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 61, 48, 10, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 61, 48, 10, 111, 102, 102, 115, 101, 116, 61, 48, 10, 112, 97, 116, 104, 61, 47, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 105, 110, 100, 61, 123, 36, 62, 45, 36, 111, 102, 102, 115, 101, 116, 125, 10, 45, 105, 102, 32, 123, 64, 123, 123, 36, 105, 110, 100, 45, 49, 125, 44, 45, 49, 125, 61, 61, 49, 48, 34, 32, 38, 38, 32, 34, 123, 123, 96, 64, 123, 36, 105, 110, 100, 44, 48, 45, 53, 125, 96, 125, 39, 61, 61, 39, 34, 35, 64, 103, 105, 109, 112, 34, 125, 34, 32, 38, 38, 32, 34, 40, 64, 123, 36, 105, 110, 100, 44, 54, 125, 61, 61, 51, 50, 34, 32, 124, 124, 32, 34, 64, 123, 36, 105, 110, 100, 44, 54, 125, 61, 61, 123, 39, 95, 39, 125, 41, 125, 32, 45, 108, 91, 36, 105, 110, 100, 93, 10, 105, 115, 95, 102, 111, 108, 100, 101, 114, 61, 48, 10, 45, 115, 32, 43, 44, 49, 48, 32, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 54, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 51, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 45, 108, 91, 45, 49, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 98, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 47, 98, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 105, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 47, 105, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 47, 39, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 44, 39, 125, 44, 123, 39, 59, 39, 125, 10, 45, 115, 32, 45, 44, 123, 39, 58, 39, 125, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 51, 50, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 107, 91, 48, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 10, 110, 97, 109, 101, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 49, 10, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 61, 123, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 43, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 34, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 34, 46, 32, 34, 36, 110, 97, 109, 101, 34, 32, 40, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 42, 36, 112, 114, 111, 103, 114, 101, 115, 115, 95, 102, 97, 99, 116, 111, 114, 41, 125, 34, 37, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 10, 45, 100, 111, 32, 112, 97, 116, 104, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 112, 97, 116, 104, 125, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 45, 49, 44, 48, 44, 48, 32, 45, 119, 104, 105, 108, 101, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 51, 50, 10, 45, 105, 102, 32, 123, 119, 125, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 32, 112, 97, 116, 104, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 47, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 51, 50, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 10, 112, 97, 116, 104, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 47, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 102, 111, 108, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 105, 115, 95, 102, 111, 108, 100, 101, 114, 32, 45, 114, 109, 91, 48, 93, 32, 45, 105, 91, 48, 93, 32, 40, 49, 48, 41, 10, 45, 101, 108, 115, 101, 32, 45, 110, 109, 91, 48, 93, 32, 36, 110, 97, 109, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 34, 32, 38, 38, 32, 34, 36, 105, 110, 100, 62, 48, 125, 10, 45, 97, 91, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 123, 36, 105, 110, 100, 45, 49, 125, 93, 32, 121, 10, 111, 102, 102, 115, 101, 116, 61, 123, 36, 111, 102, 102, 115, 101, 116, 43, 36, 105, 110, 100, 45, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 49, 125, 10, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 61, 123, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 43, 49, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 97, 91, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 45, 49, 93, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 62, 32, 70, 111, 114, 99, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 116, 111, 32, 109, 111, 118, 101, 44, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 105, 110, 100, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 109, 32, 45, 105, 102, 32, 123, 64, 123, 36, 105, 110, 100, 44, 110, 125, 39, 61, 61, 39, 36, 123, 95, 116, 111, 95, 109, 111, 118, 101, 36, 62, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 34, 36, 105, 110, 100, 34, 46, 32, 77, 111, 118, 101, 32, 39, 34, 64, 123, 36, 105, 110, 100, 44, 110, 125, 34, 39, 32, 116, 111, 32, 39, 34, 36, 123, 95, 109, 111, 118, 101, 95, 116, 111, 36, 62, 125, 34, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 110, 97, 109, 101, 91, 36, 105, 110, 100, 93, 32, 36, 123, 95, 109, 111, 118, 101, 95, 116, 111, 36, 62, 125, 47, 64, 123, 36, 105, 110, 100, 44, 98, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 62, 32, 83, 111, 114, 116, 32, 102, 105, 108, 116, 101, 114, 115, 32, 98, 121, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 32, 111, 114, 100, 101, 114, 46, 34, 32, 45, 118, 32, 45, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 48, 44, 123, 64, 35, 45, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 82, 101, 98, 117, 105, 108, 100, 32, 102, 111, 108, 100, 101, 114, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 109, 32, 34, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 58, 32, 45, 108, 91, 93, 32, 40, 123, 39, 36, 34, 34, 49, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 117, 32, 64, 35, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 34, 10, 112, 97, 116, 104, 61, 47, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 112, 97, 116, 104, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 32, 34, 64, 123, 48, 44, 110, 125, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 116, 104, 39, 33, 61, 39, 36, 110, 112, 97, 116, 104, 125, 10, 110, 99, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 112, 97, 116, 104, 125, 10, 110, 110, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 110, 112, 97, 116, 104, 125, 10, 110, 98, 95, 117, 112, 61, 48, 10, 110, 98, 95, 100, 111, 119, 110, 61, 48, 10, 98, 97, 115, 105, 115, 61, 36, 112, 97, 116, 104, 32, 110, 98, 97, 115, 105, 115, 61, 36, 110, 112, 97, 116, 104, 10, 45, 100, 111, 10, 110, 99, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 10, 110, 110, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 10, 45, 105, 102, 32, 123, 36, 110, 99, 62, 36, 110, 110, 125, 32, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 117, 112, 61, 123, 36, 110, 98, 95, 117, 112, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 110, 110, 62, 36, 110, 99, 125, 32, 110, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 100, 111, 119, 110, 61, 123, 36, 110, 98, 95, 100, 111, 119, 110, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 110, 98, 97, 115, 105, 115, 39, 33, 61, 39, 36, 98, 97, 115, 105, 115, 125, 32, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 117, 112, 61, 123, 36, 110, 98, 95, 117, 112, 43, 49, 125, 32, 110, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 100, 111, 119, 110, 61, 123, 36, 110, 98, 95, 100, 111, 119, 110, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 110, 98, 97, 115, 105, 115, 39, 33, 61, 39, 36, 98, 97, 115, 105, 115, 125, 10, 99, 111, 109, 109, 97, 110, 100, 61, 10, 45, 105, 102, 32, 36, 110, 98, 95, 117, 112, 32, 49, 44, 36, 110, 98, 95, 117, 112, 44, 49, 44, 49, 44, 123, 39, 95, 39, 125, 32, 99, 111, 109, 109, 97, 110, 100, 61, 34, 35, 64, 103, 105, 109, 112, 32, 34, 64, 123, 45, 49, 44, 116, 125, 34, 92, 110, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 110, 98, 95, 100, 111, 119, 110, 32, 45, 108, 91, 93, 10, 40, 123, 39, 36, 110, 112, 97, 116, 104, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 107, 91, 45, 36, 110, 98, 95, 100, 111, 119, 110, 45, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 108, 101, 118, 101, 108, 61, 123, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 34, 36, 112, 97, 116, 104, 125, 45, 36, 110, 98, 95, 117, 112, 125, 10, 98, 97, 108, 105, 115, 101, 61, 64, 123, 34, 45, 105, 102, 32, 34, 123, 36, 108, 101, 118, 101, 108, 60, 61, 48, 34, 32, 38, 38, 32, 34, 123, 36, 110, 112, 97, 116, 104, 39, 33, 61, 39, 47, 65, 98, 111, 117, 116, 47, 125, 125, 34, 32, 45, 117, 32, 98, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 105, 32, 45, 101, 110, 100, 105, 102, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 99, 111, 109, 109, 97, 110, 100, 61, 36, 99, 111, 109, 109, 97, 110, 100, 34, 35, 64, 103, 105, 109, 112, 32, 60, 34, 36, 98, 97, 108, 105, 115, 101, 34, 62, 34, 64, 123, 36, 62, 44, 116, 125, 34, 60, 47, 34, 36, 98, 97, 108, 105, 115, 101, 34, 62, 92, 110, 34, 10, 98, 97, 108, 105, 115, 101, 61, 34, 105, 34, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 99, 111, 109, 109, 97, 110, 100, 41, 125, 32, 110, 97, 109, 101, 61, 64, 123, 48, 44, 110, 125, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 36, 99, 111, 109, 109, 97, 110, 100, 39, 125, 41, 32, 45, 121, 91, 48, 93, 32, 121, 32, 45, 97, 32, 121, 32, 45, 110, 109, 32, 36, 110, 97, 109, 101, 10, 45, 101, 110, 100, 105, 102, 10, 112, 97, 116, 104, 61, 36, 110, 112, 97, 116, 104, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 83, 97, 118, 101, 32, 111, 117, 116, 112, 117, 116, 32, 46, 103, 109, 105, 99, 32, 102, 105, 108, 101, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 45, 97, 32, 121, 32, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 72, 79, 77, 69, 47, 46, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 44, 117, 99, 104, 97, 114, 10, 45, 120, 32, 34, 115, 99, 112, 32, 34, 36, 72, 79, 77, 69, 47, 46, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 34, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 50, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 79, 117, 116, 112, 117, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 110, 32, 115, 116, 100, 111, 117, 116, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 101, 120, 101, 99, 32, 34, 100, 97, 116, 101, 32, 43, 37, 89, 44, 37, 109, 44, 37, 100, 32, 62, 34, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 100, 97, 116, 101, 46, 100, 108, 109, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 100, 97, 116, 101, 46, 100, 108, 109, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 42, 42, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 110, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 112, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 32, 40, 34, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 34, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 111, 110, 32, 34, 123, 105, 125, 47, 123, 105, 40, 49, 41, 125, 47, 123, 105, 40, 50, 41, 125, 34, 41, 32, 42, 42, 42, 92, 110, 34, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 115, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 97, 116, 104, 58, 92, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 39, 64, 123, 48, 44, 110, 125, 39, 125, 41, 32, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 33, 39, 125, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 44, 123, 39, 38, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 38, 35, 50, 51, 51, 59, 34, 39, 125, 125, 44, 123, 39, 101, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 123, 39, 47, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 126, 47, 126, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 91, 93, 32, 34, 32, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 92, 110, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 115, 111, 114, 116, 101, 100, 32, 97, 108, 112, 104, 97, 98, 101, 116, 105, 99, 97, 108, 108, 121, 58, 92, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 110, 97, 109, 101, 61, 64, 123, 36, 62, 44, 98, 125, 10, 112, 97, 116, 104, 61, 64, 123, 36, 62, 44, 102, 125, 10, 45, 110, 109, 91, 36, 62, 93, 32, 36, 110, 97, 109, 101, 34, 126, 40, 105, 110, 126, 39, 34, 36, 112, 97, 116, 104, 34, 39, 41, 34, 10, 45, 100, 111, 110, 101, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 48, 44, 123, 64, 35, 45, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 39, 64, 123, 48, 44, 110, 125, 39, 125, 41, 32, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 33, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 44, 123, 39, 38, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 38, 35, 50, 51, 51, 59, 34, 39, 125, 125, 44, 123, 39, 101, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 91, 93, 32, 34, 32, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 92, 110, 42, 42, 42, 32, 69, 110, 100, 32, 111, 102, 32, 108, 105, 115, 116, 32, 42, 42, 42, 92, 110, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 65, 108, 108, 32, 100, 111, 110, 101, 32, 33, 92, 110, 34, 10, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 58, 10, 109, 105, 100, 61, 123, 105, 110, 116, 40, 40, 36, 49, 43, 36, 50, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 49, 44, 110, 125, 44, 64, 123, 36, 109, 105, 100, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 49, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 109, 105, 100, 44, 110, 125, 44, 64, 123, 36, 50, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 50, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 49, 44, 110, 125, 44, 64, 123, 36, 109, 105, 100, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 49, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 45, 36, 49, 62, 61, 51, 125, 10, 112, 105, 118, 111, 116, 61, 64, 123, 36, 109, 105, 100, 44, 110, 125, 10, 105, 61, 36, 49, 32, 106, 61, 36, 50, 10, 45, 100, 111, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 36, 112, 105, 118, 111, 116, 44, 64, 123, 36, 105, 44, 110, 125, 125, 32, 45, 100, 111, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 36, 112, 105, 118, 111, 116, 44, 64, 123, 36, 105, 44, 110, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 106, 44, 110, 125, 44, 36, 112, 105, 118, 111, 116, 125, 32, 45, 100, 111, 32, 106, 61, 123, 36, 106, 45, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 106, 44, 110, 125, 44, 36, 112, 105, 118, 111, 116, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 60, 61, 36, 106, 125, 32, 45, 114, 118, 91, 36, 105, 44, 36, 106, 93, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 106, 61, 123, 36, 106, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 105, 60, 61, 36, 106, 125, 10, 45, 105, 102, 32, 123, 36, 49, 60, 36, 106, 125, 32, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 36, 49, 44, 36, 106, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 60, 36, 50, 125, 32, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 36, 105, 44, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 58, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 95, 110, 98, 109, 41, 125, 32, 95, 110, 98, 109, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 95, 116, 111, 95, 109, 111, 118, 101, 36, 123, 95, 110, 98, 109, 125, 61, 34, 36, 49, 34, 32, 95, 109, 111, 118, 101, 95, 116, 111, 36, 123, 95, 110, 98, 109, 125, 61, 34, 36, 50, 34, 32, 95, 110, 98, 109, 61, 123, 36, 95, 110, 98, 109, 43, 49, 125, 10, 95, 98, 101, 102, 111, 114, 101, 32, 58, 10, 51, 51, 44, 49, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 66, 101, 102, 111, 114, 101, 34, 44, 49, 44, 45, 49, 44, 49, 51, 44, 49, 44, 49, 10, 95, 97, 102, 116, 101, 114, 32, 58, 10, 50, 54, 44, 49, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 65, 102, 116, 101, 114, 34, 44, 49, 44, 45, 49, 44, 49, 51, 44, 49, 44, 49, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 101, 91, 93, 32, 34, 36, 49, 34, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 40, 36, 50, 37, 50, 41, 125, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 108, 91, 45, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 97, 102, 116, 101, 114, 32, 45, 95, 98, 101, 102, 111, 114, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 104, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 51, 93, 32, 120, 10, 45, 101, 108, 115, 101, 10, 45, 115, 91, 45, 49, 93, 32, 121, 44, 50, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 125, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 108, 91, 45, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 125, 32, 45, 95, 97, 102, 116, 101, 114, 32, 45, 95, 98, 101, 102, 111, 114, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 64, 123, 45, 51, 44, 119, 125, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 51, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 52, 44, 45, 51, 93, 32, 64, 123, 45, 53, 44, 115, 125, 10, 45, 106, 91, 45, 53, 93, 32, 91, 45, 52, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 45, 50, 93, 32, 45, 106, 91, 45, 53, 93, 32, 91, 45, 51, 93, 44, 123, 64, 123, 45, 53, 44, 119, 125, 45, 119, 45, 49, 125, 44, 123, 64, 123, 45, 53, 44, 104, 125, 45, 104, 45, 49, 125, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 78, 111, 32, 112, 114, 101, 118, 105, 101, 119, 92, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 34, 44, 34, 36, 42, 34, 10, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 62, 48, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 49, 44, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 49, 49, 56, 44, 53, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 50, 44, 49, 44, 50, 52, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 10, 40, 49, 46, 53, 44, 48, 44, 49, 46, 53, 59, 48, 44, 48, 44, 48, 59, 49, 46, 53, 44, 48, 44, 49, 46, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 111, 114, 10, 45, 115, 107, 105, 112, 32, 34, 36, 42, 34, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 80, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 125, 34, 10, 45, 105, 102, 32, 64, 35, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 39, 77, 73, 67, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 10, 54, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 49, 53, 48, 44, 50, 53, 53, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 48, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 114, 91, 45, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 54, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 54, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 91, 45, 49, 93, 32, 48, 46, 53, 44, 48, 44, 49, 44, 53, 48, 44, 53, 48, 44, 48, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 56, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 56, 48, 32, 45, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 50, 48, 44, 48, 44, 52, 53, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 32, 45, 109, 97, 120, 91, 45, 51, 45, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 40, 48, 59, 49, 50, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 51, 50, 37, 44, 55, 53, 37, 44, 49, 51, 44, 51, 44, 49, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 50, 56, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 42, 91, 94, 48, 93, 32, 48, 46, 52, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 40, 119, 45, 64, 123, 48, 44, 119, 125, 41, 47, 50, 125, 44, 123, 40, 104, 45, 64, 123, 48, 44, 104, 125, 41, 47, 50, 125, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 111, 108, 100, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 114, 97, 116, 105, 111, 61, 123, 119, 47, 104, 125, 32, 45, 101, 108, 115, 101, 32, 114, 97, 116, 105, 111, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 49, 49, 56, 44, 52, 52, 44, 49, 44, 49, 32, 45, 116, 32, 34, 71, 39, 77, 73, 67, 34, 44, 51, 44, 45, 54, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 44, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 48, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 32, 49, 46, 53, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 10, 45, 99, 111, 108, 51, 100, 32, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 56, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 50, 44, 45, 54, 32, 45, 43, 51, 100, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 114, 118, 51, 100, 10, 45, 100, 98, 51, 100, 32, 48, 32, 45, 115, 108, 51, 100, 32, 48, 46, 50, 32, 45, 115, 115, 51, 100, 32, 49, 46, 51, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 51, 48, 32, 45, 102, 51, 100, 32, 49, 50, 48, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 46, 53, 10, 50, 51, 48, 44, 49, 50, 48, 44, 49, 44, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 51, 48, 37, 44, 48, 44, 49, 44, 52, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 116, 32, 34, 36, 49, 34, 44, 49, 50, 37, 44, 55, 53, 37, 44, 50, 52, 44, 49, 44, 50, 53, 53, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 54, 44, 54, 44, 50, 10, 45, 105, 91, 45, 50, 93, 32, 64, 123, 45, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 92, 32, 50, 51, 48, 44, 49, 50, 48, 44, 36, 114, 97, 116, 105, 111, 125, 44, 49, 44, 51, 10, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 91, 45, 50, 93, 32, 49, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 54, 48, 48, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 80, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 102, 114, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 71, 114, 101, 102, 102, 111, 110, 32, 112, 111, 117, 114, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 99, 97, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 32, 32, 112, 101, 114, 32, 97, 108, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 103, 105, 109, 112, 95, 102, 114, 105, 101, 110, 100, 115, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 114, 97, 116, 105, 111, 61, 123, 119, 47, 104, 125, 32, 45, 101, 108, 115, 101, 32, 114, 97, 116, 105, 111, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 95, 104, 101, 97, 114, 116, 56, 48, 120, 55, 51, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 114, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 42, 91, 45, 49, 93, 32, 55, 48, 32, 45, 45, 42, 91, 45, 50, 93, 32, 49, 49, 48, 32, 45, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 48, 10, 45, 105, 91, 45, 50, 93, 32, 64, 123, 45, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 92, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 114, 97, 116, 105, 111, 125, 44, 49, 44, 51, 10, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 91, 45, 50, 93, 32, 49, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 54, 48, 48, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 49, 51, 53, 44, 54, 55, 44, 49, 44, 49, 44, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 114, 101, 101, 116, 105, 110, 103, 115, 32, 116, 111, 92, 110, 32, 32, 97, 108, 108, 32, 71, 39, 77, 73, 67, 92, 110, 32, 32, 102, 114, 105, 101, 110, 100, 115, 33, 34, 44, 50, 44, 45, 50, 44, 50, 52, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 125, 44, 123, 40, 64, 123, 45, 51, 44, 104, 125, 45, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 46, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 95, 104, 101, 97, 114, 116, 56, 48, 120, 55, 51, 32, 58, 10, 52, 48, 44, 55, 51, 44, 49, 44, 49, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 50, 50, 44, 50, 50, 44, 50, 48, 44, 50, 48, 44, 48, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 55, 44, 51, 55, 44, 52, 50, 44, 55, 50, 44, 52, 50, 44, 50, 55, 44, 49, 44, 49, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 10, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 32, 58, 10, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 109, 105, 99, 107, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 100, 100, 121, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 107, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 115, 101, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 114, 111, 100, 100, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 114, 111, 100, 100, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 36, 117, 114, 108, 32, 45, 111, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 50, 100, 121, 32, 36, 104, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 45, 107, 91, 48, 93, 32, 45, 102, 32, 48, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 93, 32, 45, 103, 105, 109, 112, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 45, 121, 32, 120, 32, 45, 97, 32, 121, 32, 45, 111, 110, 102, 97, 105, 108, 32, 40, 48, 41, 32, 45, 101, 110, 100, 108, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 69, 110, 97, 98, 108, 101, 100, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 115, 111, 117, 114, 99, 101, 115, 58, 92, 110, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 36, 62, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 51, 125, 39, 61, 61, 39, 123, 39, 104, 116, 116, 112, 39, 125, 125, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 91, 123, 49, 43, 36, 62, 125, 93, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 44, 53, 44, 123, 51, 50, 43, 49, 53, 42, 36, 62, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 91, 123, 49, 43, 36, 62, 125, 93, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 34, 32, 40, 108, 111, 99, 97, 108, 32, 102, 105, 108, 101, 41, 34, 44, 53, 44, 123, 51, 50, 43, 49, 53, 42, 36, 62, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 51, 37, 44, 45, 36, 52, 37, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 32, 123, 36, 53, 38, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 53, 62, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 54, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 55, 38, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 55, 62, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 44, 36, 53, 44, 36, 54, 44, 36, 56, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 51, 37, 44, 45, 36, 52, 37, 44, 48, 44, 48, 44, 50, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 48, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 57, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 49, 56, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 55, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 55, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 114, 111, 119, 115, 32, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 32, 45, 122, 32, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 51, 125, 32, 45, 122, 32, 123, 36, 55, 47, 50, 125, 37, 44, 123, 36, 55, 47, 50, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 47, 50, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 47, 50, 125, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 50, 37, 44, 45, 36, 51, 37, 44, 48, 44, 48, 44, 50, 10, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 36, 49, 44, 36, 52, 44, 36, 54, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 44, 36, 55, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 51, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 36, 123, 49, 45, 49, 52, 125, 10, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 105, 99, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 54, 32, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 50, 125, 32, 45, 95, 100, 105, 99, 101, 36, 62, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 51, 37, 50, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 54, 45, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 91, 45, 54, 45, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 48, 10, 45, 114, 50, 100, 121, 91, 45, 54, 45, 45, 49, 93, 32, 36, 50, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 114, 91, 48, 44, 49, 93, 32, 123, 49, 48, 48, 42, 36, 49, 47, 36, 50, 125, 37, 44, 123, 49, 48, 48, 42, 36, 49, 47, 36, 50, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 49, 93, 32, 54, 44, 48, 10, 45, 42, 91, 45, 50, 93, 32, 36, 50, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 10, 36, 50, 44, 36, 50, 44, 49, 44, 50, 44, 39, 105, 102, 40, 99, 44, 121, 44, 120, 41, 39, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 105, 102, 32, 123, 36, 51, 60, 50, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 48, 93, 32, 91, 50, 93, 44, 91, 50, 93, 44, 49, 44, 49, 48, 48, 37, 32, 45, 114, 118, 91, 48, 44, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 100, 105, 99, 101, 48, 32, 58, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 49, 32, 58, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 55, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 50, 32, 58, 32, 45, 95, 100, 105, 99, 101, 49, 32, 45, 95, 100, 105, 99, 101, 48, 10, 95, 100, 105, 99, 101, 51, 32, 58, 32, 45, 95, 100, 105, 99, 101, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 55, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 50, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 52, 32, 58, 32, 45, 95, 100, 105, 99, 101, 51, 32, 45, 95, 100, 105, 99, 101, 48, 10, 95, 100, 105, 99, 101, 53, 32, 58, 32, 45, 95, 100, 105, 99, 101, 51, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 36, 53, 37, 32, 45, 101, 108, 115, 101, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 120, 61, 123, 36, 49, 37, 42, 40, 119, 45, 49, 41, 125, 10, 121, 61, 123, 36, 50, 37, 42, 40, 104, 45, 49, 41, 125, 10, 99, 111, 108, 111, 114, 61, 64, 123, 45, 97, 116, 92, 32, 36, 120, 44, 36, 121, 125, 10, 45, 105, 102, 32, 36, 55, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 36, 55, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 91, 45, 49, 93, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 45, 122, 91, 48, 93, 32, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 51, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 52, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 36, 53, 37, 32, 45, 101, 108, 115, 101, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 120, 61, 123, 36, 49, 37, 42, 40, 119, 45, 49, 41, 125, 10, 121, 61, 123, 36, 50, 37, 42, 40, 104, 45, 49, 41, 125, 10, 99, 111, 108, 111, 114, 61, 64, 123, 45, 97, 116, 92, 32, 36, 120, 44, 36, 121, 125, 10, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 91, 45, 49, 93, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 120, 121, 99, 111, 111, 114, 100, 115, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 51, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 52, 41, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 48, 93, 32, 36, 120, 121, 99, 111, 111, 114, 100, 115, 44, 48, 46, 51, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 48, 93, 32, 36, 120, 121, 99, 111, 111, 114, 100, 115, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 45, 100, 114, 103, 98, 97, 91, 48, 93, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 123, 119, 125, 34, 32, 111, 98, 106, 101, 99, 116, 115, 34, 44, 50, 44, 50, 44, 49, 51, 44, 50, 44, 48, 46, 51, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 107, 91, 48, 93, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 44, 36, 121, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 44, 36, 121, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 58, 10, 45, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 123, 36, 51, 45, 49, 125, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 36, 49, 44, 123, 105, 102, 40, 36, 51, 61, 61, 48, 44, 36, 50, 44, 36, 50, 47, 50, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 119, 125, 61, 61, 49, 34, 32, 38, 38, 32, 34, 64, 123, 36, 62, 44, 104, 125, 61, 61, 49, 125, 32, 45, 114, 109, 32, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 32, 32, 73, 110, 118, 97, 108, 105, 100, 92, 110, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 36, 51, 44, 36, 49, 44, 36, 50, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 10, 95, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 110, 32, 36, 51, 44, 36, 52, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 105, 102, 32, 123, 36, 52, 60, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 10, 45, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 105, 115, 111, 108, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 36, 53, 32, 115, 120, 61, 123, 114, 111, 117, 110, 100, 40, 109, 105, 110, 40, 119, 44, 104, 41, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 47, 49, 48, 48, 41, 125, 32, 115, 121, 61, 36, 115, 120, 32, 45, 101, 108, 115, 101, 32, 115, 120, 61, 123, 114, 111, 117, 110, 100, 40, 119, 42, 36, 49, 47, 49, 48, 48, 41, 125, 32, 115, 121, 61, 123, 114, 111, 117, 110, 100, 40, 104, 42, 36, 50, 47, 49, 48, 48, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 98, 120, 61, 123, 109, 97, 120, 40, 36, 51, 44, 36, 52, 41, 125, 32, 98, 121, 61, 36, 98, 120, 32, 45, 101, 108, 115, 101, 32, 98, 120, 61, 36, 51, 32, 98, 121, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 120, 44, 45, 36, 115, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 121, 44, 45, 36, 115, 121, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 49, 48, 48, 43, 36, 98, 121, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 123, 49, 48, 48, 43, 36, 98, 120, 125, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 111, 107, 101, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 98, 111, 107, 101, 104, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 99, 97, 114, 116, 111, 111, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 99, 117, 98, 105, 115, 109, 32, 36, 123, 50, 45, 45, 49, 125, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 10, 45, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 36, 123, 94, 48, 125, 10, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 49, 45, 53, 125, 44, 48, 44, 48, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 36, 54, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 107, 117, 119, 97, 104, 97, 114, 97, 32, 36, 50, 32, 45, 100, 111, 110, 101, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 95, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 46, 52, 57, 44, 48, 46, 55, 53, 44, 48, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 51, 48, 48, 44, 48, 46, 50, 54, 44, 49, 44, 48, 44, 55, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 10, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 51, 45, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 44, 48, 46, 53, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 49, 10, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 10, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 91, 45, 49, 93, 32, 36, 51, 44, 52, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 32, 36, 51, 32, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 51, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 44, 54, 44, 53, 44, 50, 48, 44, 49, 44, 51, 32, 45, 100, 111, 110, 101, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 50, 125, 44, 48, 46, 50, 44, 49, 44, 36, 50, 44, 123, 50, 42, 36, 50, 125, 44, 48, 46, 56, 44, 57, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 54, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 51, 44, 48, 44, 48, 46, 53, 44, 36, 51, 44, 48, 44, 48, 46, 53, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 36, 53, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 49, 48, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 118, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 32, 58, 10, 45, 100, 114, 97, 119, 105, 110, 103, 32, 36, 49, 10, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 49, 48, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 36, 123, 50, 45, 55, 125, 10, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 111, 100, 105, 108, 105, 117, 115, 32, 36, 123, 49, 45, 53, 44, 55, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 32, 45, 115, 109, 111, 111, 116, 104, 32, 49, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 56, 44, 52, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 34, 44, 36, 56, 44, 48, 10, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 51, 37, 32, 45, 112, 111, 119, 91, 45, 49, 93, 32, 36, 49, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 36, 54, 44, 48, 44, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 49, 48, 48, 37, 32, 45, 45, 103, 116, 91, 49, 93, 32, 36, 62, 32, 45, 110, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 50, 44, 45, 49, 93, 32, 99, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 54, 60, 61, 49, 44, 36, 55, 44, 36, 55, 43, 40, 36, 56, 45, 36, 55, 41, 42, 36, 62, 47, 40, 36, 54, 45, 49, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 60, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 123, 50, 42, 36, 115, 105, 122, 101, 125, 44, 123, 50, 42, 36, 115, 105, 122, 101, 125, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 10, 45, 101, 108, 115, 101, 32, 36, 115, 105, 122, 101, 44, 36, 115, 105, 122, 101, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 48, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 123, 36, 49, 48, 60, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 101, 110, 100, 105, 102, 10, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 34, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 49, 48, 48, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 34, 44, 123, 36, 62, 42, 49, 48, 48, 47, 36, 54, 125, 44, 123, 40, 36, 62, 43, 49, 41, 42, 49, 48, 48, 47, 36, 54, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 100, 111, 110, 101, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 57, 55, 10, 45, 114, 109, 91, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 48, 93, 32, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 49, 48, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 64, 35, 62, 61, 49, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 32, 34, 44, 34, 36, 42, 34, 10, 53, 48, 37, 44, 53, 48, 37, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 111, 114, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 48, 32, 58, 10, 45, 102, 32, 50, 53, 53, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 49, 32, 58, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 53, 48, 37, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 50, 32, 58, 10, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 51, 32, 58, 10, 45, 95, 100, 116, 95, 100, 105, 97, 109, 111, 110, 100, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 52, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 51, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 53, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 52, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 54, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 53, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 55, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 36, 49, 44, 36, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 10, 103, 105, 109, 112, 95, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 98, 91, 45, 51, 93, 32, 36, 50, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 98, 91, 45, 50, 93, 32, 36, 52, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 37, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 51, 43, 36, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 55, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 56, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 43, 91, 45, 49, 93, 32, 36, 57, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 91, 45, 49, 93, 120, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 51, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 51, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 51, 93, 32, 45, 36, 49, 50, 44, 36, 49, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 50, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 50, 93, 32, 45, 36, 49, 51, 44, 36, 49, 51, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 49, 52, 44, 36, 49, 52, 10, 45, 45, 116, 111, 110, 101, 115, 91, 45, 52, 93, 32, 51, 32, 45, 98, 91, 45, 51, 45, 45, 49, 93, 32, 36, 49, 53, 37, 10, 45, 42, 91, 45, 54, 44, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 49, 48, 124, 124, 36, 49, 49, 125, 10, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 49, 49, 10, 45, 105, 91, 45, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 49, 48, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 49, 56, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 49, 56, 44, 36, 49, 57, 44, 36, 50, 48, 44, 50, 37, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 49, 32, 45, 116, 111, 95, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 36, 50, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 109, 97, 120, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 44, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 123, 36, 49, 42, 51, 125, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 45, 45, 116, 50, 32, 36, 55, 44, 36, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 50, 91, 48, 93, 32, 36, 50, 44, 36, 51, 10, 45, 105, 102, 32, 123, 33, 36, 49, 53, 125, 32, 45, 101, 113, 91, 48, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 114, 10, 45, 45, 42, 91, 48, 93, 32, 36, 49, 48, 32, 45, 45, 42, 91, 48, 93, 32, 36, 49, 49, 32, 45, 42, 91, 48, 93, 32, 36, 57, 10, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 48, 44, 49, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 36, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 118, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 114, 109, 91, 50, 93, 32, 45, 114, 118, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 10, 45, 105, 102, 32, 123, 105, 40, 48, 41, 62, 105, 40, 49, 41, 125, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 114, 118, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 114, 118, 91, 49, 44, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 32, 36, 49, 44, 48, 44, 36, 51, 10, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 105, 102, 32, 36, 51, 32, 115, 61, 36, 62, 44, 123, 36, 62, 43, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 61, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 36, 115, 93, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 51, 44, 45, 50, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 51, 44, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 51, 93, 32, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 50, 10, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 93, 32, 49, 10, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 45, 51, 93, 32, 36, 50, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 36, 49, 42, 56, 48, 125, 44, 48, 46, 56, 44, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 105, 91, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 48, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 97, 91, 94, 48, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 36, 42, 32, 45, 97, 32, 120, 10, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 10, 40, 36, 123, 57, 45, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 36, 56, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 10, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 10, 40, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 10, 40, 48, 44, 52, 52, 44, 49, 49, 53, 44, 49, 52, 51, 44, 49, 57, 54, 44, 50, 52, 52, 94, 48, 44, 50, 48, 44, 56, 52, 44, 49, 49, 57, 44, 49, 56, 52, 44, 50, 51, 53, 94, 48, 44, 53, 44, 52, 52, 44, 55, 51, 44, 49, 52, 52, 44, 50, 48, 48, 94, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 115, 101, 10, 40, 48, 44, 51, 53, 57, 94, 49, 44, 49, 94, 49, 44, 49, 94, 50, 53, 53, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 51, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 120, 47, 119, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 94, 45, 49, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 123, 36, 51, 43, 49, 50, 56, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 49, 50, 56, 32, 45, 43, 32, 36, 51, 32, 45, 98, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 10, 45, 105, 102, 32, 123, 36, 53, 124, 124, 36, 54, 125, 32, 45, 47, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 102, 99, 91, 48, 93, 32, 36, 53, 44, 36, 54, 32, 45, 97, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 98, 32, 36, 51, 32, 45, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 105, 102, 32, 36, 55, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 50, 45, 53, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 54, 48, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 50, 44, 54, 44, 53, 44, 50, 52, 44, 49, 44, 48, 44, 50, 53, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 50, 44, 54, 44, 53, 44, 50, 52, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 50, 44, 48, 44, 48, 46, 53, 49, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 49, 44, 51, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 124, 124, 36, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 52, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 51, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 98, 32, 50, 37, 10, 45, 45, 98, 108, 101, 110, 100, 32, 100, 105, 118, 105, 100, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 91, 45, 50, 93, 32, 48, 44, 49, 54, 55, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 52, 44, 50, 46, 50, 53, 44, 48, 44, 50, 44, 54, 44, 53, 44, 50, 48, 10, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 56, 48, 44, 51, 50, 44, 49, 46, 56, 57, 44, 48, 46, 50, 49, 44, 51, 49, 46, 52, 54, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 50, 93, 32, 49, 44, 36, 50, 44, 49, 56, 48, 44, 36, 49, 44, 36, 51, 44, 48, 46, 48, 51, 44, 48, 44, 48, 46, 54, 44, 48, 46, 49, 44, 48, 46, 54, 44, 48, 46, 50, 53, 44, 49, 44, 48, 44, 49, 44, 48, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 100, 97, 114, 107, 101, 110, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 48, 46, 53, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 44, 36, 52, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 44, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 102, 99, 32, 36, 123, 53, 45, 55, 125, 32, 45, 98, 108, 101, 110, 100, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 49, 45, 49, 52, 125, 10, 45, 105, 102, 32, 123, 36, 49, 53, 38, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 45, 50, 32, 45, 43, 91, 45, 49, 93, 32, 123, 50, 42, 50, 53, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 51, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 110, 111, 114, 109, 32, 45, 110, 111, 105, 115, 101, 32, 36, 53, 10, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 103, 101, 32, 36, 50, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 51, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 49, 44, 48, 44, 48, 44, 49, 48, 49, 44, 51, 51, 44, 49, 55, 48, 44, 50, 50, 57, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 124, 124, 36, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 52, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 51, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 32, 36, 49, 32, 45, 115, 32, 99, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 50, 44, 49, 44, 48, 32, 45, 97, 114, 101, 97, 32, 48, 32, 45, 94, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 91, 48, 93, 32, 54, 52, 48, 44, 52, 56, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 48, 93, 32, 48, 44, 49, 32, 45, 98, 91, 48, 93, 32, 123, 49, 48, 45, 36, 49, 125, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 49, 125, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 49, 93, 32, 36, 51, 10, 45, 98, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 99, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 99, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 33, 61, 50, 53, 54, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 36, 56, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 57, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 49, 44, 36, 49, 50, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 34, 44, 36, 49, 51, 44, 48, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 49, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 58, 10, 45, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 36, 123, 49, 45, 51, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 50, 125, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 123, 36, 49, 45, 50, 125, 44, 36, 50, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 40, 36, 123, 53, 45, 50, 56, 125, 41, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 123, 51, 42, 36, 52, 45, 49, 125, 10, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 119, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 51, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 36, 51, 44, 36, 50, 44, 123, 105, 102, 40, 36, 51, 60, 61, 51, 50, 44, 49, 44, 48, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 123, 49, 45, 49, 51, 125, 34, 44, 36, 49, 52, 44, 36, 49, 53, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 45, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 54, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 48, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 48, 125, 10, 120, 61, 123, 36, 49, 42, 49, 48, 48, 47, 50, 53, 53, 125, 37, 32, 121, 61, 123, 49, 48, 48, 45, 36, 50, 42, 49, 48, 48, 47, 50, 53, 53, 125, 37, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 50, 44, 50, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 36, 51, 44, 36, 120, 44, 123, 36, 121, 42, 104, 45, 50, 48, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 71, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 82, 71, 66, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 82, 71, 66, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 56, 54, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 45, 49, 93, 32, 56, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 48, 56, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 97, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 76, 97, 98, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 76, 97, 98, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 108, 115, 101, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 10, 45, 115, 91, 48, 93, 32, 99, 32, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 110, 98, 61, 64, 35, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 36, 110, 98, 45, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 110, 98, 99, 61, 123, 51, 43, 40, 36, 49, 61, 61, 49, 48, 41, 125, 32, 110, 98, 61, 123, 36, 110, 98, 99, 43, 36, 52, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 110, 98, 41, 125, 32, 45, 108, 91, 48, 45, 123, 36, 110, 98, 45, 49, 125, 93, 10, 45, 97, 91, 48, 45, 123, 36, 110, 98, 99, 45, 49, 125, 93, 32, 99, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 120, 44, 36, 110, 98, 32, 45, 97, 91, 48, 45, 123, 36, 110, 98, 99, 45, 49, 125, 93, 32, 99, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 36, 123, 94, 48, 125, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 48, 32, 58, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 118, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 50, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 108, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 51, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 105, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 52, 32, 58, 32, 45, 114, 103, 98, 50, 121, 117, 118, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 53, 32, 58, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 54, 32, 58, 32, 45, 114, 103, 98, 50, 120, 121, 122, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 55, 32, 58, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 56, 32, 58, 32, 45, 114, 103, 98, 50, 108, 99, 104, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 57, 32, 58, 32, 45, 114, 103, 98, 50, 99, 109, 121, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 48, 32, 58, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 48, 32, 58, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 32, 58, 32, 45, 104, 115, 118, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 50, 32, 58, 32, 45, 104, 115, 108, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 51, 32, 58, 32, 45, 104, 115, 105, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 52, 32, 58, 32, 45, 121, 117, 118, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 53, 32, 58, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 54, 32, 58, 32, 45, 120, 121, 122, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 55, 32, 58, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 56, 32, 58, 32, 45, 108, 99, 104, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 57, 32, 58, 32, 45, 99, 109, 121, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 48, 32, 58, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 50, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 45, 51, 54, 48, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 43, 51, 54, 48, 41, 60, 36, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 55, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 45, 51, 54, 48, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 43, 51, 54, 48, 41, 60, 36, 56, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 49, 50, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 45, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 43, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 49, 44, 50, 93, 32, 48, 46, 48, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 91, 45, 49, 93, 120, 50, 32, 45, 42, 91, 45, 49, 44, 51, 93, 32, 45, 42, 91, 45, 49, 44, 52, 93, 32, 45, 42, 91, 45, 49, 44, 53, 93, 9, 35, 48, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 97, 110, 100, 32, 118, 97, 108, 117, 101, 32, 110, 111, 116, 32, 105, 110, 32, 109, 97, 115, 107, 10, 45, 45, 42, 91, 51, 93, 32, 36, 52, 32, 45, 45, 42, 91, 52, 93, 32, 36, 57, 32, 45, 45, 42, 91, 53, 93, 32, 36, 49, 52, 32, 45, 43, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 43, 91, 45, 49, 44, 48, 93, 32, 45, 37, 91, 48, 93, 32, 51, 54, 48, 10, 45, 105, 102, 32, 123, 36, 53, 62, 61, 48, 125, 32, 45, 45, 42, 91, 51, 93, 32, 45, 36, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 51, 93, 32, 123, 49, 47, 40, 49, 43, 36, 53, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 45, 42, 91, 52, 93, 32, 45, 36, 49, 48, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 52, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 48, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 45, 42, 91, 53, 93, 32, 45, 36, 49, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 53, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 53, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 94, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 45, 42, 91, 51, 93, 32, 45, 36, 54, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 51, 93, 32, 123, 49, 47, 40, 49, 43, 36, 54, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 49, 62, 61, 48, 125, 32, 45, 45, 42, 91, 52, 93, 32, 45, 36, 49, 49, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 52, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 49, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 54, 62, 61, 48, 125, 32, 45, 45, 42, 91, 53, 93, 32, 45, 36, 49, 54, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 53, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 54, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 94, 91, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 51, 44, 52, 44, 53, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 108, 111, 99, 97, 108, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 10, 45, 101, 108, 115, 101, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 40, 48, 44, 51, 53, 57, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 64, 123, 48, 44, 104, 125, 47, 49, 48, 125, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 32, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 49, 9, 35, 99, 114, 101, 97, 116, 101, 32, 108, 111, 119, 101, 114, 32, 98, 97, 110, 100, 10, 45, 106, 91, 48, 93, 32, 91, 51, 93, 44, 48, 44, 57, 49, 37, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 57, 49, 37, 32, 45, 106, 91, 50, 93, 32, 91, 52, 93, 44, 48, 44, 57, 49, 37, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 50, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 45, 51, 54, 48, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 43, 51, 54, 48, 41, 60, 36, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 55, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 45, 51, 54, 48, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 43, 51, 54, 48, 41, 60, 36, 56, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 49, 50, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 45, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 43, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 111, 114, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 51, 51, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 51, 51, 9, 35, 49, 32, 97, 110, 100, 32, 48, 46, 50, 53, 10, 45, 42, 91, 50, 44, 45, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 48, 46, 53, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 37, 91, 45, 51, 93, 32, 51, 54, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 48, 46, 53, 32, 45, 99, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 91, 48, 93, 32, 34, 45, 95, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 36, 42, 34, 44, 48, 44, 123, 51, 42, 109, 97, 120, 40, 36, 51, 44, 36, 54, 44, 36, 57, 41, 125, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 36, 62, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 51, 44, 36, 49, 52, 10, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 52, 93, 32, 36, 49, 32, 45, 43, 91, 45, 52, 93, 32, 36, 50, 32, 45, 98, 91, 45, 52, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 51, 93, 32, 36, 52, 32, 45, 43, 91, 45, 51, 93, 32, 36, 53, 32, 45, 98, 91, 45, 51, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 55, 32, 45, 43, 91, 45, 50, 93, 32, 36, 56, 32, 45, 98, 91, 45, 50, 93, 32, 36, 57, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 49, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 49, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 50, 37, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 51, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 49, 44, 36, 50, 37, 44, 36, 123, 51, 45, 45, 49, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 48, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 10, 40, 36, 52, 94, 36, 53, 94, 36, 54, 94, 36, 55, 41, 32, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 32, 99, 111, 108, 111, 114, 61, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 10, 45, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 99, 111, 108, 111, 114, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 99, 111, 108, 111, 114, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 32, 58, 10, 45, 115, 101, 112, 105, 97, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 51, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 102, 91, 45, 49, 93, 32, 34, 36, 49, 34, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 50, 34, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 52, 93, 32, 34, 36, 51, 34, 32, 45, 102, 91, 45, 51, 93, 32, 34, 36, 52, 34, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 53, 34, 32, 45, 102, 91, 45, 49, 93, 32, 34, 36, 54, 34, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 36, 49, 44, 36, 50, 44, 92, 34, 36, 51, 92, 34, 44, 36, 123, 52, 45, 45, 51, 125, 34, 44, 36, 45, 50, 44, 48, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 36, 49, 91, 93, 32, 45, 101, 108, 115, 101, 32, 40, 36, 51, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 45, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 50, 32, 58, 32, 53, 44, 53, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 51, 32, 58, 32, 55, 44, 55, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 52, 32, 58, 32, 57, 44, 57, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 53, 32, 58, 32, 40, 49, 44, 48, 44, 45, 49, 59, 49, 44, 48, 44, 45, 49, 59, 49, 44, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 54, 32, 58, 32, 40, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 59, 45, 49, 44, 45, 49, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 55, 32, 58, 32, 40, 49, 44, 48, 44, 45, 49, 59, 50, 44, 48, 44, 45, 50, 59, 49, 44, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 56, 32, 58, 32, 40, 49, 44, 50, 44, 49, 59, 48, 44, 48, 44, 48, 59, 45, 49, 44, 45, 50, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 57, 32, 58, 32, 97, 61, 123, 48, 46, 50, 53, 42, 40, 50, 45, 115, 113, 114, 116, 40, 50, 41, 41, 125, 32, 98, 61, 123, 48, 46, 53, 42, 40, 115, 113, 114, 116, 40, 50, 41, 45, 49, 41, 125, 32, 40, 36, 97, 44, 48, 44, 45, 36, 97, 59, 36, 98, 44, 48, 44, 45, 36, 98, 59, 36, 97, 44, 48, 44, 45, 36, 97, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 48, 32, 58, 32, 97, 61, 123, 48, 46, 50, 53, 42, 40, 50, 45, 115, 113, 114, 116, 40, 50, 41, 41, 125, 32, 98, 61, 123, 48, 46, 53, 42, 40, 115, 113, 114, 116, 40, 50, 41, 45, 49, 41, 125, 32, 40, 36, 97, 44, 36, 98, 44, 36, 97, 59, 48, 44, 48, 44, 48, 59, 45, 36, 97, 44, 45, 36, 98, 44, 45, 36, 97, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 49, 32, 58, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 45, 52, 44, 49, 59, 48, 44, 49, 44, 48, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 50, 32, 58, 32, 40, 49, 44, 48, 59, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 51, 32, 58, 32, 40, 48, 44, 49, 59, 45, 49, 44, 48, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 52, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 55, 44, 55, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 53, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 57, 44, 57, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 54, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 49, 49, 44, 49, 49, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 36, 49, 44, 36, 50, 44, 92, 34, 36, 51, 92, 34, 44, 36, 123, 52, 45, 45, 49, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 98, 32, 36, 49, 32, 45, 105, 101, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 97, 98, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 111, 103, 32, 58, 10, 45, 100, 111, 103, 32, 36, 49, 37, 44, 36, 50, 37, 10, 45, 99, 32, 36, 51, 37, 44, 123, 49, 48, 48, 45, 36, 51, 125, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 100, 111, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 103, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 37, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 98, 32, 36, 49, 37, 32, 45, 101, 100, 103, 101, 115, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 111, 115, 61, 123, 115, 125, 10, 45, 98, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 44, 36, 51, 45, 36, 52, 41, 125, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 36, 111, 115, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 94, 32, 36, 50, 10, 45, 99, 32, 36, 51, 37, 44, 36, 52, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 36, 52, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 10, 45, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 36, 49, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 10, 45, 105, 102, 32, 36, 52, 32, 45, 97, 98, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 98, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 114, 109, 91, 48, 45, 45, 49, 58, 50, 93, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 49, 10, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 95, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 123, 94, 48, 125, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 95, 95, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 115, 117, 102, 61, 34, 95, 111, 99, 116, 34, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 115, 117, 102, 61, 34, 34, 32, 45, 101, 108, 115, 101, 32, 115, 117, 102, 61, 34, 95, 99, 105, 114, 99, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 91, 45, 49, 93, 32, 36, 50, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 50, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 49, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 110, 111, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 49, 32, 45, 116, 104, 105, 110, 110, 105, 110, 103, 32, 45, 101, 108, 115, 101, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 32, 36, 51, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 32, 50, 53, 53, 10, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 98, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 32, 36, 50, 37, 32, 45, 116, 104, 105, 110, 110, 105, 110, 103, 10, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 49, 34, 32, 45, 102, 91, 45, 49, 93, 32, 34, 36, 50, 34, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 114, 61, 123, 36, 53, 42, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 99, 111, 110, 100, 61, 34, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 34, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 99, 111, 110, 100, 61, 34, 105, 102, 40, 78, 60, 34, 36, 114, 34, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 44, 105, 41, 34, 10, 45, 101, 108, 115, 101, 32, 99, 111, 110, 100, 61, 34, 105, 102, 40, 78, 62, 34, 36, 114, 34, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 44, 105, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 102, 32, 39, 85, 61, 120, 45, 119, 42, 36, 49, 59, 86, 61, 121, 45, 104, 42, 36, 50, 59, 78, 61, 115, 113, 114, 116, 40, 85, 42, 85, 43, 86, 42, 86, 41, 59, 78, 114, 61, 78, 45, 36, 114, 59, 88, 61, 120, 43, 36, 51, 42, 78, 114, 42, 85, 47, 78, 59, 89, 61, 121, 43, 36, 52, 42, 78, 114, 42, 86, 47, 78, 59, 36, 99, 111, 110, 100, 39, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 36, 42, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 36, 49, 42, 119, 125, 10, 121, 48, 61, 123, 36, 50, 42, 104, 125, 10, 114, 61, 123, 36, 53, 42, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 125, 10, 45, 105, 102, 32, 36, 57, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 114, 45, 49, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 114, 43, 49, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 114, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 101, 108, 115, 101, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 108, 111, 119, 101, 114, 32, 58, 10, 45, 102, 108, 111, 119, 101, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 123, 36, 49, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 36, 51, 44, 36, 52, 37, 44, 36, 53, 10, 103, 105, 109, 112, 95, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 36, 51, 37, 44, 36, 52, 37, 44, 48, 44, 48, 44, 50, 32, 45, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 36, 49, 44, 36, 50, 44, 36, 53, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 110, 103, 61, 123, 36, 50, 43, 49, 56, 48, 42, 36, 62, 47, 109, 97, 120, 40, 49, 44, 36, 49, 45, 49, 41, 125, 10, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 97, 110, 103, 44, 36, 51, 44, 48, 44, 123, 105, 102, 40, 36, 52, 33, 61, 50, 44, 36, 52, 44, 36, 62, 37, 50, 41, 125, 10, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 36, 54, 37, 44, 36, 55, 37, 44, 48, 44, 48, 44, 50, 32, 45, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 56, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 82, 45, 114, 44, 97, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 108, 115, 101, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 97, 42, 82, 47, 40, 50, 42, 112, 105, 41, 44, 114, 42, 50, 42, 112, 105, 47, 82, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 119, 97, 116, 101, 114, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 102, 91, 45, 52, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 51, 41, 47, 50, 53, 53, 34, 10, 45, 102, 91, 45, 51, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 52, 41, 47, 50, 53, 53, 34, 10, 45, 102, 91, 45, 50, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 53, 41, 47, 50, 53, 53, 34, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 49, 93, 32, 39, 40, 104, 94, 36, 50, 45, 121, 94, 36, 50, 41, 47, 104, 94, 36, 50, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 49, 49, 42, 36, 49, 50, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 49, 49, 42, 36, 49, 50, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 34, 36, 49, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 32, 43, 32, 36, 57, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 32, 43, 32, 36, 49, 49, 34, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 51, 93, 32, 48, 46, 53, 32, 45, 42, 91, 45, 51, 93, 32, 64, 123, 45, 51, 44, 119, 125, 10, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 42, 91, 45, 49, 93, 32, 123, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 44, 48, 44, 48, 44, 48, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 58, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 36, 56, 42, 57, 48, 125, 10, 45, 105, 102, 32, 36, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 123, 40, 49, 45, 36, 55, 47, 49, 48, 48, 41, 42, 119, 47, 50, 125, 44, 123, 40, 49, 43, 36, 55, 47, 49, 48, 48, 41, 42, 119, 47, 50, 125, 10, 49, 48, 48, 37, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 123, 48, 46, 49, 42, 119, 125, 44, 123, 104, 125, 44, 48, 32, 49, 48, 48, 37, 32, 49, 48, 48, 37, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 54, 44, 53, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 49, 45, 36, 55, 47, 49, 48, 48, 41, 42, 64, 123, 45, 50, 44, 119, 125, 47, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 32, 36, 53, 37, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 52, 44, 50, 32, 82, 71, 66, 65, 36, 62, 61, 64, 45, 49, 10, 45, 114, 91, 45, 49, 93, 32, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 52, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 49, 48, 44, 36, 49, 49, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 36, 123, 82, 71, 66, 65, 36, 62, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 52, 32, 45, 43, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 36, 42, 10, 116, 104, 101, 116, 97, 61, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 125, 32, 117, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 118, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 119, 42, 36, 49, 37, 125, 10, 121, 48, 61, 123, 104, 42, 36, 50, 37, 125, 10, 120, 49, 61, 123, 36, 120, 48, 45, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 117, 125, 32, 121, 49, 61, 123, 36, 121, 48, 45, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 118, 125, 10, 120, 50, 61, 123, 36, 120, 48, 43, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 117, 125, 32, 121, 50, 61, 123, 36, 121, 48, 43, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 118, 125, 10, 45, 108, 105, 110, 101, 32, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 119, 105, 110, 100, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 119, 105, 110, 100, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 45, 50, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 119, 105, 110, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 119, 105, 110, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 122, 111, 111, 109, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 60, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 110, 100, 105, 102, 10, 45, 122, 111, 111, 109, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 48, 44, 36, 52, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 95, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 58, 10, 45, 98, 32, 36, 49, 44, 36, 52, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 121, 32, 45, 98, 32, 36, 50, 44, 36, 52, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 98, 32, 36, 51, 44, 36, 52, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 108, 111, 119, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 36, 49, 44, 123, 36, 50, 42, 36, 49, 47, 49, 48, 48, 125, 44, 36, 51, 44, 36, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 108, 111, 109, 111, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 44, 123, 49, 48, 48, 45, 36, 49, 125, 37, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 10, 45, 115, 32, 99, 10, 45, 102, 91, 48, 93, 32, 39, 50, 53, 53, 42, 97, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 49, 50, 56, 41, 39, 10, 45, 102, 91, 49, 93, 32, 39, 50, 53, 53, 42, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 49, 50, 56, 41, 39, 10, 45, 102, 91, 50, 93, 32, 39, 50, 53, 53, 42, 97, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 50, 53, 53, 41, 39, 10, 45, 97, 32, 99, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 111, 109, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 111, 109, 111, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 36, 52, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 112, 114, 101, 97, 100, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 114, 32, 36, 49, 37, 44, 36, 49, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 50, 32, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 99, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 51, 44, 49, 44, 49, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 58, 10, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 34, 36, 49, 34, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 54, 44, 36, 53, 10, 95, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 91, 45, 49, 93, 32, 45, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 50, 44, 123, 49, 46, 53, 42, 36, 50, 125, 32, 45, 100, 111, 110, 101, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 95, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 36, 123, 49, 45, 51, 125, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 44, 50, 53, 53, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 100, 101, 98, 108, 117, 114, 32, 36, 123, 49, 45, 53, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 55, 44, 36, 56, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 58, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 45, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 36, 42, 32, 45, 105, 102, 32, 36, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 34, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 52, 44, 36, 53, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 92, 34, 44, 36, 54, 44, 36, 55, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 58, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 45, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 36, 42, 32, 45, 105, 102, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 55, 44, 36, 56, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 56, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 32, 45, 99, 91, 45, 50, 93, 32, 45, 49, 48, 48, 37, 44, 48, 32, 45, 42, 91, 45, 50, 93, 32, 36, 54, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 34, 44, 36, 49, 48, 44, 48, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 97, 112, 120, 95, 49, 48, 48, 44, 97, 103, 102, 97, 95, 97, 112, 120, 95, 50, 53, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 97, 99, 114, 111, 115, 95, 49, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 49, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 52, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 102, 112, 52, 95, 112, 108, 117, 115, 95, 49, 50, 53, 44, 92, 10, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 112, 108, 117, 115, 95, 52, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 104, 112, 115, 95, 56, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 112, 97, 110, 95, 102, 95, 112, 108, 117, 115, 95, 53, 48, 44, 105, 108, 102, 111, 114, 100, 95, 120, 112, 50, 44, 107, 111, 100, 97, 107, 95, 98, 119, 95, 52, 48, 48, 95, 99, 110, 44, 107, 111, 100, 97, 107, 95, 104, 105, 101, 95, 40, 104, 115, 95, 105, 110, 102, 114, 97, 41, 44, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 51, 50, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 52, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 55, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 55, 50, 44, 114, 111, 108, 108, 101, 105, 95, 105, 114, 95, 52, 48, 48, 44, 114, 111, 108, 108, 101, 105, 95, 111, 114, 116, 104, 111, 95, 50, 53, 44, 114, 111, 108, 108, 101, 105, 95, 114, 101, 116, 114, 111, 95, 49, 48, 48, 95, 116, 111, 110, 97, 108, 44, 114, 111, 108, 108, 101, 105, 95, 114, 101, 116, 114, 111, 95, 56, 48, 115, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 43, 95, 97, 108, 116, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 95, 97, 108, 116, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 95, 97, 108, 116, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 104, 99, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 101, 97, 114, 108, 121, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 104, 99, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 117, 108, 116, 114, 97, 95, 99, 111, 108, 111, 114, 95, 49, 48, 48, 44, 97, 103, 102, 97, 95, 118, 105, 115, 116, 97, 95, 50, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 50, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 104, 103, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 114, 101, 97, 108, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 120, 45, 116, 114, 97, 95, 56, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 49, 48, 48, 95, 120, 112, 114, 111, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 111, 108, 111, 114, 95, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 111, 108, 111, 114, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 44, 108, 111, 109, 111, 103, 114, 97, 112, 104, 121, 95, 114, 101, 100, 115, 99, 97, 108, 101, 95, 49, 48, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 123, 109, 97, 120, 40, 49, 44, 52, 42, 36, 49, 43, 36, 50, 45, 51, 41, 125, 44, 92, 10, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 45, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 43, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 45, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 43, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 45, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 43, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 45, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 43, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 123, 109, 97, 120, 40, 49, 44, 52, 42, 36, 49, 43, 36, 50, 45, 51, 41, 125, 44, 92, 10, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 54, 48, 115, 44, 54, 48, 115, 95, 50, 44, 54, 48, 115, 95, 51, 44, 104, 107, 102, 105, 108, 109, 44, 108, 111, 109, 111, 44, 110, 111, 115, 116, 97, 108, 103, 105, 99, 44, 114, 101, 116, 114, 111, 44, 115, 117, 116, 114, 111, 102, 120, 44, 118, 105, 110, 116, 97, 103, 101, 44, 118, 105, 110, 116, 97, 103, 101, 95, 50, 44, 119, 97, 114, 109, 44, 119, 97, 114, 109, 95, 115, 112, 114, 105, 110, 103, 44, 119, 97, 114, 109, 95, 121, 101, 108, 108, 111, 119, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 58, 10, 45, 105, 102, 32, 36, 49, 10, 45, 105, 102, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 32, 45, 105, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 115, 101, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 100, 97, 116, 97, 95, 102, 105, 108, 109, 95, 112, 114, 101, 115, 101, 116, 115, 47, 36, 50, 46, 99, 105, 109, 103, 122, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 95, 99, 108, 117, 116, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 36, 51, 10, 45, 45, 91, 48, 93, 32, 49, 50, 56, 32, 45, 42, 91, 48, 93, 32, 36, 52, 32, 45, 43, 91, 48, 93, 32, 49, 50, 56, 32, 45, 43, 91, 48, 93, 32, 36, 53, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 54, 124, 124, 36, 55, 33, 61, 49, 124, 124, 36, 56, 125, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 54, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 36, 56, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 112, 114, 101, 99, 105, 115, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 97, 115, 116, 105, 97, 95, 49, 48, 48, 102, 44, 102, 117, 106, 105, 95, 102, 112, 95, 49, 48, 48, 99, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 49, 48, 48, 102, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 52, 48, 48, 102, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 52, 48, 48, 120, 44, 102, 117, 106, 105, 95, 115, 101, 110, 115, 105, 97, 95, 49, 48, 48, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 50, 48, 48, 95, 120, 112, 114, 111, 44, 102, 117, 106, 105, 95, 118, 101, 108, 118, 105, 97, 95, 53, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 97, 115, 116, 105, 97, 95, 49, 48, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 49, 48, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 118, 101, 108, 118, 105, 97, 95, 49, 48, 48, 44, 92, 10, 103, 101, 110, 101, 114, 105, 99, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 54, 52, 44, 103, 101, 110, 101, 114, 105, 99, 95, 107, 111, 100, 97, 107, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 95, 118, 115, 44, 107, 111, 100, 97, 107, 95, 101, 45, 49, 48, 48, 95, 103, 120, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 95, 118, 115, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 104, 114, 111, 109, 101, 95, 50, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 104, 114, 111, 109, 101, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 101, 120, 116, 114, 97, 99, 111, 108, 111, 114, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 50, 53, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 54, 52, 44, 108, 111, 109, 111, 103, 114, 97, 112, 104, 121, 95, 120, 45, 112, 114, 111, 95, 115, 108, 105, 100, 101, 95, 50, 48, 48, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 111, 108, 97, 99, 104, 114, 111, 109, 101, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 120, 39, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 57, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 104, 47, 49, 48, 48, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 51, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 52, 42, 104, 47, 49, 48, 48, 41, 125, 10, 120, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 53, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 54, 42, 104, 47, 49, 48, 48, 41, 125, 32, 120, 51, 61, 123, 114, 111, 117, 110, 100, 40, 36, 55, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 51, 61, 123, 114, 111, 117, 110, 100, 40, 36, 56, 42, 104, 47, 49, 48, 48, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 45, 51, 50, 55, 54, 55, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 120, 51, 44, 36, 121, 51, 44, 49, 44, 45, 54, 53, 53, 51, 53, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 120, 48, 51, 61, 36, 120, 48, 43, 40, 121, 45, 36, 121, 48, 41, 47, 40, 36, 121, 51, 45, 36, 121, 48, 41, 42, 40, 36, 120, 51, 45, 36, 120, 48, 41, 59, 120, 49, 50, 61, 36, 120, 49, 43, 40, 121, 45, 36, 121, 49, 41, 47, 40, 36, 121, 50, 45, 36, 121, 49, 41, 42, 40, 36, 120, 50, 45, 36, 120, 49, 41, 59, 40, 120, 45, 120, 48, 51, 41, 47, 40, 120, 49, 50, 45, 120, 48, 51, 41, 42, 40, 119, 45, 49, 41, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 121, 48, 49, 61, 36, 121, 48, 43, 40, 120, 45, 36, 120, 48, 41, 47, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 40, 36, 121, 49, 45, 36, 121, 48, 41, 59, 121, 51, 50, 61, 36, 121, 51, 43, 40, 120, 45, 36, 120, 51, 41, 47, 40, 36, 120, 50, 45, 36, 120, 51, 41, 42, 40, 36, 121, 50, 45, 36, 121, 51, 41, 59, 40, 121, 45, 121, 48, 49, 41, 47, 40, 121, 51, 50, 45, 121, 48, 49, 41, 42, 40, 104, 45, 49, 41, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 120, 115, 104, 105, 102, 116, 61, 123, 119, 42, 36, 49, 48, 47, 49, 48, 48, 125, 32, 121, 115, 104, 105, 102, 116, 61, 123, 104, 42, 36, 49, 49, 47, 49, 48, 48, 125, 32, 97, 108, 112, 104, 97, 61, 123, 45, 36, 49, 50, 42, 112, 105, 47, 49, 56, 48, 125, 32, 99, 97, 61, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 47, 36, 49, 51, 125, 32, 115, 97, 61, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 47, 36, 49, 51, 125, 32, 119, 50, 61, 123, 119, 47, 50, 125, 32, 104, 50, 61, 123, 104, 47, 50, 125, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 105, 44, 88, 61, 105, 40, 120, 44, 121, 44, 48, 44, 48, 41, 45, 36, 119, 50, 59, 89, 61, 105, 40, 120, 44, 121, 44, 48, 44, 49, 41, 45, 36, 104, 50, 59, 105, 102, 40, 99, 61, 61, 48, 44, 36, 119, 50, 45, 36, 120, 115, 104, 105, 102, 116, 43, 88, 42, 36, 99, 97, 45, 89, 42, 36, 115, 97, 44, 36, 104, 50, 45, 36, 121, 115, 104, 105, 102, 116, 43, 88, 42, 36, 115, 97, 43, 89, 42, 36, 99, 97, 41, 41, 39, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 48, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 119, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 52, 61, 61, 50, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 104, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 119, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 104, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 54, 60, 50, 125, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 36, 49, 54, 61, 61, 48, 125, 44, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 49, 53, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 51, 125, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 32, 36, 42, 32, 45, 101, 108, 115, 101, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 56, 37, 44, 48, 46, 51, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 56, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 53, 37, 44, 36, 54, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 53, 37, 44, 36, 54, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 55, 37, 44, 36, 56, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 55, 37, 44, 36, 56, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 42, 36, 49, 47, 50, 48, 48, 125, 44, 123, 104, 42, 36, 50, 47, 50, 48, 48, 125, 41, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 50, 93, 32, 64, 45, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 105, 102, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 116, 111, 95, 97, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 36, 50, 44, 36, 52, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 122, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 51, 37, 44, 36, 50, 37, 44, 36, 52, 37, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 36, 49, 49, 44, 36, 49, 49, 44, 36, 123, 49, 50, 45, 49, 53, 125, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 36, 53, 37, 44, 36, 54, 37, 44, 36, 123, 55, 45, 49, 48, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 58, 10, 45, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 36, 123, 49, 45, 56, 125, 10, 45, 105, 102, 32, 36, 57, 32, 45, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 36, 49, 44, 123, 109, 105, 110, 40, 57, 57, 44, 36, 49, 43, 36, 57, 41, 125, 44, 36, 51, 44, 36, 49, 48, 44, 36, 49, 49, 37, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 111, 108, 100, 95, 112, 104, 111, 116, 111, 32, 58, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 49, 45, 51, 125, 32, 45, 111, 108, 100, 95, 112, 104, 111, 116, 111, 10, 103, 105, 109, 112, 95, 112, 111, 108, 97, 114, 111, 105, 100, 32, 58, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 55, 45, 57, 125, 32, 45, 112, 111, 108, 97, 114, 111, 105, 100, 32, 36, 49, 44, 36, 50, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 54, 44, 49, 44, 48, 10, 103, 105, 109, 112, 95, 116, 117, 110, 110, 101, 108, 32, 58, 10, 45, 116, 117, 110, 110, 101, 108, 32, 36, 49, 44, 36, 50, 37, 44, 36, 123, 51, 45, 54, 125, 10, 103, 105, 109, 112, 95, 118, 105, 103, 110, 101, 116, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 61, 91, 45, 49, 93, 32, 48, 32, 45, 118, 105, 103, 110, 101, 116, 116, 101, 91, 45, 49, 93, 32, 36, 123, 49, 45, 51, 125, 32, 45, 97, 32, 99, 32, 45, 45, 102, 99, 32, 36, 123, 52, 45, 55, 125, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 95, 97, 108, 108, 32, 58, 10, 45, 105, 102, 32, 64, 35, 10, 78, 61, 64, 35, 32, 45, 43, 32, 45, 47, 32, 36, 78, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 32, 58, 10, 109, 111, 100, 101, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 49, 44, 97, 100, 100, 44, 97, 108, 112, 104, 97, 44, 97, 110, 100, 44, 97, 118, 101, 114, 97, 103, 101, 44, 98, 108, 117, 101, 44, 98, 117, 114, 110, 44, 100, 97, 114, 107, 101, 110, 44, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 92, 10, 100, 105, 118, 105, 100, 101, 44, 100, 111, 100, 103, 101, 44, 101, 120, 99, 108, 117, 115, 105, 111, 110, 44, 102, 114, 101, 101, 122, 101, 44, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 44, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 103, 114, 101, 101, 110, 44, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 92, 10, 104, 97, 114, 100, 109, 105, 120, 44, 104, 117, 101, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 108, 105, 103, 104, 116, 101, 110, 44, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 44, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 44, 108, 117, 109, 105, 110, 97, 110, 99, 101, 44, 92, 10, 109, 117, 108, 116, 105, 112, 108, 121, 44, 110, 101, 103, 97, 116, 105, 111, 110, 44, 111, 114, 44, 111, 118, 101, 114, 108, 97, 121, 44, 112, 105, 110, 108, 105, 103, 104, 116, 44, 114, 101, 100, 44, 114, 101, 102, 108, 101, 99, 116, 44, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 92, 10, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 44, 115, 111, 102, 116, 98, 117, 114, 110, 44, 115, 111, 102, 116, 100, 111, 100, 103, 101, 44, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 115, 99, 114, 101, 101, 110, 44, 115, 116, 97, 109, 112, 44, 115, 117, 98, 116, 114, 97, 99, 116, 44, 118, 97, 108, 117, 101, 44, 92, 10, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 44, 120, 111, 114, 125, 10, 45, 98, 108, 101, 110, 100, 32, 36, 109, 111, 100, 101, 44, 36, 50, 44, 123, 49, 45, 36, 51, 125, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 32, 45, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 44, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 52, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 36, 49, 48, 34, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 36, 49, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 123, 45, 40, 64, 35, 45, 50, 41, 42, 36, 51, 125, 44, 123, 40, 64, 35, 45, 50, 41, 42, 40, 49, 43, 36, 51, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 123, 36, 50, 42, 40, 49, 43, 36, 51, 41, 42, 40, 64, 35, 45, 50, 41, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 118, 91, 94, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 49, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 97, 61, 36, 49, 42, 112, 105, 47, 50, 59, 32, 120, 42, 99, 111, 115, 40, 97, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 97, 41, 34, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 50, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 51, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 48, 46, 48, 49, 43, 36, 51, 47, 50, 125, 32, 45, 99, 111, 115, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 52, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 40, 40, 120, 45, 119, 42, 40, 36, 49, 43, 48, 46, 53, 41, 41, 42, 40, 121, 45, 104, 42, 40, 36, 50, 43, 48, 46, 53, 41, 41, 41, 37, 40, 48, 46, 50, 42, 119, 42, 104, 42, 40, 49, 46, 48, 48, 49, 43, 36, 51, 41, 41, 34, 10, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 52, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 49, 32, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 36, 50, 44, 48, 46, 49, 44, 36, 51, 10, 45, 101, 108, 115, 101, 32, 40, 36, 50, 41, 32, 45, 42, 91, 45, 49, 93, 32, 51, 32, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 91, 94, 45, 49, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 32, 36, 49, 44, 36, 50, 44, 48, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 48, 46, 49, 10, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 114, 118, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 122, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 40, 100, 45, 49, 41, 42, 36, 49, 43, 49, 125, 44, 49, 48, 48, 37, 44, 51, 32, 45, 115, 32, 122, 10, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 43, 32, 45, 47, 32, 50, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 32, 58, 10, 45, 105, 102, 32, 36, 123, 52, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 109, 111, 114, 112, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 103, 105, 109, 112, 95, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 107, 91, 53, 48, 37, 93, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 36, 49, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 95, 100, 105, 102, 102, 32, 58, 10, 45, 105, 102, 32, 36, 123, 53, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 105, 102, 32, 36, 51, 10, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 50, 93, 32, 45, 98, 91, 45, 50, 93, 32, 36, 50, 37, 32, 45, 103, 101, 91, 45, 50, 93, 32, 36, 49, 37, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 37, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 116, 111, 110, 101, 115, 32, 36, 49, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 42, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 32, 36, 49, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 95, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 110, 111, 114, 109, 10, 45, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 91, 45, 49, 93, 32, 48, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 104, 45, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 36, 119, 45, 119, 41, 47, 50, 125, 44, 123, 40, 36, 104, 45, 104, 41, 47, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 91, 45, 49, 93, 32, 49, 10, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 44, 36, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 36, 123, 49, 45, 51, 125, 34, 44, 36, 52, 44, 49, 10, 103, 105, 109, 112, 95, 98, 117, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 49, 93, 32, 36, 49, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 36, 51, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 58, 10, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 123, 50, 53, 53, 42, 36, 53, 125, 44, 56, 48, 44, 57, 53, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 54, 44, 49, 44, 48, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 10, 45, 101, 108, 115, 101, 32, 45, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 58, 10, 45, 112, 111, 105, 110, 116, 51, 100, 32, 48, 44, 48, 44, 49, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 51, 10, 117, 61, 123, 105, 40, 48, 44, 56, 41, 125, 32, 118, 61, 123, 105, 40, 48, 44, 57, 41, 125, 32, 119, 61, 123, 105, 40, 48, 44, 49, 48, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 97, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 45, 105, 102, 32, 123, 105, 109, 61, 61, 105, 77, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 32, 39, 88, 61, 120, 47, 119, 45, 48, 46, 53, 59, 89, 61, 121, 47, 104, 45, 48, 46, 53, 59, 65, 61, 40, 36, 55, 45, 36, 52, 42, 36, 55, 47, 49, 48, 48, 41, 42, 36, 119, 47, 40, 88, 42, 36, 117, 43, 89, 42, 36, 118, 43, 36, 55, 42, 36, 119, 41, 59, 105, 102, 40, 65, 60, 48, 44, 49, 101, 56, 44, 65, 41, 39, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 121, 47, 104, 45, 48, 46, 53, 39, 32, 45, 42, 91, 45, 50, 93, 32, 39, 120, 47, 119, 45, 48, 46, 53, 39, 32, 45, 43, 91, 45, 50, 93, 32, 123, 48, 46, 53, 45, 36, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 49, 93, 32, 123, 48, 46, 53, 45, 36, 54, 47, 49, 48, 48, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 32, 36, 56, 37, 32, 45, 110, 32, 48, 44, 36, 49, 50, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 57, 94, 36, 49, 48, 94, 36, 49, 49, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 98, 108, 101, 110, 100, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 32, 36, 49, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 58, 10, 109, 111, 100, 101, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 98, 117, 114, 110, 44, 100, 111, 100, 103, 101, 44, 102, 114, 101, 101, 122, 101, 44, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 108, 105, 103, 104, 116, 101, 110, 44, 109, 117, 108, 116, 105, 112, 108, 121, 44, 111, 118, 101, 114, 108, 97, 121, 44, 114, 101, 102, 108, 101, 99, 116, 44, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 115, 116, 97, 109, 112, 44, 118, 97, 108, 117, 101, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 101, 110, 100, 32, 36, 109, 111, 100, 101, 44, 36, 49, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 34, 44, 36, 52, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 58, 10, 45, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 36, 123, 49, 45, 53, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 123, 64, 123, 36, 62, 44, 115, 125, 43, 40, 64, 123, 36, 62, 44, 115, 125, 37, 50, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 58, 10, 45, 98, 32, 36, 49, 49, 37, 32, 45, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 36, 123, 49, 45, 49, 48, 125, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 58, 10, 45, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 36, 123, 49, 45, 51, 125, 44, 51, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 36, 123, 49, 45, 51, 125, 44, 49, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 52, 10, 40, 123, 99, 111, 115, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 40, 123, 99, 111, 115, 40, 36, 54, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 54, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 36, 55, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 115, 101, 10, 40, 123, 99, 111, 115, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 99, 114, 97, 99, 107, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 111, 116, 115, 32, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 54, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 32, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 42, 91, 48, 93, 32, 45, 49, 32, 45, 43, 91, 48, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 100, 111, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 49, 50, 56, 32, 45, 43, 32, 36, 51, 32, 45, 98, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 104, 97, 108, 102, 116, 111, 110, 101, 91, 48, 93, 32, 36, 123, 53, 45, 57, 125, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 104, 101, 97, 114, 116, 115, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 32, 58, 10, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 49, 54, 45, 36, 49, 125, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 50, 44, 48, 44, 49, 44, 36, 51, 44, 36, 51, 44, 48, 46, 56, 44, 57, 48, 32, 45, 42, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 109, 97, 112, 32, 51, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 97, 118, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 97, 114, 98, 108, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 109, 97, 114, 98, 108, 101, 32, 36, 49, 47, 49, 48, 44, 36, 50, 47, 49, 48, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 37, 44, 36, 49, 48, 37, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 100, 116, 95, 109, 105, 110, 101, 114, 97, 108, 95, 109, 111, 115, 97, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 98, 32, 36, 51, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 97, 114, 101, 97, 91, 45, 49, 93, 32, 48, 32, 45, 45, 108, 101, 91, 45, 49, 93, 32, 123, 36, 50, 94, 50, 125, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 10, 45, 45, 102, 91, 48, 93, 32, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 121, 41, 39, 32, 45, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 49, 44, 49, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 48, 44, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 97, 108, 112, 104, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 52, 44, 36, 52, 10, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 111, 115, 97, 105, 99, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 54, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 77, 97, 115, 107, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 116, 119, 111, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 33, 32, 40, 112, 108, 101, 97, 115, 101, 32, 99, 104, 101, 99, 107, 32, 116, 104, 97, 116, 32, 39, 73, 110, 112, 117, 116, 32, 76, 97, 121, 101, 114, 115, 39, 32, 105, 115, 32, 99, 111, 114, 114, 101, 99, 116, 108, 121, 32, 115, 101, 116, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 91, 48, 45, 45, 50, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 45, 52, 44, 48, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 91, 48, 45, 45, 50, 93, 32, 36, 123, 49, 45, 53, 125, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 32, 45, 105, 91, 48, 93, 32, 36, 55, 44, 36, 56, 44, 49, 44, 53, 32, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 36, 123, 49, 45, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 115, 45, 50, 125, 10, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 34, 44, 36, 49, 44, 48, 10, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 108, 97, 105, 100, 95, 116, 101, 120, 116, 117, 114, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 45, 114, 111, 119, 115, 32, 36, 49, 37, 10, 45, 98, 32, 36, 53, 37, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 54, 10, 45, 114, 101, 115, 105, 122, 101, 32, 36, 119, 44, 36, 104, 44, 49, 44, 36, 115, 44, 50, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 36, 51, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 36, 51, 43, 36, 52, 42, 40, 36, 62, 43, 49, 41, 47, 40, 36, 50, 45, 49, 41, 125, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 47, 32, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 112, 111, 110, 103, 101, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 52, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 54, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 56, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 115, 116, 101, 110, 99, 105, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 115, 116, 101, 110, 99, 105, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 109, 111, 111, 116, 104, 32, 123, 51, 48, 42, 36, 52, 125, 44, 48, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 116, 101, 116, 114, 105, 115, 32, 58, 10, 45, 116, 101, 116, 114, 105, 115, 32, 36, 49, 10, 103, 105, 109, 112, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 36, 123, 94, 48, 125, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 119, 104, 105, 114, 108, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 10, 45, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 94, 48, 125, 10, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 32, 58, 10, 45, 105, 102, 32, 36, 55, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 48, 44, 36, 123, 56, 45, 49, 49, 125, 32, 45, 114, 118, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 37, 44, 36, 54, 37, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 49, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 48, 93, 32, 53, 48, 37, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 37, 44, 36, 54, 37, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 102, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 32, 36, 123, 94, 48, 125, 10, 45, 105, 102, 32, 123, 33, 36, 55, 34, 32, 38, 38, 32, 34, 64, 35, 62, 49, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 114, 101, 112, 97, 105, 114, 32, 58, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 48, 44, 36, 123, 49, 48, 45, 49, 51, 125, 10, 45, 114, 101, 112, 97, 105, 114, 91, 48, 93, 32, 91, 49, 93, 44, 36, 49, 44, 123, 36, 49, 42, 36, 50, 125, 44, 36, 123, 51, 45, 56, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 48, 93, 32, 53, 48, 37, 10, 45, 114, 101, 112, 97, 105, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 36, 49, 44, 123, 36, 49, 42, 36, 50, 125, 44, 36, 123, 51, 45, 56, 125, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 102, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 115, 111, 108, 105, 100, 105, 102, 121, 10, 45, 101, 108, 115, 101, 32, 45, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 36, 50, 44, 36, 51, 44, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 51, 61, 48, 125, 44, 36, 123, 49, 52, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 49, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 49, 51, 44, 36, 49, 52, 34, 44, 36, 49, 50, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 36, 49, 44, 36, 50, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 115, 109, 111, 111, 116, 104, 32, 36, 54, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 56, 44, 36, 57, 34, 44, 36, 55, 44, 48, 10, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 49, 44, 36, 51, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 57, 44, 36, 49, 48, 34, 44, 36, 56, 44, 48, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 54, 44, 36, 55, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 116, 118, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 49, 44, 36, 51, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 32, 36, 49, 44, 36, 51, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 119, 60, 64, 123, 45, 50, 44, 119, 125, 124, 124, 104, 60, 64, 123, 45, 50, 44, 104, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 52, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 68, 111, 119, 110, 115, 99, 97, 108, 105, 110, 103, 32, 105, 115, 92, 110, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 33, 34, 44, 53, 44, 53, 44, 50, 48, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 122, 91, 45, 50, 93, 32, 123, 53, 48, 45, 53, 48, 42, 64, 123, 45, 50, 44, 119, 125, 47, 119, 125, 37, 44, 123, 53, 48, 45, 53, 48, 42, 64, 123, 45, 50, 44, 104, 125, 47, 104, 125, 37, 44, 123, 53, 48, 43, 53, 48, 42, 64, 123, 45, 50, 44, 119, 125, 47, 119, 125, 37, 44, 123, 53, 48, 43, 53, 48, 42, 64, 123, 45, 50, 44, 104, 125, 47, 104, 125, 37, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 114, 111, 117, 110, 100, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 48, 93, 32, 45, 114, 111, 117, 110, 100, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 122, 32, 52, 48, 37, 44, 52, 48, 37, 44, 54, 48, 37, 44, 54, 48, 37, 10, 45, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 58, 10, 45, 110, 51, 100, 32, 45, 99, 51, 100, 32, 45, 109, 51, 100, 32, 36, 49, 51, 32, 102, 51, 100, 61, 123, 48, 46, 53, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 47, 116, 97, 110, 40, 36, 55, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 102, 51, 100, 32, 36, 102, 51, 100, 32, 45, 108, 51, 100, 32, 123, 36, 56, 42, 36, 102, 51, 100, 125, 44, 123, 36, 57, 42, 36, 102, 51, 100, 125, 44, 123, 36, 49, 48, 42, 36, 102, 51, 100, 125, 32, 45, 115, 108, 51, 100, 32, 36, 49, 49, 32, 45, 115, 115, 51, 100, 32, 36, 49, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 42, 51, 100, 32, 123, 36, 51, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 45, 114, 51, 100, 32, 48, 44, 48, 44, 49, 44, 36, 54, 32, 45, 114, 51, 100, 32, 48, 44, 49, 44, 48, 44, 36, 53, 32, 45, 114, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 52, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 36, 49, 36, 50, 32, 36, 123, 54, 45, 56, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 36, 123, 51, 45, 53, 125, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 123, 49, 45, 52, 44, 54, 45, 56, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 44, 36, 54, 44, 36, 123, 57, 45, 45, 49, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 53, 47, 50, 53, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 36, 62, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 123, 49, 45, 52, 44, 54, 45, 56, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 44, 36, 54, 44, 36, 123, 57, 45, 45, 49, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 53, 47, 50, 53, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 36, 62, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 48, 32, 58, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 49, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 50, 32, 58, 32, 45, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 49, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 51, 125, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 123, 36, 50, 47, 50, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 50, 52, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 51, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 49, 50, 56, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 48, 32, 58, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 49, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 50, 32, 58, 32, 45, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 49, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 51, 125, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 123, 36, 50, 47, 50, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 56, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 49, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 54, 52, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 45, 110, 111, 114, 109, 32, 45, 101, 108, 115, 101, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 49, 93, 32, 48, 44, 36, 49, 32, 45, 98, 91, 49, 93, 32, 36, 50, 10, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 48, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 49, 10, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 49, 45, 50, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 49, 45, 50, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 53, 45, 45, 49, 125, 10, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 101, 120, 116, 114, 117, 100, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 49, 45, 51, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 52, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 49, 45, 51, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 36, 49, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 123, 52, 45, 45, 49, 125, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 48, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 49, 32, 58, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 50, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 51, 32, 58, 32, 45, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 54, 52, 44, 51, 50, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 50, 52, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 51, 50, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 49, 50, 56, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 56, 32, 58, 32, 45, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 53, 44, 53, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 48, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 49, 32, 58, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 50, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 51, 32, 58, 32, 45, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 54, 44, 56, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 56, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 49, 50, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 54, 52, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 56, 32, 58, 32, 45, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 51, 44, 51, 44, 53, 44, 53, 10, 95, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 108, 97, 116, 104, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 37, 44, 36, 51, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 36, 123, 49, 45, 51, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 52, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 36, 123, 49, 45, 51, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 102, 51, 100, 61, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 53, 42, 112, 105, 47, 51, 54, 48, 41, 125, 32, 45, 102, 51, 100, 32, 36, 102, 51, 100, 32, 45, 108, 51, 100, 32, 123, 36, 54, 42, 36, 102, 51, 100, 125, 44, 123, 36, 55, 42, 36, 102, 51, 100, 125, 44, 123, 36, 56, 42, 36, 102, 51, 100, 125, 32, 45, 115, 108, 51, 100, 32, 36, 57, 32, 45, 115, 115, 51, 100, 32, 36, 49, 48, 10, 45, 116, 111, 95, 114, 103, 98, 32, 40, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 40, 64, 123, 49, 44, 48, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 49, 44, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 51, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 36, 49, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 123, 63, 40, 48, 44, 51, 54, 48, 41, 125, 10, 40, 123, 63, 40, 45, 49, 44, 49, 41, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 49, 44, 48, 125, 32, 40, 123, 63, 40, 45, 49, 44, 49, 41, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 49, 44, 49, 125, 10, 45, 43, 51, 100, 91, 45, 51, 93, 32, 64, 45, 50, 44, 64, 45, 49, 44, 123, 63, 40, 45, 36, 52, 44, 36, 52, 41, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 50, 53, 53, 41, 125, 44, 123, 63, 40, 50, 53, 53, 41, 125, 44, 123, 63, 40, 50, 53, 53, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 50, 45, 45, 49, 93, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 36, 49, 50, 44, 36, 49, 49, 44, 48, 44, 49, 10, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 48, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 36, 49, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 49, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 99, 111, 110, 101, 51, 100, 32, 64, 45, 49, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 50, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 64, 45, 49, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 36, 49, 44, 50, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 52, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 51, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 64, 45, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 116, 105, 111, 110, 95, 112, 108, 111, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 52, 44, 49, 44, 49, 44, 36, 53, 44, 34, 88, 61, 36, 50, 43, 40, 36, 51, 45, 36, 50, 41, 42, 120, 47, 40, 36, 52, 45, 49, 41, 59, 36, 49, 34, 10, 45, 100, 103, 32, 36, 119, 44, 36, 104, 44, 36, 54, 44, 36, 55, 44, 36, 50, 44, 36, 51, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 44, 36, 53, 59, 36, 57, 44, 36, 49, 51, 94, 36, 50, 44, 36, 54, 59, 36, 49, 48, 44, 36, 49, 52, 94, 36, 51, 44, 36, 55, 59, 36, 49, 49, 44, 36, 49, 53, 94, 36, 52, 44, 36, 56, 59, 36, 49, 50, 44, 36, 49, 54, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 45, 50, 44, 49, 44, 52, 44, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 10, 45, 105, 102, 32, 36, 57, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 45, 51, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 10, 45, 105, 102, 32, 36, 57, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 45, 51, 32, 45, 114, 109, 91, 45, 51, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 49, 50, 37, 44, 36, 49, 51, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 123, 119, 125, 44, 123, 104, 125, 10, 45, 102, 51, 100, 32, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 36, 49, 44, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 57, 44, 36, 55, 44, 36, 49, 48, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 49, 51, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 49, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 49, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 53, 42, 36, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 48, 46, 53, 42, 36, 51, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 123, 48, 46, 53, 42, 36, 52, 42, 109, 97, 120, 40, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 41, 125, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 52, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 10, 40, 48, 94, 48, 94, 48, 41, 32, 40, 36, 56, 94, 36, 57, 94, 36, 49, 48, 41, 32, 40, 36, 49, 49, 94, 36, 49, 50, 94, 36, 49, 51, 41, 32, 40, 36, 49, 52, 94, 36, 49, 53, 94, 36, 49, 54, 41, 32, 40, 36, 49, 55, 94, 36, 49, 56, 94, 36, 49, 57, 41, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 52, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 36, 119, 104, 10, 45, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 91, 45, 49, 93, 32, 123, 36, 49, 45, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 50, 45, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 49, 43, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 50, 43, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 36, 52, 44, 36, 53, 44, 123, 105, 102, 40, 36, 53, 44, 36, 54, 44, 48, 41, 125, 44, 123, 105, 102, 40, 36, 53, 44, 36, 55, 44, 48, 41, 125, 10, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 48, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 36, 123, 94, 48, 125, 10, 45, 108, 105, 110, 101, 32, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 44, 48, 46, 53, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 48, 46, 53, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 109, 97, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 122, 101, 95, 109, 97, 115, 107, 91, 45, 49, 93, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 108, 115, 101, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 97, 110, 100, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 108, 97, 115, 109, 97, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 123, 36, 49, 42, 36, 50, 47, 49, 48, 48, 125, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 113, 117, 105, 99, 107, 95, 99, 111, 112, 121, 114, 105, 103, 104, 116, 32, 58, 10, 45, 105, 91, 48, 93, 32, 48, 32, 45, 116, 91, 48, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 48, 32, 45, 114, 91, 48, 93, 32, 123, 64, 123, 48, 44, 119, 125, 43, 50, 42, 36, 55, 125, 44, 123, 64, 123, 48, 44, 104, 125, 43, 50, 42, 36, 55, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 91, 49, 93, 32, 48, 32, 45, 116, 91, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 49, 93, 32, 48, 32, 45, 114, 91, 49, 93, 32, 123, 64, 123, 49, 44, 119, 125, 43, 50, 42, 36, 55, 125, 44, 123, 64, 123, 49, 44, 104, 125, 43, 50, 42, 36, 55, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 108, 97, 116, 101, 91, 49, 93, 32, 123, 49, 43, 50, 42, 36, 55, 125, 10, 45, 114, 111, 116, 97, 116, 101, 91, 48, 44, 49, 93, 32, 123, 57, 48, 42, 40, 36, 49, 48, 45, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 57, 44, 36, 57, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 119, 45, 49, 45, 64, 123, 48, 44, 119, 125, 45, 36, 57, 125, 44, 36, 57, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 57, 44, 123, 104, 45, 49, 45, 64, 123, 48, 44, 104, 125, 45, 36, 57, 125, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 119, 45, 49, 45, 64, 123, 48, 44, 119, 125, 45, 36, 57, 125, 44, 123, 104, 45, 49, 45, 64, 123, 48, 44, 104, 125, 45, 36, 57, 125, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 103, 105, 109, 112, 95, 114, 97, 105, 110, 98, 111, 119, 32, 58, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 48, 10, 45, 115, 112, 108, 105, 110, 101, 32, 48, 44, 36, 49, 37, 44, 49, 48, 48, 44, 123, 45, 36, 51, 125, 37, 44, 49, 48, 48, 37, 44, 36, 50, 37, 44, 49, 48, 48, 44, 36, 52, 37, 44, 50, 53, 54, 44, 49, 44, 49, 10, 45, 102, 108, 111, 111, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 32, 45, 102, 108, 111, 111, 100, 32, 123, 119, 45, 49, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 123, 36, 53, 42, 50, 53, 53, 125, 10, 45, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 109, 105, 110, 40, 49, 48, 48, 44, 50, 48, 48, 45, 36, 54, 41, 125, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 54, 60, 49, 48, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 54, 47, 49, 48, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 10, 45, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 37, 44, 36, 50, 32, 45, 42, 32, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 37, 44, 36, 50, 32, 45, 42, 32, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 45, 110, 111, 114, 109, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 101, 97, 109, 108, 101, 115, 115, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 10, 36, 119, 104, 44, 49, 44, 123, 105, 102, 40, 36, 54, 44, 51, 44, 49, 41, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 36, 119, 104, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 45, 36, 52, 42, 49, 48, 42, 112, 105, 125, 44, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 43, 36, 52, 42, 49, 48, 42, 112, 105, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 49, 51, 48, 37, 44, 49, 51, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 10, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 44, 48, 46, 53, 44, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 49, 125, 32, 105, 97, 61, 123, 105, 97, 125, 32, 45, 45, 32, 36, 105, 97, 32, 45, 42, 32, 36, 53, 32, 45, 43, 32, 36, 105, 97, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 32, 58, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 116, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 114, 61, 123, 36, 54, 43, 36, 53, 42, 99, 111, 115, 40, 54, 42, 36, 55, 42, 36, 116, 41, 43, 40, 49, 45, 36, 53, 41, 42, 115, 105, 110, 40, 54, 42, 36, 56, 42, 36, 116, 41, 125, 10, 97, 61, 123, 40, 51, 54, 48, 42, 115, 105, 110, 40, 36, 55, 42, 36, 116, 41, 43, 51, 48, 42, 36, 54, 42, 36, 62, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 97, 120, 61, 123, 50, 42, 36, 62, 42, 112, 105, 47, 36, 49, 43, 36, 116, 125, 10, 99, 120, 61, 123, 40, 49, 43, 36, 57, 42, 99, 111, 115, 40, 36, 97, 120, 41, 43, 36, 114, 42, 99, 111, 115, 40, 36, 97, 41, 41, 42, 119, 47, 50, 125, 10, 99, 121, 61, 123, 40, 49, 43, 36, 57, 42, 115, 105, 110, 40, 36, 97, 120, 41, 43, 36, 114, 42, 115, 105, 110, 40, 36, 97, 41, 41, 42, 104, 47, 50, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 120, 44, 36, 99, 121, 44, 36, 50, 37, 44, 36, 50, 37, 44, 48, 44, 45, 49, 44, 49, 10, 45, 100, 111, 110, 101, 10, 116, 61, 123, 36, 116, 43, 36, 52, 47, 49, 48, 48, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 110, 100, 32, 50, 53, 53, 32, 45, 105, 102, 32, 36, 49, 48, 32, 45, 109, 97, 112, 32, 123, 36, 49, 48, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 91, 45, 49, 93, 32, 36, 123, 49, 45, 55, 125, 10, 45, 45, 102, 99, 91, 45, 50, 93, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 123, 49, 45, 49, 49, 125, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 97, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 115, 116, 97, 114, 115, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 37, 44, 36, 123, 55, 45, 57, 125, 44, 123, 36, 49, 48, 47, 50, 53, 53, 125, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 123, 119, 125, 44, 123, 104, 125, 10, 45, 102, 51, 100, 32, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 36, 49, 44, 36, 123, 52, 45, 55, 125, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 49, 48, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 57, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 56, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 53, 42, 36, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 48, 46, 53, 42, 36, 51, 42, 64, 123, 45, 50, 44, 104, 125, 125, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 49, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 114, 117, 99, 104, 101, 116, 32, 58, 10, 45, 105, 102, 32, 36, 54, 32, 45, 116, 111, 95, 97, 32, 45, 101, 108, 115, 101, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 114, 117, 99, 104, 101, 116, 32, 36, 49, 44, 36, 50, 44, 36, 52, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 44, 49, 32, 123, 105, 77, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 36, 53, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 36, 53, 32, 119, 105, 100, 116, 104, 61, 36, 53, 32, 45, 101, 108, 115, 101, 32, 119, 105, 100, 116, 104, 61, 123, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 104, 101, 105, 103, 104, 116, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 101, 108, 115, 101, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 36, 49, 91, 45, 50, 93, 32, 36, 50, 32, 45, 36, 49, 91, 45, 49, 93, 32, 36, 51, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 119, 44, 64, 123, 45, 50, 44, 119, 125, 41, 125, 44, 123, 109, 97, 120, 40, 104, 44, 64, 123, 45, 50, 44, 104, 125, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 50, 93, 32, 48, 44, 53, 48, 37, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 100, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 83, 116, 97, 114, 116, 34, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 69, 110, 100, 34, 44, 123, 119, 45, 50, 51, 125, 44, 123, 104, 45, 49, 54, 125, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 53, 45, 54, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 55, 45, 56, 125, 44, 36, 123, 49, 48, 45, 49, 57, 125, 44, 36, 57, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 44, 36, 123, 50, 48, 45, 50, 57, 125, 44, 36, 57, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 53, 45, 54, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 48, 45, 49, 57, 125, 44, 36, 57, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 50, 48, 45, 50, 57, 125, 44, 36, 57, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 53, 45, 55, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 56, 45, 57, 125, 44, 36, 123, 49, 49, 45, 50, 48, 125, 44, 36, 49, 48, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 123, 50, 49, 45, 51, 48, 125, 44, 36, 49, 48, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 53, 45, 55, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 49, 45, 50, 48, 125, 44, 36, 49, 48, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 50, 49, 45, 51, 48, 125, 44, 36, 49, 48, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 53, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 123, 57, 45, 49, 56, 125, 44, 36, 56, 34, 44, 92, 10, 34, 36, 123, 54, 45, 55, 125, 44, 36, 123, 49, 57, 45, 50, 56, 125, 44, 36, 56, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 53, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 57, 45, 49, 56, 125, 44, 36, 56, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 57, 45, 50, 56, 125, 44, 36, 56, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 10, 87, 61, 123, 119, 125, 32, 72, 61, 123, 104, 125, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 125, 32, 45, 114, 109, 10, 45, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 34, 36, 50, 34, 44, 34, 36, 51, 34, 44, 36, 52, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 36, 123, 53, 45, 55, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 55, 42, 36, 77, 125, 10, 45, 102, 51, 100, 32, 52, 48, 48, 48, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 109, 51, 100, 32, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 54, 48, 42, 36, 62, 47, 36, 49, 125, 10, 97, 110, 103, 108, 101, 61, 123, 36, 62, 42, 51, 54, 48, 47, 36, 49, 125, 10, 45, 45, 114, 51, 100, 91, 48, 93, 32, 49, 44, 48, 44, 49, 44, 36, 97, 110, 103, 108, 101, 10, 36, 77, 44, 36, 77, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 122, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 49, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 32, 122, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 36, 49, 49, 32, 78, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 54, 48, 43, 52, 48, 42, 36, 62, 47, 36, 78, 125, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 48, 93, 32, 36, 123, 56, 45, 49, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 52, 37, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 36, 49, 50, 37, 44, 36, 49, 51, 37, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 87, 62, 36, 72, 125, 32, 45, 114, 50, 100, 120, 32, 36, 87, 32, 45, 101, 108, 115, 101, 32, 45, 114, 50, 100, 121, 32, 36, 72, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 62, 49, 125, 10, 45, 105, 91, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 93, 32, 91, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 93, 120, 123, 36, 49, 53, 45, 49, 125, 10, 45, 105, 91, 48, 93, 32, 91, 48, 93, 120, 123, 36, 49, 53, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 52, 44, 34, 36, 50, 34, 44, 34, 36, 51, 34, 44, 36, 52, 44, 36, 123, 53, 45, 55, 125, 44, 36, 123, 56, 45, 49, 49, 125, 44, 36, 123, 49, 50, 45, 49, 52, 125, 44, 49, 32, 45, 100, 114, 103, 98, 97, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 50, 44, 50, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 102, 51, 100, 32, 36, 55, 10, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 34, 36, 54, 34, 44, 36, 56, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 51, 100, 32, 36, 55, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 52, 44, 36, 50, 44, 36, 51, 44, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 34, 36, 54, 34, 44, 36, 56, 10, 45, 107, 91, 49, 44, 50, 93, 10, 45, 114, 91, 48, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 10, 45, 114, 91, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 10, 45, 97, 32, 120, 10, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 58, 10, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 54, 44, 36, 50, 44, 36, 51, 37, 32, 45, 107, 91, 49, 45, 45, 50, 93, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 112, 101, 110, 99, 105, 108, 98, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 112, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 112, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 99, 97, 114, 116, 111, 111, 110, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 99, 97, 114, 116, 111, 111, 110, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 99, 97, 114, 116, 111, 111, 110, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 100, 103, 101, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 53, 34, 10, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 36, 123, 49, 45, 55, 125, 32, 45, 114, 118, 10, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 49, 44, 36, 54, 44, 48, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 32, 58, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 40, 50, 53, 53, 59, 49, 48, 48, 94, 54, 52, 59, 49, 54, 94, 49, 50, 56, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 114, 32, 36, 52, 37, 44, 36, 52, 37, 44, 49, 44, 49, 44, 48, 32, 91, 45, 49, 93, 120, 123, 36, 49, 45, 49, 125, 32, 45, 114, 97, 110, 100, 91, 94, 48, 93, 32, 48, 44, 49, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 94, 48, 93, 32, 36, 53, 44, 48, 10, 45, 105, 102, 32, 36, 51, 32, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 111, 114, 112, 104, 91, 94, 48, 93, 32, 36, 50, 44, 36, 54, 44, 48, 10, 45, 115, 116, 101, 110, 99, 105, 108, 91, 94, 48, 93, 32, 36, 53, 44, 48, 10, 45, 114, 91, 94, 48, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 51, 32, 45, 98, 91, 94, 48, 93, 32, 49, 48, 32, 45, 103, 101, 91, 94, 48, 93, 32, 53, 48, 37, 32, 45, 42, 91, 94, 48, 93, 32, 50, 53, 53, 10, 45, 114, 91, 94, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 106, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 33, 36, 55, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 32, 50, 44, 50, 44, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 32, 45, 107, 91, 48, 93, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 34, 36, 123, 53, 45, 50, 50, 125, 34, 44, 92, 10, 34, 36, 123, 50, 51, 45, 52, 48, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 34, 36, 123, 53, 45, 50, 50, 125, 34, 44, 92, 10, 34, 36, 123, 50, 51, 45, 52, 48, 125, 34, 44, 48, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 109, 111, 114, 112, 104, 111, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 44, 34, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 92, 10, 34, 36, 53, 44, 36, 57, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 44, 34, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 92, 10, 34, 36, 53, 44, 36, 57, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 114, 111, 100, 105, 108, 105, 117, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 114, 111, 100, 105, 108, 105, 117, 115, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 114, 111, 100, 105, 108, 105, 117, 115, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 103, 108, 111, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 108, 111, 119, 44, 34, 36, 53, 34, 44, 92, 10, 34, 36, 54, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 108, 111, 119, 44, 34, 36, 53, 34, 44, 92, 10, 34, 36, 54, 34, 10, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 97, 110, 100, 112, 97, 115, 115, 32, 36, 49, 37, 44, 36, 50, 37, 34, 44, 36, 51, 44, 36, 52, 10, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 102, 102, 116, 56, 50, 102, 108, 111, 97, 116, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 102, 108, 111, 97, 116, 50, 102, 102, 116, 56, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 10, 45, 101, 108, 115, 101, 32, 45, 100, 102, 102, 116, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 34, 36, 49, 34, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 36, 49, 32, 45, 107, 91, 48, 44, 49, 93, 32, 45, 97, 32, 120, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 93, 32, 50, 32, 45, 43, 91, 45, 50, 93, 32, 49, 50, 56, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 45, 115, 107, 105, 112, 32, 44, 125, 34, 10, 45, 109, 32, 34, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 32, 58, 32, 36, 49, 34, 10, 45, 105, 102, 32, 123, 36, 51, 62, 48, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 34, 44, 36, 51, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 10, 45, 105, 102, 32, 36, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 45, 115, 107, 105, 112, 32, 44, 125, 34, 10, 95, 103, 99, 112, 95, 97, 114, 103, 61, 34, 36, 49, 34, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 36, 95, 103, 99, 112, 95, 97, 114, 103, 44, 36, 123, 50, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 10, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 58, 10, 103, 105, 109, 112, 95, 103, 112, 116, 32, 58, 10, 45, 103, 112, 116, 32, 44, 64, 123, 45, 95, 103, 105, 109, 112, 95, 103, 112, 116, 36, 49, 125, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 48, 32, 58, 32, 45, 117, 32, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 49, 32, 58, 32, 45, 117, 32, 53, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 50, 32, 58, 32, 45, 117, 32, 50, 53, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 51, 32, 58, 32, 45, 117, 32, 49, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 52, 32, 58, 32, 45, 117, 32, 45, 53, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 53, 32, 58, 32, 45, 117, 32, 45, 50, 53, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 54, 32, 58, 32, 45, 117, 32, 45, 49, 48, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 36, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 49, 44, 48, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 105, 109, 112, 111, 114, 116, 95, 105, 109, 97, 103, 101, 32, 58, 10, 45, 114, 109, 32, 45, 105, 32, 34, 36, 49, 34, 32, 45, 115, 32, 122, 32, 45, 105, 102, 32, 36, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 10, 45, 105, 102, 32, 123, 33, 36, 49, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 42, 91, 45, 50, 93, 32, 49, 101, 49, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 44, 48, 44, 36, 51, 37, 44, 36, 52, 37, 44, 48, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 54, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 50, 53, 53, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 51, 37, 44, 36, 52, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 100, 114, 103, 98, 97, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 49, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 49, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 49, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 108, 111, 103, 111, 95, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 32, 32, 32, 32, 45, 32, 79, 110, 108, 105, 110, 101, 32, 45, 34, 10, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 97, 118, 103, 61, 123, 105, 97, 125, 32, 45, 45, 32, 36, 97, 118, 103, 32, 45, 42, 32, 36, 49, 32, 45, 43, 32, 36, 97, 118, 103, 10, 45, 43, 32, 123, 36, 50, 42, 50, 53, 54, 125, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 37, 51, 54, 48, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 43, 49, 45, 115, 37, 50, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 52, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 99, 114, 111, 112, 32, 58, 10, 45, 99, 114, 111, 112, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 10, 103, 109, 105, 99, 111, 108, 95, 99, 114, 111, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 48, 46, 53, 44, 49, 50, 56, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 34, 44, 36, 49, 44, 49, 10, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 102, 108, 105, 112, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 108, 115, 101, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 104, 32, 54, 52, 48, 44, 52, 56, 48, 44, 36, 49, 10, 103, 109, 105, 99, 111, 108, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 104, 32, 51, 50, 48, 44, 50, 52, 48, 44, 36, 49, 10, 103, 109, 105, 99, 111, 108, 95, 114, 101, 115, 105, 122, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 114, 101, 115, 105, 122, 101, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 48, 48, 37, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 51, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 36, 52, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 109, 105, 99, 111, 108, 95, 114, 111, 116, 97, 116, 101, 32, 58, 10, 45, 105, 102, 32, 36, 50, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 57, 48, 42, 114, 111, 117, 110, 100, 40, 36, 49, 47, 57, 48, 41, 125, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 49, 44, 49, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 32, 97, 118, 98, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 50, 44, 97, 125, 125, 32, 97, 118, 103, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 51, 44, 97, 125, 125, 32, 97, 118, 114, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 52, 44, 97, 125, 125, 10, 45, 43, 91, 45, 52, 93, 32, 36, 97, 118, 114, 32, 45, 43, 91, 45, 51, 93, 32, 36, 97, 118, 103, 32, 45, 43, 91, 45, 50, 93, 32, 36, 97, 118, 98, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 123, 105, 102, 40, 123, 36, 49, 62, 61, 48, 125, 44, 123, 36, 49, 47, 52, 125, 44, 123, 36, 49, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 49, 44, 36, 49, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 32, 58, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 50, 53, 53, 44, 50, 52, 54, 44, 50, 49, 57, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 52, 52, 44, 49, 48, 48, 44, 50, 53, 53, 44, 53, 52, 44, 49, 54, 52, 44, 53, 52, 44, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 50, 53, 53, 44, 50, 53, 48, 44, 50, 51, 55, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 48, 48, 44, 49, 55, 56, 44, 50, 53, 53, 44, 50, 44, 49, 48, 52, 44, 50, 44, 50, 53, 53, 44, 48, 44, 48, 44, 49, 52, 51, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 49, 32, 45, 98, 108, 101, 110, 100, 32, 118, 97, 108, 117, 101, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 36, 49, 44, 48, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 118, 97, 108, 117, 101, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 53, 48, 44, 48, 44, 49, 44, 53, 48, 44, 48, 44, 49, 44, 45, 53, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 53, 44, 48, 44, 49, 44, 53, 44, 48, 44, 49, 44, 45, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 48, 44, 48, 44, 49, 44, 52, 48, 44, 48, 44, 49, 44, 45, 50, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 45, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 46, 49, 44, 49, 50, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 45, 114, 103, 98, 95, 116, 111, 110, 101, 32, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 56, 44, 45, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 52, 57, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 53, 44, 45, 50, 53, 44, 49, 55, 44, 56, 44, 50, 54, 44, 51, 49, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 48, 44, 45, 57, 44, 45, 51, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 44, 45, 57, 44, 49, 56, 56, 44, 50, 53, 53, 44, 49, 56, 49, 44, 49, 51, 51, 44, 55, 50, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 45, 51, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 54, 52, 44, 56, 56, 44, 50, 53, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 54, 53, 44, 51, 51, 44, 45, 49, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 49, 50, 56, 44, 57, 50, 44, 54, 50, 44, 52, 53, 44, 51, 56, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 45, 50, 53, 44, 53, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 50, 53, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 54, 44, 49, 55, 56, 44, 50, 53, 53, 44, 49, 54, 57, 44, 57, 52, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 50, 53, 44, 45, 53, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 45, 50, 53, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 49, 50, 48, 44, 50, 52, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 54, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 50, 44, 52, 48, 44, 49, 54, 49, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 56, 44, 51, 51, 44, 51, 51, 44, 49, 54, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 55, 55, 44, 45, 56, 44, 45, 56, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 55, 44, 45, 50, 48, 44, 45, 51, 51, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 56, 44, 45, 54, 53, 44, 45, 55, 55, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 53, 44, 52, 53, 44, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 51, 44, 48, 48, 44, 48, 48, 48, 44, 45, 49, 51, 44, 48, 48, 44, 48, 44, 49, 55, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 50, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 57, 44, 54, 56, 44, 49, 56, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 53, 44, 53, 53, 44, 45, 49, 53, 44, 49, 50, 56, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 45, 91, 48, 44, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 123, 36, 50, 47, 49, 48, 48, 125, 42, 45, 49, 125, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 107, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 52, 45, 54, 125, 10, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 114, 103, 98, 95, 116, 111, 110, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 115, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 49, 44, 52, 93, 32, 45, 43, 91, 50, 44, 52, 93, 32, 45, 43, 91, 51, 44, 52, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 45, 45, 91, 48, 44, 49, 93, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 54, 52, 44, 36, 50, 57, 44, 49, 50, 56, 44, 36, 51, 48, 44, 49, 57, 50, 44, 36, 51, 49, 44, 50, 53, 53, 44, 36, 51, 50, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 45, 45, 45, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 51, 61, 61, 48, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 45, 107, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 51, 61, 61, 49, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 51, 61, 61, 50, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 32, 45, 45, 115, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 49, 50, 56, 44, 36, 50, 57, 44, 50, 53, 53, 44, 36, 51, 48, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 51, 49, 44, 49, 50, 56, 44, 36, 51, 50, 44, 50, 53, 53, 44, 36, 51, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 51, 52, 44, 49, 50, 56, 44, 36, 51, 53, 44, 50, 53, 53, 44, 36, 51, 54, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 51, 55, 44, 49, 50, 56, 44, 36, 51, 56, 44, 50, 53, 53, 44, 36, 51, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 48, 44, 49, 50, 56, 44, 36, 52, 49, 44, 50, 53, 53, 44, 36, 52, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 52, 51, 44, 49, 50, 56, 44, 36, 52, 52, 44, 50, 53, 53, 44, 36, 52, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 52, 54, 44, 49, 50, 56, 44, 36, 52, 55, 44, 50, 53, 53, 44, 36, 52, 56, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 32, 45, 43, 91, 49, 44, 53, 93, 32, 45, 43, 91, 50, 44, 53, 93, 32, 45, 43, 91, 51, 44, 53, 93, 32, 45, 43, 91, 52, 44, 53, 93, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 45, 45, 91, 48, 44, 49, 93, 10, 45, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 49, 44, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 52, 57, 44, 54, 52, 44, 36, 53, 48, 44, 49, 50, 56, 44, 36, 53, 49, 44, 49, 57, 50, 44, 36, 53, 50, 44, 50, 53, 53, 44, 36, 53, 51, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 45, 45, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 48, 125, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 45, 107, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 49, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 50, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 51, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 52, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 49, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 36, 123, 50, 45, 45, 49, 125, 10, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 10, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 43, 51, 100, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 48, 93, 32, 36, 49, 44, 48, 46, 57, 44, 50, 53, 53, 10, 45, 114, 51, 100, 91, 48, 93, 32, 48, 44, 49, 44, 48, 46, 50, 44, 57, 48, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 45, 32, 50, 53, 53, 10, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 32, 53, 44, 53, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 10, 45, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 53, 49, 50, 10, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 51, 50, 48, 10, 103, 109, 105, 99, 111, 108, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 10, 103, 109, 105, 99, 111, 108, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 44, 36, 52, 10, 103, 109, 105, 99, 111, 108, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 10, 103, 109, 105, 99, 111, 108, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 44, 36, 52, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 50, 45, 51, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 52, 45, 53, 125, 44, 36, 123, 55, 45, 49, 54, 125, 44, 36, 54, 34, 44, 92, 10, 34, 36, 123, 52, 45, 53, 125, 44, 36, 123, 49, 55, 45, 50, 54, 125, 44, 36, 54, 34, 44, 36, 49, 10, 45, 111, 32, 36, 95, 111, 117, 116, 112, 117, 116, 46, 103, 105, 102, 44, 49, 48, 10, 45, 114, 109, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 58, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 50, 53, 125, 44, 36, 123, 50, 61, 49, 53, 51, 125, 44, 36, 123, 51, 61, 49, 55, 49, 125, 44, 36, 123, 52, 61, 49, 56, 53, 125, 44, 36, 123, 53, 61, 48, 46, 49, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 54, 61, 53, 48, 125, 44, 36, 123, 55, 61, 56, 48, 125, 44, 36, 123, 56, 61, 53, 48, 125, 44, 36, 123, 57, 61, 49, 48, 125, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 48, 61, 49, 53, 125, 44, 36, 123, 49, 49, 61, 49, 50, 125, 44, 36, 123, 49, 50, 61, 50, 48, 125, 44, 36, 123, 49, 51, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 52, 61, 49, 125, 44, 36, 123, 49, 53, 61, 48, 46, 51, 125, 44, 36, 123, 49, 54, 61, 49, 125, 44, 36, 123, 49, 55, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 99, 61, 56, 48, 48, 32, 109, 108, 61, 52, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 110, 119, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 119, 41, 125, 32, 110, 104, 61, 123, 36, 110, 119, 47, 119, 42, 104, 125, 32, 45, 101, 108, 115, 101, 32, 110, 104, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 104, 41, 125, 32, 110, 119, 61, 123, 36, 110, 104, 47, 104, 42, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 91, 48, 93, 32, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 49, 93, 32, 36, 110, 119, 44, 36, 110, 104, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 49, 93, 32, 36, 53, 37, 32, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 99, 91, 49, 93, 32, 48, 44, 123, 50, 53, 53, 45, 36, 52, 125, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 51, 125, 44, 49, 50, 56, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 50, 125, 44, 49, 57, 50, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 49, 125, 44, 50, 53, 53, 32, 45, 110, 91, 45, 51, 45, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 54, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 48, 44, 48, 44, 120, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 55, 44, 50, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 48, 32, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 45, 49, 44, 48, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 48, 44, 51, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 56, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 49, 44, 48, 44, 121, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 57, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 50, 44, 48, 44, 121, 44, 48, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 50, 44, 48, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 109, 108, 32, 45, 109, 117, 108, 91, 123, 50, 43, 36, 62, 125, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 100, 100, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 49, 93, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 53, 10, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 55, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 101, 108, 115, 101, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 36, 42, 34, 44, 36, 45, 49, 0 }; unsigned int size_data_gmic_def = sizeof(data_gmic_def); #else /* Define image 'gmic_def' of size 1x1443165x1x1 and type 'char' */ char data_gmic_def[] = { 104, 32, 58, 10, 45, 104, 101, 108, 112, 32, 36, 42, 10, 104, 101, 108, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 32, 121, 32, 45, 97, 32, 121, 10, 45, 45, 95, 104, 101, 108, 112, 32, 36, 49, 44, 36, 50, 32, 45, 107, 91, 48, 93, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 64, 123, 125, 41, 125, 32, 45, 95, 104, 101, 108, 112, 91, 48, 93, 32, 64, 123, 125, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 10, 95, 104, 101, 108, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 10, 45, 118, 32, 45, 49, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 34, 36, 49, 34, 41, 125, 32, 45, 95, 95, 104, 101, 108, 112, 32, 97, 115, 99, 105, 105, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 45, 39, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 49, 48, 48, 37, 125, 61, 61, 123, 39, 93, 39, 125, 34, 32, 38, 38, 32, 34, 105, 33, 61, 123, 39, 91, 39, 125, 125, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 123, 39, 91, 39, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 107, 115, 48, 61, 34, 48, 34, 32, 107, 115, 49, 61, 34, 45, 107, 91, 48, 93, 34, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 32, 49, 44, 123, 104, 43, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 32, 58, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 58, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 109, 105, 99, 32, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 92, 110, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 91, 103, 109, 105, 99, 93, 32, 67, 111, 109, 109, 97, 110, 100, 32, 39, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 39, 32, 104, 97, 115, 32, 110, 111, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 46, 32, 84, 114, 121, 32, 39, 103, 109, 105, 99, 32, 45, 104, 39, 32, 102, 111, 114, 32, 103, 108, 111, 98, 97, 108, 32, 104, 101, 108, 112, 46, 92, 110, 92, 110, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 121, 32, 45, 115, 32, 45, 44, 49, 48, 10, 115, 116, 111, 112, 102, 108, 97, 103, 61, 48, 10, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 61, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 104, 62, 55, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 53, 125, 39, 61, 61, 39, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 45, 115, 32, 45, 44, 123, 39, 34, 58, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 36, 99, 111, 109, 109, 97, 110, 100, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 32, 45, 34, 36, 99, 111, 109, 109, 97, 110, 100, 34, 58, 32, 69, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 32, 39, 34, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 48, 34, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 117, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 48, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 58, 39, 125, 125, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 36, 39, 125, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 39, 125, 41, 10, 45, 101, 108, 115, 101, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 34, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 69, 120, 97, 109, 112, 108, 101, 40, 115, 41, 58, 32, 34, 39, 125, 41, 32, 105, 115, 95, 101, 120, 97, 109, 112, 108, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 48, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 115, 116, 111, 112, 102, 108, 97, 103, 61, 49, 32, 45, 101, 110, 100, 105, 102, 32, 36, 123, 107, 115, 123, 64, 35, 33, 61, 48, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 105, 102, 32, 36, 115, 116, 111, 112, 102, 108, 97, 103, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 117, 32, 34, 34, 10, 95, 95, 104, 101, 108, 112, 32, 58, 10, 45, 109, 32, 34, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 58, 32, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 36, 49, 32, 92, 34, 36, 34, 34, 49, 92, 34, 34, 10, 45, 109, 32, 34, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 58, 32, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 36, 49, 32, 92, 34, 36, 34, 34, 49, 92, 34, 34, 10, 45, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 36, 49, 91, 93, 10, 45, 95, 104, 101, 108, 112, 95, 117, 115, 97, 103, 101, 91, 93, 10, 45, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 36, 49, 44, 34, 105, 109, 103, 47, 34, 44, 48, 10, 45, 95, 104, 101, 108, 112, 95, 101, 120, 97, 109, 112, 108, 101, 115, 91, 93, 10, 45, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 36, 49, 91, 93, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 92, 100, 111, 99, 117, 109, 101, 110, 116, 99, 108, 97, 115, 115, 91, 97, 52, 112, 97, 112, 101, 114, 44, 49, 49, 112, 116, 44, 116, 119, 111, 115, 105, 100, 101, 93, 123, 98, 111, 111, 107, 125, 10, 92, 110, 92, 92, 117, 115, 101, 112, 97, 99, 107, 97, 103, 101, 123, 104, 121, 112, 101, 114, 114, 101, 102, 44, 102, 97, 110, 99, 121, 104, 100, 114, 44, 103, 114, 97, 112, 104, 105, 99, 120, 44, 97, 109, 115, 115, 121, 109, 98, 44, 97, 109, 115, 109, 97, 116, 104, 44, 116, 105, 109, 101, 115, 44, 109, 97, 107, 101, 105, 100, 120, 44, 108, 105, 115, 116, 105, 110, 103, 115, 125, 10, 92, 110, 92, 92, 103, 114, 97, 112, 104, 105, 99, 115, 112, 97, 116, 104, 123, 123, 105, 109, 103, 47, 125, 125, 10, 92, 110, 92, 92, 112, 97, 103, 101, 115, 116, 121, 108, 101, 123, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 125, 10, 92, 110, 92, 92, 108, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 114, 105, 103, 104, 116, 109, 97, 114, 107, 125, 125, 10, 92, 110, 92, 92, 114, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 108, 101, 102, 116, 109, 97, 114, 107, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 125, 10, 92, 110, 92, 92, 99, 102, 111, 111, 116, 123, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 53, 46, 56, 55, 53, 105, 110, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 112, 97, 114, 105, 110, 100, 101, 110, 116, 125, 123, 48, 112, 99, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 104, 111, 102, 102, 115, 101, 116, 125, 123, 45, 48, 46, 56, 99, 109, 125, 10, 92, 110, 92, 92, 115, 101, 116, 99, 111, 117, 110, 116, 101, 114, 123, 116, 111, 99, 100, 101, 112, 116, 104, 125, 123, 49, 125, 10, 92, 110, 92, 92, 115, 108, 111, 112, 112, 121, 123, 125, 10, 92, 110, 92, 92, 116, 105, 116, 108, 101, 123, 92, 92, 102, 98, 111, 120, 123, 92, 92, 112, 97, 114, 98, 111, 120, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 92, 92, 98, 101, 103, 105, 110, 123, 99, 101, 110, 116, 101, 114, 125, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 50, 99, 109, 125, 92, 92, 105, 110, 99, 108, 117, 100, 101, 103, 114, 97, 112, 104, 105, 99, 115, 91, 119, 105, 100, 116, 104, 61, 49, 50, 99, 109, 93, 123, 108, 111, 103, 111, 51, 46, 106, 112, 103, 125, 92, 92, 92, 92, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 49, 99, 109, 125, 123, 92, 92, 72, 117, 103, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 84, 104, 101, 32, 72, 97, 110, 100, 98, 111, 111, 107, 125, 92, 92, 92, 92, 123, 92, 92, 115, 109, 97, 108, 108, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 125, 92, 92, 92, 92, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 49, 99, 109, 125, 125, 92, 92, 101, 110, 100, 123, 99, 101, 110, 116, 101, 114, 125, 125, 125, 125, 10, 92, 110, 92, 92, 97, 117, 116, 104, 111, 114, 123, 92, 92, 76, 97, 114, 103, 101, 32, 92, 92, 98, 102, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 92, 39, 101, 125, 10, 92, 110, 92, 92, 114, 101, 110, 101, 119, 99, 111, 109, 109, 97, 110, 100, 92, 92, 105, 110, 100, 101, 120, 110, 97, 109, 101, 123, 73, 110, 100, 101, 120, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 105, 110, 100, 101, 120, 10, 92, 110, 92, 92, 108, 115, 116, 115, 101, 116, 123, 99, 111, 108, 117, 109, 110, 115, 61, 102, 117, 108, 108, 102, 108, 101, 120, 105, 98, 108, 101, 44, 98, 97, 115, 105, 99, 115, 116, 121, 108, 101, 61, 92, 92, 110, 111, 114, 109, 97, 108, 102, 111, 110, 116, 125, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 116, 105, 116, 108, 101, 10, 92, 110, 92, 92, 116, 97, 98, 108, 101, 111, 102, 99, 111, 110, 116, 101, 110, 116, 115, 10, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 42, 123, 80, 114, 101, 97, 109, 98, 108, 101, 125, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 76, 105, 99, 101, 110, 115, 101, 125, 10, 92, 110, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 71, 78, 85, 32, 70, 114, 101, 101, 32, 68, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 76, 105, 99, 101, 110, 115, 101, 125, 44, 32, 118, 101, 114, 115, 105, 111, 110, 32, 49, 46, 51, 46, 92, 92, 92, 92, 10, 92, 110, 82, 101, 97, 100, 32, 116, 104, 101, 32, 102, 117, 108, 108, 32, 108, 105, 99, 101, 110, 115, 101, 32, 116, 101, 114, 109, 115, 32, 97, 116, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 110, 117, 46, 111, 114, 103, 47, 108, 105, 99, 101, 110, 115, 101, 115, 47, 102, 100, 108, 45, 49, 46, 51, 46, 116, 120, 116, 125, 46, 92, 92, 92, 92, 126, 92, 92, 92, 92, 10, 92, 110, 65, 110, 32, 111, 110, 108, 105, 110, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 116, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 58, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 116, 116, 123, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 115, 104, 116, 109, 108, 125, 46, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 77, 111, 116, 105, 118, 97, 116, 105, 111, 110, 115, 125, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 32, 97, 110, 100, 32, 102, 117, 108, 108, 45, 102, 101, 97, 116, 117, 114, 101, 100, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 44, 32, 112, 114, 111, 118, 105, 100, 105, 110, 103, 32, 115, 101, 118, 101, 114, 97, 108, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 117, 115, 101, 114, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 115, 32, 116, 111, 10, 92, 110, 99, 111, 110, 118, 101, 114, 116, 47, 109, 97, 110, 105, 112, 117, 108, 97, 116, 101, 47, 102, 105, 108, 116, 101, 114, 47, 118, 105, 115, 117, 97, 108, 105, 122, 101, 32, 103, 101, 110, 101, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 44, 32, 102, 114, 111, 109, 32, 49, 100, 32, 115, 99, 97, 108, 97, 114, 32, 115, 105, 103, 110, 97, 108, 101, 115, 32, 116, 111, 32, 51, 100, 43, 116, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 84, 101, 99, 104, 110, 105, 99, 97, 108, 108, 121, 32, 115, 112, 101, 97, 107, 105, 110, 103, 44, 32, 119, 104, 97, 116, 32, 105, 116, 32, 100, 111, 101, 115, 32, 105, 115, 58, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 68, 101, 102, 105, 110, 101, 32, 97, 32, 108, 105, 103, 104, 116, 119, 101, 105, 103, 104, 116, 32, 98, 117, 116, 32, 112, 111, 119, 101, 114, 102, 117, 108, 32, 115, 99, 114, 105, 112, 116, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 40, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 41, 32, 100, 101, 100, 105, 99, 97, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 80, 114, 111, 118, 105, 100, 101, 32, 115, 101, 118, 101, 114, 97, 108, 32, 117, 115, 101, 114, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 115, 32, 101, 109, 98, 101, 100, 100, 105, 110, 103, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 58, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 45, 108, 105, 110, 101, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 39, 103, 109, 105, 99, 39, 44, 32, 116, 111, 32, 117, 115, 101, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 102, 114, 111, 109, 32, 97, 32, 115, 104, 101, 108, 108, 46, 10, 92, 110, 73, 110, 32, 116, 104, 105, 115, 32, 115, 101, 116, 116, 105, 110, 103, 44, 32, 71, 39, 77, 73, 67, 32, 109, 97, 121, 32, 98, 101, 32, 115, 101, 101, 110, 32, 97, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 32, 40, 97, 110, 100, 32, 102, 114, 105, 101, 110, 100, 108, 121, 41, 32, 99, 111, 109, 112, 101, 116, 105, 116, 111, 114, 32, 111, 102, 32, 116, 104, 101, 32, 73, 109, 97, 103, 101, 77, 97, 103, 105, 99, 107, 32, 111, 114, 32, 71, 114, 97, 112, 104, 105, 99, 115, 77, 97, 103, 105, 99, 107, 32, 115, 111, 102, 116, 119, 97, 114, 101, 32, 115, 117, 105, 116, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 112, 108, 117, 103, 45, 105, 110, 32, 39, 103, 109, 105, 99, 92, 92, 95, 103, 105, 109, 112, 39, 44, 32, 116, 111, 32, 98, 114, 105, 110, 103, 32, 71, 39, 77, 73, 67, 32, 99, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 71, 73, 77, 80, 32, 105, 109, 97, 103, 101, 32, 114, 101, 116, 111, 117, 99, 104, 105, 110, 103, 32, 115, 111, 102, 116, 119, 97, 114, 101, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 119, 101, 98, 45, 115, 101, 114, 118, 105, 99, 101, 32, 39, 71, 39, 77, 73, 67, 32, 79, 110, 108, 105, 110, 101, 39, 44, 32, 116, 111, 32, 97, 108, 108, 111, 119, 32, 117, 115, 101, 114, 115, 32, 97, 112, 112, 108, 121, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 115, 32, 100, 105, 114, 101, 99, 116, 108, 121, 32, 105, 110, 32, 97, 32, 119, 101, 98, 32, 98, 114, 111, 119, 101, 114, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 81, 116, 45, 98, 97, 115, 101, 100, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 32, 39, 90, 65, 114, 116, 39, 44, 32, 102, 111, 114, 32, 114, 101, 97, 108, 45, 116, 105, 109, 101, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 119, 101, 98, 99, 97, 109, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 92, 92, 105, 116, 101, 109, 32, 65, 32, 67, 43, 43, 32, 108, 105, 98, 114, 97, 114, 121, 32, 39, 108, 105, 98, 103, 109, 105, 99, 39, 44, 32, 116, 111, 32, 98, 101, 32, 108, 105, 110, 107, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 105, 114, 100, 45, 112, 97, 114, 116, 121, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 92, 92, 101, 110, 100, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 92, 92, 101, 110, 100, 123, 105, 116, 101, 109, 105, 122, 101, 125, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 102, 111, 99, 117, 115, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 32, 111, 102, 32, 112, 111, 115, 115, 105, 98, 108, 121, 32, 99, 111, 109, 112, 108, 101, 120, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 102, 111, 114, 32, 99, 111, 110, 118, 101, 114, 116, 105, 110, 103, 44, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 110, 103, 44, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 97, 110, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 105, 110, 103, 32, 103, 101, 110, 101, 114, 105, 99, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 46, 32, 84, 104, 105, 115, 32, 105, 110, 99, 108, 117, 100, 101, 115, 32, 111, 102, 32, 99, 111, 117, 114, 115, 101, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 98, 117, 116, 32, 97, 108, 115, 111, 32, 109, 111, 114, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 100, 97, 116, 97, 32, 97, 115, 32, 105, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 111, 114, 32, 51, 100, 40, 43, 116, 41, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 100, 97, 116, 97, 115, 101, 116, 115, 46, 92, 92, 92, 92, 10, 92, 110, 10, 92, 110, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 58, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 99, 97, 110, 32, 98, 101, 32, 101, 120, 116, 101, 110, 100, 101, 100, 32, 119, 105, 116, 104, 32, 99, 117, 115, 116, 111, 109, 32, 71, 39, 77, 73, 67, 45, 119, 114, 105, 116, 116, 101, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 100, 101, 102, 105, 110, 105, 110, 103, 32, 116, 104, 117, 115, 32, 110, 101, 119, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 111, 114, 32, 101, 102, 102, 101, 99, 116, 115, 46, 32, 66, 121, 32, 116, 104, 101, 32, 119, 97, 121, 44, 32, 71, 39, 77, 73, 67, 32, 97, 108, 114, 101, 97, 100, 121, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 97, 32, 115, 117, 98, 115, 116, 97, 110, 116, 105, 97, 108, 32, 115, 101, 116, 32, 111, 102, 32, 112, 114, 101, 45, 100, 101, 102, 105, 110, 101, 100, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 115, 32, 97, 110, 100, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 40, 109, 111, 114, 101, 32, 116, 104, 97, 110, 32, 49, 48, 48, 48, 41, 46, 92, 92, 92, 92, 10, 92, 110, 10, 92, 110, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 119, 105, 116, 104, 32, 112, 111, 114, 116, 97, 98, 105, 108, 105, 116, 121, 32, 105, 110, 32, 109, 105, 110, 100, 32, 97, 110, 100, 32, 114, 117, 110, 115, 32, 111, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 112, 108, 97, 116, 102, 111, 114, 109, 115, 32, 40, 87, 105, 110, 100, 111, 119, 115, 44, 32, 85, 110, 105, 120, 44, 32, 77, 97, 99, 79, 83, 88, 41, 46, 32, 73, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 67, 101, 67, 73, 76, 76, 32, 108, 105, 99, 101, 110, 115, 101, 32, 40, 71, 80, 76, 45, 99, 111, 109, 112, 97, 116, 105, 98, 108, 101, 41, 46, 32, 83, 105, 110, 99, 101, 32, 50, 48, 48, 56, 44, 32, 105, 116, 32, 105, 115, 32, 100, 101, 118, 101, 108, 111, 112, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 73, 109, 97, 103, 101, 32, 84, 101, 97, 109, 32, 111, 102, 32, 116, 104, 101, 32, 71, 82, 69, 89, 67, 32, 108, 97, 98, 111, 114, 97, 116, 111, 114, 121, 44, 32, 105, 110, 32, 67, 97, 101, 110, 47, 70, 114, 97, 110, 99, 101, 44, 32, 98, 121, 32, 112, 101, 114, 109, 97, 110, 101, 110, 116, 32, 114, 101, 115, 101, 97, 114, 99, 104, 101, 114, 115, 32, 119, 111, 114, 107, 105, 110, 103, 32, 105, 110, 32, 116, 104, 101, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 110, 32, 97, 32, 100, 97, 105, 108, 121, 32, 98, 97, 115, 105, 115, 46, 10, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 42, 123, 86, 101, 114, 115, 105, 111, 110, 125, 10, 92, 110, 10, 92, 110, 32, 103, 109, 105, 99, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 92, 39, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 40, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 41, 10, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 123, 85, 115, 97, 103, 101, 125, 10, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 49, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 115, 101, 99, 116, 105, 111, 110, 123, 36, 49, 125, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 108, 97, 116, 101, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 49, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 115, 109, 97, 108, 108, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 98, 101, 103, 105, 110, 123, 108, 115, 116, 108, 105, 115, 116, 105, 110, 103, 125, 34, 10, 45, 101, 91, 93, 32, 34, 36, 49, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 101, 110, 100, 123, 108, 115, 116, 108, 105, 115, 116, 105, 110, 103, 125, 34, 10, 45, 101, 91, 93, 32, 34, 92, 92, 110, 111, 114, 109, 97, 108, 115, 105, 122, 101, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 92, 92, 112, 114, 105, 110, 116, 105, 110, 100, 101, 120, 10, 92, 110, 126, 92, 92, 92, 92, 36, 92, 92, 115, 113, 117, 97, 114, 101, 36, 126, 69, 110, 100, 32, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 10, 92, 110, 92, 110, 92, 92, 101, 110, 100, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, 109, 108, 32, 80, 85, 66, 76, 73, 67, 32, 92, 34, 45, 47, 47, 87, 51, 67, 47, 47, 68, 84, 68, 32, 88, 72, 84, 77, 76, 32, 49, 46, 48, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 47, 47, 69, 78, 92, 34, 32, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 84, 82, 47, 120, 104, 116, 109, 108, 49, 47, 68, 84, 68, 47, 120, 104, 116, 109, 108, 49, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 46, 100, 116, 100, 92, 34, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 104, 101, 97, 100, 101, 114, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 92, 110, 60, 108, 105, 110, 107, 32, 104, 114, 101, 102, 61, 92, 34, 115, 116, 121, 108, 101, 46, 99, 115, 115, 92, 34, 32, 114, 101, 108, 61, 92, 34, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 99, 115, 115, 92, 34, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 98, 108, 111, 99, 95, 111, 112, 116, 105, 111, 110, 92, 34, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 111, 112, 95, 114, 111, 117, 103, 101, 92, 34, 62, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 101, 120, 116, 95, 116, 111, 112, 92, 34, 62, 82, 101, 102, 101, 114, 101, 110, 99, 101, 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 99, 101, 110, 116, 101, 114, 92, 34, 62, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 116, 101, 120, 116, 95, 99, 101, 110, 116, 114, 101, 95, 105, 110, 116, 114, 111, 92, 34, 62, 10, 92, 110, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 80, 114, 101, 97, 109, 98, 108, 101, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 110, 117, 46, 111, 114, 103, 47, 108, 105, 99, 101, 110, 115, 101, 115, 47, 102, 100, 108, 45, 49, 46, 51, 46, 116, 120, 116, 92, 34, 62, 71, 78, 85, 32, 70, 114, 101, 101, 32, 68, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 76, 105, 99, 101, 110, 115, 101, 60, 47, 97, 62, 44, 32, 118, 101, 114, 115, 105, 111, 110, 32, 49, 46, 51, 46, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 65, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 103, 109, 105, 99, 95, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 112, 100, 102, 92, 34, 62, 46, 112, 100, 102, 32, 118, 101, 114, 115, 105, 111, 110, 60, 47, 97, 62, 32, 111, 102, 32, 116, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 46, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 84, 97, 98, 108, 101, 32, 111, 102, 32, 99, 111, 110, 116, 101, 110, 116, 115, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 48, 92, 34, 62, 86, 101, 114, 115, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 92, 34, 62, 85, 115, 97, 103, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 50, 92, 34, 62, 79, 118, 101, 114, 97, 108, 108, 32, 99, 111, 110, 116, 101, 120, 116, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 51, 92, 34, 62, 73, 109, 97, 103, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 97, 110, 100, 32, 116, 101, 114, 109, 105, 110, 111, 108, 111, 103, 121, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 52, 92, 34, 62, 73, 116, 101, 109, 115, 32, 111, 102, 32, 97, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 53, 92, 34, 62, 73, 110, 112, 117, 116, 32, 100, 97, 116, 97, 32, 105, 116, 101, 109, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 54, 92, 34, 62, 67, 111, 109, 109, 97, 110, 100, 32, 105, 116, 101, 109, 115, 32, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 55, 92, 34, 62, 73, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 56, 92, 34, 62, 83, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 57, 92, 34, 62, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 48, 92, 34, 62, 73, 109, 97, 103, 101, 32, 97, 110, 100, 32, 100, 97, 116, 97, 32, 118, 105, 101, 119, 101, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 49, 92, 34, 62, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 50, 92, 34, 62, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 92, 34, 62, 71, 108, 111, 98, 97, 108, 32, 111, 112, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 92, 34, 62, 73, 110, 112, 117, 116, 115, 47, 111, 117, 116, 112, 117, 116, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 51, 92, 34, 62, 76, 105, 115, 116, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 52, 92, 34, 62, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 53, 92, 34, 62, 86, 97, 108, 117, 101, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 54, 92, 34, 62, 67, 111, 108, 111, 114, 115, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 55, 92, 34, 62, 71, 101, 111, 109, 101, 116, 114, 121, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 56, 92, 34, 62, 70, 105, 108, 116, 101, 114, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 57, 92, 34, 62, 70, 101, 97, 116, 117, 114, 101, 115, 32, 101, 120, 116, 114, 97, 99, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 48, 92, 34, 62, 73, 109, 97, 103, 101, 32, 100, 114, 97, 119, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 49, 92, 34, 62, 77, 97, 116, 114, 105, 120, 32, 99, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 50, 92, 34, 62, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 51, 92, 34, 62, 80, 114, 111, 103, 114, 97, 109, 32, 99, 111, 110, 116, 114, 111, 108, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 52, 92, 34, 62, 65, 114, 114, 97, 121, 115, 44, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 102, 114, 97, 109, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 53, 92, 34, 62, 65, 114, 116, 105, 115, 116, 105, 99, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 54, 92, 34, 62, 87, 97, 114, 112, 105, 110, 103, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 55, 92, 34, 62, 68, 101, 103, 114, 97, 100, 97, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 56, 92, 34, 62, 66, 108, 101, 110, 100, 105, 110, 103, 32, 97, 110, 100, 32, 102, 97, 100, 105, 110, 103, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 49, 57, 92, 34, 62, 73, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 48, 92, 34, 62, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 100, 101, 109, 111, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 49, 92, 34, 62, 80, 73, 78, 75, 45, 108, 105, 98, 114, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 50, 92, 34, 62, 67, 111, 110, 118, 101, 110, 105, 101, 110, 99, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 51, 92, 34, 62, 79, 116, 104, 101, 114, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 50, 52, 92, 34, 62, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 108, 105, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 35, 115, 101, 99, 116, 105, 111, 110, 49, 51, 92, 34, 62, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 117, 115, 101, 60, 47, 97, 62, 60, 47, 108, 105, 62, 10, 92, 110, 60, 47, 117, 108, 62, 10, 92, 110, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 101, 99, 116, 105, 111, 110, 48, 92, 34, 62, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 86, 101, 114, 115, 105, 111, 110, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 60, 47, 97, 62, 10, 92, 110, 60, 112, 114, 101, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 103, 109, 105, 99, 60, 47, 102, 111, 110, 116, 62, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 40, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 92, 34, 62, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 60, 47, 97, 62, 41, 10, 92, 110, 60, 47, 112, 114, 101, 62, 10, 34, 10, 45, 118, 32, 45, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 85, 115, 97, 103, 101, 34, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 101, 99, 116, 105, 111, 110, 34, 36, 95, 115, 101, 99, 116, 105, 111, 110, 34, 92, 34, 62, 60, 104, 50, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 60, 117, 62, 36, 49, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 50, 62, 60, 47, 97, 62, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 112, 114, 101, 62, 36, 42, 60, 47, 112, 114, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 60, 98, 114, 47, 62, 60, 98, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 114, 111, 119, 110, 92, 34, 62, 42, 42, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 101, 115, 32, 119, 105, 116, 104, 32, 65, 66, 83, 79, 76, 85, 84, 69, 76, 89, 32, 78, 79, 32, 87, 65, 82, 82, 65, 78, 84, 89, 59, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 32, 118, 105, 115, 105, 116, 32, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 92, 34, 62, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 32, 42, 42, 60, 47, 97, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 98, 62, 10, 92, 110, 60, 47, 116, 116, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 100, 105, 118, 32, 105, 100, 61, 92, 34, 102, 111, 111, 116, 101, 114, 92, 34, 62, 60, 105, 109, 103, 32, 115, 114, 99, 61, 92, 34, 105, 109, 97, 103, 101, 115, 47, 102, 111, 111, 116, 101, 114, 46, 106, 112, 103, 92, 34, 32, 47, 62, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 47, 100, 105, 118, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 99, 111, 112, 121, 114, 105, 103, 104, 116, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 92, 110, 60, 33, 45, 45, 35, 105, 110, 99, 108, 117, 100, 101, 32, 102, 105, 108, 101, 61, 92, 34, 102, 111, 111, 116, 101, 114, 46, 104, 116, 109, 108, 92, 34, 32, 45, 45, 62, 10, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 48, 32, 95, 115, 112, 97, 99, 101, 49, 61, 34, 34, 32, 95, 115, 112, 97, 99, 101, 50, 61, 34, 32, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 85, 115, 97, 103, 101, 34, 10, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 105, 115, 95, 98, 101, 116, 97, 41, 125, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 32, 40, 98, 101, 116, 97, 41, 34, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 98, 101, 116, 97, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 41, 125, 32, 115, 116, 114, 118, 101, 114, 61, 36, 95, 103, 109, 105, 99, 95, 118, 101, 114, 115, 105, 111, 110, 32, 45, 101, 108, 115, 101, 32, 115, 116, 114, 118, 101, 114, 61, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 32, 103, 109, 105, 99, 58, 32, 71, 82, 69, 89, 67, 39, 115, 32, 77, 97, 103, 105, 99, 32, 102, 111, 114, 32, 73, 109, 97, 103, 101, 32, 67, 111, 109, 112, 117, 116, 105, 110, 103, 46, 10, 92, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 34, 36, 115, 116, 114, 118, 101, 114, 36, 115, 116, 114, 98, 101, 116, 97, 34, 44, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 67, 41, 32, 50, 48, 48, 56, 45, 50, 48, 49, 51, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 40, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 41, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 95, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 123, 110, 97, 114, 103, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 125, 44, 49, 44, 49, 44, 49, 44, 123, 39, 45, 39, 125, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 34, 36, 95, 115, 101, 99, 116, 105, 111, 110, 34, 46, 32, 36, 49, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 34, 36, 123, 95, 115, 112, 97, 99, 101, 123, 110, 97, 114, 103, 40, 123, 39, 36, 95, 115, 101, 99, 116, 105, 111, 110, 39, 125, 41, 125, 125, 64, 123, 45, 49, 44, 116, 125, 34, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 36, 42, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 102, 111, 111, 116, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 42, 42, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 101, 115, 32, 119, 105, 116, 104, 32, 65, 66, 83, 79, 76, 85, 84, 69, 76, 89, 32, 78, 79, 32, 87, 65, 82, 82, 65, 78, 84, 89, 59, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 32, 118, 105, 115, 105, 116, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 32, 42, 42, 34, 10, 45, 118, 32, 45, 10, 95, 104, 101, 108, 112, 95, 117, 115, 97, 103, 101, 32, 58, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 103, 109, 105, 99, 32, 91, 99, 111, 109, 109, 97, 110, 100, 49, 32, 91, 97, 114, 103, 49, 95, 49, 44, 97, 114, 103, 49, 95, 50, 44, 46, 46, 93, 93, 32, 46, 46, 32, 91, 99, 111, 109, 109, 97, 110, 100, 78, 32, 91, 97, 114, 103, 78, 95, 49, 44, 97, 114, 103, 78, 95, 50, 44, 46, 46, 93, 93, 10, 92, 110, 10, 92, 110, 32, 39, 103, 109, 105, 99, 39, 32, 105, 115, 32, 97, 110, 32, 111, 112, 101, 110, 45, 115, 111, 117, 114, 99, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 44, 32, 97, 32, 115, 99, 114, 105, 112, 116, 45, 98, 97, 115, 101, 100, 32, 112, 114, 111, 103, 114, 97, 109, 109, 105, 110, 103, 10, 92, 110, 32, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 100, 101, 100, 105, 99, 97, 116, 101, 100, 32, 116, 111, 32, 100, 101, 115, 105, 103, 110, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 46, 32, 73, 116, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 99, 111, 110, 118, 101, 114, 116, 44, 10, 92, 110, 32, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 101, 44, 32, 102, 105, 108, 116, 101, 114, 32, 97, 110, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 101, 32, 100, 97, 116, 97, 115, 101, 116, 115, 32, 109, 97, 100, 101, 32, 111, 102, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 49, 100, 47, 50, 100, 32, 111, 114, 32, 51, 100, 32, 109, 117, 108, 116, 105, 45, 10, 92, 110, 32, 32, 115, 112, 101, 99, 116, 114, 97, 108, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 10, 92, 110, 32, 84, 104, 105, 115, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 112, 114, 111, 112, 111, 115, 101, 115, 32, 97, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 98, 97, 115, 105, 99, 115, 32, 97, 110, 100, 32, 114, 117, 108, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 79, 118, 101, 114, 97, 108, 108, 32, 99, 111, 110, 116, 101, 120, 116, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 65, 116, 32, 97, 110, 121, 32, 116, 105, 109, 101, 44, 32, 71, 39, 77, 73, 67, 32, 109, 97, 110, 97, 103, 101, 115, 32, 111, 110, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 40, 97, 110, 100, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 110, 97, 109, 101, 100, 41, 32, 112, 105, 120, 101, 108, 45, 98, 97, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 115, 44, 32, 101, 110, 116, 105, 114, 101, 108, 121, 32, 115, 116, 111, 114, 101, 100, 32, 105, 110, 32, 99, 111, 109, 112, 117, 116, 101, 114, 32, 109, 101, 109, 111, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 115, 32, 105, 110, 100, 105, 99, 101, 32, 39, 48, 39, 32, 97, 110, 100, 32, 105, 115, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 48, 93, 39, 46, 32, 84, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 105, 115, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 49, 93, 39, 44, 32, 116, 104, 101, 32, 116, 104, 105, 114, 100, 32, 98, 121, 32, 39, 91, 50, 93, 39, 32, 97, 110, 100, 32, 115, 111, 32, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 97, 114, 101, 32, 116, 114, 101, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 99, 121, 99, 108, 105, 99, 32, 119, 97, 121, 58, 32, 39, 91, 45, 49, 93, 39, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 108, 105, 115, 116, 44, 32, 39, 91, 45, 50, 93, 39, 32, 116, 111, 32, 116, 104, 101, 32, 112, 101, 110, 117, 108, 116, 105, 109, 97, 116, 101, 32, 111, 110, 101, 44, 32, 101, 116, 99, 46, 32, 84, 104, 117, 115, 44, 32, 105, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 115, 32, 52, 32, 105, 109, 97, 103, 101, 115, 44, 32, 39, 91, 49, 93, 39, 32, 97, 110, 100, 32, 39, 91, 45, 51, 93, 39, 10, 92, 110, 32, 32, 32, 32, 32, 98, 111, 116, 104, 32, 100, 101, 115, 105, 103, 110, 97, 116, 101, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 110, 97, 109, 101, 100, 32, 105, 109, 97, 103, 101, 32, 109, 97, 121, 32, 98, 101, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 32, 39, 91, 110, 97, 109, 101, 93, 39, 32, 105, 102, 32, 39, 110, 97, 109, 101, 39, 32, 117, 115, 101, 115, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 115, 101, 116, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 32, 73, 109, 97, 103, 101, 32, 110, 97, 109, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 115, 101, 116, 32, 111, 114, 32, 114, 101, 97, 115, 115, 105, 103, 110, 101, 100, 32, 97, 116, 32, 97, 110, 121, 32, 109, 111, 109, 101, 110, 116, 32, 100, 117, 114, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 39, 45, 110, 97, 109, 101, 39, 32, 97, 110, 100, 32, 39, 45, 105, 110, 112, 117, 116, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 100, 101, 102, 105, 110, 101, 115, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 118, 97, 114, 105, 111, 117, 115, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 110, 100, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 115, 32, 116, 111, 32, 97, 108, 108, 111, 119, 32, 116, 104, 101, 32, 100, 101, 115, 105, 103, 110, 10, 92, 110, 32, 32, 32, 32, 32, 111, 102, 32, 99, 111, 109, 112, 108, 101, 120, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 109, 97, 110, 97, 103, 105, 110, 103, 32, 116, 104, 105, 115, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 44, 32, 105, 110, 32, 97, 32, 118, 101, 114, 121, 32, 102, 108, 101, 120, 105, 98, 108, 101, 32, 119, 97, 121, 58, 10, 92, 110, 32, 32, 32, 32, 32, 89, 111, 117, 32, 99, 97, 110, 32, 105, 110, 115, 101, 114, 116, 32, 111, 114, 32, 114, 101, 109, 111, 118, 101, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 44, 32, 114, 101, 97, 114, 114, 97, 110, 103, 101, 32, 105, 109, 97, 103, 101, 32, 105, 110, 100, 105, 99, 101, 115, 44, 32, 112, 114, 111, 99, 101, 115, 115, 32, 105, 109, 97, 103, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 108, 121, 32, 111, 114, 32, 97, 115, 32, 97, 32, 103, 114, 111, 117, 112, 41, 44, 32, 109, 101, 114, 103, 101, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 97, 110, 100, 32, 111, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 83, 117, 99, 104, 32, 97, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 99, 97, 110, 32, 98, 101, 32, 119, 114, 105, 116, 116, 101, 110, 32, 105, 116, 115, 101, 108, 102, 32, 97, 115, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 116, 111, 114, 97, 98, 108, 101, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 44, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 114, 101, 45, 117, 115, 101, 100, 32, 97, 102, 116, 101, 114, 119, 97, 114, 100, 115, 32, 105, 110, 32, 97, 110, 111, 116, 104, 101, 114, 32, 98, 105, 103, 103, 101, 114, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 109, 97, 103, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 97, 110, 100, 32, 116, 101, 114, 109, 105, 110, 111, 108, 111, 103, 121, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 110, 32, 71, 39, 77, 73, 67, 44, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 109, 111, 100, 101, 108, 101, 100, 32, 97, 115, 32, 97, 32, 49, 100, 44, 32, 50, 100, 44, 32, 51, 100, 32, 111, 114, 32, 52, 100, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 115, 99, 97, 108, 97, 114, 32, 118, 97, 108, 117, 101, 115, 44, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 100, 105, 115, 99, 114, 101, 116, 105, 122, 101, 100, 32, 111, 110, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 117, 108, 97, 114, 47, 112, 97, 114, 97, 108, 108, 101, 108, 101, 112, 105, 112, 101, 100, 105, 99, 32, 100, 111, 109, 97, 105, 110, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 117, 114, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 115, 101, 32, 97, 114, 114, 97, 121, 115, 32, 97, 114, 101, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 100, 101, 110, 111, 116, 101, 100, 32, 98, 121, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 119, 105, 100, 116, 104, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 111, 108, 117, 109, 110, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 120, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 104, 101, 105, 103, 104, 116, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 114, 111, 119, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 121, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 100, 101, 112, 116, 104, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 115, 108, 105, 99, 101, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 122, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 32, 100, 101, 112, 116, 104, 32, 105, 115, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 49, 32, 102, 111, 114, 32, 117, 115, 117, 97, 108, 32, 50, 100, 32, 99, 111, 108, 111, 114, 32, 111, 114, 32, 103, 114, 97, 121, 115, 99, 97, 108, 101, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 115, 112, 101, 99, 116, 114, 117, 109, 39, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 115, 105, 122, 101, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 99, 39, 45, 97, 120, 105, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 105, 115, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 51, 32, 97, 110, 100, 32, 52, 32, 102, 111, 114, 32, 117, 115, 117, 97, 108, 32, 82, 71, 66, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 114, 101, 32, 97, 114, 101, 32, 110, 111, 32, 115, 105, 122, 101, 32, 108, 105, 109, 105, 116, 97, 116, 105, 111, 110, 115, 32, 111, 110, 32, 101, 97, 99, 104, 32, 105, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 46, 32, 80, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 44, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 108, 105, 99, 101, 115, 32, 111, 114, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 99, 97, 110, 32, 98, 101, 32, 111, 102, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 115, 105, 122, 101, 32, 119, 105, 116, 104, 105, 110, 32, 116, 104, 101, 32, 108, 105, 109, 105, 116, 115, 32, 111, 102, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 109, 101, 109, 111, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 119, 105, 100, 116, 104, 44, 32, 104, 101, 105, 103, 104, 116, 32, 97, 110, 100, 32, 100, 101, 112, 116, 104, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 97, 114, 101, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 97, 115, 32, 39, 115, 112, 97, 116, 105, 97, 108, 39, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 44, 32, 119, 104, 105, 108, 101, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 104, 97, 115, 32, 97, 32, 39, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 39, 32, 109, 101, 97, 110, 105, 110, 103, 46, 32, 84, 104, 117, 115, 44, 32, 97, 32, 52, 100, 32, 105, 109, 97, 103, 101, 32, 105, 110, 32, 71, 39, 77, 73, 67, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 109, 111, 115, 116, 32, 111, 102, 116, 101, 110, 10, 92, 110, 32, 32, 32, 32, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 32, 51, 100, 32, 100, 97, 116, 97, 115, 101, 116, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 115, 112, 101, 99, 116, 114, 97, 108, 32, 118, 111, 120, 101, 108, 115, 46, 32, 77, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 119, 105, 108, 108, 32, 115, 116, 105, 99, 107, 10, 92, 110, 32, 32, 32, 32, 32, 119, 105, 116, 104, 32, 116, 104, 105, 115, 32, 105, 100, 101, 97, 32, 40, 101, 46, 103, 46, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 98, 108, 117, 114, 39, 32, 119, 105, 108, 108, 32, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 115, 32, 111, 110, 108, 121, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 39, 120, 121, 122, 39, 32, 97, 120, 101, 115, 41, 46, 10, 92, 110, 32, 32, 45, 32, 65, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 104, 97, 118, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 100, 97, 116, 97, 116, 121, 112, 101, 46, 32, 73, 116, 32, 99, 97, 110, 32, 98, 101, 32, 111, 110, 101, 32, 97, 109, 111, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 98, 111, 111, 108, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 98, 111, 111, 108, 101, 97, 110, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 123, 32, 48, 61, 102, 97, 108, 115, 101, 32, 124, 32, 49, 61, 116, 114, 117, 101, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 99, 104, 97, 114, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 99, 104, 97, 114, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 50, 53, 53, 93, 32, 40, 56, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 99, 111, 109, 109, 111, 110, 108, 121, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 56, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 115, 32, 82, 71, 66, 91, 65, 93, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 99, 104, 97, 114, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 49, 50, 56, 44, 49, 50, 55, 93, 32, 40, 56, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 115, 104, 111, 114, 116, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 115, 104, 111, 114, 116, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 54, 53, 53, 51, 53, 93, 32, 40, 49, 54, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 99, 111, 109, 109, 111, 110, 108, 121, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 49, 54, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 115, 32, 82, 71, 66, 91, 65, 93, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 115, 104, 111, 114, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 51, 50, 55, 54, 56, 44, 51, 50, 55, 54, 55, 93, 32, 40, 49, 54, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 117, 105, 110, 116, 39, 58, 32, 83, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 39, 117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 39, 46, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 48, 44, 50, 94, 51, 50, 45, 49, 93, 32, 40, 51, 50, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 105, 110, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 50, 94, 51, 49, 44, 50, 94, 51, 49, 45, 49, 93, 32, 40, 51, 50, 32, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 102, 108, 111, 97, 116, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 51, 46, 52, 69, 51, 56, 44, 43, 51, 46, 52, 69, 51, 56, 93, 32, 40, 51, 50, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 112, 105, 120, 101, 108, 115, 32, 97, 115, 32, 51, 50, 32, 98, 105, 116, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 110, 117, 109, 98, 101, 114, 115, 46, 32, 84, 104, 105, 115, 32, 105, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 100, 97, 116, 97, 116, 121, 112, 101, 32, 117, 115, 101, 100, 32, 98, 121, 32, 71, 39, 77, 73, 67, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 100, 111, 117, 98, 108, 101, 39, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 105, 115, 32, 91, 45, 49, 46, 55, 69, 51, 48, 56, 44, 49, 46, 55, 69, 51, 48, 56, 93, 32, 40, 54, 52, 98, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 105, 115, 32, 116, 121, 112, 101, 32, 111, 102, 32, 99, 111, 100, 105, 110, 103, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 112, 105, 120, 101, 108, 115, 32, 97, 115, 32, 54, 52, 32, 98, 105, 116, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 110, 117, 109, 98, 101, 114, 115, 46, 10, 92, 110, 32, 32, 45, 32, 67, 111, 110, 115, 105, 100, 101, 114, 105, 110, 103, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 116, 104, 97, 110, 32, 39, 102, 108, 111, 97, 116, 39, 32, 105, 115, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 117, 115, 101, 108, 101, 115, 115, 44, 32, 101, 120, 99, 101, 112, 116, 32, 116, 111, 32, 102, 111, 114, 99, 101, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 32, 116, 111, 32, 97, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 102, 111, 114, 109, 97, 116, 46, 32, 72, 101, 110, 99, 101, 44, 32, 109, 111, 115, 116, 32, 71, 39, 77, 73, 67, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 39, 102, 108, 111, 97, 116, 39, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 116, 121, 112, 101, 39, 32, 105, 102, 32, 121, 111, 117, 32, 110, 101, 101, 100, 32, 116, 111, 32, 115, 119, 105, 116, 99, 104, 32, 116, 111, 32, 97, 110, 111, 116, 104, 101, 114, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 116, 121, 112, 101, 41, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 116, 101, 109, 115, 32, 111, 102, 32, 97, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 110, 32, 71, 39, 77, 73, 67, 44, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 105, 115, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 97, 115, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 105, 116, 101, 109, 115, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 112, 97, 99, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 39, 32, 39, 46, 32, 83, 117, 99, 104, 32, 105, 116, 101, 109, 115, 32, 97, 114, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 32, 97, 110, 100, 32, 101, 120, 101, 99, 117, 116, 101, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 101, 102, 116, 32, 116, 111, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 114, 105, 103, 104, 116, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 104, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 105, 110, 112, 117, 116, 46, 106, 112, 103, 32, 45, 98, 108, 117, 114, 32, 51, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 32, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 32, 45, 111, 117, 116, 112, 117, 116, 32, 111, 117, 116, 112, 117, 116, 46, 106, 112, 103, 39, 10, 92, 110, 32, 32, 32, 32, 32, 100, 101, 102, 105, 110, 101, 115, 32, 97, 32, 118, 97, 108, 105, 100, 32, 112, 105, 112, 101, 108, 105, 110, 101, 32, 99, 111, 109, 112, 111, 115, 101, 100, 32, 111, 102, 32, 110, 105, 110, 101, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 105, 115, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 119, 104, 105, 99, 104, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 115, 32, 101, 105, 116, 104, 101, 114, 32, 97, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 10, 92, 110, 32, 32, 32, 32, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 32, 111, 114, 32, 97, 32, 115, 112, 101, 99, 105, 97, 108, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 45, 32, 69, 115, 99, 97, 112, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 39, 92, 92, 39, 32, 97, 110, 100, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 32, 39, 92, 34, 39, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 40, 97, 115, 32, 117, 115, 117, 97, 108, 41, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 105, 116, 101, 109, 115, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 115, 112, 97, 99, 101, 115, 44, 32, 111, 114, 32, 97, 110, 121, 32, 111, 116, 104, 101, 114, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 115, 10, 92, 110, 32, 32, 32, 32, 32, 39, 115, 105, 110, 103, 108, 101, 92, 92, 32, 105, 116, 101, 109, 39, 32, 97, 110, 100, 32, 39, 92, 34, 115, 105, 110, 103, 108, 101, 32, 105, 116, 101, 109, 92, 34, 39, 32, 100, 101, 102, 105, 110, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 115, 116, 114, 105, 110, 103, 32, 105, 116, 101, 109, 44, 32, 119, 105, 116, 104, 32, 97, 32, 115, 112, 97, 99, 101, 32, 105, 110, 32, 105, 116, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 110, 112, 117, 116, 32, 100, 97, 116, 97, 32, 105, 116, 101, 109, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 73, 102, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 97, 112, 112, 101, 97, 114, 115, 32, 116, 111, 32, 98, 101, 32, 97, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 102, 105, 108, 101, 110, 97, 109, 101, 44, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 100, 97, 116, 97, 32, 97, 114, 101, 32, 108, 111, 97, 100, 101, 100, 32, 97, 110, 100, 32, 105, 110, 115, 101, 114, 116, 101, 100, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 83, 112, 101, 99, 105, 97, 108, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 32, 39, 45, 39, 32, 97, 110, 100, 32, 39, 45, 46, 101, 120, 116, 39, 32, 115, 116, 97, 110, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 115, 116, 114, 101, 97, 109, 115, 44, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 102, 111, 114, 99, 101, 100, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 39, 101, 120, 116, 39, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 32, 40, 101, 46, 103, 46, 32, 39, 45, 46, 106, 112, 103, 39, 32, 111, 114, 32, 39, 45, 46, 112, 110, 103, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 112, 101, 99, 105, 97, 108, 32, 105, 110, 112, 117, 116, 32, 115, 116, 114, 105, 110, 103, 115, 32, 109, 97, 121, 32, 98, 101, 32, 117, 115, 101, 100, 32, 97, 115, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 97, 110, 100, 32, 105, 110, 115, 101, 114, 116, 32, 110, 101, 119, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 118, 97, 108, 117, 101, 115, 44, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 39, 32, 111, 114, 32, 39, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 120, 78, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 49, 32, 111, 114, 32, 78, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 115, 101, 108, 101, 99, 116, 105, 111, 110, 39, 32, 109, 97, 121, 32, 99, 111, 110, 116, 97, 105, 110, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 105, 109, 97, 103, 101, 115, 32, 40, 115, 101, 101, 32, 110, 101, 120, 116, 32, 115, 101, 99, 116, 105, 111, 110, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 119, 105, 100, 116, 104, 91, 37, 93, 44, 95, 104, 101, 105, 103, 104, 116, 91, 37, 93, 44, 95, 100, 101, 112, 116, 104, 91, 37, 93, 44, 95, 115, 112, 101, 99, 116, 114, 117, 109, 91, 37, 93, 44, 95, 118, 97, 108, 117, 101, 115, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 105, 122, 101, 32, 97, 110, 100, 32, 118, 97, 108, 117, 101, 115, 32, 40, 97, 100, 100, 105, 110, 103, 32, 39, 37, 39, 32, 116, 111, 32, 97, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 109, 101, 97, 110, 115, 32, 39, 112, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 105, 122, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 120, 105, 115, 44, 32, 116, 97, 107, 101, 110, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 39, 91, 45, 49, 93, 39, 39, 41, 46, 32, 65, 110, 121, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 99, 97, 110, 32, 98, 101, 32, 97, 108, 115, 111, 32, 119, 114, 105, 116, 116, 101, 110, 32, 97, 115, 32, 39, 91, 105, 109, 97, 103, 101, 93, 39, 44, 32, 97, 110, 100, 32, 105, 115, 32, 116, 104, 101, 110, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 32, 115, 105, 122, 101, 32, 40, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 120, 105, 115, 41, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 116, 104, 101, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 32, 91, 105, 109, 97, 103, 101, 93, 46, 32, 39, 118, 97, 108, 117, 101, 115, 39, 32, 99, 97, 110, 32, 98, 101, 32, 101, 105, 116, 104, 101, 114, 32, 97, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 110, 117, 109, 98, 101, 114, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 44, 32, 111, 114, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 97, 115, 32, 101, 46, 103, 46, 32, 105, 110, 32, 105, 110, 112, 117, 116, 32, 105, 116, 101, 109, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 105, 102, 40, 99, 61, 61, 49, 44, 121, 44, 48, 41, 41, 39, 32, 119, 104, 105, 99, 104, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 50, 53, 54, 120, 50, 53, 54, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 97, 116, 105, 97, 108, 32, 115, 104, 97, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 114, 101, 100, 32, 97, 110, 100, 32, 103, 114, 101, 101, 110, 32, 99, 104, 97, 110, 110, 101, 108, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 40, 118, 49, 44, 118, 50, 44, 46, 46, 41, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 112, 114, 101, 115, 99, 114, 105, 98, 101, 100, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 86, 97, 108, 117, 101, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 105, 110, 115, 105, 100, 101, 32, 112, 97, 114, 101, 110, 116, 104, 101, 115, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 39, 44, 39, 32, 40, 99, 111, 108, 117, 109, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 46, 41, 44, 32, 39, 59, 39, 32, 40, 114, 111, 119, 32, 115, 101, 112, 46, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 47, 39, 32, 40, 115, 108, 105, 99, 101, 32, 115, 101, 112, 46, 41, 32, 111, 114, 32, 39, 94, 39, 32, 40, 99, 104, 97, 110, 110, 101, 108, 32, 115, 101, 112, 46, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 40, 49, 44, 50, 44, 51, 59, 52, 44, 53, 44, 54, 59, 55, 44, 56, 44, 57, 41, 39, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 51, 120, 51, 32, 109, 97, 116, 114, 105, 120, 32, 40, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 41, 44, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 49, 32, 116, 111, 32, 57, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 48, 39, 58, 32, 73, 110, 115, 101, 114, 116, 32, 97, 32, 110, 101, 119, 32, 39, 101, 109, 112, 116, 121, 39, 32, 105, 109, 97, 103, 101, 44, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 110, 111, 32, 112, 105, 120, 101, 108, 32, 100, 97, 116, 97, 46, 32, 69, 109, 112, 116, 121, 32, 105, 109, 97, 103, 101, 115, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 111, 110, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 110, 32, 114, 97, 114, 101, 32, 111, 99, 99, 97, 115, 105, 111, 110, 115, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 112, 117, 116, 32, 105, 116, 101, 109, 32, 39, 110, 97, 109, 101, 61, 118, 97, 108, 117, 101, 39, 32, 100, 101, 99, 108, 97, 114, 101, 115, 32, 97, 32, 110, 101, 119, 32, 108, 111, 99, 97, 108, 32, 111, 114, 32, 103, 108, 111, 98, 97, 108, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 110, 97, 109, 101, 39, 44, 32, 111, 114, 32, 97, 115, 115, 105, 103, 110, 32, 97, 32, 110, 101, 119, 10, 92, 110, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 32, 116, 111, 32, 97, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 118, 97, 114, 105, 97, 98, 108, 101, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 115, 101, 116, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 10, 92, 110, 32, 32, 32, 32, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 32, 65, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 108, 111, 99, 97, 108, 32, 116, 111, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 111, 109, 109, 97, 110, 100, 32, 101, 120, 99, 101, 112, 116, 10, 92, 110, 32, 32, 32, 32, 32, 119, 104, 101, 110, 32, 105, 116, 32, 115, 116, 97, 114, 116, 115, 32, 98, 121, 32, 116, 104, 101, 32, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 32, 39, 95, 39, 46, 32, 73, 110, 32, 116, 104, 97, 116, 32, 99, 97, 115, 101, 44, 32, 105, 116, 32, 98, 101, 99, 111, 109, 101, 115, 32, 97, 108, 115, 111, 32, 97, 99, 99, 101, 115, 115, 105, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 98, 121, 32, 97, 110, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 110, 118, 111, 107, 101, 100, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 99, 111, 112, 101, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 67, 111, 109, 109, 97, 110, 100, 32, 105, 116, 101, 109, 115, 32, 97, 110, 100, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 98, 121, 32, 39, 45, 39, 32, 100, 101, 115, 105, 103, 110, 97, 116, 101, 115, 32, 97, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 46, 32, 71, 101, 110, 101, 114, 97, 108, 108, 121, 44, 32, 99, 111, 109, 109, 97, 110, 100, 115, 10, 92, 110, 32, 32, 32, 32, 32, 112, 101, 114, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 110, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 109, 111, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 104, 97, 118, 101, 32, 116, 119, 111, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 110, 97, 109, 101, 115, 32, 40, 114, 101, 103, 117, 108, 97, 114, 32, 97, 110, 100, 32, 115, 104, 111, 114, 116, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 99, 111, 109, 109, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 110, 97, 109, 101, 115, 32, 39, 45, 114, 101, 115, 105, 122, 101, 39, 32, 97, 110, 100, 32, 39, 45, 114, 39, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 105, 109, 97, 103, 101, 32, 114, 101, 115, 105, 122, 105, 110, 103, 32, 97, 99, 116, 105, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 121, 32, 104, 97, 118, 101, 32, 109, 97, 110, 100, 97, 116, 111, 114, 121, 32, 111, 114, 32, 111, 112, 116, 105, 111, 110, 97, 108, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 32, 67, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 109, 117, 115, 116, 32, 98, 101, 10, 92, 110, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 110, 101, 120, 116, 32, 105, 116, 101, 109, 32, 111, 110, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 46, 32, 67, 111, 109, 109, 97, 115, 32, 39, 44, 39, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 101, 112, 97, 114, 97, 116, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 44, 32, 105, 102, 32, 97, 110, 121, 32, 114, 101, 113, 117, 105, 114, 101, 100, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 111, 102, 32, 97, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 121, 32, 98, 101, 32, 114, 101, 115, 116, 114, 105, 99, 116, 101, 100, 32, 111, 110, 108, 121, 32, 116, 111, 32, 97, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 44, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 97, 112, 112, 101, 110, 100, 105, 110, 103, 32, 39, 91, 115, 117, 98, 115, 101, 116, 93, 39, 32, 116, 111, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 46, 32, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 118, 97, 108, 105, 100, 32, 115, 121, 110, 116, 97, 120, 101, 115, 32, 102, 111, 114, 32, 39, 115, 117, 98, 115, 101, 116, 39, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 49, 44, 51, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 91, 49, 93, 32, 97, 110, 100, 32, 91, 51, 93, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 51, 45, 53, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 51, 93, 32, 116, 111, 32, 91, 53, 93, 32, 40, 105, 46, 101, 44, 32, 91, 51, 93, 44, 91, 52, 93, 32, 97, 110, 100, 32, 91, 53, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 53, 48, 37, 45, 49, 48, 48, 37, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 104, 97, 108, 102, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 45, 52, 45, 45, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 97, 110, 100, 32, 116, 104, 101, 32, 102, 111, 117, 114, 32, 108, 97, 116, 101, 115, 116, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 45, 57, 58, 51, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 32, 116, 111, 32, 91, 57, 93, 44, 32, 119, 105, 116, 104, 32, 97, 32, 115, 116, 101, 112, 32, 111, 102, 32, 51, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 105, 46, 101, 46, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 32, 91, 51, 93, 44, 32, 91, 54, 93, 32, 97, 110, 100, 32, 91, 57, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 45, 45, 49, 58, 50, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 108, 121, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 119, 105, 116, 104, 32, 101, 118, 101, 110, 32, 105, 110, 100, 105, 99, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 48, 44, 50, 45, 52, 44, 53, 48, 37, 45, 45, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 91, 48, 93, 44, 91, 50, 93, 44, 91, 51, 93, 44, 91, 52, 93, 32, 97, 110, 100, 32, 111, 110, 32, 116, 104, 101, 32, 115, 101, 99, 111, 110, 100, 32, 104, 97, 108, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 94, 48, 44, 49, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 116, 119, 111, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 45, 99, 111, 109, 91, 110, 97, 109, 101, 49, 44, 110, 97, 109, 101, 50, 93, 39, 58, 32, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 111, 110, 32, 110, 97, 109, 101, 100, 32, 105, 109, 97, 103, 101, 115, 32, 39, 110, 97, 109, 101, 49, 39, 32, 97, 110, 100, 32, 39, 110, 97, 109, 101, 50, 39, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 100, 105, 99, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 119, 97, 121, 115, 32, 115, 111, 114, 116, 101, 100, 32, 105, 110, 32, 105, 110, 99, 114, 101, 97, 115, 105, 110, 103, 32, 111, 114, 100, 101, 114, 44, 32, 97, 110, 100, 32, 100, 117, 112, 108, 105, 99, 97, 116, 101, 32, 105, 110, 100, 105, 99, 101, 115, 32, 97, 114, 101, 10, 92, 110, 32, 32, 32, 32, 32, 100, 105, 115, 99, 97, 114, 100, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 115, 32, 39, 91, 51, 45, 49, 44, 49, 45, 51, 93, 39, 32, 97, 110, 100, 32, 39, 91, 49, 44, 49, 44, 49, 44, 51, 44, 50, 93, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 10, 92, 110, 32, 32, 32, 32, 32, 39, 91, 49, 45, 51, 93, 39, 46, 32, 73, 102, 32, 121, 111, 117, 32, 119, 97, 110, 116, 32, 116, 111, 32, 114, 101, 112, 101, 97, 116, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 116, 105, 109, 101, 115, 32, 111, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 44, 32, 117, 115, 101, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 39, 45, 114, 101, 112, 101, 97, 116, 46, 46, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 46, 32, 73, 110, 118, 101, 114, 116, 105, 110, 103, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 97, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 99, 97, 110, 32, 98, 101, 32, 97, 99, 104, 105, 101, 118, 101, 100, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 118, 101, 114, 116, 105, 110, 103, 32, 102, 105, 114, 115, 116, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 44, 32, 119, 105, 116, 104, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 114, 101, 118, 101, 114, 115, 101, 91, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 39, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 110, 118, 111, 107, 101, 100, 32, 119, 105, 116, 104, 111, 117, 116, 32, 39, 91, 115, 117, 98, 115, 101, 116, 93, 39, 32, 97, 114, 101, 32, 97, 112, 112, 108, 105, 101, 100, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 39, 45, 45, 39, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 39, 45, 39, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 97, 99, 116, 32, 39, 105, 110, 45, 112, 108, 97, 99, 101, 39, 32, 98, 117, 116, 32, 105, 110, 115, 101, 114, 116, 115, 32, 105, 116, 115, 10, 92, 110, 32, 32, 32, 32, 32, 114, 101, 115, 117, 108, 116, 32, 97, 115, 32, 111, 110, 101, 32, 111, 114, 32, 115, 101, 118, 101, 114, 97, 108, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 114, 101, 32, 97, 114, 101, 32, 116, 119, 111, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 116, 121, 112, 101, 115, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 104, 97, 116, 32, 99, 97, 110, 32, 98, 101, 32, 114, 117, 110, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 78, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 114, 101, 32, 104, 97, 114, 100, 45, 99, 111, 100, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 97, 108, 105, 116, 105, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 99, 111, 114, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 116, 104, 117, 115, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 97, 115, 32, 109, 97, 99, 104, 105, 110, 101, 32, 99, 111, 100, 101, 32, 97, 110, 100, 32, 114, 117, 110, 32, 113, 117, 105, 99, 107, 108, 121, 44, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 79, 109, 105, 116, 116, 105, 110, 103, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 44, 32, 101, 120, 99, 101, 112, 116, 32, 105, 102, 32, 97, 108, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 97, 108, 115, 111, 32, 111, 109, 105, 116, 116, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 99, 97, 108, 108, 32, 116, 111, 32, 39, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 44, 44, 53, 39, 32, 105, 115, 32, 105, 110, 118, 97, 108, 105, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 117, 116, 32, 39, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 39, 32, 105, 115, 32, 99, 111, 114, 114, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 114, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 32, 71, 39, 77, 73, 67, 32, 112, 105, 112, 101, 108, 105, 110, 101, 115, 32, 111, 102, 32, 110, 97, 116, 105, 118, 101, 32, 111, 114, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 97, 110, 100, 32, 114, 117, 110, 32, 115, 108, 111, 119, 101, 114, 32, 116, 104, 97, 110, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 66, 117, 116, 32, 111, 109, 105, 116, 116, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 44, 44, 49, 48, 48, 44, 44, 50, 39, 32, 111, 114, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 39, 32, 97, 114, 101, 32, 99, 111, 114, 114, 101, 99, 116, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 117, 115, 101, 114, 32, 109, 97, 121, 32, 101, 97, 115, 105, 108, 121, 32, 97, 100, 100, 32, 105, 116, 115, 32, 111, 119, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 111, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 40, 115, 101, 101, 32, 115, 101, 99, 116, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 39, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 39, 41, 46, 32, 78, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 97, 100, 100, 101, 100, 32, 117, 110, 108, 101, 115, 115, 32, 121, 111, 117, 32, 109, 111, 100, 105, 102, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 110, 112, 117, 116, 115, 32, 47, 32, 111, 117, 116, 112, 117, 116, 115, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 114, 101, 97, 100, 47, 119, 114, 105, 116, 101, 32, 109, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 108, 97, 115, 115, 105, 99, 97, 108, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 44, 32, 105, 110, 99, 108, 117, 100, 105, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 50, 100, 32, 103, 114, 97, 121, 115, 99, 97, 108, 101, 47, 99, 111, 108, 111, 114, 32, 102, 105, 108, 101, 115, 58, 32, 46, 112, 110, 103, 44, 32, 46, 106, 112, 101, 103, 44, 32, 46, 103, 105, 102, 44, 32, 46, 112, 110, 109, 44, 32, 46, 116, 105, 102, 44, 32, 46, 98, 109, 112, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 102, 105, 108, 101, 115, 58, 32, 46, 100, 99, 109, 44, 32, 46, 104, 100, 114, 44, 32, 46, 110, 105, 105, 44, 32, 46, 112, 97, 110, 44, 32, 46, 105, 110, 114, 44, 32, 46, 112, 110, 107, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 115, 58, 32, 46, 109, 112, 101, 103, 44, 32, 46, 97, 118, 105, 44, 32, 46, 109, 111, 118, 44, 32, 46, 111, 103, 103, 44, 32, 46, 102, 108, 118, 44, 32, 46, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 71, 101, 110, 101, 114, 105, 99, 32, 97, 115, 99, 105, 105, 32, 111, 114, 32, 98, 105, 110, 97, 114, 121, 32, 100, 97, 116, 97, 32, 102, 105, 108, 101, 115, 58, 32, 46, 99, 105, 109, 103, 44, 32, 46, 99, 105, 109, 103, 122, 44, 32, 46, 100, 108, 109, 44, 32, 46, 97, 115, 99, 44, 32, 46, 112, 102, 109, 44, 32, 46, 114, 97, 119, 44, 32, 46, 116, 120, 116, 44, 32, 46, 104, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 105, 108, 101, 115, 58, 32, 46, 111, 102, 102, 46, 10, 92, 110, 32, 32, 45, 32, 87, 104, 101, 110, 32, 100, 101, 97, 108, 105, 110, 103, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 71, 39, 77, 73, 67, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 114, 101, 97, 100, 115, 44, 32, 119, 114, 105, 116, 101, 115, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 115, 32, 100, 97, 116, 97, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 117, 115, 117, 97, 108, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 115, 112, 97, 99, 101, 46, 10, 92, 110, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 115, 32, 97, 98, 108, 101, 32, 116, 111, 32, 109, 97, 110, 97, 103, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 116, 104, 97, 116, 32, 109, 97, 121, 32, 98, 101, 32, 114, 101, 97, 100, 32, 102, 114, 111, 109, 32, 102, 105, 108, 101, 115, 32, 111, 114, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 98, 121, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 115, 116, 111, 114, 101, 100, 32, 97, 115, 32, 111, 110, 101, 45, 99, 111, 108, 117, 109, 110, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 115, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 116, 104, 101, 32, 111, 98, 106, 101, 99, 116, 32, 100, 97, 116, 97, 44, 32, 105, 110, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 111, 114, 100, 101, 114, 58, 32, 123, 32, 109, 97, 103, 105, 99, 95, 110, 117, 109, 98, 101, 114, 59, 32, 115, 105, 122, 101, 115, 59, 32, 118, 101, 114, 116, 105, 99, 101, 115, 59, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 59, 32, 99, 111, 108, 111, 114, 115, 59, 32, 111, 112, 97, 99, 105, 116, 105, 101, 115, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 84, 104, 101, 115, 101, 32, 51, 100, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 99, 97, 110, 32, 98, 101, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 97, 115, 32, 114, 101, 103, 117, 108, 97, 114, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 115, 112, 108, 105, 116, 51, 100, 39, 32, 102, 111, 114, 32, 97, 99, 99, 101, 115, 115, 105, 110, 103, 32, 101, 97, 99, 104, 32, 111, 102, 32, 116, 104, 101, 115, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 100, 97, 116, 97, 32, 115, 101, 112, 97, 114, 97, 116, 101, 108, 121, 41, 46, 10, 92, 110, 32, 32, 45, 32, 66, 101, 32, 97, 119, 97, 114, 101, 32, 116, 104, 97, 116, 32, 117, 115, 117, 97, 108, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 32, 109, 97, 121, 32, 98, 101, 32, 115, 111, 109, 101, 116, 105, 109, 101, 115, 32, 110, 111, 116, 32, 97, 100, 97, 112, 116, 101, 100, 32, 116, 111, 32, 115, 116, 111, 114, 101, 32, 97, 108, 108, 32, 116, 104, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 44, 32, 115, 105, 110, 99, 101, 32, 71, 39, 77, 73, 67, 32, 117, 115, 101, 115, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 99, 111, 100, 105, 110, 103, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 115, 97, 118, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 116, 104, 97, 116, 32, 119, 97, 115, 32, 105, 110, 105, 116, 105, 97, 108, 108, 121, 32, 108, 111, 97, 100, 101, 100, 32, 97, 115, 32, 97, 32, 49, 54, 98, 105, 116, 115, 47, 99, 104, 97, 110, 110, 101, 108, 32, 105, 109, 97, 103, 101, 44, 32, 97, 115, 32, 97, 32, 46, 106, 112, 103, 32, 102, 105, 108, 101, 32, 119, 105, 108, 108, 32, 114, 101, 115, 117, 108, 116, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 32, 108, 111, 115, 115, 32, 111, 102, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 46, 32, 85, 115, 101, 32, 116, 104, 101, 32, 46, 99, 105, 109, 103, 32, 102, 105, 108, 101, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 40, 111, 114, 32, 46, 99, 105, 109, 103, 122, 44, 32, 105, 116, 115, 32, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 118, 101, 114, 115, 105, 111, 110, 41, 32, 116, 111, 32, 101, 110, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 97, 108, 108, 32, 100, 97, 116, 97, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 119, 105, 108, 108, 32, 98, 101, 32, 112, 114, 101, 115, 101, 114, 118, 101, 100, 32, 119, 104, 101, 110, 32, 115, 97, 118, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 70, 105, 108, 101, 32, 111, 112, 116, 105, 111, 110, 115, 32, 99, 97, 110, 47, 109, 117, 115, 116, 32, 98, 101, 32, 115, 101, 116, 32, 102, 111, 114, 32, 116, 104, 101, 115, 101, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 105, 108, 101, 32, 102, 111, 114, 109, 97, 116, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 86, 105, 100, 101, 111, 32, 102, 105, 108, 101, 115, 58, 32, 79, 110, 108, 121, 32, 115, 117, 98, 45, 102, 114, 97, 109, 101, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 109, 97, 121, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 101, 120, 116, 44, 91, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 91, 37, 93, 91, 44, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 91, 37, 93, 91, 44, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 114, 97, 116, 101, 32, 97, 110, 100, 32, 98, 105, 116, 114, 97, 116, 101, 32, 40, 105, 110, 32, 75, 98, 47, 115, 41, 32, 99, 97, 110, 32, 98, 101, 32, 97, 108, 115, 111, 32, 115, 101, 116, 32, 98, 121, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 46, 109, 112, 103, 44, 95, 102, 112, 115, 44, 95, 98, 105, 116, 114, 97, 116, 101, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 114, 97, 119, 32, 98, 105, 110, 97, 114, 121, 32, 102, 105, 108, 101, 115, 58, 32, 73, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 97, 110, 100, 32, 105, 110, 112, 117, 116, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 32, 109, 97, 121, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 104, 101, 110, 32, 108, 111, 97, 100, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 46, 114, 97, 119, 32, 102, 105, 108, 101, 115, 32, 119, 105, 116, 104, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 114, 97, 119, 91, 44, 116, 121, 112, 101, 93, 91, 44, 119, 105, 100, 116, 104, 93, 91, 44, 104, 101, 105, 103, 104, 116, 91, 44, 100, 101, 112, 116, 104, 91, 44, 100, 105, 109, 93, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 73, 102, 32, 110, 111, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 105, 115, 32, 97, 32, 111, 110, 101, 45, 99, 111, 108, 117, 109, 110, 32, 118, 101, 99, 116, 111, 114, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 109, 97, 120, 105, 109, 117, 109, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 104, 101, 105, 103, 104, 116, 46, 32, 80, 105, 120, 101, 108, 32, 116, 121, 112, 101, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 46, 114, 97, 119, 91, 44, 116, 121, 112, 101, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 116, 121, 112, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 98, 111, 111, 108, 32, 124, 32, 117, 99, 104, 97, 114, 32, 124, 32, 99, 104, 97, 114, 32, 124, 32, 117, 115, 104, 111, 114, 116, 32, 124, 32, 115, 104, 111, 114, 116, 32, 124, 32, 117, 105, 110, 116, 32, 124, 32, 105, 110, 116, 32, 124, 32, 102, 108, 111, 97, 116, 32, 124, 32, 100, 111, 117, 98, 108, 101, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 121, 117, 118, 32, 102, 105, 108, 101, 115, 58, 32, 73, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 109, 117, 115, 116, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 44, 32, 97, 110, 100, 32, 111, 110, 108, 121, 32, 115, 117, 98, 45, 102, 114, 97, 109, 101, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 109, 97, 121, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 121, 117, 118, 44, 119, 105, 100, 116, 104, 44, 104, 101, 105, 103, 104, 116, 91, 44, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 91, 44, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 91, 44, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 116, 105, 102, 102, 32, 102, 105, 108, 101, 115, 58, 32, 79, 110, 108, 121, 32, 115, 117, 98, 45, 105, 109, 97, 103, 101, 115, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 112, 97, 103, 101, 115, 32, 116, 105, 102, 102, 32, 102, 105, 108, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 108, 111, 97, 100, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 116, 105, 102, 44, 91, 102, 105, 114, 115, 116, 95, 102, 114, 97, 109, 101, 44, 91, 108, 97, 115, 116, 95, 102, 114, 97, 109, 101, 44, 91, 115, 116, 101, 112, 93, 93, 93, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 103, 105, 102, 32, 102, 105, 108, 101, 115, 58, 32, 65, 110, 105, 109, 97, 116, 101, 100, 32, 103, 105, 102, 32, 102, 105, 108, 101, 115, 32, 99, 97, 110, 32, 98, 101, 32, 115, 97, 118, 101, 100, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 103, 105, 102, 44, 102, 112, 115, 44, 110, 98, 95, 108, 111, 111, 112, 115, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 83, 112, 101, 99, 105, 102, 121, 32, 39, 110, 98, 95, 108, 111, 111, 112, 115, 61, 48, 39, 32, 116, 111, 32, 103, 101, 116, 32, 97, 110, 32, 105, 110, 102, 105, 110, 105, 116, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 108, 111, 111, 112, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 106, 112, 101, 103, 32, 102, 105, 108, 101, 115, 58, 32, 84, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 113, 117, 97, 108, 105, 116, 121, 32, 109, 97, 121, 32, 98, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 40, 105, 110, 32, 37, 41, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 106, 112, 103, 44, 51, 48, 39, 32, 40, 104, 101, 114, 101, 44, 32, 116, 111, 32, 103, 101, 116, 32, 97, 32, 51, 48, 37, 32, 113, 117, 97, 108, 105, 116, 121, 32, 111, 117, 116, 112, 117, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 46, 109, 110, 99, 32, 102, 105, 108, 101, 115, 58, 32, 84, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 104, 101, 97, 100, 101, 114, 32, 99, 97, 110, 32, 115, 101, 116, 32, 102, 114, 111, 109, 32, 97, 110, 111, 116, 104, 101, 114, 32, 102, 105, 108, 101, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 111, 117, 116, 112, 117, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 102, 105, 108, 101, 110, 97, 109, 101, 46, 109, 110, 99, 44, 104, 101, 97, 100, 101, 114, 95, 116, 101, 109, 112, 108, 97, 116, 101, 46, 109, 110, 99, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 70, 105, 108, 101, 110, 97, 109, 101, 115, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 39, 46, 103, 109, 105, 99, 39, 32, 97, 114, 101, 32, 97, 115, 115, 117, 109, 101, 100, 32, 116, 111, 32, 98, 101, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 115, 46, 32, 76, 111, 97, 100, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 104, 32, 97, 32, 102, 105, 108, 101, 32, 119, 105, 108, 108, 32, 97, 100, 100, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 105, 116, 32, 100, 101, 102, 105, 110, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 110, 115, 101, 114, 116, 105, 110, 103, 32, 39, 101, 120, 116, 58, 39, 32, 111, 110, 32, 116, 104, 101, 32, 98, 101, 103, 105, 110, 110, 105, 110, 103, 32, 111, 102, 32, 97, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 40, 101, 46, 103, 46, 32, 39, 106, 112, 103, 58, 102, 105, 108, 101, 110, 97, 109, 101, 39, 41, 32, 102, 111, 114, 99, 101, 115, 32, 71, 39, 77, 73, 67, 32, 116, 111, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 114, 101, 97, 100, 47, 119, 114, 105, 116, 101, 32, 116, 104, 101, 32, 102, 105, 108, 101, 32, 97, 115, 32, 105, 116, 32, 119, 111, 117, 108, 100, 32, 104, 97, 118, 101, 32, 98, 101, 101, 110, 32, 100, 111, 110, 101, 32, 105, 102, 32, 105, 116, 32, 104, 97, 100, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 45, 32, 83, 111, 109, 101, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 115, 32, 97, 110, 100, 32, 111, 112, 116, 105, 111, 110, 115, 32, 109, 97, 121, 32, 110, 111, 116, 32, 98, 101, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 121, 111, 117, 114, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 39, 103, 109, 105, 99, 39, 44, 32, 100, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 99, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 32, 102, 108, 97, 103, 115, 32, 115, 101, 116, 32, 102, 111, 114, 32, 116, 104, 101, 32, 98, 117, 105, 108, 100, 32, 111, 102, 32, 116, 104, 101, 32, 39, 103, 109, 105, 99, 39, 32, 98, 105, 110, 97, 114, 105, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 83, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 105, 116, 101, 109, 115, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 39, 64, 39, 44, 32, 39, 36, 39, 32, 111, 114, 32, 39, 123, 125, 39, 32, 109, 97, 121, 32, 98, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 101, 102, 111, 114, 101, 32, 98, 101, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 100, 46, 32, 85, 115, 101, 10, 92, 110, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 110, 103, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 98, 101, 108, 111, 119, 32, 116, 111, 32, 97, 99, 99, 101, 115, 115, 32, 100, 97, 116, 97, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 35, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 42, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 99, 112, 117, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 46, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 94, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 101, 114, 98, 111, 115, 105, 116, 121, 32, 108, 101, 118, 101, 108, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 37, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 112, 105, 100, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 124, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 97, 108, 117, 101, 32, 40, 101, 120, 112, 114, 101, 115, 115, 101, 100, 32, 105, 110, 32, 115, 101, 99, 111, 110, 100, 115, 41, 32, 111, 102, 32, 97, 32, 109, 105, 108, 108, 105, 115, 101, 99, 111, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 116, 105, 109, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 63, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 112, 105, 120, 101, 108, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 47, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 108, 101, 118, 101, 108, 115, 32, 105, 110, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 99, 111, 112, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 47, 125, 39, 32, 111, 114, 32, 39, 64, 123, 47, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 99, 111, 110, 116, 101, 110, 116, 32, 111, 102, 32, 116, 104, 101, 32, 103, 108, 111, 98, 97, 108, 32, 115, 99, 111, 112, 101, 44, 32, 111, 114, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 105, 116, 46, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 115, 99, 111, 112, 101, 32, 105, 116, 101, 109, 115, 44, 32, 116, 104, 101, 121, 32, 97, 114, 101, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 121, 32, 115, 108, 97, 115, 104, 101, 115, 32, 39, 47, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 62, 39, 32, 97, 110, 100, 32, 39, 64, 60, 39, 32, 97, 114, 101, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 46, 32, 84, 104, 101, 121, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 110, 101, 115, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 114, 101, 112, 101, 97, 116, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 115, 32, 116, 104, 97, 116, 32, 97, 114, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 114, 117, 110, 110, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 62, 125, 39, 32, 111, 114, 32, 39, 64, 123, 62, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 105, 110, 100, 105, 99, 101, 32, 118, 97, 108, 117, 101, 115, 32, 40, 111, 114, 32, 97, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 116, 104, 101, 109, 41, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 114, 117, 110, 110, 105, 110, 103, 32, 39, 114, 101, 112, 101, 97, 116, 45, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 115, 44, 32, 101, 120, 112, 114, 101, 115, 115, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 99, 101, 110, 100, 105, 110, 103, 32, 111, 114, 100, 101, 114, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 111, 109, 32, 48, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 100, 105, 99, 101, 115, 44, 32, 116, 104, 101, 121, 32, 97, 114, 101, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 60, 125, 39, 32, 111, 114, 32, 39, 64, 123, 60, 44, 115, 117, 98, 115, 101, 116, 125, 39, 32, 100, 111, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 98, 117, 116, 32, 105, 110, 32, 100, 101, 115, 99, 101, 110, 100, 105, 110, 103, 32, 111, 114, 100, 101, 114, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 105, 110, 100, 105, 99, 101, 39, 32, 111, 114, 32, 39, 64, 123, 105, 110, 100, 105, 99, 101, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 91, 105, 110, 100, 105, 99, 101, 93, 32, 40, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 41, 44, 32, 111, 114, 32, 98, 121, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 101, 97, 116, 117, 114, 101, 32, 40, 111, 114, 32, 115, 117, 98, 115, 101, 116, 41, 32, 111, 102, 32, 105, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 39, 105, 110, 100, 105, 99, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 97, 110, 32, 105, 110, 100, 105, 99, 101, 32, 111, 114, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 46, 32, 82, 101, 113, 117, 101, 115, 116, 101, 100, 32, 39, 102, 101, 97, 116, 117, 114, 101, 100, 39, 32, 99, 97, 110, 32, 98, 101, 32, 111, 110, 101, 32, 111, 102, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 111, 108, 117, 109, 110, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 114, 111, 119, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 115, 108, 105, 99, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 115, 39, 58, 32, 105, 109, 97, 103, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 40, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 100, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 100, 115, 39, 58, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 32, 120, 32, 105, 109, 97, 103, 101, 32, 115, 112, 101, 99, 116, 114, 117, 109, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 105, 46, 101, 46, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 101, 113, 46, 32, 116, 111, 32, 39, 35, 39, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 114, 39, 58, 32, 105, 109, 97, 103, 101, 32, 115, 104, 97, 114, 101, 100, 32, 115, 116, 97, 116, 101, 32, 40, 49, 44, 32, 105, 102, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 98, 117, 102, 102, 101, 114, 32, 105, 115, 32, 115, 104, 97, 114, 101, 100, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 110, 39, 58, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 32, 111, 114, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 40, 105, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 114, 101, 97, 100, 32, 102, 114, 111, 109, 32, 97, 32, 102, 105, 108, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 98, 39, 58, 32, 105, 109, 97, 103, 101, 32, 98, 97, 115, 101, 110, 97, 109, 101, 32, 40, 105, 46, 101, 46, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 119, 105, 116, 104, 111, 117, 116, 32, 116, 104, 101, 32, 102, 111, 108, 100, 101, 114, 32, 112, 97, 116, 104, 32, 110, 111, 114, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 105, 109, 97, 103, 101, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 40, 105, 46, 101, 32, 108, 97, 115, 116, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 39, 46, 39, 32, 105, 110, 32, 116, 104, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 102, 39, 58, 32, 105, 109, 97, 103, 101, 32, 102, 111, 108, 100, 101, 114, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 35, 39, 58, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 120, 32, 104, 101, 105, 103, 104, 116, 32, 120, 32, 100, 101, 112, 116, 104, 32, 120, 32, 115, 112, 101, 99, 116, 114, 117, 109, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 43, 39, 58, 32, 115, 117, 109, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 45, 39, 58, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 42, 39, 58, 32, 112, 114, 111, 100, 117, 99, 116, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 47, 39, 58, 32, 113, 117, 111, 116, 105, 101, 110, 116, 32, 111, 102, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 109, 39, 58, 32, 109, 105, 110, 105, 109, 117, 109, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 77, 39, 58, 32, 109, 97, 120, 105, 109, 117, 109, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 97, 39, 58, 32, 97, 118, 101, 114, 97, 103, 101, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 118, 39, 58, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 116, 39, 58, 32, 116, 101, 120, 116, 32, 115, 116, 114, 105, 110, 103, 32, 98, 117, 105, 108, 116, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 44, 32, 114, 101, 103, 97, 114, 100, 101, 100, 32, 97, 115, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 67, 39, 58, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 40, 120, 91, 37, 93, 44, 95, 121, 91, 37, 93, 44, 95, 122, 91, 37, 93, 44, 95, 99, 91, 37, 93, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 32, 97, 116, 32, 40, 120, 91, 37, 93, 44, 121, 91, 37, 93, 44, 122, 91, 37, 93, 44, 99, 91, 37, 93, 41, 44, 32, 119, 105, 116, 104, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 105, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 101, 105, 116, 104, 101, 114, 32, 97, 115, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 117, 98, 115, 101, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 44, 32, 111, 114, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 116, 111, 32, 101, 118, 97, 108, 117, 97, 116, 101, 32, 40, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 39, 64, 123, 45, 49, 44, 48, 45, 53, 48, 37, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 32, 110, 117, 109, 101, 114, 105, 99, 97, 108, 32, 118, 97, 108, 117, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 109, 105, 110, 103, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 104, 97, 108, 102, 32, 100, 97, 116, 97, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 64, 123, 48, 44, 119, 43, 104, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 117, 109, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 100, 116, 104, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 33, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 105, 115, 105, 98, 105, 108, 105, 116, 121, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 40, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 99, 108, 111, 115, 101, 100, 32, 124, 32, 49, 61, 118, 105, 115, 105, 98, 108, 101, 32, 125, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 33, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 111, 114, 32, 39, 64, 123, 33, 105, 110, 100, 105, 99, 101, 44, 102, 101, 97, 116, 117, 114, 101, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 101, 97, 116, 117, 114, 101, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 91, 48, 93, 32, 40, 111, 114, 32, 91, 105, 110, 100, 105, 99, 101, 93, 44, 32, 105, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 41, 46, 32, 82, 101, 113, 117, 101, 115, 116, 101, 100, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 99, 97, 110, 32, 98, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 100, 116, 104, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 32, 109, 97, 110, 97, 103, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 101, 105, 103, 104, 116, 32, 40, 105, 46, 101, 46, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 32, 109, 97, 110, 97, 103, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 104, 39, 58, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 100, 116, 104, 32, 120, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 116, 104, 32, 40, 105, 46, 101, 46, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 103, 101, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 101, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 104, 101, 105, 103, 104, 116, 32, 40, 105, 46, 101, 46, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 103, 101, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 101, 39, 58, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 100, 116, 104, 32, 120, 32, 119, 105, 110, 100, 111, 119, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 117, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 119, 105, 100, 116, 104, 32, 40, 97, 99, 116, 117, 97, 108, 108, 121, 32, 105, 110, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 111, 110, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 39, 32, 118, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 104, 101, 105, 103, 104, 116, 32, 40, 97, 99, 116, 117, 97, 108, 108, 121, 32, 105, 110, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 111, 110, 32, 116, 104, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 117, 118, 39, 58, 32, 115, 99, 114, 101, 101, 110, 32, 119, 105, 100, 116, 104, 32, 120, 32, 115, 99, 114, 101, 101, 110, 32, 104, 101, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 88, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 111, 114, 32, 45, 49, 44, 32, 105, 102, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 121, 39, 58, 32, 89, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 111, 114, 32, 45, 49, 44, 32, 105, 102, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 100, 105, 115, 112, 108, 97, 121, 32, 97, 114, 101, 97, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 98, 39, 58, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 123, 32, 49, 61, 108, 101, 102, 116, 45, 98, 117, 116, 46, 32, 124, 32, 50, 61, 114, 105, 103, 104, 116, 45, 98, 117, 116, 46, 32, 124, 32, 52, 61, 109, 105, 100, 100, 108, 101, 45, 98, 117, 116, 46, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 111, 39, 58, 32, 115, 116, 97, 116, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 111, 117, 115, 101, 32, 119, 104, 101, 101, 108, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 107, 39, 58, 32, 100, 101, 99, 105, 109, 97, 108, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 101, 32, 112, 114, 101, 115, 115, 101, 100, 32, 107, 101, 121, 32, 105, 102, 32, 97, 110, 121, 44, 32, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 110, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 40, 48, 32, 111, 114, 32, 49, 41, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 99, 108, 111, 115, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 114, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 114, 101, 115, 105, 122, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 109, 39, 58, 32, 98, 111, 111, 108, 101, 97, 110, 32, 116, 101, 108, 108, 105, 110, 103, 32, 105, 102, 32, 116, 104, 101, 32, 105, 110, 115, 116, 97, 110, 116, 32, 100, 105, 115, 112, 108, 97, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 109, 111, 118, 101, 100, 32, 114, 101, 99, 101, 110, 116, 108, 121, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 39, 102, 101, 97, 116, 117, 114, 101, 39, 32, 115, 116, 97, 110, 100, 115, 32, 102, 111, 114, 32, 97, 32, 107, 101, 121, 99, 111, 100, 101, 32, 110, 97, 109, 101, 32, 105, 110, 32, 99, 97, 112, 105, 116, 97, 108, 32, 108, 101, 116, 116, 101, 114, 115, 44, 32, 97, 110, 100, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 45, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 98, 111, 111, 108, 101, 97, 110, 32, 100, 101, 115, 99, 114, 105, 98, 105, 110, 103, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 107, 101, 121, 32, 115, 116, 97, 116, 101, 32, 123, 32, 48, 61, 112, 114, 101, 115, 115, 101, 100, 32, 124, 32, 49, 61, 114, 101, 108, 101, 97, 115, 101, 100, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 64, 123, 92, 34, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 92, 34, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 32, 115, 101, 116, 32, 98, 121, 32, 116, 104, 101, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 32, 40, 115, 101, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 115, 116, 97, 116, 117, 115, 39, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 64, 123, 125, 39, 32, 115, 116, 97, 110, 100, 115, 32, 116, 104, 117, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 115, 116, 97, 116, 117, 115, 32, 118, 97, 108, 117, 101, 46, 10, 92, 110, 32, 32, 45, 32, 39, 36, 110, 97, 109, 101, 39, 32, 97, 110, 100, 32, 39, 36, 123, 110, 97, 109, 101, 125, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 110, 97, 109, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 10, 92, 110, 32, 32, 32, 32, 32, 40, 115, 101, 116, 32, 112, 114, 101, 118, 105, 111, 117, 115, 108, 121, 32, 98, 121, 32, 105, 116, 101, 109, 32, 39, 110, 97, 109, 101, 61, 118, 97, 108, 117, 101, 39, 41, 44, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 111, 115, 105, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 39, 91, 110, 97, 109, 101, 93, 39, 44, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 32, 79, 83, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 40, 105, 110, 32, 116, 104, 105, 115, 32, 111, 114, 100, 101, 114, 41, 46, 10, 92, 110, 32, 32, 45, 32, 39, 36, 62, 39, 32, 97, 110, 100, 32, 39, 36, 60, 39, 32, 40, 114, 101, 115, 112, 46, 32, 39, 36, 123, 62, 125, 39, 32, 97, 110, 100, 32, 39, 36, 123, 60, 125, 39, 41, 32, 97, 114, 101, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 102, 111, 114, 32, 39, 64, 123, 62, 44, 45, 49, 125, 39, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 39, 64, 123, 60, 44, 45, 49, 125, 39, 46, 32, 84, 104, 101, 121, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 105, 110, 99, 114, 101, 97, 115, 105, 110, 103, 47, 100, 101, 99, 114, 101, 97, 115, 105, 110, 103, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 40, 99, 117, 114, 114, 101, 110, 116, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 114, 117, 110, 110, 105, 110, 103, 41, 32, 39, 114, 101, 112, 101, 97, 116, 46, 46, 100, 111, 110, 101, 39, 32, 108, 111, 111, 112, 46, 10, 92, 110, 32, 32, 45, 32, 65, 110, 121, 32, 111, 116, 104, 101, 114, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 105, 110, 115, 105, 100, 101, 32, 98, 114, 97, 99, 101, 115, 32, 40, 97, 115, 32, 105, 110, 32, 39, 123, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 125, 39, 41, 32, 105, 115, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 97, 115, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 92, 110, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 97, 110, 100, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 44, 32, 101, 120, 99, 101, 112, 116, 32, 102, 111, 114, 32, 116, 104, 101, 32, 116, 104, 114, 101, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 99, 97, 115, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 97, 110, 100, 32, 101, 110, 100, 115, 32, 98, 121, 32, 115, 105, 110, 103, 108, 101, 32, 113, 117, 111, 116, 101, 115, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 32, 116, 104, 97, 116, 32, 99, 111, 109, 112, 111, 115, 101, 115, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 115, 116, 114, 105, 110, 103, 44, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 116, 101, 109, 32, 39, 123, 39, 102, 111, 111, 39, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 49, 48, 50, 44, 49, 49, 49, 44, 49, 49, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 97, 110, 100, 32, 101, 110, 100, 115, 32, 119, 105, 116, 104, 32, 98, 97, 99, 107, 113, 117, 111, 116, 101, 115, 32, 39, 96, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 119, 104, 111, 115, 101, 32, 97, 115, 99, 105, 105, 32, 99, 111, 100, 101, 115, 32, 97, 114, 101, 32, 103, 105, 118, 101, 110, 32, 98, 121, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 32, 98, 97, 99, 107, 113, 117, 111, 116, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 32, 105, 116, 101, 109, 32, 39, 123, 96, 49, 48, 50, 44, 49, 49, 49, 44, 49, 49, 49, 96, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 102, 111, 111, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 39, 39, 61, 61, 39, 39, 32, 111, 114, 32, 39, 39, 33, 61, 39, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 48, 32, 111, 114, 32, 49, 44, 32, 119, 104, 101, 116, 104, 101, 114, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 104, 101, 32, 115, 116, 114, 105, 110, 103, 115, 32, 98, 101, 115, 105, 100, 101, 32, 116, 104, 101, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 97, 114, 101, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 111, 114, 32, 110, 111, 116, 32, 40, 99, 97, 115, 101, 45, 115, 101, 110, 115, 105, 116, 105, 118, 101, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 111, 116, 104, 32, 105, 116, 101, 109, 115, 32, 39, 123, 102, 111, 111, 39, 61, 61, 39, 102, 111, 111, 125, 39, 32, 97, 110, 100, 32, 39, 123, 102, 111, 111, 39, 33, 61, 39, 70, 79, 79, 125, 39, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 39, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 73, 102, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 116, 97, 114, 116, 115, 32, 119, 105, 116, 104, 32, 97, 110, 32, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 39, 95, 39, 44, 32, 105, 116, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 101, 118, 97, 108, 117, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 116, 114, 117, 110, 99, 97, 116, 101, 100, 32, 116, 111, 32, 97, 32, 114, 101, 97, 100, 97, 98, 108, 101, 32, 102, 111, 114, 109, 97, 116, 46, 10, 92, 110, 32, 32, 45, 32, 73, 116, 101, 109, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 105, 115, 32, 110, 101, 118, 101, 114, 32, 100, 111, 110, 101, 32, 105, 110, 32, 105, 116, 101, 109, 115, 32, 98, 101, 116, 119, 101, 101, 110, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 46, 32, 79, 110, 101, 32, 109, 117, 115, 116, 32, 98, 114, 101, 97, 107, 32, 116, 104, 101, 32, 113, 117, 111, 116, 101, 115, 10, 92, 110, 32, 32, 32, 32, 116, 111, 32, 101, 110, 97, 98, 108, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 105, 102, 32, 110, 101, 101, 100, 101, 100, 44, 32, 97, 115, 32, 105, 110, 32, 92, 34, 51, 43, 56, 32, 107, 103, 32, 61, 32, 92, 34, 123, 51, 43, 56, 125, 92, 34, 32, 107, 103, 92, 34, 46, 32, 85, 115, 105, 110, 103, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 10, 92, 110, 32, 32, 32, 32, 105, 115, 32, 116, 104, 101, 110, 32, 97, 32, 99, 111, 110, 118, 101, 110, 105, 101, 110, 116, 32, 119, 97, 121, 32, 116, 111, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 115, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 32, 105, 110, 32, 105, 116, 101, 109, 115, 44, 32, 119, 104, 101, 110, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 10, 92, 110, 32, 32, 45, 32, 79, 110, 101, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 32, 109, 101, 99, 104, 97, 110, 105, 115, 109, 32, 111, 110, 32, 105, 116, 101, 109, 115, 32, 111, 117, 116, 115, 105, 100, 101, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 115, 44, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 101, 115, 99, 97, 112, 105, 110, 103, 32, 116, 104, 101, 32, 39, 64, 39, 44, 39, 123, 39, 44, 39, 125, 39, 32, 111, 114, 32, 39, 36, 39, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 44, 32, 97, 115, 32, 105, 110, 32, 39, 92, 92, 123, 51, 43, 52, 92, 92, 125, 92, 92, 32, 100, 111, 101, 115, 110, 39, 116, 92, 92, 32, 101, 118, 97, 108, 117, 97, 116, 101, 39, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 97, 110, 32, 101, 109, 98, 101, 100, 100, 101, 100, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 46, 32, 73, 116, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, 111, 32, 101, 118, 97, 108, 117, 97, 116, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 105, 110, 115, 105, 100, 101, 10, 92, 110, 32, 32, 32, 32, 32, 98, 114, 97, 99, 101, 115, 32, 39, 123, 125, 39, 44, 32, 111, 114, 32, 102, 111, 114, 109, 117, 108, 97, 115, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 104, 97, 116, 32, 109, 97, 121, 32, 116, 97, 107, 101, 32, 111, 110, 101, 32, 97, 115, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 40, 101, 46, 103, 46, 32, 39, 45, 102, 105, 108, 108, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 87, 104, 101, 110, 32, 117, 115, 101, 100, 32, 105, 110, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 97, 32, 102, 111, 114, 109, 117, 108, 97, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 102, 111, 114, 32, 101, 97, 99, 104, 32, 112, 105, 120, 101, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 109, 97, 116, 104, 32, 112, 97, 114, 115, 101, 114, 32, 117, 110, 100, 101, 114, 115, 116, 97, 110, 100, 115, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 101, 116, 32, 111, 102, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 44, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 97, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 95, 32, 85, 115, 117, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 58, 32, 124, 124, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 111, 114, 41, 44, 32, 38, 38, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 97, 110, 100, 41, 44, 32, 124, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 111, 114, 41, 44, 32, 38, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 97, 110, 100, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 33, 61, 44, 32, 61, 61, 44, 32, 60, 61, 44, 32, 62, 61, 44, 32, 60, 44, 32, 62, 44, 32, 60, 60, 32, 40, 108, 101, 102, 116, 32, 98, 105, 116, 119, 105, 115, 101, 32, 115, 104, 105, 102, 116, 41, 44, 32, 62, 62, 32, 40, 114, 105, 103, 104, 116, 32, 98, 105, 116, 119, 105, 115, 101, 32, 115, 104, 105, 102, 116, 41, 44, 32, 45, 44, 32, 43, 44, 32, 42, 44, 32, 47, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 37, 32, 40, 109, 111, 100, 117, 108, 111, 41, 44, 32, 94, 32, 40, 112, 111, 119, 101, 114, 41, 44, 32, 33, 32, 40, 108, 111, 103, 105, 99, 97, 108, 32, 110, 111, 116, 41, 44, 32, 126, 32, 40, 98, 105, 116, 119, 105, 115, 101, 32, 110, 111, 116, 41, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 85, 115, 117, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 58, 32, 115, 105, 110, 40, 41, 44, 32, 99, 111, 115, 40, 41, 44, 32, 116, 97, 110, 40, 41, 44, 32, 97, 115, 105, 110, 40, 41, 44, 32, 97, 99, 111, 115, 40, 41, 44, 32, 97, 116, 97, 110, 40, 41, 44, 32, 115, 105, 110, 104, 40, 41, 44, 32, 99, 111, 115, 104, 40, 41, 44, 32, 116, 97, 110, 104, 40, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 108, 111, 103, 40, 41, 44, 32, 108, 111, 103, 50, 40, 41, 44, 32, 108, 111, 103, 49, 48, 40, 41, 44, 32, 101, 120, 112, 40, 41, 44, 32, 115, 105, 103, 110, 40, 41, 44, 32, 97, 98, 115, 40, 41, 44, 32, 97, 116, 97, 110, 50, 40, 41, 44, 32, 114, 111, 117, 110, 100, 40, 41, 44, 32, 110, 97, 114, 103, 40, 41, 44, 32, 97, 114, 103, 40, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 105, 115, 118, 97, 108, 40, 41, 44, 32, 105, 115, 110, 97, 110, 40, 41, 44, 32, 105, 115, 105, 110, 102, 40, 41, 44, 32, 105, 115, 105, 110, 116, 40, 41, 44, 32, 105, 115, 98, 111, 111, 108, 40, 41, 44, 32, 114, 111, 108, 40, 41, 32, 40, 108, 101, 102, 116, 32, 98, 105, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 41, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 114, 111, 114, 40, 41, 32, 40, 114, 105, 103, 104, 116, 32, 98, 105, 116, 32, 114, 111, 116, 97, 116, 105, 111, 110, 41, 44, 32, 109, 105, 110, 40, 41, 44, 32, 109, 97, 120, 40, 41, 44, 32, 115, 105, 110, 99, 40, 41, 44, 32, 105, 110, 116, 40, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 97, 116, 97, 110, 50, 40, 41, 39, 32, 105, 115, 32, 116, 104, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 97, 116, 97, 110, 40, 41, 32, 119, 105, 116, 104, 32, 116, 119, 111, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 39, 121, 44, 120, 39, 32, 40, 97, 115, 32, 105, 110, 32, 67, 47, 67, 43, 43, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 110, 97, 114, 103, 40, 41, 39, 32, 114, 101, 116, 117, 114, 110, 115, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 39, 97, 114, 103, 40, 105, 44, 97, 95, 49, 44, 46, 46, 44, 97, 95, 110, 41, 39, 32, 114, 101, 116, 117, 114, 110, 115, 32, 116, 104, 101, 32, 105, 116, 104, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 97, 95, 105, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 115, 32, 39, 109, 105, 110, 40, 41, 39, 32, 97, 110, 100, 32, 39, 109, 97, 120, 40, 41, 39, 32, 99, 97, 110, 32, 98, 101, 32, 99, 97, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 97, 110, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 70, 117, 110, 99, 116, 105, 111, 110, 115, 32, 39, 105, 115, 118, 97, 108, 40, 41, 39, 44, 32, 39, 105, 115, 110, 97, 110, 40, 41, 39, 44, 32, 39, 105, 115, 105, 110, 102, 40, 41, 39, 44, 32, 39, 105, 115, 98, 111, 111, 108, 40, 41, 39, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 116, 101, 115, 116, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 111, 102, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 32, 103, 105, 118, 101, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 114, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 112, 114, 101, 45, 100, 101, 102, 105, 110, 101, 100, 46, 32, 84, 104, 101, 121, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 111, 118, 101, 114, 108, 111, 97, 100, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 119, 39, 58, 32, 119, 105, 100, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 104, 39, 58, 32, 104, 101, 105, 103, 104, 116, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 100, 39, 58, 32, 100, 101, 112, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 115, 39, 58, 32, 115, 112, 101, 99, 116, 114, 117, 109, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 99, 111, 108, 117, 109, 110, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 121, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 114, 111, 119, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 122, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 115, 108, 105, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 99, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 39, 58, 32, 99, 117, 114, 114, 101, 110, 116, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 32, 40, 105, 46, 101, 46, 32, 118, 97, 108, 117, 101, 32, 108, 111, 99, 97, 116, 101, 100, 32, 97, 116, 32, 40, 120, 44, 121, 44, 122, 44, 99, 41, 41, 32, 111, 102, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 109, 39, 44, 39, 105, 77, 39, 44, 39, 105, 97, 39, 44, 39, 105, 118, 39, 58, 32, 82, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 44, 32, 109, 97, 120, 105, 109, 117, 109, 44, 32, 97, 118, 101, 114, 97, 103, 101, 32, 118, 97, 108, 117, 101, 115, 32, 97, 110, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 109, 39, 44, 39, 121, 109, 39, 44, 39, 122, 109, 39, 44, 39, 99, 109, 39, 58, 32, 84, 104, 101, 32, 112, 105, 120, 101, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 120, 77, 39, 44, 39, 121, 77, 39, 44, 39, 122, 77, 39, 44, 39, 99, 77, 39, 58, 32, 84, 104, 101, 32, 112, 105, 120, 101, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 112, 105, 39, 58, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 112, 105, 44, 32, 105, 46, 101, 46, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 46, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 101, 39, 58, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 101, 44, 32, 105, 46, 101, 46, 32, 50, 46, 55, 49, 56, 50, 56, 46, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 63, 39, 32, 111, 114, 32, 39, 117, 39, 58, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 91, 48, 44, 49, 93, 44, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 117, 110, 105, 102, 111, 114, 109, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 103, 39, 58, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 44, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 111, 102, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 49, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 114, 111, 117, 103, 104, 108, 121, 32, 105, 110, 32, 91, 45, 53, 44, 53, 93, 41, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 115, 101, 32, 115, 112, 101, 99, 105, 97, 108, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 59, 39, 58, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 46, 32, 84, 104, 101, 32, 114, 101, 116, 117, 114, 110, 101, 100, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 49, 59, 50, 59, 112, 105, 39, 32, 105, 115, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 97, 115, 32, 39, 112, 105, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 61, 39, 58, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 97, 115, 115, 105, 103, 110, 109, 101, 110, 116, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 105, 110, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 32, 99, 97, 110, 32, 111, 110, 108, 121, 32, 114, 101, 102, 101, 114, 32, 116, 111, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 110, 117, 109, 101, 114, 105, 99, 97, 108, 32, 118, 97, 108, 117, 101, 115, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 115, 32, 97, 114, 101, 32, 99, 97, 115, 101, 45, 115, 101, 110, 115, 105, 116, 105, 118, 101, 46, 32, 85, 115, 101, 32, 116, 104, 105, 115, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 105, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 110, 106, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 39, 59, 39, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 101, 118, 97, 108, 117, 97, 98, 108, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 44, 32, 115, 117, 99, 104, 32, 97, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 39, 116, 61, 99, 111, 115, 40, 120, 41, 59, 51, 42, 116, 94, 50, 43, 50, 42, 116, 43, 49, 39, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 104, 101, 115, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 114, 101, 109, 97, 105, 110, 32, 108, 111, 99, 97, 108, 32, 116, 111, 32, 116, 104, 101, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 112, 97, 114, 115, 101, 114, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 97, 99, 99, 101, 115, 115, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 101, 118, 97, 108, 117, 97, 116, 101, 100, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 46, 10, 92, 110, 32, 32, 32, 32, 95, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 115, 111, 32, 100, 101, 102, 105, 110, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 102, 40, 101, 120, 112, 114, 95, 99, 111, 110, 100, 44, 101, 120, 112, 114, 95, 116, 104, 101, 110, 44, 101, 120, 112, 114, 95, 101, 108, 115, 101, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 39, 101, 120, 112, 114, 95, 116, 104, 101, 110, 39, 32, 111, 114, 32, 39, 101, 120, 112, 114, 95, 101, 108, 115, 101, 39, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 100, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 39, 101, 120, 112, 114, 95, 99, 111, 110, 100, 39, 32, 40, 48, 61, 102, 97, 108, 115, 101, 44, 32, 111, 116, 104, 101, 114, 61, 116, 114, 117, 101, 41, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 102, 105, 108, 108, 32, 105, 102, 40, 120, 37, 49, 48, 61, 61, 48, 44, 50, 53, 53, 44, 105, 41, 39, 32, 119, 105, 108, 108, 32, 100, 114, 97, 119, 32, 98, 108, 97, 110, 107, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 108, 105, 110, 101, 115, 32, 111, 110, 32, 101, 118, 101, 114, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 49, 48, 116, 104, 32, 99, 111, 108, 117, 109, 110, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 63, 40, 109, 97, 120, 41, 39, 32, 111, 114, 32, 39, 63, 40, 109, 105, 110, 44, 109, 97, 120, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 91, 48, 44, 109, 97, 120, 93, 32, 111, 114, 32, 91, 109, 105, 110, 44, 109, 97, 120, 93, 44, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 97, 32, 117, 110, 105, 102, 111, 114, 109, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 46, 32, 39, 117, 40, 109, 97, 120, 41, 39, 32, 97, 110, 100, 32, 39, 117, 40, 48, 44, 109, 97, 120, 41, 39, 32, 109, 101, 97, 110, 32, 116, 104, 101, 32, 115, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 105, 40, 95, 97, 44, 95, 98, 44, 95, 99, 44, 95, 100, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 114, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 108, 111, 99, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 97, 44, 98, 44, 99, 44, 100, 41, 32, 105, 110, 32, 116, 104, 101, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 105, 102, 32, 97, 110, 121, 32, 40, 48, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 110, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 32, 124, 32, 111, 116, 104, 101, 114, 61, 108, 105, 110, 101, 97, 114, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 99, 97, 110, 32, 98, 101, 32, 123, 32, 48, 61, 100, 105, 114, 105, 99, 104, 108, 101, 116, 32, 124, 32, 49, 61, 110, 101, 117, 109, 97, 110, 110, 32, 124, 32, 50, 61, 99, 121, 99, 108, 105, 99, 32, 125, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 109, 105, 116, 116, 101, 100, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 97, 114, 101, 32, 114, 101, 112, 108, 97, 99, 101, 100, 32, 98, 121, 32, 116, 104, 101, 105, 114, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 115, 32, 119, 104, 105, 99, 104, 32, 97, 114, 101, 32, 114, 101, 115, 112, 101, 99, 116, 105, 118, 101, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 120, 44, 32, 121, 44, 32, 122, 44, 32, 99, 32, 97, 110, 100, 32, 48, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 39, 106, 40, 95, 100, 120, 44, 95, 100, 121, 44, 95, 100, 122, 44, 95, 100, 99, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 41, 39, 58, 32, 100, 111, 101, 115, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 32, 108, 111, 99, 97, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 120, 43, 100, 120, 44, 121, 43, 100, 121, 44, 122, 43, 100, 122, 44, 99, 43, 100, 99, 41, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 102, 105, 108, 108, 32, 48, 46, 53, 42, 40, 105, 40, 120, 43, 49, 41, 45, 105, 40, 120, 45, 49, 41, 41, 39, 32, 119, 105, 108, 108, 32, 101, 115, 116, 105, 109, 97, 116, 101, 32, 116, 104, 101, 32, 88, 45, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 32, 99, 108, 97, 115, 115, 105, 99, 97, 108, 32, 102, 105, 110, 105, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 115, 99, 104, 101, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 46, 32, 73, 102, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 102, 111, 114, 109, 117, 108, 97, 32, 115, 116, 97, 114, 116, 115, 32, 119, 105, 116, 104, 32, 39, 62, 39, 32, 111, 114, 32, 39, 60, 39, 44, 32, 116, 104, 101, 32, 111, 112, 101, 114, 97, 116, 111, 114, 115, 32, 39, 105, 40, 46, 46, 41, 39, 32, 97, 110, 100, 32, 39, 106, 40, 46, 46, 41, 39, 32, 119, 105, 108, 108, 32, 114, 101, 116, 117, 114, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 98, 101, 105, 110, 103, 32, 109, 111, 100, 105, 102, 105, 101, 100, 44, 32, 105, 110, 32, 102, 111, 114, 119, 97, 114, 100, 32, 40, 39, 62, 39, 41, 32, 111, 114, 32, 98, 97, 99, 107, 119, 97, 114, 100, 32, 40, 39, 60, 39, 41, 32, 111, 114, 100, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 105, 115, 32, 97, 108, 119, 97, 121, 115, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 101, 118, 97, 108, 117, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 39, 123, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 125, 39, 44, 10, 92, 110, 32, 32, 32, 32, 32, 101, 46, 103, 46, 32, 71, 39, 77, 73, 67, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 50, 53, 54, 44, 49, 50, 56, 32, 45, 102, 32, 123, 119, 125, 39, 32, 119, 105, 108, 108, 32, 99, 114, 101, 97, 116, 101, 32, 97, 32, 50, 53, 54, 120, 49, 50, 56, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 108, 101, 100, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 32, 50, 53, 54, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 73, 109, 97, 103, 101, 32, 97, 110, 100, 32, 100, 97, 116, 97, 32, 118, 105, 101, 119, 101, 114, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 71, 39, 77, 73, 67, 32, 104, 97, 115, 32, 115, 111, 109, 101, 32, 118, 101, 114, 121, 32, 104, 97, 110, 100, 121, 32, 101, 109, 98, 101, 100, 100, 101, 100, 32, 118, 105, 115, 117, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 109, 111, 100, 117, 108, 101, 115, 44, 32, 102, 111, 114, 32, 49, 100, 32, 115, 105, 103, 110, 97, 108, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 112, 108, 111, 116, 39, 41, 44, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 105, 109, 97, 103, 101, 115, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 39, 41, 32, 97, 110, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 115, 10, 92, 110, 32, 32, 32, 32, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 100, 105, 115, 112, 108, 97, 121, 51, 100, 39, 41, 46, 32, 73, 116, 32, 101, 110, 97, 98, 108, 101, 115, 32, 97, 110, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 32, 111, 102, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 107, 101, 121, 98, 111, 97, 114, 100, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 110, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 118, 105, 101, 119, 101, 114, 115, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 68, 58, 32, 73, 110, 99, 114, 101, 97, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 67, 58, 32, 68, 101, 99, 114, 101, 97, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 82, 58, 32, 82, 101, 115, 101, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 70, 58, 32, 84, 111, 103, 103, 108, 101, 32, 102, 117, 108, 108, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 83, 58, 32, 83, 97, 118, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 98, 109, 112, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 79, 58, 32, 83, 97, 118, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 118, 105, 101, 119, 101, 100, 32, 100, 97, 116, 97, 44, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 99, 105, 109, 103, 122, 39, 46, 10, 92, 110, 32, 32, 45, 32, 83, 104, 111, 114, 116, 99, 117, 116, 115, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 116, 111, 32, 116, 104, 101, 32, 49, 100, 47, 50, 100, 47, 51, 100, 32, 105, 109, 97, 103, 101, 32, 118, 105, 101, 119, 101, 114, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 80, 58, 32, 80, 108, 97, 121, 32, 122, 45, 115, 116, 97, 99, 107, 32, 111, 102, 32, 102, 114, 97, 109, 101, 115, 32, 97, 115, 32, 97, 32, 109, 111, 118, 105, 101, 32, 40, 102, 111, 114, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 51, 100, 32, 105, 109, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 86, 58, 32, 69, 110, 97, 98, 108, 101, 47, 100, 105, 115, 97, 98, 108, 101, 32, 51, 68, 32, 118, 105, 101, 119, 32, 40, 102, 111, 114, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 51, 100, 32, 105, 109, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 83, 72, 73, 70, 84, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 71, 111, 32, 108, 101, 102, 116, 47, 114, 105, 103, 104, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 65, 76, 84, 43, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 71, 111, 32, 117, 112, 47, 100, 111, 119, 110, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 78, 117, 109, 101, 114, 105, 99, 32, 80, 65, 68, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 32, 40, 43, 47, 45, 41, 32, 97, 110, 100, 32, 109, 111, 118, 101, 32, 116, 104, 114, 111, 117, 103, 104, 32, 122, 111, 111, 109, 101, 100, 32, 105, 109, 97, 103, 101, 32, 40, 100, 105, 103, 105, 116, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 66, 65, 67, 75, 83, 80, 65, 67, 69, 58, 32, 82, 101, 115, 101, 116, 32, 122, 111, 111, 109, 32, 115, 99, 97, 108, 101, 46, 10, 92, 110, 32, 32, 45, 32, 83, 104, 111, 114, 116, 99, 117, 116, 115, 32, 115, 112, 101, 99, 105, 102, 105, 99, 32, 116, 111, 32, 116, 104, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 118, 105, 101, 119, 101, 114, 32, 97, 114, 101, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 108, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 82, 111, 116, 97, 116, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 114, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 90, 111, 111, 109, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 41, 43, 40, 109, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 41, 58, 32, 83, 104, 105, 102, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 40, 109, 111, 117, 115, 101, 119, 104, 101, 101, 108, 41, 58, 32, 90, 111, 111, 109, 32, 105, 110, 47, 111, 117, 116, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 70, 49, 32, 46, 46, 32, 67, 84, 82, 76, 43, 70, 54, 58, 32, 83, 119, 105, 116, 99, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 51, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 90, 58, 32, 69, 110, 97, 98, 108, 101, 47, 100, 105, 115, 97, 98, 108, 101, 32, 122, 45, 98, 117, 102, 102, 101, 114, 101, 100, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 65, 58, 32, 83, 104, 111, 119, 47, 104, 105, 100, 101, 32, 51, 100, 32, 97, 120, 101, 115, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 71, 58, 32, 83, 97, 118, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 97, 115, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 102, 105, 108, 101, 32, 39, 103, 109, 105, 99, 95, 120, 120, 120, 120, 46, 111, 102, 102, 39, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 67, 84, 82, 76, 43, 84, 58, 32, 83, 119, 105, 116, 99, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 115, 105, 110, 103, 108, 101, 47, 100, 111, 117, 98, 108, 101, 45, 115, 105, 100, 101, 100, 32, 51, 100, 32, 109, 111, 100, 101, 115, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 65, 100, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 32, 45, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 99, 97, 110, 32, 98, 101, 32, 100, 101, 102, 105, 110, 101, 100, 32, 98, 121, 32, 97, 32, 117, 115, 101, 114, 44, 32, 116, 104, 114, 111, 117, 103, 104, 32, 116, 104, 101, 32, 117, 115, 101, 32, 111, 102, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 115, 46, 10, 92, 110, 32, 32, 45, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 32, 102, 105, 108, 101, 32, 105, 115, 32, 97, 32, 115, 105, 109, 112, 108, 101, 32, 97, 115, 99, 105, 105, 32, 116, 101, 120, 116, 32, 102, 105, 108, 101, 44, 32, 119, 104, 101, 114, 101, 32, 101, 97, 99, 104, 32, 108, 105, 110, 101, 32, 115, 116, 97, 114, 116, 115, 32, 101, 105, 116, 104, 101, 114, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 39, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 58, 32, 99, 111, 109, 109, 97, 110, 100, 95, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 39, 32, 111, 114, 32, 39, 99, 111, 109, 109, 97, 110, 100, 95, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 40, 99, 111, 110, 116, 105, 110, 117, 97, 116, 105, 111, 110, 41, 39, 46, 10, 92, 110, 32, 32, 45, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 115, 32, 109, 117, 115, 116, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 65, 110, 121, 32, 39, 32, 92, 35, 32, 99, 111, 109, 109, 101, 110, 116, 39, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 105, 108, 101, 32, 105, 115, 32, 100, 105, 115, 99, 97, 114, 100, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 10, 92, 110, 32, 32, 32, 32, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 44, 32, 119, 104, 101, 114, 101, 118, 101, 114, 32, 105, 116, 32, 105, 115, 32, 108, 111, 99, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 108, 105, 110, 101, 46, 10, 92, 110, 32, 32, 45, 32, 73, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 58, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 42, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 118, 101, 114, 98, 97, 116, 105, 109, 32, 99, 111, 112, 121, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 115, 116, 114, 105, 110, 103, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 35, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 105, 110, 100, 105, 99, 101, 32, 111, 102, 32, 107, 110, 111, 119, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 101, 105, 116, 104, 101, 114, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 98, 121, 32, 116, 104, 101, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 114, 32, 111, 114, 32, 115, 101, 116, 32, 116, 111, 32, 97, 32, 100, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 32, 105, 110, 32, 116, 104, 101, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 63, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 116, 101, 108, 108, 105, 110, 103, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 115, 117, 98, 115, 101, 116, 32, 114, 101, 115, 116, 114, 105, 99, 116, 105, 111, 110, 32, 40, 111, 110, 108, 121, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 102, 117, 108, 32, 119, 104, 101, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 110, 101, 101, 100, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 100, 101, 115, 99, 114, 105, 112, 116, 105, 118, 101, 32, 109, 101, 115, 115, 97, 103, 101, 115, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 105, 39, 32, 97, 110, 100, 32, 39, 36, 123, 105, 125, 39, 32, 97, 114, 101, 32, 98, 111, 116, 104, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 105, 45, 116, 104, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 105, 110, 100, 105, 99, 101, 115, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 99, 104, 32, 97, 115, 32, 39, 36, 123, 45, 106, 125, 39, 32, 97, 114, 101, 32, 97, 108, 108, 111, 119, 101, 100, 32, 97, 110, 100, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 116, 104, 101, 32, 106, 94, 116, 104, 32, 108, 97, 116, 101, 115, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 32, 39, 36, 34, 34, 48, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 98, 121, 32, 116, 104, 101, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 123, 105, 61, 100, 101, 102, 97, 117, 108, 116, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 36, 105, 32, 40, 105, 102, 32, 100, 101, 102, 105, 110, 101, 100, 41, 32, 111, 114, 32, 98, 121, 32, 105, 116, 115, 32, 110, 101, 119, 32, 118, 97, 108, 117, 101, 32, 115, 101, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 116, 111, 32, 39, 100, 101, 102, 97, 117, 108, 116, 39, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 40, 39, 100, 101, 102, 97, 117, 108, 116, 39, 32, 109, 97, 121, 32, 98, 101, 32, 97, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 97, 115, 32, 119, 101, 108, 108, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 123, 115, 117, 98, 115, 101, 116, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 118, 97, 108, 117, 101, 115, 32, 40, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 41, 32, 111, 102, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 115, 117, 98, 115, 101, 116, 46, 32, 70, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 34, 34, 123, 50, 45, 45, 50, 125, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 101, 100, 32, 98, 121, 32, 97, 108, 108, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 101, 120, 99, 101, 112, 116, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 97, 110, 100, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 111, 110, 101, 46, 32, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 34, 34, 123, 94, 48, 125, 39, 32, 105, 115, 32, 116, 104, 101, 110, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 97, 108, 108, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 118, 111, 107, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 40, 101, 113, 46, 32, 116, 111, 32, 39, 36, 34, 34, 42, 39, 32, 105, 102, 32, 97, 108, 108, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 104, 97, 118, 101, 32, 105, 110, 100, 101, 101, 100, 32, 97, 32, 118, 97, 108, 117, 101, 41, 46, 10, 92, 110, 32, 32, 32, 32, 46, 32, 39, 36, 34, 34, 61, 118, 97, 114, 39, 32, 105, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 115, 101, 116, 32, 111, 102, 32, 105, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 115, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 97, 115, 115, 105, 103, 110, 32, 101, 97, 99, 104, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 36, 105, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 116, 111, 32, 116, 104, 101, 32, 110, 97, 109, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 118, 97, 114, 36, 105, 39, 32, 40, 102, 111, 114, 32, 105, 32, 105, 110, 32, 91, 48, 46, 46, 36, 34, 34, 35, 93, 41, 46, 32, 84, 104, 105, 115, 32, 105, 115, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 32, 117, 115, 101, 102, 117, 108, 32, 119, 104, 101, 110, 32, 97, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 119, 97, 110, 116, 32, 116, 111, 32, 109, 97, 110, 97, 103, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 117, 109, 98, 101, 114, 115, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 46, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 110, 97, 109, 101, 115, 32, 109, 117, 115, 116, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 117, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 91, 97, 45, 122, 65, 45, 90, 48, 45, 57, 95, 93, 32, 97, 110, 100, 32, 99, 97, 110, 110, 111, 116, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 110, 117, 109, 98, 101, 114, 46, 10, 92, 110, 32, 32, 45, 32, 84, 104, 101, 115, 101, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 32, 36, 45, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 114, 101, 32, 97, 108, 119, 97, 121, 115, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 101, 100, 44, 32, 101, 118, 101, 110, 32, 105, 110, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 100, 32, 105, 116, 101, 109, 115, 32, 111, 114, 10, 92, 110, 32, 32, 32, 32, 32, 119, 104, 101, 110, 32, 116, 104, 101, 32, 100, 111, 108, 108, 97, 114, 32, 115, 105, 103, 110, 32, 39, 36, 39, 32, 105, 115, 32, 101, 115, 99, 97, 112, 101, 100, 32, 119, 105, 116, 104, 32, 97, 32, 98, 97, 99, 107, 115, 108, 97, 115, 104, 32, 39, 92, 92, 39, 46, 32, 84, 111, 32, 97, 118, 111, 105, 100, 32, 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 44, 32, 112, 108, 97, 99, 101, 10, 92, 110, 32, 32, 32, 32, 32, 97, 110, 32, 101, 109, 112, 116, 121, 32, 100, 111, 117, 98, 108, 101, 32, 113, 117, 111, 116, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 106, 117, 115, 116, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 39, 36, 39, 32, 40, 97, 115, 32, 105, 110, 32, 39, 36, 92, 34, 92, 34, 49, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 83, 112, 101, 99, 105, 102, 121, 105, 110, 103, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 109, 97, 121, 32, 98, 101, 32, 115, 107, 105, 112, 112, 101, 100, 32, 119, 104, 101, 110, 32, 105, 110, 118, 111, 107, 105, 110, 103, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 44, 32, 98, 121, 32, 114, 101, 112, 108, 97, 99, 105, 110, 103, 32, 116, 104, 101, 109, 32, 98, 121, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 115, 32, 39, 44, 39, 32, 97, 115, 32, 105, 110, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 45, 102, 108, 111, 119, 101, 114, 32, 44, 44, 51, 39, 46, 32, 79, 109, 105, 116, 116, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 115, 101, 116, 32, 116, 111, 32, 116, 104, 101, 105, 114, 32, 100, 101, 102, 97, 117, 108, 116, 10, 92, 110, 32, 32, 32, 32, 32, 118, 97, 108, 117, 101, 115, 44, 32, 119, 104, 105, 99, 104, 32, 109, 117, 115, 116, 32, 98, 101, 32, 116, 104, 117, 115, 32, 101, 120, 112, 108, 105, 99, 105, 116, 108, 121, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 101, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 99, 117, 115, 116, 111, 109, 10, 92, 110, 32, 32, 32, 32, 32, 99, 111, 109, 109, 97, 110, 100, 32, 40, 117, 115, 105, 110, 103, 32, 100, 101, 102, 97, 117, 108, 116, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 115, 32, 97, 115, 32, 39, 36, 34, 34, 123, 49, 61, 100, 101, 102, 97, 117, 108, 116, 125, 39, 41, 46, 10, 92, 110, 32, 32, 45, 32, 73, 102, 32, 111, 110, 101, 32, 110, 117, 109, 98, 101, 114, 101, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 114, 101, 113, 117, 101, 115, 116, 101, 100, 32, 105, 110, 32, 97, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 32, 104, 97, 115, 32, 110, 111, 32, 118, 97, 108, 117, 101, 44, 32, 97, 110, 32, 101, 114, 114, 111, 114, 32, 105, 115, 32, 116, 104, 114, 111, 119, 110, 10, 92, 110, 32, 32, 32, 32, 32, 98, 121, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 34, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 65, 108, 108, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 71, 39, 77, 73, 67, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 114, 101, 32, 108, 105, 115, 116, 101, 100, 32, 98, 101, 108, 111, 119, 44, 32, 99, 108, 97, 115, 115, 105, 102, 105, 101, 100, 32, 98, 121, 32, 116, 104, 101, 109, 101, 115, 46, 10, 92, 110, 32, 87, 104, 101, 110, 32, 115, 101, 118, 101, 114, 97, 108, 32, 99, 104, 111, 105, 99, 101, 115, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 97, 114, 101, 32, 112, 111, 115, 115, 105, 98, 108, 101, 44, 32, 116, 104, 101, 121, 32, 97, 112, 112, 101, 97, 114, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 32, 98, 121, 32, 39, 124, 39, 46, 10, 92, 110, 32, 65, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 110, 115, 105, 100, 101, 32, 39, 91, 93, 39, 32, 111, 114, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 98, 121, 32, 39, 95, 39, 32, 105, 115, 32, 111, 112, 116, 105, 111, 110, 97, 108, 32, 101, 120, 99, 101, 112, 116, 32, 119, 104, 101, 110, 32, 115, 116, 97, 110, 100, 105, 110, 103, 32, 102, 111, 114, 32, 97, 110, 10, 92, 110, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 105, 109, 97, 103, 101, 32, 91, 105, 109, 97, 103, 101, 93, 44, 32, 119, 104, 101, 114, 101, 32, 39, 105, 109, 97, 103, 101, 39, 32, 99, 97, 110, 32, 98, 101, 32, 101, 105, 116, 104, 101, 114, 32, 97, 110, 32, 105, 110, 100, 105, 99, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 114, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 110, 97, 109, 101, 46, 10, 92, 110, 32, 73, 110, 32, 116, 104, 105, 115, 32, 99, 97, 115, 101, 44, 32, 116, 104, 101, 32, 39, 91, 93, 39, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 115, 32, 97, 114, 101, 32, 109, 97, 110, 100, 97, 116, 111, 114, 121, 32, 119, 104, 101, 110, 32, 119, 114, 105, 116, 105, 110, 103, 32, 116, 104, 101, 32, 105, 116, 101, 109, 46, 32, 65, 32, 99, 111, 109, 109, 97, 110, 100, 32, 109, 97, 114, 107, 101, 100, 32, 119, 105, 116, 104, 10, 92, 110, 32, 39, 40, 42, 41, 39, 32, 111, 114, 32, 39, 40, 43, 41, 39, 32, 105, 115, 32, 97, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 46, 32, 39, 40, 42, 41, 39, 32, 109, 101, 97, 110, 115, 32, 116, 104, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 97, 108, 108, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 115, 44, 10, 92, 110, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 39, 102, 108, 111, 97, 116, 39, 32, 112, 105, 120, 101, 108, 32, 116, 121, 112, 101, 46, 10, 92, 110, 32, 82, 101, 109, 101, 109, 98, 101, 114, 32, 116, 104, 97, 116, 32, 110, 97, 116, 105, 118, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 114, 117, 110, 32, 102, 97, 115, 116, 101, 114, 32, 116, 104, 97, 110, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 44, 32, 115, 111, 32, 117, 115, 101, 32, 116, 104, 101, 110, 32, 119, 104, 101, 110, 32, 112, 111, 115, 115, 105, 98, 108, 101, 46, 10, 92, 110, 32, 78, 111, 116, 101, 32, 97, 108, 115, 111, 32, 116, 104, 97, 116, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 116, 104, 105, 115, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 97, 114, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 105, 110, 32, 91, 48, 44, 50, 53, 53, 93, 32, 98, 101, 102, 111, 114, 101, 10, 92, 110, 32, 98, 101, 105, 110, 103, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 110, 101, 101, 100, 32, 116, 111, 32, 100, 111, 32, 116, 104, 105, 115, 32, 109, 97, 110, 117, 97, 108, 108, 121, 32, 40, 99, 111, 109, 109, 97, 110, 100, 32, 39, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 39, 41, 32, 105, 102, 32, 121, 111, 117, 32, 119, 97, 110, 116, 10, 92, 110, 32, 115, 97, 118, 101, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 115, 32, 104, 97, 118, 105, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 97, 115, 112, 101, 99, 116, 32, 116, 104, 97, 110, 32, 116, 104, 111, 115, 101, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 46, 34, 10, 95, 104, 101, 108, 112, 95, 101, 120, 97, 109, 112, 108, 101, 115, 32, 58, 10, 45, 95, 104, 101, 108, 112, 95, 115, 101, 99, 116, 105, 111, 110, 32, 34, 69, 120, 97, 109, 112, 108, 101, 115, 32, 111, 102, 32, 117, 115, 101, 34, 10, 45, 95, 104, 101, 108, 112, 95, 112, 97, 114, 97, 103, 114, 97, 112, 104, 32, 34, 32, 39, 103, 109, 105, 99, 39, 32, 105, 115, 32, 97, 32, 103, 101, 110, 101, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 116, 111, 111, 108, 32, 119, 104, 105, 99, 104, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 105, 110, 32, 97, 32, 119, 105, 100, 101, 32, 118, 97, 114, 105, 101, 116, 121, 32, 111, 102, 32, 115, 105, 116, 117, 97, 116, 105, 111, 110, 115, 46, 10, 92, 110, 32, 84, 104, 101, 32, 102, 101, 119, 32, 101, 120, 97, 109, 112, 108, 101, 115, 32, 98, 101, 108, 111, 119, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 117, 115, 101, 115, 32, 111, 102, 32, 116, 104, 105, 115, 32, 116, 111, 111, 108, 58, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 86, 105, 101, 119, 32, 97, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 102, 105, 108, 101, 49, 46, 98, 109, 112, 32, 102, 105, 108, 101, 50, 46, 106, 112, 101, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 110, 118, 101, 114, 116, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 98, 109, 112, 32, 45, 111, 32, 111, 117, 116, 112, 117, 116, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 118, 111, 108, 117, 109, 101, 116, 114, 105, 99, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 97, 32, 109, 111, 118, 105, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 109, 112, 103, 32, 45, 97, 32, 122, 32, 45, 111, 32, 111, 117, 116, 112, 117, 116, 46, 104, 100, 114, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 112, 117, 116, 101, 32, 105, 109, 97, 103, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 110, 112, 117, 116, 46, 98, 109, 112, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 68, 101, 110, 111, 105, 115, 101, 32, 97, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 46, 106, 112, 103, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 51, 48, 44, 49, 48, 32, 45, 111, 32, 100, 101, 110, 111, 105, 115, 101, 100, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 111, 109, 112, 111, 115, 101, 32, 116, 119, 111, 32, 105, 109, 97, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 111, 118, 101, 114, 108, 97, 121, 32, 108, 97, 121, 101, 114, 32, 98, 108, 101, 110, 100, 105, 110, 103, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 105, 109, 97, 103, 101, 49, 46, 106, 112, 103, 32, 105, 109, 97, 103, 101, 50, 46, 106, 112, 103, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 32, 45, 111, 32, 98, 108, 101, 110, 100, 101, 100, 46, 106, 112, 103, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 69, 118, 97, 108, 117, 97, 116, 101, 32, 97, 32, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 101, 32, 92, 34, 99, 111, 115, 40, 112, 105, 47, 52, 41, 94, 50, 43, 115, 105, 110, 40, 112, 105, 47, 52, 41, 94, 50, 61, 123, 99, 111, 115, 40, 112, 105, 47, 52, 41, 94, 50, 43, 115, 105, 110, 40, 112, 105, 47, 52, 41, 94, 50, 125, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 97, 32, 50, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 48, 48, 48, 44, 49, 44, 49, 44, 50, 32, 45, 102, 32, 92, 34, 88, 61, 51, 42, 40, 120, 45, 53, 48, 48, 41, 47, 53, 48, 48, 59, 88, 94, 50, 42, 115, 105, 110, 40, 51, 42, 88, 94, 50, 41, 43, 105, 102, 40, 99, 61, 61, 48, 44, 117, 40, 48, 44, 45, 49, 41, 44, 99, 111, 115, 40, 88, 42, 49, 48, 41, 41, 92, 34, 32, 45, 112, 108, 111, 116, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 97, 32, 51, 100, 32, 101, 108, 101, 118, 97, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 110, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 51, 44, 92, 34, 63, 40, 48, 44, 50, 53, 53, 41, 92, 34, 32, 45, 112, 108, 97, 115, 109, 97, 32, 49, 48, 44, 51, 32, 45, 98, 108, 117, 114, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 48, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 92, 34, 39, 88, 61, 40, 120, 45, 54, 52, 41, 47, 54, 59, 89, 61, 40, 121, 45, 54, 52, 41, 47, 54, 59, 49, 48, 48, 42, 101, 120, 112, 40, 45, 40, 88, 94, 50, 43, 89, 94, 50, 41, 47, 51, 48, 41, 42, 97, 98, 115, 40, 99, 111, 115, 40, 88, 41, 42, 115, 105, 110, 40, 89, 41, 41, 39, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 80, 108, 111, 116, 32, 116, 104, 101, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 32, 111, 102, 32, 97, 32, 51, 100, 32, 118, 111, 108, 117, 109, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 109, 51, 100, 32, 53, 32, 45, 109, 100, 51, 100, 32, 53, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 92, 34, 39, 120, 94, 50, 43, 121, 94, 50, 43, 97, 98, 115, 40, 122, 41, 94, 97, 98, 115, 40, 52, 42, 99, 111, 115, 40, 120, 42, 121, 42, 122, 42, 51, 41, 41, 39, 92, 34, 44, 51, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 82, 101, 110, 100, 101, 114, 32, 97, 32, 71, 39, 77, 73, 67, 32, 51, 100, 32, 108, 111, 103, 111, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 49, 32, 45, 116, 101, 120, 116, 32, 71, 92, 92, 39, 77, 73, 67, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 49, 48, 44, 48, 32, 45, 98, 108, 117, 114, 32, 50, 32, 45, 110, 32, 48, 44, 49, 48, 48, 32, 45, 45, 112, 108, 97, 115, 109, 97, 32, 48, 46, 52, 32, 45, 43, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 45, 48, 46, 49, 32, 45, 109, 100, 51, 100, 32, 52, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 97, 32, 51, 100, 32, 114, 105, 110, 103, 32, 111, 102, 32, 116, 111, 114, 105, 105, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 48, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 53, 44, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 92, 34, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 92, 34, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 49, 32, 45, 105, 102, 32, 92, 34, 123, 36, 62, 37, 50, 125, 92, 34, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 48, 32, 45, 43, 51, 100, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 114, 51, 100, 32, 48, 44, 48, 44, 49, 44, 49, 56, 32, 45, 100, 111, 110, 101, 32, 45, 109, 100, 51, 100, 32, 51, 32, 45, 109, 51, 100, 32, 53, 32, 45, 100, 98, 51, 100, 32, 48, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 118, 97, 115, 101, 32, 102, 114, 111, 109, 32, 97, 32, 51, 100, 32, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 109, 100, 51, 100, 32, 52, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 92, 34, 39, 120, 94, 50, 43, 50, 42, 97, 98, 115, 40, 121, 47, 50, 41, 42, 115, 105, 110, 40, 50, 42, 121, 41, 94, 50, 43, 122, 94, 50, 45, 51, 39, 44, 48, 92, 34, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 46, 53, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 48, 44, 53, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 53, 44, 49, 53, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 51, 46, 50, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 56, 48, 44, 49, 53, 48, 44, 50, 53, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 50, 93, 32, 49, 50, 56, 44, 50, 53, 53, 44, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 51, 93, 32, 50, 53, 53, 44, 49, 50, 56, 44, 48, 32, 45, 43, 51, 100, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 68, 105, 115, 112, 108, 97, 121, 32, 102, 105, 108, 116, 101, 114, 101, 100, 32, 119, 101, 98, 99, 97, 109, 32, 115, 116, 114, 101, 97, 109, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 32, 92, 92, 92, 34, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 43, 32, 45, 47, 32, 52, 92, 92, 92, 34, 10, 92, 110, 10, 92, 110, 32, 32, 45, 32, 76, 97, 117, 110, 99, 104, 32, 97, 32, 115, 101, 116, 32, 111, 102, 32, 71, 39, 77, 73, 67, 32, 105, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 100, 101, 109, 111, 115, 58, 10, 92, 110, 32, 32, 32, 32, 32, 103, 109, 105, 99, 32, 45, 120, 95, 102, 105, 115, 104, 101, 121, 101, 32, 45, 120, 95, 102, 105, 114, 101, 32, 71, 92, 92, 39, 77, 73, 67, 32, 45, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 114, 109, 32, 45, 120, 95, 115, 112, 108, 105, 110, 101, 32, 45, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 48, 32, 45, 120, 95, 108, 105, 103, 104, 116, 32, 92, 92, 10, 92, 110, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 120, 95, 119, 104, 105, 114, 108, 32, 44, 32, 45, 120, 95, 108, 105, 102, 101, 32, 45, 120, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 44, 32, 45, 120, 95, 98, 108, 111, 98, 115, 32, 45, 120, 95, 116, 101, 116, 114, 105, 115, 10, 92, 110, 34, 10, 118, 101, 114, 115, 105, 111, 110, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 95, 104, 101, 108, 112, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 91, 93, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 34, 10, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 125, 44, 36, 123, 52, 61, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 97, 109, 101, 114, 97, 32, 115, 116, 114, 101, 97, 109, 32, 92, 35, 36, 50, 44, 32, 119, 105, 116, 104, 32, 36, 51, 32, 102, 114, 97, 109, 101, 115, 32, 115, 107, 105, 112, 32, 97, 110, 100, 32, 102, 105, 108, 101, 110, 97, 109, 101, 32, 39, 36, 52, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 102, 114, 97, 109, 101, 61, 48, 32, 45, 100, 111, 10, 45, 99, 97, 109, 101, 114, 97, 32, 36, 50, 44, 49, 44, 36, 51, 32, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 34, 40, 67, 97, 109, 101, 114, 97, 32, 34, 36, 115, 116, 114, 101, 97, 109, 34, 44, 32, 34, 123, 119, 125, 120, 123, 104, 125, 34, 41, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 52, 34, 41, 125, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 52, 34, 44, 36, 102, 114, 97, 109, 101, 125, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 45, 49, 93, 32, 103, 109, 105, 99, 95, 99, 97, 109, 101, 114, 97, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 100, 48, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 48, 10, 100, 105, 115, 112, 108, 97, 121, 48, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 48, 32, 58, 10, 45, 118, 32, 45, 10, 119, 61, 48, 32, 104, 61, 48, 32, 100, 61, 48, 32, 115, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 119, 61, 123, 36, 119, 43, 119, 125, 32, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 104, 41, 125, 32, 100, 61, 123, 109, 97, 120, 40, 36, 100, 44, 100, 41, 125, 32, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 115, 41, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 44, 64, 123, 45, 49, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 108, 115, 101, 32, 45, 119, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 44, 46, 46, 44, 64, 123, 45, 49, 44, 110, 125, 92, 32, 40, 36, 119, 120, 36, 104, 120, 36, 100, 120, 36, 115, 41, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 100, 10, 45, 118, 32, 45, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 100, 97, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 51, 125, 62, 48, 34, 32, 38, 38, 32, 34, 36, 123, 50, 61, 36, 49, 125, 62, 48, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 46, 34, 10, 45, 118, 32, 45, 10, 100, 120, 98, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 47, 50, 44, 49, 44, 49, 41, 125, 32, 100, 120, 102, 61, 123, 36, 49, 45, 49, 45, 36, 100, 120, 98, 125, 10, 100, 121, 98, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 50, 44, 49, 44, 49, 41, 125, 32, 100, 121, 102, 61, 123, 36, 50, 45, 49, 45, 36, 100, 121, 98, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 60, 49, 50, 56, 34, 32, 38, 38, 32, 34, 104, 60, 49, 50, 56, 125, 32, 45, 114, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 110, 100, 105, 102, 10, 120, 48, 61, 48, 32, 121, 48, 61, 48, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 119, 109, 97, 120, 61, 123, 48, 46, 57, 42, 64, 123, 33, 44, 117, 125, 125, 32, 104, 109, 97, 120, 61, 123, 48, 46, 57, 42, 64, 123, 33, 44, 118, 125, 125, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 119, 62, 61, 36, 119, 109, 97, 120, 124, 124, 104, 62, 61, 36, 104, 109, 97, 120, 125, 10, 110, 61, 64, 123, 45, 49, 44, 110, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 73, 109, 97, 103, 101, 32, 34, 39, 64, 123, 45, 49, 44, 98, 125, 46, 64, 123, 45, 49, 44, 120, 125, 39, 34, 32, 105, 115, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 44, 32, 112, 108, 101, 97, 115, 101, 32, 115, 101, 108, 101, 99, 116, 32, 97, 32, 115, 117, 98, 45, 105, 109, 97, 103, 101, 46, 34, 10, 45, 45, 115, 101, 108, 101, 99, 116, 91, 45, 49, 93, 32, 50, 32, 120, 48, 61, 123, 105, 40, 48, 44, 48, 41, 125, 32, 121, 48, 61, 123, 105, 40, 48, 44, 49, 41, 125, 32, 119, 61, 123, 49, 43, 105, 40, 48, 44, 51, 41, 45, 105, 40, 48, 44, 48, 41, 125, 32, 104, 61, 123, 49, 43, 105, 40, 48, 44, 52, 41, 45, 105, 40, 48, 44, 49, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 36, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 122, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 48, 44, 123, 36, 120, 48, 43, 36, 119, 45, 49, 125, 44, 123, 36, 121, 48, 43, 36, 104, 45, 49, 125, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 104, 105, 108, 101, 32, 123, 119, 62, 61, 36, 119, 109, 97, 120, 124, 124, 104, 62, 61, 36, 104, 109, 97, 120, 125, 10, 120, 49, 61, 45, 49, 32, 121, 49, 61, 45, 49, 32, 99, 49, 61, 48, 32, 111, 120, 49, 61, 45, 49, 32, 111, 121, 49, 61, 45, 49, 32, 111, 99, 49, 61, 45, 49, 10, 120, 50, 61, 45, 49, 32, 121, 50, 61, 45, 49, 32, 99, 50, 61, 48, 32, 111, 120, 50, 61, 45, 49, 32, 111, 121, 50, 61, 45, 49, 32, 111, 99, 50, 61, 45, 49, 10, 120, 51, 61, 45, 49, 32, 121, 51, 61, 45, 49, 32, 99, 51, 61, 48, 32, 111, 120, 51, 61, 45, 49, 32, 111, 121, 51, 61, 45, 49, 32, 111, 99, 51, 61, 45, 49, 10, 99, 48, 61, 48, 32, 111, 120, 109, 61, 45, 49, 32, 111, 121, 109, 61, 45, 49, 10, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 64, 123, 45, 50, 44, 98, 125, 46, 64, 123, 45, 50, 44, 120, 125, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 91, 48, 45, 51, 93, 10, 111, 99, 48, 61, 36, 99, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 105, 102, 32, 123, 36, 62, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 36, 62, 125, 34, 32, 38, 38, 32, 34, 36, 123, 120, 36, 62, 125, 62, 61, 48, 125, 32, 45, 119, 36, 62, 32, 48, 32, 120, 36, 62, 61, 45, 49, 32, 121, 36, 62, 61, 45, 49, 32, 99, 36, 62, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 36, 62, 44, 111, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 43, 115, 105, 103, 110, 40, 64, 123, 33, 36, 62, 44, 111, 125, 41, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 36, 62, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 69, 78, 84, 69, 82, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 43, 49, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 36, 62, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 36, 62, 44, 65, 82, 82, 79, 87, 85, 80, 125, 125, 32, 99, 36, 62, 61, 123, 40, 36, 123, 99, 36, 62, 125, 45, 49, 41, 37, 115, 125, 32, 45, 119, 97, 105, 116, 91, 36, 62, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 111, 99, 48, 33, 61, 36, 99, 48, 125, 32, 99, 49, 61, 36, 99, 48, 32, 99, 50, 61, 36, 99, 48, 32, 99, 51, 61, 36, 99, 48, 32, 45, 101, 110, 100, 105, 102, 10, 120, 109, 61, 64, 123, 33, 44, 120, 125, 32, 121, 109, 61, 64, 123, 33, 44, 121, 125, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 120, 49, 61, 36, 120, 109, 32, 121, 49, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 50, 125, 32, 120, 50, 61, 36, 120, 109, 32, 121, 50, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 38, 52, 125, 32, 120, 51, 61, 36, 120, 109, 32, 121, 51, 61, 36, 121, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 109, 33, 61, 36, 120, 109, 34, 32, 124, 124, 32, 34, 36, 111, 121, 109, 33, 61, 36, 121, 109, 41, 125, 32, 45, 119, 91, 93, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 64, 123, 45, 50, 44, 98, 125, 46, 64, 123, 45, 50, 44, 120, 125, 34, 32, 45, 32, 40, 34, 36, 120, 109, 44, 36, 121, 109, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 49, 33, 61, 36, 111, 120, 49, 34, 32, 124, 124, 32, 34, 36, 121, 49, 33, 61, 36, 111, 121, 49, 34, 32, 124, 124, 32, 34, 36, 120, 50, 33, 61, 36, 111, 120, 50, 34, 32, 124, 124, 32, 34, 36, 121, 50, 33, 61, 36, 111, 121, 50, 34, 32, 124, 124, 32, 34, 36, 120, 51, 33, 61, 36, 111, 120, 51, 34, 32, 124, 124, 32, 34, 36, 121, 51, 33, 61, 36, 111, 121, 51, 125, 10, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 51, 62, 61, 48, 125, 10, 120, 98, 61, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 32, 121, 98, 61, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 32, 120, 101, 61, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 32, 121, 101, 61, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 48, 46, 50, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 109, 61, 36, 120, 109, 32, 111, 121, 109, 61, 36, 121, 109, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 49, 33, 61, 36, 120, 49, 34, 32, 124, 124, 32, 34, 36, 111, 121, 49, 33, 61, 36, 121, 49, 34, 32, 124, 124, 32, 34, 36, 111, 99, 49, 33, 61, 36, 99, 49, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 49, 44, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 49, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 49, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 49, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 49, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 49, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 119, 49, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 49, 44, 36, 121, 49, 44, 99, 61, 36, 99, 49, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 49, 61, 36, 120, 49, 32, 111, 121, 49, 61, 36, 121, 49, 32, 111, 99, 49, 61, 36, 99, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 50, 33, 61, 36, 120, 50, 34, 32, 124, 124, 32, 34, 36, 111, 121, 50, 33, 61, 36, 121, 50, 34, 32, 124, 124, 32, 34, 36, 111, 99, 50, 33, 61, 36, 99, 50, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 50, 44, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 50, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 50, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 50, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 50, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 50, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 50, 53, 53, 44, 51, 50, 44, 50, 53, 53, 10, 45, 119, 50, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 50, 44, 36, 121, 50, 44, 99, 61, 36, 99, 50, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 50, 61, 36, 120, 50, 32, 111, 121, 50, 61, 36, 121, 50, 32, 111, 99, 50, 61, 36, 99, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 51, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 111, 120, 51, 33, 61, 36, 120, 51, 34, 32, 124, 124, 32, 34, 36, 111, 121, 51, 33, 61, 36, 121, 51, 34, 32, 124, 124, 32, 34, 36, 111, 99, 51, 33, 61, 36, 99, 51, 41, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 44, 48, 44, 36, 99, 51, 44, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 44, 48, 44, 36, 99, 51, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 36, 120, 51, 45, 36, 100, 120, 98, 125, 44, 123, 36, 121, 51, 45, 36, 100, 121, 98, 125, 44, 48, 44, 123, 36, 120, 51, 43, 36, 100, 120, 102, 125, 44, 123, 36, 121, 51, 43, 36, 100, 121, 102, 125, 44, 48, 10, 45, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 119, 51, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 98, 125, 34, 32, 45, 32, 40, 34, 36, 120, 51, 44, 36, 121, 51, 44, 99, 61, 36, 99, 51, 34, 41, 34, 10, 45, 114, 109, 91, 45, 49, 93, 32, 111, 120, 51, 61, 36, 120, 51, 32, 111, 121, 51, 61, 36, 121, 51, 32, 111, 99, 51, 61, 36, 99, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 50, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 50, 44, 81, 125, 34, 32, 38, 38, 32, 34, 92, 10, 33, 64, 123, 33, 51, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 51, 44, 81, 125, 125, 10, 45, 107, 91, 48, 93, 32, 45, 119, 32, 48, 32, 45, 119, 49, 32, 48, 32, 45, 119, 50, 32, 48, 32, 45, 119, 51, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 95, 100, 105, 115, 112, 108, 97, 121, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 57, 57, 57, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 123, 105, 102, 40, 115, 61, 61, 49, 44, 49, 44, 48, 41, 125, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 49, 42, 50, 52, 125, 44, 123, 36, 50, 42, 50, 52, 125, 32, 45, 103, 114, 105, 100, 91, 45, 50, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 123, 49, 48, 48, 47, 36, 50, 125, 37, 44, 48, 44, 48, 44, 49, 44, 48, 10, 120, 98, 61, 123, 50, 52, 42, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 32, 121, 98, 61, 123, 50, 52, 42, 105, 110, 116, 40, 36, 50, 47, 50, 41, 125, 32, 120, 101, 61, 123, 36, 120, 98, 43, 50, 52, 125, 32, 121, 101, 61, 123, 36, 121, 98, 43, 50, 52, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 50, 93, 32, 36, 120, 98, 44, 36, 121, 98, 44, 36, 120, 101, 44, 36, 121, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 36, 51, 44, 36, 52, 44, 36, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 121, 103, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 120, 103, 61, 36, 62, 10, 45, 116, 91, 45, 50, 93, 32, 64, 123, 45, 51, 44, 40, 36, 120, 103, 44, 36, 121, 103, 41, 125, 44, 123, 53, 43, 36, 120, 103, 42, 50, 52, 125, 44, 123, 53, 43, 36, 121, 103, 42, 50, 52, 125, 44, 49, 51, 44, 48, 46, 56, 44, 123, 105, 102, 40, 64, 123, 45, 49, 44, 40, 36, 120, 103, 44, 36, 121, 103, 41, 125, 62, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 125, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 100, 102, 102, 116, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 108, 111, 103, 45, 109, 111, 100, 117, 108, 101, 32, 97, 110, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 50, 93, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 115, 32, 120, 44, 50, 32, 45, 118, 32, 43, 10, 100, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 36, 123, 49, 45, 56, 125, 44, 34, 36, 57, 34, 44, 34, 36, 49, 48, 34, 10, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 36, 123, 49, 45, 56, 125, 44, 34, 36, 57, 34, 44, 34, 36, 49, 48, 34, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 103, 114, 97, 112, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 52, 56, 48, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 34, 36, 123, 57, 61, 120, 45, 97, 120, 105, 115, 125, 34, 44, 34, 36, 123, 49, 48, 61, 121, 45, 97, 120, 105, 115, 125, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 32, 102, 114, 111, 109, 32, 100, 97, 116, 97, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 111, 110, 101, 61, 123, 36, 51, 33, 61, 51, 125, 32, 115, 105, 122, 61, 123, 119, 42, 104, 42, 100, 125, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 36, 54, 125, 32, 120, 109, 105, 110, 61, 48, 32, 120, 109, 97, 120, 61, 123, 36, 115, 105, 122, 45, 36, 111, 110, 101, 125, 32, 45, 101, 108, 115, 101, 32, 120, 109, 105, 110, 61, 123, 109, 105, 110, 40, 36, 53, 44, 36, 54, 41, 125, 32, 120, 109, 97, 120, 61, 123, 109, 97, 120, 40, 36, 53, 44, 36, 54, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 36, 56, 125, 32, 121, 109, 105, 110, 61, 123, 105, 109, 45, 40, 105, 77, 45, 105, 109, 41, 47, 50, 48, 125, 32, 121, 109, 97, 120, 61, 123, 105, 77, 43, 40, 105, 77, 45, 105, 109, 41, 47, 50, 48, 125, 32, 45, 101, 108, 115, 101, 32, 121, 109, 105, 110, 61, 123, 109, 105, 110, 40, 36, 55, 44, 36, 56, 41, 125, 32, 121, 109, 97, 120, 61, 123, 109, 97, 120, 40, 36, 55, 44, 36, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 103, 119, 61, 123, 36, 49, 45, 51, 50, 125, 32, 103, 104, 61, 123, 36, 50, 45, 51, 50, 125, 32, 103, 103, 61, 123, 40, 36, 103, 119, 45, 36, 111, 110, 101, 41, 47, 40, 36, 115, 105, 122, 45, 36, 111, 110, 101, 41, 125, 10, 36, 103, 119, 44, 36, 103, 104, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 60, 51, 50, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 103, 103, 44, 36, 103, 103, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 61, 61, 49, 125, 32, 40, 49, 50, 48, 44, 49, 50, 48, 44, 50, 48, 48, 41, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 60, 61, 51, 125, 32, 40, 50, 50, 48, 44, 49, 48, 44, 49, 48, 59, 49, 48, 44, 50, 50, 48, 44, 49, 48, 59, 49, 48, 44, 49, 48, 44, 50, 50, 48, 41, 10, 45, 101, 108, 115, 101, 10, 40, 48, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 50, 32, 45, 122, 91, 45, 49, 93, 32, 50, 44, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 109, 97, 120, 40, 51, 44, 64, 123, 45, 51, 44, 115, 125, 41, 125, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 45, 51, 44, 115, 125, 32, 45, 115, 104, 91, 45, 51, 93, 32, 36, 62, 44, 36, 62, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 36, 51, 44, 36, 52, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 44, 64, 123, 45, 50, 44, 48, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 49, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 49, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 10, 120, 109, 97, 120, 95, 61, 123, 36, 120, 109, 105, 110, 43, 40, 36, 120, 109, 97, 120, 45, 36, 120, 109, 105, 110, 41, 42, 40, 36, 115, 105, 122, 45, 36, 111, 110, 101, 41, 47, 40, 36, 115, 105, 122, 45, 49, 41, 125, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 120, 109, 105, 110, 62, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 109, 97, 120, 60, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 123, 119, 45, 49, 125, 44, 36, 121, 109, 97, 120, 44, 36, 121, 109, 105, 110, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 121, 109, 105, 110, 62, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 123, 104, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 121, 109, 97, 120, 60, 48, 125, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 120, 109, 105, 110, 44, 36, 120, 109, 97, 120, 95, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 49, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 50, 50, 48, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 57, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 54, 125, 44, 48, 44, 48, 44, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 48, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 44, 45, 50, 50, 48, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 45, 57, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 50, 44, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 100, 104, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 48, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 53, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 37, 125, 44, 36, 123, 53, 61, 49, 48, 48, 37, 125, 44, 36, 123, 54, 61, 49, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 99, 104, 97, 110, 110, 101, 108, 45, 98, 121, 45, 99, 104, 97, 110, 110, 101, 108, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 36, 51, 32, 99, 108, 117, 115, 116, 101, 114, 115, 44, 32, 109, 105, 110, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 52, 32, 97, 110, 100, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 52, 125, 32, 109, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 52, 125, 32, 45, 101, 108, 115, 101, 32, 109, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 53, 125, 32, 77, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 53, 125, 32, 45, 101, 108, 115, 101, 32, 77, 61, 36, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 51, 44, 36, 109, 44, 36, 77, 32, 45, 97, 32, 99, 32, 118, 77, 61, 123, 105, 77, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 123, 115, 125, 44, 45, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 45, 115, 104, 91, 45, 50, 44, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 44, 48, 44, 36, 118, 77, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 44, 36, 118, 77, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 112, 111, 108, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 48, 125, 62, 51, 50, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 51, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 50, 48, 48, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 51, 54, 48, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 36, 49, 120, 36, 50, 32, 112, 111, 108, 97, 114, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 32, 102, 114, 111, 109, 32, 100, 97, 116, 97, 32, 111, 102, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 52, 32, 97, 110, 100, 32, 102, 105, 108, 108, 32, 99, 111, 108, 111, 114, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 77, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 105, 77, 41, 44, 97, 98, 115, 40, 105, 109, 41, 41, 125, 10, 45, 42, 32, 123, 48, 46, 52, 56, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 36, 77, 125, 10, 45, 121, 32, 121, 32, 40, 123, 36, 55, 42, 112, 105, 47, 49, 56, 48, 125, 59, 123, 45, 36, 56, 42, 112, 105, 47, 49, 56, 48, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 51, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 78, 61, 123, 104, 125, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 111, 114, 100, 115, 10, 45, 105, 102, 32, 36, 51, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 36, 78, 44, 36, 78, 41, 10, 45, 45, 122, 91, 99, 111, 111, 114, 100, 115, 93, 32, 48, 44, 50, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 50, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 50, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 48, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 34, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 36, 78, 43, 49, 125, 44, 36, 78, 41, 10, 45, 45, 122, 91, 99, 111, 111, 114, 100, 115, 93, 32, 48, 44, 45, 49, 44, 50, 44, 49, 48, 48, 37, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 49, 44, 36, 78, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 39, 49, 43, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 51, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 99, 111, 111, 114, 100, 115, 93, 10, 123, 36, 49, 45, 51, 50, 125, 44, 123, 36, 50, 45, 51, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 76, 61, 123, 48, 46, 49, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 76, 44, 36, 76, 44, 48, 44, 48, 44, 48, 46, 50, 53, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 105, 102, 32, 123, 34, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 10, 45, 114, 109, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 102, 105, 108, 108, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 48, 125, 10, 45, 105, 102, 32, 123, 97, 98, 115, 40, 36, 51, 41, 62, 49, 125, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 32, 123, 97, 98, 115, 40, 36, 51, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 46, 50, 44, 50, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 95, 112, 108, 111, 116, 95, 112, 111, 108, 97, 114, 95, 111, 117, 116, 108, 105, 110, 101, 93, 10, 45, 101, 110, 100, 105, 102, 10, 110, 77, 61, 123, 36, 77, 47, 48, 46, 57, 54, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 123, 45, 36, 110, 77, 125, 44, 36, 110, 77, 44, 36, 110, 77, 44, 123, 45, 36, 110, 77, 125, 44, 49, 51, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 10, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 53, 44, 49, 53, 44, 50, 50, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 114, 103, 98, 97, 32, 58, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 10, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 32, 58, 10, 45, 95, 36, 48, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 111, 118, 101, 114, 32, 97, 32, 99, 104, 101, 99, 107, 101, 114, 98, 111, 97, 114, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 91, 48, 93, 32, 40, 49, 54, 48, 44, 49, 50, 56, 59, 49, 50, 56, 44, 49, 54, 48, 41, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 32, 45, 114, 91, 48, 93, 32, 49, 54, 44, 49, 54, 32, 45, 114, 91, 48, 93, 32, 91, 49, 93, 44, 91, 49, 93, 44, 49, 44, 123, 115, 45, 49, 125, 44, 48, 44, 50, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 116, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 57, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 49, 125, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 120, 50, 32, 116, 101, 110, 115, 111, 114, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 102, 97, 99, 116, 111, 114, 32, 36, 49, 44, 32, 101, 108, 108, 105, 112, 115, 101, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 99, 111, 108, 111, 114, 101, 100, 44, 109, 97, 115, 107, 101, 100, 125, 34, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 51, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 116, 101, 110, 115, 111, 114, 115, 32, 36, 49, 44, 36, 50, 44, 48, 10, 45, 115, 91, 48, 93, 32, 99, 32, 45, 45, 109, 105, 110, 91, 48, 44, 50, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 44, 45, 49, 93, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 10, 45, 114, 91, 48, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 42, 32, 123, 40, 36, 50, 42, 36, 49, 47, 50, 41, 94, 50, 47, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 125, 10, 45, 115, 32, 99, 32, 45, 105, 91, 45, 50, 93, 32, 91, 45, 50, 93, 32, 45, 97, 32, 99, 32, 45, 115, 32, 121, 120, 32, 45, 114, 32, 50, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 40, 48, 46, 53, 44, 48, 59, 48, 44, 48, 46, 53, 41, 32, 45, 43, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 110, 118, 101, 114, 116, 32, 45, 121, 32, 99, 32, 45, 114, 32, 36, 49, 44, 36, 49, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 91, 45, 49, 93, 32, 123, 119, 47, 50, 125, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 10, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 105, 91, 45, 50, 93, 32, 91, 45, 50, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 42, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 108, 101, 32, 49, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 119, 44, 36, 104, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 100, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 100, 105, 115, 112, 108, 97, 121, 95, 119, 97, 114, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 53, 125, 62, 48, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 50, 100, 32, 119, 97, 114, 112, 105, 110, 103, 32, 102, 105, 101, 108, 100, 34, 36, 95, 95, 115, 34, 44, 32, 119, 105, 116, 104, 32, 99, 101, 108, 108, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 33, 61, 49, 124, 124, 115, 33, 61, 50, 125, 10, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 50, 100, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 103, 114, 105, 100, 91, 48, 93, 32, 36, 49, 44, 36, 49, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 10, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 97, 115, 99, 105, 105, 34, 125, 44, 36, 123, 50, 61, 34, 34, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 49, 10, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 98, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 109, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 115, 32, 45, 44, 49, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 36, 49, 91, 93, 32, 36, 51, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 95, 101, 120, 97, 109, 112, 108, 101, 61, 48, 10, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 112, 97, 116, 104, 61, 34, 36, 50, 34, 10, 107, 115, 48, 61, 34, 48, 34, 32, 107, 115, 49, 61, 34, 45, 107, 91, 48, 93, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 104, 62, 55, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 53, 125, 39, 61, 61, 39, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 125, 34, 32, 38, 38, 32, 34, 40, 105, 40, 48, 44, 54, 41, 61, 61, 123, 39, 34, 32, 34, 39, 125, 34, 32, 124, 124, 32, 34, 105, 40, 48, 44, 54, 41, 61, 61, 123, 39, 58, 39, 125, 41, 125, 10, 45, 114, 111, 119, 115, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 95, 99, 111, 109, 109, 97, 110, 100, 61, 123, 36, 95, 99, 111, 109, 109, 97, 110, 100, 43, 49, 125, 10, 45, 115, 32, 45, 44, 123, 39, 34, 58, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 58, 39, 125, 125, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 36, 39, 125, 125, 10, 95, 101, 120, 97, 109, 112, 108, 101, 61, 123, 36, 95, 101, 120, 97, 109, 112, 108, 101, 43, 49, 125, 10, 45, 114, 111, 119, 115, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 95, 102, 105, 108, 101, 110, 97, 109, 101, 61, 36, 95, 112, 97, 116, 104, 36, 95, 110, 97, 109, 101, 36, 95, 101, 120, 97, 109, 112, 108, 101, 46, 106, 112, 103, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 36, 49, 10, 45, 101, 108, 115, 101, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 36, 123, 107, 115, 123, 64, 35, 33, 61, 48, 125, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 36, 49, 91, 93, 32, 36, 51, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 60, 33, 68, 79, 67, 84, 89, 80, 69, 32, 104, 116, 109, 108, 32, 80, 85, 66, 76, 73, 67, 32, 92, 34, 45, 47, 47, 87, 51, 67, 47, 47, 68, 84, 68, 32, 88, 72, 84, 77, 76, 32, 49, 46, 48, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 47, 47, 69, 78, 92, 34, 32, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 84, 82, 47, 120, 104, 116, 109, 108, 49, 47, 68, 84, 68, 47, 120, 104, 116, 109, 108, 49, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 97, 108, 46, 100, 116, 100, 92, 34, 62, 10, 92, 110, 60, 104, 101, 97, 100, 62, 10, 92, 110, 60, 115, 99, 114, 105, 112, 116, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 92, 34, 32, 115, 114, 99, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 104, 105, 103, 104, 115, 108, 105, 100, 101, 46, 106, 115, 92, 34, 62, 60, 47, 115, 99, 114, 105, 112, 116, 62, 10, 92, 110, 60, 108, 105, 110, 107, 32, 114, 101, 108, 61, 92, 34, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 99, 115, 115, 92, 34, 32, 104, 114, 101, 102, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 104, 105, 103, 104, 115, 108, 105, 100, 101, 46, 99, 115, 115, 92, 34, 32, 47, 62, 10, 92, 110, 60, 115, 99, 114, 105, 112, 116, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105, 112, 116, 92, 34, 62, 10, 92, 110, 104, 115, 46, 103, 114, 97, 112, 104, 105, 99, 115, 68, 105, 114, 32, 61, 32, 39, 104, 105, 103, 104, 115, 108, 105, 100, 101, 47, 103, 114, 97, 112, 104, 105, 99, 115, 47, 39, 59, 10, 92, 110, 104, 115, 46, 119, 114, 97, 112, 112, 101, 114, 67, 108, 97, 115, 115, 78, 97, 109, 101, 32, 61, 32, 39, 119, 105, 100, 101, 45, 98, 111, 114, 100, 101, 114, 39, 59, 10, 92, 110, 60, 47, 115, 99, 114, 105, 112, 116, 62, 10, 92, 110, 60, 47, 104, 101, 97, 100, 62, 10, 92, 110, 60, 98, 111, 100, 121, 62, 10, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 32, 34, 100, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 100, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 101, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 104, 116, 109, 108, 34, 10, 45, 109, 32, 34, 101, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 104, 116, 109, 108, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 60, 98, 114, 47, 62, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 62, 60, 116, 116, 62, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 60, 47, 116, 116, 62, 60, 47, 112, 62, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 60, 98, 114, 47, 62, 60, 116, 97, 98, 108, 101, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 32, 119, 105, 100, 116, 104, 61, 92, 34, 55, 53, 37, 92, 34, 32, 98, 103, 99, 111, 108, 111, 114, 61, 92, 34, 35, 69, 69, 69, 69, 69, 69, 92, 34, 32, 98, 111, 114, 100, 101, 114, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 97, 99, 107, 92, 34, 32, 98, 111, 114, 100, 101, 114, 61, 92, 34, 49, 92, 34, 32, 99, 101, 108, 108, 112, 97, 100, 100, 105, 110, 103, 61, 92, 34, 52, 92, 34, 32, 99, 101, 108, 108, 115, 112, 97, 99, 105, 110, 103, 61, 92, 34, 48, 92, 34, 62, 34, 92, 10, 34, 60, 116, 114, 62, 60, 116, 100, 32, 99, 111, 108, 115, 112, 97, 110, 61, 92, 34, 50, 92, 34, 32, 98, 103, 99, 111, 108, 111, 114, 61, 92, 34, 35, 55, 55, 55, 55, 55, 55, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 119, 104, 105, 116, 101, 92, 34, 62, 60, 98, 62, 69, 120, 97, 109, 112, 108, 101, 40, 115, 41, 32, 111, 102, 32, 117, 115, 101, 58, 60, 47, 98, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 116, 100, 62, 60, 47, 116, 114, 62, 34, 10, 95, 105, 115, 95, 101, 120, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 60, 47, 116, 97, 98, 108, 101, 62, 34, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 98, 114, 47, 62, 60, 97, 32, 110, 97, 109, 101, 61, 92, 34, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 34, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 34, 92, 34, 62, 60, 104, 51, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 112, 117, 114, 112, 108, 101, 92, 34, 62, 42, 42, 32, 60, 117, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 117, 62, 60, 47, 102, 111, 110, 116, 62, 60, 47, 104, 51, 62, 60, 47, 97, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 49, 61, 34, 92, 110, 34, 32, 115, 48, 61, 34, 32, 124, 60, 98, 114, 47, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 50, 48, 112, 120, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 103, 114, 101, 101, 110, 92, 34, 62, 38, 110, 98, 115, 112, 59, 38, 110, 98, 115, 112, 59, 60, 98, 62, 45, 34, 64, 123, 48, 44, 116, 125, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 34, 60, 47, 98, 62, 58, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 53, 48, 112, 120, 92, 34, 62, 60, 116, 116, 62, 60, 105, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 112, 117, 114, 112, 108, 101, 92, 34, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 36, 123, 115, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 60, 47, 102, 111, 110, 116, 62, 60, 47, 105, 62, 60, 47, 116, 116, 62, 60, 47, 112, 62, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 93, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 49, 50, 125, 39, 61, 61, 39, 123, 39, 34, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 34, 39, 125, 125, 10, 45, 115, 32, 43, 44, 123, 39, 58, 39, 125, 32, 45, 108, 91, 94, 48, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 58, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 98, 114, 47, 62, 60, 98, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 98, 62, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 98, 114, 47, 62, 34, 64, 123, 48, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 55, 125, 39, 61, 61, 39, 123, 39, 34, 40, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 60, 105, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 102, 111, 110, 116, 62, 60, 47, 105, 62, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 40, 105, 60, 123, 39, 65, 39, 125, 34, 32, 124, 124, 32, 34, 105, 62, 123, 39, 90, 39, 125, 41, 34, 32, 38, 38, 32, 34, 105, 33, 61, 52, 48, 34, 32, 38, 38, 32, 34, 105, 33, 61, 51, 57, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 38, 110, 98, 115, 112, 59, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 104, 116, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 110, 125, 34, 60, 116, 114, 62, 60, 116, 100, 32, 119, 105, 100, 116, 104, 61, 92, 34, 52, 48, 92, 34, 62, 60, 100, 105, 118, 62, 60, 97, 32, 104, 114, 101, 102, 61, 92, 34, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 32, 99, 108, 97, 115, 115, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 92, 34, 32, 111, 110, 99, 108, 105, 99, 107, 61, 92, 34, 114, 101, 116, 117, 114, 110, 32, 104, 115, 46, 101, 120, 112, 97, 110, 100, 40, 116, 104, 105, 115, 41, 92, 34, 62, 34, 92, 10, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 40, 118, 105, 101, 119, 41, 60, 47, 102, 111, 110, 116, 62, 60, 47, 97, 62, 60, 100, 105, 118, 32, 99, 108, 97, 115, 115, 61, 92, 34, 104, 105, 103, 104, 115, 108, 105, 100, 101, 45, 99, 97, 112, 116, 105, 111, 110, 92, 34, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 100, 105, 118, 62, 60, 47, 100, 105, 118, 62, 60, 47, 116, 100, 62, 60, 116, 100, 62, 60, 116, 116, 62, 34, 64, 123, 45, 49, 44, 116, 125, 34, 60, 47, 116, 116, 62, 60, 47, 116, 100, 62, 60, 47, 116, 114, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 104, 116, 109, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 123, 36, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 43, 49, 125, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 104, 116, 109, 108, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 50, 48, 112, 120, 92, 34, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 103, 114, 101, 101, 110, 92, 34, 62, 60, 98, 62, 38, 110, 98, 115, 112, 59, 38, 110, 98, 115, 112, 59, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 60, 47, 98, 62, 58, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 101, 91, 93, 32, 34, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 60, 105, 62, 101, 113, 46, 32, 116, 111, 32, 39, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 39, 60, 47, 105, 62, 60, 47, 102, 111, 110, 116, 62, 60, 98, 114, 47, 62, 34, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 60, 47, 112, 62, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 112, 32, 115, 116, 121, 108, 101, 61, 92, 34, 109, 97, 114, 103, 105, 110, 45, 108, 101, 102, 116, 58, 49, 48, 48, 112, 120, 92, 34, 62, 60, 102, 111, 110, 116, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 60, 98, 62, 91, 32, 84, 111, 116, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 58, 32, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 34, 32, 93, 60, 47, 98, 62, 60, 47, 102, 111, 110, 116, 62, 34, 10, 45, 118, 32, 45, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 102, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 120, 109, 108, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 63, 120, 109, 108, 32, 118, 101, 114, 115, 105, 111, 110, 61, 92, 34, 49, 46, 48, 92, 34, 32, 101, 110, 99, 111, 100, 105, 110, 103, 61, 92, 34, 85, 84, 70, 45, 56, 92, 34, 32, 115, 116, 97, 110, 100, 97, 108, 111, 110, 101, 61, 92, 34, 121, 101, 115, 92, 34, 63, 62, 10, 92, 110, 60, 63, 120, 109, 108, 45, 115, 116, 121, 108, 101, 115, 104, 101, 101, 116, 32, 104, 114, 101, 102, 61, 92, 34, 103, 109, 105, 99, 95, 100, 111, 99, 46, 120, 115, 108, 92, 34, 32, 116, 121, 112, 101, 61, 92, 34, 116, 101, 120, 116, 47, 120, 115, 108, 92, 34, 63, 62, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 60, 103, 109, 105, 99, 45, 112, 97, 99, 107, 97, 103, 101, 32, 120, 109, 108, 110, 115, 58, 120, 115, 105, 61, 92, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 49, 47, 88, 77, 76, 83, 99, 104, 101, 109, 97, 45, 105, 110, 115, 116, 97, 110, 99, 101, 92, 34, 32, 120, 115, 105, 58, 110, 111, 78, 97, 109, 101, 115, 112, 97, 99, 101, 83, 99, 104, 101, 109, 97, 76, 111, 99, 97, 116, 105, 111, 110, 61, 92, 34, 103, 109, 105, 99, 95, 100, 111, 99, 46, 120, 115, 100, 92, 34, 62, 10, 92, 110, 60, 110, 97, 109, 101, 62, 34, 36, 95, 110, 97, 109, 101, 34, 60, 47, 110, 97, 109, 101, 62, 10, 92, 110, 60, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 32, 32, 60, 110, 97, 109, 101, 62, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 118, 32, 45, 10, 45, 109, 32, 34, 100, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 120, 109, 108, 34, 10, 45, 109, 32, 34, 100, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 120, 109, 108, 34, 10, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 48, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 32, 32, 32, 32, 60, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 92, 110, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 95, 111, 102, 102, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 100, 101, 115, 99, 10, 45, 117, 32, 34, 32, 32, 32, 32, 60, 47, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 62, 92, 110, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 32, 32, 60, 110, 97, 109, 101, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 61, 49, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 60, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 10, 45, 118, 32, 45, 10, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 61, 49, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 49, 61, 34, 34, 32, 115, 48, 61, 34, 32, 124, 34, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 110, 97, 109, 101, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 110, 97, 109, 101, 62, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 97, 114, 103, 117, 109, 101, 110, 116, 115, 62, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 34, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 36, 123, 115, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 47, 97, 114, 103, 117, 109, 101, 110, 116, 115, 62, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 110, 125, 34, 32, 32, 32, 32, 32, 32, 34, 64, 123, 48, 44, 116, 125, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 120, 109, 108, 32, 58, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 32, 32, 32, 32, 60, 101, 120, 97, 109, 112, 108, 101, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 60, 99, 111, 109, 109, 97, 110, 100, 62, 34, 64, 123, 48, 44, 116, 125, 34, 60, 47, 99, 111, 109, 109, 97, 110, 100, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 32, 32, 60, 114, 101, 115, 117, 108, 116, 62, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 60, 47, 114, 101, 115, 117, 108, 116, 62, 34, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 60, 47, 101, 120, 97, 109, 112, 108, 101, 62, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 120, 109, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 99, 111, 109, 109, 97, 110, 100, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 102, 117, 110, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 32, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 62, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 91, 93, 32, 64, 123, 45, 100, 111, 102, 102, 125, 34, 60, 47, 115, 101, 99, 116, 105, 111, 110, 62, 10, 92, 110, 60, 47, 103, 109, 105, 99, 45, 112, 97, 99, 107, 97, 103, 101, 62, 34, 10, 45, 118, 32, 45, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 100, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 120, 109, 108, 32, 58, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 38, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 60, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 108, 116, 59, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 62, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 103, 116, 59, 39, 125, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 92, 100, 111, 99, 117, 109, 101, 110, 116, 99, 108, 97, 115, 115, 91, 97, 52, 112, 97, 112, 101, 114, 44, 49, 48, 112, 116, 44, 116, 119, 111, 115, 105, 100, 101, 93, 123, 98, 111, 111, 107, 125, 10, 92, 110, 92, 92, 117, 115, 101, 112, 97, 99, 107, 97, 103, 101, 123, 104, 121, 112, 101, 114, 114, 101, 102, 44, 102, 97, 110, 99, 121, 104, 100, 114, 44, 103, 114, 97, 112, 104, 105, 99, 120, 44, 97, 109, 115, 115, 121, 109, 98, 44, 97, 109, 115, 109, 97, 116, 104, 44, 116, 105, 109, 101, 115, 44, 109, 97, 107, 101, 105, 100, 120, 125, 10, 92, 110, 92, 92, 103, 114, 97, 112, 104, 105, 99, 115, 112, 97, 116, 104, 123, 123, 34, 36, 95, 112, 97, 116, 104, 34, 125, 125, 10, 92, 110, 92, 92, 112, 97, 103, 101, 115, 116, 121, 108, 101, 123, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 125, 10, 92, 110, 92, 92, 108, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 114, 105, 103, 104, 116, 109, 97, 114, 107, 125, 125, 10, 92, 110, 92, 92, 114, 104, 101, 97, 100, 91, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 108, 101, 102, 116, 109, 97, 114, 107, 125, 93, 123, 92, 92, 102, 97, 110, 99, 121, 112, 108, 97, 105, 110, 123, 125, 123, 92, 92, 116, 101, 120, 116, 98, 102, 92, 92, 116, 104, 101, 112, 97, 103, 101, 125, 125, 10, 92, 110, 92, 92, 99, 102, 111, 111, 116, 123, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 125, 123, 53, 46, 56, 55, 53, 105, 110, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 112, 97, 114, 105, 110, 100, 101, 110, 116, 125, 123, 48, 112, 99, 125, 10, 92, 110, 92, 92, 115, 101, 116, 108, 101, 110, 103, 116, 104, 123, 92, 92, 104, 111, 102, 102, 115, 101, 116, 125, 123, 45, 48, 46, 56, 99, 109, 125, 10, 92, 110, 92, 92, 115, 101, 116, 99, 111, 117, 110, 116, 101, 114, 123, 116, 111, 99, 100, 101, 112, 116, 104, 125, 123, 49, 125, 10, 92, 110, 92, 92, 115, 108, 111, 112, 112, 121, 123, 125, 10, 92, 110, 92, 92, 114, 101, 110, 101, 119, 99, 111, 109, 109, 97, 110, 100, 92, 92, 105, 110, 100, 101, 120, 110, 97, 109, 101, 123, 73, 110, 100, 101, 120, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 10, 92, 110, 92, 92, 109, 97, 107, 101, 105, 110, 100, 101, 120, 10, 92, 110, 92, 92, 98, 101, 103, 105, 110, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 10, 92, 110, 92, 92, 116, 97, 98, 108, 101, 111, 102, 99, 111, 110, 116, 101, 110, 116, 115, 34, 10, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 92, 92, 99, 104, 97, 112, 116, 101, 114, 123, 76, 105, 115, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 125, 34, 32, 45, 118, 32, 45, 10, 45, 109, 32, 34, 101, 111, 110, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 108, 97, 116, 101, 120, 34, 10, 45, 109, 32, 34, 101, 111, 102, 102, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 108, 97, 116, 101, 120, 34, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 92, 92, 92, 92, 34, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 92, 92, 98, 101, 103, 105, 110, 123, 99, 101, 110, 116, 101, 114, 125, 34, 10, 95, 105, 115, 95, 101, 120, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 95, 111, 102, 102, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 105, 115, 95, 101, 120, 10, 45, 117, 32, 34, 92, 92, 101, 110, 100, 123, 99, 101, 110, 116, 101, 114, 125, 34, 10, 95, 105, 115, 95, 101, 120, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 34, 92, 110, 92, 92, 115, 101, 99, 116, 105, 111, 110, 123, 34, 64, 123, 48, 44, 116, 125, 34, 125, 34, 32, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 101, 49, 61, 34, 92, 92, 92, 92, 126, 92, 92, 92, 92, 34, 32, 101, 48, 61, 34, 126, 126, 126, 36, 124, 36, 92, 92, 92, 92, 34, 10, 115, 49, 61, 34, 92, 92, 104, 115, 112, 97, 99, 101, 42, 123, 50, 46, 50, 99, 109, 125, 34, 32, 115, 48, 61, 34, 34, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 34, 92, 110, 92, 110, 92, 92, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 123, 92, 92, 101, 109, 112, 104, 123, 45, 34, 64, 123, 48, 44, 116, 125, 34, 92, 92, 105, 110, 100, 101, 120, 123, 45, 34, 64, 123, 48, 44, 116, 125, 34, 125, 125, 32, 34, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 34, 125, 92, 92, 118, 115, 112, 97, 99, 101, 42, 123, 45, 48, 46, 53, 101, 109, 125, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 101, 91, 93, 32, 34, 126, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 98, 102, 123, 65, 114, 103, 117, 109, 101, 110, 116, 115, 58, 32, 125, 32, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 101, 91, 93, 32, 36, 123, 115, 123, 36, 62, 33, 61, 48, 125, 125, 34, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 123, 49, 43, 36, 62, 125, 44, 116, 125, 34, 125, 125, 34, 36, 123, 101, 123, 36, 60, 61, 61, 48, 125, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 32, 58, 10, 115, 48, 61, 34, 34, 32, 115, 49, 61, 34, 126, 92, 92, 92, 92, 34, 32, 115, 61, 36, 123, 115, 36, 95, 105, 115, 95, 100, 101, 115, 99, 125, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 49, 50, 125, 39, 61, 61, 39, 123, 39, 34, 68, 101, 102, 97, 117, 108, 116, 32, 118, 97, 108, 117, 101, 34, 39, 125, 125, 10, 45, 115, 32, 43, 44, 123, 39, 58, 39, 125, 32, 45, 108, 91, 94, 48, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 58, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 32, 97, 110, 100, 32, 34, 39, 125, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 125, 32, 97, 110, 100, 32, 92, 92, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 39, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 126, 92, 92, 92, 92, 92, 92, 116, 101, 120, 116, 98, 102, 123, 34, 64, 123, 48, 44, 116, 125, 34, 125, 58, 32, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 126, 92, 92, 92, 92, 34, 64, 123, 48, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 55, 125, 39, 61, 61, 39, 123, 39, 34, 40, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 56, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 41, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 34, 40, 92, 92, 101, 109, 112, 104, 123, 101, 113, 46, 32, 116, 111, 125, 32, 123, 92, 92, 115, 109, 97, 108, 108, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 40, 105, 60, 123, 39, 65, 39, 125, 34, 32, 124, 124, 32, 34, 105, 62, 123, 39, 90, 39, 125, 41, 34, 32, 38, 38, 32, 34, 105, 33, 61, 52, 48, 34, 32, 38, 38, 32, 34, 105, 33, 61, 51, 57, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 102, 102, 125, 36, 115, 64, 123, 45, 49, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 49, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 108, 97, 116, 101, 120, 32, 58, 10, 95, 105, 115, 95, 100, 101, 115, 99, 61, 48, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 57, 57, 32, 45, 114, 101, 115, 101, 116, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 64, 123, 45, 101, 111, 110, 125, 34, 92, 92, 105, 110, 99, 108, 117, 100, 101, 103, 114, 97, 112, 104, 105, 99, 115, 91, 107, 101, 101, 112, 97, 115, 112, 101, 99, 116, 114, 97, 116, 105, 111, 61, 116, 114, 117, 101, 44, 104, 101, 105, 103, 104, 116, 61, 55, 99, 109, 44, 119, 105, 100, 116, 104, 61, 92, 92, 116, 101, 120, 116, 119, 105, 100, 116, 104, 93, 123, 34, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 34, 125, 92, 92, 92, 92, 34, 10, 45, 101, 91, 93, 32, 34, 123, 92, 92, 102, 111, 111, 116, 110, 111, 116, 101, 115, 105, 122, 101, 32, 92, 92, 116, 101, 120, 116, 98, 102, 123, 69, 120, 97, 109, 112, 108, 101, 32, 34, 36, 95, 101, 120, 97, 109, 112, 108, 101, 34, 126, 58, 125, 32, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 64, 123, 45, 49, 44, 116, 125, 34, 125, 125, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 108, 97, 116, 101, 120, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 36, 92, 92, 98, 117, 108, 108, 101, 116, 36, 126, 39, 92, 92, 116, 101, 120, 116, 116, 116, 123, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 125, 39, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 126, 105, 115, 32, 101, 113, 117, 105, 118, 97, 108, 101, 110, 116, 32, 116, 111, 126, 126, 39, 92, 92, 116, 101, 120, 116, 116, 116, 123, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 125, 39, 46, 92, 92, 92, 92, 34, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 10, 92, 110, 92, 92, 112, 114, 105, 110, 116, 105, 110, 100, 101, 120, 10, 92, 110, 126, 92, 92, 92, 92, 36, 92, 92, 115, 113, 117, 97, 114, 101, 36, 126, 69, 110, 100, 32, 111, 102, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 10, 92, 110, 92, 110, 92, 92, 101, 110, 100, 123, 100, 111, 99, 117, 109, 101, 110, 116, 125, 34, 10, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 110, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 101, 111, 102, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 114, 101, 112, 108, 97, 99, 101, 95, 108, 97, 116, 101, 120, 32, 58, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 92, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 92, 92, 92, 92, 116, 101, 120, 116, 98, 97, 99, 107, 115, 108, 97, 115, 104, 32, 34, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 95, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 95, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 37, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 37, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 35, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 37, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 94, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 92, 92, 92, 92, 116, 101, 120, 116, 97, 115, 99, 105, 105, 99, 105, 114, 99, 117, 109, 32, 34, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 36, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 36, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 123, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 92, 123, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 92, 125, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 92, 125, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 38, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 92, 92, 92, 92, 38, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 124, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 126, 36, 124, 36, 126, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 60, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 36, 92, 60, 36, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 123, 39, 62, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 36, 92, 62, 36, 39, 125, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 45, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 101, 120, 97, 109, 112, 108, 101, 32, 105, 109, 97, 103, 101, 115, 32, 102, 114, 111, 109, 32, 115, 101, 116, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 39, 34, 36, 95, 110, 97, 109, 101, 34, 39, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 95, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 116, 125, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 105, 109, 97, 103, 101, 115, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 105, 109, 97, 103, 101, 115, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 46, 32, 67, 111, 109, 109, 97, 110, 100, 32, 39, 45, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 95, 110, 97, 109, 101, 34, 39, 58, 32, 36, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 10, 45, 109, 32, 34, 102, 111, 111, 32, 58, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 108, 91, 93, 32, 45, 118, 32, 45, 49, 32, 45, 114, 101, 115, 101, 116, 32, 45, 118, 32, 45, 57, 57, 32, 45, 102, 111, 111, 32, 45, 118, 32, 45, 49, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 45, 111, 32, 36, 95, 102, 105, 108, 101, 110, 97, 109, 101, 44, 56, 53, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 102, 111, 111, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 45, 32, 91, 32, 65, 108, 108, 32, 100, 111, 110, 101, 33, 32, 93, 92, 110, 92, 110, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 110, 32, 42, 42, 32, 34, 64, 123, 48, 44, 116, 125, 34, 58, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 45, 105, 102, 32, 123, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 45, 49, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 113, 117, 97, 108, 105, 102, 105, 101, 114, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 49, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 36, 113, 117, 97, 108, 105, 102, 105, 101, 114, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 32, 45, 34, 64, 123, 48, 44, 116, 125, 36, 123, 113, 117, 97, 108, 105, 102, 105, 101, 114, 125, 34, 58, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 64, 35, 10, 115, 61, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 10, 45, 121, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 34, 32, 124, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 120, 44, 45, 56, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 92, 92, 92, 92, 92, 110, 36, 115, 34, 32, 32, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 120, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 36, 115, 64, 123, 48, 44, 116, 125, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 32, 58, 10, 115, 61, 34, 32, 32, 32, 32, 32, 32, 32, 32, 34, 10, 45, 121, 32, 120, 32, 45, 115, 32, 120, 44, 45, 57, 54, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 40, 123, 39, 92, 92, 92, 92, 92, 110, 36, 115, 34, 32, 32, 34, 39, 125, 41, 32, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 101, 91, 93, 32, 36, 115, 64, 123, 36, 62, 44, 116, 125, 32, 45, 118, 32, 45, 32, 45, 100, 111, 110, 101, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 97, 115, 99, 105, 105, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 97, 115, 99, 105, 105, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 105, 102, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 40, 123, 39, 34, 67, 111, 109, 109, 97, 110, 100, 115, 32, 115, 104, 111, 114, 116, 99, 117, 116, 115, 34, 39, 125, 41, 32, 45, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 97, 115, 99, 105, 105, 91, 45, 49, 93, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 101, 91, 93, 32, 34, 32, 32, 32, 32, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 32, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 113, 117, 97, 108, 105, 102, 105, 101, 114, 36, 62, 125, 34, 58, 32, 101, 113, 46, 32, 116, 111, 32, 39, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 34, 39, 46, 34, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 32, 32, 32, 91, 32, 84, 111, 116, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 58, 32, 34, 36, 95, 99, 111, 109, 109, 97, 110, 100, 34, 32, 93, 34, 32, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 104, 101, 97, 100, 101, 114, 95, 98, 97, 115, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 35, 10, 92, 110, 92, 35, 32, 32, 66, 97, 115, 104, 32, 99, 111, 109, 112, 108, 101, 116, 105, 111, 110, 32, 114, 117, 108, 101, 115, 32, 102, 111, 114, 32, 39, 103, 109, 105, 99, 39, 46, 10, 92, 110, 92, 35, 10, 92, 110, 92, 35, 32, 84, 104, 105, 115, 32, 102, 105, 108, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 46, 10, 92, 110, 92, 35, 32, 68, 111, 32, 110, 111, 116, 32, 101, 100, 105, 116, 33, 10, 92, 110, 92, 35, 10, 92, 110, 92, 35, 32, 84, 104, 105, 115, 32, 102, 105, 108, 101, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 99, 111, 112, 105, 101, 100, 47, 114, 101, 110, 97, 109, 101, 100, 32, 105, 110, 32, 39, 47, 101, 116, 99, 47, 98, 97, 115, 104, 95, 99, 111, 109, 112, 108, 101, 116, 105, 111, 110, 46, 100, 47, 103, 109, 105, 99, 39, 46, 10, 92, 110, 92, 35, 10, 92, 110, 10, 92, 110, 95, 34, 36, 95, 110, 97, 109, 101, 34, 40, 41, 10, 92, 110, 123, 10, 92, 110, 92, 116, 108, 111, 99, 97, 108, 32, 99, 117, 114, 32, 112, 114, 101, 118, 32, 111, 112, 116, 115, 32, 99, 111, 109, 115, 10, 92, 110, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 41, 10, 92, 110, 92, 116, 99, 117, 114, 61, 92, 34, 36, 123, 67, 79, 77, 80, 95, 87, 79, 82, 68, 83, 91, 67, 79, 77, 80, 95, 67, 87, 79, 82, 68, 93, 125, 92, 34, 10, 92, 110, 92, 116, 112, 114, 101, 118, 61, 92, 34, 36, 123, 67, 79, 77, 80, 95, 87, 79, 82, 68, 83, 91, 67, 79, 77, 80, 95, 67, 87, 79, 82, 68, 45, 49, 93, 125, 92, 34, 10, 34, 10, 45, 118, 32, 45, 10, 95, 111, 112, 116, 115, 61, 10, 95, 99, 111, 109, 115, 61, 10, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 48, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 48, 10, 95, 110, 98, 111, 112, 116, 115, 61, 48, 10, 95, 110, 98, 99, 111, 109, 115, 61, 48, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 115, 117, 98, 115, 101, 99, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 101, 120, 97, 109, 112, 108, 101, 95, 98, 97, 115, 104, 32, 58, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 95, 98, 97, 115, 104, 32, 58, 10, 95, 111, 112, 116, 115, 36, 95, 110, 98, 111, 112, 116, 115, 61, 45, 64, 123, 48, 44, 116, 125, 34, 32, 34, 45, 45, 64, 123, 48, 44, 116, 125, 10, 95, 110, 98, 111, 112, 116, 115, 61, 123, 36, 95, 110, 98, 111, 112, 116, 115, 43, 49, 125, 10, 95, 99, 111, 109, 115, 36, 95, 110, 98, 99, 111, 109, 115, 61, 64, 123, 48, 44, 116, 125, 10, 95, 110, 98, 99, 111, 109, 115, 61, 123, 36, 95, 110, 98, 99, 111, 109, 115, 43, 49, 125, 10, 45, 105, 102, 32, 123, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 105, 110, 112, 117, 116, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 105, 34, 125, 34, 32, 124, 124, 32, 34, 92, 10, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 111, 117, 116, 112, 117, 116, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 111, 34, 125, 34, 32, 124, 124, 32, 34, 92, 10, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 99, 111, 109, 109, 97, 110, 100, 34, 125, 34, 32, 124, 124, 32, 34, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 109, 34, 125, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 123, 64, 123, 36, 60, 44, 116, 125, 39, 61, 61, 39, 34, 40, 42, 41, 34, 125, 124, 124, 123, 64, 123, 36, 60, 44, 116, 125, 39, 61, 61, 39, 34, 40, 43, 41, 34, 125, 125, 32, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 34, 32, 38, 38, 32, 34, 123, 64, 123, 45, 49, 44, 48, 45, 54, 125, 39, 61, 61, 39, 123, 39, 34, 101, 113, 46, 32, 116, 111, 32, 34, 39, 125, 125, 125, 10, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 55, 44, 49, 48, 48, 37, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 46, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 57, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 39, 45, 39, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 48, 44, 116, 125, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 64, 123, 45, 115, 116, 114, 50, 104, 101, 120, 92, 32, 64, 123, 49, 44, 116, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 115, 104, 111, 114, 116, 99, 117, 116, 61, 123, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 95, 99, 111, 109, 109, 97, 110, 100, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 48, 44, 116, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 116, 125, 39, 61, 61, 39, 34, 104, 101, 108, 112, 34, 125, 32, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 34, 36, 99, 111, 109, 115, 92, 34, 32, 45, 45, 32, 92, 34, 36, 99, 117, 114, 34, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 40, 123, 39, 62, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 94, 48, 93, 32, 123, 39, 34, 32, 34, 39, 125, 32, 45, 105, 91, 50, 45, 45, 50, 93, 32, 40, 123, 39, 34, 32, 34, 39, 125, 41, 32, 45, 97, 91, 94, 48, 93, 32, 121, 10, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 64, 123, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 64, 123, 45, 115, 116, 114, 50, 104, 101, 120, 92, 32, 64, 123, 48, 44, 116, 125, 125, 61, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 125, 10, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 61, 123, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 95, 102, 111, 111, 116, 101, 114, 95, 98, 97, 115, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 43, 10, 45, 101, 91, 93, 32, 34, 92, 116, 111, 112, 116, 115, 61, 92, 34, 92, 92, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 111, 112, 116, 115, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 32, 34, 36, 123, 95, 111, 112, 116, 115, 36, 62, 125, 92, 92, 32, 45, 100, 111, 110, 101, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 92, 34, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 99, 111, 109, 115, 61, 92, 34, 92, 92, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 99, 111, 109, 115, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 32, 34, 36, 123, 95, 99, 111, 109, 115, 36, 62, 125, 92, 92, 32, 45, 100, 111, 110, 101, 32, 45, 101, 91, 93, 32, 34, 92, 116, 32, 32, 32, 32, 32, 92, 34, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 99, 97, 115, 101, 32, 92, 34, 36, 123, 112, 114, 101, 118, 125, 92, 34, 32, 105, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 97, 114, 103, 99, 111, 109, 109, 97, 110, 100, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 92, 34, 45, 34, 36, 123, 95, 99, 111, 109, 109, 97, 110, 100, 36, 62, 125, 34, 92, 34, 32, 124, 32, 92, 34, 45, 45, 34, 36, 123, 95, 99, 111, 109, 109, 97, 110, 100, 36, 62, 125, 34, 92, 34, 41, 34, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 34, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 36, 62, 125, 34, 92, 34, 41, 32, 41, 92, 110, 92, 116, 92, 116, 114, 101, 116, 117, 114, 110, 32, 48, 92, 110, 92, 116, 92, 116, 59, 59, 34, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 115, 104, 111, 114, 116, 99, 117, 116, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 125, 41, 125, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 92, 34, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 92, 34, 32, 124, 32, 92, 34, 45, 45, 34, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 36, 62, 125, 34, 92, 34, 41, 34, 10, 45, 101, 91, 93, 32, 34, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 34, 36, 123, 95, 97, 114, 103, 117, 109, 101, 110, 116, 108, 105, 110, 107, 36, 123, 95, 115, 104, 111, 114, 116, 99, 117, 116, 108, 105, 110, 107, 36, 62, 125, 125, 34, 92, 34, 41, 32, 41, 92, 110, 92, 116, 92, 116, 114, 101, 116, 117, 114, 110, 32, 48, 92, 110, 92, 116, 92, 116, 59, 59, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 101, 91, 93, 32, 34, 92, 116, 101, 115, 97, 99, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 92, 116, 105, 102, 32, 91, 91, 32, 92, 34, 36, 99, 117, 114, 92, 34, 32, 61, 61, 32, 45, 42, 32, 93, 93, 32, 59, 32, 116, 104, 101, 110, 10, 92, 110, 92, 116, 92, 116, 67, 79, 77, 80, 82, 69, 80, 76, 89, 61, 40, 32, 36, 40, 99, 111, 109, 112, 103, 101, 110, 32, 45, 87, 32, 92, 34, 36, 111, 112, 116, 115, 92, 34, 32, 45, 45, 32, 92, 34, 36, 99, 117, 114, 92, 34, 41, 32, 41, 10, 92, 110, 92, 116, 101, 108, 115, 101, 10, 92, 110, 92, 116, 92, 116, 95, 102, 105, 108, 101, 100, 105, 114, 10, 92, 110, 92, 116, 102, 105, 10, 92, 110, 10, 92, 110, 125, 10, 92, 110, 10, 99, 111, 109, 112, 108, 101, 116, 101, 32, 45, 70, 32, 95, 34, 36, 95, 110, 97, 109, 101, 34, 32, 45, 111, 32, 102, 105, 108, 101, 110, 97, 109, 101, 115, 32, 103, 109, 105, 99, 34, 10, 45, 118, 32, 45, 10, 95, 100, 111, 99, 117, 109, 101, 110, 116, 95, 103, 109, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 87, 36, 62, 61, 123, 119, 125, 32, 72, 36, 62, 61, 123, 104, 125, 32, 68, 36, 62, 61, 123, 100, 125, 32, 83, 36, 62, 61, 123, 115, 125, 32, 73, 83, 95, 51, 68, 36, 62, 61, 64, 123, 45, 105, 115, 95, 51, 100, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 51, 100, 125, 32, 45, 43, 51, 100, 32, 48, 32, 45, 114, 51, 100, 32, 49, 44, 49, 44, 48, 44, 45, 56, 48, 32, 45, 114, 51, 100, 32, 48, 44, 49, 44, 48, 44, 56, 48, 32, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 52, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 32, 45, 105, 102, 32, 123, 119, 62, 57, 48, 48, 125, 32, 114, 61, 123, 114, 111, 117, 110, 100, 40, 57, 48, 48, 42, 49, 48, 48, 47, 119, 44, 48, 46, 49, 41, 125, 32, 45, 114, 91, 94, 45, 49, 93, 32, 36, 114, 37, 44, 36, 114, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 101, 108, 115, 101, 32, 45, 114, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 61, 104, 38, 38, 104, 60, 50, 53, 54, 125, 32, 45, 114, 50, 100, 121, 32, 50, 53, 54, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 104, 60, 61, 119, 38, 38, 119, 60, 50, 53, 54, 125, 32, 45, 114, 50, 100, 120, 32, 50, 53, 54, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 61, 104, 38, 38, 104, 62, 53, 49, 50, 125, 32, 45, 114, 50, 100, 121, 32, 53, 49, 50, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 104, 60, 61, 119, 38, 38, 119, 62, 53, 49, 50, 125, 32, 45, 114, 50, 100, 120, 32, 53, 49, 50, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 60, 52, 56, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 52, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 60, 52, 56, 125, 32, 45, 114, 32, 52, 56, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 102, 114, 97, 109, 101, 32, 52, 44, 52, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 78, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 108, 91, 36, 62, 93, 10, 123, 119, 125, 44, 50, 52, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 119, 62, 55, 53, 125, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 105, 102, 32, 123, 119, 62, 49, 49, 48, 125, 32, 45, 116, 91, 45, 49, 93, 32, 73, 109, 97, 103, 101, 92, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 108, 115, 101, 32, 45, 116, 91, 45, 49, 93, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 123, 73, 83, 95, 51, 68, 36, 62, 125, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 40, 51, 100, 92, 32, 111, 98, 106, 101, 99, 116, 41, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 40, 36, 123, 87, 36, 62, 125, 120, 36, 123, 72, 36, 62, 125, 120, 36, 123, 68, 36, 62, 125, 120, 36, 123, 83, 36, 62, 125, 41, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 54, 52, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 119, 45, 53, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 104, 45, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 116, 91, 45, 49, 93, 32, 91, 36, 62, 93, 58, 44, 51, 44, 51, 44, 49, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 32, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 32, 45, 43, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 119, 60, 50, 53, 54, 125, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 50, 53, 54, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 60, 50, 53, 54, 125, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 53, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 101, 99, 104, 111, 95, 102, 105, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 39, 92, 110, 39, 125, 10, 45, 118, 32, 45, 32, 40, 123, 34, 39, 36, 123, 50, 45, 45, 49, 125, 92, 110, 39, 34, 125, 41, 32, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 34, 39, 36, 42, 92, 110, 39, 34, 125, 41, 32, 45, 111, 91, 45, 49, 93, 32, 45, 46, 114, 97, 119, 44, 117, 99, 104, 97, 114, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 99, 111, 110, 116, 105, 110, 117, 111, 117, 115, 32, 49, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 107, 101, 121, 112, 111, 105, 110, 116, 115, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 60, 53, 125, 32, 123, 109, 97, 120, 40, 48, 44, 36, 50, 41, 43, 49, 125, 44, 49, 44, 49, 44, 49, 44, 36, 51, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 119, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 50, 93, 32, 123, 36, 49, 47, 50, 125, 32, 45, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 49, 47, 50, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 51, 93, 32, 123, 49, 45, 36, 49, 47, 50, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 36, 49, 47, 50, 125, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 10, 45, 115, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 52, 44, 45, 50, 93, 32, 49, 101, 45, 49, 48, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 52, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 52, 44, 45, 50, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 123, 64, 123, 45, 49, 44, 40, 48, 44, 123, 104, 45, 49, 125, 41, 125, 43, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 10, 120, 115, 116, 97, 114, 116, 61, 123, 105, 102, 40, 36, 62, 44, 64, 123, 45, 50, 44, 48, 125, 44, 48, 41, 125, 10, 45, 95, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 64, 123, 45, 50, 44, 48, 45, 49, 125, 44, 64, 123, 45, 50, 44, 51, 125, 44, 64, 123, 45, 50, 44, 52, 45, 54, 125, 44, 36, 120, 115, 116, 97, 114, 116, 44, 64, 123, 45, 50, 44, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 115, 116, 97, 114, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 48, 44, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 49, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 93, 34, 10, 45, 118, 32, 43, 10, 95, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 58, 10, 40, 123, 36, 49, 94, 51, 125, 44, 123, 36, 49, 94, 50, 125, 44, 36, 49, 44, 49, 59, 92, 10, 123, 51, 42, 36, 49, 94, 50, 125, 44, 123, 50, 42, 36, 49, 125, 44, 49, 44, 48, 59, 92, 10, 123, 36, 52, 94, 51, 125, 44, 123, 36, 52, 94, 50, 125, 44, 36, 52, 44, 49, 59, 92, 10, 123, 51, 42, 36, 52, 94, 50, 125, 44, 123, 50, 42, 36, 52, 125, 44, 49, 44, 48, 41, 10, 40, 36, 50, 59, 36, 51, 59, 36, 53, 59, 36, 54, 41, 32, 45, 115, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 40, 36, 55, 44, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 123, 49, 43, 36, 56, 45, 36, 55, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 45, 94, 91, 45, 49, 93, 32, 51, 32, 45, 45, 94, 91, 45, 50, 93, 32, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 109, 118, 91, 45, 52, 93, 32, 45, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 10, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 103, 109, 105, 99, 107, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 103, 109, 105, 99, 107, 121, 93, 32, 45, 118, 32, 43, 10, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 109, 97, 115, 99, 111, 116, 32, 39, 71, 109, 105, 99, 107, 121, 39, 32, 116, 111, 103, 101, 116, 104, 101, 114, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80, 32, 109, 97, 115, 99, 111, 116, 32, 39, 87, 105, 108, 98, 101, 114, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 93, 32, 45, 118, 32, 43, 10, 111, 110, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 110, 32, 36, 42, 10, 111, 117, 116, 112, 117, 116, 110, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 110, 32, 58, 10, 45, 118, 32, 45, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 49, 34, 44, 64, 123, 62, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 102, 105, 108, 101, 32, 39, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 111, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 118, 32, 43, 10, 111, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 112, 32, 36, 42, 10, 111, 117, 116, 112, 117, 116, 112, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 95, 34, 125, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 116, 104, 101, 105, 114, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 44, 32, 112, 114, 101, 102, 105, 120, 101, 100, 32, 98, 121, 32, 39, 36, 49, 39, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 105, 116, 115, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 44, 32, 112, 114, 101, 102, 105, 120, 101, 100, 32, 98, 121, 32, 39, 36, 49, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 111, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 102, 125, 36, 49, 64, 123, 36, 62, 44, 98, 125, 46, 64, 123, 36, 62, 44, 120, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 111, 117, 116, 112, 117, 116, 119, 32, 36, 42, 10, 111, 117, 116, 112, 117, 116, 119, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 111, 117, 116, 112, 117, 116, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 116, 104, 101, 105, 114, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 115, 32, 105, 116, 115, 32, 105, 110, 105, 116, 105, 97, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 111, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 110, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 111, 102, 32, 50, 53, 54, 32, 114, 97, 105, 110, 98, 111, 119, 32, 99, 111, 108, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 50, 44, 49, 48, 44, 49, 51, 44, 49, 51, 44, 49, 53, 44, 49, 54, 44, 49, 53, 44, 49, 53, 44, 49, 56, 44, 50, 51, 44, 50, 54, 44, 51, 49, 44, 51, 51, 44, 51, 55, 44, 51, 56, 44, 51, 57, 44, 52, 50, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 52, 44, 52, 52, 44, 52, 53, 44, 52, 53, 44, 52, 52, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 53, 44, 52, 57, 44, 53, 48, 44, 53, 50, 44, 53, 52, 44, 53, 53, 44, 53, 54, 44, 53, 55, 44, 92, 10, 53, 54, 44, 53, 54, 44, 53, 55, 44, 53, 55, 44, 53, 56, 44, 53, 55, 44, 53, 56, 44, 53, 56, 44, 53, 57, 44, 53, 56, 44, 54, 48, 44, 53, 57, 44, 53, 56, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 54, 48, 44, 54, 48, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 54, 48, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 57, 44, 53, 56, 44, 53, 56, 44, 53, 56, 44, 53, 54, 44, 92, 10, 53, 54, 44, 53, 52, 44, 53, 49, 44, 52, 56, 44, 52, 52, 44, 51, 57, 44, 51, 51, 44, 50, 48, 44, 53, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 53, 44, 50, 53, 44, 53, 48, 44, 54, 54, 44, 56, 49, 44, 57, 48, 44, 49, 48, 50, 44, 49, 48, 57, 44, 49, 49, 56, 44, 49, 50, 57, 44, 49, 51, 55, 44, 49, 52, 52, 44, 49, 53, 50, 44, 49, 53, 56, 44, 49, 54, 56, 44, 49, 55, 56, 44, 49, 56, 51, 44, 49, 57, 48, 44, 49, 57, 57, 44, 50, 48, 55, 44, 92, 10, 50, 49, 51, 44, 50, 50, 48, 44, 50, 50, 55, 44, 50, 51, 48, 44, 50, 51, 54, 44, 50, 52, 50, 44, 50, 52, 54, 44, 50, 53, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 51, 44, 50, 53, 51, 44, 50, 53, 51, 44, 50, 53, 50, 44, 50, 53, 49, 44, 50, 53, 48, 44, 50, 53, 48, 44, 50, 52, 57, 44, 50, 52, 56, 44, 50, 52, 56, 44, 50, 52, 55, 44, 50, 52, 56, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 53, 44, 50, 52, 54, 44, 92, 10, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 54, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 53, 44, 92, 10, 50, 52, 53, 44, 50, 52, 52, 44, 50, 52, 52, 44, 50, 52, 53, 44, 50, 52, 53, 44, 50, 52, 51, 44, 50, 51, 57, 44, 50, 51, 53, 44, 50, 51, 48, 44, 50, 50, 54, 44, 50, 50, 48, 44, 50, 49, 54, 44, 50, 49, 49, 44, 50, 48, 52, 44, 50, 48, 49, 44, 49, 57, 52, 44, 49, 57, 48, 44, 49, 56, 52, 44, 49, 55, 54, 44, 49, 55, 49, 44, 49, 54, 52, 44, 49, 54, 48, 44, 49, 53, 50, 44, 49, 52, 52, 44, 49, 51, 56, 44, 49, 51, 48, 44, 49, 50, 50, 44, 92, 10, 49, 49, 52, 44, 49, 48, 55, 44, 57, 54, 44, 56, 55, 44, 55, 56, 44, 54, 57, 44, 53, 55, 44, 53, 48, 44, 52, 54, 44, 51, 56, 44, 51, 49, 44, 49, 57, 44, 53, 94, 51, 44, 49, 48, 44, 49, 52, 44, 49, 53, 44, 49, 55, 44, 49, 56, 44, 49, 57, 44, 49, 56, 44, 49, 57, 44, 50, 51, 44, 50, 53, 44, 51, 48, 44, 51, 49, 44, 51, 53, 44, 51, 55, 44, 51, 57, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 56, 44, 52, 57, 44, 53, 48, 44, 53, 49, 44, 92, 10, 53, 50, 44, 53, 51, 44, 53, 54, 44, 53, 57, 44, 54, 51, 44, 54, 54, 44, 54, 54, 44, 54, 56, 44, 54, 57, 44, 55, 49, 44, 55, 51, 44, 55, 52, 44, 55, 53, 44, 55, 54, 44, 55, 54, 44, 55, 55, 44, 55, 56, 44, 55, 57, 44, 55, 57, 44, 56, 48, 44, 56, 49, 44, 56, 49, 44, 56, 50, 44, 56, 50, 44, 56, 51, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 52, 44, 56, 53, 44, 56, 53, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 92, 10, 56, 55, 44, 56, 56, 44, 56, 55, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 54, 44, 56, 56, 44, 56, 57, 44, 56, 57, 44, 57, 48, 44, 57, 50, 44, 57, 50, 44, 57, 52, 44, 57, 54, 44, 57, 57, 44, 49, 48, 50, 44, 49, 48, 52, 44, 49, 48, 55, 44, 49, 49, 49, 44, 49, 49, 55, 44, 49, 50, 48, 44, 49, 50, 54, 44, 49, 51, 48, 44, 49, 51, 54, 44, 49, 52, 50, 44, 49, 52, 57, 44, 49, 53, 53, 44, 49, 54, 49, 44, 49, 54, 55, 44, 49, 55, 50, 44, 92, 10, 49, 55, 54, 44, 49, 55, 56, 44, 49, 55, 57, 44, 49, 55, 57, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 55, 44, 49, 55, 55, 44, 49, 55, 55, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 54, 44, 49, 55, 53, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 52, 44, 49, 55, 51, 44, 49, 55, 50, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 92, 10, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 53, 44, 49, 55, 54, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 55, 56, 44, 49, 56, 49, 44, 49, 56, 50, 44, 49, 56, 52, 44, 92, 10, 49, 56, 54, 44, 49, 56, 54, 44, 49, 57, 48, 44, 49, 57, 50, 44, 49, 57, 51, 44, 49, 57, 53, 44, 49, 57, 56, 44, 50, 48, 48, 44, 50, 48, 49, 44, 50, 48, 52, 44, 50, 48, 54, 44, 50, 48, 57, 44, 50, 49, 49, 44, 50, 48, 56, 44, 50, 48, 54, 44, 50, 48, 50, 44, 49, 57, 55, 44, 49, 57, 52, 44, 49, 57, 48, 44, 49, 56, 53, 44, 49, 56, 50, 44, 49, 55, 56, 44, 49, 55, 50, 44, 49, 54, 55, 44, 49, 54, 50, 44, 49, 53, 55, 44, 49, 53, 50, 44, 92, 10, 49, 52, 52, 44, 49, 51, 57, 44, 49, 51, 50, 44, 49, 50, 55, 44, 49, 50, 49, 44, 49, 49, 53, 44, 49, 48, 56, 44, 49, 48, 50, 44, 57, 56, 44, 57, 50, 44, 56, 55, 44, 55, 57, 44, 55, 53, 44, 54, 57, 44, 54, 52, 44, 54, 50, 44, 53, 56, 44, 53, 53, 44, 53, 50, 44, 53, 48, 44, 52, 57, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 54, 44, 52, 54, 44, 52, 54, 44, 52, 54, 44, 92, 10, 52, 53, 44, 52, 52, 44, 52, 52, 44, 52, 50, 44, 52, 50, 44, 52, 49, 44, 52, 49, 44, 52, 48, 44, 51, 57, 44, 51, 56, 44, 51, 55, 44, 51, 54, 44, 51, 52, 44, 51, 49, 44, 51, 48, 44, 50, 57, 44, 51, 48, 44, 51, 48, 44, 51, 49, 44, 51, 50, 44, 51, 50, 44, 51, 50, 44, 51, 51, 44, 51, 51, 44, 51, 52, 44, 51, 52, 44, 51, 51, 44, 51, 52, 44, 51, 51, 44, 51, 50, 44, 51, 49, 44, 51, 49, 44, 51, 48, 44, 50, 57, 44, 50, 54, 44, 50, 53, 44, 92, 10, 50, 51, 44, 50, 49, 44, 49, 57, 44, 49, 53, 44, 49, 51, 44, 49, 51, 44, 49, 54, 44, 49, 56, 44, 49, 56, 44, 49, 56, 44, 49, 55, 44, 49, 53, 44, 49, 51, 44, 49, 50, 44, 57, 44, 50, 94, 54, 44, 49, 57, 44, 50, 53, 44, 51, 50, 44, 52, 49, 44, 52, 57, 44, 53, 53, 44, 54, 53, 44, 55, 49, 44, 55, 57, 44, 56, 52, 44, 57, 48, 44, 57, 54, 44, 49, 48, 50, 44, 49, 48, 54, 44, 49, 49, 49, 44, 49, 49, 55, 44, 49, 50, 49, 44, 49, 50, 56, 44, 92, 10, 49, 51, 50, 44, 49, 51, 52, 44, 49, 51, 57, 44, 49, 52, 51, 44, 49, 52, 54, 44, 49, 52, 57, 44, 49, 53, 50, 44, 49, 53, 53, 44, 49, 53, 54, 44, 49, 53, 55, 44, 49, 53, 57, 44, 49, 53, 57, 44, 49, 54, 48, 44, 49, 54, 49, 44, 49, 54, 50, 44, 49, 54, 51, 44, 49, 54, 52, 44, 49, 54, 52, 44, 49, 54, 53, 44, 49, 54, 54, 44, 49, 54, 55, 44, 49, 54, 54, 44, 49, 54, 53, 44, 49, 54, 54, 44, 49, 54, 54, 44, 49, 54, 55, 44, 49, 54, 55, 44, 92, 10, 49, 54, 56, 44, 49, 54, 56, 44, 49, 54, 56, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 54, 57, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 49, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 48, 44, 49, 55, 49, 44, 49, 55, 49, 44, 49, 55, 50, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 51, 44, 49, 55, 53, 44, 92, 10, 49, 55, 55, 44, 49, 55, 57, 44, 49, 56, 48, 44, 49, 56, 51, 44, 49, 56, 53, 44, 49, 56, 55, 44, 49, 57, 48, 44, 49, 57, 51, 44, 49, 57, 56, 44, 50, 48, 49, 44, 50, 48, 54, 44, 50, 49, 51, 44, 50, 49, 57, 44, 50, 50, 53, 44, 50, 50, 55, 44, 50, 50, 55, 44, 50, 50, 51, 44, 50, 49, 56, 44, 50, 49, 52, 44, 50, 48, 52, 44, 49, 57, 57, 44, 49, 57, 50, 44, 49, 56, 52, 44, 49, 55, 57, 44, 49, 55, 50, 44, 49, 54, 56, 44, 49, 54, 50, 44, 92, 10, 49, 53, 54, 44, 49, 53, 49, 44, 49, 52, 53, 44, 49, 51, 57, 44, 49, 51, 51, 44, 49, 50, 54, 44, 49, 50, 48, 44, 49, 49, 51, 44, 49, 48, 54, 44, 57, 56, 44, 57, 48, 44, 56, 53, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 56, 52, 44, 56, 52, 44, 56, 50, 44, 56, 50, 44, 56, 50, 44, 92, 10, 56, 50, 44, 56, 50, 44, 56, 51, 44, 56, 51, 44, 56, 49, 44, 56, 49, 44, 56, 49, 44, 56, 48, 44, 56, 48, 44, 55, 56, 44, 55, 56, 44, 55, 56, 44, 55, 54, 44, 55, 52, 44, 55, 51, 44, 55, 51, 44, 55, 49, 44, 55, 50, 44, 54, 57, 44, 54, 56, 44, 54, 55, 44, 54, 53, 44, 54, 50, 44, 53, 57, 44, 53, 56, 44, 53, 54, 44, 53, 49, 44, 53, 48, 44, 52, 57, 44, 52, 53, 44, 52, 51, 44, 52, 48, 44, 51, 56, 44, 51, 55, 44, 51, 53, 44, 51, 50, 44, 92, 10, 51, 49, 44, 51, 50, 44, 51, 50, 44, 51, 51, 44, 51, 51, 44, 51, 52, 44, 51, 52, 44, 51, 53, 44, 51, 54, 44, 51, 54, 44, 51, 55, 44, 51, 56, 44, 51, 57, 44, 52, 50, 44, 52, 52, 44, 52, 53, 44, 52, 54, 44, 52, 54, 44, 52, 55, 44, 52, 56, 44, 52, 57, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 56, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 55, 44, 52, 54, 44, 92, 10, 52, 53, 44, 52, 53, 44, 52, 51, 44, 52, 51, 44, 52, 50, 44, 52, 49, 44, 52, 48, 44, 51, 57, 44, 51, 56, 44, 51, 55, 44, 51, 56, 44, 51, 56, 44, 51, 55, 44, 51, 55, 44, 51, 56, 44, 51, 56, 44, 51, 56, 44, 51, 56, 44, 51, 57, 44, 52, 48, 44, 51, 57, 44, 52, 48, 44, 51, 57, 44, 52, 48, 44, 52, 48, 44, 51, 57, 44, 51, 57, 44, 51, 56, 44, 51, 56, 44, 51, 55, 44, 51, 53, 44, 51, 52, 44, 51, 50, 44, 51, 48, 44, 50, 56, 44, 50, 54, 44, 92, 10, 50, 51, 44, 50, 48, 44, 49, 54, 44, 49, 52, 44, 49, 50, 44, 49, 54, 44, 49, 54, 44, 49, 56, 44, 49, 56, 44, 49, 55, 44, 49, 54, 44, 49, 52, 44, 49, 51, 44, 57, 44, 50, 41, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 114, 97, 105, 110, 98, 111, 119, 92, 32, 108, 117, 116, 93, 10, 45, 118, 32, 43, 10, 114, 111, 100, 100, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 82, 111, 100, 105, 108, 105, 117, 115, 32, 109, 97, 115, 99, 111, 116, 32, 39, 82, 111, 100, 100, 121, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 114, 111, 100, 100, 121, 95, 108, 97, 114, 103, 101, 46, 99, 105, 109, 103, 122, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 114, 111, 100, 100, 121, 93, 32, 45, 118, 32, 43, 10, 114, 101, 109, 111, 118, 101, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 100, 117, 112, 108, 105, 99, 97, 116, 101, 115, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 98, 97, 115, 101, 61, 36, 62, 32, 111, 102, 102, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 36, 62, 45, 49, 125, 10, 99, 111, 109, 112, 61, 123, 36, 98, 97, 115, 101, 43, 49, 43, 36, 62, 45, 36, 111, 102, 102, 125, 10, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 62, 61, 64, 35, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 45, 91, 36, 98, 97, 115, 101, 44, 36, 99, 111, 109, 112, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 105, 115, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 61, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 105, 115, 95, 100, 117, 112, 108, 105, 99, 97, 116, 101, 32, 45, 114, 109, 91, 36, 99, 111, 109, 112, 93, 32, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 101, 109, 112, 116, 121, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 33, 64, 123, 36, 60, 44, 119, 104, 100, 115, 125, 125, 32, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 50, 100, 32, 115, 121, 110, 116, 104, 101, 116, 105, 99, 32, 105, 109, 97, 103, 101, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 120, 36, 50, 120, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 68, 109, 97, 120, 50, 61, 123, 48, 46, 49, 53, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 94, 50, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 36, 51, 44, 39, 88, 61, 120, 45, 119, 47, 50, 59, 89, 61, 121, 45, 104, 47, 50, 59, 97, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 105, 102, 40, 88, 94, 50, 43, 89, 94, 50, 60, 61, 36, 68, 109, 97, 120, 50, 44, 50, 53, 53, 42, 97, 98, 115, 40, 99, 111, 115, 40, 99, 43, 50, 48, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 41, 41, 44, 56, 53, 48, 42, 40, 97, 37, 40, 48, 46, 49, 42, 40, 99, 43, 49, 41, 41, 41, 41, 39, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 50, 48, 37, 44, 50, 48, 37, 44, 54, 48, 37, 44, 50, 48, 37, 44, 55, 48, 37, 44, 55, 48, 37, 44, 51, 53, 37, 44, 52, 53, 37, 44, 48, 46, 57, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 123, 36, 49, 47, 55, 125, 44, 123, 36, 49, 47, 50, 48, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 49, 44, 56, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 48, 48, 44, 50, 53, 53, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 48, 37, 44, 55, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 50, 100, 32, 116, 101, 115, 116, 32, 105, 109, 97, 103, 101, 93, 34, 10, 45, 118, 32, 43, 10, 116, 101, 120, 116, 50, 105, 109, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 50, 61, 32, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 116, 101, 120, 116, 32, 92, 34, 36, 49, 92, 34, 44, 32, 119, 105, 116, 104, 32, 108, 105, 110, 101, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 123, 39, 34, 36, 50, 34, 39, 125, 32, 45, 121, 32, 120, 32, 45, 97, 32, 121, 32, 45, 110, 109, 32, 34, 91, 92, 34, 36, 49, 92, 34, 93, 34, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 50, 62, 48, 34, 10, 45, 101, 91, 94, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 115, 101, 116, 32, 111, 102, 32, 36, 49, 32, 117, 110, 105, 102, 111, 114, 109, 108, 121, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 36, 50, 45, 100, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 91, 48, 44, 49, 93, 94, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 110, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 94, 40, 49, 47, 36, 50, 41, 44, 49, 44, 49, 41, 125, 10, 40, 48, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 110, 44, 49, 44, 49, 44, 49, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 110, 42, 119, 125, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 100, 111, 110, 101, 10, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 49, 44, 36, 50, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 117, 110, 105, 102, 111, 114, 109, 32, 36, 50, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 93, 34, 32, 45, 118, 32, 43, 10, 117, 112, 32, 58, 10, 45, 95, 117, 112, 100, 97, 116, 101, 10, 117, 112, 100, 97, 116, 101, 32, 58, 10, 45, 95, 36, 48, 10, 95, 117, 112, 100, 97, 116, 101, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 85, 112, 100, 97, 116, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 116, 101, 115, 116, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 102, 105, 108, 101, 32, 111, 110, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 115, 101, 114, 118, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 117, 112, 100, 97, 116, 101, 64, 46, 46, 103, 109, 105, 99, 32, 45, 118, 32, 43, 10, 115, 111, 114, 116, 95, 108, 105, 115, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 43, 125, 44, 36, 123, 50, 61, 105, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 114, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 123, 36, 49, 39, 61, 61, 39, 43, 125, 44, 100, 101, 115, 99, 101, 110, 100, 105, 110, 103, 44, 97, 115, 99, 101, 110, 100, 105, 110, 103, 125, 34, 32, 111, 114, 100, 101, 114, 44, 32, 34, 92, 10, 34, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 111, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 99, 114, 105, 116, 101, 114, 105, 111, 110, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 35, 10, 105, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 40, 64, 123, 36, 62, 44, 36, 50, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 121, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 36, 49, 44, 121, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 110, 109, 36, 62, 61, 64, 123, 36, 62, 44, 110, 125, 32, 45, 110, 109, 91, 36, 62, 93, 32, 115, 111, 114, 116, 108, 105, 115, 116, 36, 62, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 45, 109, 118, 91, 115, 111, 114, 116, 108, 105, 115, 116, 123, 105, 40, 48, 44, 36, 62, 41, 125, 93, 32, 45, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 45, 110, 109, 91, 36, 62, 93, 32, 36, 123, 110, 109, 123, 105, 40, 48, 44, 36, 62, 41, 125, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 115, 111, 114, 116, 95, 115, 116, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 32, 111, 114, 100, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 45, 121, 32, 121, 32, 45, 97, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 104, 47, 52, 44, 49, 44, 49, 41, 125, 32, 121, 61, 123, 52, 42, 36, 62, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 114, 111, 119, 115, 32, 36, 121, 44, 123, 36, 121, 43, 51, 125, 32, 45, 102, 91, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 38, 38, 105, 60, 61, 49, 50, 50, 44, 105, 45, 51, 50, 44, 105, 41, 39, 32, 45, 45, 91, 45, 49, 93, 32, 51, 50, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 54, 51, 32, 45, 115, 91, 45, 49, 93, 32, 121, 32, 45, 42, 91, 45, 50, 93, 32, 54, 52, 32, 45, 42, 91, 45, 51, 93, 32, 52, 48, 57, 54, 32, 45, 42, 91, 45, 52, 93, 32, 50, 54, 50, 49, 52, 52, 32, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 114, 118, 32, 45, 97, 32, 121, 32, 45, 115, 111, 114, 116, 32, 43, 44, 120, 32, 45, 45, 114, 111, 119, 115, 32, 48, 32, 45, 114, 111, 119, 115, 91, 48, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 45, 37, 91, 49, 93, 32, 50, 10, 45, 115, 91, 49, 93, 32, 43, 44, 48, 32, 78, 61, 123, 64, 35, 45, 49, 125, 10, 120, 48, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 120, 49, 61, 123, 36, 120, 48, 43, 64, 123, 123, 49, 43, 36, 62, 125, 44, 104, 125, 125, 32, 45, 45, 122, 91, 48, 93, 32, 36, 120, 48, 44, 123, 36, 120, 49, 45, 49, 125, 32, 120, 48, 61, 36, 120, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 36, 78, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 115, 32, 120, 32, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 32, 99, 117, 114, 118, 101, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 107, 101, 121, 112, 111, 105, 110, 116, 115, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 123, 94, 48, 125, 32, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 71, 97, 109, 109, 97, 45, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 110, 32, 48, 44, 49, 32, 45, 94, 32, 123, 49, 47, 36, 49, 125, 32, 45, 110, 32, 36, 109, 77, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 50, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 108, 111, 114, 32, 98, 97, 108, 97, 110, 99, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 99, 117, 114, 118, 101, 32, 97, 110, 100, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 123, 94, 48, 125, 34, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 36, 123, 94, 48, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 47, 91, 36, 62, 93, 32, 50, 53, 53, 32, 45, 94, 91, 36, 62, 93, 32, 123, 108, 111, 103, 40, 64, 123, 45, 49, 44, 36, 62, 125, 41, 47, 108, 111, 103, 40, 64, 123, 36, 62, 44, 97, 125, 41, 125, 32, 45, 42, 91, 36, 62, 93, 32, 50, 53, 53, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 45, 97, 116, 97, 110, 50, 91, 49, 93, 32, 91, 48, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 49, 44, 110, 125, 44, 49, 32, 45, 115, 113, 114, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 115, 113, 114, 116, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 117, 109, 117, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 111, 102, 32, 102, 117, 110, 99, 116, 105, 111, 110, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 100, 105, 109, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 32, 45, 121, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 119, 41, 44, 49, 44, 49, 41, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 50, 94, 36, 62, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 36, 100, 105, 109, 44, 45, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 115, 99, 97, 114, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 118, 97, 108, 117, 101, 32, 36, 49, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 45, 44, 36, 49, 32, 45, 97, 32, 121, 10, 45, 105, 102, 32, 123, 33, 64, 35, 34, 32, 38, 38, 32, 34, 33, 36, 50, 125, 32, 49, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 105, 103, 101, 110, 50, 116, 101, 110, 115, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 99, 111, 109, 112, 111, 115, 101, 32, 112, 97, 105, 114, 115, 32, 105, 110, 32, 101, 105, 103, 101, 110, 32, 102, 105, 101, 108, 100, 36, 63, 32, 97, 115, 32, 50, 120, 50, 32, 111, 114, 32, 51, 120, 51, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 115, 104, 91, 45, 53, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 10, 45, 115, 104, 91, 45, 51, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 51, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 54, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 108, 91, 45, 54, 45, 45, 52, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 51, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 54, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 108, 91, 45, 51, 45, 45, 49, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 51, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 54, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 115, 91, 45, 51, 93, 32, 99, 10, 45, 45, 91, 45, 53, 93, 32, 91, 45, 51, 93, 32, 45, 45, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 40, 49, 94, 48, 94, 48, 94, 49, 94, 48, 94, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 52, 93, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 101, 105, 103, 101, 110, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 108, 111, 97, 116, 50, 105, 110, 116, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 49, 54, 55, 55, 55, 50, 49, 54, 44, 48, 44, 49, 10, 45, 45, 62, 62, 32, 56, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 97, 110, 100, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 62, 62, 91, 45, 51, 93, 32, 49, 54, 10, 40, 123, 39, 36, 109, 44, 36, 77, 39, 125, 41, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 110, 116, 56, 50, 102, 108, 111, 97, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 56, 98, 105, 116, 115, 32, 105, 110, 116, 101, 103, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 36, 63, 32, 116, 111, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 123, 104, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 48, 44, 48, 32, 109, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 45, 50, 125, 32, 45, 115, 32, 121, 44, 51, 32, 45, 42, 91, 45, 51, 93, 32, 54, 53, 53, 51, 54, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 54, 32, 45, 111, 114, 32, 45, 110, 32, 36, 109, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 95, 105, 110, 116, 101, 103, 114, 97, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 105, 110, 116, 101, 103, 114, 97, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 39, 62, 105, 43, 105, 40, 120, 45, 49, 44, 121, 41, 39, 32, 45, 102, 32, 39, 62, 105, 43, 105, 40, 120, 44, 121, 45, 49, 41, 39, 32, 45, 118, 32, 43, 10, 109, 97, 112, 95, 99, 108, 117, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 97, 112, 32, 99, 111, 108, 111, 114, 32, 76, 85, 84, 32, 105, 109, 97, 103, 101, 44, 32, 117, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 91, 48, 45, 45, 50, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 108, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 42, 104, 42, 100, 41, 94, 40, 49, 47, 51, 41, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 108, 44, 36, 108, 44, 36, 108, 44, 51, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 32, 45, 47, 91, 48, 93, 32, 123, 50, 53, 54, 47, 36, 108, 125, 10, 45, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 49, 44, 49, 10, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 94, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 97, 116, 114, 105, 120, 32, 36, 49, 32, 116, 111, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 123, 119, 42, 104, 42, 100, 125, 44, 123, 115, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 105, 91, 48, 93, 32, 36, 123, 94, 48, 125, 32, 45, 42, 42, 32, 45, 114, 32, 36, 119, 104, 100, 44, 123, 104, 125, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 110, 101, 103, 97, 116, 105, 118, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 32, 123, 105, 77, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 110, 111, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 110, 111, 114, 109, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 115, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 113, 114, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 115, 113, 114, 116, 32, 45, 118, 32, 43, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 32, 117, 110, 105, 116, 97, 114, 121, 32, 115, 117, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 115, 117, 109, 61, 64, 123, 36, 62, 44, 43, 125, 32, 45, 105, 102, 32, 123, 36, 115, 117, 109, 33, 61, 48, 125, 32, 45, 47, 91, 36, 62, 93, 32, 36, 115, 117, 109, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 118, 101, 99, 116, 111, 114, 115, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 110, 111, 114, 109, 91, 36, 62, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 47, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 116, 115, 117, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 53, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 72, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 79, 116, 115, 117, 39, 115, 32, 109, 101, 116, 104, 111, 100, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 49, 32, 116, 111, 116, 97, 108, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 120, 39, 32, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 115, 117, 109, 66, 61, 48, 32, 119, 66, 61, 48, 32, 119, 70, 61, 48, 32, 118, 97, 114, 77, 97, 120, 61, 48, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 119, 66, 61, 123, 36, 119, 66, 43, 64, 123, 45, 49, 44, 36, 62, 125, 125, 10, 45, 105, 102, 32, 123, 36, 119, 66, 61, 61, 48, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 119, 70, 61, 123, 36, 116, 111, 116, 97, 108, 45, 36, 119, 66, 125, 10, 45, 105, 102, 32, 123, 36, 119, 70, 61, 61, 48, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 115, 117, 109, 66, 61, 123, 36, 115, 117, 109, 66, 43, 36, 62, 42, 64, 123, 45, 49, 44, 36, 62, 125, 125, 10, 109, 66, 61, 123, 36, 115, 117, 109, 66, 47, 36, 119, 66, 125, 10, 109, 70, 61, 123, 40, 36, 115, 117, 109, 45, 36, 115, 117, 109, 66, 41, 47, 36, 119, 70, 125, 10, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 61, 123, 36, 119, 66, 42, 36, 119, 70, 42, 40, 36, 109, 66, 45, 36, 109, 70, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 36, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 62, 36, 118, 97, 114, 77, 97, 120, 125, 32, 118, 97, 114, 77, 97, 120, 61, 36, 118, 97, 114, 66, 101, 116, 119, 101, 101, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 36, 62, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 62, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 40, 34, 64, 123, 45, 49, 44, 98, 125, 34, 41, 32, 58, 32, 34, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 99, 111, 109, 112, 108, 101, 120, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 113, 117, 97, 110, 116, 105, 122, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 81, 117, 97, 110, 116, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 119, 105, 116, 104, 44, 119, 105, 116, 104, 111, 117, 116, 125, 34, 32, 107, 101, 101, 112, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 51, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 10, 45, 105, 102, 32, 36, 50, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 110, 32, 48, 44, 36, 49, 32, 45, 114, 111, 117, 110, 100, 32, 49, 44, 45, 49, 32, 45, 109, 105, 110, 32, 123, 36, 49, 45, 49, 125, 32, 45, 110, 32, 36, 109, 77, 10, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 36, 49, 32, 45, 114, 111, 117, 110, 100, 32, 49, 44, 45, 49, 32, 45, 109, 105, 110, 32, 123, 36, 49, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 36, 49, 44, 123, 115, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 77, 32, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 44, 48, 32, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 112, 108, 97, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 36, 49, 32, 119, 105, 116, 104, 32, 36, 50, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 61, 61, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 45, 36, 49, 125, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 112, 108, 97, 99, 101, 95, 105, 110, 102, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 105, 110, 102, 105, 110, 105, 116, 101, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 34, 105, 102, 40, 105, 61, 61, 105, 43, 49, 44, 36, 49, 44, 105, 41, 34, 32, 45, 118, 32, 43, 10, 114, 101, 112, 108, 97, 99, 101, 95, 110, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 97, 108, 108, 32, 78, 97, 78, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 36, 63, 32, 98, 121, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 34, 105, 102, 40, 105, 62, 61, 48, 32, 124, 124, 32, 105, 60, 61, 48, 44, 105, 44, 36, 49, 41, 34, 32, 45, 118, 32, 43, 10, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 118, 97, 108, 117, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 36, 49, 39, 32, 98, 121, 32, 118, 97, 108, 117, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 39, 36, 50, 39, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 40, 36, 49, 41, 32, 40, 36, 50, 41, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 108, 91, 36, 62, 44, 45, 50, 44, 45, 49, 93, 10, 45, 115, 91, 48, 93, 32, 43, 44, 36, 49, 32, 45, 115, 32, 121, 44, 45, 64, 123, 45, 50, 44, 119, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 116, 125, 39, 61, 61, 39, 64, 123, 45, 50, 44, 116, 125, 125, 32, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 44, 123, 119, 45, 49, 125, 32, 45, 102, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 97, 91, 48, 45, 45, 51, 93, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 118, 32, 43, 10, 114, 111, 117, 110, 100, 105, 102, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 111, 117, 110, 100, 105, 102, 121, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 103, 97, 109, 109, 97, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 36, 49, 32, 45, 115, 105, 103, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 50, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 36, 42, 10, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 72, 97, 114, 100, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 98, 101, 116, 119, 101, 101, 110, 32, 118, 97, 108, 117, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 61, 36, 49, 32, 77, 61, 36, 50, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 32, 109, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 109, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 32, 77, 61, 123, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 77, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 32, 123, 48, 46, 53, 42, 40, 36, 109, 43, 36, 77, 41, 125, 32, 45, 97, 98, 115, 32, 45, 108, 101, 32, 123, 48, 46, 53, 42, 97, 98, 115, 40, 36, 77, 45, 36, 109, 41, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 32, 116, 111, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 115, 113, 114, 91, 45, 51, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 51, 125, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 53, 44, 45, 52, 93, 32, 91, 45, 54, 93, 32, 45, 115, 113, 114, 91, 45, 54, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 34, 123, 119, 125, 34, 44, 34, 123, 104, 125, 34, 44, 34, 123, 100, 125, 34, 44, 34, 123, 115, 125, 34, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 50, 100, 32, 111, 114, 32, 51, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 108, 108, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 103, 98, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 82, 71, 66, 65, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 103, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 82, 71, 66, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 121, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 51, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 89, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 98, 99, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 52, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 97, 110, 100, 32, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 32, 67, 98, 67, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 49, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 53, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 98, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 54, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 114, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 108, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 55, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 76, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 48, 93, 32, 50, 46, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 47, 91, 48, 93, 32, 50, 46, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 56, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 45, 98, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 49, 93, 32, 56, 54, 32, 45, 42, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 43, 91, 50, 93, 32, 49, 48, 56, 32, 45, 42, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 32, 45, 115, 91, 49, 93, 32, 99, 10, 45, 47, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 49, 93, 32, 56, 54, 32, 45, 47, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 50, 93, 32, 49, 48, 56, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 56, 54, 44, 57, 56, 32, 45, 110, 91, 50, 93, 32, 45, 49, 48, 56, 44, 57, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 57, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 49, 93, 32, 56, 54, 32, 45, 42, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 49, 93, 32, 56, 54, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 56, 54, 44, 57, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 50, 93, 32, 49, 48, 56, 32, 45, 42, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 50, 93, 32, 49, 48, 56, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 45, 49, 48, 56, 44, 57, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 104, 117, 101, 32, 72, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 48, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 47, 91, 48, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 51, 54, 48, 32, 45, 101, 108, 115, 101, 32, 45, 37, 91, 48, 93, 32, 51, 54, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 115, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 83, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 118, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 51, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 118, 97, 108, 117, 101, 32, 86, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 50, 93, 32, 50, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 107, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 52, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 107, 101, 121, 32, 99, 104, 97, 110, 110, 101, 108, 32, 75, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 51, 93, 32, 99, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 103, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 53, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 40, 115, 41, 32, 39, 36, 49, 39, 32, 111, 110, 32, 103, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 67, 103, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 54, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 45, 104, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 43, 91, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 32, 45, 115, 91, 49, 93, 32, 99, 10, 45, 47, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 47, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 45, 91, 50, 93, 32, 123, 112, 105, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 110, 91, 50, 93, 32, 45, 123, 112, 105, 125, 44, 123, 112, 105, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 99, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 55, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 99, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 42, 91, 49, 93, 32, 50, 46, 53, 53, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 32, 45, 47, 91, 49, 93, 32, 50, 46, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 104, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 56, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 104, 45, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 108, 99, 104, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 43, 91, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 48, 32, 45, 47, 91, 50, 93, 32, 123, 50, 53, 53, 47, 40, 50, 42, 112, 105, 41, 125, 32, 45, 45, 91, 50, 93, 32, 123, 112, 105, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 45, 123, 112, 105, 125, 44, 123, 112, 105, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 108, 99, 104, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 114, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 49, 57, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 114, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 32, 82, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 103, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 48, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 103, 114, 101, 101, 110, 32, 99, 104, 97, 110, 110, 101, 108, 32, 71, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 98, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 49, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 98, 108, 117, 101, 32, 99, 104, 97, 110, 110, 101, 108, 32, 66, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 39, 61, 61, 39, 97, 108, 112, 104, 97, 125, 34, 32, 124, 124, 32, 34, 123, 36, 50, 39, 61, 61, 39, 50, 50, 125, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 32, 65, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 32, 99, 10, 45, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 34, 36, 49, 34, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 51, 93, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 36, 42, 32, 45, 107, 91, 48, 93, 10, 97, 117, 116, 111, 105, 110, 100, 101, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 100, 101, 120, 32, 99, 111, 108, 111, 114, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 36, 63, 32, 98, 121, 32, 97, 100, 97, 112, 116, 101, 100, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 36, 49, 32, 101, 110, 116, 114, 105, 101, 115, 44, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 108, 101, 118, 101, 108, 32, 36, 50, 32, 97, 110, 100, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 107, 45, 109, 101, 97, 110, 115, 44, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 45, 105, 102, 32, 123, 119, 62, 50, 53, 54, 125, 32, 45, 45, 114, 50, 100, 120, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 123, 104, 62, 50, 53, 54, 125, 32, 45, 45, 114, 50, 100, 121, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 49, 93, 32, 36, 49, 44, 36, 51, 44, 48, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 49, 93, 44, 36, 50, 44, 49, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 97, 121, 101, 114, 50, 114, 103, 98, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 121, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 10, 40, 45, 49, 44, 49, 59, 49, 44, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 49, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 40, 49, 44, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 51, 10, 40, 49, 59, 45, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 36, 51, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 40, 50, 44, 48, 59, 48, 44, 45, 50, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 45, 91, 45, 52, 44, 45, 49, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 109, 105, 120, 95, 114, 103, 98, 91, 45, 49, 93, 32, 49, 44, 45, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 45, 49, 44, 45, 50, 10, 45, 115, 104, 114, 105, 110, 107, 95, 120, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 32, 45, 115, 104, 114, 105, 110, 107, 95, 121, 32, 123, 34, 50, 32, 43, 32, 52, 42, 36, 49, 34, 125, 44, 48, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 109, 121, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 67, 77, 89, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 118, 32, 43, 10, 99, 109, 121, 107, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 67, 77, 89, 75, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 47, 91, 45, 49, 93, 32, 45, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 32, 99, 32, 45, 99, 109, 121, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 36, 49, 32, 101, 110, 116, 114, 105, 101, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 98, 121, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 107, 45, 109, 101, 97, 110, 115, 44, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 10, 45, 101, 108, 115, 101, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 49, 32, 45, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 45, 100, 111, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 10, 45, 115, 104, 91, 48, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 49, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 49, 42, 50, 53, 54, 45, 49, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 99, 10, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 50, 93, 32, 100, 105, 102, 102, 61, 123, 64, 123, 45, 50, 44, 43, 125, 47, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 97, 110, 100, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 45, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 100, 105, 102, 102, 62, 48, 46, 53, 125, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 125, 32, 45, 43, 91, 45, 49, 93, 32, 36, 109, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 32, 45, 45, 110, 111, 114, 109, 32, 45, 114, 118, 32, 45, 97, 32, 121, 32, 45, 115, 111, 114, 116, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 34, 91, 99, 111, 108, 111, 114, 109, 97, 112, 32, 111, 102, 32, 34, 64, 123, 45, 49, 44, 98, 125, 34, 93, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 64, 35, 44, 123, 115, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 110, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 36, 110, 44, 115, 125, 32, 45, 115, 104, 91, 36, 110, 93, 32, 36, 62, 44, 36, 62, 32, 45, 61, 91, 45, 50, 93, 32, 123, 105, 102, 40, 119, 62, 49, 44, 105, 118, 44, 45, 49, 41, 125, 44, 36, 110, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 99, 61, 64, 123, 45, 49, 44, 67, 125, 10, 98, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 44, 36, 99, 125, 10, 97, 61, 64, 123, 45, 97, 114, 103, 92, 32, 50, 44, 36, 99, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 36, 98, 93, 32, 48, 44, 48, 44, 48, 44, 123, 45, 36, 97, 125, 44, 50, 32, 45, 115, 111, 114, 116, 91, 36, 98, 93, 32, 43, 44, 120, 32, 45, 115, 104, 105, 102, 116, 91, 36, 98, 93, 32, 48, 44, 48, 44, 48, 44, 36, 97, 44, 50, 32, 45, 115, 91, 36, 98, 93, 32, 120, 44, 50, 10, 45, 100, 111, 110, 101, 10, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 97, 32, 120, 10, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 43, 34, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 97, 108, 108, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 104, 32, 48, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 45, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 32, 99, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 48, 46, 48, 48, 49, 10, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 105, 102, 32, 123, 105, 109, 33, 61, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 100, 105, 116, 104, 101, 114, 101, 100, 32, 66, 38, 87, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 40, 48, 44, 50, 53, 53, 41, 32, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 99, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 36, 42, 10, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 70, 105, 108, 108, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 94, 48, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 102, 91, 45, 49, 93, 32, 123, 97, 114, 103, 40, 49, 43, 36, 62, 44, 36, 123, 94, 48, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 110, 109, 32, 64, 123, 45, 49, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 98, 111, 111, 108, 40, 36, 123, 49, 61, 48, 125, 41, 34, 10, 45, 97, 114, 103, 32, 49, 43, 33, 36, 49, 44, 34, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 34, 44, 34, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 82, 71, 66, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 34, 64, 123, 125, 34, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 32, 45, 101, 108, 115, 101, 32, 45, 103, 32, 120, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 100, 105, 114, 101, 99, 116, 105, 111, 110, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 115, 105, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 73, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 105, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 104, 115, 108, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 76, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 108, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 104, 115, 118, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 72, 83, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 95, 104, 115, 120, 56, 50, 114, 103, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 98, 50, 108, 99, 104, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 97, 98, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 98, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 97, 98, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 50, 55, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 49, 53, 57, 48, 57, 32, 45, 45, 91, 45, 49, 93, 32, 49, 49, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 108, 97, 98, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 108, 99, 104, 50, 108, 97, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 76, 97, 98, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 99, 104, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 99, 104, 50, 108, 97, 98, 32, 45, 108, 97, 98, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 108, 99, 104, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 76, 99, 104, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 56, 56, 56, 56, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 52, 48, 46, 53, 56, 52, 53, 32, 45, 45, 91, 45, 49, 93, 32, 51, 46, 49, 52, 49, 53, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 108, 99, 104, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 115, 114, 103, 98, 50, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 42, 91, 49, 93, 32, 48, 46, 50, 57, 57, 32, 45, 42, 91, 50, 93, 32, 48, 46, 53, 56, 55, 32, 45, 42, 91, 51, 93, 32, 48, 46, 49, 49, 52, 32, 45, 43, 91, 49, 45, 51, 93, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 33, 61, 49, 125, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 32, 45, 118, 32, 43, 10, 109, 105, 120, 95, 114, 103, 98, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 44, 36, 123, 57, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 97, 116, 114, 105, 120, 32, 91, 32, 36, 49, 32, 36, 50, 32, 36, 51, 32, 59, 32, 36, 52, 32, 36, 53, 32, 36, 54, 32, 59, 32, 36, 55, 32, 36, 56, 32, 36, 57, 32, 93, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 50, 32, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 59, 36, 52, 44, 36, 53, 44, 36, 54, 59, 36, 55, 44, 36, 56, 44, 36, 57, 41, 32, 45, 118, 32, 43, 10, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 46, 51, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 56, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 36, 49, 44, 32, 74, 78, 68, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 98, 105, 116, 115, 32, 100, 101, 112, 116, 104, 46, 34, 10, 45, 118, 32, 45, 10, 123, 114, 111, 117, 110, 100, 40, 50, 94, 36, 51, 41, 125, 44, 49, 44, 49, 44, 51, 44, 39, 120, 39, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 123, 36, 49, 43, 49, 125, 44, 123, 36, 49, 43, 49, 125, 44, 123, 36, 49, 43, 49, 125, 44, 49, 44, 39, 120, 39, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 121, 39, 32, 45, 45, 102, 91, 45, 49, 93, 32, 39, 122, 39, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 42, 100, 125, 44, 49, 44, 49, 44, 51, 44, 45, 49, 10, 45, 102, 91, 45, 49, 93, 32, 39, 82, 61, 105, 40, 120, 44, 48, 44, 48, 44, 48, 41, 59, 71, 61, 105, 40, 120, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 105, 40, 120, 44, 48, 44, 48, 44, 50, 41, 59, 105, 102, 40, 109, 105, 110, 40, 82, 44, 71, 44, 66, 41, 44, 45, 49, 44, 105, 41, 39, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 114, 91, 45, 50, 93, 32, 123, 119, 42, 49, 48, 48, 125, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 102, 91, 45, 49, 93, 32, 39, 82, 61, 105, 40, 120, 44, 48, 44, 48, 44, 48, 41, 59, 71, 61, 105, 40, 120, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 105, 40, 120, 44, 48, 44, 48, 44, 50, 41, 59, 105, 102, 40, 109, 97, 120, 40, 82, 44, 71, 44, 66, 41, 62, 50, 94, 36, 51, 45, 49, 44, 45, 49, 44, 105, 41, 39, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 10, 45, 115, 91, 45, 49, 93, 32, 121, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 120, 43, 49, 39, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 48, 48, 48, 48, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 50, 42, 40, 36, 62, 37, 50, 41, 125, 44, 48, 44, 48, 44, 49, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 36, 50, 10, 45, 105, 102, 32, 123, 105, 109, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 39, 121, 43, 49, 39, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 32, 45, 121, 32, 99, 32, 45, 115, 32, 99, 44, 50, 32, 99, 111, 108, 49, 61, 64, 48, 32, 99, 111, 108, 50, 61, 64, 49, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 99, 111, 108, 49, 34, 41, 32, 98, 121, 32, 99, 111, 108, 111, 114, 32, 40, 34, 36, 99, 111, 108, 50, 34, 41, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 36, 99, 111, 108, 49, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 108, 101, 91, 49, 93, 32, 36, 49, 32, 45, 101, 108, 115, 101, 32, 45, 61, 61, 91, 49, 93, 32, 91, 48, 93, 32, 45, 108, 91, 49, 93, 32, 45, 115, 32, 99, 32, 45, 97, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 49, 93, 32, 36, 50, 10, 49, 44, 49, 44, 49, 44, 64, 123, 48, 44, 115, 125, 44, 36, 99, 111, 108, 50, 32, 45, 114, 91, 50, 93, 32, 91, 48, 93, 32, 45, 106, 91, 48, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 97, 32, 82, 71, 66, 45, 66, 97, 121, 101, 114, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 99, 111, 108, 111, 114, 44, 109, 111, 110, 111, 99, 104, 114, 111, 109, 101, 125, 34, 32, 103, 114, 105, 100, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 111, 109, 32, 112, 97, 116, 116, 101, 114, 110, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 36, 49, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 48, 44, 50, 32, 45, 42, 32, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 115, 32, 99, 32, 45, 43, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 48, 32, 58, 32, 40, 49, 44, 48, 59, 48, 44, 48, 94, 48, 44, 49, 59, 49, 44, 48, 94, 48, 44, 48, 59, 48, 44, 49, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 49, 32, 58, 32, 40, 48, 44, 48, 59, 48, 44, 49, 94, 48, 44, 49, 59, 49, 44, 48, 94, 49, 44, 48, 59, 48, 44, 48, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 50, 32, 58, 32, 40, 48, 44, 48, 59, 49, 44, 48, 94, 49, 44, 48, 59, 48, 44, 49, 94, 48, 44, 49, 59, 48, 44, 48, 41, 10, 95, 114, 103, 98, 50, 98, 97, 121, 101, 114, 51, 32, 58, 32, 40, 48, 44, 49, 59, 48, 44, 48, 94, 49, 44, 48, 59, 48, 44, 49, 94, 48, 44, 48, 59, 49, 44, 48, 41, 10, 114, 103, 98, 50, 99, 109, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 99, 109, 121, 107, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 67, 77, 89, 75, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 109, 105, 110, 32, 45, 45, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 47, 91, 48, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 104, 115, 105, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 73, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 105, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 104, 115, 108, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 76, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 108, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 104, 115, 118, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 72, 83, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 45, 118, 32, 43, 10, 95, 114, 103, 98, 50, 104, 115, 120, 56, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 55, 48, 56, 51, 51, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 114, 103, 98, 50, 108, 97, 98, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 97, 98, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 50, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 49, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 49, 53, 57, 48, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 108, 99, 104, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 108, 97, 98, 50, 108, 99, 104, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 108, 99, 104, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 99, 104, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 108, 99, 104, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 56, 56, 56, 56, 57, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 51, 46, 49, 52, 49, 53, 57, 32, 45, 42, 91, 45, 49, 93, 32, 52, 48, 46, 53, 56, 52, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 108, 117, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 76, 85, 86, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 114, 103, 98, 50, 120, 121, 122, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 49, 93, 32, 51, 32, 45, 45, 42, 91, 45, 50, 93, 32, 49, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 10, 45, 42, 91, 45, 51, 93, 32, 52, 32, 45, 42, 91, 45, 50, 93, 32, 57, 32, 45, 47, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 91, 45, 50, 93, 32, 48, 46, 50, 48, 48, 57, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 52, 54, 49, 48, 10, 45, 45, 42, 91, 45, 51, 93, 32, 49, 51, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 120, 121, 122, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 47, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 48, 46, 52, 49, 50, 52, 53, 51, 44, 48, 46, 51, 53, 55, 53, 56, 48, 44, 48, 46, 49, 56, 48, 52, 50, 51, 44, 48, 46, 50, 49, 50, 54, 55, 49, 44, 48, 46, 55, 49, 53, 49, 54, 48, 44, 48, 46, 48, 55, 50, 49, 54, 57, 44, 48, 46, 48, 49, 57, 51, 51, 52, 44, 48, 46, 49, 49, 57, 49, 57, 51, 44, 48, 46, 57, 53, 48, 50, 50, 55, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 120, 121, 122, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 88, 89, 90, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 120, 121, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 51, 49, 46, 56, 49, 56, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 67, 98, 67, 114, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 54, 54, 44, 49, 50, 57, 44, 50, 53, 44, 45, 51, 56, 44, 45, 55, 52, 44, 49, 49, 50, 44, 49, 49, 50, 44, 45, 57, 52, 44, 45, 49, 56, 32, 45, 43, 32, 49, 50, 56, 32, 45, 47, 32, 50, 53, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 32, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 114, 103, 98, 50, 121, 117, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 47, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 48, 46, 50, 57, 57, 44, 48, 46, 53, 56, 55, 44, 48, 46, 49, 49, 52, 44, 45, 48, 46, 49, 52, 55, 49, 51, 44, 45, 48, 46, 50, 56, 56, 56, 54, 44, 48, 46, 52, 51, 54, 44, 48, 46, 54, 49, 53, 44, 45, 48, 46, 53, 49, 52, 57, 56, 44, 45, 48, 46, 49, 48, 48, 48, 49, 32, 45, 118, 32, 43, 10, 114, 103, 98, 50, 121, 117, 118, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 82, 71, 66, 32, 116, 111, 32, 89, 85, 86, 56, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 103, 98, 50, 121, 117, 118, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 52, 52, 32, 45, 42, 91, 45, 49, 93, 32, 50, 56, 57, 46, 55, 55, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 54, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 53, 46, 54, 52, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 111, 112, 97, 99, 105, 116, 121, 32, 99, 104, 97, 110, 110, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 64, 123, 45, 49, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 102, 99, 32, 36, 123, 50, 45, 45, 49, 125, 32, 45, 45, 32, 45, 110, 111, 114, 109, 32, 45, 108, 101, 32, 36, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 101, 112, 105, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 101, 112, 105, 97, 32, 116, 111, 110, 101, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 40, 48, 44, 52, 52, 44, 49, 49, 53, 44, 49, 52, 51, 44, 49, 57, 54, 44, 50, 52, 52, 94, 48, 44, 50, 48, 44, 56, 52, 44, 49, 49, 57, 44, 49, 56, 52, 44, 50, 51, 53, 94, 48, 44, 53, 44, 52, 52, 44, 55, 51, 44, 49, 52, 52, 44, 50, 48, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 94, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 111, 108, 97, 114, 105, 122, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 108, 97, 114, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 49, 50, 56, 32, 45, 109, 97, 112, 32, 49, 32, 45, 118, 32, 43, 10, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 99, 44, 123, 105, 102, 40, 115, 61, 61, 52, 44, 45, 51, 44, 105, 102, 40, 115, 61, 61, 50, 44, 45, 49, 44, 45, 115, 41, 41, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 104, 97, 118, 101, 32, 97, 110, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 124, 124, 115, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 123, 115, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 123, 115, 45, 49, 125, 44, 123, 115, 45, 49, 125, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 97, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 101, 108, 115, 101, 10, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 115, 125, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 115, 101, 32, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 64, 123, 36, 62, 44, 115, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 36, 115, 10, 45, 101, 110, 100, 105, 102, 10, 116, 111, 95, 103, 114, 97, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 62, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 103, 114, 97, 121, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 71, 82, 65, 89, 65, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 51, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 93, 32, 45, 97, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 56, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 115, 99, 97, 108, 97, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 112, 115, 101, 117, 100, 111, 45, 103, 114, 97, 121, 32, 99, 111, 108, 111, 114, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 116, 101, 112, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 115, 114, 103, 98, 50, 114, 103, 98, 32, 45, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 36, 49, 44, 123, 50, 46, 51, 42, 36, 50, 125, 44, 36, 51, 10, 45, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 54, 53, 53, 51, 53, 47, 49, 48, 48, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 120, 99, 121, 122, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 36, 62, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 36, 62, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 36, 62, 93, 32, 48, 32, 45, 42, 91, 36, 62, 93, 32, 123, 54, 53, 53, 51, 53, 47, 49, 48, 48, 125, 32, 45, 114, 111, 117, 110, 100, 91, 36, 62, 93, 32, 45, 99, 91, 36, 62, 93, 32, 48, 44, 54, 53, 53, 51, 53, 10, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 116, 111, 95, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 111, 114, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 82, 71, 66, 65, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 62, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 64, 123, 60, 44, 45, 49, 125, 34, 93, 32, 105, 115, 32, 110, 111, 116, 32, 97, 32, 71, 44, 71, 65, 44, 82, 71, 66, 32, 111, 114, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 46, 34, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 51, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 101, 114, 32, 99, 111, 108, 111, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 91, 48, 93, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 94, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 41, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 108, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 50, 53, 54, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 42, 32, 50, 53, 53, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 50, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 115, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 100, 103, 32, 51, 48, 48, 44, 50, 48, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 120, 121, 122, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 88, 89, 90, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 42, 32, 50, 53, 53, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 51, 46, 50, 52, 48, 52, 55, 57, 44, 45, 49, 46, 53, 51, 55, 49, 53, 48, 44, 45, 48, 46, 52, 57, 56, 53, 51, 53, 44, 45, 48, 46, 57, 54, 57, 50, 53, 54, 44, 49, 46, 56, 55, 53, 57, 57, 50, 44, 48, 46, 48, 52, 49, 53, 53, 54, 44, 48, 46, 48, 53, 53, 54, 52, 56, 44, 45, 48, 46, 50, 48, 52, 48, 52, 51, 44, 49, 46, 48, 53, 55, 51, 49, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 120, 121, 122, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 88, 89, 90, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 51, 49, 46, 56, 49, 56, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 120, 121, 122, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 121, 99, 98, 99, 114, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 67, 98, 67, 114, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 32, 49, 44, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 109, 105, 120, 95, 114, 103, 98, 32, 50, 57, 56, 44, 48, 44, 52, 48, 57, 44, 50, 57, 56, 44, 45, 49, 48, 48, 44, 45, 50, 48, 56, 44, 50, 57, 56, 44, 53, 49, 54, 44, 48, 32, 45, 43, 32, 49, 50, 56, 32, 45, 47, 32, 50, 53, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 118, 32, 43, 10, 121, 117, 118, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 85, 86, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 48, 44, 49, 46, 49, 51, 57, 56, 51, 44, 49, 44, 45, 48, 46, 51, 57, 52, 54, 53, 44, 45, 48, 46, 53, 56, 48, 54, 44, 49, 44, 50, 46, 48, 51, 50, 49, 49, 44, 48, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 121, 117, 118, 56, 50, 114, 103, 98, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 102, 114, 111, 109, 32, 89, 85, 86, 56, 32, 116, 111, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 32, 98, 97, 115, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 36, 62, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 49, 44, 49, 32, 45, 47, 91, 45, 49, 93, 32, 50, 56, 57, 46, 55, 55, 51, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 52, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 36, 62, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 48, 53, 46, 54, 52, 53, 32, 45, 45, 91, 45, 49, 93, 32, 48, 46, 54, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 121, 117, 118, 50, 114, 103, 98, 32, 45, 118, 32, 43, 10, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 48, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 32, 38, 38, 32, 36, 123, 52, 61, 36, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 34, 10, 45, 105, 102, 32, 123, 33, 36, 49, 38, 38, 33, 36, 50, 125, 10, 45, 118, 32, 45, 32, 78, 61, 123, 105, 110, 116, 40, 115, 113, 114, 116, 40, 64, 35, 41, 41, 125, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 78, 44, 49, 44, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 32, 40, 97, 117, 116, 111, 45, 109, 111, 100, 101, 41, 46, 34, 32, 45, 118, 32, 45, 10, 77, 78, 61, 123, 36, 77, 42, 36, 78, 125, 32, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 78, 125, 32, 123, 36, 77, 78, 45, 40, 64, 35, 37, 36, 77, 78, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 118, 32, 45, 32, 77, 61, 36, 49, 32, 78, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 49, 44, 49, 44, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 77, 62, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 119, 97, 114, 110, 91, 48, 45, 45, 51, 93, 32, 34, 77, 105, 115, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 32, 102, 111, 114, 32, 104, 97, 118, 105, 110, 103, 32, 111, 110, 101, 32, 114, 111, 119, 32, 105, 110, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 125, 32, 123, 36, 77, 45, 40, 64, 35, 37, 36, 77, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 49, 125, 10, 45, 118, 32, 45, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 50, 44, 49, 44, 49, 41, 125, 32, 78, 61, 36, 50, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 78, 62, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 119, 97, 114, 110, 91, 48, 45, 45, 51, 93, 32, 34, 77, 105, 115, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 32, 102, 111, 114, 32, 104, 97, 118, 105, 110, 103, 32, 111, 110, 101, 32, 99, 111, 108, 117, 109, 110, 32, 105, 110, 32, 97, 32, 34, 36, 123, 77, 125, 120, 36, 123, 78, 125, 34, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 35, 37, 36, 77, 125, 32, 123, 36, 77, 45, 40, 64, 35, 37, 36, 77, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 65, 112, 112, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 115, 32, 36, 49, 120, 36, 50, 45, 116, 105, 108, 101, 100, 32, 105, 109, 97, 103, 101, 115, 46, 34, 32, 45, 118, 32, 45, 10, 77, 61, 36, 49, 32, 78, 61, 36, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 77, 78, 61, 123, 36, 77, 42, 36, 78, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 77, 78, 41, 125, 32, 45, 108, 91, 36, 62, 45, 123, 36, 62, 43, 36, 77, 78, 45, 49, 125, 93, 10, 36, 77, 78, 44, 49, 44, 49, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 78, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 49, 44, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 45, 49, 93, 32, 36, 77, 44, 36, 78, 44, 49, 44, 50, 44, 45, 49, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 108, 91, 45, 50, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 105, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 121, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 32, 45, 114, 91, 36, 105, 93, 32, 64, 123, 45, 50, 44, 36, 62, 125, 44, 64, 123, 45, 49, 44, 36, 121, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 36, 51, 44, 36, 52, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 77, 41, 125, 32, 45, 97, 91, 36, 62, 45, 123, 36, 62, 43, 36, 77, 45, 49, 125, 93, 32, 120, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 78, 41, 125, 32, 45, 97, 91, 36, 62, 45, 123, 36, 62, 43, 36, 78, 45, 49, 125, 93, 32, 121, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 37, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 49, 37, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 98, 111, 111, 108, 40, 36, 123, 51, 61, 48, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 49, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 117, 116, 111, 99, 114, 111, 112, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 109, 105, 110, 105, 109, 97, 108, 32, 97, 114, 101, 97, 32, 36, 50, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 108, 111, 119, 44, 104, 105, 103, 104, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 34, 92, 10, 34, 97, 110, 100, 32, 111, 117, 116, 112, 117, 116, 32, 116, 121, 112, 101, 32, 115, 101, 116, 32, 116, 111, 32, 39, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 52, 44, 99, 114, 111, 112, 44, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 125, 34, 39, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 105, 110, 95, 97, 114, 101, 97, 61, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 119, 42, 104, 44, 36, 50, 41, 41, 41, 125, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 97, 114, 101, 97, 10, 45, 45, 97, 114, 101, 97, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 108, 116, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 97, 114, 101, 97, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 10, 78, 61, 123, 105, 77, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 77, 125, 10, 110, 61, 123, 49, 43, 36, 62, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 62, 32, 34, 36, 110, 47, 36, 78, 32, 45, 118, 32, 45, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 49, 48, 48, 42, 36, 110, 47, 36, 78, 125, 10, 45, 45, 61, 61, 91, 49, 93, 32, 36, 110, 32, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 97, 117, 116, 111, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 122, 91, 48, 93, 32, 36, 99, 111, 111, 114, 100, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 97, 117, 116, 111, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 40, 36, 99, 111, 111, 114, 100, 115, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 115, 101, 113, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 117, 116, 111, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 117, 116, 111, 45, 99, 114, 111, 112, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 99, 114, 111, 112, 32, 103, 101, 111, 109, 101, 116, 114, 121, 32, 111, 102, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 118, 101, 99, 116, 111, 114, 32, 39, 36, 42, 39, 46, 34, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 36, 123, 49, 45, 45, 49, 125, 125, 10, 120, 48, 61, 123, 97, 114, 103, 40, 49, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 121, 48, 61, 123, 97, 114, 103, 40, 50, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 122, 48, 61, 123, 97, 114, 103, 40, 51, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 10, 120, 49, 61, 123, 97, 114, 103, 40, 52, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 121, 49, 61, 123, 97, 114, 103, 40, 53, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 122, 49, 61, 123, 97, 114, 103, 40, 54, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 10, 45, 105, 102, 32, 123, 36, 120, 48, 62, 36, 120, 49, 34, 32, 124, 124, 32, 34, 36, 121, 48, 62, 36, 121, 49, 34, 32, 124, 124, 32, 34, 36, 122, 48, 62, 36, 122, 49, 125, 32, 45, 105, 91, 48, 45, 45, 50, 93, 32, 48, 32, 45, 114, 109, 91, 49, 45, 45, 49, 58, 50, 93, 10, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 122, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 122, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 100, 105, 97, 103, 111, 110, 97, 108, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 118, 101, 99, 116, 111, 114, 36, 63, 32, 97, 115, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 109, 97, 116, 114, 105, 120, 46, 34, 10, 45, 118, 32, 45, 32, 45, 121, 32, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 104, 43, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 104, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 49, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 108, 101, 118, 97, 116, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 108, 101, 118, 97, 116, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 116, 111, 32, 36, 49, 45, 115, 108, 105, 99, 101, 115, 32, 118, 111, 108, 117, 109, 101, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 110, 111, 114, 109, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 49, 44, 123, 105, 102, 40, 36, 51, 44, 64, 123, 48, 44, 115, 125, 44, 49, 41, 125, 10, 109, 61, 64, 123, 45, 50, 44, 109, 125, 32, 100, 61, 123, 64, 123, 45, 50, 44, 77, 125, 45, 36, 109, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 105, 102, 32, 36, 50, 32, 45, 45, 103, 101, 91, 49, 93, 32, 123, 36, 109, 43, 36, 100, 42, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 116, 50, 91, 49, 93, 32, 123, 36, 109, 43, 36, 100, 42, 36, 62, 47, 36, 49, 125, 44, 123, 36, 109, 43, 36, 100, 42, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 42, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 120, 112, 97, 110, 100, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 64, 123, 36, 62, 44, 100, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 120, 112, 97, 110, 100, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 104, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 120, 112, 97, 110, 100, 95, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 50, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 112, 97, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 98, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 100, 43, 50, 42, 36, 49, 125, 44, 49, 48, 48, 37, 44, 48, 44, 36, 50, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 115, 105, 122, 101, 95, 112, 111, 119, 50, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 45, 49, 32, 38, 38, 32, 36, 49, 60, 61, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 115, 111, 32, 116, 104, 97, 116, 32, 101, 97, 99, 104, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 105, 115, 32, 97, 32, 112, 111, 119, 101, 114, 32, 111, 102, 32, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 119, 41, 44, 49, 44, 49, 41, 41, 125, 44, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 104, 41, 44, 49, 44, 49, 41, 41, 125, 44, 64, 123, 36, 62, 44, 50, 94, 40, 114, 111, 117, 110, 100, 40, 108, 111, 103, 50, 40, 100, 41, 44, 49, 44, 49, 41, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 49, 45, 54, 125, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 114, 50, 100, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 54, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 120, 36, 50, 32, 119, 105, 116, 104, 32, 114, 97, 116, 105, 111, 45, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 105, 110, 115, 105, 100, 101, 44, 111, 117, 116, 115, 105, 100, 101, 44, 112, 97, 100, 100, 101, 100, 125, 92, 10, 34, 32, 109, 111, 100, 101, 32, 97, 110, 100, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 114, 97, 116, 105, 111, 61, 64, 123, 36, 62, 44, 105, 102, 40, 36, 51, 61, 61, 49, 44, 109, 97, 120, 40, 36, 49, 47, 119, 44, 36, 50, 47, 104, 41, 44, 109, 105, 110, 40, 36, 49, 47, 119, 44, 36, 50, 47, 104, 41, 41, 125, 10, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 119, 42, 36, 114, 97, 116, 105, 111, 125, 44, 64, 123, 36, 62, 44, 104, 42, 36, 114, 97, 116, 105, 111, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 52, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 114, 32, 36, 49, 44, 36, 50, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 114, 50, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 119, 41, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 50, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 50, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 50, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 104, 41, 125, 44, 36, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 51, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 119, 41, 125, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 100, 42, 36, 49, 47, 119, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 51, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 104, 41, 125, 44, 36, 49, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 100, 42, 36, 49, 47, 104, 41, 125, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 51, 100, 122, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 36, 42, 10, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 58, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 42, 10, 95, 114, 101, 115, 105, 122, 101, 51, 100, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 54, 32, 38, 38, 32, 36, 123, 51, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 50, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 54, 60, 61, 49, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 49, 34, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 82, 101, 115, 105, 122, 101, 32, 51, 100, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 116, 111, 32, 36, 49, 32, 112, 105, 120, 101, 108, 115, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 44, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 51, 100, 32, 114, 97, 116, 105, 111, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 47, 100, 41, 125, 44, 64, 123, 36, 62, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 49, 47, 100, 41, 125, 44, 36, 49, 44, 49, 48, 48, 37, 44, 36, 123, 50, 45, 55, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 50, 61, 56, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 111, 116, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 32, 97, 110, 100, 32, 109, 97, 107, 101, 32, 116, 104, 101, 109, 32, 116, 105, 108, 101, 97, 98, 108, 101, 46, 34, 10, 45, 118, 32, 45, 10, 97, 110, 103, 108, 101, 61, 123, 36, 49, 37, 51, 54, 48, 125, 10, 45, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 50, 55, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 55, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 50, 55, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 49, 56, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 49, 56, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 49, 56, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 97, 110, 103, 108, 101, 62, 61, 57, 48, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 57, 48, 32, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 45, 57, 48, 125, 10, 45, 101, 110, 100, 105, 102, 10, 40, 48, 44, 49, 59, 49, 44, 56, 59, 49, 44, 55, 59, 49, 44, 54, 59, 49, 44, 53, 59, 49, 44, 52, 59, 49, 44, 53, 59, 49, 44, 51, 59, 50, 44, 53, 59, 49, 44, 50, 59, 50, 44, 53, 59, 51, 44, 53, 59, 50, 44, 51, 59, 51, 44, 52, 59, 52, 44, 53, 59, 49, 44, 49, 59, 53, 44, 52, 59, 55, 44, 53, 59, 51, 44, 50, 59, 56, 44, 53, 59, 57, 44, 53, 59, 50, 44, 49, 59, 51, 44, 49, 59, 52, 44, 49, 59, 53, 44, 49, 59, 54, 44, 49, 59, 55, 44, 49, 59, 56, 44, 49, 41, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 116, 97, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 10, 40, 36, 97, 110, 103, 108, 101, 41, 32, 45, 105, 110, 100, 101, 120, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 112, 61, 64, 123, 45, 51, 44, 64, 45, 49, 125, 32, 113, 61, 64, 123, 45, 50, 44, 64, 45, 49, 125, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 36, 112, 124, 124, 33, 36, 113, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 116, 104, 101, 116, 97, 61, 123, 97, 116, 97, 110, 50, 40, 36, 112, 44, 36, 113, 41, 125, 10, 103, 99, 100, 61, 64, 123, 45, 103, 99, 100, 34, 32, 34, 123, 104, 42, 36, 113, 125, 44, 123, 119, 42, 36, 112, 125, 125, 10, 112, 119, 61, 123, 104, 42, 36, 113, 47, 36, 103, 99, 100, 125, 10, 110, 119, 61, 123, 114, 111, 117, 110, 100, 40, 36, 112, 119, 42, 119, 47, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 103, 99, 100, 61, 64, 123, 45, 103, 99, 100, 34, 32, 34, 123, 104, 42, 36, 112, 125, 44, 123, 119, 42, 36, 113, 125, 125, 10, 113, 104, 61, 123, 119, 42, 36, 113, 47, 36, 103, 99, 100, 125, 10, 110, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 113, 104, 42, 104, 47, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 36, 50, 34, 32, 124, 124, 32, 34, 40, 36, 110, 119, 60, 36, 50, 42, 119, 34, 32, 38, 38, 32, 34, 36, 110, 104, 60, 36, 50, 42, 104, 41, 125, 10, 45, 114, 32, 123, 49, 46, 53, 42, 36, 110, 119, 125, 44, 123, 49, 46, 53, 42, 36, 110, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 36, 116, 104, 101, 116, 97, 42, 49, 56, 48, 47, 112, 105, 125, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 114, 32, 36, 110, 119, 44, 36, 110, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 99, 97, 108, 101, 50, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 111, 117, 98, 108, 101, 32, 120, 121, 45, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 83, 99, 97, 108, 101, 50, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 10, 45, 102, 32, 34, 100, 120, 61, 120, 38, 49, 59, 100, 121, 61, 121, 38, 49, 59, 65, 61, 106, 40, 48, 44, 45, 50, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 106, 40, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 67, 61, 106, 40, 45, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 68, 61, 106, 40, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 33, 100, 121, 42, 40, 33, 100, 120, 42, 105, 102, 40, 67, 61, 61, 65, 38, 38, 67, 33, 61, 68, 38, 38, 65, 33, 61, 66, 44, 65, 44, 105, 41, 32, 43, 32, 100, 120, 42, 105, 102, 40, 65, 61, 61, 66, 38, 38, 65, 33, 61, 67, 38, 38, 66, 33, 61, 68, 44, 66, 44, 105, 41, 41, 32, 43, 32, 100, 121, 42, 40, 100, 120, 42, 105, 102, 40, 66, 61, 61, 68, 38, 38, 66, 33, 61, 65, 38, 38, 68, 33, 61, 67, 44, 68, 44, 105, 41, 32, 43, 32, 33, 100, 120, 42, 105, 102, 40, 68, 61, 61, 67, 38, 38, 68, 33, 61, 66, 38, 38, 67, 33, 61, 65, 44, 67, 44, 105, 41, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 99, 97, 108, 101, 51, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 105, 112, 108, 101, 32, 120, 121, 45, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 83, 99, 97, 108, 101, 51, 120, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 51, 48, 48, 37, 44, 51, 48, 48, 37, 10, 45, 102, 32, 34, 100, 120, 61, 120, 37, 51, 59, 100, 121, 61, 121, 37, 51, 59, 99, 48, 61, 33, 100, 120, 59, 99, 49, 61, 40, 100, 120, 61, 61, 49, 41, 59, 99, 50, 61, 40, 100, 120, 61, 61, 50, 41, 59, 34, 92, 10, 34, 65, 61, 106, 40, 45, 51, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 66, 61, 106, 40, 48, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 67, 61, 106, 40, 51, 44, 45, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 68, 61, 106, 40, 45, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 70, 61, 106, 40, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 71, 61, 106, 40, 45, 51, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 72, 61, 106, 40, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 73, 61, 106, 40, 51, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 41, 59, 34, 92, 10, 34, 33, 100, 121, 42, 40, 99, 48, 42, 105, 102, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 102, 40, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 38, 38, 105, 33, 61, 67, 41, 124, 124, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 38, 38, 105, 33, 61, 65, 41, 44, 66, 44, 105, 41, 32, 43, 32, 99, 50, 42, 105, 102, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 44, 70, 44, 105, 41, 41, 32, 43, 32, 34, 92, 10, 34, 40, 100, 121, 61, 61, 49, 41, 42, 40, 99, 48, 42, 105, 102, 40, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 38, 38, 105, 33, 61, 65, 41, 124, 124, 40, 68, 61, 61, 66, 38, 38, 68, 33, 61, 72, 38, 38, 66, 33, 61, 70, 38, 38, 105, 33, 61, 71, 41, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 32, 43, 32, 99, 50, 42, 105, 102, 40, 40, 66, 61, 61, 70, 38, 38, 66, 33, 61, 68, 38, 38, 70, 33, 61, 72, 38, 38, 105, 33, 61, 73, 41, 124, 124, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 38, 38, 105, 33, 61, 67, 41, 44, 70, 44, 105, 41, 41, 32, 43, 32, 34, 92, 10, 34, 40, 100, 121, 61, 61, 50, 41, 42, 40, 99, 48, 42, 105, 102, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 44, 68, 44, 105, 41, 32, 43, 32, 99, 49, 42, 105, 102, 40, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 38, 38, 105, 33, 61, 71, 41, 124, 124, 40, 72, 61, 61, 68, 38, 38, 72, 33, 61, 70, 38, 38, 68, 33, 61, 66, 38, 38, 105, 33, 61, 73, 41, 44, 72, 44, 105, 41, 32, 43, 32, 99, 50, 42, 105, 102, 40, 70, 61, 61, 72, 38, 38, 70, 33, 61, 66, 38, 38, 72, 33, 61, 68, 44, 70, 44, 105, 41, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 114, 105, 110, 107, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 114, 105, 110, 107, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 36, 49, 44, 36, 49, 44, 36, 49, 44, 64, 123, 36, 62, 44, 119, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 44, 64, 123, 36, 62, 44, 100, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 114, 105, 110, 107, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 48, 44, 36, 49, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 104, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 114, 105, 110, 107, 95, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 104, 114, 105, 110, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 122, 91, 36, 62, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 36, 62, 44, 100, 45, 36, 49, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 104, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 32, 116, 105, 108, 101, 115, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 97, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 121, 44, 36, 50, 32, 45, 115, 32, 120, 44, 36, 49, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 48, 48, 37, 125, 44, 36, 123, 51, 61, 49, 48, 48, 37, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 52, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 49, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 85, 112, 115, 99, 97, 108, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 36, 49, 120, 36, 50, 120, 36, 51, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 53, 32, 97, 110, 100, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 119, 60, 36, 119, 34, 32, 38, 38, 32, 34, 104, 60, 36, 104, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 48, 44, 36, 53, 44, 49, 46, 50, 44, 49, 46, 50, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 48, 48, 37, 44, 53, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 54, 44, 49, 48, 34, 44, 51, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 97, 110, 100, 112, 97, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 50, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 102, 105, 108, 116, 101, 114, 32, 91, 36, 49, 44, 36, 50, 93, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 34, 115, 113, 114, 116, 40, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 50, 32, 43, 32, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 50, 32, 43, 32, 40, 122, 47, 100, 45, 48, 46, 53, 41, 94, 50, 41, 34, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 53, 48, 37, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 97, 110, 103, 117, 108, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 49, 46, 51, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 121, 32, 49, 54, 44, 50, 32, 45, 98, 108, 117, 114, 95, 121, 32, 36, 49, 32, 45, 115, 104, 114, 105, 110, 107, 95, 121, 32, 49, 54, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 49, 46, 51, 44, 49, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 108, 105, 110, 101, 97, 114, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 10, 115, 116, 100, 49, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 49, 41, 125, 10, 115, 116, 100, 50, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 50, 41, 125, 10, 115, 116, 100, 77, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 50, 53, 42, 109, 97, 120, 40, 36, 115, 116, 100, 49, 44, 36, 115, 116, 100, 50, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 116, 100, 77, 60, 61, 48, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 36, 115, 116, 100, 77, 44, 123, 36, 52, 33, 61, 48, 125, 10, 123, 50, 42, 36, 115, 116, 100, 77, 125, 44, 123, 50, 42, 36, 115, 116, 100, 77, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 32, 36, 115, 116, 100, 77, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 100, 105, 97, 108, 32, 98, 108, 117, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 53, 44, 49, 32, 45, 98, 108, 117, 114, 95, 120, 32, 36, 49, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 53, 44, 49, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 53, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 36, 51, 32, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 115, 99, 97, 108, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 101, 100, 103, 101, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 45, 109, 97, 120, 40, 48, 46, 48, 49, 44, 36, 50, 41, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 51, 43, 49, 125, 44, 48, 44, 49, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 123, 36, 51, 45, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 45, 61, 61, 91, 45, 49, 93, 32, 123, 36, 62, 47, 49, 48, 48, 125, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 93, 32, 123, 36, 49, 47, 40, 36, 51, 43, 49, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 50, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 120, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 51, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 50, 44, 48, 44, 121, 44, 36, 51, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 120, 121, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 120, 44, 36, 52, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 50, 44, 48, 44, 121, 44, 36, 52, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 51, 44, 48, 44, 122, 44, 36, 52, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 121, 44, 36, 50, 32, 45, 118, 32, 43, 10, 98, 108, 117, 114, 95, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 122, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 110, 101, 117, 109, 97, 110, 110, 44, 100, 105, 114, 105, 99, 104, 108, 101, 116, 125, 34, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 101, 114, 105, 99, 104, 101, 32, 36, 49, 44, 48, 44, 122, 44, 36, 50, 32, 45, 118, 32, 43, 10, 98, 111, 107, 101, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 54, 61, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 48, 46, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 111, 107, 101, 104, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 51, 37, 44, 32, 98, 111, 107, 101, 104, 32, 115, 105, 122, 101, 32, 36, 52, 44, 32, 98, 111, 107, 101, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 115, 105, 122, 101, 32, 36, 53, 32, 34, 92, 10, 34, 98, 111, 107, 101, 104, 32, 111, 117, 116, 108, 105, 110, 101, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 54, 32, 97, 110, 100, 32, 98, 111, 107, 101, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 10, 50, 53, 54, 44, 50, 53, 54, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 45, 45, 108, 116, 91, 45, 49, 93, 32, 55, 48, 37, 32, 45, 116, 50, 91, 45, 50, 93, 32, 55, 48, 37, 44, 123, 55, 48, 45, 36, 53, 42, 55, 48, 47, 49, 48, 48, 125, 37, 32, 45, 42, 91, 45, 50, 93, 32, 36, 54, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 52, 44, 36, 52, 44, 49, 44, 49, 44, 50, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 123, 51, 42, 36, 55, 125, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 55, 44, 48, 32, 45, 45, 103, 116, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 48, 93, 32, 123, 49, 48, 48, 45, 36, 51, 125, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 49, 10, 45, 98, 91, 48, 93, 32, 36, 50, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 36, 63, 32, 105, 110, 116, 111, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 43, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 111, 108, 118, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 119, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 119, 125, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 104, 125, 47, 50, 41, 125, 32, 100, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 100, 125, 47, 50, 41, 125, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 45, 36, 100, 50, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 102, 102, 116, 91, 50, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 110, 111, 114, 109, 32, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 102, 102, 116, 91, 45, 49, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 54, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 115, 111, 112, 104, 111, 116, 101, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 45, 50, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 94, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 105, 110, 110, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 50, 93, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 51, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 105, 110, 110, 91, 45, 49, 93, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 98, 108, 117, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 55, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 101, 100, 32, 74, 97, 110, 115, 115, 111, 110, 45, 86, 97, 110, 32, 67, 105, 116, 116, 101, 114, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 51, 32, 97, 110, 100, 32, 114, 101, 103, 117, 108, 97, 114, 105, 122, 97, 116, 105, 111, 110, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 53, 62, 61, 50, 125, 32, 45, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 62, 61, 49, 125, 32, 45, 45, 105, 101, 101, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 52, 10, 45, 45, 98, 91, 45, 50, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 51, 47, 40, 48, 46, 48, 48, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 41, 125, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 71, 111, 108, 100, 45, 77, 101, 105, 110, 101, 108, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 97, 99, 99, 101, 108, 101, 114, 97, 116, 105, 111, 110, 32, 36, 51, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 52, 44, 34, 34, 44, 113, 117, 97, 115, 105, 45, 125, 34, 103, 97, 117, 115, 115, 105, 97, 110, 32, 107, 101, 114, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 36, 52, 32, 45, 45, 47, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 94, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 98, 108, 117, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 82, 105, 99, 104, 97, 114, 100, 115, 111, 110, 45, 76, 117, 99, 121, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 34, 34, 44, 113, 117, 97, 115, 105, 45, 125, 34, 103, 97, 117, 115, 115, 105, 97, 110, 32, 107, 101, 114, 110, 101, 108, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 123, 36, 51, 33, 61, 48, 125, 32, 45, 45, 47, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 49, 44, 123, 36, 51, 33, 61, 48, 125, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 99, 111, 110, 118, 111, 108, 118, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 116, 104, 114, 111, 117, 103, 104, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 119, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 119, 125, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 104, 125, 47, 50, 41, 125, 32, 100, 50, 61, 123, 105, 110, 116, 40, 64, 123, 48, 44, 100, 125, 47, 50, 41, 125, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 45, 36, 100, 50, 44, 48, 44, 50, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 102, 102, 116, 91, 49, 93, 10, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 53, 10, 45, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 54, 93, 32, 91, 45, 51, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 54, 44, 45, 52, 93, 10, 45, 42, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 51, 44, 45, 50, 93, 10, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 49, 44, 109, 111, 116, 105, 111, 110, 45, 99, 111, 109, 112, 101, 110, 115, 97, 116, 101, 100, 44, 115, 116, 97, 110, 100, 97, 114, 100, 125, 34, 32, 109, 101, 116, 104, 111, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 115, 32, 121, 32, 45, 97, 91, 48, 45, 45, 49, 58, 50, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 53, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 48, 125, 32, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 46, 48, 53, 32, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 32, 45, 47, 32, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 114, 32, 36, 119, 104, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 110, 111, 105, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 104, 97, 97, 114, 45, 119, 97, 118, 101, 108, 101, 116, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 105, 110, 103, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 50, 62, 48, 41, 44, 97, 117, 116, 111, 44, 36, 50, 125, 34, 32, 115, 99, 97, 108, 101, 115, 32, 97, 110, 100, 32, 36, 51, 32, 115, 112, 105, 110, 110, 105, 110, 103, 32, 99, 121, 99, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 123, 109, 105, 110, 40, 105, 102, 40, 36, 50, 44, 36, 50, 44, 51, 50, 41, 44, 105, 110, 116, 40, 108, 111, 103, 50, 40, 109, 105, 110, 40, 119, 44, 104, 41, 41, 45, 49, 41, 41, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 115, 105, 103, 109, 97, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 32, 123, 114, 111, 117, 110, 100, 40, 119, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 104, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 125, 44, 123, 105, 102, 40, 100, 61, 61, 49, 44, 49, 44, 114, 111, 117, 110, 100, 40, 100, 44, 50, 94, 40, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 43, 49, 41, 44, 49, 41, 41, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 10, 45, 45, 102, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 125, 10, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 125, 10, 100, 122, 61, 123, 105, 102, 40, 36, 100, 61, 61, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 52, 42, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 125, 41, 41, 41, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 36, 100, 122, 44, 48, 44, 50, 10, 45, 104, 97, 97, 114, 91, 45, 49, 93, 32, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 123, 36, 49, 42, 36, 115, 105, 103, 109, 97, 125, 44, 49, 10, 45, 105, 104, 97, 97, 114, 91, 45, 49, 93, 32, 36, 110, 98, 95, 115, 99, 97, 108, 101, 115, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 45, 36, 100, 120, 125, 44, 123, 45, 36, 100, 121, 125, 44, 123, 45, 36, 100, 122, 125, 44, 48, 44, 50, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 47, 32, 36, 51, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 49, 48, 48, 37, 44, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 91, 93, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 38, 49, 125, 32, 115, 115, 61, 123, 36, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 115, 61, 123, 36, 49, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 105, 91, 49, 93, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 42, 115, 113, 114, 116, 40, 50, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 113, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 114, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 114, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 113, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 113, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 95, 107, 114, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 37, 50, 61, 61, 48, 125, 32, 45, 105, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 36, 49, 47, 50, 125, 10, 95, 106, 102, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 99, 101, 110, 116, 101, 114, 61, 123, 48, 46, 53, 42, 40, 119, 45, 49, 41, 125, 10, 45, 102, 91, 45, 49, 93, 32, 39, 115, 113, 114, 116, 40, 40, 120, 45, 36, 99, 101, 110, 116, 101, 114, 41, 94, 50, 43, 40, 121, 45, 36, 99, 101, 110, 116, 101, 114, 41, 94, 50, 41, 39, 10, 45, 105, 102, 32, 123, 33, 40, 119, 37, 50, 41, 125, 10, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 48, 46, 48, 48, 48, 49, 44, 45, 49, 10, 116, 49, 61, 123, 115, 113, 114, 116, 40, 40, 40, 114, 111, 117, 110, 100, 40, 36, 49, 41, 45, 49, 41, 47, 50, 41, 94, 50, 43, 48, 46, 50, 53, 41, 125, 10, 116, 50, 61, 123, 115, 113, 114, 116, 40, 40, 40, 114, 111, 117, 110, 100, 40, 36, 49, 41, 43, 49, 41, 47, 50, 41, 94, 50, 43, 48, 46, 50, 53, 41, 125, 10, 107, 61, 123, 36, 49, 45, 114, 111, 117, 110, 100, 40, 36, 49, 41, 43, 48, 46, 53, 125, 10, 116, 61, 123, 36, 116, 49, 43, 40, 36, 116, 50, 45, 36, 116, 49, 41, 42, 36, 107, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 36, 116, 10, 45, 101, 108, 115, 101, 32, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 36, 49, 47, 50, 45, 48, 46, 50, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 105, 114, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 114, 60, 50, 125, 32, 36, 105, 114, 44, 36, 105, 114, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 115, 101, 10, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 44, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 40, 105, 43, 48, 46, 52, 41, 47, 115, 113, 114, 116, 40, 50, 41, 125, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 95, 100, 116, 95, 100, 105, 97, 109, 111, 110, 100, 32, 58, 10, 105, 114, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 114, 60, 50, 125, 32, 36, 105, 114, 44, 36, 105, 114, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 115, 101, 10, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 44, 123, 105, 110, 116, 40, 36, 105, 114, 47, 50, 41, 43, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 105, 47, 50, 125, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 105, 114, 62, 49, 38, 38, 40, 36, 105, 114, 37, 50, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 49, 125, 32, 45, 103, 32, 120, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 50, 93, 32, 120, 44, 48, 32, 45, 103, 91, 45, 49, 93, 32, 121, 44, 48, 32, 45, 43, 10, 45, 101, 108, 105, 102, 32, 123, 115, 61, 61, 51, 125, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 51, 93, 32, 120, 44, 48, 32, 45, 103, 91, 45, 50, 93, 32, 121, 44, 48, 32, 45, 103, 91, 45, 49, 93, 32, 122, 44, 48, 32, 45, 43, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 67, 97, 110, 110, 111, 116, 32, 99, 111, 109, 112, 117, 116, 101, 32, 100, 105, 118, 101, 114, 103, 101, 110, 99, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 32, 40, 104, 97, 115, 32, 34, 123, 115, 125, 34, 62, 51, 32, 99, 104, 97, 110, 110, 101, 108, 115, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 111, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 37, 125, 44, 36, 123, 50, 61, 51, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 32, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 98, 91, 48, 93, 32, 36, 49, 34, 44, 34, 45, 98, 91, 49, 93, 32, 36, 50, 34, 32, 45, 45, 32, 45, 110, 111, 114, 109, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 46, 54, 125, 44, 36, 123, 52, 61, 49, 46, 49, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 116, 101, 110, 115, 111, 114, 115, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 50, 44, 32, 97, 108, 112, 104, 97, 32, 36, 51, 32, 97, 110, 100, 32, 115, 105, 103, 109, 97, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 112, 49, 61, 123, 105, 102, 40, 36, 53, 44, 48, 46, 53, 44, 49, 41, 42, 109, 97, 120, 40, 36, 49, 44, 49, 101, 45, 53, 41, 125, 10, 112, 50, 61, 123, 36, 112, 49, 47, 40, 49, 101, 45, 55, 43, 49, 45, 36, 50, 41, 125, 10, 45, 98, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 50, 32, 45, 98, 32, 36, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 105, 103, 101, 110, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 48, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 125, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 45, 94, 91, 45, 50, 93, 32, 45, 36, 112, 49, 32, 45, 94, 91, 45, 51, 93, 32, 45, 36, 112, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 43, 91, 45, 52, 45, 45, 50, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 45, 94, 91, 45, 50, 93, 32, 45, 36, 112, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 94, 91, 45, 51, 93, 32, 45, 36, 112, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 105, 103, 101, 110, 50, 116, 101, 110, 115, 111, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 100, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 53, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 99, 111, 110, 116, 111, 117, 114, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 32, 48, 46, 53, 32, 45, 103, 101, 32, 36, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 99, 32, 51, 48, 37, 44, 55, 48, 37, 32, 45, 110, 32, 48, 44, 49, 32, 45, 118, 32, 43, 10, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 117, 108, 97, 114, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 91, 93, 32, 36, 49, 32, 45, 101, 114, 111, 100, 101, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 103, 111, 110, 97, 108, 32, 101, 114, 111, 115, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 98, 111, 117, 110, 100, 97, 114, 121, 32, 36, 50, 32, 97, 110, 100, 32, 105, 115, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 38, 49, 125, 32, 115, 115, 61, 123, 36, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 115, 61, 123, 36, 49, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 48, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 105, 91, 49, 93, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 42, 115, 113, 114, 116, 40, 50, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 113, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 115, 115, 45, 49, 41, 47, 40, 49, 43, 115, 113, 114, 116, 40, 50, 41, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 114, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 114, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 113, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 113, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 91, 49, 93, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 61, 61, 49, 32, 124, 124, 32, 36, 49, 61, 61, 50, 32, 124, 124, 32, 36, 49, 61, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 36, 49, 45, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 32, 120, 32, 45, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 32, 120, 121, 32, 45, 45, 115, 113, 114, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 103, 32, 120, 121, 122, 32, 45, 45, 115, 113, 114, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 47, 91, 45, 52, 44, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 32, 120, 32, 45, 115, 113, 114, 91, 45, 49, 93, 10, 45, 45, 103, 91, 45, 50, 93, 32, 121, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 91, 45, 50, 93, 32, 122, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 115, 61, 123, 115, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 36, 115, 45, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 104, 97, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 104, 97, 97, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 119, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 119, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 104, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 100, 47, 50, 94, 40, 49, 43, 36, 62, 41, 41, 45, 49, 41, 125, 10, 45, 45, 122, 32, 48, 44, 48, 44, 48, 44, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 95, 104, 97, 97, 114, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 104, 97, 97, 114, 32, 58, 10, 45, 95, 104, 97, 97, 114, 95, 120, 32, 45, 95, 104, 97, 97, 114, 95, 121, 32, 45, 95, 104, 97, 97, 114, 95, 122, 10, 95, 104, 97, 97, 114, 95, 120, 32, 58, 10, 45, 105, 102, 32, 123, 119, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 61, 34, 123, 119, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 45, 49, 32, 45, 114, 32, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 120, 10, 95, 104, 97, 97, 114, 95, 121, 32, 58, 10, 45, 105, 102, 32, 123, 104, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 48, 44, 45, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 121, 10, 95, 104, 97, 97, 114, 95, 122, 32, 58, 10, 45, 105, 102, 32, 123, 100, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 32, 48, 44, 48, 44, 45, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 32, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 32, 45, 97, 32, 122, 10, 104, 101, 97, 116, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 104, 101, 97, 116, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 108, 97, 112, 108, 97, 99, 105, 97, 110, 44, 36, 51, 32, 45, 118, 32, 43, 10, 105, 101, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 111, 114, 116, 104, 111, 103, 111, 110, 97, 108, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 45, 50, 10, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 105, 110, 110, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 104, 97, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 104, 97, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 10, 119, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 119, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 104, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 48, 44, 114, 111, 117, 110, 100, 40, 100, 47, 50, 94, 40, 49, 43, 36, 60, 41, 41, 45, 49, 41, 125, 10, 45, 45, 122, 32, 48, 44, 48, 44, 48, 44, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 95, 105, 104, 97, 97, 114, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 95, 105, 104, 97, 97, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 105, 104, 97, 97, 114, 32, 58, 10, 45, 95, 105, 104, 97, 97, 114, 95, 120, 32, 45, 95, 105, 104, 97, 97, 114, 95, 121, 32, 45, 95, 105, 104, 97, 97, 114, 95, 122, 10, 95, 105, 104, 97, 97, 114, 95, 120, 32, 58, 10, 45, 105, 102, 32, 123, 119, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 119, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 54, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 119, 105, 100, 116, 104, 61, 34, 123, 119, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 120, 44, 50, 32, 45, 114, 32, 50, 48, 48, 37, 32, 40, 45, 49, 44, 49, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 95, 105, 104, 97, 97, 114, 95, 121, 32, 58, 10, 45, 105, 102, 32, 123, 104, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 104, 101, 105, 103, 104, 116, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 121, 44, 50, 32, 45, 114, 32, 49, 48, 48, 37, 44, 50, 48, 48, 37, 32, 40, 45, 49, 59, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 95, 105, 104, 97, 97, 114, 95, 122, 32, 58, 10, 45, 105, 102, 32, 123, 100, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 37, 50, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 109, 97, 103, 101, 32, 100, 101, 112, 116, 104, 61, 34, 123, 104, 125, 34, 32, 40, 105, 115, 32, 110, 111, 116, 32, 101, 118, 101, 110, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 122, 44, 50, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 48, 48, 37, 32, 40, 45, 49, 47, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 32, 45, 47, 32, 123, 115, 113, 114, 116, 40, 50, 41, 125, 10, 105, 110, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 45, 100, 105, 114, 101, 99, 116, 101, 100, 32, 50, 110, 100, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 45, 103, 32, 120, 121, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 51, 93, 32, 120, 120, 120, 121, 121, 121, 10, 45, 42, 91, 45, 53, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 50, 10, 45, 43, 91, 45, 53, 44, 45, 52, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 50, 93, 10, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 32, 120, 121, 122, 44, 48, 32, 45, 104, 101, 115, 115, 105, 97, 110, 91, 45, 52, 93, 32, 120, 120, 120, 121, 120, 122, 121, 121, 121, 122, 122, 122, 10, 45, 42, 91, 45, 57, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 56, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 56, 93, 32, 50, 32, 45, 42, 91, 45, 55, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 55, 93, 32, 50, 10, 45, 43, 91, 45, 57, 45, 45, 55, 93, 32, 45, 42, 91, 45, 55, 93, 32, 91, 45, 51, 93, 10, 45, 42, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 53, 93, 32, 50, 10, 45, 43, 91, 45, 54, 44, 45, 53, 93, 32, 45, 42, 91, 45, 53, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 44, 45, 53, 93, 10, 45, 115, 113, 114, 91, 45, 51, 45, 45, 49, 93, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 53, 44, 45, 52, 93, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 49, 53, 125, 44, 36, 123, 51, 61, 49, 53, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 91, 48, 93, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 50, 44, 49, 44, 49, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 36, 62, 32, 45, 108, 91, 48, 44, 36, 62, 93, 10, 45, 114, 91, 48, 93, 32, 91, 49, 93, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 49, 93, 32, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 49, 93, 32, 48, 44, 49, 44, 36, 52, 44, 36, 53, 44, 48, 32, 45, 42, 91, 50, 93, 32, 91, 48, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 49, 93, 32, 91, 50, 93, 44, 36, 50, 44, 36, 51, 44, 48, 32, 45, 114, 109, 91, 50, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 117, 119, 97, 104, 97, 114, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 102, 105, 108, 116, 101, 114, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 61, 123, 115, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 105, 110, 10, 45, 45, 101, 114, 111, 100, 101, 91, 48, 93, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 97, 120, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 36, 49, 44, 49, 44, 49, 44, 49, 44, 123, 49, 47, 36, 49, 125, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 112, 61, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 102, 32, 34, 118, 49, 61, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 50, 61, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 51, 61, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 52, 61, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 34, 36, 115, 34, 44, 48, 44, 49, 41, 59, 32, 92, 10, 118, 109, 61, 109, 105, 110, 40, 118, 49, 44, 118, 50, 44, 118, 51, 44, 118, 52, 41, 59, 32, 92, 10, 105, 102, 40, 99, 62, 61, 34, 36, 115, 34, 44, 105, 44, 32, 92, 10, 105, 102, 40, 118, 109, 61, 61, 118, 49, 44, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 102, 40, 118, 109, 61, 61, 118, 50, 44, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 45, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 102, 40, 118, 109, 61, 61, 118, 51, 44, 105, 40, 120, 45, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 44, 10, 105, 40, 120, 43, 34, 36, 112, 34, 44, 121, 43, 34, 36, 112, 34, 44, 48, 44, 99, 44, 48, 44, 49, 41, 41, 41, 41, 41, 34, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 123, 115, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 76, 97, 112, 108, 97, 99, 105, 97, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 104, 101, 115, 115, 105, 97, 110, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 100, 61, 61, 49, 41, 44, 120, 120, 121, 121, 122, 122, 44, 120, 120, 121, 121, 125, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 76, 73, 67, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 50, 100, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 32, 99, 104, 97, 110, 110, 101, 108, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 49, 32, 45, 47, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 125, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 49, 125, 44, 36, 123, 50, 61, 48, 46, 56, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 51, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 103, 97, 109, 109, 97, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 32, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 32, 120, 121, 44, 49, 32, 45, 97, 32, 99, 32, 45, 45, 110, 111, 114, 109, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 10, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 10, 45, 42, 91, 45, 49, 93, 32, 39, 97, 108, 112, 104, 97, 61, 36, 49, 42, 105, 77, 59, 40, 97, 108, 112, 104, 97, 47, 40, 49, 101, 45, 49, 48, 43, 105, 41, 41, 42, 40, 105, 47, 40, 49, 101, 45, 49, 48, 43, 97, 108, 112, 104, 97, 41, 41, 94, 36, 50, 39, 10, 45, 42, 32, 45, 115, 32, 99, 32, 45, 103, 91, 45, 50, 93, 32, 120, 44, 45, 49, 32, 45, 103, 91, 45, 49, 93, 32, 121, 44, 45, 49, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 32, 45, 42, 32, 48, 46, 50, 53, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 50, 53, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 56, 48, 48, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 93, 32, 56, 48, 49, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 32, 45, 118, 32, 43, 10, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 97, 115, 116, 32, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 32, 97, 110, 100, 32, 112, 111, 119, 101, 114, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 32, 48, 44, 49, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 42, 108, 111, 103, 40, 49, 48, 41, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 94, 91, 45, 52, 44, 45, 50, 93, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 109, 101, 97, 110, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 105, 101, 101, 44, 36, 51, 32, 45, 118, 32, 43, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 105, 115, 98, 111, 111, 108, 40, 36, 123, 53, 61, 49, 125, 41, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 52, 37, 125, 44, 36, 123, 52, 61, 50, 37, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 108, 111, 99, 97, 108, 108, 121, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 97, 118, 101, 114, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 32, 45, 101, 114, 111, 100, 101, 32, 123, 50, 42, 36, 50, 43, 49, 125, 32, 45, 115, 32, 99, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 45, 50, 93, 32, 45, 100, 105, 108, 97, 116, 101, 32, 123, 50, 42, 36, 50, 43, 49, 125, 32, 45, 115, 32, 99, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 45, 45, 98, 91, 45, 51, 93, 32, 36, 52, 32, 45, 98, 91, 45, 51, 44, 45, 50, 93, 32, 36, 51, 10, 45, 45, 45, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 45, 91, 45, 53, 93, 32, 91, 45, 52, 93, 32, 45, 47, 91, 45, 53, 44, 45, 49, 93, 10, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 123, 36, 49, 43, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 53, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 36, 54, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 36, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 105, 102, 32, 36, 53, 32, 45, 99, 32, 36, 54, 44, 36, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 99, 114, 111, 115, 115, 45, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 102, 102, 116, 91, 45, 50, 93, 32, 45, 102, 102, 116, 91, 45, 49, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 117, 108, 91, 45, 50, 93, 32, 91, 45, 53, 93, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 91, 45, 54, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 53, 44, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 115, 116, 105, 109, 97, 116, 101, 32, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32, 118, 101, 99, 116, 111, 114, 32, 117, 115, 105, 110, 103, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 95, 99, 114, 111, 115, 115, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 10, 40, 64, 123, 45, 49, 44, 67, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 45, 51, 62, 64, 123, 45, 52, 44, 119, 125, 125, 32, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 52, 44, 119, 125, 32, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 52, 44, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 45, 50, 62, 64, 123, 45, 52, 44, 104, 125, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 52, 44, 104, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 52, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 45, 49, 62, 64, 123, 45, 52, 44, 100, 125, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 100, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 100, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 47, 32, 50, 32, 45, 42, 32, 45, 49, 10, 45, 110, 109, 32, 91, 112, 104, 97, 115, 101, 92, 32, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 100, 101, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 108, 97, 112, 108, 97, 99, 105, 97, 110, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 118, 101, 108, 111, 99, 105, 116, 121, 32, 102, 108, 111, 119, 32, 39, 36, 51, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 36, 51, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 40, 48, 46, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 41, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 108, 115, 101, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 32, 120, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 114, 101, 100, 95, 101, 121, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 55, 53, 125, 44, 36, 123, 50, 61, 51, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 116, 116, 101, 110, 117, 97, 116, 101, 32, 114, 101, 100, 45, 101, 121, 101, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 97, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 51, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 104, 111, 116, 32, 112, 105, 120, 101, 108, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 109, 97, 115, 107, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 32, 45, 45, 45, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 36, 49, 37, 32, 111, 102, 32, 110, 111, 110, 45, 122, 101, 114, 111, 32, 112, 105, 120, 101, 108, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 110, 111, 114, 109, 32, 45, 103, 116, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 50, 32, 114, 97, 116, 101, 61, 123, 36, 49, 42, 36, 50, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 64, 123, 45, 49, 44, 43, 125, 41, 125, 10, 45, 101, 108, 115, 101, 32, 114, 97, 116, 101, 61, 123, 36, 49, 42, 119, 42, 104, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 64, 123, 45, 49, 44, 43, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 114, 97, 116, 101, 37, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 108, 105, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 116, 111, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 112, 97, 114, 116, 115, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 98, 32, 36, 49, 32, 45, 45, 91, 48, 93, 32, 91, 49, 93, 32, 45, 114, 118, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 111, 108, 105, 100, 105, 102, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 116, 111, 95, 97, 10, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 50, 93, 32, 45, 103, 101, 91, 45, 50, 93, 32, 53, 48, 37, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 45, 49, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 100, 111, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 10, 45, 101, 114, 111, 100, 101, 91, 45, 50, 93, 32, 51, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 49, 48, 48, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 105, 109, 60, 48, 125, 10, 45, 107, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 46, 53, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 112, 108, 97, 99, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 111, 102, 32, 82, 71, 66, 65, 32, 105, 109, 97, 103, 101, 36, 63, 32, 98, 121, 32, 108, 105, 110, 101, 97, 114, 108, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 103, 109, 97, 32, 36, 49, 44, 32, 100, 115, 105, 103, 109, 97, 32, 36, 50, 32, 97, 110, 100, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 115, 105, 103, 109, 97, 61, 36, 49, 32, 45, 100, 111, 10, 78, 61, 123, 118, 61, 114, 111, 117, 110, 100, 40, 51, 42, 36, 115, 105, 103, 109, 97, 41, 59, 109, 105, 110, 40, 51, 51, 44, 109, 97, 120, 40, 51, 44, 118, 43, 49, 45, 40, 118, 37, 50, 41, 41, 41, 125, 10, 36, 78, 44, 36, 78, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 45, 49, 47, 36, 115, 105, 103, 109, 97, 94, 50, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 53, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 123, 118, 61, 114, 111, 117, 110, 100, 40, 40, 49, 47, 51, 45, 36, 78, 47, 54, 41, 42, 36, 51, 43, 36, 78, 47, 50, 41, 59, 109, 97, 120, 40, 51, 44, 118, 43, 49, 45, 40, 118, 37, 50, 41, 41, 125, 10, 45, 45, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 115, 105, 103, 109, 97, 61, 123, 36, 115, 105, 103, 109, 97, 42, 36, 50, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 33, 105, 109, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 111, 108, 118, 101, 95, 112, 111, 105, 115, 115, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 54, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 108, 118, 101, 32, 80, 111, 105, 115, 115, 111, 110, 32, 101, 113, 117, 97, 116, 105, 111, 110, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 111, 114, 32, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 44, 32, 119, 105, 116, 104, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 51, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 52, 61, 61, 48, 41, 44, 36, 52, 44, 97, 117, 116, 111, 125, 34, 32, 115, 99, 97, 108, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 102, 40, 36, 52, 44, 36, 52, 44, 105, 110, 116, 40, 109, 97, 120, 40, 108, 111, 103, 50, 40, 109, 97, 120, 40, 119, 44, 104, 41, 41, 45, 49, 44, 49, 41, 41, 41, 125, 10, 102, 61, 123, 50, 94, 36, 60, 125, 10, 45, 114, 91, 49, 93, 32, 64, 123, 48, 44, 109, 97, 120, 40, 49, 44, 119, 47, 36, 102, 41, 125, 44, 64, 123, 48, 44, 109, 97, 120, 40, 49, 44, 104, 47, 36, 102, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 45, 45, 114, 91, 48, 93, 32, 91, 49, 93, 44, 50, 32, 45, 108, 91, 45, 49, 93, 32, 45, 36, 49, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 50, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 51, 47, 109, 97, 120, 40, 49, 101, 45, 56, 44, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 118, 95, 102, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 116, 111, 116, 97, 108, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 102, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 100, 101, 95, 102, 108, 111, 119, 32, 36, 49, 44, 36, 50, 44, 99, 117, 114, 118, 97, 116, 117, 114, 101, 44, 36, 51, 32, 45, 118, 32, 43, 10, 117, 110, 115, 104, 97, 114, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 97, 109, 111, 117, 110, 116, 32, 36, 50, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 98, 91, 36, 62, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 99, 116, 97, 118, 101, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 97, 109, 111, 117, 110, 116, 32, 36, 51, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 45, 102, 32, 48, 32, 119, 101, 105, 103, 104, 116, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 123, 36, 50, 42, 50, 94, 45, 64, 123, 60, 44, 45, 49, 125, 125, 44, 36, 51, 44, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 123, 50, 94, 45, 36, 62, 125, 32, 119, 101, 105, 103, 104, 116, 61, 123, 36, 119, 101, 105, 103, 104, 116, 43, 50, 94, 45, 36, 62, 125, 32, 45, 43, 91, 49, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 47, 32, 36, 119, 101, 105, 103, 104, 116, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 50, 61, 51, 50, 125, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 116, 101, 120, 116, 117, 97, 108, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 50, 32, 105, 110, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 100, 111, 109, 97, 105, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 91, 48, 93, 32, 48, 32, 45, 116, 91, 48, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 103, 101, 91, 48, 93, 32, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 102, 102, 116, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 119, 50, 44, 36, 104, 50, 44, 48, 44, 48, 44, 50, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 123, 115, 125, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 106, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 119, 50, 44, 45, 36, 104, 50, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 97, 114, 101, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 97, 98, 101, 108, 91, 36, 62, 93, 32, 36, 49, 44, 36, 50, 32, 110, 98, 61, 64, 123, 36, 62, 44, 49, 43, 105, 77, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 32, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 114, 101, 97, 95, 102, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 114, 101, 97, 32, 111, 102, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 36, 62, 93, 32, 36, 49, 44, 36, 50, 32, 110, 98, 61, 64, 123, 36, 62, 44, 49, 43, 105, 77, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 32, 45, 61, 91, 45, 49, 93, 32, 48, 32, 45, 109, 97, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 118, 101, 99, 116, 111, 114, 32, 111, 102, 32, 112, 105, 120, 101, 108, 32, 118, 97, 108, 117, 101, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 98, 125, 10, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 105, 102, 32, 123, 36, 115, 117, 109, 62, 48, 125, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 42, 32, 39, 122, 39, 32, 122, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 122, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 45, 42, 32, 39, 121, 39, 32, 121, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 121, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 32, 39, 120, 39, 32, 120, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 36, 120, 47, 36, 115, 117, 109, 125, 59, 123, 36, 121, 47, 36, 115, 117, 109, 125, 59, 123, 36, 122, 47, 36, 115, 117, 109, 125, 41, 10, 45, 101, 108, 115, 101, 32, 40, 123, 119, 47, 50, 125, 44, 123, 104, 47, 50, 125, 44, 123, 100, 47, 50, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 34, 91, 98, 97, 114, 121, 99, 101, 110, 116, 101, 114, 32, 111, 102, 32, 39, 34, 36, 110, 109, 34, 39, 93, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 108, 111, 97, 116, 50, 102, 102, 116, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 50, 93, 32, 45, 102, 108, 111, 97, 116, 50, 105, 110, 116, 56, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 102, 116, 56, 50, 102, 108, 111, 97, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 102, 108, 111, 97, 116, 45, 118, 97, 108, 117, 101, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 56, 98, 105, 116, 115, 32, 102, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 121, 44, 50, 32, 45, 105, 110, 116, 56, 50, 102, 108, 111, 97, 116, 32, 45, 101, 120, 112, 91, 45, 50, 93, 32, 45, 45, 91, 45, 50, 93, 32, 49, 32, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 102, 116, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 115, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 102, 102, 116, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 115, 104, 105, 102, 116, 32, 123, 45, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 100, 47, 50, 41, 125, 44, 48, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 99, 117, 109, 117, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 50, 53, 54, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 97, 114, 103, 32, 49, 43, 33, 36, 50, 44, 34, 110, 111, 114, 109, 97, 108, 105, 122, 101, 100, 32, 34, 44, 34, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 34, 64, 123, 125, 34, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 36, 49, 44, 36, 51, 44, 36, 52, 32, 45, 99, 117, 109, 117, 108, 32, 45, 105, 102, 32, 36, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 47, 91, 36, 62, 93, 32, 64, 123, 36, 62, 44, 77, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 37, 125, 44, 36, 123, 51, 61, 49, 48, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 112, 111, 105, 110, 116, 119, 105, 115, 101, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 45, 118, 97, 108, 117, 101, 100, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 110, 98, 95, 108, 101, 118, 101, 108, 115, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 40, 105, 77, 45, 105, 109, 41, 42, 36, 49, 44, 36, 49, 41, 41, 125, 10, 118, 97, 108, 117, 101, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 50, 44, 36, 50, 41, 125, 10, 118, 97, 108, 117, 101, 49, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 105, 109, 43, 40, 105, 77, 45, 105, 109, 41, 42, 36, 51, 44, 36, 51, 41, 125, 10, 45, 45, 32, 36, 118, 97, 108, 117, 101, 48, 32, 45, 42, 32, 123, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 47, 109, 97, 120, 40, 49, 44, 97, 98, 115, 40, 36, 118, 97, 108, 117, 101, 49, 45, 36, 118, 97, 108, 117, 101, 48, 41, 41, 125, 32, 45, 99, 32, 48, 44, 123, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 45, 114, 32, 123, 119, 42, 104, 42, 100, 125, 44, 123, 115, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 51, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 52, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 44, 123, 104, 47, 51, 125, 44, 123, 104, 47, 51, 125, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 104, 47, 51, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 64, 123, 45, 50, 44, 104, 47, 51, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 51, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 49, 32, 45, 121, 91, 45, 53, 44, 45, 51, 44, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 123, 36, 119, 42, 36, 104, 42, 36, 100, 125, 44, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 110, 98, 95, 108, 101, 118, 101, 108, 115, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 111, 117, 103, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 36, 49, 120, 36, 50, 32, 104, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 119, 105, 116, 104, 44, 119, 105, 116, 104, 111, 117, 116, 125, 34, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 118, 111, 116, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 103, 32, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 40, 48, 59, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 51, 44, 119, 125, 44, 64, 123, 45, 51, 44, 104, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 91, 45, 50, 93, 32, 123, 119, 47, 50, 125, 32, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 10, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 91, 45, 52, 45, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 108, 116, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 37, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 36, 114, 104, 111, 109, 97, 120, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 48, 46, 53, 42, 36, 49, 47, 112, 105, 125, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 123, 119, 125, 32, 45, 109, 118, 91, 45, 52, 93, 32, 64, 35, 32, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 49, 32, 45, 114, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 102, 102, 116, 112, 111, 108, 97, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 105, 110, 118, 101, 114, 115, 101, 32, 102, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 114, 111, 109, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 109, 97, 103, 110, 105, 116, 117, 100, 101, 47, 112, 104, 97, 115, 101, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 115, 104, 105, 102, 116, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 123, 105, 110, 116, 40, 100, 47, 50, 41, 125, 44, 48, 44, 50, 32, 45, 112, 111, 108, 97, 114, 50, 99, 111, 109, 112, 108, 101, 120, 32, 45, 105, 102, 102, 116, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 52, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 105, 115, 111, 112, 104, 111, 116, 101, 32, 109, 97, 112, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 115, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 105, 115, 111, 108, 105, 110, 101, 51, 100, 91, 49, 93, 32, 123, 36, 62, 42, 50, 53, 53, 47, 40, 36, 49, 45, 49, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 51, 100, 91, 94, 48, 93, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 10, 91, 48, 93, 44, 91, 48, 93, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 98, 101, 108, 95, 102, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 97, 98, 101, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 91, 49, 93, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 122, 32, 45, 49, 44, 45, 49, 44, 45, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 123, 100, 45, 49, 125, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 44, 123, 100, 45, 49, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 122, 32, 45, 49, 44, 45, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 49, 125, 44, 123, 104, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 123, 49, 43, 105, 77, 125, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 39, 120, 39, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 45, 49, 44, 48, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 97, 120, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 36, 62, 93, 32, 36, 49, 32, 45, 61, 61, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 117, 114, 110, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 109, 105, 110, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 115, 32, 105, 110, 32, 108, 111, 99, 97, 108, 32, 112, 97, 116, 99, 104, 32, 110, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 111, 102, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 91, 36, 62, 93, 32, 36, 49, 32, 45, 61, 61, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 51, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 112, 111, 105, 110, 116, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 97, 110, 100, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 32, 102, 111, 114, 32, 112, 111, 116, 101, 110, 116, 105, 97, 108, 32, 109, 97, 112, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 123, 52, 45, 54, 125, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 40, 119, 45, 49, 41, 44, 36, 49, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 40, 104, 45, 49, 41, 44, 36, 50, 41, 41, 125, 10, 122, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 36, 51, 42, 40, 100, 45, 49, 41, 44, 36, 51, 41, 41, 125, 10, 40, 36, 120, 59, 36, 121, 59, 36, 122, 41, 10, 45, 100, 111, 10, 112, 61, 64, 123, 48, 44, 40, 36, 120, 44, 36, 121, 44, 36, 122, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 112, 61, 61, 49, 125, 32, 32, 32, 120, 61, 123, 36, 120, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 50, 125, 32, 120, 61, 123, 36, 120, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 51, 125, 32, 121, 61, 123, 36, 121, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 52, 125, 32, 121, 61, 123, 36, 121, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 53, 125, 32, 122, 61, 123, 36, 122, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 112, 61, 61, 54, 125, 32, 122, 61, 123, 36, 122, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 40, 36, 120, 59, 36, 121, 59, 36, 122, 41, 10, 45, 119, 104, 105, 108, 101, 32, 36, 112, 10, 45, 114, 109, 91, 48, 44, 45, 49, 93, 32, 45, 97, 32, 120, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 97, 116, 99, 104, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 51, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 116, 114, 97, 99, 116, 32, 36, 49, 120, 36, 50, 120, 36, 51, 32, 112, 97, 116, 99, 104, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 97, 116, 32, 108, 111, 99, 97, 116, 105, 111, 110, 115, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 123, 52, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 119, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 32, 78, 61, 123, 119, 125, 10, 72, 61, 123, 105, 110, 116, 40, 115, 113, 114, 116, 40, 119, 41, 41, 125, 32, 87, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 72, 44, 49, 44, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 87, 42, 36, 72, 125, 44, 49, 44, 49, 44, 51, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 36, 87, 44, 36, 72, 44, 49, 44, 51, 44, 45, 49, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 50, 125, 44, 123, 100, 42, 36, 51, 125, 10, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 44, 120, 45, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 45, 123, 105, 110, 116, 40, 36, 50, 47, 50, 41, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 122, 45, 123, 105, 110, 116, 40, 36, 51, 47, 50, 41, 125, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 119, 97, 114, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 115, 32, 121, 44, 36, 72, 32, 45, 115, 32, 120, 44, 36, 87, 32, 45, 107, 91, 48, 45, 123, 36, 78, 45, 49, 125, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 112, 108, 111, 116, 50, 118, 97, 108, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 116, 114, 105, 101, 118, 101, 32, 118, 97, 108, 117, 101, 115, 32, 102, 114, 111, 109, 32, 50, 100, 32, 103, 114, 97, 112, 104, 32, 112, 108, 111, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 103, 101, 32, 53, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 40, 49, 44, 123, 119, 125, 41, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 42, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 123, 119, 125, 44, 49, 44, 123, 119, 125, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 125, 60, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 115, 44, 32, 105, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 50, 43, 40, 36, 49, 62, 61, 48, 41, 42, 36, 49, 45, 40, 36, 49, 60, 48, 41, 44, 123, 45, 36, 49, 125, 45, 111, 112, 97, 99, 105, 116, 121, 44, 98, 105, 110, 97, 114, 121, 44, 99, 117, 109, 117, 108, 97, 116, 105, 118, 101, 44, 108, 97, 98, 101, 108, 105, 110, 103, 125, 34, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 34, 100, 62, 49, 32, 124, 124, 32, 115, 62, 49, 34, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 34, 123, 119, 125, 120, 123, 104, 125, 120, 123, 100, 125, 120, 123, 115, 125, 34, 46, 32, 83, 104, 111, 117, 108, 100, 32, 98, 101, 32, 78, 120, 77, 120, 49, 120, 49, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 109, 97, 120, 40, 50, 44, 104, 45, 49, 41, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 120, 61, 123, 105, 77, 43, 49, 125, 10, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 121, 61, 123, 105, 77, 43, 49, 125, 10, 45, 115, 104, 91, 45, 51, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 100, 122, 61, 123, 105, 77, 43, 49, 125, 10, 45, 42, 91, 45, 49, 93, 32, 36, 100, 121, 32, 45, 43, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 115, 32, 120, 44, 45, 49, 48, 48, 48, 48, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 112, 61, 123, 119, 125, 10, 45, 105, 102, 32, 123, 104, 62, 51, 125, 32, 45, 45, 114, 111, 119, 115, 32, 51, 44, 49, 48, 48, 37, 32, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 101, 108, 115, 101, 32, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 49, 32, 45, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 43, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 115, 112, 101, 99, 116, 114, 117, 109, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 49, 59, 49, 59, 123, 104, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 51, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 51, 45, 45, 49, 93, 32, 45, 105, 91, 45, 51, 93, 32, 40, 36, 110, 98, 112, 59, 36, 110, 98, 112, 41, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 123, 105, 102, 40, 36, 49, 60, 48, 44, 45, 36, 49, 44, 105, 102, 40, 36, 49, 61, 61, 49, 44, 45, 49, 44, 49, 41, 41, 125, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 10, 36, 100, 120, 44, 123, 36, 100, 121, 42, 36, 100, 122, 125, 44, 49, 44, 36, 115, 112, 101, 99, 116, 114, 117, 109, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 91, 45, 49, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 36, 100, 122, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 115, 110, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 34, 64, 35, 120, 64, 35, 34, 32, 109, 97, 116, 114, 105, 120, 32, 111, 102, 32, 80, 83, 78, 82, 32, 118, 97, 108, 117, 101, 115, 44, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 109, 97, 120, 105, 109, 117, 109, 32, 118, 97, 108, 117, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 115, 101, 32, 45, 108, 111, 103, 49, 48, 32, 45, 45, 32, 123, 108, 111, 103, 49, 48, 40, 36, 49, 42, 36, 49, 41, 125, 32, 45, 42, 32, 45, 49, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 80, 83, 78, 82, 93, 32, 45, 118, 32, 43, 10, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 43, 32, 123, 49, 43, 64, 123, 45, 49, 44, 109, 125, 125, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 60, 36, 49, 32, 38, 38, 32, 105, 60, 106, 40, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 48, 44, 45, 49, 41, 44, 49, 44, 48, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 60, 36, 49, 32, 38, 38, 32, 105, 60, 106, 40, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 45, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 49, 41, 32, 38, 38, 32, 105, 60, 106, 40, 48, 44, 45, 49, 41, 44, 49, 44, 48, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 48, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 101, 49, 48, 32, 45, 103, 101, 32, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 91, 36, 62, 93, 32, 50, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 115, 100, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 102, 105, 101, 108, 100, 32, 111, 102, 32, 83, 83, 68, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 115, 32, 97, 110, 100, 32, 112, 97, 116, 99, 104, 115, 32, 117, 115, 105, 110, 103, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 49, 44, 102, 111, 117, 114, 105, 101, 114, 44, 115, 112, 97, 116, 105, 97, 108, 125, 34, 32, 109, 111, 100, 101, 44, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 45, 49, 45, 36, 60, 125, 93, 10, 45, 45, 115, 113, 114, 91, 49, 93, 32, 118, 97, 108, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 113, 114, 91, 48, 93, 32, 45, 45, 102, 91, 49, 93, 32, 49, 10, 45, 105, 102, 32, 36, 49, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 49, 93, 32, 120, 121, 122, 32, 45, 99, 111, 110, 118, 111, 108, 118, 101, 95, 102, 102, 116, 91, 48, 44, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 49, 93, 44, 36, 50, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 48, 93, 32, 45, 50, 32, 45, 43, 91, 48, 44, 49, 93, 32, 45, 43, 32, 36, 118, 97, 108, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 104, 105, 110, 110, 105, 110, 103, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 98, 105, 110, 97, 114, 121, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 116, 104, 105, 110, 110, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 42, 32, 50, 32, 45, 45, 32, 49, 10, 40, 45, 49, 44, 45, 49, 44, 45, 49, 59, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 41, 32, 40, 48, 44, 45, 49, 44, 45, 49, 59, 49, 44, 49, 44, 45, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 57, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 56, 125, 10, 98, 97, 118, 103, 61, 64, 123, 45, 57, 44, 43, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 57, 57, 57, 57, 57, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 56, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 55, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 54, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 53, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 52, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 51, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 50, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 57, 93, 32, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 54, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 45, 91, 45, 49, 48, 44, 45, 49, 93, 10, 97, 97, 118, 103, 61, 64, 123, 45, 57, 44, 43, 125, 32, 45, 105, 102, 32, 123, 36, 97, 97, 118, 103, 61, 61, 36, 98, 97, 118, 103, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 98, 97, 118, 103, 61, 36, 97, 97, 118, 103, 10, 45, 100, 111, 110, 101, 10, 45, 109, 118, 91, 45, 57, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 56, 45, 45, 49, 93, 32, 45, 43, 32, 49, 32, 45, 47, 32, 50, 32, 45, 118, 32, 43, 10, 116, 111, 110, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 36, 49, 32, 116, 111, 110, 101, 115, 32, 109, 97, 115, 107, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 61, 61, 91, 48, 93, 32, 123, 49, 43, 36, 62, 125, 32, 45, 100, 111, 110, 101, 32, 45, 61, 61, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 32, 109, 97, 112, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 45, 49, 93, 32, 36, 49, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 97, 108, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 98, 97, 108, 108, 32, 115, 112, 114, 105, 116, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 119, 104, 61, 123, 109, 105, 110, 40, 119, 44, 104, 41, 125, 10, 45, 115, 104, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 48, 44, 49, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 40, 36, 109, 119, 104, 43, 121, 45, 120, 41, 47, 40, 50, 42, 119, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 36, 109, 119, 104, 42, 48, 46, 55, 125, 44, 123, 36, 109, 119, 104, 42, 48, 46, 51, 125, 44, 123, 109, 105, 110, 40, 51, 48, 44, 36, 109, 119, 104, 42, 36, 109, 119, 104, 47, 53, 49, 50, 41, 125, 44, 123, 109, 105, 110, 40, 51, 48, 44, 36, 109, 119, 104, 42, 36, 109, 119, 104, 47, 53, 49, 50, 41, 125, 44, 48, 44, 123, 109, 105, 110, 40, 36, 109, 119, 104, 47, 54, 52, 44, 49, 41, 125, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 123, 48, 46, 48, 50, 42, 36, 109, 119, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 51, 44, 51, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 38, 38, 40, 33, 106, 40, 45, 49, 41, 124, 124, 33, 106, 40, 49, 41, 124, 124, 33, 106, 40, 48, 44, 45, 49, 41, 124, 124, 33, 106, 40, 48, 44, 49, 41, 41, 44, 105, 102, 40, 99, 61, 61, 48, 44, 36, 49, 44, 105, 102, 40, 99, 61, 61, 49, 44, 36, 50, 44, 36, 51, 41, 41, 47, 54, 44, 48, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 97, 110, 103, 108, 101, 32, 36, 53, -62, -80, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 115, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 91, 48, 93, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 114, 91, 48, 93, 32, 123, 64, 123, 48, 44, 119, 125, 47, 50, 125, 44, 49, 44, 49, 44, 50, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 48, 93, 32, 99, 121, 122, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 116, 104, 101, 116, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 10, 40, 36, 51, 44, 123, 36, 51, 43, 36, 119, 45, 49, 125, 59, 36, 51, 44, 123, 36, 51, 43, 36, 119, 45, 49, 125, 94, 36, 52, 44, 36, 52, 59, 123, 36, 52, 43, 36, 104, 45, 49, 125, 44, 123, 36, 52, 43, 36, 104, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 50, 44, 51, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 119, 42, 36, 104, 125, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 45, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 59, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 41, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 50, 44, 45, 49, 10, 45, 37, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 50, 125, 32, 45, 62, 61, 91, 45, 49, 93, 32, 36, 49, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 99, 105, 101, 49, 57, 51, 49, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 67, 73, 69, 45, 49, 57, 51, 49, 32, 99, 104, 114, 111, 109, 97, 116, 105, 99, 105, 116, 121, 32, 100, 105, 97, 103, 114, 97, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 51, 55, 59, 51, 54, 41, 10, 40, 50, 56, 48, 44, 52, 50, 48, 44, 48, 59, 49, 55, 49, 44, 56, 50, 57, 44, 48, 59, 49, 53, 56, 44, 56, 50, 48, 44, 48, 59, 49, 53, 51, 44, 56, 49, 54, 44, 48, 59, 49, 52, 55, 44, 56, 49, 49, 44, 48, 59, 49, 52, 48, 44, 56, 48, 52, 44, 48, 59, 49, 51, 50, 44, 55, 57, 52, 44, 48, 59, 49, 50, 49, 44, 55, 55, 54, 44, 48, 59, 49, 48, 54, 44, 55, 52, 55, 44, 48, 59, 56, 56, 44, 55, 48, 49, 44, 48, 59, 92, 10, 54, 53, 44, 54, 51, 51, 44, 48, 59, 52, 50, 44, 53, 51, 57, 44, 48, 59, 50, 48, 44, 52, 50, 49, 44, 48, 59, 53, 44, 50, 57, 53, 44, 48, 59, 48, 44, 49, 55, 57, 44, 48, 59, 52, 44, 49, 49, 53, 44, 48, 59, 49, 48, 44, 56, 51, 44, 48, 59, 49, 54, 44, 54, 49, 44, 48, 59, 50, 53, 44, 51, 56, 44, 48, 59, 51, 53, 44, 50, 49, 44, 48, 59, 52, 55, 44, 49, 48, 44, 48, 59, 53, 56, 44, 51, 44, 48, 59, 92, 10, 55, 49, 44, 48, 44, 48, 59, 57, 50, 44, 49, 44, 48, 59, 49, 49, 49, 44, 55, 44, 48, 59, 49, 53, 49, 44, 50, 56, 44, 48, 59, 49, 56, 57, 44, 53, 50, 44, 48, 59, 50, 50, 54, 44, 55, 57, 44, 48, 59, 50, 54, 50, 44, 49, 48, 57, 44, 48, 59, 50, 57, 56, 44, 49, 52, 49, 44, 48, 59, 51, 51, 52, 44, 49, 55, 53, 44, 48, 59, 51, 55, 48, 44, 50, 48, 57, 44, 48, 59, 52, 48, 53, 44, 50, 52, 52, 44, 48, 59, 92, 10, 52, 52, 49, 44, 50, 55, 57, 44, 48, 59, 52, 55, 53, 44, 51, 49, 51, 44, 48, 59, 53, 48, 57, 44, 51, 52, 55, 44, 48, 59, 55, 51, 49, 44, 53, 54, 56, 44, 48, 41, 10, 120, 77, 61, 55, 51, 49, 32, 121, 77, 61, 56, 50, 57, 10, 50, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 51, 44, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 123, 104, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 54, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 120, 82, 61, 54, 51, 54, 32, 121, 82, 61, 53, 48, 52, 32, 120, 71, 61, 50, 57, 55, 32, 121, 71, 61, 50, 51, 52, 32, 120, 66, 61, 49, 52, 55, 32, 121, 66, 61, 55, 55, 52, 10, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 32, 45, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 119, 45, 49, 125, 44, 48, 44, 48, 44, 123, 104, 45, 49, 125, 44, 34, 34, 50, 53, 53, 44, 48, 44, 48, 44, 34, 34, 48, 44, 50, 53, 53, 44, 48, 44, 34, 34, 48, 44, 48, 44, 50, 53, 53, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 109, 97, 120, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 51, 59, 49, 59, 36, 120, 82, 59, 36, 121, 82, 59, 45, 48, 46, 48, 49, 59, 36, 120, 71, 59, 36, 121, 71, 59, 45, 48, 46, 48, 49, 59, 36, 120, 66, 59, 36, 121, 66, 59, 45, 48, 46, 48, 49, 59, 57, 59, 48, 59, 49, 59, 50, 59, 48, 59, 48, 59, 53, 49, 49, 59, 48, 59, 48, 59, 53, 49, 49, 59, 45, 49, 50, 56, 59, 53, 49, 50, 59, 53, 49, 50, 59, 51, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 32, 40, 49, 41, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 49, 44, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 45, 42, 51, 100, 91, 48, 44, 49, 93, 32, 123, 40, 119, 45, 56, 41, 47, 36, 120, 77, 125, 44, 123, 40, 104, 45, 51, 50, 41, 47, 36, 121, 77, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 10, 45, 45, 110, 101, 113, 91, 45, 51, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 46, 53, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 10, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 50, 44, 51, 48, 44, 48, 44, 49, 44, 50, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 52, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 48, 46, 55, 53, 44, 48, 46, 56, 53, 44, 48, 44, 49, 51, 44, 49, 32, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 52, 48, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 99, 105, 114, 99, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 53, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 40, 36, 49, 44, 36, 50, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 102, 105, 108, 108, 101, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 40, 36, 49, 44, 36, 50, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 53, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 51, 44, 48, 44, 36, 123, 52, 45, 45, 49, 125, 32, 45, 118, 32, 43, 10, 103, 97, 117, 115, 115, 105, 97, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 103, 97, 117, 115, 115, 105, 97, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 46, 34, 10, 45, 118, 32, 45, 10, 117, 61, 123, 99, 111, 115, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 10, 118, 61, 123, 115, 105, 110, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 10, 100, 109, 97, 120, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 49, 41, 125, 32, 108, 49, 61, 36, 49, 32, 45, 101, 108, 115, 101, 32, 108, 49, 61, 123, 36, 123, 49, 125, 49, 48, 48, 48, 48, 42, 36, 100, 109, 97, 120, 47, 49, 48, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 50, 41, 125, 32, 108, 50, 61, 36, 50, 32, 45, 101, 108, 115, 101, 32, 108, 50, 61, 123, 36, 123, 50, 125, 49, 48, 48, 48, 48, 42, 36, 100, 109, 97, 120, 47, 49, 48, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 108, 49, 61, 123, 49, 47, 40, 50, 42, 109, 97, 120, 40, 49, 47, 51, 44, 36, 108, 49, 41, 94, 50, 41, 125, 10, 108, 50, 61, 123, 49, 47, 40, 50, 42, 109, 97, 120, 40, 49, 47, 51, 44, 36, 108, 50, 41, 94, 50, 41, 125, 10, 65, 61, 123, 36, 108, 49, 42, 36, 117, 42, 36, 117, 43, 36, 108, 50, 42, 36, 118, 42, 36, 118, 125, 10, 66, 61, 123, 40, 36, 108, 49, 45, 36, 108, 50, 41, 42, 36, 117, 42, 36, 118, 125, 10, 67, 61, 123, 36, 108, 49, 42, 36, 118, 42, 36, 118, 43, 36, 108, 50, 42, 36, 117, 42, 36, 117, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 115, 61, 123, 100, 125, 44, 123, 115, 125, 32, 45, 114, 109, 10, 40, 123, 45, 36, 119, 47, 50, 125, 44, 123, 36, 119, 47, 50, 125, 41, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 51, 10, 45, 102, 91, 45, 49, 93, 32, 34, 89, 61, 121, 45, 34, 123, 36, 104, 47, 50, 125, 59, 36, 65, 34, 42, 105, 42, 105, 43, 50, 42, 34, 36, 66, 34, 42, 105, 42, 89, 43, 34, 36, 67, 42, 34, 89, 42, 89, 34, 10, 45, 42, 32, 45, 49, 32, 45, 101, 120, 112, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 36, 100, 115, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 103, 114, 105, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 50, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 54, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 120, 121, 45, 103, 114, 105, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 44, 32, 112, 97, 116, 116, 101, 114, 110, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 112, 97, 116, 116, 101, 114, 110, 61, 36, 54, 32, 99, 111, 108, 111, 114, 61, 36, 123, 55, 45, 45, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 120, 121, 45, 103, 114, 105, 100, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 44, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 112, 97, 116, 116, 101, 114, 110, 61, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 32, 99, 111, 108, 111, 114, 61, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 120, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 32, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 121, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 120, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 32, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 121, 61, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 120, 44, 109, 97, 120, 40, 49, 44, 119, 42, 36, 49, 41, 44, 36, 49, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 62, 61, 49, 125, 10, 111, 102, 102, 115, 101, 116, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 120, 44, 36, 115, 105, 122, 101, 42, 36, 51, 44, 36, 51, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 49, 44, 123, 49, 43, 105, 110, 116, 40, 36, 119, 47, 36, 115, 105, 122, 101, 41, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 111, 102, 102, 115, 101, 116, 37, 36, 115, 105, 122, 101, 125, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 123, 36, 104, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 110, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 110, 59, 36, 110, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 49, 59, 36, 104, 59, 36, 115, 41, 32, 49, 44, 36, 104, 44, 49, 44, 36, 115, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 36, 99, 111, 108, 111, 114, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 40, 45, 49, 50, 56, 59, 49, 59, 36, 104, 59, 49, 41, 32, 49, 44, 36, 104, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 49, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 94, 48, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 115, 121, 44, 109, 97, 120, 40, 49, 44, 104, 42, 36, 50, 41, 44, 36, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 62, 61, 49, 125, 10, 111, 102, 102, 115, 101, 116, 61, 123, 105, 102, 40, 36, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 111, 121, 44, 36, 115, 105, 122, 101, 42, 36, 52, 44, 36, 52, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 49, 44, 123, 49, 43, 105, 110, 116, 40, 36, 104, 47, 36, 115, 105, 122, 101, 41, 125, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 111, 102, 102, 115, 101, 116, 37, 36, 115, 105, 122, 101, 125, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 123, 36, 119, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 110, 61, 123, 104, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 110, 59, 36, 110, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 49, 59, 36, 115, 41, 32, 36, 119, 44, 49, 44, 49, 44, 36, 115, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 36, 99, 111, 108, 111, 114, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 49, 59, 49, 41, 32, 36, 119, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 36, 112, 97, 116, 116, 101, 114, 110, 44, 49, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 110, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 94, 48, 93, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 121, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 97, 114, 98, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 48, 46, 49, 125, 44, 36, 123, 51, 61, 52, 53, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 52, 125, 44, 36, 123, 54, 61, 48, 46, 56, 125, 44, 36, 123, 55, 61, 48, 46, 54, 125, 44, 36, 123, 56, 61, 49, 46, 49, 125, 44, 36, 123, 57, 61, 48, 37, 125, 44, 36, 123, 49, 48, 61, 49, 48, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 109, 97, 114, 98, 108, 101, 32, 108, 105, 107, 101, 32, 112, 97, 116, 116, 101, 114, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 105, 109, 97, 103, 101, 32, 119, 101, 105, 103, 104, 116, 32, 36, 49, 44, 32, 112, 97, 116, 116, 101, 114, 110, 32, 119, 101, 105, 103, 104, 116, 32, 36, 50, 44, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 52, 44, 32, 34, 92, 10, 34, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 53, 44, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 36, 54, 44, 32, 97, 108, 112, 104, 97, 32, 36, 55, 44, 32, 115, 105, 103, 109, 97, 32, 36, 56, 44, 32, 97, 110, 100, 32, 99, 117, 116, 32, 40, 36, 57, 44, 36, 49, 48, 41, 46, 34, 10, 45, 118, 32, 45, 32, 115, 120, 61, 123, 36, 50, 42, 115, 105, 110, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 32, 115, 121, 61, 123, 36, 50, 42, 99, 111, 115, 40, 36, 51, 42, 112, 105, 47, 49, 56, 48, 41, 125, 32, 45, 102, 32, 115, 105, 110, 40, 120, 42, 36, 115, 120, 43, 121, 42, 36, 115, 121, 43, 105, 42, 36, 49, 41, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 57, 44, 36, 49, 48, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 118, 32, 43, 10, 109, 97, 122, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 36, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 50, 52, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 36, 49, 120, 36, 50, 32, 109, 97, 122, 101, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 114, 111, 117, 110, 100, 40, 63, 40, 36, 49, 45, 49, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 36, 50, 45, 49, 41, 41, 125, 41, 10, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 49, 53, 32, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 36, 49, 44, 36, 50, 10, 45, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 109, 97, 122, 101, 93, 10, 45, 118, 32, 43, 10, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 58, 10, 45, 100, 111, 10, 120, 61, 64, 123, 45, 50, 44, 45, 50, 125, 32, 121, 61, 64, 123, 45, 50, 44, 45, 49, 125, 10, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 120, 44, 36, 121, 44, 48, 44, 49, 10, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 48, 10, 117, 112, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 56, 34, 32, 38, 38, 32, 34, 36, 121, 62, 48, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 44, 36, 121, 45, 49, 44, 48, 44, 49, 41, 125, 32, 117, 112, 61, 36, 120, 44, 123, 36, 121, 45, 49, 125, 44, 56, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 100, 111, 119, 110, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 52, 34, 32, 38, 38, 32, 34, 36, 121, 60, 36, 50, 45, 49, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 44, 36, 121, 43, 49, 44, 48, 44, 49, 41, 125, 32, 100, 111, 119, 110, 61, 36, 120, 44, 123, 36, 121, 43, 49, 125, 44, 52, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 108, 101, 102, 116, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 50, 34, 32, 38, 38, 32, 34, 36, 120, 62, 48, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 45, 49, 44, 36, 121, 44, 48, 44, 49, 41, 125, 32, 108, 101, 102, 116, 61, 123, 36, 120, 45, 49, 125, 44, 36, 121, 44, 50, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 114, 105, 103, 104, 116, 61, 45, 49, 32, 45, 105, 102, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 34, 32, 38, 38, 32, 34, 36, 120, 60, 36, 49, 45, 49, 34, 32, 38, 38, 32, 34, 33, 105, 40, 36, 120, 43, 49, 44, 36, 121, 44, 48, 44, 49, 41, 125, 32, 114, 105, 103, 104, 116, 61, 123, 36, 120, 43, 49, 125, 44, 36, 121, 44, 49, 32, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 10, 40, 36, 117, 112, 44, 36, 100, 111, 119, 110, 44, 36, 108, 101, 102, 116, 44, 36, 114, 105, 103, 104, 116, 41, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 123, 63, 40, 52, 41, 125, 44, 48, 44, 48, 44, 50, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 105, 115, 95, 99, 97, 110, 100, 105, 100, 97, 116, 101, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 56, 125, 32, 32, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 55, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 45, 49, 41, 38, 49, 49, 125, 44, 36, 120, 44, 123, 36, 121, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 52, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 49, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 43, 49, 41, 38, 55, 125, 44, 36, 120, 44, 123, 36, 121, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 45, 50, 44, 45, 49, 125, 61, 61, 50, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 51, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 45, 49, 44, 36, 121, 41, 38, 49, 52, 125, 44, 123, 36, 120, 45, 49, 125, 44, 36, 121, 10, 45, 101, 108, 115, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 38, 49, 52, 125, 44, 36, 120, 44, 36, 121, 32, 45, 61, 91, 45, 49, 93, 32, 123, 105, 40, 36, 120, 43, 49, 44, 36, 121, 41, 38, 49, 51, 125, 44, 123, 36, 120, 43, 49, 125, 44, 36, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 122, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 121, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 104, 125, 61, 61, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 45, 114, 109, 91, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 32, 58, 10, 45, 105, 91, 48, 93, 32, 36, 49, 44, 36, 49, 32, 45, 105, 91, 49, 93, 32, 91, 48, 93, 120, 49, 53, 10, 45, 108, 105, 110, 101, 91, 56, 45, 49, 53, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 52, 45, 55, 44, 49, 50, 45, 49, 53, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 50, 45, 51, 44, 54, 45, 55, 44, 49, 48, 45, 49, 49, 44, 49, 52, 45, 49, 53, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 108, 105, 110, 101, 91, 49, 45, 49, 53, 58, 50, 93, 32, 49, 48, 48, 37, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 97, 91, 48, 45, 49, 53, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 120, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 109, 97, 122, 101, 95, 109, 97, 115, 107, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 52, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 109, 97, 115, 107, 101, 100, 32, 109, 97, 122, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 99, 101, 108, 108, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 100, 111, 10, 45, 45, 114, 97, 110, 100, 91, 48, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 91, 48, 93, 32, 40, 123, 120, 77, 125, 44, 123, 121, 77, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 64, 45, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 50, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 93, 32, 49, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 64, 45, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 95, 103, 101, 110, 101, 114, 97, 116, 101, 95, 109, 97, 122, 101, 32, 123, 119, 125, 44, 123, 104, 125, 10, 45, 119, 104, 105, 108, 101, 32, 64, 123, 48, 44, 77, 125, 10, 45, 114, 109, 91, 48, 93, 32, 45, 43, 32, 45, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 122, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 109, 97, 122, 101, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 53, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 51, 125, 41, 32, 38, 38, 32, 36, 51, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 51, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 49, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 53, 61, 55, 125, 41, 32, 38, 38, 32, 36, 53, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 54, 61, 50, 53, 54, 125, 41, 32, 38, 38, 32, 36, 54, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 97, 110, 100, 111, 109, 108, 121, 32, 112, 97, 99, 107, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 115, 44, 32, 109, 105, 110, 105, 109, 117, 109, 32, 115, 99, 97, 108, 101, 32, 36, 50, 37, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 110, 111, 44, 49, 56, 48, -62, -80, 44, 57, 48, -62, -80, 44, 97, 110, 121, 125, 34, 32, 114, 111, 116, 97, 116, 105, 111, 110, 44, 32, 115, 112, 97, 99, 105, 110, 103, 32, 36, 52, 44, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 53, 32, 97, 110, 100, 32, 36, 54, 32, 109, 97, 120, 105, 109, 117, 109, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 78, 61, 123, 64, 35, 45, 49, 125, 32, 105, 115, 95, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 123, 109, 97, 120, 40, 50, 44, 64, 123, 36, 62, 44, 115, 125, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 36, 62, 42, 49, 48, 48, 47, 36, 49, 125, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 10, 114, 97, 116, 105, 111, 61, 123, 105, 102, 40, 36, 49, 62, 49, 44, 36, 50, 43, 40, 49, 48, 48, 45, 36, 50, 41, 42, 36, 60, 47, 40, 36, 49, 45, 49, 41, 44, 49, 48, 48, 41, 125, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 45, 108, 91, 123, 49, 43, 36, 62, 125, 93, 10, 119, 61, 123, 119, 42, 36, 114, 97, 116, 105, 111, 125, 32, 104, 61, 123, 104, 42, 36, 114, 97, 116, 105, 111, 125, 10, 45, 105, 102, 32, 123, 36, 119, 60, 49, 124, 124, 36, 104, 60, 49, 125, 32, 45, 114, 109, 10, 45, 101, 108, 115, 101, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 97, 114, 101, 97, 123, 49, 43, 36, 62, 125, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 108, 91, 48, 44, 123, 36, 78, 43, 49, 125, 45, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 10, 105, 110, 100, 61, 123, 49, 43, 40, 36, 62, 37, 36, 78, 41, 125, 32, 97, 114, 101, 97, 61, 36, 123, 97, 114, 101, 97, 36, 105, 110, 100, 125, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 91, 36, 105, 110, 100, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 41, 42, 49, 56, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 51, 41, 41, 42, 57, 48, 125, 10, 45, 101, 108, 115, 101, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 36, 105, 110, 100, 93, 32, 123, 63, 42, 51, 54, 48, 125, 32, 45, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 97, 114, 101, 97, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 36, 52, 62, 49, 125, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 123, 50, 42, 36, 52, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 60, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 123, 45, 50, 42, 36, 52, 43, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 105, 102, 32, 36, 105, 115, 95, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 49, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 64, 123, 36, 105, 110, 100, 44, 109, 97, 120, 40, 119, 44, 104, 41, 125, 41, 125, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 108, 91, 45, 49, 93, 10, 45, 115, 51, 100, 32, 45, 47, 91, 49, 93, 32, 36, 78, 32, 45, 114, 111, 117, 110, 100, 91, 49, 93, 32, 45, 109, 97, 120, 91, 49, 93, 32, 49, 32, 110, 61, 64, 123, 49, 44, 48, 125, 10, 45, 114, 91, 50, 93, 32, 51, 44, 123, 64, 123, 50, 44, 104, 125, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 105, 91, 50, 93, 32, 49, 44, 64, 123, 50, 44, 104, 125, 32, 45, 114, 97, 110, 100, 91, 50, 93, 32, 48, 44, 49, 32, 45, 97, 91, 50, 44, 51, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 50, 93, 32, 43, 44, 121, 32, 45, 122, 91, 50, 93, 32, 49, 44, 51, 32, 45, 114, 91, 50, 93, 32, 51, 44, 36, 110, 44, 49, 44, 49, 32, 45, 121, 91, 50, 93, 32, 121, 10, 45, 114, 91, 51, 93, 32, 49, 44, 123, 50, 42, 36, 110, 125, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 52, 93, 32, 49, 44, 123, 51, 42, 36, 110, 125, 44, 49, 44, 49, 44, 48, 32, 45, 114, 91, 53, 93, 32, 49, 44, 36, 110, 44, 49, 44, 49, 44, 48, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 105, 102, 32, 36, 110, 10, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 91, 45, 54, 93, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 52, 44, 123, 36, 110, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 91, 45, 51, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 54, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 49, 41, 41, 42, 49, 56, 48, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 49, 56, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 52, 44, 123, 36, 110, 45, 50, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 52, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 52, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 91, 45, 53, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 54, 93, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 51, 41, 41, 42, 57, 48, 125, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 51, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 57, 48, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 52, 125, 32, 52, 44, 123, 36, 110, 45, 52, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 105, 102, 32, 123, 36, 110, 62, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 50, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 51, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 56, 93, 32, 49, 48, 48, 37, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 62, 52, 125, 32, 91, 45, 57, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 121, 91, 123, 36, 78, 43, 51, 125, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 123, 36, 78, 43, 51, 125, 45, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 51, 93, 10, 91, 48, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 36, 97, 114, 101, 97, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 64, 123, 45, 50, 44, 115, 45, 50, 125, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 105, 77, 125, 32, 45, 106, 91, 48, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 62, 36, 53, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 108, 115, 101, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 32, 45, 107, 91, 48, 93, 32, 45, 118, 32, 43, 10, 112, 105, 101, 99, 104, 97, 114, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 112, 105, 101, 32, 99, 104, 97, 114, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 108, 97, 98, 101, 108, 32, 104, 101, 105, 103, 104, 116, 32, 36, 49, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 50, 44, 36, 51, 44, 36, 52, 41, 46, 34, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 10, 40, 36, 123, 54, 45, 45, 49, 58, 53, 125, 41, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 91, 45, 49, 93, 10, 116, 104, 101, 116, 97, 61, 48, 10, 45, 105, 102, 32, 123, 119, 62, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 120, 101, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 121, 101, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 45, 108, 105, 110, 101, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 120, 101, 44, 36, 121, 101, 10, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 50, 42, 112, 105, 42, 105, 40, 36, 62, 41, 125, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 104, 101, 116, 97, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 105, 102, 32, 123, 105, 40, 36, 62, 41, 125, 10, 110, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 50, 42, 112, 105, 42, 105, 40, 36, 62, 41, 125, 10, 120, 99, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 48, 46, 53, 42, 99, 111, 115, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 121, 99, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 48, 46, 53, 42, 115, 105, 110, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 120, 102, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 48, 46, 56, 42, 99, 111, 115, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 121, 102, 61, 123, 48, 46, 53, 42, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 48, 46, 56, 42, 115, 105, 110, 40, 48, 46, 53, 42, 40, 36, 110, 116, 104, 101, 116, 97, 43, 36, 116, 104, 101, 116, 97, 41, 41, 41, 125, 10, 45, 102, 108, 111, 111, 100, 91, 45, 50, 93, 32, 36, 120, 102, 44, 36, 121, 102, 44, 48, 44, 48, 44, 48, 44, 49, 44, 36, 123, 97, 114, 103, 123, 55, 43, 53, 42, 36, 62, 125, 125, 44, 36, 123, 97, 114, 103, 123, 56, 43, 53, 42, 36, 62, 125, 125, 44, 36, 123, 97, 114, 103, 123, 57, 43, 53, 42, 36, 62, 125, 125, 10, 45, 105, 102, 32, 123, 97, 98, 115, 40, 36, 110, 116, 104, 101, 116, 97, 45, 36, 116, 104, 101, 116, 97, 41, 62, 48, 46, 49, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 123, 97, 114, 103, 123, 53, 43, 53, 42, 36, 62, 125, 125, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 49, 10, 40, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 106, 91, 45, 52, 93, 32, 91, 45, 49, 93, 44, 123, 36, 120, 99, 45, 119, 47, 50, 125, 44, 123, 36, 121, 99, 45, 104, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 116, 104, 101, 116, 97, 61, 36, 110, 116, 104, 101, 116, 97, 10, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 48, 125, 44, 36, 123, 55, 61, 49, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 112, 111, 108, 107, 97, 32, 100, 111, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 105, 97, 109, 101, 116, 101, 114, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 115, 104, 105, 102, 116, 32, 40, 36, 52, 44, 36, 53, 41, 44, 32, 97, 108, 105, 97, 115, 105, 110, 103, 32, 36, 54, 32, 97, 110, 100, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 32, 116, 104, 101, 116, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 32, 99, 116, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 115, 116, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 109, 105, 100, 49, 61, 123, 36, 49, 47, 50, 125, 32, 109, 105, 100, 50, 61, 123, 36, 50, 47, 50, 125, 10, 45, 105, 91, 48, 93, 32, 40, 36, 123, 57, 45, 45, 49, 125, 41, 32, 45, 121, 91, 48, 93, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 87, 72, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 34, 120, 110, 32, 61, 32, 49, 48, 48, 42, 120, 47, 34, 36, 87, 72, 34, 45, 36, 51, 59, 32, 121, 110, 32, 61, 32, 49, 48, 48, 42, 121, 47, 34, 36, 87, 72, 34, 45, 36, 52, 59, 32, 92, 10, 120, 114, 32, 61, 32, 120, 110, 42, 34, 36, 99, 116, 34, 45, 121, 110, 42, 34, 36, 115, 116, 34, 59, 32, 121, 114, 32, 61, 32, 120, 110, 42, 34, 36, 115, 116, 34, 43, 121, 110, 42, 34, 36, 99, 116, 34, 59, 32, 92, 10, 120, 99, 32, 61, 32, 120, 114, 37, 36, 50, 45, 34, 36, 109, 105, 100, 50, 34, 59, 32, 121, 99, 32, 61, 32, 121, 114, 37, 36, 50, 45, 34, 36, 109, 105, 100, 50, 34, 59, 32, 92, 10, 34, 36, 109, 105, 100, 49, 34, 45, 115, 113, 114, 116, 40, 120, 99, 42, 120, 99, 43, 121, 99, 42, 121, 99, 41, 34, 10, 45, 42, 91, 45, 49, 93, 32, 36, 54, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 56, 32, 40, 36, 123, 57, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 53, 34, 39, 125, 41, 32, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 61, 123, 64, 123, 45, 49, 44, 48, 45, 49, 125, 39, 61, 61, 39, 123, 39, 48, 120, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 97, 116, 116, 101, 114, 110, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 116, 111, 32, 40, 36, 51, 44, 36, 52, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 114, 97, 119, 32, 102, 105, 108, 108, 101, 100, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 116, 111, 32, 40, 36, 51, 44, 36, 52, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 54, 45, 45, 49, 125, 41, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 49, 44, 36, 52, 44, 36, 123, 53, 45, 45, 49, 125, 32, 45, 118, 32, 43, 10, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 37, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 114, 111, 114, 115, 99, 104, 97, 99, 104, 45, 108, 105, 107, 101, 32, 105, 110, 107, 98, 108, 111, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 50, 44, 110, 111, 44, 120, 44, 121, 44, 120, 121, 125, 34, 45, 109, 105, 114, 114, 111, 114, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 10, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 10, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 119, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 105, 102, 32, 123, 36, 119, 37, 50, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 104, 61, 123, 104, 125, 10, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 105, 102, 32, 123, 36, 104, 37, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 122, 32, 48, 44, 48, 44, 123, 119, 47, 50, 45, 49, 125, 44, 123, 104, 47, 50, 45, 49, 125, 32, 45, 114, 97, 110, 100, 32, 45, 49, 44, 49, 32, 45, 98, 32, 36, 49, 32, 45, 103, 101, 32, 48, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 105, 102, 32, 123, 36, 119, 37, 50, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 105, 102, 32, 123, 36, 104, 37, 50, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 55, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 48, 48, 125, 44, 36, 123, 54, 61, 49, 48, 48, 125, 44, 36, 123, 55, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 111, 102, 32, 100, 101, 103, 114, 101, 101, 32, 36, 49, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 36, 123, 50, 45, 55, 125, 44, 36, 49, 32, 32, 45, 118, 32, 43, 10, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 10, 45, 105, 102, 32, 123, 36, 55, 60, 61, 48, 125, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 49, 44, 50, 53, 53, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 36, 49, 44, 36, 50, 44, 123, 40, 36, 49, 43, 36, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 123, 40, 36, 49, 43, 36, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 52, 41, 47, 50, 125, 44, 36, 51, 44, 36, 52, 44, 123, 40, 36, 51, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 52, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 123, 40, 36, 49, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 54, 41, 47, 50, 125, 44, 36, 53, 44, 36, 54, 44, 123, 40, 36, 51, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 52, 43, 36, 54, 41, 47, 50, 125, 44, 123, 36, 55, 45, 49, 125, 10, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 52, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 55, 48, 125, 44, 36, 123, 52, 61, 56, 48, 125, 44, 36, 123, 53, 61, 55, 48, 125, 44, 36, 123, 54, 61, 53, 48, 125, 44, 36, 123, 55, 61, 49, 48, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 54, 44, 36, 55, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 54, 44, 36, 55, 44, 36, 52, 44, 36, 53, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 49, 44, 36, 52, 44, 36, 53, 44, 36, 50, 44, 36, 51, 44, 36, 123, 56, 45, 45, 49, 125, 10, 45, 118, 32, 43, 10, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 10, 120, 48, 61, 123, 36, 50, 43, 40, 36, 52, 45, 36, 50, 41, 47, 51, 125, 32, 121, 48, 61, 123, 36, 51, 43, 40, 36, 53, 45, 36, 51, 41, 47, 51, 125, 10, 120, 49, 61, 123, 36, 50, 43, 50, 42, 40, 36, 52, 45, 36, 50, 41, 47, 51, 125, 32, 121, 49, 61, 123, 36, 51, 43, 50, 42, 40, 36, 53, 45, 36, 51, 41, 47, 51, 125, 10, 99, 61, 123, 99, 111, 115, 40, 45, 112, 105, 47, 51, 41, 125, 32, 115, 61, 123, 115, 105, 110, 40, 45, 112, 105, 47, 51, 41, 125, 10, 120, 50, 61, 123, 36, 120, 48, 43, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 36, 99, 45, 40, 36, 121, 49, 45, 36, 121, 48, 41, 42, 36, 115, 125, 32, 121, 50, 61, 123, 36, 121, 48, 43, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 36, 115, 43, 40, 36, 121, 49, 45, 36, 121, 48, 41, 42, 36, 99, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 120, 48, 37, 44, 36, 121, 48, 37, 44, 36, 120, 49, 37, 44, 36, 121, 49, 37, 44, 36, 120, 50, 37, 44, 36, 121, 50, 37, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 105, 102, 32, 36, 49, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 50, 44, 36, 51, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 123, 36, 49, 45, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 52, 44, 36, 53, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 115, 112, 105, 114, 97, 108, 98, 119, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 40, 115, 113, 117, 97, 114, 101, 100, 41, 32, 98, 108, 97, 99, 107, 32, 97, 110, 100, 32, 119, 104, 105, 116, 101, 32, 115, 112, 105, 114, 97, 108, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 102, 32, 34, 114, 61, 109, 105, 110, 40, 120, 44, 121, 44, 119, 45, 49, 45, 120, 44, 104, 45, 49, 45, 121, 41, 59, 32, 50, 42, 114, 42, 40, 119, 43, 104, 45, 50, 42, 114, 45, 49, 41, 32, 43, 32, 105, 102, 40, 109, 105, 110, 40, 120, 44, 104, 45, 49, 45, 121, 41, 62, 61, 109, 105, 110, 40, 119, 45, 49, 45, 120, 44, 121, 41, 44, 120, 43, 121, 44, 50, 42, 40, 119, 43, 104, 45, 50, 45, 50, 42, 114, 41, 45, 120, 45, 121, 41, 34, 10, 45, 118, 32, 43, 10, 115, 112, 108, 105, 110, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 57, 61, 50, 53, 54, 125, 44, 36, 123, 49, 48, 61, 49, 125, 44, 36, 123, 49, 49, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 115, 112, 108, 105, 110, 101, 32, 102, 114, 111, 109, 32, 40, 36, 49, 44, 36, 50, 41, 32, 91, 36, 51, 44, 36, 52, 93, 32, 116, 111, 32, 40, 36, 53, 44, 36, 54, 41, 32, 91, 36, 55, 44, 36, 56, 93, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 57, 32, 118, 101, 114, 116, 105, 99, 101, 115, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 48, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 49, 49, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 49, 34, 125, 44, 36, 49, 42, 40, 119, 45, 49, 41, 44, 36, 49, 41, 125, 10, 121, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 36, 50, 42, 40, 104, 45, 49, 41, 44, 36, 50, 41, 125, 10, 117, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 51, 34, 125, 44, 36, 51, 42, 40, 119, 45, 49, 41, 44, 36, 51, 41, 125, 10, 118, 48, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 52, 34, 125, 44, 36, 52, 42, 40, 104, 45, 49, 41, 44, 36, 52, 41, 125, 10, 120, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 53, 34, 125, 44, 36, 53, 42, 40, 119, 45, 49, 41, 44, 36, 53, 41, 125, 10, 121, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 54, 34, 125, 44, 36, 54, 42, 40, 104, 45, 49, 41, 44, 36, 54, 41, 125, 10, 117, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 55, 34, 125, 44, 36, 55, 42, 40, 119, 45, 49, 41, 44, 36, 55, 41, 125, 10, 118, 49, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 56, 34, 125, 44, 36, 56, 42, 40, 104, 45, 49, 41, 44, 36, 56, 41, 125, 10, 45, 115, 112, 108, 105, 110, 101, 51, 100, 32, 36, 120, 48, 44, 36, 121, 48, 44, 48, 44, 36, 117, 48, 44, 36, 118, 48, 44, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 48, 44, 36, 117, 49, 44, 36, 118, 49, 44, 48, 44, 36, 57, 10, 45, 115, 104, 91, 45, 49, 93, 32, 56, 44, 123, 56, 43, 51, 42, 36, 57, 45, 49, 125, 44, 48, 44, 48, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 108, 51, 100, 91, 49, 93, 32, 36, 123, 49, 49, 45, 45, 49, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 49, 48, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 49, 51, 125, 44, 36, 123, 53, 61, 50, 125, 44, 36, 123, 54, 61, 49, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 44, 36, 123, 56, 61, 36, 45, 49, 125, 44, 36, 123, 57, 61, 36, 45, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 111, 117, 116, 108, 105, 110, 101, 100, 32, 116, 101, 120, 116, 32, 39, 36, 49, 39, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 50, 44, 36, 51, 41, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 111, 110, 116, 32, 104, 101, 105, 103, 104, 116, 32, 36, 52, 44, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 53, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 54, 32, 97, 110, 100, 32, 99, 111, 108, 111, 114, 32, 36, 123, 55, 45, 45, 49, 125, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 36, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 52, 44, 49, 44, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 123, 49, 43, 36, 53, 125, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 123, 50, 42, 36, 53, 43, 49, 125, 10, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 32, 45, 109, 97, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 105, 102, 32, 64, 123, 36, 62, 44, 119, 125, 32, 45, 106, 91, 36, 62, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 44, 48, 44, 48, 44, 36, 54, 44, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 36, 62, 93, 32, 45, 105, 91, 36, 62, 93, 32, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 116, 32, 34, 36, 49, 34, 44, 36, 123, 50, 45, 52, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 116, 114, 105, 97, 110, 103, 108, 101, 95, 115, 104, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 41, 45, 40, 36, 51, 44, 36, 52, 41, 45, 40, 36, 53, 44, 36, 54, 41, 32, 119, 105, 116, 104, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 40, 36, 49, 44, 36, 50, 44, 49, 59, 36, 51, 44, 36, 52, 44, 49, 59, 36, 53, 44, 36, 54, 44, 49, 41, 32, 40, 36, 123, 55, 45, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 47, 51, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 94, 45, 49, 93, 32, 51, 44, 36, 123, 49, 45, 54, 125, 44, 49, 44, 45, 54, 53, 53, 51, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 10, 97, 61, 123, 105, 40, 48, 44, 48, 44, 48, 44, 36, 62, 41, 125, 32, 98, 61, 123, 105, 40, 48, 44, 49, 44, 48, 44, 36, 62, 41, 125, 32, 99, 61, 123, 105, 40, 48, 44, 50, 44, 48, 44, 36, 62, 41, 125, 10, 45, 115, 104, 91, 48, 93, 32, 36, 62, 44, 36, 62, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 36, 97, 42, 120, 43, 36, 98, 42, 121, 43, 36, 99, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 116, 114, 117, 99, 104, 101, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 51, 50, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 99, 117, 114, 118, 101, 100, 44, 115, 116, 114, 97, 105, 103, 104, 116, 125, 34, 32, 116, 114, 117, 99, 104, 101, 116, 32, 112, 97, 116, 116, 101, 114, 110, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 97, 110, 100, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 32, 45, 114, 109, 10, 36, 49, 44, 36, 49, 32, 45, 61, 32, 49, 44, 48, 44, 48, 32, 45, 61, 32, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 49, 44, 123, 49, 43, 36, 51, 125, 32, 77, 61, 123, 105, 110, 116, 40, 105, 77, 47, 50, 41, 125, 10, 45, 116, 50, 32, 123, 36, 77, 45, 36, 50, 47, 50, 45, 40, 36, 49, 37, 50, 41, 125, 44, 123, 36, 77, 43, 36, 50, 47, 50, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 120, 10, 123, 114, 111, 117, 110, 100, 40, 36, 119, 47, 36, 49, 44, 49, 44, 49, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 36, 104, 47, 36, 49, 44, 49, 44, 49, 41, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 36, 49, 125, 44, 123, 104, 42, 36, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 40, 48, 44, 123, 36, 49, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 51, 32, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 32, 53, 48, 37, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 48, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 115, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 51, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 110, 100, 101, 114, 32, 102, 114, 97, 99, 116, 97, 108, 32, 110, 111, 105, 115, 101, 32, 111, 114, 32, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 111, 99, 116, 97, 118, 101, 115, 32, 36, 50, 44, 32, 100, 97, 109, 112, 105, 110, 103, 32, 112, 101, 114, 32, 111, 99, 116, 97, 118, 101, 32, 36, 51, 44, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 36, 52, 32, 97, 110, 100, 32, 109, 111, 100, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 124, 124, 36, 53, 61, 61, 49, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 49, 44, 97, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 124, 124, 36, 53, 61, 61, 52, 125, 32, 45, 94, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 94, 91, 45, 49, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 10, 45, 45, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 123, 36, 49, 47, 50, 94, 36, 62, 125, 44, 48, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 32, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 49, 44, 97, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 94, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 94, 91, 45, 49, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 43, 91, 45, 50, 45, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 109, 118, 91, 45, 50, 93, 32, 50, 32, 45, 45, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 121, 105, 110, 121, 97, 110, 103, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 121, 105, 110, 45, 121, 97, 110, 103, 32, 115, 121, 109, 98, 111, 108, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 102, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 61, 123, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 114, 61, 123, 114, 111, 117, 110, 100, 40, 48, 46, 57, 53, 42, 109, 105, 110, 40, 119, 44, 104, 41, 47, 52, 41, 125, 10, 45, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 50, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 45, 36, 114, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 50, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 43, 36, 114, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 123, 119, 47, 50, 45, 36, 114, 125, 44, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 123, 119, 47, 50, 43, 36, 114, 125, 44, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 50, 42, 36, 114, 125, 44, 123, 50, 42, 36, 114, 125, 44, 48, 44, 49, 44, 49, 10, 45, 42, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 45, 36, 114, 125, 44, 123, 36, 114, 47, 51, 125, 44, 123, 36, 114, 47, 51, 125, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 123, 104, 47, 50, 43, 36, 114, 125, 44, 123, 36, 114, 47, 51, 125, 44, 123, 36, 114, 47, 51, 125, 44, 48, 44, 49, 44, 50, 10, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 115, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 114, 97, 110, 115, 112, 111, 115, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 121, 120, 122, 99, 32, 45, 118, 32, 43, 10, 97, 110, 105, 109, 97, 116, 101, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 52, 48, 125, 44, 36, 123, 50, 61, 52, 56, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 34, 36, 123, 55, 61, 34, 34, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 54, 61, 49, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 105, 110, 32, 97, 32, 36, 49, 120, 36, 50, 32, 119, 105, 110, 100, 111, 119, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 118, 101, 108, 111, 99, 105, 116, 105, 101, 115, 32, 40, 36, 51, 44, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 108, 91, 36, 62, 93, 10, 45, 110, 51, 100, 32, 45, 42, 51, 100, 32, 123, 36, 54, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 49, 46, 53, 125, 32, 45, 99, 51, 100, 10, 97, 120, 61, 48, 32, 97, 121, 61, 48, 32, 97, 122, 61, 48, 32, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 45, 45, 114, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 97, 120, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 97, 121, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 97, 122, 10, 97, 120, 61, 123, 36, 97, 120, 43, 36, 51, 125, 32, 97, 121, 61, 123, 36, 97, 121, 43, 36, 52, 125, 32, 97, 122, 61, 123, 36, 97, 122, 43, 36, 53, 125, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 55, 34, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 54, 52, 44, 54, 52, 44, 54, 52, 44, 48, 10, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 55, 34, 44, 36, 62, 44, 36, 102, 114, 97, 109, 101, 125, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 54, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 64, 123, 48, 44, 110, 125, 32, 45, 119, 97, 105, 116, 32, 50, 48, 32, 45, 107, 91, 48, 93, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 32, 45, 119, 32, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 99, 97, 109, 101, 114, 97, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 45, 49, 125, 44, 36, 123, 57, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 51, 100, 32, 99, 97, 109, 101, 114, 97, 32, 109, 97, 116, 114, 105, 120, 32, 116, 111, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 97, 109, 101, 114, 97, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 44, 32, 116, 97, 114, 103, 101, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 32, 97, 110, 100, 32, 117, 112, 45, 118, 101, 99, 116, 111, 114, 32, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 36, 52, 45, 36, 49, 125, 94, 123, 36, 53, 45, 36, 50, 125, 94, 123, 36, 54, 45, 36, 51, 125, 41, 10, 40, 36, 55, 94, 36, 56, 94, 36, 57, 41, 10, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 99, 114, 111, 115, 115, 51, 100, 32, 64, 45, 50, 44, 64, 45, 49, 10, 45, 95, 99, 114, 111, 115, 115, 51, 100, 32, 64, 45, 49, 44, 64, 45, 51, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 51, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 51, 10, 45, 45, 51, 100, 91, 94, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 91, 94, 45, 49, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 51, 100, 32, 48, 44, 48, 44, 56, 48, 48, 10, 45, 118, 32, 43, 10, 95, 99, 114, 111, 115, 115, 51, 100, 32, 58, 10, 40, 123, 36, 50, 42, 36, 54, 45, 36, 51, 42, 36, 53, 125, 59, 123, 36, 51, 42, 36, 52, 45, 36, 49, 42, 36, 54, 125, 59, 123, 36, 49, 42, 36, 53, 45, 36, 50, 42, 36, 52, 125, 41, 10, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 51, 100, 32, 112, 111, 115, 101, 32, 109, 97, 116, 114, 105, 120, 32, 91, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 59, 32, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 59, 32, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 32, 93, 32, 116, 111, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 51, 100, 125, 10, 45, 115, 51, 100, 32, 45, 114, 91, 50, 93, 32, 51, 44, 64, 123, 50, 44, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 105, 91, 51, 93, 32, 49, 44, 64, 123, 50, 44, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 50, 44, 51, 93, 32, 120, 10, 45, 105, 91, 51, 93, 32, 40, 36, 49, 44, 36, 53, 44, 36, 57, 59, 36, 50, 44, 36, 54, 44, 36, 49, 48, 59, 36, 51, 44, 36, 55, 44, 36, 49, 49, 59, 36, 52, 44, 36, 56, 44, 36, 49, 50, 41, 32, 45, 42, 42, 91, 50, 44, 51, 93, 10, 45, 114, 91, 50, 93, 32, 49, 44, 64, 123, 50, 44, 51, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 32, 34, 73, 109, 97, 103, 101, 32, 91, 34, 123, 64, 35, 45, 36, 62, 45, 49, 125, 34, 93, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 97, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 120, 101, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 34, 36, 123, 53, 61, 88, 125, 44, 36, 123, 54, 61, 89, 125, 44, 36, 123, 55, 61, 90, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 97, 120, 101, 115, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 109, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 44, 97, 98, 115, 40, 36, 51, 41, 41, 47, 52, 48, 125, 32, 109, 50, 61, 123, 50, 42, 36, 109, 125, 32, 109, 51, 61, 123, 49, 46, 50, 42, 36, 109, 50, 125, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 79, 34, 44, 36, 52, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 36, 109, 51, 44, 36, 109, 51, 44, 36, 109, 51, 10, 45, 105, 102, 32, 36, 49, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 45, 36, 109, 50, 125, 44, 48, 44, 48, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 53, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 109, 51, 125, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 36, 50, 44, 48, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 123, 36, 50, 45, 36, 109, 50, 125, 44, 48, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 54, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 123, 36, 50, 43, 36, 109, 51, 125, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 10, 45, 108, 105, 110, 101, 51, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 51, 10, 45, 99, 111, 110, 101, 51, 100, 32, 36, 109, 44, 123, 50, 42, 36, 109, 125, 44, 49, 54, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 36, 51, 45, 36, 109, 50, 125, 10, 45, 95, 97, 120, 101, 115, 51, 100, 32, 34, 36, 55, 34, 44, 36, 52, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 36, 51, 43, 36, 109, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 43, 51, 100, 32, 45, 110, 109, 32, 91, 51, 100, 92, 32, 97, 120, 101, 115, 93, 10, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 95, 97, 120, 101, 115, 51, 100, 32, 58, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 50, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 105, 91, 45, 51, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 49, 59, 49, 59, 48, 59, 48, 59, 48, 59, 49, 59, 48, 59, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 32, 45, 121, 91, 45, 51, 44, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 10, 98, 111, 120, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 10, 49, 44, 56, 54, 44, 49, 44, 49, 44, 92, 10, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 56, 44, 54, 44, 92, 10, 48, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 44, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 36, 50, 44, 48, 44, 92, 10, 48, 44, 48, 44, 36, 51, 44, 36, 49, 44, 48, 44, 36, 51, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 48, 44, 36, 50, 44, 36, 51, 44, 92, 10, 52, 44, 48, 44, 51, 44, 50, 44, 49, 44, 52, 44, 52, 44, 53, 44, 54, 44, 55, 44, 52, 44, 48, 44, 49, 44, 53, 44, 52, 44, 52, 44, 51, 44, 55, 44, 54, 44, 50, 44, 52, 44, 48, 44, 52, 44, 55, 44, 51, 44, 52, 44, 49, 44, 50, 44, 54, 44, 53, 44, 92, 10, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 98, 111, 120, 93, 10, 45, 118, 32, 43, 10, 99, 51, 100, 32, 58, 10, 45, 95, 99, 101, 110, 116, 101, 114, 51, 100, 10, 99, 101, 110, 116, 101, 114, 51, 100, 32, 58, 10, 45, 95, 36, 48, 10, 95, 99, 101, 110, 116, 101, 114, 51, 100, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 101, 110, 116, 101, 114, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 61, 123, 105, 40, 48, 44, 54, 41, 125, 10, 45, 105, 102, 32, 123, 36, 110, 62, 48, 125, 10, 45, 115, 104, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 10, 45, 45, 91, 45, 51, 93, 32, 64, 123, 45, 51, 44, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 32, 45, 45, 91, 45, 50, 93, 32, 64, 123, 45, 50, 44, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 32, 45, 45, 91, 45, 49, 93, 32, 123, 40, 105, 77, 43, 105, 109, 41, 47, 50, 125, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 105, 114, 99, 108, 101, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 32, 97, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 114, 61, 123, 36, 52, 47, 115, 113, 114, 116, 40, 51, 41, 125, 10, 49, 44, 50, 52, 44, 49, 44, 49, 44, 92, 10, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 50, 44, 49, 44, 92, 10, 123, 36, 49, 45, 36, 114, 125, 44, 123, 36, 50, 45, 36, 114, 125, 44, 123, 36, 51, 45, 36, 114, 125, 44, 92, 10, 123, 36, 49, 43, 36, 114, 125, 44, 123, 36, 50, 43, 36, 114, 125, 44, 123, 36, 51, 43, 36, 114, 125, 44, 92, 10, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 105, 114, 99, 108, 101, 93, 10, 45, 118, 32, 43, 10, 99, 105, 114, 99, 108, 101, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 125, 62, 61, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 32, 116, 111, 32, 115, 101, 116, 115, 32, 111, 102, 32, 51, 100, 32, 99, 105, 114, 99, 108, 101, 115, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 118, 61, 64, 123, 45, 49, 44, 54, 125, 32, 110, 98, 112, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 105, 102, 32, 123, 36, 110, 98, 118, 38, 38, 36, 110, 98, 112, 125, 10, 45, 45, 51, 100, 32, 123, 36, 49, 47, 50, 125, 44, 48, 44, 48, 32, 45, 45, 43, 51, 100, 32, 36, 49, 44, 48, 44, 48, 32, 45, 43, 51, 100, 32, 110, 98, 112, 50, 61, 64, 123, 45, 49, 44, 55, 125, 10, 45, 115, 51, 100, 32, 45, 61, 91, 49, 93, 32, 36, 110, 98, 112, 44, 48, 44, 49, 10, 45, 114, 91, 51, 93, 32, 50, 44, 36, 110, 98, 112, 50, 44, 49, 44, 49, 44, 45, 49, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 51, 93, 32, 49, 44, 49, 32, 45, 115, 91, 51, 93, 32, 121, 44, 50, 32, 45, 105, 91, 51, 93, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 53, 32, 45, 97, 91, 51, 45, 53, 93, 32, 120, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 51, 93, 32, 48, 44, 53, 32, 45, 121, 91, 51, 93, 32, 121, 10, 45, 114, 111, 119, 115, 91, 52, 93, 32, 48, 44, 123, 51, 42, 36, 110, 98, 112, 45, 49, 125, 32, 45, 114, 111, 119, 115, 91, 53, 93, 32, 48, 44, 123, 36, 110, 98, 112, 45, 49, 125, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 82, 71, 66, 45, 99, 111, 108, 111, 114, 32, 99, 117, 98, 101, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 56, 59, 54, 41, 10, 40, 48, 59, 48, 59, 48, 59, 92, 10, 50, 53, 53, 59, 48, 59, 48, 59, 92, 10, 50, 53, 53, 59, 50, 53, 53, 59, 48, 59, 92, 10, 48, 59, 50, 53, 53, 59, 48, 59, 92, 10, 48, 59, 48, 59, 50, 53, 53, 59, 92, 10, 50, 53, 53, 59, 48, 59, 50, 53, 53, 59, 92, 10, 50, 53, 53, 59, 50, 53, 53, 59, 50, 53, 53, 59, 92, 10, 48, 59, 50, 53, 53, 59, 50, 53, 53, 41, 10, 40, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 59, 92, 10, 49, 50, 59, 49, 59, 50, 59, 54, 59, 53, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 59, 92, 10, 49, 50, 59, 48, 59, 52, 59, 55, 59, 51, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 52, 59, 53, 59, 54, 59, 55, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 48, 59, 49, 59, 53, 59, 52, 59, 48, 59, 48, 59, 54, 51, 59, 48, 59, 54, 51, 59, 54, 51, 59, 48, 59, 54, 51, 59, 92, 10, 49, 50, 59, 51, 59, 55, 59, 54, 59, 50, 59, 48, 59, 48, 59, 48, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 54, 51, 59, 48, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 48, 44, 48, 41, 10, 40, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 41, 10, 40, 48, 44, 48, 59, 48, 44, 48, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 48, 44, 48, 59, 48, 44, 48, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 40, 48, 44, 50, 53, 53, 59, 48, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 59, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 59, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 114, 91, 45, 54, 45, 45, 49, 93, 32, 54, 52, 44, 54, 52, 44, 49, 44, 51, 44, 51, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 105, 91, 45, 55, 45, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 54, 52, 59, 54, 52, 59, 51, 41, 10, 40, 49, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 91, 45, 49, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 111, 108, 111, 114, 99, 117, 98, 101, 93, 10, 45, 118, 32, 43, 10, 99, 111, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 111, 110, 101, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 41, 10, 40, 123, 36, 51, 43, 50, 125, 59, 123, 50, 42, 36, 51, 125, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 36, 50, 41, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 51, 45, 49, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 48, 32, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 52, 93, 32, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 49, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 120, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 111, 110, 101, 93, 10, 45, 118, 32, 43, 10, 99, 117, 112, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 50, 56, 125, 62, 48, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 117, 112, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 10, 49, 48, 48, 44, 50, 48, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 37, 44, 48, 37, 44, 52, 48, 37, 44, 52, 48, 37, 44, 48, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 51, 53, 37, 44, 51, 53, 37, 44, 48, 44, 49, 44, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 48, 44, 52, 53, 37, 44, 56, 37, 44, 52, 53, 37, 44, 50, 48, 37, 44, 57, 48, 37, 44, 48, 44, 57, 48, 37, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 48, 37, 44, 49, 48, 48, 37, 44, 51, 48, 37, 44, 49, 48, 37, 44, 48, 44, 49, 44, 49, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 49, 37, 10, 45, 108, 97, 116, 104, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 117, 112, 93, 10, 45, 118, 32, 43, 10, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 99, 121, 108, 105, 110, 100, 101, 114, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 41, 10, 40, 123, 50, 42, 36, 51, 43, 50, 125, 59, 123, 51, 42, 36, 51, 125, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 36, 50, 41, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 51, 45, 49, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 49, 44, 36, 51, 44, 49, 44, 49, 44, 36, 50, 32, 45, 97, 91, 45, 51, 44, 45, 49, 93, 32, 120, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 49, 32, 91, 45, 51, 93, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 50, 44, 36, 51, 44, 49, 44, 49, 44, 51, 44, 48, 32, 91, 45, 51, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 36, 51, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 45, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 36, 51, 32, 45, 105, 91, 45, 55, 93, 32, 49, 44, 36, 51, 44, 49, 44, 49, 44, 52, 32, 45, 114, 118, 91, 45, 54, 44, 45, 53, 93, 32, 45, 97, 91, 45, 55, 45, 45, 53, 44, 45, 50, 44, 45, 49, 93, 32, 120, 10, 51, 44, 123, 51, 42, 36, 51, 125, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 56, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 99, 121, 108, 105, 110, 100, 101, 114, 93, 10, 45, 118, 32, 43, 10, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 34, 99, 120, 121, 122, 34, 32, 45, 121, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 112, 61, 123, 104, 47, 51, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 36, 110, 98, 112, 59, 36, 110, 98, 112, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 98, 112, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 91, 45, 50, 93, 10, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 10, 45, 97, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 109, 112, 116, 121, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 101, 109, 112, 116, 121, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 46, 34, 10, 45, 118, 32, 45, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 48, 59, 48, 41, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 101, 109, 112, 116, 121, 93, 32, 45, 118, 32, 43, 10, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 101, 120, 116, 114, 117, 100, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 50, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 114, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 49, 44, 105, 102, 40, 119, 62, 104, 44, 109, 105, 110, 40, 36, 50, 44, 119, 41, 44, 109, 105, 110, 40, 36, 50, 44, 104, 41, 42, 119, 47, 104, 41, 41, 41, 125, 10, 104, 114, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 49, 44, 105, 102, 40, 119, 62, 104, 44, 109, 105, 110, 40, 36, 50, 44, 119, 41, 42, 104, 47, 119, 44, 109, 105, 110, 40, 36, 50, 44, 104, 41, 41, 41, 41, 125, 10, 102, 97, 99, 116, 61, 123, 36, 49, 47, 109, 97, 120, 40, 119, 47, 36, 119, 114, 44, 104, 47, 36, 104, 114, 41, 125, 10, 45, 98, 32, 36, 51, 44, 48, 32, 45, 114, 32, 36, 119, 114, 44, 36, 104, 114, 44, 49, 44, 49, 44, 50, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 49, 44, 48, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 32, 45, 42, 51, 100, 32, 49, 44, 49, 44, 36, 102, 97, 99, 116, 32, 45, 114, 118, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 103, 97, 117, 115, 115, 105, 97, 110, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 32, 105, 110, 116, 111, 32, 115, 101, 116, 115, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 45, 115, 104, 97, 112, 101, 100, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 112, 51, 100, 32, 50, 32, 45, 112, 51, 100, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 115, 51, 100, 10, 110, 98, 118, 61, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 40, 45, 49, 50, 56, 59, 36, 49, 59, 36, 49, 59, 49, 41, 10, 36, 49, 44, 36, 49, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 51, 53, 37, 44, 51, 53, 37, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 51, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 50, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 110, 98, 118, 62, 49, 125, 32, 52, 44, 123, 36, 110, 98, 118, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 121, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 103, 109, 105, 99, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 71, 39, 77, 73, 67, 32, 108, 111, 103, 111, 46, 34, 10, 45, 118, 32, 45, 10, 45, 116, 101, 120, 116, 51, 100, 32, 71, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 54, 44, 54, 52, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 92, 39, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 51, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 77, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 52, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 57, 54, 44, 49, 57, 54, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 73, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 51, 100, 32, 67, 44, 54, 48, 44, 50, 48, 44, 50, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 57, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 54, 44, 54, 52, 44, 50, 53, 53, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 56, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 56, 53, 44, 45, 49, 48, 44, 49, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 57, 50, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 43, 51, 100, 91, 45, 54, 45, 45, 49, 93, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 51, 48, 10, 45, 98, 111, 120, 51, 100, 32, 123, 109, 105, 110, 40, 51, 43, 64, 123, 60, 44, 45, 49, 125, 47, 50, 44, 49, 48, 41, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 51, 48, 42, 36, 62, 125, 44, 123, 50, 48, 43, 56, 48, 42, 36, 62, 125, 44, 123, 49, 48, 42, 36, 62, 125, 44, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 36, 62, 42, 49, 50, 125, 10, 45, 43, 51, 100, 91, 45, 49, 93, 32, 123, 56, 48, 42, 99, 111, 115, 40, 48, 46, 53, 43, 49, 46, 48, 50, 42, 36, 62, 42, 49, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 44, 123, 51, 48, 42, 115, 105, 110, 40, 48, 46, 56, 43, 36, 62, 42, 49, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 44, 123, 50, 42, 36, 62, 45, 55, 53, 125, 10, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 91, 45, 51, 48, 45, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 53, 44, 51, 48, 32, 45, 43, 51, 100, 91, 45, 50, 45, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 103, 109, 105, 99, 93, 10, 45, 118, 32, 43, 10, 103, 121, 114, 111, 105, 100, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 51, 50, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 103, 121, 114, 111, 105, 100, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 32, 97, 110, 100, 32, 114, 97, 110, 103, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 34, 39, 48, 46, 52, 57, 42, 40, 92, 10, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 50, 42, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 50, 42, 121, 32, 43, 32, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 50, 42, 121, 32, 43, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 50, 42, 121, 32, 43, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 120, 32, 45, 32, 121, 32, 43, 32, 50, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 32, 120, 32, 43, 32, 121, 32, 45, 32, 50, 42, 122, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 45, 32, 121, 32, 43, 32, 50, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 120, 32, 43, 32, 121, 32, 45, 32, 50, 42, 122, 41, 92, 10, 41, 32, 43, 32, 48, 46, 50, 55, 42, 40, 32, 92, 10, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 120, 32, 43, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 120, 32, 45, 32, 50, 42, 121, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 121, 32, 43, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 121, 32, 45, 32, 50, 42, 122, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 122, 32, 43, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 32, 50, 42, 122, 32, 45, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 92, 10, 43, 32, 99, 111, 115, 40, 32, 50, 42, 122, 32, 43, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 32, 43, 32, 99, 111, 115, 40, 45, 32, 50, 42, 122, 32, 45, 32, 50, 42, 120, 32, 45, 32, 112, 105, 41, 92, 10, 41, 32, 45, 32, 48, 46, 54, 57, 39, 34, 44, 48, 44, 123, 45, 36, 50, 125, 44, 123, 45, 36, 50, 125, 44, 123, 45, 36, 50, 125, 44, 36, 50, 44, 36, 50, 44, 36, 50, 44, 36, 49, 44, 36, 49, 44, 36, 49, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 103, 121, 114, 111, 105, 100, 93, 10, 45, 118, 32, 43, 10, 104, 105, 115, 116, 111, 103, 114, 97, 109, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 99, 111, 108, 111, 114, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 51, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 93, 34, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 77, 61, 123, 109, 97, 120, 40, 64, 123, 45, 109, 97, 120, 95, 119, 104, 125, 41, 125, 32, 45, 114, 32, 36, 77, 44, 36, 77, 44, 49, 44, 51, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 45, 110, 51, 100, 32, 45, 99, 51, 100, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 54, 41, 125, 10, 45, 43, 51, 100, 91, 45, 54, 93, 32, 48, 44, 48, 44, 45, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 53, 93, 32, 49, 44, 48, 44, 48, 44, 49, 56, 48, 32, 45, 43, 51, 100, 91, 45, 53, 93, 32, 48, 44, 48, 44, 48, 46, 53, 10, 45, 114, 51, 100, 91, 45, 52, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 52, 93, 32, 45, 48, 46, 53, 44, 48, 44, 48, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 51, 93, 32, 48, 46, 53, 44, 48, 44, 48, 10, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 50, 93, 32, 48, 44, 45, 48, 46, 53, 44, 48, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 46, 53, 44, 48, 10, 45, 43, 51, 100, 91, 45, 54, 45, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 105, 109, 97, 103, 101, 32, 99, 117, 98, 101, 93, 34, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 56, 59, 54, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 48, 46, 53, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 49, 59, 50, 59, 54, 59, 53, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 53, 59, 54, 59, 55, 59, 52, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 52, 59, 55, 59, 51, 59, 48, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 52, 59, 48, 59, 49, 59, 53, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 49, 50, 59, 51, 59, 55, 59, 54, 59, 50, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 108, 105, 99, 101, 115, 32, 53, 48, 37, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 52, 59, 49, 59, 92, 10, 48, 59, 48, 59, 48, 59, 92, 10, 123, 119, 125, 59, 48, 59, 48, 59, 92, 10, 123, 119, 125, 59, 123, 104, 125, 59, 48, 59, 92, 10, 123, 48, 125, 59, 123, 104, 125, 59, 48, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 112, 121, 114, 97, 109, 105, 100, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 49, 61, 123, 119, 45, 49, 125, 32, 104, 49, 61, 123, 104, 45, 49, 125, 32, 119, 50, 61, 123, 119, 47, 50, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 45, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 45, 48, 46, 53, 59, 48, 46, 53, 59, 45, 48, 46, 53, 59, 92, 10, 48, 59, 48, 59, 48, 46, 53, 59, 92, 10, 49, 50, 59, 48, 59, 51, 59, 50, 59, 49, 59, 48, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 49, 59, 36, 104, 49, 59, 36, 119, 49, 59, 48, 59, 92, 10, 57, 59, 48, 59, 52, 59, 51, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 49, 59, 52, 59, 48, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 50, 59, 52, 59, 49, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 57, 59, 51, 59, 52, 59, 50, 59, 48, 59, 36, 104, 49, 59, 36, 119, 50, 59, 48, 59, 36, 119, 49, 59, 36, 104, 49, 59, 92, 10, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 10, 45, 121, 91, 45, 49, 93, 32, 121, 10, 40, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 45, 49, 50, 56, 59, 48, 59, 48, 59, 48, 59, 49, 59, 49, 59, 49, 59, 49, 59, 49, 41, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 114, 117, 98, 105, 107, 39, 115, 32, 99, 117, 98, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 120, 121, 45, 116, 105, 108, 101, 115, 44, 32, 120, 121, 45, 115, 104, 105, 102, 116, 32, 36, 50, 32, 97, 110, 100, 32, 122, 45, 115, 104, 105, 102, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 40, 56, 44, 53, 41, 10, 40, 48, 44, 48, 44, 48, 59, 92, 10, 49, 48, 48, 44, 48, 44, 48, 59, 92, 10, 49, 48, 48, 44, 49, 48, 48, 44, 48, 59, 92, 10, 48, 44, 49, 48, 48, 44, 48, 59, 92, 10, 36, 50, 44, 36, 50, 44, 123, 45, 36, 51, 125, 59, 92, 10, 123, 49, 48, 48, 45, 36, 50, 125, 44, 36, 50, 44, 123, 45, 36, 51, 125, 59, 92, 10, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 45, 36, 51, 125, 59, 92, 10, 36, 50, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 123, 45, 36, 51, 125, 41, 10, 40, 52, 44, 52, 44, 55, 44, 54, 44, 53, 59, 92, 10, 52, 44, 48, 44, 52, 44, 53, 44, 49, 59, 92, 10, 52, 44, 51, 44, 50, 44, 54, 44, 55, 59, 92, 10, 52, 44, 48, 44, 51, 44, 55, 44, 52, 59, 92, 10, 52, 44, 49, 44, 53, 44, 54, 44, 50, 41, 10, 51, 44, 53, 44, 49, 44, 49, 44, 50, 48, 48, 10, 49, 44, 53, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 45, 36, 49, 45, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 45, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 45, 36, 49, 45, 45, 49, 93, 10, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 47, 51, 100, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 51, 100, 91, 45, 49, 93, 32, 53, 48, 44, 53, 48, 44, 53, 48, 10, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 10, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 45, 57, 48, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 56, 48, 10, 45, 43, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 50, 125, 62, 61, 51, 32, 38, 38, 32, 36, 123, 50, 61, 49, 54, 125, 62, 61, 51, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 109, 97, 112, 112, 101, 100, 32, 115, 112, 104, 101, 114, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 116, 119, 61, 123, 119, 45, 49, 125, 32, 116, 104, 61, 123, 104, 45, 49, 125, 10, 110, 98, 118, 61, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 50, 41, 125, 10, 110, 98, 112, 61, 123, 36, 49, 42, 40, 36, 50, 45, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 36, 110, 98, 118, 59, 36, 110, 98, 112, 41, 10, 40, 48, 59, 48, 59, 49, 41, 32, 40, 48, 59, 48, 59, 45, 49, 41, 32, 40, 48, 44, 123, 50, 42, 112, 105, 125, 59, 48, 44, 123, 50, 42, 112, 105, 125, 94, 48, 44, 48, 59, 123, 112, 105, 125, 44, 123, 112, 105, 125, 41, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 49, 43, 49, 125, 44, 36, 50, 44, 49, 44, 50, 44, 51, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 99, 111, 115, 91, 45, 52, 93, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 116, 120, 48, 61, 123, 36, 62, 42, 36, 116, 119, 47, 36, 49, 125, 32, 116, 120, 49, 61, 123, 40, 36, 62, 43, 49, 41, 42, 36, 116, 119, 47, 36, 49, 125, 32, 116, 121, 49, 61, 123, 36, 116, 104, 47, 40, 36, 50, 45, 49, 41, 125, 10, 40, 57, 59, 48, 59, 123, 50, 43, 36, 62, 125, 59, 123, 50, 43, 40, 36, 62, 43, 49, 41, 37, 36, 49, 125, 59, 123, 36, 116, 119, 47, 50, 125, 59, 48, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 51, 125, 10, 116, 121, 48, 61, 36, 116, 121, 49, 32, 116, 121, 49, 61, 123, 40, 36, 62, 43, 50, 41, 42, 36, 116, 104, 47, 40, 36, 50, 45, 49, 41, 125, 32, 105, 48, 61, 123, 50, 43, 36, 62, 42, 36, 49, 43, 64, 123, 62, 44, 45, 50, 125, 125, 32, 105, 49, 61, 123, 50, 43, 36, 62, 42, 36, 49, 43, 40, 64, 123, 62, 44, 45, 50, 125, 43, 49, 41, 37, 36, 49, 125, 10, 40, 49, 50, 59, 36, 105, 48, 59, 123, 36, 105, 48, 43, 36, 49, 125, 59, 123, 36, 105, 49, 43, 36, 49, 125, 59, 36, 105, 49, 59, 36, 116, 120, 48, 59, 36, 116, 121, 48, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 59, 36, 116, 120, 49, 59, 36, 116, 121, 48, 41, 10, 45, 100, 111, 110, 101, 10, 40, 57, 59, 49, 59, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 51, 41, 43, 40, 36, 62, 43, 49, 41, 37, 36, 49, 125, 59, 123, 50, 43, 36, 49, 42, 40, 36, 50, 45, 51, 41, 43, 36, 62, 125, 59, 123, 36, 116, 119, 47, 50, 125, 59, 36, 116, 104, 59, 36, 116, 120, 49, 59, 36, 116, 121, 49, 59, 36, 116, 120, 48, 59, 36, 116, 121, 49, 41, 10, 45, 100, 111, 110, 101, 10, 45, 97, 91, 45, 36, 110, 98, 112, 45, 45, 49, 93, 32, 121, 10, 45, 109, 118, 91, 45, 52, 93, 32, 64, 35, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 49, 44, 123, 52, 42, 40, 36, 110, 98, 112, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 98, 101, 108, 95, 112, 111, 105, 110, 116, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 51, 125, 62, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 97, 98, 101, 108, 32, 118, 101, 114, 116, 105, 99, 101, 115, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 112, 51, 100, 91, 36, 62, 93, 32, 48, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 51, 100, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 110, 98, 112, 61, 64, 123, 45, 50, 44, 48, 125, 32, 45, 61, 91, 45, 50, 93, 32, 36, 110, 98, 112, 44, 48, 44, 49, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 110, 98, 112, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 112, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 112, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 48, 44, 48, 44, 36, 49, 44, 49, 44, 36, 50, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 10, 45, 43, 51, 100, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 97, 116, 104, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 50, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 53, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 54, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 108, 97, 116, 104, 101, 100, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 88, 89, 45, 112, 114, 111, 102, 105, 108, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 109, 97, 120, 105, 109, 117, 109, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 116, 109, 97, 120, 61, 123, 40, 36, 51, 45, 49, 56, 48, 41, 42, 112, 105, 47, 49, 56, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 114, 61, 123, 109, 97, 120, 40, 49, 44, 119, 50, 61, 50, 42, 119, 59, 105, 102, 40, 119, 50, 62, 104, 44, 109, 105, 110, 40, 36, 49, 44, 119, 50, 41, 44, 109, 105, 110, 40, 36, 49, 44, 104, 41, 42, 119, 50, 47, 104, 41, 41, 125, 10, 104, 114, 61, 123, 109, 97, 120, 40, 49, 44, 119, 50, 61, 50, 42, 119, 59, 105, 102, 40, 119, 50, 62, 104, 44, 109, 105, 110, 40, 36, 49, 44, 119, 50, 41, 42, 104, 47, 119, 50, 44, 109, 105, 110, 40, 36, 49, 44, 104, 41, 41, 41, 125, 10, 114, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 40, 36, 119, 114, 41, 94, 50, 43, 40, 36, 104, 114, 41, 94, 50, 41, 47, 50, 125, 10, 36, 119, 114, 44, 49, 44, 36, 119, 114, 44, 49, 44, 34, 120, 99, 61, 120, 45, 119, 47, 50, 59, 32, 122, 99, 61, 122, 45, 100, 47, 50, 59, 32, 116, 61, 97, 116, 97, 110, 50, 40, 122, 99, 44, 120, 99, 41, 59, 32, 105, 102, 40, 116, 62, 34, 36, 116, 109, 97, 120, 34, 44, 34, 36, 114, 109, 97, 120, 34, 44, 115, 113, 114, 116, 40, 120, 99, 42, 120, 99, 43, 122, 99, 42, 122, 99, 41, 41, 34, 10, 45, 42, 91, 45, 49, 93, 32, 123, 50, 42, 40, 64, 123, 45, 50, 44, 119, 125, 45, 49, 41, 47, 40, 119, 45, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 114, 44, 36, 104, 114, 44, 36, 119, 114, 10, 40, 48, 59, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 114, 44, 36, 104, 114, 44, 36, 119, 114, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 32, 49, 48, 44, 48, 32, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 32, 45, 114, 118, 51, 100, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 110, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 110, 101, 32, 40, 36, 123, 49, 45, 51, 125, 41, 45, 40, 36, 123, 52, 45, 54, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 49, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 50, 44, 49, 44, 36, 123, 49, 45, 54, 125, 44, 50, 44, 48, 44, 49, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 108, 105, 110, 101, 93, 32, 45, 118, 32, 43, 10, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 49, 48, 50, 52, 125, 62, 49, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 99, 117, 114, 118, 101, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 40, 97, 44, 65, 41, 61, 40, 36, 50, 44, 36, 51, 41, 44, 32, 40, 98, 44, 66, 41, 61, 40, 36, 52, 44, 36, 53, 41, 32, 97, 110, 100, 32, 40, 99, 44, 67, 41, 61, 40, 36, 54, 44, 36, 55, 41, 46, 34, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 36, 114, 101, 115, 59, 123, 36, 114, 101, 115, 45, 49, 125, 41, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 114, 101, 115, 44, 49, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 120, 50, 10, 45, 42, 91, 45, 51, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 93, 32, 123, 36, 51, 42, 50, 42, 112, 105, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 123, 36, 53, 42, 50, 42, 112, 105, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 54, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 55, 42, 50, 42, 112, 105, 125, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 59, 123, 36, 114, 101, 115, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 51, 42, 40, 36, 114, 101, 115, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 108, 105, 115, 115, 97, 106, 111, 117, 93, 10, 45, 118, 32, 43, 10, 110, 51, 100, 32, 58, 10, 45, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 10, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 32, 58, 10, 45, 95, 36, 48, 10, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 51, 100, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 61, 123, 105, 40, 48, 44, 54, 41, 125, 10, 45, 105, 102, 32, 123, 36, 110, 62, 48, 125, 10, 45, 115, 104, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 10, 45, 115, 104, 91, 45, 52, 93, 32, 56, 44, 123, 55, 43, 51, 42, 36, 110, 125, 44, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 123, 118, 97, 108, 61, 109, 97, 120, 40, 64, 123, 45, 51, 44, 105, 77, 125, 45, 64, 123, 45, 51, 44, 105, 109, 125, 44, 64, 123, 45, 50, 44, 105, 77, 125, 45, 64, 123, 45, 50, 44, 105, 109, 125, 44, 105, 77, 45, 105, 109, 41, 59, 105, 102, 40, 118, 97, 108, 44, 118, 97, 108, 44, 49, 41, 125, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 115, 105, 110, 40, 97, 41, 125, 34, 44, 34, 36, 123, 50, 61, 40, 50, 43, 99, 111, 115, 40, 98, 41, 41, 42, 99, 111, 115, 40, 97, 41, 125, 34, 44, 34, 36, 123, 51, 61, 115, 105, 110, 40, 98, 41, 125, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 123, 45, 112, 105, 125, 125, 44, 36, 123, 53, 61, 123, 112, 105, 125, 125, 44, 36, 123, 54, 61, 123, 45, 112, 105, 125, 125, 44, 36, 123, 55, 61, 123, 112, 105, 125, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 56, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 57, 61, 36, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 54, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 36, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 36, 49, 49, 125, 62, 48, 32, 38, 38, 32, 92, 10, 36, 123, 49, 51, 61, 50, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 52, 61, 49, 48, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 32, 115, 117, 114, 102, 97, 99, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 52, 44, 36, 53, 59, 36, 52, 44, 36, 53, 94, 36, 54, 44, 36, 54, 59, 36, 55, 44, 36, 55, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 56, 44, 36, 57, 44, 49, 44, 50, 44, 51, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 102, 91, 45, 49, 93, 32, 34, 97, 61, 105, 40, 120, 44, 121, 44, 48, 44, 48, 41, 59, 98, 61, 105, 40, 120, 44, 121, 44, 48, 44, 49, 41, 59, 105, 102, 40, 99, 61, 61, 48, 44, 36, 49, 44, 105, 102, 40, 99, 61, 61, 49, 44, 36, 50, 44, 36, 51, 41, 41, 34, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 120, 109, 105, 110, 61, 123, 105, 109, 125, 32, 120, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 48, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 121, 109, 105, 110, 61, 123, 105, 109, 125, 32, 121, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 49, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 122, 109, 105, 110, 61, 123, 105, 109, 125, 32, 122, 109, 97, 120, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 49, 54, 44, 123, 36, 49, 50, 45, 49, 55, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 49, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 51, 44, 48, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 52, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 36, 120, 109, 97, 120, 45, 36, 120, 109, 105, 110, 125, 44, 123, 36, 121, 109, 97, 120, 45, 36, 121, 109, 105, 110, 125, 44, 123, 36, 122, 109, 97, 120, 45, 36, 122, 109, 105, 110, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 97, 114, 97, 109, 101, 116, 114, 105, 99, 93, 10, 45, 118, 32, 43, 10, 112, 99, 97, 95, 112, 97, 116, 99, 104, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 55, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 49, 48, 48, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 51, 48, 48, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 116, 32, 51, 100, 32, 112, 97, 116, 99, 104, 45, 112, 99, 97, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 64, 35, 62, 49, 41, 44, 115, 44, 34, 34, 125, 34, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 102, 114, 111, 109, 32, 36, 50, 32, 36, 49, 120, 36, 49, 32, 105, 110, 112, 117, 116, 32, 112, 97, 116, 99, 104, 115, 44, 10, 119, 105, 116, 104, 32, 36, 51, 32, 111, 117, 116, 112, 117, 116, 32, 112, 97, 116, 99, 104, 115, 44, 32, 105, 110, 112, 117, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 52, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 44, 32, 111, 117, 116, 112, 117, 116, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 10, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 53, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 32, 97, 110, 100, 32, 108, 97, 109, 98, 100, 97, 95, 120, 121, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 10, 80, 49, 61, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 10, 80, 50, 61, 123, 36, 49, 45, 36, 80, 49, 45, 49, 125, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 10, 49, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 64, 123, 48, 44, 119, 45, 49, 125, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 64, 123, 48, 44, 104, 45, 49, 125, 32, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 45, 112, 97, 116, 99, 104, 101, 115, 91, 48, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 64, 45, 49, 32, 45, 121, 91, 50, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 120, 10, 45, 122, 91, 49, 93, 32, 48, 44, 49, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 36, 54, 32, 45, 97, 91, 49, 44, 50, 93, 32, 121, 32, 45, 115, 91, 94, 48, 93, 32, 120, 10, 45, 45, 43, 91, 94, 48, 93, 32, 45, 47, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 49, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 94, 48, 93, 32, 120, 10, 45, 105, 102, 32, 36, 52, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 121, 32, 45, 47, 32, 39, 115, 113, 114, 116, 40, 49, 101, 45, 56, 43, 105, 118, 41, 39, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 105, 103, 101, 110, 91, 45, 49, 93, 32, 45, 114, 111, 119, 115, 91, 45, 50, 93, 32, 48, 44, 50, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 53, 32, 45, 115, 113, 114, 116, 91, 45, 50, 93, 32, 45, 47, 91, 45, 50, 93, 32, 64, 123, 45, 50, 44, 77, 125, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 64, 123, 48, 44, 119, 125, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 64, 123, 48, 44, 104, 125, 41, 41, 125, 10, 40, 123, 36, 54, 42, 36, 120, 125, 59, 123, 36, 54, 42, 36, 121, 125, 41, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 120, 45, 36, 80, 49, 125, 44, 123, 36, 121, 45, 36, 80, 49, 125, 44, 123, 36, 120, 43, 36, 80, 50, 125, 44, 123, 36, 121, 43, 36, 80, 50, 125, 44, 49, 10, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 100, 111, 110, 101, 10, 45, 45, 97, 91, 50, 45, 45, 49, 93, 32, 120, 32, 45, 42, 42, 91, 49, 44, 45, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 49, 93, 10, 45, 114, 111, 119, 115, 91, 50, 45, 45, 49, 93, 32, 50, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 36, 115, 33, 61, 51, 125, 10, 45, 114, 91, 50, 45, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 123, 109, 105, 110, 40, 51, 44, 36, 115, 41, 125, 44, 45, 49, 10, 45, 114, 91, 50, 45, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 51, 44, 123, 105, 102, 40, 36, 115, 33, 61, 49, 44, 48, 44, 49, 41, 125, 10, 45, 121, 91, 50, 45, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 50, 45, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 36, 49, 59, 36, 49, 59, 51, 41, 32, 45, 97, 91, 50, 45, 45, 49, 93, 32, 121, 10, 45, 114, 109, 91, 48, 93, 10, 45, 105, 91, 48, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 10, 45, 105, 91, 49, 93, 32, 40, 36, 51, 59, 36, 51, 41, 10, 45, 105, 91, 51, 93, 32, 50, 44, 36, 51, 44, 49, 44, 49, 44, 105, 102, 40, 120, 61, 61, 48, 44, 49, 44, 121, 41, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 49, 10, 45, 121, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 108, 97, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 50, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 52, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 108, 97, 110, 101, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 40, 36, 123, 49, 44, 50, 125, 41, 32, 97, 110, 100, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 123, 51, 44, 52, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 123, 36, 51, 43, 49, 125, 44, 123, 36, 52, 43, 49, 125, 32, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 36, 49, 47, 36, 51, 125, 44, 123, 36, 50, 47, 36, 52, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 108, 97, 110, 101, 93, 32, 45, 118, 32, 43, 10, 112, 111, 105, 110, 116, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 49, 55, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 49, 44, 49, 44, 36, 123, 49, 45, 51, 125, 44, 49, 44, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 111, 105, 110, 116, 93, 32, 45, 118, 32, 43, 10, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 111, 32, 51, 100, 32, 112, 111, 105, 110, 116, 32, 99, 108, 111, 117, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 110, 111, 114, 109, 32, 45, 33, 61, 91, 45, 49, 93, 32, 48, 10, 45, 105, 91, 45, 50, 93, 32, 40, 49, 44, 123, 119, 125, 59, 49, 44, 123, 119, 125, 94, 49, 44, 49, 59, 123, 104, 125, 44, 123, 104, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 50, 44, 51, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 48, 32, 45, 97, 32, 121, 32, 105, 115, 95, 112, 111, 105, 110, 116, 115, 61, 64, 35, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 105, 115, 95, 112, 111, 105, 110, 116, 115, 10, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 104, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 121, 122, 120, 32, 45, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 93, 32, 99, 121, 122, 120, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 62, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 45, 105, 91, 45, 51, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 51, 93, 32, 40, 123, 104, 125, 44, 123, 104, 125, 41, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 121, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 120, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 121, 122, 120, 10, 45, 105, 102, 32, 123, 119, 61, 61, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 119, 62, 51, 125, 32, 45, 105, 91, 45, 50, 93, 32, 52, 44, 123, 104, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 49, 44, 49, 44, 123, 119, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 32, 45, 101, 109, 112, 116, 121, 51, 100, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 115, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 51, 61, 53, 48, 37, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 51, 100, 32, 120, 121, 44, 120, 122, 44, 121, 122, 32, 112, 114, 111, 106, 101, 99, 116, 105, 111, 110, 32, 112, 108, 97, 110, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 120, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 36, 49, 42, 119, 44, 36, 49, 41, 125, 10, 121, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 36, 50, 42, 104, 44, 36, 50, 41, 125, 10, 122, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 36, 51, 42, 100, 44, 36, 51, 41, 125, 10, 45, 45, 114, 111, 119, 115, 32, 36, 50, 44, 36, 50, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 100, 125, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 50, 93, 32, 36, 49, 44, 36, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 121, 120, 99, 10, 45, 115, 108, 105, 99, 101, 115, 91, 45, 51, 93, 32, 36, 51, 44, 36, 51, 32, 45, 114, 91, 45, 51, 45, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 45, 51, 45, 45, 49, 93, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 10, 45, 43, 51, 100, 91, 45, 51, 93, 32, 48, 44, 48, 44, 36, 122, 32, 45, 43, 51, 100, 91, 45, 50, 93, 32, 48, 44, 36, 121, 44, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 36, 120, 44, 48, 44, 48, 10, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 56, 10, 45, 105, 102, 32, 36, 52, 32, 45, 98, 111, 120, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 52, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 110, 101, 119, 32, 51, 100, 32, 112, 121, 114, 97, 109, 105, 100, 44, 32, 119, 105, 116, 104, 32, 119, 105, 100, 116, 104, 32, 36, 49, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 36, 49, 47, 50, 125, 59, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 123, 45, 36, 49, 47, 50, 125, 59, 123, 36, 49, 47, 50, 125, 59, 123, 45, 36, 50, 47, 50, 125, 59, 92, 10, 48, 59, 48, 59, 123, 36, 50, 47, 50, 125, 59, 92, 10, 52, 59, 48, 59, 51, 59, 50, 59, 49, 59, 92, 10, 51, 59, 48, 59, 52, 59, 51, 59, 92, 10, 51, 59, 49, 59, 52, 59, 48, 59, 92, 10, 51, 59, 50, 59, 52, 59, 49, 59, 92, 10, 51, 59, 51, 59, 52, 59, 50, 41, 10, 49, 44, 49, 53, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 53, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 112, 121, 114, 97, 109, 105, 100, 93, 10, 45, 118, 32, 43, 10, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 45, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 45, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 45, 40, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 57, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 52, 44, 49, 44, 36, 123, 49, 45, 49, 50, 125, 44, 52, 44, 48, 44, 49, 44, 50, 44, 51, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 113, 117, 97, 100, 114, 97, 110, 103, 108, 101, 93, 32, 45, 118, 32, 43, 10, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 109, 97, 116, 114, 105, 120, 32, 97, 114, 111, 117, 110, 100, 32, 97, 120, 105, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 48, 41, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 121, 91, 45, 49, 93, 32, 120, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 105, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 32, 45, 61, 91, 45, 49, 93, 32, 123, 99, 111, 115, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 44, 51, 10, 120, 120, 61, 123, 105, 40, 48, 41, 42, 105, 40, 48, 41, 125, 32, 120, 121, 61, 123, 105, 40, 48, 41, 42, 105, 40, 49, 41, 125, 32, 120, 122, 61, 123, 105, 40, 48, 41, 42, 105, 40, 50, 41, 125, 32, 120, 119, 61, 123, 105, 40, 48, 41, 42, 105, 40, 51, 41, 125, 10, 121, 121, 61, 123, 105, 40, 49, 41, 42, 105, 40, 49, 41, 125, 32, 121, 122, 61, 123, 105, 40, 49, 41, 42, 105, 40, 50, 41, 125, 32, 121, 119, 61, 123, 105, 40, 49, 41, 42, 105, 40, 51, 41, 125, 10, 122, 122, 61, 123, 105, 40, 50, 41, 42, 105, 40, 50, 41, 125, 32, 122, 119, 61, 123, 105, 40, 50, 41, 42, 105, 40, 51, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 49, 45, 50, 42, 40, 36, 121, 121, 43, 36, 122, 122, 41, 125, 44, 123, 50, 42, 40, 36, 120, 121, 43, 36, 122, 119, 41, 125, 44, 123, 50, 42, 40, 36, 120, 122, 45, 36, 121, 119, 41, 125, 59, 92, 10, 123, 50, 42, 40, 36, 120, 121, 45, 36, 122, 119, 41, 125, 44, 123, 49, 45, 50, 42, 40, 36, 120, 120, 43, 36, 122, 122, 41, 125, 44, 123, 50, 42, 40, 36, 121, 122, 43, 36, 120, 119, 41, 125, 59, 92, 10, 123, 50, 42, 40, 36, 120, 122, 43, 36, 121, 119, 41, 125, 44, 123, 50, 42, 40, 36, 121, 122, 45, 36, 120, 119, 41, 125, 44, 123, 49, 45, 50, 42, 40, 36, 120, 120, 43, 36, 121, 121, 41, 125, 41, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 114, 111, 116, 97, 116, 105, 111, 110, 93, 10, 45, 118, 32, 43, 10, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 52, 125, 62, 61, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 112, 121, 114, 97, 109, 105, 100, 32, 111, 102, 32, 100, 101, 103, 114, 101, 101, 32, 36, 49, 44, 32, 119, 105, 116, 104, 32, 119, 105, 100, 116, 104, 32, 36, 50, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 123, 45, 36, 50, 47, 50, 125, 44, 123, 36, 50, 47, 50, 125, 44, 123, 45, 36, 51, 47, 50, 125, 44, 48, 44, 48, 44, 123, 36, 51, 47, 50, 125, 44, 36, 49, 32, 45, 43, 51, 100, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 93, 32, 45, 118, 32, 43, 10, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 54, 60, 61, 48, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 92, 10, 53, 59, 53, 59, 92, 10, 36, 49, 59, 36, 50, 59, 36, 51, 59, 92, 10, 36, 52, 59, 36, 53, 59, 36, 54, 59, 92, 10, 36, 55, 59, 36, 56, 59, 36, 57, 59, 92, 10, 36, 49, 48, 59, 36, 49, 49, 59, 36, 49, 50, 59, 92, 10, 36, 49, 51, 59, 36, 49, 52, 59, 36, 49, 53, 59, 92, 10, 52, 59, 48, 59, 51, 59, 50, 59, 49, 59, 92, 10, 51, 59, 48, 59, 52, 59, 51, 59, 92, 10, 51, 59, 49, 59, 52, 59, 48, 59, 92, 10, 51, 59, 50, 59, 52, 59, 49, 59, 92, 10, 51, 59, 51, 59, 52, 59, 50, 41, 10, 49, 44, 49, 53, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 53, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 54, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 52, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 53, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 54, 41, 47, 50, 125, 44, 92, 10, 36, 52, 44, 36, 53, 44, 36, 54, 44, 92, 10, 123, 40, 36, 52, 43, 36, 55, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 56, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 57, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 55, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 56, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 57, 41, 47, 50, 125, 44, 92, 10, 36, 55, 44, 36, 56, 44, 36, 57, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 43, 36, 52, 43, 36, 55, 43, 36, 49, 48, 41, 47, 52, 125, 44, 123, 40, 36, 50, 43, 36, 53, 43, 36, 56, 43, 36, 49, 49, 41, 47, 52, 125, 44, 123, 40, 36, 51, 43, 36, 54, 43, 36, 57, 43, 36, 49, 50, 41, 47, 52, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 48, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 49, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 50, 41, 47, 50, 125, 44, 92, 10, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 92, 10, 123, 40, 36, 49, 48, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 49, 49, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 50, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 45, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 51, 100, 32, 123, 40, 36, 49, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 50, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 51, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 52, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 53, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 54, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 55, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 56, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 57, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 123, 40, 36, 49, 48, 43, 36, 49, 51, 41, 47, 50, 125, 44, 123, 40, 36, 49, 49, 43, 36, 49, 52, 41, 47, 50, 125, 44, 123, 40, 36, 49, 50, 43, 36, 49, 53, 41, 47, 50, 125, 44, 92, 10, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 92, 10, 123, 36, 49, 54, 45, 49, 125, 10, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 34, 34, 125, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 51, 41, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 84, 97, 107, 101, 32, 36, 49, 120, 36, 49, 32, 115, 110, 97, 112, 115, 104, 111, 116, 36, 63, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 32, 97, 110, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 99, 111, 108, 111, 114, 32, 36, 123, 51, 45, 45, 49, 125, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 84, 97, 107, 101, 32, 36, 49, 120, 36, 49, 32, 115, 110, 97, 112, 115, 104, 111, 116, 36, 63, 32, 111, 102, 32, 51, 100, 32, 111, 98, 106, 101, 99, 116, 36, 63, 44, 32, 119, 105, 116, 104, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 99, 51, 100, 32, 45, 110, 51, 100, 32, 45, 42, 51, 100, 32, 123, 51, 42, 36, 49, 42, 36, 50, 47, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 51, 41, 125, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 101, 108, 115, 101, 32, 49, 44, 50, 44, 49, 44, 51, 44, 51, 50, 44, 54, 52, 44, 51, 50, 44, 49, 49, 54, 44, 54, 52, 44, 57, 54, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 51, 44, 51, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 52, 125, 62, 61, 51, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 51, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 97, 98, 115, 40, 49, 43, 48, 46, 53, 42, 99, 111, 115, 40, 51, 42, 112, 104, 105, 41, 42, 115, 105, 110, 40, 52, 42, 116, 104, 101, 116, 97, 41, 41, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 32, 111, 98, 106, 101, 99, 116, 44, 32, 119, 105, 116, 104, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 39, 36, 51, 39, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 110, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 32, 110, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 41, 125, 10, 36, 110, 49, 44, 123, 36, 110, 50, 45, 49, 125, 44, 49, 44, 51, 44, 34, 112, 104, 105, 61, 50, 42, 112, 105, 42, 40, 120, 43, 48, 46, 53, 41, 47, 119, 59, 92, 10, 116, 104, 101, 116, 97, 61, 45, 112, 105, 47, 50, 43, 112, 105, 42, 40, 121, 43, 48, 46, 53, 41, 47, 104, 59, 92, 10, 99, 112, 61, 99, 111, 115, 40, 112, 104, 105, 41, 59, 92, 10, 115, 112, 61, 115, 105, 110, 40, 112, 104, 105, 41, 59, 92, 10, 99, 116, 61, 99, 111, 115, 40, 116, 104, 101, 116, 97, 41, 59, 92, 10, 40, 36, 51, 41, 42, 105, 102, 40, 99, 61, 61, 48, 44, 99, 116, 42, 99, 112, 44, 105, 102, 40, 99, 61, 61, 49, 44, 99, 116, 42, 115, 112, 44, 115, 105, 110, 40, 116, 104, 101, 116, 97, 41, 41, 41, 34, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 120, 122, 99, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 48, 44, 123, 112, 104, 105, 61, 48, 59, 116, 104, 101, 116, 97, 61, 45, 112, 105, 47, 50, 59, 45, 36, 51, 125, 59, 48, 44, 48, 44, 123, 112, 104, 105, 61, 48, 59, 116, 104, 101, 116, 97, 61, 112, 105, 47, 50, 59, 36, 51, 125, 41, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 110, 98, 118, 61, 123, 104, 125, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 36, 110, 49, 44, 123, 36, 110, 50, 45, 50, 125, 44, 49, 44, 52, 44, 34, 110, 120, 61, 40, 120, 43, 49, 41, 37, 119, 59, 110, 121, 61, 40, 121, 43, 49, 41, 59, 50, 43, 105, 102, 40, 99, 61, 61, 48, 44, 120, 43, 121, 42, 34, 36, 110, 49, 34, 44, 105, 102, 40, 99, 61, 61, 49, 44, 110, 120, 43, 121, 42, 34, 36, 110, 49, 34, 44, 105, 102, 40, 99, 61, 61, 50, 44, 110, 120, 43, 110, 121, 42, 34, 36, 110, 49, 34, 44, 120, 43, 110, 121, 42, 34, 36, 110, 49, 34, 41, 41, 41, 34, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 52, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 120, 122, 99, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 52, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 50, 44, 36, 110, 49, 44, 49, 44, 49, 44, 51, 44, 48, 32, 49, 44, 36, 110, 49, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 123, 104, 125, 32, 50, 44, 36, 110, 49, 44, 49, 44, 49, 44, 51, 44, 49, 32, 91, 45, 51, 44, 45, 50, 93, 10, 45, 43, 91, 45, 53, 44, 45, 52, 93, 32, 50, 32, 45, 114, 118, 91, 45, 53, 44, 45, 52, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 123, 36, 110, 98, 118, 45, 36, 110, 49, 125, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 120, 10, 110, 98, 112, 61, 123, 104, 43, 64, 123, 45, 50, 44, 104, 125, 43, 64, 123, 45, 51, 44, 104, 125, 125, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 105, 91, 45, 51, 93, 32, 40, 36, 110, 98, 118, 59, 36, 110, 98, 112, 41, 10, 49, 44, 123, 51, 42, 36, 110, 98, 112, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 36, 110, 98, 112, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 115, 112, 104, 101, 114, 105, 99, 97, 108, 32, 115, 117, 114, 102, 97, 99, 101, 32, 39, 36, 51, 39, 93, 34, 10, 45, 118, 32, 43, 10, 115, 112, 108, 105, 110, 101, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 51, 61, 49, 50, 56, 125, 62, 61, 50, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 110, 101, 119, 32, 51, 100, 32, 115, 112, 108, 105, 110, 101, 32, 102, 114, 111, 109, 32, 40, 36, 123, 49, 45, 51, 125, 41, 32, 91, 36, 123, 52, 45, 54, 125, 93, 32, 116, 111, 32, 40, 36, 123, 55, 45, 57, 125, 41, 32, 91, 36, 123, 49, 48, 45, 49, 50, 125, 93, 32, 119, 105, 116, 104, 32, 36, 49, 51, 32, 118, 101, 114, 116, 105, 99, 101, 115, 46, 34, 10, 45, 118, 32, 45, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 10, 40, 36, 49, 51, 59, 123, 36, 49, 51, 45, 49, 125, 41, 10, 49, 44, 36, 49, 51, 44, 49, 44, 49, 44, 49, 32, 40, 48, 59, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 36, 49, 51, 44, 49, 44, 49, 44, 51, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 36, 50, 44, 36, 53, 44, 123, 51, 42, 40, 40, 36, 56, 41, 45, 40, 36, 50, 41, 41, 45, 50, 42, 40, 36, 53, 41, 45, 40, 36, 49, 49, 41, 125, 44, 123, 40, 36, 53, 41, 43, 40, 36, 49, 49, 41, 43, 50, 42, 40, 40, 36, 50, 41, 45, 40, 36, 56, 41, 41, 125, 39, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 45, 42, 91, 45, 50, 93, 32, 39, 36, 51, 44, 36, 54, 44, 123, 51, 42, 40, 40, 36, 57, 41, 45, 40, 36, 51, 41, 41, 45, 50, 42, 40, 36, 54, 41, 45, 40, 36, 49, 50, 41, 125, 44, 123, 40, 36, 54, 41, 43, 40, 36, 49, 50, 41, 43, 50, 42, 40, 40, 36, 51, 41, 45, 40, 36, 57, 41, 41, 125, 39, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 42, 91, 45, 51, 93, 32, 39, 36, 49, 44, 36, 52, 44, 123, 51, 42, 40, 40, 36, 55, 41, 45, 40, 36, 49, 41, 41, 45, 50, 42, 40, 36, 52, 41, 45, 40, 36, 49, 48, 41, 125, 44, 123, 40, 36, 52, 41, 43, 40, 36, 49, 48, 41, 43, 50, 42, 40, 40, 36, 49, 41, 45, 40, 36, 55, 41, 41, 125, 39, 32, 45, 108, 91, 45, 51, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 49, 44, 123, 36, 49, 51, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 44, 49, 59, 123, 36, 49, 51, 45, 50, 125, 44, 123, 36, 49, 51, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 49, 44, 123, 51, 42, 40, 36, 49, 51, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 49, 51, 45, 49, 125, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 45, 51, 44, 45, 52, 44, 45, 54, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 118, 32, 43, 10, 115, 112, 114, 105, 116, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 91, 48, 93, 32, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 49, 59, 49, 59, 48, 59, 48, 59, 48, 59, 49, 59, 48, 59, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 64, 123, 48, 44, 115, 125, 41, 32, 45, 121, 91, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 40, 49, 41, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 121, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 112, 114, 105, 116, 101, 115, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 115, 112, 114, 105, 116, 101, 115, 32, 99, 108, 111, 117, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 105, 102, 32, 123, 33, 64, 123, 36, 62, 44, 40, 48, 44, 55, 41, 125, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 91, 45, 49, 93, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 115, 51, 100, 91, 48, 93, 32, 78, 61, 64, 123, 49, 44, 48, 125, 32, 45, 61, 91, 49, 93, 32, 36, 78, 44, 48, 44, 49, 10, 45, 114, 109, 91, 51, 45, 53, 93, 32, 45, 105, 91, 51, 93, 32, 40, 49, 44, 48, 59, 49, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 51, 93, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 51, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 52, 125, 10, 45, 115, 91, 45, 49, 93, 32, 99, 44, 45, 51, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 51, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 51, 41, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 45, 105, 91, 45, 50, 93, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 49, 41, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 91, 45, 50, 93, 32, 40, 45, 49, 50, 56, 59, 123, 119, 125, 59, 123, 104, 125, 59, 123, 115, 125, 41, 32, 45, 121, 91, 45, 51, 44, 45, 49, 93, 32, 121, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 49, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 121, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 97, 114, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 51, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 115, 116, 97, 114, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 98, 114, 97, 110, 99, 104, 101, 115, 32, 97, 110, 100, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 10, 78, 61, 123, 50, 42, 36, 49, 125, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 36, 78, 43, 49, 125, 59, 36, 78, 41, 10, 40, 123, 45, 112, 105, 47, 50, 125, 59, 123, 51, 42, 112, 105, 47, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 78, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 104, 45, 50, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 40, 49, 44, 49, 59, 36, 50, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 43, 49, 125, 44, 49, 44, 49, 44, 48, 10, 40, 51, 44, 36, 78, 44, 49, 44, 48, 59, 51, 44, 36, 78, 44, 36, 78, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 50, 44, 49, 48, 48, 37, 10, 51, 44, 36, 78, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 54, 44, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 116, 97, 114, 93, 10, 45, 118, 32, 43, 10, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 50, 52, 125, 62, 49, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 53, 125, 44, 36, 123, 53, 61, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 50, 100, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 99, 117, 114, 118, 101, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 44, 32, 109, 61, 36, 50, 32, 97, 110, 100, 32, 40, 110, 49, 44, 110, 50, 44, 110, 51, 41, 61, 40, 36, 51, 44, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 41, 125, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 36, 114, 101, 115, 59, 123, 36, 114, 101, 115, 45, 49, 125, 41, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 36, 114, 101, 115, 44, 49, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 52, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 98, 115, 91, 45, 50, 44, 45, 49, 93, 10, 45, 94, 91, 45, 50, 93, 32, 36, 52, 32, 45, 94, 91, 45, 49, 93, 32, 36, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 123, 45, 49, 47, 36, 51, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 93, 32, 45, 99, 111, 115, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 49, 44, 49, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 50, 32, 40, 48, 59, 123, 36, 114, 101, 115, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 45, 49, 10, 49, 44, 123, 51, 42, 40, 36, 114, 101, 115, 45, 49, 41, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 36, 114, 101, 115, 45, 49, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 93, 10, 45, 118, 32, 43, 10, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 116, 101, 120, 116, 49, 34, 125, 44, 36, 123, 50, 61, 34, 116, 101, 120, 116, 50, 34, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 116, 101, 120, 116, 32, 111, 98, 106, 101, 99, 116, 32, 102, 114, 111, 109, 32, 115, 116, 114, 105, 110, 103, 115, 32, 39, 36, 49, 39, 32, 97, 110, 100, 32, 39, 36, 50, 39, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 50, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 50, 44, 45, 49, 93, 32, 50, 44, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 50, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 121, 120, 99, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 100, 125, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 122, 61, 61, 105, 44, 49, 44, 48, 41, 39, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 100, 125, 32, 45, 61, 61, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 61, 61, 105, 44, 49, 44, 48, 41, 39, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 100, 125, 32, 45, 61, 61, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 50, 53, 37, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 116, 101, 120, 116, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 93, 34, 32, 45, 118, 32, 43, 10, 116, 101, 120, 116, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 53, 55, 125, 44, 36, 123, 51, 61, 49, 48, 125, 44, 36, 123, 52, 61, 49, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 101, 120, 116, 32, 111, 98, 106, 101, 99, 116, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 100, 101, 112, 116, 104, 32, 36, 51, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 51, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 122, 91, 45, 49, 93, 32, 49, 48, 44, 48, 10, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 91, 45, 49, 93, 32, 52, 48, 37, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 91, 51, 100, 32, 116, 101, 120, 116, 32, 39, 36, 49, 39, 93, 34, 32, 45, 118, 32, 43, 10, 116, 111, 114, 117, 115, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 50, 52, 125, 62, 50, 32, 38, 38, 32, 36, 123, 52, 61, 49, 50, 125, 62, 50, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 46, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 111, 114, 117, 115, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 32, 97, 110, 100, 32, 115, 117, 98, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 40, 36, 51, 44, 36, 52, 41, 46, 34, 10, 45, 118, 32, 45, 10, 110, 98, 112, 61, 123, 36, 51, 42, 36, 52, 125, 10, 49, 44, 56, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 36, 110, 98, 112, 44, 123, 36, 52, 42, 36, 51, 125, 10, 40, 48, 59, 123, 50, 42, 112, 105, 125, 41, 32, 45, 45, 121, 91, 45, 49, 93, 32, 120, 10, 45, 114, 91, 45, 50, 93, 32, 49, 44, 123, 36, 51, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 122, 91, 45, 50, 93, 32, 48, 44, 48, 44, 48, 44, 123, 36, 51, 45, 49, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 36, 52, 43, 49, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 123, 36, 52, 45, 49, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 52, 44, 45, 51, 93, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 52, 44, 36, 51, 10, 45, 42, 91, 45, 51, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 93, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 52, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 49, 44, 36, 51, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 32, 36, 52, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 52, 44, 36, 51, 10, 45, 45, 43, 91, 45, 52, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 121, 91, 45, 52, 45, 45, 49, 93, 32, 121, 32, 45, 105, 91, 45, 53, 93, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 52, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 48, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 52, 45, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 116, 111, 114, 117, 115, 93, 10, 45, 118, 32, 43, 10, 116, 114, 105, 97, 110, 103, 108, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 45, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 45, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 32, 49, 44, 50, 53, 44, 49, 44, 49, 44, 54, 55, 46, 53, 44, 55, 51, 46, 53, 44, 49, 48, 57, 46, 53, 44, 49, 48, 51, 46, 53, 44, 53, 49, 46, 53, 44, 49, 48, 48, 46, 53, 44, 51, 44, 49, 44, 36, 123, 49, 45, 57, 125, 44, 51, 44, 48, 44, 49, 44, 50, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 116, 114, 105, 97, 110, 103, 108, 101, 93, 32, 45, 118, 32, 43, 10, 118, 111, 108, 117, 109, 101, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 51, 100, 32, 112, 97, 114, 97, 108, 108, 101, 108, 101, 112, 105, 112, 101, 100, 105, 99, 32, 111, 98, 106, 101, 99, 116, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 45, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 45, 115, 108, 105, 99, 101, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 48, 93, 32, 48, 32, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 122, 121, 120, 99, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 120, 10, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 32, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 120, 122, 121, 99, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 121, 10, 45, 114, 109, 91, 48, 93, 32, 45, 105, 109, 97, 103, 101, 54, 99, 117, 98, 101, 51, 100, 32, 45, 42, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 101, 105, 114, 100, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 112, 117, 116, 32, 51, 100, 32, 119, 101, 105, 114, 100, 32, 111, 98, 106, 101, 99, 116, 44, 32, 119, 105, 116, 104, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 34, 39, 92, 10, 84, 32, 61, 32, 49, 46, 54, 49, 56, 48, 51, 51, 57, 57, 59, 92, 10, 50, 32, 45, 32, 40, 99, 111, 115, 40, 120, 32, 43, 32, 84, 42, 121, 41, 32, 43, 32, 99, 111, 115, 40, 120, 32, 45, 32, 84, 42, 121, 41, 32, 43, 32, 99, 111, 115, 40, 121, 32, 43, 32, 84, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 121, 32, 45, 32, 84, 42, 122, 41, 32, 43, 32, 99, 111, 115, 40, 122, 32, 45, 32, 84, 42, 120, 41, 32, 43, 32, 99, 111, 115, 40, 122, 32, 43, 32, 84, 42, 120, 41, 41, 92, 10, 39, 34, 44, 48, 44, 45, 52, 46, 55, 44, 45, 52, 46, 55, 44, 45, 52, 46, 55, 44, 52, 46, 55, 44, 52, 46, 55, 44, 52, 46, 55, 44, 36, 49, 44, 36, 49, 44, 36, 49, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 91, 51, 100, 92, 32, 119, 101, 105, 114, 100, 93, 10, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 46, 62, 49, 53, 55, 48, 125, 32, 77, 61, 64, 42, 32, 45, 101, 108, 115, 101, 32, 77, 61, 56, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 120, 101, 99, 117, 116, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 42, 39, 32, 111, 110, 32, 97, 108, 108, 32, 105, 109, 97, 103, 101, 36, 63, 32, 105, 110, 32, 112, 97, 114, 97, 108, 108, 101, 108, 44, 32, 117, 115, 105, 110, 103, 32, 34, 36, 77, 34, 32, 116, 104, 114, 101, 97, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 32, 34, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 32, 36, 42, 34, 32, 78, 61, 64, 35, 10, 45, 108, 91, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 77, 32, 40, 123, 39, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 91, 36, 62, 93, 39, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 44, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 97, 114, 103, 48, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 78, 37, 36, 77, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 78, 37, 36, 77, 125, 32, 40, 123, 39, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 91, 36, 62, 93, 39, 125, 41, 32, 45, 100, 111, 110, 101, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 44, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 97, 114, 103, 49, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 64, 35, 47, 36, 77, 44, 49, 44, 49, 41, 125, 32, 45, 108, 91, 123, 36, 77, 42, 36, 62, 125, 45, 123, 109, 105, 110, 40, 36, 77, 42, 36, 62, 43, 36, 77, 45, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 36, 123, 97, 114, 103, 123, 64, 35, 33, 61, 36, 77, 125, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 45, 118, 32, 43, 10, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 48, 125, 41, 32, 38, 38, 32, 36, 51, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 46, 62, 49, 53, 55, 48, 125, 32, 78, 61, 123, 105, 102, 40, 36, 51, 44, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 51, 41, 41, 44, 64, 42, 41, 125, 32, 45, 101, 108, 115, 101, 32, 78, 61, 123, 105, 102, 40, 36, 51, 44, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 51, 41, 41, 44, 52, 41, 125, 32, 45, 101, 110, 100, 105, 102, 32, 78, 61, 123, 50, 94, 105, 110, 116, 40, 108, 111, 103, 50, 40, 109, 105, 110, 40, 49, 54, 44, 36, 78, 41, 41, 41, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 97, 114, 97, 108, 108, 101, 108, 105, 122, 101, 100, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 118, 101, 114, 108, 97, 112, 32, 36, 50, 32, 97, 110, 100, 32, 34, 36, 78, 34, 32, 116, 104, 114, 101, 97, 100, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 36, 78, 32, 34, 36, 49, 34, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 49, 32, 58, 10, 36, 49, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 50, 32, 58, 10, 45, 105, 102, 32, 123, 119, 62, 61, 104, 125, 10, 111, 118, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 119, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 49, 48, 48, 37, 32, 45, 122, 91, 48, 93, 32, 48, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 122, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 32, 45, 122, 91, 49, 93, 32, 36, 111, 118, 120, 44, 49, 48, 48, 37, 32, 45, 97, 32, 120, 10, 45, 101, 108, 115, 101, 10, 111, 118, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 49, 48, 48, 37, 32, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 114, 111, 119, 115, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 32, 45, 114, 111, 119, 115, 91, 49, 93, 32, 36, 111, 118, 121, 44, 49, 48, 48, 37, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 58, 10, 111, 118, 120, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 119, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 10, 111, 118, 121, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 50, 34, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 41, 125, 32, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 48, 44, 49, 48, 48, 37, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 32, 45, 45, 122, 91, 48, 93, 32, 48, 44, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 44, 49, 48, 48, 37, 10, 45, 45, 122, 91, 48, 93, 32, 123, 36, 119, 50, 45, 36, 111, 118, 120, 125, 44, 123, 36, 104, 50, 45, 36, 111, 118, 121, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 122, 91, 48, 93, 32, 48, 44, 48, 44, 123, 36, 119, 50, 43, 36, 111, 118, 120, 45, 49, 125, 44, 123, 36, 104, 50, 43, 36, 111, 118, 121, 45, 49, 125, 10, 45, 112, 97, 114, 97, 108, 108, 101, 108, 32, 34, 45, 108, 91, 48, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 44, 34, 45, 108, 91, 51, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 34, 10, 45, 122, 91, 48, 93, 32, 48, 44, 48, 44, 64, 123, 48, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 44, 64, 123, 48, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 32, 45, 122, 91, 49, 93, 32, 36, 111, 118, 120, 44, 48, 44, 49, 48, 48, 37, 44, 64, 123, 49, 44, 104, 45, 49, 45, 36, 111, 118, 121, 125, 10, 45, 122, 91, 50, 93, 32, 48, 44, 36, 111, 118, 121, 44, 64, 123, 50, 44, 119, 45, 49, 45, 36, 111, 118, 120, 125, 44, 49, 48, 48, 37, 32, 45, 122, 91, 51, 93, 32, 36, 111, 118, 120, 44, 36, 111, 118, 121, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 97, 91, 48, 44, 49, 93, 32, 120, 32, 45, 97, 91, 49, 44, 50, 93, 32, 120, 32, 45, 97, 32, 121, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 56, 32, 58, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 50, 32, 34, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 92, 34, 36, 49, 92, 34, 44, 36, 50, 34, 44, 36, 50, 10, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 49, 54, 32, 58, 10, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 34, 45, 95, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 52, 32, 92, 34, 36, 49, 92, 34, 44, 36, 50, 34, 44, 36, 50, 10, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 35, 32, 45, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 36, 123, 97, 114, 103, 123, 49, 43, 36, 62, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 112, 97, 114, 97, 108, 108, 101, 108, 32, 58, 10, 36, 42, 10, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 34, 34, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 48, 44, 49, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 109, 61, 123, 97, 114, 103, 40, 45, 50, 44, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 32, 77, 61, 123, 97, 114, 103, 40, 45, 49, 44, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 125, 10, 45, 105, 102, 32, 123, 36, 35, 61, 61, 50, 38, 38, 33, 110, 97, 114, 103, 40, 36, 50, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 83, 101, 116, 32, 114, 101, 108, 97, 116, 105, 118, 101, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 105, 110, 100, 105, 99, 101, 32, 116, 111, 32, 36, 49, 37, 46, 34, 32, 45, 118, 32, 45, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 105, 102, 40, 36, 49, 60, 48, 44, 45, 49, 44, 109, 105, 110, 40, 49, 48, 48, 44, 109, 97, 120, 40, 48, 44, 36, 109, 43, 40, 36, 77, 45, 36, 109, 41, 42, 36, 49, 37, 41, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 35, 61, 61, 51, 125, 10, 110, 109, 61, 123, 109, 105, 110, 40, 36, 50, 44, 36, 45, 49, 41, 125, 32, 110, 77, 61, 123, 109, 97, 120, 40, 36, 50, 44, 36, 45, 49, 41, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 97, 108, 108, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 36, 49, 39, 32, 119, 105, 116, 104, 32, 112, 114, 111, 103, 114, 101, 115, 115, 32, 98, 111, 117, 110, 100, 115, 32, 91, 34, 36, 110, 109, 44, 36, 110, 77, 34, 93, 46, 34, 32, 45, 118, 32, 45, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 109, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 44, 123, 36, 109, 43, 36, 110, 109, 42, 40, 36, 77, 45, 36, 109, 41, 47, 49, 48, 48, 125, 44, 123, 36, 109, 43, 36, 110, 77, 42, 40, 36, 77, 45, 36, 109, 41, 47, 49, 48, 48, 125, 10, 45, 95, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 34, 36, 49, 34, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 77, 32, 40, 36, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 41, 32, 95, 112, 114, 111, 103, 114, 101, 115, 115, 95, 98, 111, 117, 110, 100, 115, 61, 64, 123, 45, 49, 44, 48, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 51, 93, 32, 34, 67, 111, 109, 109, 97, 110, 100, 32, 39, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 39, 32, 58, 32, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 39, 36, 42, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 95, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 58, 32, 36, 42, 10, 97, 114, 114, 97, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 36, 49, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 114, 48, 61, 123, 49, 48, 48, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 114, 49, 61, 123, 49, 48, 48, 47, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 125, 32, 114, 50, 61, 49, 48, 48, 10, 45, 114, 32, 36, 123, 114, 36, 51, 125, 37, 44, 36, 123, 114, 36, 51, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 32, 123, 36, 49, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 32, 45, 118, 32, 43, 10, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 54, 48, 125, 44, 36, 123, 52, 61, 57, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 32, 102, 97, 100, 101, 100, 32, 116, 105, 108, 101, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 49, 44, 50, 32, 45, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 36, 51, 44, 36, 52, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 53, 10, 45, 118, 32, 43, 10, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 97, 32, 50, 94, 36, 49, 120, 50, 94, 36, 49, 32, 109, 105, 114, 114, 111, 114, 101, 100, 45, 97, 114, 114, 97, 121, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 120, 112, 97, 110, 100, 32, 116, 121, 112, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 50, 62, 61, 51, 125, 32, 45, 114, 32, 51, 51, 37, 44, 51, 51, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 32, 45, 114, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 121, 10, 45, 101, 108, 115, 101, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 121, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 114, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 49, 125, 44, 36, 123, 52, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 51, 120, 36, 52, 32, 97, 114, 114, 97, 121, 32, 111, 102, 32, 116, 105, 108, 101, 115, 32, 102, 114, 111, 109, 32, 36, 49, 120, 36, 50, 32, 97, 114, 114, 97, 121, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 91, 123, 63, 40, 36, 49, 42, 36, 50, 45, 49, 41, 125, 93, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 123, 36, 49, 42, 36, 50, 45, 49, 125, 93, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 51, 44, 36, 52, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 114, 97, 109, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 53, 53, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 102, 114, 97, 109, 101, 95, 120, 121, 32, 36, 123, 49, 45, 45, 49, 125, 10, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 51, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 32, 97, 110, 100, 32, 98, 108, 117, 114, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 45, 40, 97, 98, 115, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 36, 49, 32, 43, 32, 97, 98, 115, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 36, 49, 41, 94, 40, 49, 47, 36, 49, 41, 34, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 45, 98, 91, 45, 50, 93, 32, 36, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 51, 32, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 51, 100, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 32, 97, 110, 100, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 97, 32, 99, 10, 45, 101, 108, 115, 101, 10, 109, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 32, 45, 99, 51, 100, 32, 45, 47, 51, 100, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 52, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 45, 48, 46, 53, 44, 48, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 53, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 48, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 54, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 46, 53, 44, 45, 48, 46, 53, 10, 45, 45, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 91, 48, 93, 32, 36, 55, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 45, 57, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 45, 48, 46, 53, 44, 45, 48, 46, 53, 10, 45, 43, 51, 100, 32, 48, 44, 48, 44, 49, 32, 45, 43, 51, 100, 32, 45, 42, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 109, 10, 102, 61, 49, 48, 48, 48, 10, 99, 120, 61, 36, 50, 42, 36, 119, 47, 50, 42, 40, 36, 102, 43, 36, 109, 42, 36, 49, 41, 47, 36, 102, 10, 99, 121, 61, 36, 51, 42, 36, 104, 47, 50, 42, 40, 36, 102, 43, 36, 109, 42, 36, 49, 41, 47, 36, 102, 10, 45, 115, 51, 100, 32, 45, 114, 91, 50, 93, 32, 51, 44, 123, 64, 123, 50, 44, 104, 125, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 102, 91, 50, 93, 32, 34, 105, 102, 40, 105, 40, 50, 44, 121, 41, 60, 48, 46, 53, 44, 105, 44, 105, 43, 105, 102, 40, 120, 61, 61, 48, 44, 34, 36, 99, 120, 34, 44, 105, 102, 40, 120, 61, 61, 49, 44, 34, 36, 99, 121, 34, 44, 40, 36, 49, 45, 49, 41, 42, 34, 36, 109, 34, 41, 41, 41, 34, 10, 45, 121, 91, 50, 93, 32, 121, 32, 45, 97, 32, 121, 10, 45, 42, 51, 100, 32, 50, 32, 123, 50, 42, 36, 119, 125, 44, 123, 50, 42, 36, 104, 125, 44, 49, 44, 36, 115, 32, 45, 102, 51, 100, 32, 123, 50, 42, 36, 102, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 95, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 49, 56, 48, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 49, 56, 48, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 56, 48, 10, 45, 101, 110, 100, 105, 102, 10, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 53, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 36, 54, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 36, 49, 120, 36, 50, 32, 102, 117, 122, 122, 121, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 117, 122, 122, 121, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 40, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 105, 91, 48, 93, 32, 40, 36, 49, 59, 36, 50, 41, 32, 45, 42, 91, 48, 93, 32, 50, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 64, 123, 48, 44, 49, 125, 44, 49, 44, 49, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 64, 123, 48, 44, 48, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 114, 109, 91, 48, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 36, 49, 44, 45, 36, 50, 44, 48, 44, 48, 44, 50, 32, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 51, 32, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 95, 102, 97, 100, 101, 32, 53, 48, 44, 56, 48, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 52, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 54, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 50, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 52, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 57, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 48, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 50, 53, 125, 44, 36, 123, 53, 61, 50, 48, 48, 125, 44, 36, 123, 54, 61, 49, 50, 48, 125, 44, 36, 123, 49, 51, 61, 49, 50, 51, 52, 53, 54, 55, 56, 57, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 44, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 36, 50, 44, 32, 112, 114, 111, 102, 105, 108, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 52, 45, 54, 125, 41, 44, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 115, 105, 122, 101, 32, 36, 55, 44, 32, 34, 92, 10, 34, 118, 105, 103, 110, 101, 116, 116, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 36, 56, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 36, 57, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 48, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 115, 105, 122, 101, 32, 36, 49, 49, 44, 32, 100, 101, 102, 101, 99, 116, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 50, 32, 97, 110, 100, 32, 115, 101, 114, 105, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 36, 49, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 36, 49, 44, 36, 49, 32, 115, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 39, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 49, 51, 125, 39, 125, 41, 32, 45, 45, 91, 45, 49, 93, 32, 123, 39, 48, 39, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 10, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 123, 49, 45, 36, 50, 125, 44, 123, 49, 43, 36, 50, 125, 10, 45, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 45, 50, 44, 119, 125, 43, 50, 42, 36, 115, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 64, 123, 45, 52, 44, 104, 125, 43, 50, 42, 36, 115, 125, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 44, 123, 36, 115, 45, 49, 125, 44, 123, 36, 115, 45, 49, 125, 44, 48, 44, 123, 36, 115, 45, 49, 125, 44, 49, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 48, 48, 37, 44, 48, 44, 123, 119, 45, 36, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 44, 48, 44, 49, 48, 48, 37, 44, 123, 36, 115, 45, 50, 125, 44, 49, 48, 48, 37, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 115, 43, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 54, 45, 45, 51, 93, 32, 36, 123, 52, 45, 54, 125, 44, 36, 123, 57, 45, 49, 50, 125, 10, 123, 64, 123, 45, 55, 44, 119, 125, 43, 50, 42, 36, 115, 125, 44, 123, 64, 123, 45, 55, 44, 104, 125, 43, 50, 42, 36, 115, 125, 44, 49, 44, 51, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 55, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 51, 93, 44, 49, 32, 45, 114, 109, 91, 45, 55, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 51, 93, 32, 121, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 48, 44, 123, 104, 45, 36, 115, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 51, 93, 44, 49, 32, 45, 114, 109, 91, 45, 54, 44, 45, 51, 93, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 49, 32, 45, 114, 109, 91, 45, 52, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 50, 93, 32, 120, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 123, 119, 45, 36, 115, 125, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 49, 32, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 45, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 56, 32, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 105, 61, 48, 32, 45, 100, 111, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 53, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 34, 109, 61, 36, 53, 47, 50, 48, 48, 59, 40, 105, 97, 60, 109, 45, 48, 46, 50, 32, 124, 124, 32, 105, 97, 62, 109, 43, 48, 46, 50, 41, 32, 38, 38, 32, 34, 36, 105, 34, 60, 49, 48, 34, 125, 10, 45, 98, 91, 45, 49, 93, 32, 36, 55, 32, 45, 103, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 52, 44, 36, 52, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 49, 62, 61, 51, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 124, 124, 36, 50, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 49, 32, 115, 101, 108, 102, 45, 112, 97, 116, 116, 101, 114, 110, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 114, 32, 123, 119, 47, 40, 36, 49, 45, 50, 41, 125, 44, 123, 104, 47, 40, 36, 49, 45, 50, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 49, 42, 119, 125, 44, 123, 36, 49, 42, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 50, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 120, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 49, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 45, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 49, 32, 112, 97, 116, 116, 101, 114, 110, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 117, 115, 105, 110, 103, 32, 102, 105, 114, 115, 116, 32, 105, 109, 97, 103, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 114, 91, 48, 93, 32, 123, 119, 47, 40, 36, 49, 45, 50, 41, 125, 44, 123, 104, 47, 40, 36, 49, 45, 50, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 114, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 119, 125, 43, 50, 42, 119, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 43, 50, 42, 104, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 50, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 120, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 45, 49, 93, 120, 123, 36, 49, 43, 49, 125, 32, 45, 97, 91, 123, 45, 36, 49, 45, 50, 125, 45, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 49, 45, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 49, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 36, 54, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 114, 111, 117, 110, 100, 32, 102, 114, 97, 109, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 105, 122, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 32, 97, 110, 100, 32, 82, 71, 66, 65, 32, 99, 111, 108, 111, 114, 32, 40, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 45, 40, 97, 98, 115, 40, 120, 47, 119, 45, 48, 46, 53, 41, 94, 36, 49, 32, 43, 32, 97, 98, 115, 40, 121, 47, 104, 45, 48, 46, 53, 41, 94, 36, 49, 41, 94, 40, 49, 47, 36, 49, 41, 34, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 105, 91, 45, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 45, 51, 93, 32, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 114, 97, 109, 101, 95, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 53, 53, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 48, 44, 48, 44, 36, 123, 50, 45, 45, 49, 125, 10, 102, 114, 97, 109, 101, 95, 120, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 53, 53, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 50, 53, 53, 125, 10, 45, 118, 32, 45, 32, 95, 95, 115, 61, 34, 36, 63, 34, 32, 45, 118, 32, 43, 10, 45, 95, 36, 48, 32, 36, 123, 49, 45, 45, 49, 125, 10, 95, 102, 114, 97, 109, 101, 95, 120, 121, 32, 58, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 50, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 34, 36, 95, 95, 115, 34, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 51, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 123, 51, 45, 45, 49, 125, 10, 102, 114, 97, 109, 101, 95, 120, 121, 122, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 36, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 53, 53, 125, 44, 36, 123, 53, 61, 36, 52, 125, 44, 36, 123, 54, 61, 36, 53, 125, 44, 36, 123, 55, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 120, 36, 50, 120, 36, 51, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 120, 121, 122, 45, 97, 120, 101, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 52, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 123, 52, 45, 45, 49, 125, 10, 102, 114, 97, 109, 101, 95, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 50, 53, 53, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 36, 123, 52, 61, 36, 51, 125, 44, 36, 123, 53, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 115, 101, 114, 116, 32, 36, 49, 32, 111, 117, 116, 101, 114, 32, 102, 114, 97, 109, 101, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 108, 111, 110, 103, 32, 116, 104, 101, 32, 121, 45, 97, 120, 105, 115, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 123, 50, 45, 45, 49, 125, 41, 46, 34, 10, 45, 95, 102, 114, 97, 109, 101, 32, 48, 44, 36, 49, 44, 48, 44, 36, 123, 50, 45, 45, 49, 125, 10, 95, 102, 114, 97, 109, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 44, 49, 41, 41, 125, 10, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 44, 49, 41, 41, 125, 10, 100, 61, 123, 114, 111, 117, 110, 100, 40, 36, 51, 42, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 100, 44, 49, 41, 41, 125, 10, 45, 114, 32, 123, 119, 43, 50, 42, 36, 119, 125, 44, 123, 104, 43, 50, 42, 36, 104, 125, 44, 123, 100, 43, 50, 42, 36, 100, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 102, 32, 123, 36, 119, 125, 32, 36, 119, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 64, 123, 48, 44, 119, 45, 36, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 125, 32, 49, 48, 48, 37, 44, 36, 104, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 64, 123, 48, 44, 104, 45, 36, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 100, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 36, 100, 44, 49, 48, 48, 37, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 123, 52, 45, 45, 49, 125, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 64, 123, 48, 44, 100, 45, 36, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 105, 109, 97, 103, 101, 32, 103, 114, 105, 100, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 50, 93, 32, 64, 45, 49, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 50, 93, 32, 64, 45, 49, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 91, 45, 49, 93, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 105, 110, 101, 97, 114, 105, 122, 101, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 102, 32, 120, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 121, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 119, 104, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 48, 125, 34, 42, 120, 32, 43, 32, 34, 64, 123, 45, 49, 44, 49, 125, 34, 42, 121, 32, 43, 32, 34, 64, 123, 45, 49, 44, 50, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 115, 41, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 81, 117, 97, 100, 114, 97, 116, 105, 122, 101, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 115, 61, 123, 115, 125, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 115, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 45, 102, 32, 120, 94, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 94, 50, 32, 45, 45, 102, 91, 45, 49, 93, 32, 120, 42, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 120, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 121, 32, 121, 32, 45, 97, 91, 94, 48, 93, 32, 120, 32, 45, 115, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 119, 104, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 48, 125, 34, 42, 120, 94, 50, 32, 43, 32, 34, 64, 123, 45, 49, 44, 49, 125, 34, 42, 121, 94, 50, 32, 43, 32, 34, 64, 123, 45, 49, 44, 50, 125, 34, 42, 120, 42, 121, 32, 43, 34, 64, 123, 45, 49, 44, 51, 125, 34, 42, 120, 32, 43, 32, 34, 64, 123, 45, 49, 44, 52, 125, 34, 42, 121, 32, 43, 32, 34, 64, 123, 45, 49, 44, 53, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 115, 41, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 56, 125, 44, 36, 123, 51, 61, 36, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 50, 120, 36, 51, 32, 116, 105, 108, 101, 100, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 50, 44, 36, 51, 44, 49, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 49, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 50, 44, 36, 51, 32, 45, 118, 32, 43, 10, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 36, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 36, 49, 120, 36, 50, 32, 116, 105, 108, 101, 100, 45, 115, 104, 105, 102, 116, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 51, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 97, 113, 117, 105, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 116, 97, 113, 117, 105, 110, 32, 112, 117, 122, 122, 108, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 42, 36, 50, 125, 32, 45, 109, 118, 91, 36, 62, 93, 32, 123, 63, 40, 64, 35, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 117, 110, 110, 101, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 57, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 56, 48, 37, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 44, 36, 123, 53, 61, 48, 46, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 117, 110, 110, 101, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 49, 44, 32, 102, 97, 99, 116, 111, 114, 32, 36, 50, 44, 32, 99, 101, 110, 116, 101, 114, 105, 110, 103, 32, 40, 36, 51, 44, 36, 52, 41, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 53, 32, 97, 110, 100, 32, 97, 110, 103, 108, 101, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 45, 114, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 49, 44, 49, 48, 48, 37, 44, 53, 10, 45, 105, 102, 32, 36, 54, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 54, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 119, 41, 42, 36, 51, 125, 44, 123, 40, 64, 123, 45, 51, 44, 104, 125, 45, 104, 41, 42, 36, 52, 125, 44, 48, 44, 48, 44, 36, 53, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 42, 36, 51, 125, 44, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 104, 41, 42, 36, 52, 125, 44, 48, 44, 48, 44, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 51, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 49, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 48, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 51, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 98, 111, 120, 32, 102, 105, 116, 116, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 111, 120, 32, 115, 105, 122, 101, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 97, 116, 116, 101, 109, 112, 116, 115, 46, 34, 10, 45, 118, 32, 45, 10, 109, 105, 110, 95, 115, 105, 122, 101, 61, 36, 49, 10, 109, 97, 120, 95, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 50, 44, 36, 50, 44, 109, 97, 120, 40, 119, 44, 104, 41, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 32, 112, 114, 101, 99, 61, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 101, 56, 10, 45, 105, 102, 32, 123, 36, 62, 60, 49, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 101, 45, 51, 44, 36, 51, 41, 125, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 36, 112, 114, 101, 99, 42, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 125, 10, 112, 114, 101, 99, 61, 123, 109, 97, 120, 40, 49, 44, 36, 112, 114, 101, 99, 42, 48, 46, 57, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 109, 105, 110, 95, 115, 105, 122, 101, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 94, 50, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 51, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 33, 105, 77, 125, 32, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 43, 49, 125, 32, 45, 105, 102, 32, 123, 36, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 62, 36, 52, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 110, 98, 95, 97, 116, 116, 101, 109, 112, 116, 115, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 40, 36, 109, 97, 120, 95, 115, 105, 122, 101, 45, 36, 109, 105, 110, 95, 115, 105, 122, 101, 41, 47, 50, 41, 125, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 97, 114, 101, 97, 95, 102, 103, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 113, 91, 45, 49, 93, 32, 123, 40, 36, 109, 105, 110, 95, 115, 105, 122, 101, 43, 50, 42, 36, 62, 43, 50, 41, 94, 50, 125, 10, 45, 105, 102, 32, 123, 33, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 97, 114, 116, 111, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 49, 53, 48, 125, 44, 36, 123, 51, 61, 50, 48, 125, 44, 36, 123, 52, 61, 48, 46, 50, 53, 125, 44, 36, 123, 53, 61, 49, 46, 53, 125, 44, 36, 123, 54, 61, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 97, 114, 116, 111, 111, 110, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 44, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 36, 50, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 52, 44, 32, 99, 111, 108, 111, 114, 32, 36, 53, 32, 97, 110, 100, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 36, 54, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 50, 44, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 45, 101, 100, 103, 101, 115, 32, 36, 51, 32, 45, 98, 91, 45, 49, 93, 32, 36, 52, 32, 45, 103, 101, 91, 45, 49, 93, 32, 48, 46, 57, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 51, 44, 45, 50, 93, 32, 36, 53, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 50, 93, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 54, 44, 49, 44, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 105, 114, 99, 108, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 52, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 51, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 54, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 105, 114, 99, 108, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 114, 97, 100, 105, 117, 115, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 36, 53, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 45, 94, 91, 45, 49, 93, 32, 36, 53, 32, 45, 94, 91, 45, 50, 93, 32, 36, 52, 32, 115, 117, 109, 103, 48, 61, 64, 123, 45, 49, 44, 43, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 105, 116, 61, 48, 32, 102, 97, 105, 108, 101, 100, 61, 48, 32, 110, 111, 101, 100, 103, 101, 115, 61, 48, 32, 115, 118, 103, 61, 34, 45, 49, 44, 45, 49, 34, 10, 45, 100, 111, 10, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 51, 10, 45, 105, 102, 32, 36, 110, 111, 101, 100, 103, 101, 115, 32, 120, 121, 122, 99, 61, 64, 123, 45, 49, 44, 67, 125, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 120, 121, 122, 99, 61, 64, 123, 45, 49, 44, 67, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 64, 123, 45, 52, 44, 40, 36, 120, 121, 122, 99, 41, 125, 10, 120, 61, 123, 97, 114, 103, 40, 49, 44, 36, 120, 121, 122, 99, 41, 125, 10, 121, 61, 123, 97, 114, 103, 40, 50, 44, 36, 120, 121, 122, 99, 41, 125, 10, 114, 61, 123, 109, 105, 110, 40, 109, 97, 120, 40, 36, 49, 44, 36, 50, 42, 40, 49, 45, 36, 110, 41, 41, 44, 115, 113, 114, 116, 40, 64, 123, 45, 49, 44, 40, 36, 120, 121, 122, 99, 41, 125, 41, 45, 50, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 114, 62, 61, 36, 49, 125, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 50, 93, 32, 36, 120, 44, 36, 121, 44, 123, 36, 114, 43, 36, 49, 125, 44, 123, 36, 114, 43, 36, 49, 125, 44, 48, 44, 49, 44, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 120, 48, 61, 123, 36, 120, 45, 36, 114, 47, 50, 125, 32, 121, 48, 61, 123, 36, 121, 45, 36, 114, 47, 50, 125, 32, 120, 49, 61, 123, 36, 120, 43, 36, 114, 47, 50, 125, 32, 121, 49, 61, 123, 36, 121, 43, 36, 114, 47, 50, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 49, 10, 120, 48, 61, 123, 36, 120, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 121, 48, 61, 123, 36, 121, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 120, 49, 61, 123, 36, 120, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 32, 121, 49, 61, 123, 36, 121, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 50, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 45, 49, 10, 45, 101, 108, 115, 101, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 45, 36, 114, 47, 50, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 45, 36, 114, 47, 50, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 43, 36, 114, 47, 50, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 43, 36, 114, 47, 50, 41, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 44, 36, 120, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 44, 36, 120, 44, 36, 121, 49, 44, 49, 44, 49, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 45, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 120, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 121, 43, 40, 36, 114, 43, 36, 49, 41, 47, 50, 41, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 44, 36, 120, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 44, 36, 120, 44, 36, 121, 49, 44, 49, 44, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 102, 97, 105, 108, 101, 100, 61, 48, 10, 45, 101, 108, 115, 101, 10, 45, 61, 91, 45, 50, 93, 32, 45, 49, 44, 36, 120, 44, 36, 121, 10, 102, 97, 105, 108, 101, 100, 61, 123, 36, 102, 97, 105, 108, 101, 100, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 102, 97, 105, 108, 101, 100, 61, 61, 49, 48, 48, 125, 32, 102, 97, 105, 108, 101, 100, 61, 48, 32, 45, 105, 102, 32, 36, 110, 111, 101, 100, 103, 101, 115, 32, 110, 61, 45, 49, 32, 45, 101, 108, 115, 101, 32, 110, 111, 101, 100, 103, 101, 115, 61, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 105, 116, 61, 123, 36, 105, 116, 43, 49, 125, 10, 45, 105, 102, 32, 123, 33, 40, 36, 105, 116, 37, 53, 48, 41, 125, 10, 112, 61, 123, 114, 111, 117, 110, 100, 40, 49, 48, 48, 42, 40, 40, 36, 115, 117, 109, 103, 48, 45, 64, 123, 45, 50, 44, 43, 125, 41, 47, 64, 123, 45, 50, 44, 119, 104, 125, 41, 94, 51, 41, 125, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 36, 112, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 34, 36, 112, 37, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 110, 62, 61, 48, 125, 10, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 45, 49, 10, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 52, 48, 48, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 36, 49, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 32, 101, 108, 108, 105, 112, 115, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 109, 97, 120, 105, 109, 117, 109, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 63, 40, 48, 44, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 48, 44, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 48, 44, 36, 50, 41, 125, 37, 44, 123, 63, 40, 48, 44, 36, 50, 41, 125, 37, 44, 123, 63, 40, 48, 44, 51, 54, 48, 41, 125, 44, 36, 51, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 117, 98, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 53, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 55, 53, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 117, 98, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 109, 97, 120, 105, 109, 117, 109, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 53, 46, 34, 10, 45, 105, 102, 32, 123, 34, 33, 36, 49, 32, 124, 124, 32, 33, 36, 50, 32, 124, 124, 32, 33, 36, 51, 32, 124, 124, 32, 33, 36, 52, 34, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 80, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 50, 48, 48, 41, 125, 10, 78, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 36, 49, 42, 119, 42, 104, 47, 40, 52, 42, 36, 80, 41, 47, 49, 48, 48, 41, 125, 10, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 40, 123, 52, 42, 36, 78, 125, 59, 36, 78, 41, 10, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 36, 80, 44, 123, 36, 119, 45, 49, 45, 36, 80, 125, 32, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 36, 80, 44, 123, 36, 104, 45, 49, 45, 36, 80, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 45, 45, 43, 91, 45, 49, 93, 32, 39, 45, 36, 80, 44, 45, 36, 80, 39, 32, 45, 45, 43, 91, 45, 50, 93, 32, 39, 36, 80, 44, 45, 36, 80, 39, 32, 45, 45, 43, 91, 45, 51, 93, 32, 39, 36, 80, 44, 36, 80, 39, 32, 45, 45, 43, 91, 45, 52, 93, 32, 39, 45, 36, 80, 44, 36, 80, 39, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 105, 91, 45, 50, 93, 32, 40, 49, 50, 44, 48, 44, 49, 44, 50, 44, 51, 59, 49, 50, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 49, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 50, 125, 44, 123, 52, 42, 40, 36, 78, 45, 49, 41, 43, 51, 125, 41, 10, 45, 114, 91, 45, 50, 93, 32, 53, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 32, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 50, 50, 53, 45, 36, 51, 125, 44, 123, 50, 50, 53, 43, 36, 51, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 52, 45, 45, 51, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 52, 44, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 32, 45, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 113, 114, 116, 40, 50, 41, 42, 36, 80, 125, 10, 45, 114, 91, 45, 51, 93, 32, 52, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 10, 40, 45, 49, 50, 56, 59, 36, 119, 59, 36, 104, 59, 36, 115, 41, 32, 45, 45, 98, 91, 48, 93, 32, 36, 53, 10, 45, 105, 102, 32, 123, 36, 78, 62, 49, 125, 32, 52, 44, 123, 36, 78, 45, 49, 125, 44, 49, 44, 49, 44, 45, 49, 50, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 49, 10, 45, 121, 91, 49, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 49, 45, 45, 49, 93, 32, 121, 32, 45, 114, 118, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 62, 61, 49, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 49, 93, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 111, 116, 115, 98, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 100, 111, 116, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 99, 97, 108, 101, 40, 115, 41, 44, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 36, 50, 37, 32, 97, 110, 100, 32, 114, 97, 100, 105, 117, 115, 32, 102, 97, 99, 116, 111, 114, 32, 37, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 111, 114, 109, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 44, 50, 32, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 36, 119, 47, 119, 41, 125, 32, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 36, 104, 47, 104, 41, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 123, 36, 49, 45, 49, 125, 32, 45, 114, 111, 117, 110, 100, 10, 36, 119, 44, 36, 104, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 48, 44, 110, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 61, 61, 91, 48, 93, 32, 36, 62, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 108, 101, 91, 45, 49, 93, 32, 123, 48, 46, 54, 53, 42, 36, 51, 42, 36, 100, 120, 42, 36, 62, 47, 36, 49, 45, 49, 125, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 104, 105, 114, 108, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 55, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 97, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 49, 44, 48, 44, 49, 44, 50, 44, 50, 10, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 114, 97, 119, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 100, 114, 97, 119, 105, 110, 103, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 48, 46, 50, 44, 49, 44, 51, 44, 51, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 32, 91, 48, 93, 10, 45, 114, 91, 48, 93, 32, 50, 48, 44, 50, 48, 44, 49, 44, 51, 44, 50, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 105, 110, 100, 101, 120, 91, 49, 93, 32, 91, 48, 93, 44, 49, 44, 49, 10, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 111, 112, 32, 115, 104, 97, 100, 111, 119, 32, 98, 101, 104, 105, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 100, 120, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 36, 49, 44, 36, 49, 41, 125, 10, 100, 121, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 125, 10, 115, 105, 103, 109, 97, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 51, 125, 44, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 51, 44, 36, 51, 41, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 99, 111, 111, 114, 100, 115, 61, 64, 123, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 91, 45, 49, 93, 92, 32, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 114, 111, 112, 32, 36, 99, 111, 111, 114, 100, 115, 10, 45, 114, 32, 123, 119, 43, 97, 98, 115, 40, 36, 100, 120, 41, 125, 44, 123, 104, 43, 97, 98, 115, 40, 36, 100, 121, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 123, 105, 102, 40, 36, 100, 120, 62, 48, 44, 48, 44, 49, 41, 125, 44, 123, 105, 102, 40, 36, 100, 121, 62, 48, 44, 48, 44, 49, 41, 125, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 52, 42, 36, 115, 105, 103, 109, 97, 125, 44, 123, 104, 43, 52, 42, 36, 115, 105, 103, 109, 97, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 36, 100, 120, 44, 36, 100, 121, 10, 45, 101, 108, 115, 101, 10, 40, 48, 59, 123, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 100, 120, 10, 40, 48, 44, 123, 112, 105, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 100, 121, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 115, 105, 103, 109, 97, 44, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 36, 119, 44, 36, 104, 44, 49, 44, 36, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 97, 114, 103, 40, 49, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 44, 123, 97, 114, 103, 40, 50, 44, 36, 99, 111, 111, 114, 100, 115, 41, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 56, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 54, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 37, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 102, 105, 108, 116, 101, 114, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 105, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 111, 117, 116, 108, 105, 110, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 97, 116, 97, 110, 50, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 56, 48, 47, 112, 105, 125, 32, 45, 43, 91, 45, 49, 93, 32, 57, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 44, 49, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 54, 42, 119, 42, 104, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 10, 120, 121, 61, 123, 63, 40, 119, 41, 125, 44, 123, 63, 40, 104, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 121, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 50, 44, 40, 36, 120, 121, 41, 125, 44, 36, 52, 44, 92, 10, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 48, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 49, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 50, 41, 125, 44, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 51, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 121, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 50, 44, 40, 36, 120, 121, 41, 125, 44, 36, 52, 44, 48, 120, 49, 44, 92, 10, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 48, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 49, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 50, 41, 125, 47, 36, 53, 125, 44, 123, 64, 123, 45, 51, 44, 40, 36, 120, 121, 44, 48, 44, 51, 41, 125, 47, 36, 53, 125, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 102, 105, 114, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 101, 100, 103, 101, 115, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 44, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 44, 32, 34, 92, 10, 34, 36, 53, 32, 102, 114, 97, 109, 101, 115, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 36, 54, 32, 97, 110, 100, 32, 102, 114, 97, 109, 101, 32, 115, 107, 105, 112, 32, 36, 55, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 110, 111, 114, 109, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 49, 32, 45, 102, 91, 48, 93, 32, 48, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 49, 45, 36, 50, 94, 52, 41, 47, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 53, 42, 40, 49, 43, 36, 55, 41, 43, 36, 54, 125, 10, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 42, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 10, 45, 105, 102, 32, 36, 52, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 101, 108, 115, 101, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 105, 102, 32, 123, 36, 62, 62, 61, 36, 54, 34, 32, 38, 38, 32, 34, 40, 36, 62, 45, 36, 54, 41, 37, 40, 36, 55, 43, 49, 41, 61, 61, 48, 125, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 103, 108, 111, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 115, 111, 102, 116, 32, 103, 108, 111, 119, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 98, 91, 48, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 48, 44, 45, 49, 93, 32, 49, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 97, 108, 102, 116, 111, 110, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 50, 61, 56, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 51, 61, 56, 125, 62, 61, 50, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 53, 125, 10, 45, 118, 32, 45, 32, 115, 48, 61, 34, 115, 113, 117, 97, 114, 101, 34, 32, 115, 49, 61, 34, 100, 105, 97, 109, 111, 110, 100, 34, 32, 115, 50, 61, 34, 99, 105, 114, 99, 108, 101, 34, 32, 115, 51, 61, 34, 105, 110, 118, 45, 115, 113, 117, 97, 114, 101, 34, 32, 115, 52, 61, 34, 105, 110, 118, 45, 100, 105, 97, 109, 111, 110, 100, 34, 32, 115, 53, 61, 34, 105, 110, 118, 45, 99, 105, 114, 99, 108, 101, 34, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 97, 108, 102, 116, 111, 110, 101, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 108, 101, 118, 101, 108, 115, 44, 32, 100, 97, 114, 107, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 98, 114, 105, 103, 104, 116, 32, 115, 105, 122, 101, 32, 36, 52, 44, 32, 34, 36, 123, 115, 36, 52, 125, 34, 32, 115, 104, 97, 112, 101, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 48, 44, 50, 53, 53, 41, 32, 45, 97, 32, 121, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 49, 44, 48, 32, 45, 114, 111, 119, 115, 32, 48, 44, 123, 104, 45, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 115, 61, 123, 114, 111, 117, 110, 100, 40, 40, 36, 50, 42, 36, 60, 43, 36, 51, 42, 36, 62, 41, 47, 40, 36, 49, 45, 49, 41, 41, 125, 10, 36, 115, 44, 36, 115, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 123, 36, 52, 37, 51, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 109, 105, 110, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 62, 61, 51, 125, 32, 45, 108, 116, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 60, 47, 40, 36, 49, 45, 49, 46, 49, 41, 125, 37, 32, 45, 42, 91, 45, 49, 93, 32, 123, 45, 50, 53, 53, 125, 32, 45, 43, 91, 45, 49, 93, 32, 123, 50, 53, 53, 45, 36, 62, 125, 10, 45, 101, 108, 115, 101, 32, 45, 108, 116, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 62, 47, 40, 36, 49, 45, 49, 46, 49, 41, 125, 37, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 36, 62, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 36, 53, 32, 45, 45, 101, 113, 91, 45, 50, 93, 32, 36, 62, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 48, 125, 44, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 48, 46, 49, 125, 44, 36, 123, 52, 61, 50, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 97, 114, 100, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 51, 32, 97, 110, 100, 32, 101, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 50, 53, 53, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 103, 32, 120, 121, 32, 45, 114, 118, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 97, 32, 99, 10, 45, 105, 102, 32, 36, 52, 32, 45, 45, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 42, 32, 45, 101, 110, 100, 105, 102, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 113, 117, 105, 118, 101, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 109, 97, 120, 40, 49, 44, 49, 48, 45, 36, 50, 47, 54, 41, 125, 44, 36, 49, 44, 48, 44, 36, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 103, 32, 120, 121, 32, 45, 114, 118, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 97, 32, 99, 32, 45, 42, 32, 36, 49, 10, 45, 45, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 50, 44, 50, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 32, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 115, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 91, 45, 51, 93, 32, 49, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 50, 93, 32, 40, 123, 50, 42, 104, 125, 44, 123, 104, 125, 41, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 42, 121, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 51, 32, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 104, 101, 97, 114, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 101, 97, 114, 116, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 45, 95, 104, 101, 97, 114, 116, 57, 120, 55, 10, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 104, 101, 97, 114, 116, 57, 120, 55, 32, 58, 10, 40, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 56, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 52, 60, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 49, 48, 48, 37, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 104, 111, 117, 103, 104, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 50, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 118, 111, 116, 101, 115, 105, 122, 101, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 114, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 53, 125, 44, 36, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 44, 36, 53, 41, 41, 125, 32, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 104, 111, 117, 103, 104, 32, 36, 114, 101, 115, 44, 36, 114, 101, 115, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 51, 37, 32, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 91, 45, 49, 93, 10, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 54, 45, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 104, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 10, 45, 42, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 47, 36, 114, 101, 115, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 114, 104, 111, 109, 97, 120, 47, 36, 114, 101, 115, 125, 10, 45, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 119, 47, 50, 125, 10, 45, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 104, 47, 50, 125, 10, 45, 114, 109, 91, 45, 51, 93, 10, 45, 105, 91, 45, 51, 93, 32, 91, 45, 51, 93, 10, 45, 99, 111, 115, 91, 45, 52, 93, 32, 45, 115, 105, 110, 91, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 49, 48, 48, 48, 48, 10, 45, 45, 43, 91, 45, 50, 93, 32, 91, 45, 51, 93, 10, 45, 45, 45, 91, 45, 50, 93, 32, 91, 45, 53, 93, 10, 45, 45, 91, 45, 52, 93, 32, 91, 45, 53, 93, 10, 45, 43, 91, 45, 51, 93, 32, 91, 45, 54, 93, 10, 45, 114, 109, 91, 45, 54, 44, 45, 53, 93, 10, 45, 105, 91, 45, 51, 93, 32, 49, 44, 123, 104, 125, 32, 49, 44, 123, 104, 125, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 105, 91, 45, 50, 93, 32, 40, 123, 50, 42, 104, 125, 44, 123, 104, 125, 41, 10, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 42, 121, 32, 45, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 120, 10, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 49, 44, 123, 104, 125, 44, 49, 44, 49, 44, 36, 52, 10, 45, 121, 91, 45, 54, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 125, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 114, 97, 121, 32, 108, 105, 103, 104, 116, 115, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 44, 32, 114, 97, 121, 32, 108, 101, 110, 103, 116, 104, 32, 36, 52, 32, 97, 110, 100, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 42, 32, 45, 49, 32, 45, 108, 116, 32, 36, 49, 37, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 108, 111, 103, 50, 40, 119, 41, 125, 32, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 50, 94, 36, 62, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 48, 46, 53, 44, 48, 44, 49, 44, 123, 36, 52, 42, 119, 125, 44, 49, 44, 123, 49, 43, 40, 36, 52, 43, 49, 45, 36, 53, 41, 42, 119, 125, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 10, 40, 49, 44, 123, 119, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 51, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 51, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 50, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 50, 125, 44, 36, 123, 54, 61, 48, 46, 53, 125, 44, 36, 123, 55, 61, 48, 46, 53, 125, 44, 36, 123, 56, 61, 49, 125, 44, 36, 123, 57, 61, 49, 125, 44, 36, 123, 49, 48, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 101, 108, 105, 101, 102, 32, 108, 105, 103, 104, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 45, 36, 54, 125, 44, 123, 49, 45, 36, 54, 125, 59, 123, 45, 36, 54, 125, 44, 123, 49, 45, 36, 54, 125, 94, 123, 45, 36, 55, 125, 44, 123, 45, 36, 55, 125, 59, 123, 49, 45, 36, 55, 125, 44, 123, 49, 45, 36, 55, 125, 94, 36, 56, 44, 36, 56, 59, 36, 56, 44, 36, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 44, 51, 10, 45, 105, 102, 32, 36, 49, 48, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 51, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 51, 93, 32, 45, 101, 108, 115, 101, 32, 45, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 57, 32, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 36, 54, 42, 49, 48, 48, 125, 37, 44, 123, 36, 55, 42, 49, 48, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 47, 91, 45, 49, 93, 32, 123, 40, 36, 51, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 94, 50, 125, 32, 45, 101, 120, 112, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 36, 49, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 77, 125, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 109, 111, 115, 97, 105, 99, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 56, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 109, 111, 115, 97, 105, 99, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 108, 97, 98, 101, 108, 48, 61, 123, 49, 43, 105, 109, 125, 32, 45, 43, 32, 36, 108, 97, 98, 101, 108, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 36, 49, 42, 50, 125, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 105, 102, 40, 36, 50, 44, 48, 44, 49, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 50, 32, 45, 45, 108, 91, 45, 49, 93, 32, 45, 103, 116, 32, 48, 32, 45, 115, 32, 99, 32, 45, 97, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 50, 93, 32, 36, 108, 97, 98, 101, 108, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 45, 91, 45, 49, 93, 32, 36, 108, 97, 98, 101, 108, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 108, 100, 95, 112, 104, 111, 116, 111, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 111, 108, 100, 32, 112, 104, 111, 116, 111, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 111, 105, 115, 101, 32, 50, 48, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 51, 48, 44, 54, 48, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 32, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 50, 48, 44, 50, 48, 44, 54, 44, 51, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 48, 46, 55, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 115, 101, 112, 105, 97, 32, 45, 118, 32, 43, 10, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 51, 125, 44, 36, 123, 50, 61, 54, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 112, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 110, 111, 114, 109, 32, 45, 98, 32, 36, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 52, 48, 48, 48, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 50, 44, 48, 44, 49, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 115, 113, 114, 116, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 108, 97, 114, 111, 105, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 50, 48, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 112, 111, 108, 97, 114, 111, 105, 100, 32, 101, 102, 102, 101, 99, 116, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 111, 114, 100, 101, 114, 115, 32, 115, 105, 122, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 123, 49, 48, 48, 43, 36, 49, 125, 37, 44, 123, 49, 48, 48, 43, 36, 49, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 49, 48, 48, 43, 36, 50, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 50, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 53, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 120, 121, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 49, 44, 48, 44, 49, 44, 123, 109, 97, 120, 40, 48, 44, 40, 49, 48, 48, 45, 40, 36, 49, 37, 41, 94, 48, 46, 49, 42, 49, 48, 48, 41, 42, 50, 53, 53, 37, 41, 125, 44, 48, 46, 57, 57, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 40, 49, 48, 49, 45, 40, 36, 49, 37, 41, 94, 48, 46, 49, 42, 49, 48, 48, 43, 36, 50, 41, 42, 50, 53, 53, 37, 41, 125, 44, 48, 46, 48, 49, 44, 50, 53, 53, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 123, 109, 105, 110, 40, 53, 48, 44, 36, 52, 41, 125, 44, 48, 44, 49, 44, 123, 36, 52, 47, 52, 48, 125, 44, 123, 36, 52, 47, 52, 48, 125, 44, 48, 46, 56, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 123, 114, 111, 117, 110, 100, 40, 40, 52, 45, 115, 113, 114, 116, 40, 36, 53, 43, 49, 41, 41, 42, 51, 50, 43, 50, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 123, 109, 105, 110, 40, 53, 48, 44, 36, 54, 41, 125, 44, 48, 44, 49, 44, 123, 36, 54, 47, 52, 48, 125, 44, 123, 36, 54, 47, 52, 48, 125, 44, 48, 46, 56, 44, 57, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 49, 60, 61, 50, 48, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 52, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 55, 125, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 111, 100, 105, 108, 105, 117, 115, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 51, 44, 32, 36, 52, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 44, 32, 111, 102, 102, 115, 101, 116, 32, 36, 53, 32, 97, 110, 100, 32, 34, 92, 10, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 54, 44, 98, 114, 105, 103, 104, 116, 101, 114, 44, 100, 97, 114, 107, 101, 114, 125, 34, 32, 99, 111, 108, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 105, 102, 32, 123, 33, 36, 54, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 110, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 114, 111, 117, 110, 100, 40, 36, 52, 41, 125, 10, 97, 110, 103, 108, 101, 61, 123, 36, 53, 43, 36, 62, 42, 49, 56, 48, 47, 114, 111, 117, 110, 100, 40, 36, 52, 41, 125, 10, 45, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 50, 93, 32, 36, 49, 37, 44, 123, 36, 49, 42, 36, 50, 47, 49, 48, 48, 125, 37, 44, 36, 97, 110, 103, 108, 101, 44, 49, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 55, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 33, 36, 54, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 48, 46, 50, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 116, 97, 105, 110, 101, 100, 32, 103, 108, 97, 115, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 50, 32, 97, 110, 100, 32, 116, 104, 105, 110, 45, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 101, 110, 97, 98, 108, 101, 100, 44, 100, 105, 115, 97, 98, 108, 101, 100, 125, 34, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 105, 109, 61, 123, 49, 43, 105, 109, 125, 32, 45, 43, 32, 36, 105, 109, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 101, 49, 48, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 93, 32, 36, 105, 109, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 32, 45, 94, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 116, 97, 114, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 37, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 51, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 53, 125, 62, 61, 49, 32, 38, 38, 32, 36, 123, 53, 61, 48, 46, 51, 56, 125, 62, 61, 48, 32, 38, 38, 32, 36, 53, 60, 61, 49, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 50, 48, 48, 125, 44, 36, 123, 56, 61, 36, 55, 125, 44, 36, 123, 57, 61, 36, 56, 125, 44, 36, 123, 49, 48, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 36, 49, 32, 114, 97, 110, 100, 111, 109, 32, 115, 116, 97, 114, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 112, 116, 104, 32, 36, 50, 44, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 36, 52, 32, 98, 114, 97, 110, 99, 104, 101, 115, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 53, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 54, 44, 32, 99, 111, 108, 111, 114, 32, 40, 36, 55, 44, 36, 56, 44, 36, 57, 41, 32, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 48, 46, 34, 10, 45, 118, 32, 45, 10, 45, 115, 116, 97, 114, 51, 100, 32, 36, 52, 44, 36, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 10, 45, 108, 91, 45, 49, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 123, 114, 111, 117, 110, 100, 40, 50, 42, 36, 51, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 50, 42, 36, 51, 41, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 48, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 51, 100, 91, 48, 93, 32, 48, 44, 48, 44, 49, 44, 57, 48, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 52, 45, 45, 49, 93, 32, 48, 32, 45, 114, 50, 100, 121, 91, 45, 52, 45, 45, 49, 93, 32, 36, 51, 32, 45, 98, 91, 45, 52, 45, 45, 49, 93, 32, 36, 54, 44, 48, 32, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 115, 104, 91, 123, 45, 49, 45, 36, 62, 125, 93, 32, 48, 44, 50, 32, 45, 102, 99, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 91, 45, 52, 45, 45, 49, 93, 32, 45, 108, 91, 36, 62, 44, 45, 52, 45, 45, 49, 93, 10, 78, 61, 123, 114, 111, 117, 110, 100, 40, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 104, 42, 36, 49, 44, 36, 49, 41, 47, 52, 44, 49, 44, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 50, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 49, 44, 49, 32, 49, 44, 36, 78, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 39, 67, 73, 109, 103, 51, 100, 39, 125, 41, 32, 45, 43, 91, 45, 50, 93, 32, 48, 46, 53, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 78, 59, 36, 78, 41, 10, 40, 49, 44, 48, 59, 49, 44, 123, 36, 78, 45, 49, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 52, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 53, 44, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 121, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 112, 114, 105, 116, 101, 115, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 55, 53, 42, 64, 123, 48, 44, 119, 125, 125, 44, 123, 48, 46, 55, 53, 42, 64, 123, 48, 44, 104, 125, 125, 44, 123, 49, 48, 48, 48, 42, 36, 50, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 36, 49, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 56, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 51, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 53, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 56, 61, 48, 46, 54, 125, 62, 48, 32, 38, 38, 32, 36, 123, 57, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 48, 61, 48, 46, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 49, 61, 48, 46, 50, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 49, 50, 61, 49, 125, 62, 61, 48, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 52, 53, 125, 44, 36, 123, 54, 61, 48, 46, 48, 51, 125, 44, 36, 123, 49, 51, 61, 48, 125, 44, 36, 123, 49, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 115, 107, 101, 116, 99, 104, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 32, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 10, 119, 61, 49, 32, 104, 61, 49, 32, 45, 105, 91, 48, 93, 32, 49, 32, 45, 109, 51, 100, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 47, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 105, 77, 44, 105, 109, 41, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 64, 123, 45, 52, 44, 110, 125, 44, 49, 10, 45, 105, 102, 32, 123, 36, 119, 33, 61, 119, 124, 124, 36, 104, 33, 61, 104, 125, 10, 45, 114, 109, 91, 48, 93, 32, 123, 36, 56, 42, 119, 42, 104, 47, 40, 36, 49, 42, 115, 113, 114, 116, 40, 36, 52, 41, 41, 125, 10, 45, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 32, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 123, 64, 123, 45, 51, 44, 119, 125, 45, 49, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 108, 112, 104, 97, 61, 123, 40, 36, 50, 43, 36, 62, 42, 36, 51, 47, 36, 49, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 119, 125, 10, 120, 121, 61, 64, 123, 48, 44, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 48, 44, 40, 36, 62, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 53, 44, 40, 36, 120, 121, 41, 125, 43, 64, 123, 45, 51, 44, 40, 36, 120, 121, 41, 125, 60, 36, 53, 125, 32, 111, 112, 97, 99, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 111, 112, 97, 99, 61, 123, 36, 55, 42, 36, 54, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 111, 112, 97, 99, 10, 45, 45, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 91, 45, 49, 93, 32, 36, 120, 121, 44, 48, 44, 36, 52, 44, 48, 46, 56, 44, 48, 44, 48, 44, 49, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 111, 112, 97, 99, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 116, 114, 101, 97, 109, 108, 105, 110, 101, 51, 100, 91, 45, 49, 93, 32, 36, 120, 121, 44, 48, 44, 36, 52, 44, 48, 46, 56, 44, 48, 44, 49, 44, 49, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 48, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 36, 111, 112, 97, 99, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 108, 112, 104, 97, 61, 123, 40, 36, 50, 43, 36, 62, 42, 36, 51, 47, 36, 49, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 45, 52, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 45, 42, 91, 45, 52, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 119, 125, 10, 120, 61, 64, 123, 48, 44, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 48, 44, 40, 36, 62, 44, 49, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 53, 44, 40, 36, 120, 44, 36, 121, 41, 125, 43, 64, 123, 45, 51, 44, 40, 36, 120, 44, 36, 121, 41, 125, 60, 36, 53, 125, 32, 111, 112, 97, 99, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 111, 112, 97, 99, 61, 123, 36, 55, 42, 36, 54, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 111, 112, 97, 99, 10, 45, 108, 105, 110, 101, 91, 45, 50, 93, 32, 123, 36, 120, 45, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 48, 41, 125, 125, 44, 123, 36, 121, 45, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 49, 41, 125, 125, 44, 92, 10, 123, 36, 120, 43, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 48, 41, 125, 125, 44, 123, 36, 121, 43, 36, 52, 42, 64, 123, 45, 49, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 49, 41, 125, 125, 44, 92, 10, 123, 51, 42, 36, 111, 112, 97, 99, 125, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 52, 45, 45, 50, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 115, 112, 111, 110, 103, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 51, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 112, 111, 110, 103, 101, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 98, 114, 117, 115, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 45, 95, 99, 105, 114, 99, 108, 101, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 99, 105, 114, 99, 108, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 37, 50, 61, 61, 48, 125, 32, 45, 105, 32, 50, 44, 50, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 46, 56, 53, 44, 48, 46, 56, 54, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 115, 116, 101, 110, 99, 105, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 56, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 116, 101, 110, 99, 105, 108, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 98, 32, 36, 49, 32, 45, 117, 110, 115, 104, 97, 114, 112, 32, 123, 36, 49, 43, 36, 50, 125, 44, 49, 48, 48, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 53, 125, 44, 36, 123, 50, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 66, 38, 87, 32, 115, 116, 101, 110, 99, 105, 108, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 101, 100, 103, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 101, 100, 103, 101, 115, 91, 48, 93, 32, 36, 49, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 48, 93, 32, 51, 44, 48, 44, 49, 32, 45, 98, 91, 48, 93, 32, 36, 50, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 48, 93, 32, 49, 48, 48, 48, 48, 48, 48, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 101, 116, 114, 105, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 101, 116, 114, 105, 115, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 123, 115, 125, 32, 45, 114, 32, 36, 49, 37, 44, 36, 49, 37, 44, 36, 49, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 49, 48, 44, 49, 44, 48, 32, 45, 114, 32, 36, 119, 104, 32, 45, 98, 32, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 48, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 114, 104, 111, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 36, 49, 120, 36, 50, 32, 65, 110, 100, 121, 32, 87, 97, 114, 104, 111, 108, 45, 108, 105, 107, 101, 32, 97, 114, 116, 119, 111, 114, 107, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 114, 48, 61, 123, 49, 48, 48, 47, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 114, 109, 32, 45, 98, 32, 36, 51, 32, 45, 114, 32, 36, 114, 48, 37, 44, 36, 114, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 54, 32, 45, 110, 32, 48, 44, 53, 32, 45, 114, 111, 117, 110, 100, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 40, 48, 44, 49, 44, 50, 44, 51, 44, 52, 44, 53, 41, 32, 45, 110, 91, 45, 49, 93, 32, 51, 50, 44, 50, 50, 52, 32, 54, 44, 49, 44, 49, 44, 50, 44, 49, 50, 56, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 52, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 94, 48, 93, 32, 36, 49, 44, 36, 50, 32, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 44, 49, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 101, 97, 118, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 54, 53, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 52, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 52, 61, 48, 46, 53, 125, 62, 61, 48, 34, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 55, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 55, 60, 61, 51, 32, 38, 38, 32, 36, 123, 56, 61, 48, 125, 62, 61, 45, 49, 32, 38, 38, 32, 36, 56, 60, 61, 49, 32, 38, 38, 32, 36, 123, 57, 61, 48, 125, 62, 61, 45, 49, 32, 38, 38, 32, 36, 57, 60, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 101, 97, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 115, 116, 114, 105, 112, 115, 44, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 36, 50, 44, 32, 115, 104, 97, 100, 111, 119, 32, 36, 51, 44, 32, 115, 104, 97, 100, 105, 110, 103, 32, 36, 52, 44, 32, 34, 92, 10, 34, 102, 105, 98, 101, 114, 115, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 53, 32, 97, 110, 100, 32, 102, 105, 98, 101, 114, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 54, 44, 32, 97, 110, 103, 108, 101, 32, 34, 123, 36, 55, 42, 50, 50, 46, 53, 125, 34, -62, -80, 32, 97, 110, 100, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 115, 32, 40, 36, 56, 44, 36, 57, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 119, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 119, 44, 104, 41, 47, 36, 49, 44, 49, 44, 49, 41, 125, 32, 104, 61, 36, 119, 32, 115, 61, 123, 40, 49, 48, 48, 45, 36, 51, 41, 42, 50, 53, 53, 37, 125, 32, 112, 61, 123, 109, 97, 120, 40, 48, 46, 48, 49, 44, 36, 52, 41, 125, 10, 49, 44, 36, 104, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 48, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 112, 32, 45, 99, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 50, 42, 36, 119, 37, 41, 41, 125, 44, 49, 48, 48, 37, 10, 36, 119, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 112, 32, 45, 99, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 109, 97, 120, 40, 49, 44, 114, 111, 117, 110, 100, 40, 36, 50, 42, 36, 104, 37, 41, 41, 125, 10, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 42, 91, 45, 51, 93, 32, 45, 49, 32, 45, 110, 91, 45, 52, 44, 45, 50, 93, 32, 48, 44, 36, 115, 32, 45, 110, 91, 45, 51, 44, 45, 49, 93, 32, 36, 115, 44, 50, 53, 53, 10, 123, 119, 125, 44, 49, 32, 49, 44, 91, 45, 51, 93, 32, 45, 114, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 54, 37, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 36, 53, 44, 36, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 52, 44, 45, 49, 93, 32, 45, 43, 91, 45, 53, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 102, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 49, 93, 32, 99, 32, 45, 45, 102, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 97, 109, 112, 95, 120, 61, 123, 36, 56, 42, 40, 36, 119, 45, 119, 41, 47, 50, 125, 32, 97, 109, 112, 95, 121, 61, 123, 36, 57, 42, 40, 36, 119, 45, 119, 41, 47, 50, 125, 10, 45, 114, 91, 45, 52, 45, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 102, 91, 45, 52, 93, 32, 39, 105, 40, 120, 43, 36, 97, 109, 112, 95, 120, 42, 115, 105, 110, 40, 121, 47, 104, 42, 112, 105, 41, 44, 121, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 40, 120, 45, 36, 97, 109, 112, 95, 120, 42, 115, 105, 110, 40, 121, 47, 104, 42, 112, 105, 41, 44, 121, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 10, 45, 102, 91, 45, 51, 93, 32, 39, 105, 40, 120, 44, 121, 43, 36, 97, 109, 112, 95, 121, 42, 115, 105, 110, 40, 120, 47, 119, 42, 112, 105, 41, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 32, 45, 102, 91, 45, 50, 93, 32, 39, 105, 40, 120, 44, 121, 45, 36, 97, 109, 112, 95, 121, 42, 115, 105, 110, 40, 120, 47, 119, 42, 112, 105, 41, 44, 48, 44, 99, 44, 49, 44, 50, 41, 39, 10, 45, 98, 108, 101, 110, 100, 91, 45, 52, 44, 45, 51, 93, 32, 97, 108, 112, 104, 97, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 32, 45, 99, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 50, 53, 53, 32, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 97, 91, 45, 52, 44, 45, 50, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 91, 45, 49, 93, 32, 123, 36, 55, 42, 50, 50, 46, 53, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 104, 105, 114, 108, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 54, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 49, 46, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 119, 104, 105, 114, 108, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 116, 101, 120, 116, 117, 114, 101, 32, 36, 49, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 51, 44, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 94, 91, 45, 49, 93, 32, 48, 46, 50, 32, 45, 100, 111, 110, 101, 10, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 111, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 40, 123, 34, 115, 113, 114, 116, 40, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 48, 125, 34, 44, 34, 64, 123, 45, 50, 44, 119, 125, 34, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 49, 125, 34, 44, 34, 64, 123, 45, 50, 44, 104, 125, 34, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 34, 125, 41, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 64, 123, 45, 49, 44, 50, 125, 34, 42, 40, 120, 47, 119, 41, 94, 36, 51, 42, 99, 111, 115, 40, 121, 42, 50, 42, 112, 105, 47, 104, 41, 34, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 125, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 64, 123, 45, 50, 44, 50, 125, 34, 42, 40, 120, 47, 119, 41, 94, 36, 51, 42, 115, 105, 110, 40, 121, 42, 50, 42, 112, 105, 47, 104, 41, 34, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 45, 51, 44, 49, 125, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 102, 111, 114, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 110, 100, 111, 109, 32, 115, 109, 111, 111, 116, 104, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 50, 37, 44, 50, 37, 44, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 53, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 105, 115, 104, 101, 121, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 125, 44, 36, 123, 50, 61, 53, 48, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 49, 46, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 70, 105, 115, 104, 45, 101, 121, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 97, 116, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 37, 32, 97, 110, 100, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 52, 46, 34, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 49, 37, 44, 36, 50, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 51, 37, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 52, 125, 10, 45, 105, 91, 45, 50, 93, 32, 40, 123, 45, 36, 49, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 49, 47, 49, 48, 48, 125, 59, 123, 45, 36, 49, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 49, 47, 49, 48, 48, 125, 94, 123, 45, 36, 50, 47, 49, 48, 48, 125, 44, 123, 45, 36, 50, 47, 49, 48, 48, 125, 59, 123, 49, 45, 36, 50, 47, 49, 48, 48, 125, 44, 123, 49, 45, 36, 50, 47, 49, 48, 48, 125, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 50, 44, 51, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 108, 111, 119, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 54, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 46, 53, 125, 44, 36, 123, 54, 61, 48, 46, 53, 125, 44, 36, 123, 55, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 108, 111, 119, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 44, 32, 111, 102, 102, 115, 101, 116, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 53, 44, 36, 54, 44, 49, 44, 36, 55, 32, 45, 115, 104, 105, 102, 116, 32, 36, 51, 44, 48, 44, 48, 44, 48, 44, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 32, 45, 47, 91, 45, 49, 93, 32, 123, 104, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 40, 123, 36, 52, 47, 51, 54, 48, 125, 41, 32, 45, 43, 91, 45, 50, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 54, 46, 50, 56, 51, 49, 56, 53, 51, 32, 45, 115, 105, 110, 91, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 119, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 36, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 53, 44, 36, 54, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 48, 48, 125, 44, 36, 123, 52, 61, 51, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 36, 51, 37, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 36, 52, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 110, 109, 91, 49, 93, 32, 64, 123, 48, 44, 110, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 53, 32, 45, 118, 32, 43, 10, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 53, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 53, 61, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 49, 48, 48, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 97, 112, 32, 105, 109, 97, 103, 101, 36, 63, 32, 111, 110, 32, 115, 112, 104, 101, 114, 101, 115, 32, 105, 110, 32, 36, 49, 120, 36, 50, 32, 105, 109, 97, 103, 101, 115, 44, 32, 119, 105, 116, 104, 32, 114, 97, 100, 105, 117, 115, 32, 36, 51, 44, 32, 100, 105, 108, 97, 116, 105, 111, 110, 32, 36, 52, 32, 97, 110, 100, 32, 102, 97, 100, 105, 110, 103, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 114, 50, 61, 123, 40, 36, 51, 42, 109, 105, 110, 40, 36, 49, 44, 36, 50, 41, 47, 50, 48, 48, 41, 94, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 48, 48, 37, 44, 48, 32, 45, 110, 109, 91, 48, 93, 32, 64, 123, 49, 44, 110, 125, 32, 45, 97, 32, 121, 10, 40, 123, 45, 36, 49, 47, 50, 125, 44, 123, 36, 49, 47, 50, 125, 41, 32, 40, 123, 45, 36, 50, 47, 50, 125, 59, 123, 36, 50, 47, 50, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 51, 32, 45, 97, 116, 97, 110, 50, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 36, 49, 44, 36, 50, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 44, 51, 32, 45, 47, 91, 45, 49, 93, 32, 36, 114, 50, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 97, 115, 105, 110, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 93, 32, 123, 112, 105, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 49, 41, 47, 40, 50, 42, 112, 105, 41, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 50, 47, 112, 105, 125, 32, 45, 94, 91, 45, 49, 93, 32, 36, 52, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 45, 49, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 36, 53, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 54, 32, 45, 99, 91, 45, 50, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 53, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 111, 108, 97, 114, 32, 116, 111, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 40, 36, 49, 44, 36, 50, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 40, 123, 34, 115, 113, 114, 116, 40, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 48, 125, 34, 44, 34, 64, 123, 45, 50, 44, 119, 125, 34, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 109, 97, 120, 40, 34, 64, 123, 45, 49, 44, 49, 125, 34, 44, 34, 64, 123, 45, 50, 44, 104, 125, 34, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 34, 125, 41, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 34, 119, 42, 40, 115, 113, 114, 116, 40, 40, 120, 45, 34, 64, 123, 45, 49, 44, 48, 125, 34, 41, 94, 50, 32, 43, 32, 40, 121, 45, 34, 64, 123, 45, 49, 44, 49, 125, 34, 41, 94, 50, 41, 47, 34, 64, 123, 45, 49, 44, 50, 125, 34, 41, 94, 40, 49, 47, 36, 51, 41, 34, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 34, 40, 97, 116, 97, 110, 50, 40, 121, 45, 34, 64, 123, 45, 50, 44, 49, 125, 34, 44, 120, 45, 34, 64, 123, 45, 50, 44, 48, 125, 34, 41, 42, 104, 47, 40, 50, 42, 112, 105, 41, 43, 104, 41, 37, 104, 34, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 49, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 48, 125, 41, 32, 38, 38, 32, 36, 52, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 56, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 50, 44, 32, 119, 97, 118, 101, 108, 101, 110, 103, 116, 104, 32, 36, 51, 32, 97, 110, 100, 32, 36, 52, 32, 109, 101, 114, 103, 105, 110, 103, 32, 115, 116, 101, 112, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 50, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 99, 111, 115, 40, 105, 41, 47, 40, 49, 43, 105, 47, 36, 51, 41, 39, 10, 45, 105, 102, 32, 36, 52, 10, 45, 105, 91, 45, 50, 93, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 48, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 47, 91, 45, 50, 93, 32, 50, 32, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 49, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 119, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 49, 47, 40, 49, 101, 45, 53, 43, 109, 97, 120, 40, 97, 98, 115, 40, 105, 109, 41, 44, 97, 98, 115, 40, 105, 77, 41, 41, 41, 125, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 114, 105, 112, 112, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 50, 48, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 114, 105, 112, 112, 108, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 44, 32, 115, 104, 97, 112, 101, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 32, 97, 110, 100, 32, 111, 102, 102, 115, 101, 116, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 10, 116, 104, 101, 116, 97, 61, 123, 36, 52, 42, 112, 105, 47, 49, 56, 48, 125, 32, 67, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 83, 61, 123, 45, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 120, 34, 32, 45, 45, 91, 45, 49, 93, 32, 123, 119, 47, 50, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 39, 10, 45, 45, 91, 45, 49, 93, 32, 123, 104, 47, 50, 45, 36, 53, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 83, 32, 45, 42, 91, 45, 49, 93, 32, 36, 67, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 114, 105, 112, 112, 108, 101, 36, 51, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 45, 42, 91, 45, 49, 93, 32, 123, 45, 36, 83, 125, 32, 45, 42, 91, 45, 50, 93, 32, 36, 67, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 114, 105, 112, 112, 108, 101, 48, 32, 58, 32, 45, 102, 32, 123, 36, 49, 47, 50, 125, 42, 34, 40, 49, 45, 50, 42, 40, 105, 37, 34, 123, 50, 42, 36, 50, 125, 34, 60, 36, 50, 41, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 49, 32, 58, 32, 45, 102, 32, 34, 73, 61, 40, 105, 37, 36, 50, 41, 47, 36, 50, 59, 36, 49, 42, 40, 50, 42, 105, 102, 40, 73, 60, 48, 46, 53, 44, 73, 44, 49, 45, 73, 41, 45, 48, 46, 53, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 50, 32, 58, 32, 45, 102, 32, 123, 45, 36, 49, 47, 50, 125, 42, 34, 99, 111, 115, 40, 105, 42, 34, 123, 50, 42, 112, 105, 47, 36, 50, 125, 34, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 51, 32, 58, 32, 45, 102, 32, 123, 45, 36, 49, 47, 50, 125, 42, 34, 97, 98, 115, 40, 99, 111, 115, 40, 105, 42, 34, 123, 50, 42, 112, 105, 47, 36, 50, 125, 34, 41, 41, 34, 10, 95, 114, 105, 112, 112, 108, 101, 52, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 42, 32, 45, 110, 32, 48, 44, 123, 104, 45, 49, 125, 32, 49, 44, 123, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 49, 47, 50, 125, 44, 123, 36, 49, 47, 50, 125, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 98, 91, 45, 49, 93, 32, 123, 36, 50, 47, 49, 48, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 109, 44, 36, 77, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 53, 61, 49, 125, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 51, 61, 49, 48, 125, 62, 48, 32, 38, 38, 32, 36, 123, 52, 61, 49, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 97, 108, 32, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 101, 102, 102, 101, 99, 116, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 49, 44, 36, 50, 41, 44, 32, 36, 51, 32, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 51, 54, 48, 47, 36, 51, 125, 44, 49, 44, 36, 53, 44, 36, 49, 44, 36, 50, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 36, 52, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 53, 48, 37, 125, 44, 36, 123, 51, 61, 57, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 114, 101, 103, 97, 114, 100, 105, 110, 103, 32, 97, 120, 105, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, -62, -80, 41, 46, 34, 10, 45, 118, 32, 45, 10, 116, 104, 101, 116, 97, 61, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 125, 32, 117, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 118, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 105, 102, 32, 36, 54, 32, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 61, 65, 60, 48, 32, 45, 101, 108, 115, 101, 32, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 61, 65, 62, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 49, 125, 44, 119, 42, 36, 49, 44, 36, 49, 41, 125, 10, 121, 48, 61, 123, 105, 102, 40, 64, 123, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 92, 32, 36, 50, 125, 44, 104, 42, 36, 50, 44, 36, 50, 41, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 102, 32, 39, 65, 61, 40, 36, 121, 48, 45, 121, 41, 42, 36, 117, 45, 40, 36, 120, 48, 45, 120, 41, 42, 36, 118, 59, 88, 61, 120, 43, 50, 42, 40, 36, 120, 48, 45, 120, 41, 59, 89, 61, 121, 43, 50, 42, 40, 36, 121, 48, 45, 121, 41, 59, 105, 102, 40, 36, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 49, 44, 36, 52, 41, 44, 105, 41, 39, 10, 45, 101, 108, 115, 101, 32, 45, 102, 32, 39, 65, 61, 40, 36, 121, 48, 45, 121, 41, 42, 36, 117, 45, 40, 36, 120, 48, 45, 120, 41, 42, 36, 118, 59, 88, 61, 120, 45, 50, 42, 36, 118, 42, 65, 59, 89, 61, 121, 43, 50, 42, 36, 117, 42, 65, 59, 105, 102, 40, 36, 115, 121, 109, 109, 101, 116, 114, 121, 95, 99, 111, 110, 100, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 49, 44, 36, 52, 41, 44, 105, 41, 39, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 82, 45, 114, 125, 34, 44, 34, 36, 123, 50, 61, 97, 125, 34, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 117, 115, 116, 111, 109, 32, 112, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 119, 105, 116, 104, 32, 39, 110, 101, 119, 95, 114, 32, 61, 32, 36, 49, 39, 44, 32, 39, 110, 101, 119, 95, 97, 32, 61, 32, 36, 50, 39, 44, 32, 99, 101, 110, 116, 101, 114, 101, 100, 32, 97, 116, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 82, 61, 123, 34, 115, 113, 114, 116, 40, 40, 109, 97, 120, 40, 36, 51, 44, 49, 48, 48, 45, 36, 51, 41, 42, 119, 47, 49, 48, 48, 41, 94, 50, 32, 43, 32, 40, 109, 97, 120, 40, 36, 52, 44, 49, 48, 48, 45, 36, 52, 41, 42, 104, 47, 49, 48, 48, 41, 94, 50, 41, 34, 125, 10, 119, 61, 123, 34, 36, 51, 42, 119, 47, 49, 48, 48, 34, 125, 10, 104, 61, 123, 34, 36, 52, 42, 104, 47, 49, 48, 48, 34, 125, 10, 45, 102, 32, 34, 82, 32, 61, 34, 36, 82, 34, 59, 10, 114, 32, 61, 32, 115, 113, 114, 116, 40, 40, 120, 45, 34, 36, 119, 34, 41, 94, 50, 32, 43, 32, 40, 121, 45, 34, 36, 104, 34, 41, 94, 50, 41, 59, 10, 97, 32, 61, 32, 97, 116, 97, 110, 50, 40, 121, 45, 34, 36, 104, 34, 44, 120, 45, 34, 36, 119, 34, 41, 59, 10, 110, 114, 32, 61, 32, 36, 49, 59, 10, 110, 97, 32, 61, 32, 36, 50, 59, 10, 105, 40, 34, 36, 119, 34, 32, 43, 32, 110, 114, 42, 99, 111, 115, 40, 110, 97, 41, 44, 32, 34, 36, 104, 34, 32, 43, 32, 110, 114, 42, 115, 105, 110, 40, 110, 97, 41, 44, 32, 122, 44, 32, 99, 44, 32, 49, 44, 36, 53, 41, 34, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 119, 105, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 116, 119, 105, 114, 108, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 97, 116, 32, 40, 36, 50, 37, 44, 36, 51, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 50, 44, 36, 51, 44, 49, 44, 36, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 49, 44, 36, 49, 42, 120, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 45, 49, 44, 48, 32, 45, 119, 97, 114, 112, 91, 36, 62, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 50, 44, 36, 51, 44, 49, 44, 49, 32, 45, 118, 32, 43, 10, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 46, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 53, 48, 125, 44, 36, 123, 53, 61, 53, 48, 125, 44, 36, 123, 54, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 119, 97, 114, 112, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 115, 32, 40, 36, 49, -62, -80, 44, 36, 50, -62, -80, 41, 44, 32, 122, 111, 111, 109, 32, 36, 51, 32, 97, 110, 100, 32, 111, 102, 102, 115, 101, 116, 115, 32, 40, 36, 52, 44, 36, 53, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 48, 44, 49, 48, 48, 41, 32, 45, 45, 91, 45, 49, 93, 32, 36, 52, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 40, 48, 59, 49, 48, 48, 41, 32, 45, 45, 91, 45, 49, 93, 32, 36, 53, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 51, 10, 45, 45, 42, 91, 45, 50, 93, 32, 36, 50, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 49, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 36, 51, 32, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 50, 93, 32, 49, 48, 48, 32, 45, 43, 91, 45, 50, 93, 32, 36, 52, 32, 45, 47, 91, 45, 50, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 50, 93, 32, 64, 123, 45, 51, 44, 119, 125, 10, 45, 42, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 53, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 45, 51, 44, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 116, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 49, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 116, 101, 114, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 50, 53, 37, 44, 50, 53, 37, 44, 50, 53, 37, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 122, 32, 45, 43, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 50, 44, 51, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 46, 52, 125, 44, 36, 123, 51, 61, 53, 48, 125, 44, 36, 123, 52, 61, 53, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 97, 118, 101, 32, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 50, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 97, 116, 32, 40, 36, 51, 37, 44, 36, 52, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 51, 37, 44, 36, 52, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 105, 110, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 50, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 55, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 34, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 50, 61, 48, 125, 44, 36, 123, 52, 61, 50, 48, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 119, 105, 110, 100, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 97, 110, 103, 108, 101, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 52, 53, 41, 42, 52, 53, 125, 34, 32, 100, 101, 103, 46, 44, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 36, 51, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 36, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 100, 120, 100, 121, 61, 64, 123, 45, 95, 119, 105, 110, 100, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 52, 53, 41, 37, 56, 125, 125, 10, 102, 97, 99, 116, 61, 123, 40, 49, 45, 36, 51, 41, 94, 40, 49, 47, 36, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 52, 37, 10, 115, 117, 109, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 36, 100, 120, 100, 121, 44, 48, 44, 48, 44, 48, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 102, 97, 99, 116, 10, 45, 114, 101, 109, 111, 118, 101, 95, 112, 105, 120, 101, 108, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 44, 36, 115, 117, 109, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 119, 105, 110, 100, 48, 32, 58, 32, 45, 117, 32, 49, 44, 48, 10, 95, 119, 105, 110, 100, 49, 32, 58, 32, 45, 117, 32, 49, 44, 49, 10, 95, 119, 105, 110, 100, 50, 32, 58, 32, 45, 117, 32, 48, 44, 49, 10, 95, 119, 105, 110, 100, 51, 32, 58, 32, 45, 117, 32, 45, 49, 44, 49, 10, 95, 119, 105, 110, 100, 52, 32, 58, 32, 45, 117, 32, 45, 49, 44, 48, 10, 95, 119, 105, 110, 100, 53, 32, 58, 32, 45, 117, 32, 45, 49, 44, 45, 49, 10, 95, 119, 105, 110, 100, 54, 32, 58, 32, 45, 117, 32, 48, 44, 45, 49, 10, 95, 119, 105, 110, 100, 55, 32, 58, 32, 45, 117, 32, 49, 44, 45, 49, 10, 122, 111, 111, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 48, 46, 53, 125, 44, 36, 123, 52, 61, 48, 46, 53, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 122, 111, 111, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 97, 99, 116, 111, 114, 32, 36, 49, 32, 97, 110, 100, 32, 99, 101, 110, 116, 101, 114, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 40, 123, 40, 119, 45, 49, 41, 42, 36, 50, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 44, 123, 40, 119, 45, 49, 41, 42, 40, 36, 50, 43, 40, 49, 45, 36, 50, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 36, 51, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 59, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 40, 36, 51, 43, 40, 49, 45, 36, 51, 41, 47, 36, 49, 41, 125, 41, 10, 45, 114, 91, 45, 50, 45, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 115, 101, 10, 40, 123, 40, 119, 45, 49, 41, 42, 36, 50, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 44, 123, 40, 119, 45, 49, 41, 42, 40, 36, 50, 43, 40, 49, 45, 36, 50, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 36, 51, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 59, 123, 40, 64, 123, 45, 50, 44, 104, 125, 45, 49, 41, 42, 40, 36, 51, 43, 40, 49, 45, 36, 51, 41, 47, 36, 49, 41, 125, 41, 10, 40, 123, 40, 64, 123, 45, 51, 44, 100, 125, 45, 49, 41, 42, 36, 52, 42, 40, 49, 45, 49, 47, 36, 49, 41, 125, 47, 123, 40, 64, 123, 45, 51, 44, 100, 125, 45, 49, 41, 42, 40, 36, 52, 43, 40, 49, 45, 36, 52, 41, 47, 36, 49, 41, 125, 41, 10, 45, 114, 91, 45, 51, 45, 45, 49, 93, 32, 91, 45, 52, 93, 44, 91, 45, 52, 93, 44, 91, 45, 52, 93, 44, 49, 44, 51, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 114, 97, 99, 107, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 52, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 114, 97, 110, 100, 111, 109, 32, 99, 114, 97, 99, 107, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 105, 109, 125, 44, 123, 105, 77, 125, 41, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 48, 48, 48, 48, 10, 45, 105, 102, 32, 36, 51, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 49, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 48, 46, 57, 125, 44, 36, 123, 51, 61, 49, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 108, 105, 103, 104, 116, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 100, 101, 110, 115, 105, 116, 121, 32, 36, 49, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 36, 49, 44, 36, 49, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 52, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 110, 111, 105, 115, 101, 95, 104, 117, 114, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 104, 117, 114, 108, 32, 110, 111, 105, 115, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 37, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 102, 32, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 32, 45, 110, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 109, 125, 44, 64, 123, 45, 50, 44, 77, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 45, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 103, 101, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 120, 101, 108, 105, 122, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 48, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 80, 105, 120, 101, 108, 105, 122, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 115, 32, 40, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 49, 48, 48, 37, 44, 50, 32, 45, 114, 32, 36, 119, 104, 100, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 46, 56, 125, 44, 36, 123, 52, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 118, 101, 114, 116, 105, 99, 97, 108, 44, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 125, 34, 32, 115, 104, 97, 100, 101, 100, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 49, 44, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 123, 109, 97, 120, 40, 49, 44, 119, 42, 40, 36, 50, 33, 61, 48, 41, 41, 125, 44, 123, 109, 97, 120, 40, 49, 44, 104, 42, 40, 36, 50, 61, 61, 48, 41, 41, 125, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 32, 45, 42, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 55, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 115, 104, 97, 100, 111, 119, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 50, 44, 45, 50, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 51, 44, 48, 46, 51, 44, 56, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 99, 91, 45, 49, 93, 32, 51, 37, 44, 49, 53, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 110, 91, 45, 49, 93, 32, 36, 49, 44, 49, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 112, 114, 101, 97, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 114, 101, 97, 100, 32, 112, 105, 120, 101, 108, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 114, 97, 110, 100, 111, 109, 108, 121, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 115, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 49, 125, 44, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 50, 125, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 45, 36, 51, 125, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 115, 116, 114, 105, 112, 101, 115, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 49, 93, 32, 48, 46, 49, 53, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 54, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 52, 61, 56, 48, 125, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 99, 97, 110, 118, 97, 115, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 36, 49, 44, 32, 102, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 101, 109, 98, 111, 115, 115, 32, 108, 101, 118, 101, 108, 32, 36, 51, 46, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 36, 50, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 50, 93, 32, 36, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 43, 32, 45, 110, 91, 45, 50, 93, 32, 36, 51, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 56, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 49, 44, 36, 49, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 112, 97, 112, 101, 114, 32, 116, 101, 120, 116, 117, 114, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 45, 49, 93, 32, 51, 48, 37, 44, 51, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 48, 32, 45, 105, 102, 102, 116, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 46, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 118, 105, 103, 110, 101, 116, 116, 101, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 48, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 123, 50, 61, 55, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 50, 60, 61, 49, 48, 48, 32, 38, 38, 32, 36, 123, 51, 61, 57, 48, 125, 62, 61, 48, 32, 38, 38, 32, 36, 51, 60, 61, 49, 48, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 100, 100, 32, 118, 105, 103, 110, 101, 116, 116, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 36, 49, 32, 97, 110, 100, 32, 115, 105, 122, 101, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 77, 61, 123, 105, 109, 125, 44, 123, 105, 77, 125, 32, 100, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 36, 100, 44, 36, 100, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 50, 10, 45, 99, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 51, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 49, 32, 45, 45, 32, 45, 99, 32, 36, 109, 77, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 92, 50, 53, 49, 92, 32, 71, 39, 77, 73, 67, 125, 34, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 50, 61, 48, 46, 51, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 49, 32, 38, 38, 32, 36, 123, 51, 61, 53, 55, 125, 62, 48, 32, 38, 38, 32, 36, 123, 54, 61, 48, 46, 53, 125, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 50, 53, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 53, 44, 65, 100, 100, 44, 82, 101, 109, 111, 118, 101, 125, 34, 32, 118, 105, 115, 105, 98, 108, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 39, 36, 49, 39, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 44, 32, 115, 105, 122, 101, 32, 36, 51, 44, 32, 97, 110, 103, 108, 101, 32, 36, 52, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 51, 44, 49, 44, 50, 53, 53, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 53, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 50, 125, 32, 45, 43, 10, 45, 101, 108, 115, 101, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 32, 45, 47, 32, 123, 49, 45, 36, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 108, 101, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 108, 112, 104, 97, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 118, 32, 45, 32, 115, 48, 61, 34, 34, 32, 115, 49, 61, 34, 40, 114, 101, 118, 101, 114, 116, 101, 100, 32, 108, 97, 121, 101, 114, 115, 41, 32, 34, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 39, 36, 49, 39, 32, 109, 111, 100, 101, 32, 34, 36, 123, 115, 123, 36, 51, 33, 61, 48, 125, 125, 34, 97, 110, 100, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 32, 99, 111, 100, 101, 61, 64, 123, 45, 95, 98, 108, 101, 110, 100, 95, 36, 49, 125, 10, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 50, 93, 32, 34, 85, 110, 107, 110, 111, 119, 110, 32, 98, 108, 101, 110, 100, 105, 110, 103, 32, 109, 111, 100, 101, 32, 39, 36, 49, 39, 32, 114, 101, 113, 117, 101, 115, 116, 101, 100, 46, 34, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 91, 48, 93, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 115, 61, 123, 115, 48, 61, 105, 102, 40, 64, 123, 48, 44, 115, 125, 60, 51, 44, 49, 44, 51, 41, 59, 115, 49, 61, 105, 102, 40, 115, 60, 51, 44, 49, 44, 51, 41, 59, 109, 97, 120, 40, 115, 48, 44, 115, 49, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 36, 115, 43, 49, 45, 40, 64, 123, 48, 44, 115, 125, 37, 50, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 49, 93, 32, 123, 36, 115, 43, 49, 45, 40, 115, 37, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 115, 125, 61, 61, 50, 124, 124, 64, 123, 48, 44, 115, 125, 61, 61, 52, 125, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 124, 124, 115, 61, 61, 52, 125, 10, 45, 115, 104, 91, 48, 44, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 95, 98, 108, 101, 110, 100, 91, 50, 44, 51, 93, 32, 36, 99, 111, 100, 101, 32, 45, 114, 109, 91, 50, 44, 51, 93, 10, 45, 105, 102, 32, 123, 36, 49, 39, 61, 61, 39, 97, 108, 112, 104, 97, 125, 10, 45, 115, 104, 91, 48, 44, 49, 93, 32, 48, 44, 123, 64, 123, 48, 44, 115, 125, 45, 50, 125, 32, 45, 115, 104, 91, 48, 44, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 42, 91, 50, 44, 52, 93, 32, 45, 42, 91, 51, 44, 52, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 49, 48, 48, 37, 32, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 102, 91, 51, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 51, 93, 10, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 49, 44, 50, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 43, 91, 50, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 49, 44, 50, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 106, 91, 48, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 51, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 123, 64, 123, 48, 44, 115, 125, 45, 50, 125, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 95, 98, 108, 101, 110, 100, 91, 49, 44, 50, 93, 32, 36, 99, 111, 100, 101, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 124, 124, 115, 61, 61, 52, 125, 10, 45, 115, 104, 91, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 95, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 36, 99, 111, 100, 101, 32, 45, 114, 109, 91, 50, 93, 10, 45, 115, 104, 91, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 44, 91, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 94, 48, 93, 10, 45, 101, 108, 115, 101, 10, 45, 95, 98, 108, 101, 110, 100, 32, 36, 99, 111, 100, 101, 32, 45, 106, 91, 48, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 44, 36, 50, 41, 41, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 98, 108, 101, 110, 100, 32, 58, 32, 36, 42, 10, 95, 98, 108, 101, 110, 100, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 117, 32, 34, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 110, 100, 32, 58, 10, 45, 117, 32, 34, 45, 97, 110, 100, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 100, 100, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 47, 91, 49, 93, 32, 50, 34, 10, 95, 98, 108, 101, 110, 100, 95, 98, 108, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 48, 44, 49, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 91, 49, 93, 32, 49, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 109, 105, 110, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 97, 98, 115, 91, 49, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 94, 91, 49, 93, 32, 45, 49, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 49, 93, 32, 45, 49, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 43, 91, 49, 44, 50, 93, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 45, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 48, 46, 49, 32, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 115, 113, 114, 91, 50, 93, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 43, 91, 49, 93, 32, 49, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 103, 114, 101, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 32, 45, 106, 91, 49, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 50, 55, 46, 53, 32, 45, 45, 43, 91, 48, 44, 49, 93, 32, 45, 42, 91, 51, 93, 32, 50, 32, 45, 45, 91, 51, 93, 32, 50, 53, 53, 32, 45, 45, 91, 51, 93, 32, 91, 50, 93, 32, 45, 103, 116, 91, 49, 93, 32, 49, 50, 56, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 97, 114, 100, 109, 105, 120, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 101, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 104, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 93, 32, 123, 112, 105, 47, 50, 53, 53, 125, 32, 45, 42, 91, 49, 93, 32, 123, 112, 105, 47, 50, 53, 53, 125, 32, 45, 99, 111, 115, 91, 49, 44, 50, 93, 32, 45, 43, 91, 49, 44, 50, 93, 32, 45, 45, 91, 49, 93, 32, 50, 32, 45, 42, 91, 49, 93, 32, 45, 54, 51, 46, 55, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 109, 97, 120, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 97, 98, 115, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 111, 114, 32, 58, 10, 45, 117, 32, 34, 45, 111, 114, 91, 49, 93, 32, 91, 48, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 117, 32, 34, 45, 45, 42, 91, 48, 44, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 91, 50, 93, 32, 45, 45, 108, 116, 91, 48, 93, 32, 49, 50, 56, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 112, 105, 110, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 98, 108, 101, 110, 100, 32, 100, 97, 114, 107, 101, 110, 32, 45, 45, 91, 49, 93, 32, 50, 53, 54, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 32, 45, 103, 101, 91, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 45, 115, 113, 114, 91, 48, 93, 32, 45, 47, 91, 50, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 114, 101, 100, 32, 58, 10, 45, 117, 32, 34, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 106, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 105, 102, 116, 91, 50, 44, 51, 93, 32, 48, 44, 48, 44, 48, 44, 45, 49, 44, 50, 32, 45, 115, 104, 91, 50, 93, 32, 49, 44, 50, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 52, 93, 32, 45, 115, 104, 105, 102, 116, 91, 50, 44, 51, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 44, 50, 93, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 43, 91, 49, 93, 32, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 78, 61, 123, 105, 77, 43, 49, 125, 32, 34, 92, 10, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 36, 62, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 49, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 78, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 78, 45, 49, 47, 50, 53, 54, 125, 32, 34, 92, 10, 34, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 42, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 43, 36, 109, 39, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 78, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 34, 92, 10, 34, 45, 97, 91, 50, 45, 45, 49, 93, 32, 99, 32, 45, 109, 97, 112, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 58, 10, 45, 117, 32, 34, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 108, 97, 98, 101, 108, 91, 49, 93, 32, 48, 32, 78, 61, 64, 123, 49, 44, 105, 77, 43, 49, 125, 32, 34, 92, 10, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 36, 62, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 123, 49, 45, 49, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 78, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 78, 45, 49, 47, 50, 53, 54, 125, 32, 34, 92, 10, 34, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 42, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 53, 43, 36, 109, 39, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 78, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 101, 45, 56, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 34, 92, 10, 34, 45, 97, 91, 51, 45, 45, 49, 93, 32, 99, 32, 45, 109, 97, 112, 91, 49, 93, 32, 91, 51, 93, 32, 45, 114, 109, 91, 51, 93, 32, 45, 42, 91, 49, 44, 50, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 98, 117, 114, 110, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 50, 93, 32, 45, 49, 32, 45, 42, 91, 50, 93, 32, 91, 49, 93, 32, 45, 42, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 45, 45, 91, 48, 93, 32, 50, 53, 53, 32, 45, 45, 43, 91, 49, 93, 32, 48, 46, 49, 32, 45, 47, 91, 51, 44, 52, 93, 32, 45, 42, 91, 51, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 51, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 116, 91, 49, 93, 32, 50, 53, 53, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 100, 111, 100, 103, 101, 32, 58, 10, 45, 117, 32, 34, 45, 45, 45, 91, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 94, 91, 50, 93, 32, 45, 49, 32, 45, 42, 91, 50, 93, 32, 91, 48, 93, 32, 45, 42, 91, 50, 93, 32, 45, 49, 50, 55, 46, 53, 32, 45, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 43, 91, 48, 93, 32, 48, 46, 49, 32, 45, 47, 91, 51, 44, 52, 93, 32, 45, 42, 91, 51, 93, 32, 49, 50, 55, 46, 53, 32, 45, 43, 91, 51, 93, 32, 50, 53, 53, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 103, 116, 91, 49, 93, 32, 50, 53, 53, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 47, 91, 49, 93, 32, 50, 53, 53, 32, 45, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 42, 91, 50, 93, 32, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 91, 51, 93, 32, 45, 42, 91, 49, 93, 32, 45, 50, 32, 45, 42, 91, 50, 93, 32, 50, 32, 45, 43, 91, 49, 45, 51, 93, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 43, 91, 49, 93, 32, 91, 48, 93, 32, 45, 45, 91, 49, 93, 32, 50, 53, 53, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 115, 117, 98, 116, 114, 97, 99, 116, 32, 58, 10, 45, 117, 32, 34, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 34, 10, 95, 98, 108, 101, 110, 100, 95, 118, 97, 108, 117, 101, 32, 58, 10, 45, 117, 32, 34, 45, 116, 111, 95, 99, 111, 108, 111, 114, 32, 45, 45, 115, 104, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 50, 44, 51, 93, 32, 45, 115, 104, 91, 50, 93, 32, 48, 44, 49, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 32, 45, 114, 109, 91, 52, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 50, 44, 51, 93, 32, 45, 114, 109, 91, 50, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 117, 32, 34, 45, 42, 91, 49, 93, 32, 50, 32, 45, 45, 98, 108, 101, 110, 100, 32, 98, 117, 114, 110, 32, 45, 45, 91, 49, 93, 32, 50, 53, 54, 32, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 100, 111, 100, 103, 101, 32, 45, 103, 101, 91, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 106, 91, 50, 93, 32, 91, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 49, 93, 32, 45, 114, 109, 91, 49, 44, 51, 93, 34, 10, 95, 98, 108, 101, 110, 100, 95, 120, 111, 114, 32, 58, 10, 45, 117, 32, 34, 45, 120, 111, 114, 91, 49, 93, 32, 91, 48, 93, 34, 10, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 123, 36, 49, 62, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 101, 100, 103, 101, 115, 39, 32, 109, 111, 100, 101, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 48, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 47, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 118, 32, 43, 32, 45, 101, 110, 100, 105, 102, 10, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 102, 97, 100, 101, 39, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 51, 10, 45, 114, 91, 49, 45, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 45, 45, 91, 45, 49, 93, 32, 36, 62, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 32, 45, 118, 32, 43, 10, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 66, 108, 101, 110, 100, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 39, 109, 101, 100, 105, 97, 110, 39, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 119, 104, 100, 61, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 104, 42, 100, 125, 44, 49, 44, 49, 48, 48, 37, 44, 45, 49, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 43, 32, 45, 47, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 62, 50, 125, 10, 45, 112, 101, 114, 109, 117, 116, 101, 32, 120, 121, 99, 122, 32, 45, 97, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 45, 49, 45, 36, 62, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 115, 104, 91, 45, 50, 93, 32, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 49, 125, 32, 45, 45, 103, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 106, 91, 45, 52, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 115, 37, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 53, 48, 37, 32, 45, 101, 108, 115, 101, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 123, 115, 47, 50, 45, 49, 125, 44, 123, 115, 47, 50, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 43, 32, 45, 47, 32, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 101, 114, 109, 117, 116, 101, 32, 120, 121, 99, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 100, 44, 49, 48, 48, 37, 44, 45, 49, 32, 45, 118, 32, 43, 10, 95, 102, 97, 100, 101, 32, 58, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 99, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 102, 97, 100, 101, 95, 100, 105, 97, 109, 111, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 55, 48, 125, 44, 36, 123, 50, 61, 57, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 100, 105, 97, 109, 111, 110, 100, 45, 115, 104, 97, 112, 101, 100, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 40, 48, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 53, 125, 44, 36, 123, 50, 61, 51, 48, 125, 44, 36, 123, 51, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 50, 37, 44, 36, 51, 37, 41, 32, 108, 105, 110, 101, 97, 114, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 110, 103, 108, 101, 32, 36, 49, -62, -80, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 54, 52, 44, 54, 52, 44, 49, 44, 49, 44, 34, 120, 42, 99, 111, 115, 40, 36, 49, 42, 112, 105, 47, 49, 56, 48, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 36, 49, 42, 112, 105, 47, 49, 56, 48, 41, 34, 32, 45, 95, 102, 97, 100, 101, 32, 36, 50, 44, 36, 51, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 97, 100, 101, 95, 114, 97, 100, 105, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 114, 97, 100, 105, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 97, 100, 101, 95, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 44, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 97, 100, 101, 95, 121, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 118, 101, 114, 116, 105, 99, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 59, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 97, 100, 101, 95, 122, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 55, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 40, 36, 49, 37, 44, 36, 50, 37, 41, 32, 116, 114, 97, 110, 115, 118, 101, 114, 115, 97, 108, 32, 102, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 40, 48, 47, 49, 41, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 110, 105, 109, 97, 116, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 51, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 34, 34, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 34, 36, 123, 54, 61, 125, 34, 10, 45, 105, 102, 32, 123, 105, 115, 118, 97, 108, 40, 36, 49, 41, 125, 10, 45, 105, 102, 32, 36, 50, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 32, 100, 101, 108, 97, 121, 32, 111, 102, 32, 36, 49, 32, 109, 115, 44, 32, 97, 110, 100, 32, 112, 105, 110, 103, 45, 112, 111, 110, 103, 32, 109, 111, 100, 101, 46, 34, 10, 45, 101, 108, 115, 101, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 97, 32, 100, 101, 108, 97, 121, 32, 111, 102, 32, 36, 49, 32, 109, 115, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 115, 112, 101, 101, 100, 61, 36, 49, 10, 112, 97, 117, 115, 101, 61, 45, 49, 10, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 49, 10, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 45, 119, 91, 36, 102, 114, 97, 109, 101, 93, 32, 45, 49, 44, 45, 49, 44, 49, 44, 48, 44, 64, 123, 36, 102, 114, 97, 109, 101, 44, 98, 125, 46, 64, 123, 36, 102, 114, 97, 109, 101, 44, 120, 125, 10, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 43, 36, 100, 105, 114, 101, 99, 116, 105, 111, 110, 125, 10, 45, 105, 102, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 102, 114, 97, 109, 101, 61, 61, 45, 49, 125, 32, 102, 114, 97, 109, 101, 61, 48, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 102, 114, 97, 109, 101, 61, 61, 64, 35, 125, 32, 102, 114, 97, 109, 101, 61, 123, 64, 35, 45, 49, 125, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 102, 114, 97, 109, 101, 61, 123, 36, 102, 114, 97, 109, 101, 37, 64, 35, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 36, 115, 112, 101, 101, 100, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 111, 125, 32, 115, 112, 101, 101, 100, 61, 123, 109, 105, 110, 40, 53, 48, 48, 44, 109, 97, 120, 40, 49, 48, 44, 36, 115, 112, 101, 101, 100, 45, 49, 48, 42, 64, 123, 33, 44, 111, 125, 41, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 117, 115, 101, 62, 61, 48, 125, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 36, 112, 97, 117, 115, 101, 32, 112, 97, 117, 115, 101, 61, 45, 49, 10, 45, 101, 108, 115, 101, 32, 112, 97, 117, 115, 101, 61, 36, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 110, 105, 109, 97, 116, 101, 100, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 32, 39, 36, 49, 39, 44, 32, 102, 114, 111, 109, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 36, 50, 32, 116, 111, 32, 36, 51, 32, 119, 105, 116, 104, 32, 36, 52, 32, 102, 114, 97, 109, 101, 115, 46, 34, 10, 45, 105, 102, 32, 123, 33, 40, 36, 53, 124, 124, 110, 97, 114, 103, 40, 34, 36, 54, 34, 41, 41, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 40, 36, 50, 41, 32, 40, 36, 51, 41, 32, 45, 121, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 36, 52, 44, 49, 44, 49, 44, 51, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 62, 32, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 91, 34, 36, 62, 34, 93, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 108, 91, 48, 44, 49, 93, 10, 45, 36, 49, 91, 45, 49, 93, 32, 64, 123, 48, 44, 123, 36, 62, 42, 64, 123, 48, 44, 119, 125, 125, 45, 123, 40, 36, 62, 43, 49, 41, 42, 64, 123, 48, 44, 119, 125, 45, 49, 125, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 34, 36, 54, 34, 41, 125, 32, 45, 111, 32, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 36, 54, 34, 44, 64, 123, 62, 44, 45, 50, 125, 44, 36, 62, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 49, 48, 48, 42, 40, 36, 62, 43, 49, 41, 47, 36, 52, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 65, 110, 105, 109, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 91, 34, 64, 123, 62, 44, 45, 50, 125, 34, 93, 32, 58, 32, 70, 114, 97, 109, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 47, 36, 52, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 45, 101, 110, 100, 105, 102, 10, 109, 111, 114, 112, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 46, 49, 125, 44, 36, 123, 51, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 109, 111, 114, 112, 104, 105, 110, 103, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 105, 110, 116, 114, 97, 45, 102, 114, 97, 109, 101, 115, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 50, 32, 97, 110, 100, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 51, 46, 92, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 51, 32, 45, 105, 91, 48, 93, 32, 40, 64, 35, 41, 32, 45, 45, 91, 48, 93, 32, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 48, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 77, 111, 114, 112, 104, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 32, 45, 45, 119, 97, 114, 112, 91, 45, 53, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 97, 91, 45, 36, 49, 45, 45, 49, 93, 32, 122, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 50, 44, 36, 51, 32, 45, 45, 119, 97, 114, 112, 91, 45, 53, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 44, 36, 49, 32, 45, 97, 91, 45, 36, 49, 45, 45, 49, 93, 32, 122, 32, 45, 114, 109, 91, 45, 55, 45, 45, 52, 44, 45, 50, 93, 10, 40, 49, 47, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 42, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 122, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 122, 10, 45, 109, 118, 91, 45, 36, 49, 45, 45, 49, 93, 32, 49, 32, 45, 109, 118, 91, 49, 93, 32, 64, 35, 10, 45, 100, 111, 110, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 114, 109, 91, 48, 93, 32, 45, 118, 32, 43, 10, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 103, 105, 115, 116, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 110, 111, 110, 45, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 44, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 115, 99, 97, 108, 101, 40, 115, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 36, 62, 62, 49, 125, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 49, 93, 32, 91, 45, 49, 93, 44, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 118, 32, 43, 10, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 103, 105, 115, 116, 101, 114, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 114, 105, 103, 105, 100, 32, 119, 97, 114, 112, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 48, 93, 32, 50, 53, 54, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 36, 62, 62, 49, 125, 10, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 112, 104, 97, 115, 101, 95, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 91, 49, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 64, 45, 49, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 49, 93, 32, 45, 118, 32, 43, 10, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 50, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 53, 125, 41, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 48, 46, 53, 37, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 112, 108, 97, 115, 109, 97, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 102, 114, 97, 109, 101, 115, 44, 32, 115, 99, 97, 108, 101, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 115, 125, 44, 51, 10, 111, 102, 102, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 123, 36, 62, 43, 36, 111, 102, 102, 125, 44, 123, 36, 62, 43, 36, 111, 102, 102, 43, 49, 125, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 48, 44, 36, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 50, 125, 32, 45, 45, 108, 101, 91, 50, 93, 32, 123, 40, 36, 62, 43, 49, 41, 47, 36, 49, 125, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 32, 91, 48, 93, 32, 45, 106, 91, 45, 49, 93, 32, 91, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 36, 62, 42, 49, 48, 48, 47, 40, 36, 49, 45, 50, 41, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 50, 93, 32, 45, 109, 118, 91, 50, 45, 45, 49, 93, 32, 49, 32, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 36, 49, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 48, 125, 41, 32, 38, 38, 32, 36, 49, 62, 61, 50, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 51, 125, 41, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 51, 61, 36, 50, 125, 41, 32, 38, 38, 32, 36, 51, 62, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 114, 101, 97, 116, 101, 32, 51, 100, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 101, 113, 117, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 102, 114, 97, 109, 101, 115, 44, 32, 36, 50, 120, 36, 51, 32, 116, 105, 108, 101, 115, 32, 97, 110, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 97, 120, 105, 115, 32, 40, 36, 52, 44, 36, 53, 44, 36, 54, 41, 46, 92, 110, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 108, 105, 99, 101, 115, 32, 48, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 115, 125, 44, 51, 10, 111, 102, 102, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 123, 36, 62, 43, 36, 111, 102, 102, 125, 44, 123, 36, 62, 43, 36, 111, 102, 102, 43, 49, 125, 93, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 62, 32, 71, 101, 110, 101, 114, 97, 116, 101, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 32, 34, 36, 62, 34, 32, 116, 111, 32, 105, 109, 97, 103, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 46, 32, 32, 32, 32, 34, 32, 45, 118, 32, 45, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 52, 39, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 53, 39, 10, 36, 50, 44, 36, 51, 44, 49, 44, 49, 44, 39, 36, 54, 39, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 122, 10, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 122, 120, 121, 99, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 36, 50, 42, 36, 51, 125, 44, 49, 44, 49, 44, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 114, 111, 116, 36, 62, 61, 64, 123, 45, 49, 44, 48, 45, 50, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 109, 118, 91, 48, 44, 49, 93, 32, 64, 35, 10, 78, 61, 123, 36, 50, 42, 36, 51, 125, 32, 105, 61, 48, 32, 121, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 120, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 108, 119, 61, 64, 123, 36, 105, 44, 119, 125, 32, 108, 104, 61, 64, 123, 36, 105, 44, 104, 125, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 36, 105, 93, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 36, 78, 93, 32, 45, 114, 51, 100, 91, 36, 78, 93, 32, 36, 123, 114, 111, 116, 36, 105, 125, 44, 45, 49, 56, 48, 32, 45, 99, 51, 100, 91, 36, 105, 44, 36, 78, 93, 32, 45, 43, 51, 100, 91, 36, 105, 44, 36, 78, 93, 10, 120, 36, 105, 61, 36, 120, 32, 121, 36, 105, 61, 36, 121, 32, 120, 61, 123, 36, 120, 43, 36, 108, 119, 125, 32, 105, 61, 123, 36, 105, 43, 49, 125, 10, 45, 100, 111, 110, 101, 10, 121, 61, 123, 36, 121, 43, 36, 108, 104, 125, 10, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 32, 45, 114, 51, 100, 91, 36, 62, 93, 32, 36, 123, 114, 111, 116, 36, 62, 125, 44, 123, 49, 56, 48, 47, 40, 36, 49, 45, 49, 41, 125, 32, 45, 45, 43, 51, 100, 91, 36, 62, 93, 32, 36, 123, 120, 36, 62, 125, 44, 36, 123, 121, 36, 62, 125, 44, 48, 32, 45, 100, 111, 110, 101, 10, 45, 43, 51, 100, 91, 45, 36, 78, 45, 45, 49, 93, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 55, 10, 45, 105, 91, 45, 51, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 49, 44, 51, 44, 45, 49, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 50, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 108, 115, 101, 10, 45, 105, 91, 45, 51, 93, 32, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 50, 93, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 45, 123, 36, 78, 45, 49, 125, 93, 10, 45, 110, 109, 91, 49, 45, 45, 50, 93, 32, 64, 123, 48, 44, 110, 125, 10, 111, 102, 102, 61, 123, 36, 111, 102, 102, 43, 36, 49, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 120, 95, 98, 108, 111, 98, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 66, 108, 111, 98, 115, 32, 101, 100, 105, 116, 111, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 105, 110, 115, 101, 114, 116, 47, 109, 111, 118, 101, 47, 100, 101, 108, 101, 116, 101, 32, 98, 108, 111, 98, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 40, 48, 59, 48, 94, 48, 59, 49, 50, 56, 94, 48, 59, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 51, 53, 48, 44, 51, 53, 48, 44, 49, 44, 51, 44, 51, 32, 45, 102, 108, 111, 119, 101, 114, 91, 45, 49, 93, 32, 51, 48, 44, 56, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 32, 45, 119, 97, 116, 101, 114, 91, 45, 49, 93, 32, 50, 48, 10, 45, 119, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 66, 108, 111, 98, 115, 32, 101, 100, 105, 116, 111, 114, 34, 10, 109, 111, 118, 105, 110, 103, 61, 45, 49, 10, 45, 100, 111, 10, 120, 61, 64, 123, 33, 44, 120, 125, 32, 121, 61, 64, 123, 33, 44, 121, 125, 32, 98, 61, 64, 123, 33, 44, 98, 125, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 114, 61, 123, 64, 123, 49, 44, 50, 125, 42, 40, 49, 43, 64, 123, 49, 44, 51, 125, 42, 99, 111, 115, 40, 64, 123, 49, 44, 52, 125, 43, 64, 123, 49, 44, 53, 125, 42, 64, 124, 42, 49, 48, 48, 48, 41, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 49, 44, 48, 44, 49, 125, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 64, 123, 49, 44, 54, 45, 55, 125, 10, 100, 61, 123, 115, 113, 114, 116, 40, 40, 36, 120, 45, 64, 123, 49, 44, 48, 125, 41, 94, 50, 43, 40, 36, 121, 45, 64, 123, 49, 44, 49, 125, 41, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 100, 60, 36, 114, 125, 32, 110, 101, 97, 114, 101, 115, 116, 61, 36, 62, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 100, 111, 110, 101, 10, 45, 98, 91, 45, 49, 93, 32, 49, 53, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 32, 45, 108, 101, 91, 45, 50, 93, 32, 52, 48, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 10, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 54, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 71, 39, 77, 73, 67, 32, 66, 108, 111, 98, 115, 32, 69, 100, 105, 116, 111, 114, 34, 44, 54, 53, 44, 52, 48, 44, 50, 52, 44, 51, 44, 49, 44, 50, 48, 48, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 116, 91, 45, 49, 93, 32, 34, 42, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 97, 110, 100, 32, 109, 111, 118, 101, 32, 98, 108, 111, 98, 115, 46, 92, 110, 92, 110, 92, 10, 42, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 98, 108, 111, 98, 46, 92, 110, 92, 110, 92, 10, 42, 32, 77, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 97, 108, 108, 32, 98, 108, 111, 98, 115, 46, 92, 110, 92, 110, 92, 10, 42, 32, 75, 101, 121, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 58, 32, 81, 117, 105, 116, 46, 92, 110, 92, 110, 92, 10, 42, 32, 67, 111, 108, 111, 114, 115, 32, 97, 110, 100, 32, 115, 105, 122, 101, 115, 32, 111, 102, 32, 97, 112, 112, 101, 97, 114, 105, 110, 103, 32, 98, 108, 111, 98, 115, 32, 97, 114, 101, 92, 110, 32, 32, 32, 99, 104, 111, 115, 101, 110, 32, 114, 97, 110, 100, 111, 109, 108, 121, 34, 44, 92, 10, 54, 48, 44, 49, 50, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 105, 102, 32, 123, 36, 120, 60, 48, 124, 124, 36, 121, 60, 48, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 125, 10, 45, 105, 102, 32, 123, 36, 110, 101, 97, 114, 101, 115, 116, 62, 61, 48, 34, 32, 124, 124, 32, 34, 36, 109, 111, 118, 105, 110, 103, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 109, 111, 118, 105, 110, 103, 60, 48, 125, 32, 109, 111, 118, 105, 110, 103, 61, 36, 110, 101, 97, 114, 101, 115, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 61, 91, 49, 93, 32, 36, 120, 44, 48, 44, 36, 109, 111, 118, 105, 110, 103, 32, 45, 61, 91, 49, 93, 32, 36, 121, 44, 49, 44, 36, 109, 111, 118, 105, 110, 103, 10, 45, 101, 108, 115, 101, 10, 40, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 63, 40, 50, 48, 44, 53, 48, 41, 125, 44, 123, 63, 40, 45, 48, 46, 51, 44, 48, 46, 51, 41, 125, 44, 123, 63, 40, 48, 44, 112, 105, 47, 50, 41, 125, 44, 123, 63, 40, 48, 44, 48, 46, 48, 48, 57, 41, 125, 44, 123, 63, 40, 54, 52, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 54, 52, 44, 50, 53, 53, 41, 125, 41, 32, 45, 97, 91, 94, 48, 93, 32, 121, 10, 109, 111, 118, 105, 110, 103, 61, 123, 104, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 125, 10, 45, 105, 102, 32, 123, 36, 110, 101, 97, 114, 101, 115, 116, 62, 61, 48, 125, 32, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 114, 109, 91, 36, 110, 101, 97, 114, 101, 115, 116, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 52, 125, 10, 45, 107, 91, 48, 93, 10, 45, 101, 108, 115, 101, 10, 109, 111, 118, 105, 110, 103, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 102, 105, 114, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 71, 39, 77, 73, 67, 125, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 114, 101, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 44, 51, 50, 32, 45, 119, 91, 48, 93, 32, 54, 48, 48, 44, 51, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 114, 101, 32, 100, 101, 109, 111, 34, 10, 45, 105, 91, 49, 93, 32, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 41, 32, 45, 114, 91, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 105, 91, 50, 93, 32, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 50, 93, 32, 48, 46, 50, 49, 10, 45, 116, 101, 120, 116, 51, 100, 32, 34, 36, 49, 34, 44, 51, 52, 44, 51, 44, 49, 32, 45, 109, 118, 91, 45, 49, 93, 32, 51, 32, 45, 99, 51, 100, 91, 51, 93, 32, 45, 110, 51, 100, 91, 51, 93, 32, 45, 42, 51, 100, 91, 51, 93, 32, 51, 50, 48, 32, 45, 99, 111, 108, 51, 100, 91, 51, 93, 32, 50, 53, 53, 44, 50, 48, 53, 44, 49, 51, 48, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 102, 51, 100, 32, 51, 48, 48, 10, 49, 48, 48, 44, 49, 48, 48, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 51, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 49, 48, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 108, 105, 103, 104, 116, 51, 100, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 97, 110, 103, 108, 101, 61, 48, 10, 45, 100, 111, 10, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 50, 93, 10, 64, 123, 48, 44, 119, 125, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 48, 44, 104, 125, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 114, 91, 48, 93, 32, 52, 48, 48, 44, 50, 48, 48, 44, 49, 44, 49, 44, 51, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 45, 114, 51, 100, 91, 51, 93, 32, 48, 44, 49, 44, 48, 44, 36, 97, 110, 103, 108, 101, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 48, 46, 50, 53, 44, 48, 46, 49, 54, 44, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 45, 114, 109, 91, 45, 49, 93, 10, 97, 110, 103, 108, 101, 61, 123, 36, 97, 110, 103, 108, 101, 43, 51, 125, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 52, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 48, 45, 51, 93, 32, 45, 119, 32, 48, 10, 45, 118, 32, 43, 10, 120, 95, 102, 105, 114, 101, 119, 111, 114, 107, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 114, 101, 119, 111, 114, 107, 115, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 116, 105, 109, 101, 61, 48, 10, 40, 48, 59, 54, 52, 94, 48, 59, 51, 50, 94, 49, 50, 56, 59, 48, 41, 32, 45, 114, 32, 50, 53, 54, 44, 49, 50, 56, 44, 49, 44, 51, 44, 51, 10, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 53, 49, 50, 44, 50, 53, 54, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 114, 101, 119, 111, 114, 107, 115, 32, 100, 101, 109, 111, 34, 10, 45, 100, 111, 10, 116, 105, 109, 101, 61, 123, 36, 116, 105, 109, 101, 45, 49, 125, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 92, 32, 124, 124, 92, 32, 36, 116, 105, 109, 101, 60, 48, 125, 10, 45, 105, 91, 48, 93, 32, 40, 123, 63, 40, 119, 41, 125, 44, 92, 10, 123, 104, 125, 44, 92, 10, 123, 63, 40, 45, 51, 44, 51, 41, 125, 44, 92, 10, 123, 63, 40, 50, 41, 45, 53, 125, 44, 92, 10, 123, 51, 48, 43, 63, 40, 50, 48, 41, 125, 44, 92, 10, 49, 46, 53, 44, 92, 10, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 116, 105, 109, 101, 61, 123, 63, 40, 52, 48, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 48, 46, 57, 57, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 50, 10, 105, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 48, 10, 114, 97, 100, 105, 117, 115, 61, 123, 105, 102, 40, 64, 123, 36, 105, 44, 52, 125, 62, 48, 44, 64, 123, 36, 105, 44, 53, 125, 47, 51, 44, 64, 123, 36, 105, 44, 53, 125, 42, 40, 49, 43, 50, 42, 40, 64, 123, 36, 105, 44, 52, 125, 43, 50, 41, 47, 49, 50, 48, 41, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 36, 105, 44, 48, 125, 44, 64, 123, 36, 105, 44, 49, 125, 44, 64, 123, 36, 105, 44, 53, 125, 44, 123, 109, 97, 120, 40, 48, 46, 53, 44, 36, 114, 97, 100, 105, 117, 115, 41, 125, 44, 123, 97, 116, 97, 110, 50, 40, 64, 123, 36, 105, 44, 51, 125, 44, 64, 123, 36, 105, 44, 50, 125, 41, 42, 49, 56, 48, 47, 112, 105, 125, 44, 48, 46, 54, 44, 64, 123, 36, 105, 44, 54, 45, 56, 125, 10, 40, 64, 123, 36, 105, 44, 50, 125, 44, 64, 123, 36, 105, 44, 51, 125, 44, 48, 44, 48, 46, 48, 57, 44, 45, 49, 44, 48, 44, 48, 44, 48, 44, 48, 41, 32, 45, 43, 91, 36, 105, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 36, 105, 44, 48, 125, 60, 48, 92, 32, 124, 124, 92, 32, 64, 123, 36, 105, 44, 48, 125, 62, 61, 119, 92, 32, 124, 124, 92, 32, 64, 123, 36, 105, 44, 49, 125, 62, 61, 104, 92, 32, 124, 124, 92, 32, 36, 114, 97, 100, 105, 117, 115, 60, 48, 125, 32, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 36, 105, 44, 52, 125, 60, 48, 92, 32, 38, 38, 92, 32, 64, 123, 36, 105, 44, 52, 125, 62, 61, 45, 49, 125, 10, 99, 111, 108, 111, 114, 61, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 44, 123, 109, 105, 110, 40, 50, 53, 53, 44, 56, 48, 43, 63, 40, 50, 48, 48, 41, 41, 125, 10, 114, 97, 100, 105, 117, 115, 61, 123, 63, 40, 49, 48, 41, 125, 10, 78, 61, 123, 53, 43, 63, 40, 49, 48, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 97, 110, 103, 108, 101, 61, 123, 36, 62, 42, 50, 42, 112, 105, 47, 36, 78, 125, 10, 45, 105, 91, 45, 51, 93, 32, 40, 64, 123, 36, 105, 44, 48, 44, 49, 125, 44, 123, 50, 42, 99, 111, 115, 40, 36, 97, 110, 103, 108, 101, 41, 43, 64, 123, 36, 105, 44, 50, 125, 47, 49, 46, 53, 125, 44, 123, 50, 42, 115, 105, 110, 40, 36, 97, 110, 103, 108, 101, 41, 43, 64, 123, 36, 105, 44, 51, 125, 47, 49, 46, 53, 125, 44, 45, 50, 44, 36, 114, 97, 100, 105, 117, 115, 44, 36, 99, 111, 108, 111, 114, 41, 10, 45, 100, 111, 110, 101, 10, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 116, 111, 95, 98, 101, 95, 114, 101, 109, 111, 118, 101, 100, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 101, 108, 115, 101, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 119, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 110, 100, 108, 32, 45, 107, 91, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 102, 105, 115, 104, 101, 121, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 105, 115, 104, 45, 101, 121, 101, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 112, 111, 105, 110, 116, 101, 114, 32, 109, 111, 118, 101, 115, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 99, 101, 110, 116, 101, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 115, 101, 116, 32, 102, 105, 115, 104, 45, 101, 121, 101, 32, 115, 105, 122, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 62, 48, 125, 32, 45, 97, 32, 120, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 114, 50, 100, 121, 32, 50, 50, 48, 32, 45, 101, 108, 115, 101, 10, 49, 50, 48, 44, 57, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 48, 46, 51, 44, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 116, 32, 34, 32, 32, 71, 39, 77, 73, 67, 92, 110, 70, 73, 83, 72, 45, 69, 89, 69, 92, 110, 32, 32, 68, 69, 77, 79, 34, 44, 49, 53, 44, 49, 51, 44, 50, 52, 44, 49, 44, 50, 53, 53, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 98, 32, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 48, 48, 48, 10, 45, 102, 32, 105, 43, 49, 53, 48, 45, 52, 42, 97, 98, 115, 40, 121, 45, 104, 47, 50, 41, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 49, 93, 32, 49, 53, 44, 49, 48, 44, 49, 53, 44, 49, 46, 53, 44, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 50, 48, 44, 54, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 32, 45, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 57, 48, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 51, 48, 44, 50, 53, 53, 41, 125, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 53, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 82, 61, 51, 48, 10, 45, 119, 91, 45, 50, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 105, 115, 104, 45, 69, 121, 101, 32, 68, 101, 109, 111, 34, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 52, 48, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 49, 125, 32, 82, 61, 123, 109, 105, 110, 40, 56, 48, 44, 36, 82, 43, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 50, 125, 32, 82, 61, 123, 109, 97, 120, 40, 51, 44, 36, 82, 45, 56, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 53, 48, 43, 51, 48, 42, 99, 111, 115, 40, 64, 124, 42, 50, 46, 53, 41, 125, 37, 44, 123, 53, 48, 43, 51, 48, 42, 115, 105, 110, 40, 64, 124, 42, 49, 46, 54, 41, 125, 37, 44, 123, 53, 48, 43, 51, 51, 48, 42, 115, 105, 110, 40, 64, 124, 42, 50, 46, 54, 41, 125, 44, 48, 46, 55, 44, 51, 44, 48, 44, 48, 32, 45, 114, 51, 100, 91, 45, 50, 93, 32, 49, 44, 48, 46, 50, 44, 48, 46, 54, 44, 51, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 45, 102, 105, 115, 104, 101, 121, 101, 91, 45, 49, 93, 32, 123, 64, 123, 33, 44, 120, 125, 42, 49, 48, 48, 47, 64, 123, 33, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 121, 125, 42, 49, 48, 48, 47, 64, 123, 33, 44, 104, 125, 125, 44, 36, 82, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 33, 61, 61, 48, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 120, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 111, 117, 114, 105, 101, 114, 45, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 115, 101, 116, 32, 109, 105, 110, 47, 109, 97, 120, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 10, 102, 114, 101, 113, 109, 105, 110, 61, 48, 10, 102, 114, 101, 113, 109, 97, 120, 61, 49, 48, 48, 10, 45, 105, 102, 32, 123, 119, 62, 51, 42, 64, 123, 33, 44, 117, 125, 47, 53, 125, 32, 45, 114, 50, 100, 120, 91, 45, 49, 93, 32, 123, 51, 42, 64, 123, 33, 44, 117, 125, 47, 49, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 51, 42, 64, 123, 33, 44, 118, 125, 47, 53, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 123, 51, 42, 64, 123, 33, 44, 118, 125, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 102, 116, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 50, 93, 32, 114, 101, 97, 108, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 97, 103, 10, 45, 45, 115, 113, 114, 91, 114, 101, 97, 108, 44, 105, 109, 97, 103, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 103, 109, 97, 103, 10, 45, 119, 91, 48, 44, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 111, 117, 114, 105, 101, 114, 32, 70, 105, 108, 116, 101, 114, 105, 110, 103, 32, 68, 101, 109, 111, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 70, 111, 117, 114, 105, 101, 114, 32, 70, 105, 108, 116, 101, 114, 105, 110, 103, 32, 68, 101, 109, 111, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 70, 111, 117, 114, 105, 101, 114, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 92, 110, 34, 92, 10, 34, 111, 102, 32, 98, 97, 110, 100, 112, 97, 115, 115, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 111, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 32, 85, 115, 101, 32, 121, 111, 117, 114, 32, 109, 111, 117, 115, 101, 92, 110, 34, 92, 10, 34, 98, 117, 116, 116, 111, 110, 115, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 108, 111, 119, 32, 97, 110, 100, 32, 104, 105, 103, 104, 32, 98, 111, 117, 110, 100, 115, 32, 102, 111, 114, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 92, 110, 34, 92, 10, 34, 100, 105, 115, 112, 108, 97, 121, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 70, 111, 117, 114, 105, 101, 114, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 92, 110, 34, 92, 10, 34, 40, 114, 105, 103, 104, 116, 32, 105, 109, 97, 103, 101, 41, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 10, 45, 105, 91, 109, 97, 115, 107, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 114, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 42, 36, 102, 114, 101, 113, 109, 97, 120, 47, 50, 48, 48, 125, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 109, 97, 115, 107, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 49, 10, 114, 61, 123, 109, 97, 120, 40, 48, 44, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 42, 36, 102, 114, 101, 113, 109, 105, 110, 47, 50, 48, 48, 45, 49, 41, 125, 32, 45, 105, 102, 32, 36, 114, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 109, 97, 115, 107, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 114, 44, 36, 114, 44, 48, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 42, 91, 108, 111, 103, 109, 97, 103, 93, 32, 91, 109, 97, 115, 107, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 109, 97, 115, 107, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 115, 104, 105, 102, 116, 91, 109, 97, 115, 107, 93, 32, 45, 53, 48, 37, 44, 45, 53, 48, 37, 44, 48, 44, 48, 44, 50, 10, 45, 45, 42, 91, 114, 101, 97, 108, 44, 105, 109, 97, 103, 93, 32, 91, 109, 97, 115, 107, 93, 10, 45, 114, 109, 91, 45, 52, 93, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 64, 33, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 50, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 34, 70, 114, 101, 113, 46, 32, 77, 105, 110, 47, 77, 97, 120, 32, 61, 32, 34, 123, 105, 110, 116, 40, 36, 102, 114, 101, 113, 109, 105, 110, 41, 125, 34, 37, 32, 47, 32, 34, 123, 105, 110, 116, 40, 36, 102, 114, 101, 113, 109, 97, 120, 41, 125, 34, 37, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 119, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 64, 123, 33, 44, 119, 125, 47, 50, 125, 10, 114, 61, 123, 50, 48, 48, 42, 115, 113, 114, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 51, 42, 64, 123, 33, 44, 119, 125, 47, 52, 41, 94, 50, 43, 40, 64, 123, 33, 44, 121, 125, 45, 64, 123, 33, 44, 104, 125, 47, 50, 41, 94, 50, 41, 47, 92, 10, 115, 113, 114, 116, 40, 40, 64, 123, 33, 44, 119, 125, 47, 50, 41, 94, 50, 43, 64, 123, 33, 44, 104, 125, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 102, 114, 101, 113, 109, 97, 120, 61, 36, 114, 10, 45, 101, 108, 115, 101, 32, 102, 114, 101, 113, 109, 105, 110, 61, 123, 109, 97, 120, 40, 48, 44, 36, 114, 45, 51, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 102, 114, 101, 113, 109, 105, 110, 62, 61, 36, 102, 114, 101, 113, 109, 97, 120, 125, 32, 102, 114, 101, 113, 109, 105, 110, 61, 36, 102, 114, 101, 113, 109, 97, 120, 32, 45, 101, 110, 100, 105, 102, 10, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 48, 44, 119, 125, 125, 44, 64, 123, 48, 44, 104, 125, 32, 110, 101, 101, 100, 95, 117, 112, 100, 97, 116, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 119, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 72, 105, 115, 116, 111, 103, 114, 97, 109, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 98, 117, 116, 116, 111, 110, 32, 111, 114, 32, 107, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 51, 48, 48, 44, 51, 48, 48, 32, 45, 101, 108, 115, 101, 32, 45, 107, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 50, 100, 121, 32, 51, 48, 48, 44, 50, 32, 45, 105, 102, 32, 123, 119, 62, 56, 48, 48, 125, 32, 45, 114, 32, 56, 48, 48, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 51, 48, 48, 44, 123, 104, 125, 44, 49, 44, 51, 44, 50, 50, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 109, 97, 32, 58, 34, 44, 53, 44, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 67, 111, 110, 116, 114, 97, 115, 116, 32, 58, 34, 44, 53, 44, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 49, 48, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 49, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 58, 34, 44, 53, 44, 50, 48, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 34, 67, 108, 117, 115, 116, 101, 114, 115, 32, 58, 34, 44, 53, 44, 50, 53, 48, 44, 49, 54, 44, 49, 44, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 123, 119, 125, 44, 50, 48, 48, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 48, 10, 45, 102, 114, 97, 109, 101, 91, 45, 50, 44, 45, 49, 93, 32, 53, 44, 53, 44, 50, 50, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 99, 108, 117, 115, 116, 101, 114, 115, 61, 54, 52, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 32, 99, 111, 110, 116, 114, 97, 115, 116, 61, 49, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 32, 103, 97, 109, 109, 97, 61, 49, 10, 45, 100, 111, 10, 91, 48, 93, 10, 105, 97, 61, 123, 105, 97, 125, 10, 45, 105, 102, 32, 36, 103, 97, 109, 109, 97, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 94, 91, 45, 49, 93, 32, 123, 49, 47, 36, 103, 97, 109, 109, 97, 125, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 36, 105, 97, 32, 45, 42, 91, 45, 49, 93, 32, 36, 99, 111, 110, 116, 114, 97, 115, 116, 32, 45, 43, 91, 45, 49, 93, 32, 36, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 45, 43, 91, 45, 49, 93, 32, 36, 105, 97, 10, 45, 98, 91, 45, 49, 93, 32, 36, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 115, 104, 97, 114, 112, 110, 101, 115, 115, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 54, 44, 54, 10, 115, 120, 61, 123, 64, 123, 48, 44, 119, 125, 43, 49, 50, 125, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 103, 97, 109, 109, 97, 42, 49, 48, 48, 47, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 99, 111, 110, 116, 114, 97, 115, 116, 42, 49, 48, 48, 47, 52, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 40, 36, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 43, 49, 50, 56, 41, 42, 49, 48, 48, 47, 50, 53, 54, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 49, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 42, 49, 48, 48, 47, 49, 48, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 49, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 115, 104, 97, 114, 112, 110, 101, 115, 115, 42, 49, 48, 48, 47, 50, 48, 48, 48, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 50, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 99, 108, 117, 115, 116, 101, 114, 115, 42, 49, 48, 48, 47, 50, 53, 54, 125, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 120, 44, 50, 55, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 45, 45, 49, 93, 32, 36, 99, 108, 117, 115, 116, 101, 114, 115, 44, 48, 44, 50, 53, 53, 32, 45, 47, 91, 45, 51, 45, 45, 49, 93, 32, 123, 51, 42, 64, 123, 48, 44, 119, 104, 125, 47, 36, 99, 108, 117, 115, 116, 101, 114, 115, 125, 32, 45, 114, 109, 91, 45, 53, 93, 10, 45, 45, 122, 91, 45, 52, 93, 32, 53, 44, 51, 49, 55, 44, 123, 64, 123, 45, 52, 44, 119, 125, 45, 53, 125, 44, 123, 64, 123, 45, 52, 44, 104, 125, 45, 54, 125, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 46, 50, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 52, 45, 45, 50, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 44, 51, 49, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 72, 105, 115, 116, 111, 103, 114, 97, 109, 32, 100, 101, 109, 111, 34, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 120, 125, 62, 61, 64, 123, 48, 44, 119, 125, 45, 49, 48, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 52, 50, 125, 10, 103, 97, 109, 109, 97, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 52, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 52, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 57, 50, 125, 10, 99, 111, 110, 116, 114, 97, 115, 116, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 52, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 52, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 49, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 49, 52, 50, 125, 10, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 45, 49, 50, 56, 44, 109, 105, 110, 40, 49, 50, 56, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 53, 54, 47, 50, 56, 48, 45, 49, 50, 56, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 49, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 49, 57, 50, 125, 10, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 48, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 49, 48, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 50, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 50, 52, 50, 125, 10, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 50, 48, 48, 48, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 48, 48, 48, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 121, 125, 62, 61, 50, 55, 53, 92, 32, 38, 38, 92, 32, 64, 123, 33, 44, 121, 125, 60, 61, 50, 57, 50, 125, 10, 99, 108, 117, 115, 116, 101, 114, 115, 61, 123, 109, 97, 120, 40, 50, 44, 109, 105, 110, 40, 50, 53, 54, 44, 40, 64, 123, 33, 44, 120, 125, 45, 36, 115, 120, 41, 42, 50, 53, 54, 47, 50, 56, 48, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 92, 32, 124, 124, 92, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 32, 99, 108, 117, 115, 116, 101, 114, 115, 61, 54, 52, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 48, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 32, 99, 111, 110, 116, 114, 97, 115, 116, 61, 49, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 61, 48, 32, 103, 97, 109, 109, 97, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 118, 97, 108, 61, 123, 109, 97, 120, 40, 48, 44, 109, 105, 110, 40, 49, 48, 48, 44, 36, 49, 41, 41, 125, 10, 50, 56, 48, 44, 50, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 118, 97, 108, 37, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 44, 36, 118, 97, 108, 37, 44, 49, 44, 49, 44, 50, 52, 48, 44, 50, 53, 53, 44, 54, 50, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 54, 44, 49, 44, 51, 44, 51, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 36, 118, 97, 108, 41, 125, 37, 44, 48, 44, 48, 44, 50, 48, 44, 49, 44, 49, 32, 45, 45, 42, 91, 45, 49, 93, 32, 45, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 123, 40, 50, 56, 48, 45, 119, 41, 47, 50, 125, 44, 123, 40, 49, 54, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 50, 125, 44, 123, 104, 43, 50, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 120, 95, 104, 111, 117, 103, 104, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 72, 111, 117, 103, 104, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 118, 111, 116, 101, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 100, 114, 97, 119, 32, 99, 111, 114, 114, 101, 115, 112, 111, 110, 100, 105, 110, 103, 32, 108, 105, 110, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 111, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 118, 111, 116, 101, 32, 102, 111, 114, 32, 97, 108, 108, 32, 108, 105, 110, 101, 115, 32, 99, 114, 111, 115, 115, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 116, 104, 101, 32, 99, 108, 105, 99, 107, 101, 100, 32, 112, 111, 105, 110, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 116, 104, 101, 32, 104, 111, 117, 103, 104, 32, 119, 105, 110, 100, 111, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 52, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 91, 45, 49, 93, 32, 64, 123, 45, 102, 105, 116, 115, 99, 114, 101, 101, 110, 92, 32, 123, 119, 125, 44, 123, 104, 125, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 114, 104, 111, 109, 97, 120, 61, 123, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 47, 50, 125, 10, 45, 45, 98, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 104, 111, 117, 103, 104, 91, 45, 49, 93, 32, 53, 49, 50, 44, 52, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 73, 109, 97, 103, 101, 34, 32, 45, 119, 49, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 48, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 72, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 116, 104, 101, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 92, 110, 34, 92, 10, 34, 111, 102, 32, 116, 104, 101, 32, 72, 111, 117, 103, 104, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 116, 111, 32, 100, 101, 116, 101, 99, 116, 32, 108, 105, 110, 101, 115, 32, 105, 110, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 32, 85, 115, 101, 32, 121, 111, 117, 114, 92, 110, 34, 92, 10, 34, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 116, 111, 32, 101, 120, 112, 108, 111, 114, 101, 32, 116, 104, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 105, 109, 97, 103, 101, 32, 97, 110, 100, 32, 115, 101, 101, 32, 104, 111, 119, 92, 110, 34, 92, 10, 34, 108, 105, 110, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 32, 97, 114, 101, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 101, 100, 32, 98, 121, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 64, 123, 33, 44, 98, 125, 10, 120, 48, 61, 123, 64, 123, 33, 44, 120, 125, 45, 64, 123, 33, 44, 119, 125, 47, 50, 125, 10, 121, 48, 61, 123, 64, 123, 33, 44, 121, 125, 45, 64, 123, 33, 44, 104, 125, 47, 50, 125, 10, 114, 104, 111, 48, 61, 123, 115, 113, 114, 116, 40, 40, 36, 120, 48, 41, 94, 50, 43, 40, 36, 121, 48, 41, 94, 50, 41, 125, 10, 116, 104, 101, 116, 97, 48, 61, 123, 97, 116, 97, 110, 50, 40, 36, 121, 48, 44, 36, 120, 48, 41, 125, 10, 40, 48, 44, 123, 50, 42, 112, 105, 125, 41, 32, 40, 36, 116, 104, 101, 116, 97, 48, 44, 123, 36, 116, 104, 101, 116, 97, 48, 45, 50, 42, 112, 105, 125, 41, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 45, 51, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 51, 10, 45, 99, 111, 115, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 104, 111, 48, 32, 45, 45, 108, 116, 91, 45, 49, 93, 32, 48, 32, 45, 97, 98, 115, 91, 45, 50, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 112, 105, 125, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 37, 91, 45, 50, 93, 32, 123, 50, 42, 112, 105, 125, 10, 45, 42, 91, 45, 50, 93, 32, 123, 48, 46, 53, 42, 64, 123, 45, 51, 44, 119, 125, 47, 112, 105, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 51, 44, 104, 125, 47, 36, 114, 104, 111, 109, 97, 120, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 112, 111, 105, 110, 116, 91, 45, 50, 93, 32, 64, 123, 45, 49, 44, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 45, 49, 44, 40, 36, 62, 44, 49, 41, 125, 44, 48, 44, 48, 46, 51, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 49, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 49, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 49, 44, 98, 125, 125, 10, 116, 104, 101, 116, 97, 61, 123, 64, 123, 33, 49, 44, 120, 125, 42, 50, 42, 112, 105, 47, 64, 123, 33, 49, 44, 119, 125, 125, 10, 114, 104, 111, 61, 123, 64, 123, 33, 49, 44, 121, 125, 42, 36, 114, 104, 111, 109, 97, 120, 47, 64, 123, 33, 49, 44, 104, 125, 125, 10, 120, 61, 123, 64, 123, 45, 50, 44, 119, 125, 47, 50, 43, 36, 114, 104, 111, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 61, 123, 64, 123, 45, 50, 44, 104, 125, 47, 50, 43, 36, 114, 104, 111, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 120, 48, 61, 123, 36, 120, 43, 49, 48, 48, 48, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 48, 61, 123, 36, 121, 45, 49, 48, 48, 48, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 120, 49, 61, 123, 36, 120, 45, 49, 48, 48, 48, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 121, 49, 61, 123, 36, 121, 43, 49, 48, 48, 48, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 91, 45, 50, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 120, 48, 43, 49, 125, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 123, 36, 121, 48, 43, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 120, 48, 43, 49, 125, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 123, 36, 121, 48, 43, 49, 125, 44, 36, 120, 49, 44, 36, 121, 49, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 48, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 49, 44, 83, 80, 65, 67, 69, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 98, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 104, 111, 117, 103, 104, 91, 45, 49, 93, 32, 53, 49, 50, 44, 52, 48, 48, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 108, 111, 103, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 49, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 72, 111, 117, 103, 104, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 34, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 49, 44, 114, 125, 32, 45, 119, 49, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 64, 123, 33, 49, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 33, 64, 123, 33, 49, 125, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 48, 32, 48, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 120, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 50, 125, 62, 48, 32, 38, 38, 32, 36, 49, 60, 50, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 51, 125, 62, 48, 32, 38, 38, 32, 36, 50, 60, 50, 48, 32, 38, 38, 32, 36, 123, 51, 61, 53, 125, 62, 48, 32, 38, 38, 32, 36, 51, 60, 61, 56, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 111, 102, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 105, 115, 32, 116, 111, 32, 114, 101, 109, 111, 118, 101, 32, 116, 104, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 92, 110, 10, 45, 45, 45, 45, 32, 98, 97, 108, 108, 115, 32, 111, 110, 32, 116, 104, 101, 32, 98, 111, 97, 114, 100, 44, 32, 115, 105, 109, 112, 108, 121, 32, 98, 121, 32, 99, 108, 105, 99, 107, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 109, 46, 32, 66, 117, 116, 32, 97, 92, 110, 10, 45, 45, 45, 45, 32, 99, 111, 108, 111, 114, 101, 100, 32, 98, 97, 108, 108, 32, 99, 97, 110, 32, 100, 105, 115, 97, 112, 112, 101, 97, 114, 32, 111, 110, 108, 121, 32, 105, 102, 32, 105, 116, 32, 105, 115, 32, 103, 114, 111, 117, 112, 101, 100, 32, 119, 105, 116, 104, 32, 97, 116, 92, 110, 10, 45, 45, 45, 45, 32, 108, 101, 97, 115, 116, 32, 111, 110, 101, 32, 98, 97, 108, 108, 32, 111, 102, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 99, 111, 108, 111, 114, 46, 32, 84, 104, 101, 32, 115, 99, 111, 114, 101, 32, 105, 115, 32, 104, 105, 103, 104, 101, 114, 32, 105, 102, 92, 110, 10, 45, 45, 45, 45, 32, 121, 111, 117, 32, 100, 101, 115, 116, 114, 111, 121, 32, 108, 97, 114, 103, 101, 114, 32, 115, 101, 116, 115, 32, 111, 102, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 98, 97, 108, 108, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 47, 100, 101, 115, 116, 114, 111, 121, 32, 98, 97, 108, 108, 115, 32, 111, 110, 32, 98, 111, 97, 114, 100, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 66, 65, 67, 75, 83, 80, 65, 67, 69, 39, 32, 111, 114, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 117, 110, 100, 111, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 109, 111, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 98, 111, 97, 114, 100, 93, 32, 36, 49, 44, 36, 50, 32, 45, 114, 97, 110, 100, 91, 98, 111, 97, 114, 100, 93, 32, 49, 44, 36, 51, 32, 45, 114, 111, 117, 110, 100, 91, 98, 111, 97, 114, 100, 93, 32, 49, 10, 45, 105, 91, 117, 110, 100, 111, 93, 32, 91, 45, 49, 93, 10, 45, 105, 91, 98, 97, 108, 108, 115, 93, 32, 51, 50, 44, 51, 50, 32, 45, 98, 97, 108, 108, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 42, 119, 125, 44, 123, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 42, 104, 125, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 98, 97, 99, 107, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 108, 91, 45, 49, 93, 10, 45, 114, 97, 110, 100, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 54, 44, 50, 48, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 49, 48, 48, 44, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 50, 44, 52, 10, 45, 115, 104, 32, 48, 44, 48, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 115, 104, 91, 45, 51, 93, 32, 50, 44, 50, 32, 45, 47, 91, 45, 51, 93, 32, 52, 32, 45, 47, 91, 45, 50, 93, 32, 56, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 105, 91, 118, 105, 115, 117, 93, 32, 91, 98, 97, 99, 107, 93, 10, 115, 99, 111, 114, 101, 61, 48, 10, 117, 110, 100, 111, 115, 99, 111, 114, 101, 61, 48, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 48, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 10, 45, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 51, 54, 48, 47, 36, 51, 125, 32, 45, 45, 103, 101, 91, 98, 111, 97, 114, 100, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 57, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 98, 97, 108, 108, 115, 93, 32, 91, 98, 97, 108, 108, 115, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 32, 45, 103, 116, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 98, 97, 99, 107, 93, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 125, 32, 45, 119, 91, 118, 105, 115, 117, 93, 32, 64, 123, 98, 97, 99, 107, 44, 119, 125, 44, 64, 123, 98, 97, 99, 107, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 10, 45, 45, 116, 91, 118, 105, 115, 117, 93, 32, 34, 43, 34, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 44, 64, 123, 33, 44, 120, 125, 44, 123, 64, 123, 33, 44, 121, 125, 45, 54, 52, 43, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 125, 44, 51, 50, 44, 123, 40, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 45, 49, 41, 47, 51, 49, 125, 44, 50, 53, 53, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 123, 109, 97, 120, 40, 48, 44, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 45, 49, 41, 125, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 98, 97, 99, 107, 44, 119, 125, 44, 64, 123, 98, 97, 99, 107, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 53, 10, 45, 101, 108, 115, 101, 32, 45, 119, 97, 105, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 34, 105, 102, 40, 105, 44, 106, 40, 45, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 48, 44, 49, 41, 61, 61, 105, 32, 124, 124, 32, 106, 40, 48, 44, 45, 49, 41, 61, 61, 105, 44, 48, 41, 34, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 118, 105, 115, 117, 93, 32, 103, 109, 105, 99, 95, 106, 97, 119, 98, 114, 101, 97, 107, 101, 114, 46, 112, 110, 103, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 10, 45, 97, 98, 115, 91, 117, 110, 100, 111, 93, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 117, 110, 100, 111, 93, 10, 115, 99, 111, 114, 101, 61, 36, 117, 110, 100, 111, 115, 99, 111, 114, 101, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 34, 62, 61, 48, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 125, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 120, 61, 123, 34, 105, 110, 116, 40, 34, 64, 123, 33, 44, 120, 125, 34, 42, 34, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 34, 47, 34, 64, 123, 33, 44, 119, 125, 34, 41, 34, 125, 10, 121, 61, 123, 34, 105, 110, 116, 40, 34, 64, 123, 33, 44, 121, 125, 34, 42, 34, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 34, 47, 34, 64, 123, 33, 44, 104, 125, 34, 41, 34, 125, 10, 45, 105, 102, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 62, 48, 125, 10, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 45, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 45, 103, 101, 91, 98, 111, 97, 114, 100, 93, 32, 48, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 61, 123, 40, 64, 123, 45, 49, 44, 43, 125, 43, 49, 41, 94, 50, 125, 32, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 121, 61, 123, 105, 102, 40, 36, 115, 104, 97, 112, 101, 115, 99, 111, 114, 101, 44, 51, 50, 44, 48, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 45, 49, 32, 45, 61, 61, 91, 45, 49, 93, 32, 45, 49, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 43, 125, 62, 49, 125, 10, 45, 106, 91, 117, 110, 100, 111, 93, 32, 91, 98, 111, 97, 114, 100, 93, 10, 117, 110, 100, 111, 115, 99, 111, 114, 101, 61, 36, 115, 99, 111, 114, 101, 10, 45, 102, 108, 111, 111, 100, 91, 98, 111, 97, 114, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 98, 111, 97, 114, 100, 93, 32, 36, 62, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 10, 104, 61, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 45, 44, 48, 32, 45, 97, 32, 121, 32, 45, 105, 102, 32, 64, 35, 32, 45, 114, 32, 49, 44, 36, 104, 44, 49, 44, 49, 44, 48, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 49, 44, 36, 104, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 10, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 45, 49, 93, 44, 36, 62, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 111, 119, 115, 91, 98, 111, 97, 114, 100, 93, 32, 45, 49, 44, 49, 48, 48, 37, 32, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 34, 105, 102, 40, 121, 61, 61, 48, 44, 105, 102, 40, 105, 40, 120, 44, 104, 45, 49, 41, 44, 120, 44, 119, 41, 44, 105, 41, 34, 32, 45, 115, 111, 114, 116, 91, 98, 111, 97, 114, 100, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 98, 111, 97, 114, 100, 93, 32, 49, 44, 49, 48, 48, 37, 10, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 105, 110, 116, 40, 40, 64, 123, 45, 49, 44, 43, 125, 45, 49, 41, 94, 50, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 97, 98, 115, 91, 98, 111, 97, 114, 100, 93, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 110, 100, 101, 114, 95, 98, 111, 97, 114, 100, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 10, 45, 105, 102, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 125, 10, 45, 119, 91, 93, 32, 64, 123, 118, 105, 115, 117, 44, 119, 125, 44, 64, 123, 118, 105, 115, 117, 44, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 97, 119, 98, 114, 101, 97, 107, 101, 114, 32, 40, 102, 105, 110, 97, 108, 32, 115, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 41, 34, 10, 45, 105, 91, 103, 97, 109, 101, 111, 118, 101, 114, 93, 32, 50, 51, 48, 44, 56, 53, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 32, 79, 118, 101, 114, 33, 34, 44, 51, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 44, 50, 52, 44, 53, 52, 44, 51, 50, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 109, 103, 97, 109, 101, 111, 118, 101, 114, 34, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 50, 53, 10, 45, 45, 114, 91, 103, 97, 109, 101, 111, 118, 101, 114, 44, 109, 103, 97, 109, 101, 111, 118, 101, 114, 93, 32, 123, 52, 48, 48, 45, 49, 50, 42, 40, 36, 62, 43, 49, 41, 125, 37, 44, 123, 52, 48, 48, 45, 49, 50, 42, 40, 36, 62, 43, 49, 41, 125, 37, 10, 45, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 118, 105, 115, 117, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 40, 64, 123, 118, 105, 115, 117, 44, 104, 125, 45, 104, 41, 47, 50, 125, 44, 48, 44, 48, 44, 123, 36, 62, 47, 50, 53, 125, 44, 91, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 53, 10, 45, 100, 111, 110, 101, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 98, 125, 125, 10, 45, 114, 109, 91, 103, 97, 109, 101, 111, 118, 101, 114, 44, 109, 103, 97, 109, 101, 111, 118, 101, 114, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 98, 111, 97, 114, 100, 44, 117, 110, 100, 111, 44, 98, 97, 108, 108, 115, 44, 98, 97, 99, 107, 44, 118, 105, 115, 117, 93, 10, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 108, 105, 102, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 97, 109, 101, 32, 111, 102, 32, 108, 105, 102, 101, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 105, 115, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 116, 104, 101, 32, 98, 105, 103, 103, 101, 115, 116, 32, 112, 111, 115, 115, 105, 98, 108, 101, 32, 98, 105, 111, 108, 111, 103, 105, 99, 97, 108, 92, 110, 10, 45, 45, 45, 45, 32, 115, 121, 115, 116, 101, 109, 46, 32, 89, 111, 117, 32, 115, 116, 97, 114, 116, 32, 119, 105, 116, 104, 32, 97, 32, 115, 116, 111, 99, 107, 32, 111, 102, 32, 99, 101, 108, 108, 115, 32, 119, 104, 105, 99, 104, 32, 121, 111, 117, 32, 99, 97, 110, 92, 110, 10, 45, 45, 45, 45, 32, 115, 112, 114, 101, 97, 100, 32, 111, 118, 101, 114, 32, 116, 104, 101, 32, 98, 111, 97, 114, 100, 46, 32, 70, 111, 114, 32, 101, 97, 99, 104, 32, 110, 101, 119, 32, 99, 101, 108, 108, 115, 32, 99, 114, 101, 97, 116, 101, 100, 92, 110, 10, 45, 45, 45, 45, 32, 115, 105, 109, 117, 108, 116, 97, 110, 101, 111, 117, 115, 108, 121, 32, 97, 110, 100, 32, 115, 112, 111, 110, 116, 97, 110, 101, 111, 117, 115, 108, 121, 32, 98, 121, 32, 121, 111, 117, 114, 32, 115, 121, 115, 116, 101, 109, 44, 32, 121, 111, 117, 92, 110, 10, 45, 45, 45, 45, 32, 103, 97, 105, 110, 32, 109, 111, 114, 101, 32, 110, 101, 119, 32, 99, 101, 108, 108, 115, 32, 116, 111, 32, 115, 99, 97, 116, 116, 101, 114, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 115, 99, 97, 116, 116, 101, 114, 32, 99, 101, 108, 108, 115, 32, 105, 110, 32, 115, 116, 111, 99, 107, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 91, 48, 93, 32, 57, 48, 44, 57, 48, 44, 49, 44, 49, 44, 48, 10, 45, 105, 91, 49, 93, 32, 91, 48, 93, 32, 45, 102, 91, 49, 93, 32, 48, 10, 45, 105, 91, 50, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 49, 44, 51, 10, 45, 105, 91, 51, 93, 32, 49, 10, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 48, 10, 115, 99, 111, 114, 101, 61, 48, 10, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 48, 10, 115, 116, 111, 99, 107, 61, 53, 48, 48, 10, 45, 119, 91, 48, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 84, 104, 101, 32, 71, 97, 109, 101, 32, 111, 102, 32, 76, 105, 102, 101, 34, 10, 45, 100, 111, 10, 40, 49, 44, 49, 44, 49, 59, 49, 44, 48, 44, 49, 59, 49, 44, 49, 44, 49, 41, 32, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 116, 50, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 116, 50, 91, 45, 50, 93, 32, 51, 44, 51, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 118, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 61, 61, 49, 34, 32, 38, 38, 32, 34, 36, 115, 116, 111, 99, 107, 62, 48, 125, 10, 110, 98, 61, 123, 63, 42, 55, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 10, 120, 61, 123, 64, 123, 33, 44, 120, 125, 47, 64, 123, 33, 44, 119, 125, 42, 64, 123, 48, 44, 119, 125, 43, 63, 40, 45, 52, 44, 52, 41, 125, 10, 121, 61, 123, 64, 123, 33, 44, 121, 125, 47, 64, 123, 33, 44, 104, 125, 42, 64, 123, 48, 44, 104, 125, 43, 63, 40, 45, 51, 44, 51, 41, 125, 10, 45, 61, 91, 48, 93, 32, 49, 44, 36, 120, 44, 36, 121, 10, 45, 61, 91, 49, 93, 32, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 44, 36, 120, 44, 36, 121, 10, 45, 112, 111, 105, 110, 116, 91, 50, 93, 32, 123, 36, 120, 42, 64, 123, 50, 44, 119, 125, 47, 64, 123, 48, 44, 119, 125, 125, 44, 123, 36, 121, 42, 64, 123, 50, 44, 104, 125, 47, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 46, 56, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 115, 116, 111, 99, 107, 61, 123, 114, 111, 117, 110, 100, 40, 109, 97, 120, 40, 48, 44, 36, 115, 116, 111, 99, 107, 45, 36, 110, 98, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 48, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 115, 116, 111, 99, 107, 61, 123, 36, 115, 116, 111, 99, 107, 45, 50, 42, 40, 109, 105, 110, 40, 48, 44, 105, 110, 116, 40, 64, 123, 45, 49, 44, 43, 125, 47, 49, 54, 42, 36, 115, 99, 111, 114, 101, 47, 49, 53, 48, 41, 41, 41, 125, 10, 45, 43, 91, 49, 93, 32, 91, 48, 93, 10, 45, 109, 105, 110, 91, 45, 49, 93, 32, 48, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 50, 125, 10, 45, 102, 91, 48, 45, 50, 93, 32, 48, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 48, 32, 115, 99, 111, 114, 101, 61, 48, 32, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 48, 32, 115, 116, 111, 99, 107, 61, 53, 48, 48, 32, 45, 114, 109, 91, 51, 93, 32, 45, 105, 91, 51, 93, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 51, 44, 119, 125, 61, 61, 49, 125, 10, 45, 114, 109, 91, 51, 93, 32, 45, 105, 91, 51, 93, 32, 123, 63, 40, 51, 44, 49, 50, 41, 125, 44, 49, 44, 49, 44, 51, 44, 63, 40, 49, 48, 48, 44, 50, 53, 53, 41, 10, 45, 114, 91, 51, 93, 32, 123, 63, 40, 49, 48, 48, 44, 51, 48, 48, 41, 125, 37, 44, 49, 44, 49, 44, 51, 44, 52, 10, 45, 112, 111, 105, 110, 116, 91, 51, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 91, 51, 93, 32, 123, 63, 40, 49, 48, 48, 44, 54, 48, 48, 41, 125, 37, 44, 49, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 51, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 91, 49, 93, 32, 64, 123, 50, 44, 119, 125, 44, 64, 123, 50, 44, 104, 125, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 55, 32, 45, 98, 91, 45, 49, 93, 32, 123, 49, 43, 36, 115, 99, 111, 114, 101, 42, 48, 46, 48, 53, 125, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 64, 123, 51, 44, 119, 125, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 43, 91, 50, 44, 45, 49, 93, 32, 45, 47, 91, 50, 93, 32, 49, 46, 49, 10, 91, 50, 93, 32, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 48, 125, 10, 111, 112, 97, 99, 61, 123, 48, 46, 55, 42, 109, 105, 110, 40, 49, 44, 36, 115, 116, 111, 99, 107, 47, 53, 48, 48, 41, 125, 32, 114, 61, 123, 109, 105, 110, 40, 53, 48, 48, 44, 36, 115, 116, 111, 99, 107, 41, 42, 99, 111, 115, 40, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 41, 47, 49, 48, 48, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 49, 53, 43, 36, 114, 125, 44, 123, 49, 53, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 48, 44, 49, 57, 54, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 49, 48, 43, 36, 114, 125, 44, 123, 49, 48, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 51, 50, 44, 54, 52, 44, 49, 54, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 44, 123, 53, 43, 36, 114, 125, 44, 123, 53, 43, 36, 114, 125, 44, 48, 44, 36, 111, 112, 97, 99, 44, 50, 53, 53, 44, 50, 51, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 34, 76, 105, 118, 105, 110, 103, 32, 99, 101, 108, 108, 115, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 92, 110, 34, 92, 10, 34, 83, 116, 111, 99, 107, 32, 58, 32, 34, 36, 115, 116, 111, 99, 107, 34, 92, 110, 34, 92, 10, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 98, 101, 115, 116, 115, 99, 111, 114, 101, 44, 53, 44, 51, 44, 50, 50, 44, 48, 46, 55, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 125, 32, 45, 111, 91, 45, 49, 93, 32, 103, 109, 105, 99, 95, 108, 105, 102, 101, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 33, 40, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 37, 49, 48, 41, 125, 32, 115, 99, 111, 114, 101, 61, 64, 123, 48, 44, 43, 125, 32, 98, 101, 115, 116, 115, 99, 111, 114, 101, 61, 123, 109, 97, 120, 40, 36, 115, 99, 111, 114, 101, 44, 36, 98, 101, 115, 116, 115, 99, 111, 114, 101, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 54, 48, 10, 105, 116, 101, 114, 97, 116, 105, 111, 110, 61, 123, 36, 105, 116, 101, 114, 97, 116, 105, 111, 110, 43, 49, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 48, 45, 51, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 76, 105, 103, 104, 116, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 118, 101, 32, 108, 105, 103, 104, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 109, 111, 117, 115, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 115, 32, 102, 97, 100, 101, 32, 108, 105, 103, 104, 116, 32, 105, 110, 47, 111, 117, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 32, 32, 32, 71, 39, 77, 73, 67, 92, 110, 76, 105, 103, 104, 116, 32, 68, 101, 109, 111, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 53, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 51, 10, 91, 45, 49, 93, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 55, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 53, 48, 37, 44, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 49, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 50, 48, 44, 50, 48, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 49, 48, 44, 48, 44, 49, 44, 49, 44, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 98, 91, 45, 49, 93, 32, 51, 32, 45, 110, 91, 45, 49, 93, 32, 45, 54, 48, 44, 54, 48, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 91, 45, 49, 93, 32, 45, 49, 53, 48, 44, 49, 53, 48, 10, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 76, 105, 103, 104, 116, 32, 68, 101, 109, 111, 34, 10, 108, 105, 103, 104, 116, 61, 55, 48, 10, 53, 49, 50, 44, 53, 49, 50, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 116, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 88, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 45, 64, 123, 33, 44, 120, 125, 41, 47, 50, 41, 125, 10, 89, 61, 123, 114, 111, 117, 110, 100, 40, 40, 104, 45, 64, 123, 33, 44, 121, 125, 41, 47, 50, 41, 125, 10, 45, 101, 108, 115, 101, 10, 88, 61, 123, 114, 111, 117, 110, 100, 40, 40, 119, 45, 64, 123, 45, 50, 44, 119, 125, 42, 40, 49, 43, 99, 111, 115, 40, 50, 42, 36, 116, 41, 41, 41, 47, 50, 41, 125, 10, 89, 61, 123, 114, 111, 117, 110, 100, 40, 40, 104, 45, 64, 123, 45, 50, 44, 104, 125, 42, 40, 49, 43, 115, 105, 110, 40, 50, 46, 53, 42, 36, 116, 41, 41, 41, 47, 50, 41, 125, 10, 116, 61, 123, 36, 116, 43, 48, 46, 48, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 125, 32, 108, 105, 103, 104, 116, 61, 123, 109, 105, 110, 40, 50, 48, 48, 44, 36, 108, 105, 103, 104, 116, 43, 49, 48, 41, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 125, 32, 108, 105, 103, 104, 116, 61, 123, 109, 97, 120, 40, 49, 48, 44, 36, 108, 105, 103, 104, 116, 45, 49, 48, 41, 125, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 36, 108, 105, 103, 104, 116, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 122, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 88, 43, 64, 123, 45, 50, 44, 119, 125, 45, 49, 125, 44, 123, 36, 89, 43, 64, 123, 45, 50, 44, 104, 125, 45, 49, 125, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 49, 44, 48, 44, 49, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 52, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 50, 42, 119, 125, 44, 123, 50, 42, 104, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 98, 125, 125, 32, 45, 119, 97, 105, 116, 32, 45, 101, 108, 115, 101, 32, 45, 119, 97, 105, 116, 32, 50, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 32, 45, 118, 32, 43, 10, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 46, 51, 49, 55, 125, 44, 36, 123, 51, 61, 48, 46, 48, 51, 125, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 47, 74, 117, 108, 105, 97, 32, 101, 120, 112, 108, 111, 114, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 83, 101, 108, 101, 99, 116, 32, 122, 111, 111, 109, 105, 110, 103, 32, 114, 101, 103, 105, 111, 110, 32, 119, 105, 116, 104, 32, 109, 111, 117, 115, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 67, 108, 105, 99, 107, 32, 111, 110, 99, 101, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 122, 111, 111, 109, 32, 102, 97, 99, 116, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 67, 39, 32, 116, 111, 32, 112, 114, 105, 110, 116, 32, 99, 117, 114, 114, 101, 110, 116, 32, 102, 114, 97, 99, 116, 97, 108, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 45, 119, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 36, 49, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 10, 45, 100, 111, 10, 115, 105, 122, 61, 123, 109, 105, 110, 40, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 41, 125, 10, 36, 115, 105, 122, 44, 36, 115, 105, 122, 32, 45, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 91, 45, 49, 93, 32, 64, 48, 44, 50, 53, 54, 44, 36, 49, 44, 123, 105, 102, 40, 36, 49, 44, 36, 50, 44, 48, 41, 125, 44, 123, 105, 102, 40, 36, 49, 44, 36, 51, 44, 48, 41, 125, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 36, 115, 105, 122, 44, 36, 115, 105, 122, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 74, 117, 108, 105, 97, 32, 115, 101, 116, 32, 99, 61, 40, 34, 64, 123, 48, 44, 48, 125, 34, 44, 34, 64, 123, 48, 44, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 125, 34, 44, 34, 64, 123, 48, 44, 51, 125, 34, 41, 44, 32, 99, 48, 61, 40, 36, 50, 44, 36, 51, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 119, 91, 45, 49, 93, 32, 36, 115, 105, 122, 44, 36, 115, 105, 122, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 115, 101, 116, 32, 99, 61, 40, 34, 64, 123, 48, 44, 48, 125, 34, 44, 34, 64, 123, 48, 44, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 125, 34, 44, 34, 64, 123, 48, 44, 51, 125, 34, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 115, 101, 108, 101, 99, 116, 91, 45, 49, 93, 32, 50, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 62, 48, 125, 10, 77, 61, 123, 109, 97, 120, 40, 64, 123, 45, 49, 44, 51, 125, 45, 64, 123, 45, 49, 44, 48, 125, 44, 64, 123, 45, 49, 44, 52, 125, 45, 64, 123, 45, 49, 44, 49, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 77, 60, 53, 125, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 36, 49, 32, 45, 114, 109, 91, 49, 93, 32, 45, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 40, 123, 64, 123, 48, 44, 48, 125, 43, 64, 123, 45, 49, 44, 48, 125, 42, 40, 64, 123, 48, 44, 50, 125, 45, 64, 123, 48, 44, 48, 125, 41, 47, 36, 119, 125, 59, 92, 10, 123, 64, 123, 48, 44, 49, 125, 43, 64, 123, 45, 49, 44, 49, 125, 42, 40, 64, 123, 48, 44, 51, 125, 45, 64, 123, 48, 44, 49, 125, 41, 47, 36, 104, 125, 59, 92, 10, 123, 64, 123, 48, 44, 48, 125, 43, 40, 64, 123, 45, 49, 44, 48, 125, 43, 36, 77, 41, 42, 40, 64, 123, 48, 44, 50, 125, 45, 64, 123, 48, 44, 48, 125, 41, 47, 36, 119, 125, 59, 92, 10, 123, 64, 123, 48, 44, 49, 125, 43, 40, 64, 123, 45, 49, 44, 49, 125, 43, 36, 77, 41, 42, 40, 64, 123, 48, 44, 51, 125, 45, 64, 123, 48, 44, 49, 125, 41, 47, 36, 104, 125, 41, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 67, 125, 125, 10, 45, 105, 102, 32, 36, 49, 32, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 74, 117, 108, 105, 97, 32, 115, 101, 116, 44, 32, 97, 116, 32, 99, 32, 61, 32, 40, 34, 64, 123, 48, 44, 48, 45, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 45, 51, 125, 34, 41, 44, 32, 119, 105, 116, 104, 32, 99, 48, 32, 61, 32, 40, 36, 50, 44, 36, 51, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 32, 45, 118, 32, 43, 32, 45, 101, 91, 48, 45, 45, 52, 93, 32, 34, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 115, 101, 116, 44, 32, 97, 116, 32, 99, 32, 61, 32, 40, 34, 64, 123, 48, 44, 48, 45, 49, 125, 34, 41, 45, 40, 34, 64, 123, 48, 44, 50, 45, 51, 125, 34, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 125, 32, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 119, 104, 105, 108, 101, 32, 49, 10, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 99, 111, 111, 114, 100, 115, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 40, 45, 50, 59, 45, 50, 59, 50, 59, 50, 41, 32, 45, 101, 108, 115, 101, 32, 40, 45, 50, 46, 49, 59, 45, 49, 46, 53, 59, 49, 46, 50, 59, 49, 46, 53, 41, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 97, 108, 101, 116, 116, 101, 32, 58, 10, 54, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 50, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 51, 50, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 50, 52, 44, 49, 44, 49, 44, 51, 44, 48, 44, 50, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 61, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 50, 10, 120, 95, 109, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 48, 125, 62, 61, 56, 32, 38, 38, 32, 36, 49, 60, 61, 51, 48, 32, 38, 38, 32, 36, 123, 50, 61, 36, 49, 125, 62, 61, 56, 32, 38, 38, 32, 36, 50, 60, 61, 51, 48, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 101, 32, 103, 111, 97, 108, 32, 105, 115, 32, 116, 111, 32, 99, 108, 101, 97, 114, 32, 116, 104, 101, 32, 109, 105, 110, 101, 102, 105, 101, 108, 100, 32, 119, 105, 116, 104, 111, 117, 116, 32, 100, 101, 116, 111, 110, 97, 116, 105, 110, 103, 32, 97, 92, 110, 10, 45, 45, 45, 45, 32, 109, 105, 110, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 116, 114, 121, 32, 99, 108, 101, 97, 114, 105, 110, 103, 32, 111, 110, 101, 32, 115, 113, 117, 97, 114, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 102, 108, 97, 103, 32, 111, 114, 32, 117, 110, 102, 108, 97, 103, 32, 97, 32, 115, 113, 117, 97, 114, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 77, 105, 100, 100, 108, 101, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 109, 105, 110, 101, 32, 102, 105, 101, 108, 100, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 34, 10, 45, 118, 32, 45, 10, 36, 49, 44, 36, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 51, 48, 44, 50, 32, 110, 98, 95, 109, 105, 110, 101, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 40, 49, 44, 49, 44, 49, 59, 49, 44, 48, 44, 49, 59, 49, 44, 49, 44, 49, 41, 32, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 61, 61, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 105, 101, 108, 100, 10, 45, 100, 111, 32, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 119, 45, 49, 41, 41, 125, 32, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 104, 45, 49, 41, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 105, 40, 36, 120, 44, 36, 121, 41, 33, 61, 49, 125, 10, 45, 45, 102, 91, 102, 105, 101, 108, 100, 93, 32, 49, 49, 32, 45, 61, 91, 45, 49, 93, 32, 49, 50, 44, 36, 120, 44, 36, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 98, 111, 97, 114, 100, 10, 50, 52, 44, 50, 52, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 49, 56, 48, 44, 49, 51, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 49, 50, 44, 49, 50, 44, 52, 44, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 54, 44, 49, 50, 44, 49, 56, 44, 49, 50, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 50, 44, 54, 44, 49, 50, 44, 49, 56, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 51, 44, 49, 48, 44, 49, 52, 44, 49, 48, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 51, 44, 49, 49, 44, 49, 52, 44, 49, 49, 44, 49, 44, 50, 53, 53, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 45, 102, 99, 91, 45, 49, 93, 32, 50, 51, 48, 44, 50, 53, 48, 44, 50, 53, 53, 10, 45, 45, 116, 91, 45, 49, 93, 32, 34, 49, 34, 44, 49, 48, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 49, 57, 54, 44, 48, 32, 45, 45, 116, 91, 45, 50, 93, 32, 34, 50, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 49, 50, 56, 44, 48, 32, 45, 45, 116, 91, 45, 51, 93, 32, 34, 51, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 45, 116, 91, 45, 52, 93, 32, 34, 52, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 53, 93, 32, 34, 53, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 54, 93, 32, 34, 54, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 49, 53, 48, 44, 48, 44, 48, 10, 45, 45, 116, 91, 45, 55, 93, 32, 34, 55, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 49, 50, 56, 44, 48, 44, 48, 32, 45, 45, 116, 91, 45, 56, 93, 32, 34, 56, 34, 44, 57, 44, 53, 44, 49, 51, 44, 49, 44, 54, 52, 44, 48, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 56, 45, 45, 49, 93, 32, 50, 10, 45, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 60, 61, 49, 124, 124, 121, 60, 61, 49, 124, 124, 120, 62, 61, 119, 45, 50, 124, 124, 121, 62, 61, 104, 45, 50, 44, 105, 102, 40, 120, 60, 121, 44, 49, 50, 56, 44, 50, 53, 53, 41, 44, 49, 54, 48, 43, 50, 42, 40, 121, 43, 120, 41, 41, 39, 10, 45, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 49, 51, 44, 49, 53, 44, 49, 49, 44, 49, 53, 44, 54, 44, 49, 56, 44, 49, 55, 44, 49, 56, 44, 49, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 50, 44, 49, 53, 44, 49, 50, 44, 54, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 49, 50, 44, 54, 44, 54, 44, 57, 44, 49, 50, 44, 49, 50, 44, 49, 44, 50, 50, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 54, 44, 49, 52, 44, 49, 48, 44, 49, 56, 44, 49, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 56, 44, 49, 54, 44, 54, 44, 49, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 50, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 48, 46, 55, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 91, 45, 49, 51, 45, 45, 49, 93, 32, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 112, 114, 105, 116, 101, 115, 10, 40, 48, 44, 50, 51, 59, 48, 44, 50, 51, 94, 48, 44, 48, 59, 50, 51, 44, 50, 51, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 52, 44, 50, 52, 44, 49, 44, 50, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 42, 50, 52, 125, 44, 123, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 42, 50, 52, 125, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 102, 102, 115, 101, 116, 115, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 50, 51, 44, 50, 51, 44, 50, 53, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 109, 105, 110, 101, 115, 32, 58, 32, 34, 36, 110, 98, 95, 109, 105, 110, 101, 115, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 49, 48, 48, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 64, 123, 45, 50, 44, 119, 125, 45, 119, 41, 47, 50, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 104, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 97, 110, 118, 97, 115, 10, 102, 97, 105, 108, 101, 100, 61, 48, 32, 115, 117, 99, 99, 101, 101, 100, 101, 100, 61, 48, 32, 110, 98, 95, 102, 108, 97, 103, 115, 61, 48, 32, 115, 116, 97, 114, 116, 101, 100, 61, 48, 10, 45, 100, 111, 10, 45, 45, 42, 91, 98, 111, 97, 114, 100, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 91, 111, 102, 102, 115, 101, 116, 115, 93, 44, 91, 111, 102, 102, 115, 101, 116, 115, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 91, 111, 102, 102, 115, 101, 116, 115, 93, 32, 45, 45, 119, 97, 114, 112, 91, 115, 112, 114, 105, 116, 101, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 50, 52, 44, 50, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 105, 102, 32, 36, 102, 97, 105, 108, 101, 100, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 51, 44, 51, 44, 51, 56, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 49, 32, 45, 98, 108, 101, 110, 100, 91, 99, 97, 110, 118, 97, 115, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 66, 111, 111, 109, 33, 32, 89, 111, 117, 32, 102, 97, 105, 108, 101, 100, 33, 34, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 49, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 32, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 108, 105, 102, 32, 36, 115, 117, 99, 99, 101, 101, 100, 101, 100, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 117, 99, 99, 101, 115, 115, 33, 34, 44, 51, 44, 51, 44, 51, 56, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 53, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 49, 32, 45, 98, 108, 101, 110, 100, 91, 99, 97, 110, 118, 97, 115, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 67, 111, 110, 103, 114, 97, 116, 117, 108, 97, 116, 105, 111, 110, 115, 33, 32, 40, 34, 123, 114, 111, 117, 110, 100, 40, 64, 124, 45, 36, 116, 105, 99, 41, 125, 34, 32, 115, 41, 34, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 50, 53, 53, 44, 49, 48, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 32, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 119, 97, 105, 116, 32, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 108, 115, 101, 10, 45, 45, 61, 61, 91, 98, 111, 97, 114, 100, 93, 32, 49, 48, 32, 110, 98, 95, 102, 108, 97, 103, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 33, 36, 115, 116, 97, 114, 116, 101, 100, 125, 32, 116, 105, 99, 61, 64, 124, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 69, 108, 97, 112, 115, 101, 100, 32, 116, 105, 109, 101, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 64, 124, 45, 36, 116, 105, 99, 41, 125, 34, 32, 115, 32, 47, 32, 70, 108, 97, 103, 115, 32, 58, 32, 34, 36, 110, 98, 95, 102, 108, 97, 103, 115, 44, 48, 44, 48, 44, 49, 56, 44, 49, 44, 50, 53, 53, 44, 50, 48, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 64, 123, 99, 97, 110, 118, 97, 115, 44, 119, 125, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 106, 91, 99, 97, 110, 118, 97, 115, 93, 32, 91, 45, 49, 93, 44, 48, 44, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 53, 48, 10, 120, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 50, 52, 41, 47, 50, 52, 41, 125, 32, 121, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 121, 125, 45, 50, 52, 41, 47, 50, 52, 41, 125, 32, 98, 61, 64, 123, 33, 44, 98, 125, 10, 45, 119, 91, 99, 97, 110, 118, 97, 115, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 77, 105, 110, 101, 115, 119, 101, 101, 112, 101, 114, 34, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 36, 98, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 120, 62, 61, 48, 92, 32, 38, 38, 92, 32, 36, 121, 62, 61, 48, 92, 32, 38, 38, 92, 32, 36, 120, 60, 64, 123, 98, 111, 97, 114, 100, 44, 119, 125, 92, 32, 38, 38, 92, 32, 36, 121, 60, 64, 123, 98, 111, 97, 114, 100, 44, 104, 125, 125, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 125, 10, 115, 116, 97, 114, 116, 101, 100, 61, 49, 32, 118, 97, 108, 61, 64, 123, 102, 105, 101, 108, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 10, 45, 105, 102, 32, 123, 36, 118, 97, 108, 61, 61, 48, 125, 32, 45, 45, 61, 61, 91, 102, 105, 101, 108, 100, 93, 32, 48, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 102, 105, 101, 108, 100, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 102, 97, 105, 108, 101, 100, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 118, 97, 108, 61, 61, 49, 125, 32, 45, 45, 102, 108, 111, 111, 100, 91, 102, 105, 101, 108, 100, 93, 32, 36, 120, 44, 36, 121, 44, 48, 44, 48, 44, 49, 44, 49, 44, 45, 49, 32, 45, 61, 61, 91, 45, 49, 93, 32, 45, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 102, 105, 101, 108, 100, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 61, 91, 98, 111, 97, 114, 100, 93, 32, 36, 118, 97, 108, 44, 36, 120, 44, 36, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 110, 61, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 59, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 110, 62, 61, 49, 48, 34, 32, 38, 38, 32, 34, 110, 60, 61, 49, 49, 125, 10, 45, 61, 91, 98, 111, 97, 114, 100, 93, 32, 123, 105, 102, 40, 64, 123, 98, 111, 97, 114, 100, 44, 40, 36, 120, 44, 36, 121, 41, 125, 61, 61, 49, 49, 44, 49, 48, 44, 49, 49, 41, 125, 44, 36, 120, 44, 36, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 52, 125, 32, 45, 102, 91, 98, 111, 97, 114, 100, 93, 32, 49, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 98, 95, 109, 105, 110, 101, 115, 61, 61, 36, 110, 98, 95, 102, 108, 97, 103, 115, 92, 32, 38, 38, 92, 32, 64, 123, 98, 111, 97, 114, 100, 44, 77, 125, 33, 61, 49, 49, 125, 32, 115, 117, 99, 99, 101, 101, 100, 101, 100, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 77, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 67, 108, 105, 99, 107, 32, 111, 110, 32, 116, 119, 111, 32, 112, 111, 105, 110, 116, 115, 32, 116, 111, 32, 99, 111, 109, 112, 117, 116, 101, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 92, 110, 10, 45, 45, 45, 45, 32, 112, 97, 116, 104, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 111, 115, 101, 32, 112, 111, 105, 110, 116, 115, 46, 32, 84, 104, 101, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 105, 115, 32, 116, 104, 101, 110, 92, 110, 10, 45, 45, 45, 45, 32, 99, 104, 111, 115, 101, 110, 32, 97, 115, 32, 116, 104, 101, 32, 110, 101, 120, 116, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 102, 111, 114, 32, 97, 110, 111, 116, 104, 101, 114, 32, 112, 97, 116, 104, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 52, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 48, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 119, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 101, 108, 101, 99, 116, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 80, 48, 34, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 41, 125, 32, 45, 45, 108, 91, 48, 93, 32, 45, 114, 50, 100, 121, 32, 49, 50, 56, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 10, 45, 97, 108, 101, 114, 116, 32, 34, 91, 71, 39, 77, 73, 67, 32, 77, 105, 110, 105, 109, 97, 108, 32, 80, 97, 116, 104, 32, 68, 101, 109, 111, 93, 34, 44, 92, 10, 34, 84, 104, 101, 32, 71, 39, 77, 73, 67, 32, 77, 105, 110, 105, 109, 97, 108, 32, 80, 97, 116, 104, 32, 100, 101, 109, 111, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 101, 115, 32, 104, 111, 119, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 115, 92, 110, 34, 92, 10, 34, 99, 97, 110, 32, 98, 101, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 105, 110, 32, 105, 109, 97, 103, 101, 115, 32, 116, 111, 32, 100, 101, 116, 101, 99, 116, 32, 97, 110, 100, 32, 116, 114, 97, 99, 107, 32, 101, 100, 103, 101, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 34, 92, 10, 34, 85, 115, 101, 32, 121, 111, 117, 114, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 100, 101, 115, 105, 114, 101, 100, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 97, 110, 100, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 115, 44, 92, 110, 34, 92, 10, 34, 97, 110, 100, 32, 115, 101, 101, 32, 119, 104, 97, 116, 32, 105, 115, 32, 116, 104, 101, 32, 109, 105, 110, 105, 109, 97, 108, 32, 112, 97, 116, 104, 32, 99, 111, 109, 112, 117, 116, 101, 100, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 115, 101, 32, 112, 111, 105, 110, 116, 115, 46, 34, 44, 92, 10, 34, 83, 116, 97, 114, 116, 32, 100, 101, 109, 111, 34, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 102, 105, 114, 115, 116, 95, 116, 105, 109, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 101, 120, 112, 40, 45, 105, 47, 49, 48, 41, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 45, 115, 101, 108, 101, 99, 116, 91, 48, 93, 32, 48, 32, 80, 48, 61, 64, 45, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 109, 105, 110, 40, 36, 80, 48, 41, 62, 61, 48, 125, 10, 112, 61, 49, 10, 45, 100, 111, 10, 45, 119, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 101, 108, 101, 99, 116, 32, 101, 110, 100, 105, 110, 103, 32, 112, 111, 105, 110, 116, 32, 80, 34, 36, 112, 10, 45, 45, 115, 101, 108, 101, 99, 116, 91, 48, 93, 32, 48, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 83, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 83, 97, 118, 105, 110, 103, 32, 115, 110, 97, 112, 115, 104, 111, 116, 46, 46, 46, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 111, 91, 48, 93, 32, 103, 109, 105, 99, 95, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 46, 112, 110, 103, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 115, 101, 10, 80, 49, 61, 64, 45, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 64, 123, 45, 49, 44, 48, 44, 49, 125, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 109, 105, 110, 40, 36, 80, 49, 41, 62, 61, 48, 125, 10, 45, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 34, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 46, 46, 46, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 91, 49, 93, 32, 36, 80, 48, 44, 36, 80, 49, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 91, 48, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 32, 45, 111, 114, 91, 48, 44, 45, 49, 93, 10, 80, 48, 61, 36, 80, 49, 32, 112, 61, 123, 36, 112, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 112, 97, 99, 109, 97, 110, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 80, 97, 99, 109, 97, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 71, 39, 77, 73, 67, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 112, 97, 99, 109, 97, 110, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 118, 101, 32, 116, 104, 101, 32, 112, 97, 99, 109, 97, 110, 32, 116, 111, 32, 101, 97, 116, 32, 97, 108, 108, 32, 112, 97, 99, 100, 111, 116, 115, 32, 111, 110, 32, 116, 104, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 108, 101, 118, 101, 108, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 112, 97, 99, 103, 117, 109, 32, 109, 97, 107, 101, 115, 32, 112, 97, 99, 109, 97, 110, 32, 105, 110, 118, 105, 110, 99, 105, 98, 108, 101, 32, 102, 111, 114, 32, 49, 48, 32, 115, 101, 99, 111, 110, 100, 115, 44, 92, 110, 10, 45, 45, 45, 45, 32, 119, 104, 105, 99, 104, 32, 109, 101, 97, 110, 32, 112, 97, 99, 109, 97, 110, 32, 99, 97, 110, 32, 101, 97, 116, 32, 103, 104, 111, 115, 116, 115, 32, 100, 117, 114, 105, 110, 103, 32, 116, 104, 105, 115, 32, 116, 105, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 103, 104, 111, 115, 116, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 99, 104, 101, 114, 114, 121, 32, 101, 97, 114, 110, 115, 32, 49, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 110, 32, 111, 114, 97, 110, 103, 101, 32, 101, 97, 114, 110, 115, 32, 49, 48, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 69, 97, 116, 105, 110, 103, 32, 97, 32, 98, 97, 110, 97, 110, 97, 32, 101, 97, 114, 110, 115, 32, 53, 48, 48, 48, 32, 112, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 116, 111, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 97, 99, 109, 97, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 109, 32, 34, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 58, 32, 51, 49, 44, 49, 57, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 49, 53, 44, 49, 53, 44, 49, 53, 44, 49, 44, 49, 32, 51, 49, 44, 49, 50, 44, 49, 44, 49, 44, 39, 121, 60, 52, 43, 56, 42, 97, 98, 115, 40, 99, 111, 115, 40, 120, 42, 48, 46, 51, 43, 48, 46, 50, 53, 42, 112, 105, 42, 36, 34, 34, 49, 41, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 48, 44, 48, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 48, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 48, 44, 50, 53, 53, 44, 50, 50, 50, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 49, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 49, 56, 52, 44, 50, 50, 50, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 50, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 50, 53, 53, 44, 49, 56, 52, 44, 55, 49, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 51, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 97, 102, 114, 97, 105, 100, 95, 103, 102, 120, 32, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 97, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 62, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 109, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 48, 44, 48, 44, 48, 44, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 100, 95, 36, 62, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 36, 62, 32, 45, 110, 109, 91, 45, 50, 93, 32, 112, 97, 99, 109, 97, 110, 95, 36, 62, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 97, 99, 109, 97, 110, 109, 95, 36, 62, 10, 45, 100, 111, 110, 101, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 103, 104, 111, 115, 116, 100, 95, 48, 93, 32, 48, 32, 45, 33, 61, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 104, 111, 115, 116, 100, 109, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 99, 104, 101, 114, 114, 121, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 48, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 49, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 111, 114, 97, 110, 103, 101, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 50, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 98, 97, 110, 97, 110, 97, 95, 103, 102, 120, 32, 45, 110, 109, 91, 45, 49, 93, 32, 102, 114, 117, 105, 116, 51, 10, 50, 48, 44, 50, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 97, 116, 101, 10, 115, 99, 111, 114, 101, 48, 61, 34, 49, 48, 34, 32, 115, 99, 111, 114, 101, 49, 61, 34, 49, 48, 48, 34, 32, 115, 99, 111, 114, 101, 50, 61, 34, 49, 48, 48, 48, 34, 32, 115, 99, 111, 114, 101, 51, 61, 34, 53, 48, 48, 48, 34, 32, 115, 99, 111, 114, 101, 52, 61, 34, 65, 114, 103, 104, 33, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 53, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 123, 115, 99, 111, 114, 101, 36, 62, 125, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 109, 36, 62, 32, 45, 110, 109, 91, 45, 50, 93, 32, 115, 99, 111, 114, 101, 36, 62, 10, 45, 100, 111, 110, 101, 10, 116, 105, 109, 101, 52, 61, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 116, 105, 109, 101, 51, 61, 50, 53, 53, 44, 50, 53, 53, 44, 51, 50, 32, 116, 105, 109, 101, 50, 61, 50, 53, 53, 44, 49, 50, 56, 44, 51, 50, 32, 116, 105, 109, 101, 49, 61, 50, 53, 53, 44, 51, 50, 44, 51, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 49, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 60, 34, 32, 115, 34, 44, 48, 44, 48, 44, 50, 51, 44, 49, 44, 36, 123, 116, 105, 109, 101, 123, 109, 105, 110, 40, 52, 44, 114, 111, 117, 110, 100, 40, 40, 36, 60, 43, 49, 41, 47, 50, 41, 41, 125, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 116, 105, 109, 101, 36, 60, 32, 45, 100, 111, 110, 101, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 101, 116, 32, 82, 101, 97, 100, 121, 33, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 56, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 110, 109, 91, 45, 50, 93, 32, 103, 101, 116, 95, 114, 101, 97, 100, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 101, 116, 95, 114, 101, 97, 100, 121, 109, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 56, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 110, 109, 91, 45, 50, 93, 32, 103, 97, 109, 101, 95, 111, 118, 101, 114, 32, 45, 110, 109, 91, 45, 49, 93, 32, 103, 97, 109, 101, 95, 111, 118, 101, 114, 109, 10, 115, 99, 111, 114, 101, 61, 48, 32, 108, 101, 118, 101, 108, 61, 45, 49, 32, 108, 105, 118, 101, 115, 61, 51, 32, 105, 115, 95, 113, 117, 105, 116, 61, 48, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 36, 108, 101, 118, 101, 108, 60, 48, 125, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 123, 40, 40, 45, 36, 108, 101, 118, 101, 108, 45, 49, 41, 37, 54, 41, 43, 49, 125, 32, 109, 119, 61, 123, 119, 125, 32, 109, 104, 61, 123, 104, 125, 32, 109, 119, 50, 61, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 109, 104, 50, 61, 123, 105, 110, 116, 40, 104, 47, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 108, 101, 118, 101, 108, 60, 45, 54, 125, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 51, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 97, 112, 48, 32, 45, 105, 91, 109, 97, 112, 93, 32, 91, 45, 49, 93, 10, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 45, 49, 44, 48, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 48, 44, 45, 49, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 49, 44, 48, 32, 45, 45, 115, 104, 105, 102, 116, 91, 109, 97, 112, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 122, 32, 45, 33, 61, 91, 45, 49, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 97, 110, 95, 103, 111, 10, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 49, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 36, 109, 119, 50, 44, 36, 109, 104, 50, 44, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 50, 44, 48, 44, 105, 102, 40, 105, 61, 61, 52, 44, 49, 44, 105, 102, 40, 105, 61, 61, 49, 44, 50, 44, 105, 41, 41, 41, 39, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 97, 116, 104, 10, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 50, 32, 112, 97, 99, 100, 111, 116, 115, 61, 64, 123, 45, 49, 44, 43, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 108, 101, 118, 101, 108, 61, 123, 45, 36, 108, 101, 118, 101, 108, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 109, 97, 112, 93, 32, 39, 105, 102, 40, 105, 62, 61, 52, 44, 48, 44, 105, 41, 39, 32, 45, 45, 61, 61, 91, 109, 97, 112, 93, 32, 49, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 48, 48, 37, 44, 49, 54, 48, 48, 37, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 57, 32, 45, 98, 91, 45, 49, 93, 32, 50, 10, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 98, 115, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 56, 48, 37, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 91, 45, 49, 93, 32, 49, 54, 10, 45, 45, 42, 91, 45, 49, 93, 32, 36, 95, 103, 108, 101, 118, 101, 108, 32, 45, 45, 42, 91, 45, 50, 93, 32, 36, 95, 98, 108, 101, 118, 101, 108, 32, 45, 42, 91, 45, 51, 93, 32, 36, 95, 114, 108, 101, 118, 101, 108, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 45, 45, 91, 109, 97, 112, 93, 32, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 49, 54, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 48, 48, 37, 44, 49, 54, 48, 48, 37, 10, 49, 54, 44, 49, 54, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 114, 91, 45, 51, 44, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 100, 111, 116, 115, 95, 103, 102, 120, 32, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 103, 117, 109, 95, 103, 102, 120, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 123, 104, 43, 50, 52, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 10, 45, 116, 91, 45, 49, 93, 32, 34, 76, 105, 118, 101, 115, 32, 58, 34, 44, 49, 48, 44, 48, 44, 50, 51, 44, 49, 44, 50, 53, 53, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 34, 44, 123, 119, 45, 49, 52, 48, 125, 44, 48, 44, 50, 51, 44, 49, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 108, 105, 118, 101, 115, 32, 45, 45, 114, 91, 112, 97, 99, 109, 97, 110, 95, 50, 93, 32, 49, 50, 44, 49, 50, 44, 49, 44, 52, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 108, 105, 118, 101, 115, 125, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 44, 48, 44, 50, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 57, 48, 44, 55, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 10, 45, 119, 91, 118, 105, 115, 117, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 80, 97, 99, 109, 97, 110, 34, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 76, 101, 118, 101, 108, 32, 34, 36, 108, 101, 118, 101, 108, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 52, 44, 48, 32, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 48, 41, 32, 45, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 56, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 95, 78, 32, 45, 110, 109, 91, 45, 50, 93, 32, 108, 101, 118, 101, 108, 109, 95, 78, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 120, 103, 36, 62, 61, 123, 49, 54, 42, 36, 109, 119, 50, 125, 32, 121, 103, 36, 62, 61, 123, 49, 54, 42, 36, 109, 104, 50, 43, 52, 42, 36, 62, 125, 32, 100, 103, 36, 62, 61, 51, 32, 109, 103, 36, 62, 61, 48, 32, 45, 100, 111, 110, 101, 10, 120, 112, 61, 123, 49, 54, 42, 49, 48, 125, 32, 121, 112, 61, 123, 49, 54, 42, 50, 49, 125, 32, 100, 112, 61, 45, 49, 32, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 45, 49, 32, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 61, 64, 124, 32, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 48, 32, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 61, 49, 10, 120, 115, 99, 111, 114, 101, 61, 48, 32, 121, 115, 99, 111, 114, 101, 61, 48, 32, 110, 115, 99, 111, 114, 101, 61, 48, 32, 111, 115, 99, 111, 114, 101, 61, 48, 10, 45, 100, 111, 10, 116, 61, 123, 105, 110, 116, 40, 54, 42, 64, 124, 41, 37, 52, 125, 32, 108, 101, 102, 116, 61, 123, 105, 102, 40, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 62, 61, 48, 44, 49, 48, 45, 64, 124, 43, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 44, 45, 49, 41, 125, 10, 91, 118, 105, 115, 117, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 109, 103, 61, 36, 123, 109, 103, 36, 62, 125, 32, 120, 103, 61, 36, 123, 120, 103, 36, 62, 125, 32, 121, 103, 61, 123, 36, 123, 121, 103, 36, 62, 125, 43, 50, 52, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 61, 61, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 36, 62, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 49, 125, 32, 116, 50, 61, 123, 105, 102, 40, 36, 108, 101, 102, 116, 62, 55, 44, 36, 116, 44, 105, 102, 40, 36, 108, 101, 102, 116, 62, 51, 44, 105, 110, 116, 40, 49, 50, 42, 64, 124, 41, 37, 52, 44, 105, 110, 116, 40, 50, 52, 42, 64, 124, 41, 37, 52, 41, 41, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 97, 95, 36, 116, 50, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 100, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 103, 104, 111, 115, 116, 100, 109, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 36, 62, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 123, 36, 109, 103, 45, 50, 125, 44, 91, 103, 104, 111, 115, 116, 109, 95, 36, 116, 93, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 104, 111, 115, 116, 100, 95, 36, 116, 93, 44, 36, 120, 103, 44, 36, 121, 103, 44, 48, 44, 48, 44, 49, 44, 91, 103, 104, 111, 115, 116, 100, 109, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 47, 50, 125, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 57, 48, 42, 40, 97, 98, 115, 40, 36, 100, 112, 41, 45, 49, 41, 125, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 43, 49, 125, 10, 45, 105, 102, 32, 123, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 62, 54, 52, 125, 10, 45, 105, 102, 32, 123, 36, 108, 105, 118, 101, 115, 33, 61, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 103, 97, 109, 101, 95, 111, 118, 101, 114, 93, 44, 123, 40, 119, 45, 64, 123, 103, 97, 109, 101, 95, 111, 118, 101, 114, 44, 119, 125, 41, 47, 50, 125, 44, 123, 49, 50, 43, 40, 104, 45, 64, 123, 103, 97, 109, 101, 95, 111, 118, 101, 114, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 123, 109, 105, 110, 40, 49, 44, 40, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 45, 54, 52, 41, 47, 53, 48, 41, 125, 44, 91, 103, 97, 109, 101, 95, 111, 118, 101, 114, 109, 93, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 57, 48, 44, 55, 44, 49, 48, 49, 44, 49, 56, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 112, 97, 99, 109, 97, 110, 95, 36, 116, 44, 112, 97, 99, 109, 97, 110, 109, 95, 36, 116, 93, 32, 123, 57, 48, 42, 40, 97, 98, 115, 40, 36, 100, 112, 41, 45, 49, 41, 125, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 108, 101, 102, 116, 62, 61, 48, 34, 32, 38, 38, 32, 34, 40, 36, 108, 101, 102, 116, 62, 61, 53, 34, 32, 124, 124, 32, 34, 36, 116, 60, 61, 50, 41, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 116, 105, 109, 101, 123, 114, 111, 117, 110, 100, 40, 36, 108, 101, 102, 116, 41, 125, 93, 44, 123, 40, 119, 45, 64, 123, 116, 105, 109, 101, 48, 44, 119, 125, 41, 47, 50, 125, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 91, 45, 49, 93, 32, 36, 115, 99, 111, 114, 101, 44, 123, 119, 45, 54, 53, 125, 44, 49, 44, 50, 50, 44, 49, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 125, 10, 45, 106, 91, 45, 49, 93, 32, 91, 108, 101, 118, 101, 108, 95, 78, 93, 44, 123, 40, 119, 45, 64, 123, 108, 101, 118, 101, 108, 95, 78, 44, 119, 125, 41, 47, 50, 125, 44, 123, 49, 50, 43, 40, 104, 45, 49, 46, 53, 42, 64, 123, 108, 101, 118, 101, 108, 95, 78, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 108, 101, 118, 101, 108, 109, 95, 78, 93, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 64, 124, 42, 52, 41, 37, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 103, 101, 116, 95, 114, 101, 97, 100, 121, 93, 44, 123, 40, 119, 45, 64, 123, 103, 101, 116, 95, 114, 101, 97, 100, 121, 44, 119, 125, 41, 47, 50, 125, 44, 123, 50, 52, 43, 40, 104, 43, 64, 123, 103, 101, 116, 95, 114, 101, 97, 100, 121, 44, 104, 125, 41, 47, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 103, 101, 116, 95, 114, 101, 97, 100, 121, 109, 93, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 111, 115, 99, 111, 114, 101, 62, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 115, 99, 111, 114, 101, 36, 110, 115, 99, 111, 114, 101, 93, 44, 36, 120, 115, 99, 111, 114, 101, 44, 36, 121, 115, 99, 111, 114, 101, 44, 48, 44, 48, 44, 36, 111, 115, 99, 111, 114, 101, 44, 91, 115, 99, 111, 114, 101, 109, 36, 110, 115, 99, 111, 114, 101, 93, 44, 50, 53, 53, 32, 111, 115, 99, 111, 114, 101, 61, 123, 36, 111, 115, 99, 111, 114, 101, 45, 48, 46, 48, 52, 125, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 115, 99, 111, 114, 101, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 103, 97, 116, 101, 93, 44, 49, 53, 56, 44, 50, 50, 51, 44, 48, 44, 48, 44, 48, 46, 54, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 120, 103, 61, 36, 123, 120, 103, 36, 62, 125, 32, 121, 103, 61, 36, 123, 121, 103, 36, 62, 125, 32, 100, 103, 61, 36, 123, 100, 103, 36, 62, 125, 32, 109, 103, 61, 36, 123, 109, 103, 36, 62, 125, 10, 45, 105, 102, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 120, 103, 45, 36, 120, 112, 41, 44, 97, 98, 115, 40, 36, 121, 103, 45, 36, 121, 112, 41, 41, 60, 61, 56, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 61, 61, 48, 34, 32, 38, 38, 32, 34, 33, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 125, 32, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 61, 49, 10, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 103, 61, 61, 49, 125, 32, 109, 103, 61, 50, 32, 109, 103, 36, 62, 61, 36, 109, 103, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 49, 48, 48, 125, 10, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 109, 103, 62, 61, 50, 34, 32, 38, 38, 32, 34, 40, 36, 120, 103, 62, 62, 52, 41, 61, 61, 36, 109, 119, 50, 34, 32, 38, 38, 32, 34, 40, 36, 121, 103, 62, 62, 52, 41, 61, 61, 36, 109, 104, 50, 125, 10, 109, 103, 61, 123, 36, 109, 103, 43, 48, 46, 48, 49, 125, 10, 45, 105, 102, 32, 123, 36, 109, 103, 62, 61, 51, 125, 32, 109, 103, 61, 48, 32, 120, 103, 61, 123, 36, 120, 103, 38, 45, 50, 125, 32, 121, 103, 61, 123, 36, 121, 103, 38, 45, 50, 125, 32, 45, 101, 110, 100, 105, 102, 10, 109, 103, 36, 62, 61, 36, 109, 103, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 40, 36, 120, 103, 38, 49, 53, 41, 34, 32, 38, 38, 32, 34, 33, 40, 36, 121, 103, 38, 49, 53, 41, 125, 10, 40, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 44, 123, 63, 125, 59, 48, 44, 49, 44, 50, 44, 51, 41, 10, 45, 105, 102, 32, 123, 36, 109, 103, 60, 50, 125, 10, 45, 61, 91, 45, 49, 93, 32, 123, 63, 40, 48, 46, 54, 44, 49, 41, 125, 44, 123, 105, 102, 40, 36, 109, 103, 61, 61, 48, 44, 100, 88, 48, 61, 36, 120, 112, 45, 36, 120, 103, 59, 100, 89, 48, 61, 36, 121, 112, 45, 36, 121, 103, 59, 105, 102, 40, 97, 98, 115, 40, 100, 88, 48, 41, 62, 97, 98, 115, 40, 100, 89, 48, 41, 44, 105, 102, 40, 100, 88, 48, 62, 48, 44, 48, 44, 50, 41, 44, 105, 102, 40, 100, 89, 48, 62, 48, 44, 49, 44, 51, 41, 41, 44, 92, 10, 100, 88, 49, 61, 36, 120, 112, 45, 36, 120, 103, 59, 100, 89, 49, 61, 36, 121, 112, 45, 36, 121, 103, 59, 105, 102, 40, 97, 98, 115, 40, 100, 88, 49, 41, 60, 97, 98, 115, 40, 100, 89, 49, 41, 44, 105, 102, 40, 100, 88, 49, 62, 48, 44, 50, 44, 48, 41, 44, 105, 102, 40, 100, 89, 49, 62, 48, 44, 51, 44, 49, 41, 41, 41, 125, 10, 45, 61, 91, 45, 49, 93, 32, 48, 44, 123, 40, 36, 100, 103, 43, 50, 41, 37, 52, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 32, 45, 61, 91, 45, 49, 93, 32, 48, 46, 56, 44, 64, 123, 112, 97, 116, 104, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 64, 123, 112, 97, 116, 104, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 120, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 100, 61, 123, 105, 40, 36, 62, 44, 49, 41, 125, 32, 45, 105, 102, 32, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 103, 62, 62, 52, 125, 44, 123, 36, 121, 103, 62, 62, 52, 125, 44, 36, 100, 41, 125, 32, 100, 103, 61, 36, 100, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 103, 36, 62, 61, 36, 100, 10, 45, 101, 110, 100, 105, 102, 10, 117, 61, 123, 68, 61, 36, 123, 100, 103, 36, 62, 125, 59, 40, 68, 61, 61, 48, 41, 45, 40, 68, 61, 61, 50, 41, 125, 10, 118, 61, 123, 68, 61, 36, 123, 100, 103, 36, 62, 125, 59, 40, 68, 61, 61, 49, 41, 45, 40, 68, 61, 61, 51, 41, 125, 10, 120, 103, 36, 62, 61, 123, 40, 36, 120, 103, 43, 36, 117, 42, 40, 49, 43, 40, 36, 109, 103, 61, 61, 48, 41, 41, 41, 37, 40, 49, 54, 42, 36, 109, 119, 41, 125, 10, 121, 103, 36, 62, 61, 123, 40, 36, 121, 103, 43, 36, 118, 42, 40, 49, 43, 40, 36, 109, 103, 61, 61, 48, 41, 41, 41, 37, 40, 49, 54, 42, 36, 109, 104, 41, 125, 10, 45, 100, 111, 110, 101, 10, 45, 119, 97, 105, 116, 32, 50, 50, 10, 45, 105, 102, 32, 123, 33, 36, 100, 121, 105, 110, 103, 95, 112, 97, 99, 109, 97, 110, 125, 10, 100, 61, 123, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 44, 49, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 44, 50, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 44, 51, 44, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 44, 52, 44, 36, 100, 112, 41, 41, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 40, 36, 120, 112, 38, 49, 53, 41, 34, 32, 38, 38, 32, 34, 33, 40, 36, 121, 112, 38, 49, 53, 41, 125, 10, 105, 61, 64, 123, 109, 97, 112, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 105, 61, 61, 50, 125, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 49, 48, 125, 32, 112, 97, 99, 100, 111, 116, 115, 61, 123, 36, 112, 97, 99, 100, 111, 116, 115, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 105, 61, 61, 51, 125, 32, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 64, 124, 32, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 105, 102, 32, 123, 33, 36, 123, 109, 103, 36, 62, 125, 125, 32, 109, 103, 36, 62, 61, 49, 32, 100, 103, 36, 62, 61, 123, 40, 36, 123, 100, 103, 36, 62, 125, 43, 50, 41, 37, 52, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 105, 62, 61, 52, 125, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 36, 123, 115, 99, 111, 114, 101, 123, 36, 105, 45, 52, 125, 125, 125, 32, 120, 115, 99, 111, 114, 101, 61, 36, 120, 112, 32, 121, 115, 99, 111, 114, 101, 61, 123, 36, 121, 112, 43, 49, 50, 125, 32, 111, 115, 99, 111, 114, 101, 61, 49, 32, 110, 115, 99, 111, 114, 101, 61, 123, 36, 105, 45, 52, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 61, 91, 109, 97, 112, 93, 32, 48, 44, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 45, 49, 93, 44, 36, 120, 112, 44, 123, 50, 52, 43, 36, 121, 112, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 61, 123, 105, 102, 40, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 44, 123, 97, 98, 115, 40, 36, 100, 41, 45, 49, 125, 41, 125, 44, 36, 100, 44, 36, 100, 112, 41, 125, 10, 100, 61, 123, 105, 102, 40, 64, 123, 99, 97, 110, 95, 103, 111, 44, 40, 123, 36, 120, 112, 62, 62, 52, 125, 44, 123, 36, 121, 112, 62, 62, 52, 125, 44, 123, 97, 98, 115, 40, 36, 100, 41, 45, 49, 125, 41, 125, 44, 36, 100, 44, 45, 97, 98, 115, 40, 36, 100, 112, 41, 41, 125, 10, 100, 112, 61, 36, 100, 10, 45, 101, 108, 115, 101, 32, 100, 112, 61, 123, 105, 102, 40, 97, 98, 115, 40, 36, 100, 45, 36, 100, 112, 41, 61, 61, 50, 44, 36, 100, 44, 36, 100, 112, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 61, 123, 105, 102, 40, 36, 100, 112, 62, 48, 44, 48, 44, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 41, 125, 10, 117, 61, 123, 40, 36, 100, 112, 61, 61, 49, 41, 45, 40, 36, 100, 112, 61, 61, 51, 41, 125, 10, 118, 61, 123, 40, 36, 100, 112, 61, 61, 50, 41, 45, 40, 36, 100, 112, 61, 61, 52, 41, 125, 10, 120, 112, 61, 123, 40, 36, 120, 112, 43, 50, 42, 36, 117, 41, 37, 40, 49, 54, 42, 36, 109, 119, 41, 125, 10, 121, 112, 61, 123, 40, 36, 121, 112, 43, 50, 42, 36, 118, 41, 37, 40, 49, 54, 42, 36, 109, 104, 41, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 124, 62, 36, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 43, 49, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 120, 103, 36, 62, 61, 123, 36, 123, 120, 103, 36, 62, 125, 38, 45, 50, 125, 32, 121, 103, 36, 62, 61, 123, 36, 123, 121, 103, 36, 62, 125, 38, 45, 50, 125, 32, 109, 103, 36, 62, 61, 123, 105, 102, 40, 36, 123, 109, 103, 36, 62, 125, 61, 61, 49, 44, 48, 44, 36, 123, 109, 103, 36, 62, 125, 41, 125, 32, 45, 100, 111, 110, 101, 10, 112, 97, 99, 103, 117, 109, 95, 116, 105, 109, 101, 114, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 105, 115, 95, 103, 101, 116, 95, 114, 101, 97, 100, 121, 34, 32, 38, 38, 32, 34, 40, 64, 124, 45, 36, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 41, 62, 61, 49, 48, 125, 10, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 64, 123, 109, 97, 112, 48, 44, 119, 125, 41, 41, 125, 10, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 64, 123, 109, 97, 112, 48, 44, 104, 125, 41, 41, 125, 10, 45, 105, 102, 32, 123, 33, 64, 123, 109, 97, 112, 44, 40, 36, 120, 44, 36, 121, 41, 125, 34, 32, 38, 38, 32, 34, 64, 123, 109, 97, 112, 48, 44, 40, 36, 120, 44, 36, 121, 41, 125, 61, 61, 50, 125, 10, 110, 61, 123, 109, 105, 110, 40, 51, 44, 105, 110, 116, 40, 97, 98, 115, 40, 103, 42, 49, 46, 55, 41, 41, 41, 125, 32, 45, 61, 91, 109, 97, 112, 93, 32, 123, 52, 43, 36, 110, 125, 44, 36, 120, 44, 36, 121, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 102, 114, 117, 105, 116, 36, 110, 93, 44, 123, 49, 54, 42, 36, 120, 125, 44, 123, 49, 54, 42, 36, 121, 43, 50, 52, 125, 32, 102, 114, 117, 105, 116, 95, 116, 105, 109, 101, 114, 61, 64, 124, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 105, 115, 95, 113, 117, 105, 116, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 33, 36, 105, 115, 95, 113, 117, 105, 116, 34, 32, 38, 38, 32, 34, 36, 112, 97, 99, 100, 111, 116, 115, 125, 10, 45, 105, 102, 32, 36, 105, 115, 95, 113, 117, 105, 116, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 108, 105, 102, 32, 36, 112, 97, 99, 100, 111, 116, 115, 10, 108, 105, 118, 101, 115, 61, 123, 36, 108, 105, 118, 101, 115, 45, 49, 125, 10, 45, 101, 108, 115, 101, 10, 108, 101, 118, 101, 108, 61, 123, 45, 36, 108, 101, 118, 101, 108, 45, 49, 125, 32, 45, 119, 97, 105, 116, 91, 48, 93, 32, 45, 49, 10, 45, 114, 109, 91, 109, 97, 112, 48, 44, 109, 97, 112, 44, 99, 97, 110, 95, 103, 111, 44, 112, 97, 116, 104, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 118, 105, 115, 117, 44, 108, 101, 118, 101, 108, 95, 78, 44, 108, 101, 118, 101, 108, 109, 95, 78, 93, 10, 45, 119, 104, 105, 108, 101, 32, 36, 108, 105, 118, 101, 115, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 115, 116, 97, 110, 100, 97, 114, 100, 95, 103, 102, 120, 32, 58, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 52, 32, 40, 48, 44, 36, 49, 94, 48, 44, 36, 50, 94, 48, 44, 36, 51, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 49, 44, 51, 44, 52, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 48, 44, 49, 49, 44, 51, 44, 52, 44, 48, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 50, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 53, 44, 123, 55, 45, 40, 36, 52, 62, 61, 50, 41, 125, 44, 48, 44, 49, 44, 49, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 49, 48, 44, 123, 55, 45, 40, 36, 52, 62, 61, 50, 41, 125, 44, 48, 44, 49, 44, 49, 10, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 97, 102, 114, 97, 105, 100, 95, 103, 102, 120, 32, 58, 10, 45, 95, 112, 97, 99, 109, 97, 110, 95, 103, 104, 111, 115, 116, 95, 98, 97, 115, 101, 95, 103, 102, 120, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 99, 111, 108, 61, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 40, 48, 44, 48, 94, 48, 44, 48, 94, 48, 44, 50, 48, 56, 41, 32, 45, 101, 108, 115, 101, 32, 99, 111, 108, 61, 50, 53, 53, 44, 48, 44, 48, 32, 40, 48, 44, 50, 52, 56, 94, 48, 44, 50, 52, 56, 94, 48, 44, 50, 52, 56, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 50, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 54, 44, 54, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 52, 44, 54, 44, 54, 44, 52, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 57, 44, 52, 44, 49, 49, 44, 54, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 57, 44, 54, 44, 49, 49, 44, 52, 44, 49, 44, 36, 99, 111, 108, 44, 50, 53, 53, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 121, 62, 61, 57, 38, 38, 121, 60, 61, 49, 48, 38, 38, 120, 62, 61, 50, 38, 38, 120, 60, 61, 49, 51, 38, 38, 40, 40, 105, 110, 116, 40, 40, 120, 43, 49, 41, 47, 50, 41, 43, 121, 41, 37, 50, 41, 44, 97, 114, 103, 40, 99, 43, 49, 44, 36, 99, 111, 108, 41, 44, 105, 41, 39, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 109, 97, 110, 95, 103, 102, 120, 32, 58, 10, 51, 50, 44, 51, 50, 44, 49, 44, 49, 44, 39, 88, 61, 120, 45, 49, 53, 59, 89, 61, 121, 45, 49, 53, 59, 65, 61, 97, 116, 97, 110, 50, 40, 89, 44, 88, 41, 59, 82, 61, 115, 113, 114, 116, 40, 88, 94, 50, 43, 89, 94, 50, 41, 59, 82, 60, 49, 53, 46, 53, 38, 38, 97, 98, 115, 40, 65, 41, 62, 48, 46, 56, 42, 48, 46, 51, 51, 42, 36, 49, 39, 10, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 48, 94, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 52, 44, 50, 32, 45, 115, 91, 45, 49, 93, 32, 99, 44, 45, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 100, 111, 116, 115, 95, 103, 102, 120, 32, 58, 10, 40, 50, 53, 53, 94, 49, 56, 52, 94, 49, 53, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 52, 44, 49, 44, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 112, 97, 99, 103, 117, 109, 95, 103, 102, 120, 32, 58, 10, 49, 54, 44, 49, 54, 44, 49, 44, 51, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 55, 44, 55, 44, 55, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 10, 95, 112, 97, 99, 109, 97, 110, 95, 99, 104, 101, 114, 114, 121, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 59, 50, 44, 51, 44, 50, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 50, 44, 50, 44, 51, 44, 50, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 50, 44, 50, 44, 50, 44, 48, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 48, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 115, 116, 114, 97, 119, 98, 101, 114, 114, 121, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 51, 44, 50, 59, 92, 10, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 59, 48, 44, 50, 44, 51, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 48, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 51, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 48, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 111, 114, 97, 110, 103, 101, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 59, 92, 10, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 49, 55, 51, 44, 50, 53, 53, 94, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 98, 97, 110, 97, 110, 97, 95, 103, 102, 120, 32, 58, 10, 40, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 59, 48, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 48, 59, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 94, 48, 44, 49, 55, 51, 44, 50, 53, 53, 94, 48, 44, 48, 44, 50, 53, 53, 41, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 49, 52, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 49, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 50, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 49, 44, 51, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 51, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 51, 51, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 53, 53, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 52, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 50, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 59, 92, 10, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 48, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 48, 44, 48, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 53, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 59, 49, 44, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 48, 48, 32, 95, 103, 108, 101, 118, 101, 108, 61, 50, 53, 53, 32, 95, 98, 108, 101, 118, 101, 108, 61, 51, 51, 10, 95, 112, 97, 99, 109, 97, 110, 95, 109, 97, 112, 95, 108, 101, 118, 101, 108, 54, 32, 58, 10, 40, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 92, 10, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 48, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 48, 44, 48, 44, 49, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 59, 48, 44, 50, 44, 49, 44, 48, 44, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 50, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 92, 10, 49, 44, 51, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 59, 49, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 44, 50, 59, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 41, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 95, 114, 108, 101, 118, 101, 108, 61, 50, 53, 53, 32, 95, 103, 108, 101, 118, 101, 108, 61, 49, 51, 48, 32, 95, 98, 108, 101, 118, 101, 108, 61, 50, 51, 51, 10, 120, 95, 112, 97, 105, 110, 116, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 73, 110, 116, 101, 114, 97, 99, 116, 105, 118, 101, 32, 112, 97, 105, 110, 116, 101, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 85, 115, 101, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 98, 114, 117, 115, 104, 46, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 98, 117, 116, 116, 111, 110, 32, 100, 114, 97, 119, 115, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 115, 116, 114, 111, 107, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 98, 117, 116, 116, 111, 110, 32, 102, 105, 108, 108, 115, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 114, 101, 103, 105, 111, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 111, 114, 32, 83, 80, 65, 67, 69, 32, 97, 110, 100, 32, 66, 65, 67, 75, 83, 80, 65, 67, 69, 32, 116, 111, 32, 115, 119, 97, 112, 92, 110, 10, 45, 45, 45, 45, 32, 98, 101, 116, 119, 101, 101, 110, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 109, 97, 103, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 39, 32, 116, 111, 32, 115, 97, 118, 101, 32, 115, 110, 97, 112, 115, 104, 111, 116, 32, 111, 102, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 118, 105, 101, 119, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 105, 91, 48, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 110, 109, 91, 48, 93, 32, 34, 91, 78, 101, 119, 32, 105, 109, 97, 103, 101, 93, 34, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 108, 111, 114, 61, 48, 44, 48, 44, 48, 10, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 49, 10, 98, 114, 117, 115, 104, 115, 105, 122, 101, 61, 51, 10, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 61, 48, 10, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 61, 57, 48, 10, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 49, 10, 105, 109, 97, 103, 101, 61, 48, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 49, 10, 111, 120, 49, 61, 45, 49, 10, 111, 121, 49, 61, 45, 49, 10, 49, 32, 49, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 10, 45, 114, 109, 91, 45, 50, 93, 32, 40, 48, 44, 51, 53, 57, 59, 48, 44, 51, 53, 57, 94, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 59, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 94, 49, 44, 49, 59, 48, 44, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 54, 52, 44, 49, 44, 51, 44, 51, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 40, 50, 53, 53, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 64, 123, 45, 50, 44, 104, 125, 44, 49, 44, 51, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 44, 48, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 123, 119, 125, 44, 49, 54, 44, 49, 44, 51, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 34, 44, 52, 44, 50, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 56, 48, 44, 51, 44, 49, 48, 48, 44, 49, 51, 44, 49, 44, 36, 99, 111, 108, 111, 114, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 56, 48, 44, 51, 44, 49, 48, 48, 44, 49, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 119, 50, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 80, 97, 108, 101, 116, 116, 101, 34, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 10, 45, 114, 109, 91, 45, 49, 93, 32, 40, 51, 50, 44, 54, 52, 59, 54, 52, 44, 51, 50, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 54, 44, 49, 54, 44, 49, 44, 51, 44, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 56, 42, 52, 56, 125, 44, 123, 52, 42, 52, 56, 125, 44, 49, 44, 51, 44, 48, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 56, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 52, 56, 42, 36, 62, 43, 50, 52, 125, 44, 123, 52, 56, 42, 64, 123, 62, 44, 45, 50, 125, 43, 50, 52, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 44, 123, 40, 50, 42, 36, 62, 43, 49, 41, 42, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 125, 44, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 44, 123, 49, 45, 64, 123, 62, 44, 45, 50, 125, 47, 52, 125, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 42, 52, 56, 125, 44, 123, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 42, 52, 56, 125, 44, 92, 10, 123, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 42, 52, 56, 43, 52, 55, 125, 44, 123, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 42, 52, 56, 43, 52, 55, 125, 44, 92, 10, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 10, 123, 119, 125, 44, 49, 54, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 10, 98, 120, 61, 123, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 42, 119, 47, 49, 56, 48, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 49, 50, 56, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 50, 48, 37, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 43, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 120, 43, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 54, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 98, 120, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 120, 45, 49, 54, 125, 44, 56, 48, 37, 44, 49, 44, 54, 52, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 54, 44, 123, 104, 45, 49, 54, 125, 44, 49, 44, 51, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 10, 98, 121, 61, 123, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 42, 40, 104, 45, 49, 54, 41, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 49, 50, 56, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 56, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 45, 49, 54, 125, 44, 50, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 54, 52, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 56, 48, 37, 44, 123, 36, 98, 121, 43, 49, 54, 125, 44, 49, 44, 54, 52, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 119, 51, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 66, 114, 117, 115, 104, 34, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 10, 45, 119, 49, 91, 36, 105, 109, 97, 103, 101, 93, 32, 64, 123, 36, 105, 109, 97, 103, 101, 44, 119, 125, 44, 64, 123, 36, 105, 109, 97, 103, 101, 44, 104, 125, 44, 48, 44, 48, 44, 34, 73, 109, 97, 103, 101, 32, 34, 35, 36, 105, 109, 97, 103, 101, 34, 32, 58, 32, 34, 64, 123, 36, 105, 109, 97, 103, 101, 44, 98, 125, 46, 64, 123, 36, 105, 109, 97, 103, 101, 44, 120, 125, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 120, 49, 61, 64, 123, 33, 49, 44, 120, 125, 32, 121, 49, 61, 64, 123, 33, 49, 44, 121, 125, 10, 120, 50, 61, 64, 123, 33, 50, 44, 120, 125, 32, 121, 50, 61, 64, 123, 33, 50, 44, 121, 125, 10, 120, 51, 61, 64, 123, 33, 51, 44, 120, 125, 32, 121, 51, 61, 64, 123, 33, 51, 44, 121, 125, 10, 45, 105, 102, 32, 123, 36, 120, 49, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 98, 125, 38, 49, 125, 10, 111, 120, 49, 61, 123, 105, 102, 40, 36, 111, 120, 49, 60, 48, 44, 36, 120, 49, 44, 36, 111, 120, 49, 41, 125, 10, 111, 121, 49, 61, 123, 105, 102, 40, 36, 111, 121, 49, 60, 48, 44, 36, 121, 49, 44, 36, 111, 121, 49, 41, 125, 10, 100, 101, 108, 116, 97, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 120, 49, 45, 36, 111, 120, 49, 41, 44, 97, 98, 115, 40, 36, 121, 49, 45, 36, 111, 121, 49, 41, 41, 125, 10, 114, 49, 61, 123, 50, 42, 36, 98, 114, 117, 115, 104, 115, 105, 122, 101, 43, 49, 125, 10, 114, 50, 61, 123, 36, 114, 49, 42, 36, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 125, 10, 100, 120, 61, 123, 50, 42, 40, 36, 120, 49, 45, 36, 111, 120, 49, 41, 47, 109, 97, 120, 40, 49, 44, 36, 100, 101, 108, 116, 97, 41, 125, 10, 100, 121, 61, 123, 50, 42, 40, 36, 121, 49, 45, 36, 111, 121, 49, 41, 47, 109, 97, 120, 40, 49, 44, 36, 100, 101, 108, 116, 97, 41, 125, 10, 111, 61, 123, 49, 45, 40, 36, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 47, 52, 41, 94, 48, 46, 48, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 109, 97, 120, 40, 49, 44, 40, 36, 100, 101, 108, 116, 97, 43, 49, 41, 47, 50, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 36, 105, 109, 97, 103, 101, 93, 32, 123, 36, 111, 120, 49, 43, 36, 62, 42, 36, 100, 120, 125, 44, 123, 36, 111, 121, 49, 43, 36, 62, 42, 36, 100, 121, 125, 44, 36, 114, 49, 44, 36, 114, 50, 44, 36, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 44, 36, 111, 44, 36, 99, 111, 108, 111, 114, 10, 45, 100, 111, 110, 101, 10, 111, 120, 49, 61, 36, 120, 49, 32, 111, 121, 49, 61, 36, 121, 49, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 108, 115, 101, 10, 111, 120, 49, 61, 45, 49, 32, 111, 121, 49, 61, 45, 49, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 98, 125, 38, 50, 125, 10, 45, 102, 108, 111, 111, 100, 91, 36, 105, 109, 97, 103, 101, 93, 32, 36, 120, 49, 44, 36, 121, 49, 44, 48, 44, 49, 48, 44, 48, 44, 49, 44, 36, 99, 111, 108, 111, 114, 10, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 83, 80, 65, 67, 69, 125, 125, 10, 105, 109, 97, 103, 101, 61, 123, 40, 36, 105, 109, 97, 103, 101, 43, 49, 41, 37, 40, 64, 35, 45, 50, 41, 125, 32, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 92, 10, 64, 123, 33, 49, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 50, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 51, 44, 66, 65, 67, 75, 83, 80, 65, 67, 69, 125, 125, 10, 105, 109, 97, 103, 101, 61, 123, 40, 36, 105, 109, 97, 103, 101, 45, 49, 41, 37, 40, 64, 35, 45, 50, 41, 125, 32, 114, 101, 102, 114, 101, 115, 104, 95, 105, 109, 97, 103, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 49, 44, 83, 125, 32, 45, 111, 91, 36, 105, 109, 97, 103, 101, 93, 32, 103, 109, 105, 99, 95, 112, 97, 105, 110, 116, 46, 112, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 50, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 120, 50, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 121, 50, 60, 54, 52, 125, 10, 45, 105, 102, 32, 123, 36, 120, 50, 62, 61, 50, 53, 54, 125, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 123, 49, 45, 36, 121, 50, 47, 54, 51, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 50, 62, 61, 48, 125, 32, 99, 111, 108, 111, 114, 61, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 48, 41, 125, 44, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 49, 41, 125, 44, 64, 123, 45, 50, 44, 40, 36, 120, 50, 44, 36, 121, 50, 44, 48, 44, 50, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 102, 114, 101, 115, 104, 95, 112, 97, 108, 101, 116, 116, 101, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 51, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 120, 51, 62, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 120, 51, 60, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 62, 61, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 97, 110, 103, 108, 101, 61, 123, 36, 120, 51, 42, 49, 56, 48, 47, 40, 119, 45, 49, 54, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 51, 62, 61, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 60, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 116, 104, 105, 99, 107, 110, 101, 115, 115, 61, 123, 36, 121, 51, 47, 40, 104, 45, 49, 54, 41, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 120, 51, 60, 51, 56, 52, 34, 32, 38, 38, 32, 34, 36, 121, 51, 60, 49, 57, 50, 125, 32, 98, 114, 117, 115, 104, 115, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 120, 51, 42, 56, 47, 40, 119, 45, 49, 54, 41, 41, 125, 32, 98, 114, 117, 115, 104, 111, 112, 97, 99, 105, 116, 121, 61, 123, 105, 110, 116, 40, 36, 121, 51, 42, 52, 47, 40, 104, 45, 49, 54, 41, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 102, 114, 101, 115, 104, 95, 98, 114, 117, 115, 104, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 123, 33, 49, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 81, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 49, 44, 69, 83, 67, 125, 125, 10, 45, 119, 49, 91, 93, 32, 48, 32, 45, 119, 50, 91, 93, 32, 48, 32, 45, 119, 51, 91, 93, 32, 48, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 118, 32, 43, 10, 120, 95, 112, 108, 97, 115, 109, 97, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 80, 108, 97, 115, 109, 97, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 108, 91, 93, 10, 78, 61, 56, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 50, 53, 54, 44, 49, 53, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 48, 44, 55, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 97, 109, 112, 61, 123, 63, 40, 45, 52, 48, 44, 52, 48, 41, 125, 32, 102, 114, 101, 113, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 44, 54, 41, 41, 125, 32, 100, 105, 114, 36, 62, 61, 123, 105, 102, 40, 63, 60, 48, 46, 53, 44, 45, 49, 44, 49, 41, 42, 114, 111, 117, 110, 100, 40, 63, 40, 49, 44, 50, 41, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 36, 97, 109, 112, 42, 99, 111, 115, 40, 121, 42, 50, 42, 112, 105, 42, 36, 102, 114, 101, 113, 47, 104, 41, 39, 10, 45, 100, 111, 110, 101, 10, 123, 119, 43, 50, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 120, 39, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 89, 61, 40, 121, 45, 54, 48, 43, 53, 42, 99, 111, 115, 40, 120, 47, 51, 48, 41, 43, 49, 48, 42, 115, 105, 110, 40, 120, 47, 49, 53, 41, 41, 59, 105, 102, 40, 89, 60, 48, 124, 124, 89, 62, 61, 51, 50, 44, 45, 49, 44, 89, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 42, 42, 32, 87, 101, 108, 99, 111, 109, 101, 32, 116, 111, 32, 71, 39, 77, 73, 67, 44, 32, 97, 32, 112, 111, 119, 101, 114, 102, 117, 108, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 32, 42, 42, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 10, 45, 98, 91, 45, 49, 93, 32, 48, 46, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 77, 61, 123, 119, 125, 10, 45, 119, 91, 93, 32, 123, 50, 42, 64, 123, 48, 44, 119, 125, 125, 44, 123, 50, 42, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 80, 108, 97, 115, 109, 97, 32, 100, 101, 109, 111, 34, 10, 116, 61, 48, 32, 116, 116, 61, 123, 45, 49, 46, 53, 42, 64, 123, 48, 44, 119, 125, 125, 10, 45, 100, 111, 10, 116, 105, 99, 61, 64, 124, 10, 97, 61, 123, 105, 110, 116, 40, 36, 116, 41, 125, 32, 32, 32, 97, 50, 61, 123, 50, 42, 36, 97, 125, 32, 97, 50, 49, 61, 123, 36, 97, 50, 43, 49, 125, 10, 98, 61, 123, 40, 36, 97, 43, 49, 41, 37, 36, 78, 125, 32, 98, 50, 61, 123, 50, 42, 36, 98, 125, 32, 98, 50, 49, 61, 123, 36, 98, 50, 43, 49, 125, 10, 45, 45, 119, 97, 114, 112, 91, 36, 97, 50, 93, 32, 91, 36, 97, 50, 49, 93, 44, 49, 44, 48, 44, 50, 10, 45, 45, 119, 97, 114, 112, 91, 36, 98, 50, 93, 32, 91, 36, 98, 50, 49, 93, 44, 49, 44, 48, 44, 50, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 123, 36, 116, 45, 36, 97, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 105, 102, 116, 91, 36, 97, 50, 49, 93, 32, 48, 44, 36, 123, 100, 105, 114, 36, 97, 125, 44, 48, 44, 48, 44, 50, 10, 45, 115, 104, 105, 102, 116, 91, 36, 98, 50, 49, 93, 32, 48, 44, 36, 123, 100, 105, 114, 36, 98, 125, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 36, 116, 43, 48, 46, 48, 48, 53, 41, 62, 105, 110, 116, 40, 36, 116, 41, 125, 32, 100, 105, 114, 36, 97, 61, 123, 105, 102, 40, 63, 60, 48, 46, 53, 44, 45, 49, 44, 49, 41, 42, 114, 111, 117, 110, 100, 40, 63, 40, 49, 44, 51, 41, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 116, 61, 123, 40, 36, 116, 43, 40, 64, 124, 45, 36, 116, 105, 99, 41, 41, 37, 36, 78, 125, 10, 45, 45, 122, 91, 45, 50, 93, 32, 36, 116, 116, 44, 123, 36, 116, 116, 43, 119, 45, 49, 43, 50, 125, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 48, 44, 48, 44, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 10, 45, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 45, 50, 44, 45, 50, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 116, 116, 61, 123, 36, 116, 116, 43, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 49, 48, 48, 125, 10, 45, 105, 102, 32, 123, 36, 116, 116, 62, 61, 36, 77, 125, 32, 116, 116, 61, 123, 45, 49, 46, 53, 42, 64, 123, 48, 44, 119, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 123, 45, 50, 42, 36, 78, 45, 50, 125, 45, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 49, 54, 125, 41, 32, 38, 38, 32, 36, 49, 62, 49, 34, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 82, 71, 66, 32, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 100, 101, 109, 111, 32, 115, 104, 111, 119, 115, 32, 104, 111, 119, 32, 82, 71, 66, 32, 99, 111, 108, 111, 114, 115, 32, 99, 97, 110, 32, 98, 101, 32, 113, 117, 97, 110, 116, 105, 102, 105, 101, 100, 32, 117, 115, 105, 110, 103, 92, 110, 10, 45, 45, 45, 45, 32, 116, 104, 101, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 51, 100, 32, 118, 105, 101, 119, 32, 114, 111, 116, 97, 116, 101, 115, 32, 116, 104, 101, 32, 99, 111, 108, 111, 114, 32, 99, 117, 98, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 51, 100, 32, 118, 105, 101, 119, 32, 116, 111, 103, 103, 108, 101, 115, 32, 99, 111, 108, 111, 114, 115, 47, 99, 108, 117, 115, 116, 101, 114, 115, 32, 109, 111, 100, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 116, 111, 103, 103, 108, 101, 115, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 44, 92, 110, 10, 45, 45, 45, 45, 32, 76, 101, 102, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 97, 100, 100, 115, 32, 97, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 82, 105, 103, 104, 116, 32, 109, 111, 117, 115, 101, 32, 98, 117, 116, 116, 111, 110, 32, 111, 110, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 114, 101, 109, 111, 118, 101, 115, 32, 97, 32, 99, 111, 108, 111, 114, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 82, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 85, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 117, 110, 105, 102, 111, 114, 109, 32, 115, 97, 109, 112, 108, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 77, 39, 32, 105, 110, 105, 116, 32, 99, 111, 108, 111, 114, 109, 97, 112, 32, 119, 105, 116, 104, 32, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 100, 111, 101, 115, 32, 97, 32, 115, 105, 110, 103, 108, 101, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 110, 100, 32, 112, 97, 117, 115, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 69, 78, 84, 69, 82, 39, 32, 114, 117, 110, 115, 32, 107, 45, 109, 101, 97, 110, 115, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 45, 116, 101, 115, 116, 105, 109, 97, 103, 101, 50, 100, 32, 51, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 123, 104, 62, 51, 48, 48, 125, 32, 45, 114, 50, 100, 121, 32, 51, 48, 48, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 103, 10, 45, 45, 114, 32, 123, 119, 42, 104, 125, 44, 49, 44, 49, 44, 51, 44, 45, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 109, 105, 110, 40, 119, 44, 56, 49, 57, 50, 41, 125, 44, 49, 44, 49, 44, 51, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 108, 111, 114, 115, 10, 36, 49, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 40, 49, 44, 48, 44, 48, 44, 48, 59, 48, 44, 49, 44, 48, 44, 48, 59, 48, 44, 48, 44, 49, 44, 48, 41, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 111, 115, 101, 51, 100, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 67, 111, 108, 111, 114, 115, 34, 44, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 48, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 67, 108, 117, 115, 116, 101, 114, 115, 34, 44, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 49, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 68, 105, 116, 104, 101, 114, 105, 110, 103, 58, 32, 111, 102, 102, 34, 44, 100, 105, 116, 104, 101, 114, 105, 110, 103, 48, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 34, 68, 105, 116, 104, 101, 114, 105, 110, 103, 58, 32, 111, 110, 34, 44, 100, 105, 116, 104, 101, 114, 105, 110, 103, 49, 10, 45, 105, 102, 32, 123, 64, 123, 105, 109, 103, 44, 104, 125, 60, 51, 48, 48, 125, 32, 45, 45, 114, 50, 100, 121, 91, 105, 109, 103, 93, 32, 51, 48, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 91, 105, 109, 103, 93, 32, 45, 101, 110, 100, 105, 102, 10, 123, 119, 43, 51, 49, 53, 125, 44, 51, 54, 53, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 51, 48, 53, 44, 51, 48, 53, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 51, 48, 57, 44, 52, 44, 123, 119, 45, 53, 125, 44, 51, 48, 53, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 51, 48, 57, 44, 123, 119, 45, 53, 125, 44, 51, 54, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 51, 49, 48, 44, 53, 44, 123, 119, 45, 54, 125, 44, 51, 48, 53, 44, 49, 44, 49, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 53, 44, 51, 49, 48, 44, 123, 119, 45, 54, 125, 44, 51, 54, 48, 44, 49, 44, 50, 10, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 49, 44, 39, 40, 121, 60, 60, 49, 49, 41, 43, 40, 120, 60, 60, 50, 41, 43, 51, 39, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 44, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 32, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 10, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 48, 32, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 61, 48, 32, 112, 97, 117, 115, 101, 61, 49, 32, 115, 48, 61, 111, 102, 102, 32, 115, 49, 61, 111, 110, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 101, 49, 48, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 51, 100, 41, 125, 10, 45, 45, 45, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 50, 32, 45, 45, 43, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 50, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 106, 91, 111, 98, 106, 51, 100, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 91, 111, 98, 106, 51, 100, 93, 10, 45, 105, 102, 32, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 10, 45, 105, 102, 32, 123, 64, 123, 99, 111, 108, 111, 114, 115, 44, 77, 125, 60, 50, 53, 54, 125, 32, 45, 45, 105, 110, 100, 101, 120, 91, 99, 111, 108, 111, 114, 115, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 99, 111, 108, 111, 114, 115, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 99, 111, 108, 111, 114, 115, 93, 32, 48, 32, 45, 62, 62, 91, 45, 49, 93, 32, 56, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 50, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 99, 120, 121, 122, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 36, 95, 78, 45, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 112, 111, 115, 101, 51, 100, 91, 45, 49, 93, 32, 64, 112, 111, 115, 101, 51, 100, 32, 51, 48, 48, 44, 51, 48, 48, 44, 49, 44, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 48, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 51, 48, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 106, 91, 45, 49, 93, 32, 91, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 93, 44, 50, 53, 53, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 51, 100, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 51, 100, 93, 44, 53, 44, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 105, 109, 103, 41, 125, 10, 45, 45, 105, 110, 100, 101, 120, 91, 105, 109, 103, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 123, 48, 46, 55, 42, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 125, 44, 49, 32, 45, 105, 102, 32, 123, 104, 60, 51, 48, 48, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 51, 48, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 45, 49, 93, 32, 91, 100, 105, 116, 104, 101, 114, 105, 110, 103, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 93, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 100, 105, 116, 104, 101, 114, 105, 110, 103, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 93, 44, 50, 53, 53, 10, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 44, 51, 49, 48, 44, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 41, 125, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 91, 45, 49, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 118, 105, 115, 117, 44, 119, 125, 45, 49, 48, 125, 44, 53, 48, 44, 49, 44, 51, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 67, 111, 108, 111, 114, 115, 58, 32, 34, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 50, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 50, 44, 50, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 32, 45, 106, 91, 118, 105, 115, 117, 93, 32, 91, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 44, 53, 44, 51, 49, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 118, 105, 115, 117, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 82, 71, 66, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 100, 101, 109, 111, 34, 10, 120, 61, 123, 105, 110, 116, 40, 64, 123, 33, 44, 120, 125, 42, 64, 123, 118, 105, 115, 117, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 41, 125, 10, 121, 61, 123, 105, 110, 116, 40, 64, 123, 33, 44, 121, 125, 42, 64, 123, 118, 105, 115, 117, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 41, 125, 10, 98, 61, 64, 123, 33, 44, 98, 125, 10, 105, 61, 64, 123, 118, 105, 115, 117, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 51, 41, 125, 10, 45, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 49, 125, 10, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 123, 33, 36, 100, 105, 116, 104, 101, 114, 105, 110, 103, 125, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 50, 125, 10, 40, 64, 123, 45, 82, 71, 66, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 97, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 45, 49, 93, 32, 120, 32, 32, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 36, 105, 61, 61, 50, 34, 32, 38, 38, 32, 34, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 62, 50, 125, 10, 45, 114, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 45, 49, 125, 32, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 50, 34, 32, 38, 38, 32, 34, 36, 105, 62, 61, 51, 125, 10, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 61, 123, 33, 36, 99, 108, 117, 115, 116, 101, 114, 105, 110, 103, 125, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 77, 125, 10, 45, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 48, 44, 48, 32, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 82, 125, 10, 45, 114, 97, 110, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 49, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 85, 125, 10, 45, 117, 110, 105, 102, 111, 114, 109, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 44, 118, 105, 115, 117, 95, 105, 109, 103, 44, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 112, 97, 117, 115, 101, 61, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 44, 69, 78, 84, 69, 82, 125, 10, 112, 97, 117, 115, 101, 61, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 38, 49, 34, 32, 38, 38, 32, 34, 36, 105, 62, 61, 51, 125, 10, 99, 111, 111, 114, 100, 115, 61, 123, 64, 123, 118, 105, 115, 117, 44, 40, 36, 120, 44, 36, 121, 44, 48, 44, 51, 41, 125, 45, 51, 125, 32, 117, 49, 61, 123, 40, 40, 36, 99, 111, 111, 114, 100, 115, 62, 62, 50, 41, 38, 53, 49, 49, 41, 45, 49, 53, 48, 125, 32, 118, 49, 61, 123, 40, 36, 99, 111, 111, 114, 100, 115, 62, 62, 49, 49, 41, 45, 49, 53, 48, 125, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 117, 48, 41, 125, 32, 117, 48, 61, 36, 117, 49, 32, 118, 48, 61, 36, 118, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 117, 48, 33, 61, 36, 117, 49, 34, 32, 38, 38, 32, 34, 36, 118, 48, 33, 61, 36, 118, 49, 125, 10, 110, 48, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 48, 41, 94, 50, 43, 40, 36, 118, 48, 41, 94, 50, 41, 125, 10, 110, 117, 48, 61, 123, 105, 102, 40, 36, 110, 48, 62, 49, 51, 53, 44, 36, 117, 48, 42, 49, 51, 53, 47, 36, 110, 48, 44, 36, 117, 48, 41, 125, 32, 110, 118, 48, 61, 123, 105, 102, 40, 36, 110, 48, 62, 49, 51, 53, 44, 36, 118, 48, 42, 49, 51, 53, 47, 36, 110, 48, 44, 36, 118, 48, 41, 125, 32, 110, 119, 48, 61, 123, 115, 113, 114, 116, 40, 109, 97, 120, 40, 48, 44, 49, 56, 50, 50, 53, 45, 40, 36, 110, 117, 48, 41, 94, 50, 45, 40, 36, 110, 118, 48, 41, 94, 50, 41, 41, 125, 10, 110, 49, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 49, 41, 94, 50, 43, 40, 36, 118, 49, 41, 94, 50, 41, 125, 10, 110, 117, 49, 61, 123, 105, 102, 40, 36, 110, 49, 62, 49, 51, 53, 44, 36, 117, 49, 42, 49, 51, 53, 47, 36, 110, 49, 44, 36, 117, 49, 41, 125, 32, 110, 118, 49, 61, 123, 105, 102, 40, 36, 110, 49, 62, 49, 51, 53, 44, 36, 118, 49, 42, 49, 51, 53, 47, 36, 110, 49, 44, 36, 118, 49, 41, 125, 32, 110, 119, 49, 61, 123, 115, 113, 114, 116, 40, 109, 97, 120, 40, 48, 44, 49, 56, 50, 50, 53, 45, 40, 36, 110, 117, 49, 41, 94, 50, 45, 40, 36, 110, 118, 49, 41, 94, 50, 41, 41, 125, 10, 117, 61, 123, 36, 110, 118, 48, 42, 36, 110, 119, 49, 45, 36, 110, 119, 48, 42, 36, 110, 118, 49, 125, 32, 118, 61, 123, 36, 110, 119, 48, 42, 36, 110, 117, 49, 45, 36, 110, 117, 48, 42, 36, 110, 119, 49, 125, 32, 119, 61, 123, 36, 110, 118, 48, 42, 36, 110, 117, 49, 45, 36, 110, 117, 48, 42, 36, 110, 118, 49, 125, 32, 110, 61, 123, 115, 113, 114, 116, 40, 40, 36, 117, 41, 94, 50, 43, 40, 36, 118, 41, 94, 50, 43, 40, 36, 119, 41, 94, 50, 41, 125, 10, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 91, 93, 32, 36, 117, 44, 36, 118, 44, 36, 119, 44, 123, 97, 115, 105, 110, 40, 36, 110, 47, 49, 56, 50, 50, 53, 41, 42, 49, 56, 48, 47, 112, 105, 125, 32, 45, 109, 118, 91, 112, 111, 115, 101, 51, 100, 93, 32, 64, 35, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 111, 115, 101, 51, 100, 10, 117, 48, 61, 36, 117, 49, 32, 118, 48, 61, 36, 118, 49, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 33, 40, 36, 98, 38, 49, 41, 125, 32, 117, 48, 61, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 112, 97, 117, 115, 101, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 125, 10, 112, 97, 117, 115, 101, 61, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 10, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 45, 105, 110, 100, 101, 120, 91, 99, 111, 108, 111, 114, 115, 93, 32, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 43, 91, 99, 111, 108, 111, 114, 115, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 99, 111, 108, 111, 114, 115, 44, 115, 125, 10, 45, 115, 104, 91, 99, 111, 108, 111, 114, 115, 93, 32, 36, 62, 44, 36, 62, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 42, 50, 53, 54, 125, 44, 48, 44, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 42, 50, 53, 54, 45, 49, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 46, 48, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 32, 45, 97, 91, 45, 64, 123, 99, 111, 108, 111, 114, 115, 44, 115, 125, 45, 45, 49, 93, 32, 99, 10, 45, 114, 109, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 101, 110, 116, 114, 111, 105, 100, 115, 10, 45, 45, 62, 62, 91, 99, 111, 108, 111, 114, 115, 93, 32, 56, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 44, 48, 44, 123, 64, 123, 99, 101, 110, 116, 114, 111, 105, 100, 115, 44, 119, 125, 45, 49, 125, 10, 99, 109, 97, 120, 61, 64, 123, 45, 49, 44, 120, 77, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 105, 102, 32, 123, 33, 105, 40, 36, 62, 41, 125, 32, 45, 112, 111, 105, 110, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 36, 62, 44, 48, 44, 48, 44, 49, 44, 64, 123, 45, 97, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 92, 32, 36, 99, 109, 97, 120, 125, 32, 45, 112, 111, 105, 110, 116, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 36, 62, 44, 48, 44, 48, 44, 45, 48, 46, 48, 48, 49, 44, 64, 123, 45, 82, 71, 66, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 51, 100, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 105, 109, 103, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 32, 45, 114, 109, 91, 118, 105, 115, 117, 95, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 36, 118, 105, 115, 117, 95, 105, 109, 103, 32, 45, 119, 97, 105, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 33, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 81, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 69, 83, 67, 125, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 111, 98, 106, 51, 100, 32, 45, 114, 109, 91, 111, 98, 106, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 91, 99, 101, 110, 116, 114, 111, 105, 100, 115, 93, 32, 45, 99, 105, 114, 99, 108, 101, 115, 51, 100, 91, 45, 49, 93, 32, 53, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 10, 45, 45, 97, 110, 100, 91, 99, 111, 108, 111, 114, 115, 93, 32, 50, 53, 53, 32, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 91, 45, 49, 93, 32, 45, 111, 51, 100, 91, 45, 49, 93, 32, 48, 46, 56, 32, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 51, 100, 91, 45, 49, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 98, 106, 51, 100, 32, 95, 78, 61, 123, 105, 40, 48, 44, 55, 41, 125, 10, 95, 120, 95, 113, 117, 97, 110, 116, 105, 122, 101, 95, 114, 103, 98, 95, 116, 101, 120, 116, 32, 58, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 50, 125, 44, 49, 53, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 50, 93, 32, 36, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 109, 36, 50, 10, 120, 95, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 51, 100, 32, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 49, 50, 56, 44, 50, 53, 54, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 51, 48, 44, 50, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 57, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 56, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 111, 114, 117, 115, 51, 100, 32, 51, 48, 44, 49, 48, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 48, 48, 44, 48, 10, 45, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 52, 55, 44, 51, 52, 44, 34, 56, 48, 43, 50, 48, 42, 97, 98, 115, 40, 99, 111, 115, 40, 50, 42, 116, 104, 101, 116, 97, 41, 41, 34, 32, 45, 115, 51, 100, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 105, 91, 45, 50, 93, 32, 51, 44, 123, 104, 125, 44, 49, 44, 49, 44, 49, 53, 48, 44, 50, 50, 48, 44, 50, 53, 53, 44, 50, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 121, 91, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 121, 10, 45, 115, 112, 104, 101, 114, 105, 99, 97, 108, 51, 100, 32, 52, 55, 44, 51, 52, 44, 34, 49, 48, 48, 42, 97, 98, 115, 40, 49, 43, 48, 46, 54, 42, 99, 111, 115, 40, 51, 42, 112, 104, 105, 41, 42, 115, 105, 110, 40, 52, 42, 116, 104, 101, 116, 97, 41, 41, 34, 10, 45, 114, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 100, 98, 51, 100, 32, 48, 10, 120, 98, 61, 48, 32, 120, 108, 61, 48, 32, 97, 110, 105, 109, 61, 48, 10, 45, 119, 91, 93, 32, 52, 48, 48, 44, 52, 48, 48, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 51, 100, 32, 114, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 100, 101, 109, 111, 34, 10, 45, 100, 111, 10, 116, 105, 99, 61, 64, 124, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 56, 44, 123, 56, 43, 51, 42, 105, 40, 48, 44, 54, 41, 45, 49, 125, 32, 45, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 44, 48, 44, 48, 44, 123, 105, 102, 40, 36, 97, 110, 105, 109, 60, 50, 53, 48, 44, 48, 44, 48, 46, 53, 45, 48, 46, 53, 42, 99, 111, 115, 40, 40, 36, 97, 110, 105, 109, 45, 50, 53, 48, 41, 47, 49, 48, 48, 41, 41, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 122, 91, 45, 54, 93, 32, 36, 120, 98, 44, 48, 44, 123, 36, 120, 98, 43, 50, 53, 53, 125, 44, 50, 53, 53, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 55, 53, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 45, 45, 122, 91, 45, 54, 93, 32, 36, 120, 108, 44, 48, 44, 123, 36, 120, 108, 43, 50, 53, 53, 125, 44, 50, 53, 53, 10, 120, 102, 61, 123, 109, 105, 110, 40, 51, 48, 44, 36, 97, 110, 105, 109, 45, 55, 48, 41, 43, 50, 48, 42, 99, 111, 115, 40, 49, 46, 56, 42, 64, 124, 41, 125, 10, 121, 102, 61, 123, 53, 48, 43, 50, 48, 42, 115, 105, 110, 40, 50, 46, 55, 42, 64, 124, 41, 125, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 123, 50, 48, 43, 36, 120, 102, 125, 37, 44, 36, 121, 102, 37, 44, 48, 44, 49, 44, 52, 44, 48, 44, 48, 10, 45, 108, 51, 100, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 55, 53, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 53, 44, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 54, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 36, 120, 102, 37, 44, 36, 121, 102, 37, 44, 48, 44, 49, 44, 52, 44, 48, 44, 48, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 120, 98, 61, 123, 40, 36, 120, 98, 43, 54, 41, 38, 50, 53, 53, 125, 10, 120, 108, 61, 123, 40, 36, 120, 108, 45, 54, 41, 38, 50, 53, 53, 125, 10, 97, 110, 105, 109, 61, 123, 36, 97, 110, 105, 109, 43, 49, 125, 10, 45, 114, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 123, 115, 105, 110, 40, 48, 46, 53, 42, 64, 124, 41, 125, 44, 123, 99, 111, 115, 40, 64, 124, 41, 125, 44, 49, 44, 123, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 51, 51, 125, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 45, 49, 44, 48, 46, 51, 44, 48, 46, 56, 44, 123, 40, 64, 124, 45, 36, 116, 105, 99, 41, 42, 49, 48, 48, 125, 10, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 53, 45, 45, 49, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 114, 117, 98, 98, 101, 114, 51, 100, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 51, 100, 32, 114, 117, 98, 98, 101, 114, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 53, 48, 44, 48, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 55, 48, 44, 49, 53, 32, 45, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 50, 48, 44, 52, 48, 10, 45, 99, 111, 108, 51, 100, 91, 45, 51, 93, 32, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 48, 46, 51, 32, 45, 99, 111, 108, 51, 100, 91, 45, 50, 93, 32, 49, 50, 56, 44, 50, 48, 48, 44, 55, 54, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 50, 48, 48, 44, 49, 50, 56, 44, 55, 54, 10, 45, 99, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 55, 48, 32, 45, 43, 51, 100, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 49, 48, 44, 45, 56, 44, 50, 48, 10, 50, 53, 54, 44, 50, 53, 54, 44, 54, 52, 44, 51, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 105, 102, 40, 99, 61, 61, 49, 44, 121, 44, 121, 42, 64, 123, 49, 44, 100, 125, 47, 104, 41, 41, 39, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 102, 114, 97, 109, 101, 61, 48, 10, 45, 100, 111, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 32, 45, 102, 99, 91, 45, 49, 93, 32, 49, 54, 44, 51, 50, 44, 51, 50, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 48, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 51, 44, 48, 44, 48, 32, 45, 106, 91, 49, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 36, 102, 114, 97, 109, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 51, 100, 91, 48, 93, 32, 48, 46, 49, 44, 49, 44, 48, 46, 54, 44, 123, 51, 42, 99, 111, 115, 40, 64, 124, 42, 49, 46, 50, 53, 41, 125, 32, 45, 114, 51, 100, 91, 48, 93, 32, 49, 44, 48, 46, 50, 44, 48, 46, 54, 44, 45, 49, 10, 45, 45, 119, 97, 114, 112, 91, 49, 93, 32, 91, 50, 93, 44, 48, 44, 48, 32, 45, 42, 91, 51, 93, 32, 48, 46, 56, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 50, 32, 45, 43, 91, 51, 44, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 32, 123, 49, 46, 50, 42, 119, 125, 44, 123, 49, 46, 50, 42, 104, 125, 44, 48, 44, 48, 44, 34, 82, 117, 98, 98, 101, 114, 32, 51, 100, 34, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 115, 104, 91, 50, 93, 32, 50, 44, 50, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 123, 64, 123, 49, 44, 100, 125, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 102, 114, 97, 109, 101, 61, 123, 40, 36, 102, 114, 97, 109, 101, 45, 49, 41, 37, 64, 123, 49, 44, 100, 125, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 83, 104, 97, 100, 101, 32, 98, 111, 98, 115, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 32, 116, 61, 49, 48, 48, 32, 45, 119, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 104, 97, 100, 101, 32, 98, 111, 98, 115, 34, 10, 45, 100, 111, 10, 116, 61, 123, 36, 116, 43, 48, 46, 48, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 116, 62, 52, 42, 112, 105, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 98, 125, 125, 10, 114, 120, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 121, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 122, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 116, 61, 123, 63, 40, 45, 49, 44, 49, 41, 125, 32, 114, 99, 120, 61, 123, 63, 40, 45, 48, 46, 54, 42, 48, 46, 54, 41, 125, 32, 116, 61, 48, 10, 78, 61, 123, 50, 48, 43, 114, 111, 117, 110, 100, 40, 63, 40, 56, 48, 41, 41, 125, 32, 82, 61, 123, 40, 50, 43, 114, 111, 117, 110, 100, 40, 63, 40, 52, 48, 41, 41, 41, 42, 109, 105, 110, 40, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 41, 47, 51, 48, 48, 125, 10, 45, 105, 102, 32, 36, 111, 98, 106, 51, 100, 32, 45, 114, 109, 91, 99, 111, 108, 111, 114, 109, 97, 112, 44, 105, 109, 103, 44, 111, 98, 106, 51, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 123, 52, 43, 114, 111, 117, 110, 100, 40, 63, 40, 49, 50, 41, 41, 125, 44, 49, 44, 49, 44, 51, 32, 45, 110, 111, 105, 115, 101, 91, 48, 93, 32, 50, 53, 53, 44, 50, 32, 45, 114, 91, 48, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 108, 111, 114, 109, 97, 112, 10, 40, 54, 55, 46, 53, 59, 55, 51, 46, 53, 59, 49, 48, 57, 46, 53, 59, 49, 48, 51, 46, 53, 59, 53, 49, 46, 53, 59, 49, 48, 48, 46, 53, 59, 123, 50, 42, 36, 78, 125, 59, 36, 78, 41, 32, 51, 44, 123, 50, 42, 36, 78, 125, 44, 49, 44, 49, 44, 48, 10, 49, 44, 36, 78, 44, 49, 44, 49, 44, 53, 32, 50, 44, 36, 78, 44, 49, 44, 49, 44, 39, 121, 43, 120, 42, 36, 78, 39, 32, 45, 97, 91, 45, 50, 45, 45, 49, 93, 32, 120, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 53, 10, 52, 44, 36, 78, 44, 49, 44, 49, 44, 49, 32, 45, 121, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 121, 32, 45, 110, 109, 91, 45, 49, 93, 32, 111, 98, 106, 51, 100, 10, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 105, 109, 103, 10, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 114, 61, 123, 36, 114, 121, 43, 36, 114, 120, 42, 99, 111, 115, 40, 54, 42, 36, 114, 122, 42, 36, 116, 41, 43, 40, 49, 45, 36, 114, 120, 41, 42, 115, 105, 110, 40, 54, 42, 36, 114, 116, 42, 36, 116, 41, 125, 10, 40, 48, 59, 123, 51, 48, 42, 36, 114, 121, 42, 40, 36, 78, 45, 49, 41, 125, 41, 32, 40, 36, 116, 59, 123, 50, 42, 112, 105, 42, 40, 36, 78, 45, 49, 41, 47, 36, 78, 43, 36, 116, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 36, 78, 44, 49, 44, 49, 44, 51, 10, 45, 43, 91, 45, 50, 93, 32, 123, 51, 54, 48, 42, 115, 105, 110, 40, 36, 114, 122, 42, 36, 116, 41, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 112, 105, 47, 49, 56, 48, 125, 10, 45, 45, 115, 105, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 52, 44, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 50, 93, 32, 36, 114, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 36, 114, 99, 120, 32, 45, 43, 91, 45, 52, 44, 45, 51, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 50, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 50, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 33, 44, 104, 125, 47, 50, 125, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 45, 43, 91, 45, 49, 93, 32, 36, 82, 32, 45, 45, 91, 45, 50, 93, 32, 36, 82, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 45, 106, 91, 111, 98, 106, 51, 100, 93, 32, 91, 45, 49, 93, 44, 48, 44, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 105, 109, 103, 93, 32, 91, 111, 98, 106, 51, 100, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 45, 49, 44, 50, 44, 48, 44, 48, 10, 45, 97, 110, 100, 91, 105, 109, 103, 93, 32, 50, 53, 53, 32, 45, 45, 109, 97, 112, 91, 105, 109, 103, 93, 32, 91, 99, 111, 108, 111, 114, 109, 97, 112, 93, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 115, 112, 108, 105, 110, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 83, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 32, 101, 100, 105, 116, 111, 114, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 77, 111, 117, 115, 101, 32, 116, 111, 32, 105, 110, 115, 101, 114, 116, 47, 109, 111, 118, 101, 47, 100, 101, 108, 101, 116, 101, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 82, 39, 32, 116, 111, 32, 114, 101, 115, 101, 116, 32, 116, 104, 101, 32, 99, 117, 114, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 115, 112, 108, 105, 110, 101, 32, 99, 117, 114, 118, 101, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 80, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 111, 105, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 69, 78, 84, 69, 82, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 99, 111, 110, 116, 114, 111, 108, 32, 112, 111, 108, 121, 103, 111, 110, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 84, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 116, 97, 110, 103, 101, 110, 116, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 73, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 105, 110, 100, 105, 99, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 67, 39, 32, 116, 111, 32, 115, 104, 111, 119, 115, 47, 104, 105, 100, 101, 32, 112, 111, 105, 110, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 43, 39, 32, 97, 110, 100, 32, 39, 45, 39, 32, 116, 111, 32, 105, 110, 99, 114, 101, 97, 115, 101, 47, 100, 101, 99, 114, 101, 97, 115, 101, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 64, 35, 32, 45, 97, 32, 120, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 108, 115, 101, 32, 40, 48, 59, 48, 94, 48, 59, 49, 50, 56, 94, 48, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 51, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 34, 91, 71, 39, 77, 73, 67, 93, 32, 83, 112, 108, 105, 110, 101, 32, 69, 100, 105, 116, 111, 114, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 48, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 48, 44, 48, 44, 64, 123, 45, 49, 44, 110, 125, 32, 45, 114, 91, 48, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 51, 44, 49, 10, 45, 105, 91, 49, 93, 32, 49, 10, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 48, 46, 53, 10, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 50, 51, 10, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 10, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 100, 111, 10, 45, 105, 102, 32, 123, 64, 123, 49, 44, 35, 125, 61, 61, 49, 125, 10, 45, 114, 109, 91, 49, 93, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 48, 46, 53, 32, 110, 101, 97, 114, 101, 115, 116, 61, 45, 49, 32, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 105, 91, 49, 93, 32, 40, 123, 48, 46, 50, 42, 119, 125, 44, 123, 48, 46, 50, 42, 104, 125, 59, 92, 10, 123, 48, 46, 50, 42, 119, 125, 44, 123, 48, 46, 56, 42, 104, 125, 59, 92, 10, 123, 48, 46, 56, 42, 119, 125, 44, 123, 48, 46, 56, 42, 104, 125, 59, 92, 10, 123, 48, 46, 56, 42, 119, 125, 44, 123, 48, 46, 50, 42, 104, 125, 41, 10, 45, 101, 110, 100, 105, 102, 10, 91, 49, 93, 32, 40, 123, 64, 123, 33, 44, 119, 125, 47, 64, 123, 48, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 64, 123, 48, 44, 104, 125, 125, 41, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 10, 45, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 115, 113, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 50, 32, 45, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 114, 91, 48, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 44, 49, 44, 51, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 52, 125, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 64, 123, 50, 44, 104, 125, 44, 64, 50, 44, 48, 46, 51, 44, 49, 50, 56, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 51, 125, 44, 48, 46, 51, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 125, 32, 45, 115, 112, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 64, 123, 51, 44, 48, 45, 49, 125, 44, 64, 123, 50, 44, 50, 45, 51, 125, 44, 64, 123, 51, 44, 50, 45, 51, 125, 44, 51, 50, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 56, 125, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 64, 123, 50, 44, 48, 125, 45, 64, 123, 52, 44, 48, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 49, 125, 45, 64, 123, 52, 44, 49, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 48, 125, 43, 64, 123, 52, 44, 48, 125, 42, 50, 48, 125, 44, 123, 64, 123, 50, 44, 49, 125, 43, 64, 123, 52, 44, 49, 125, 42, 50, 48, 125, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 54, 125, 32, 45, 116, 91, 45, 49, 93, 32, 36, 62, 44, 123, 64, 123, 50, 44, 48, 125, 45, 51, 125, 44, 123, 64, 123, 50, 44, 49, 125, 45, 49, 56, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 51, 50, 125, 32, 45, 116, 91, 45, 49, 93, 32, 34, 40, 34, 123, 114, 111, 117, 110, 100, 40, 64, 123, 49, 44, 48, 125, 41, 125, 34, 44, 34, 123, 114, 111, 117, 110, 100, 40, 64, 123, 49, 44, 49, 125, 41, 125, 34, 41, 34, 44, 123, 64, 123, 50, 44, 48, 125, 45, 49, 54, 125, 44, 123, 64, 123, 50, 44, 49, 125, 43, 49, 48, 125, 44, 49, 51, 44, 49, 44, 49, 48, 48, 44, 50, 48, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 91, 49, 45, 52, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 34, 38, 50, 34, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 52, 44, 52, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 48, 45, 49, 125, 44, 50, 44, 50, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 48, 48, 44, 49, 53, 53, 32, 45, 115, 104, 105, 102, 116, 91, 50, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 51, 44, 52, 44, 45, 49, 93, 32, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 44, 45, 49, 44, 49, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 80, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 50, 44, 45, 50, 44, 50, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 69, 78, 84, 69, 82, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 52, 44, 45, 52, 44, 52, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 84, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 56, 44, 45, 56, 44, 56, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 73, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 49, 54, 44, 45, 49, 54, 44, 49, 54, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 125, 32, 118, 105, 115, 117, 102, 108, 97, 103, 115, 61, 123, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 43, 105, 102, 40, 36, 118, 105, 115, 117, 102, 108, 97, 103, 115, 38, 51, 50, 44, 45, 51, 50, 44, 51, 50, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 80, 65, 68, 65, 68, 68, 125, 34, 32, 38, 38, 32, 34, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 60, 49, 125, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 123, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 42, 49, 46, 49, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 80, 65, 68, 83, 85, 66, 125, 34, 32, 38, 38, 32, 34, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 62, 48, 46, 49, 125, 32, 114, 111, 117, 110, 100, 110, 101, 115, 115, 61, 123, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 42, 48, 46, 57, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 82, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 91, 49, 93, 32, 49, 32, 45, 119, 97, 105, 116, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 68, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 42, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 42, 49, 46, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 67, 125, 125, 32, 45, 119, 91, 93, 32, 123, 64, 123, 33, 44, 119, 125, 47, 49, 46, 53, 125, 44, 123, 64, 123, 33, 44, 104, 125, 47, 49, 46, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 40, 64, 123, 33, 44, 67, 84, 82, 76, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 67, 84, 82, 76, 82, 73, 71, 72, 84, 125, 41, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 82, 125, 125, 32, 45, 119, 91, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 44, 114, 125, 32, 45, 119, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 61, 61, 48, 125, 32, 97, 99, 116, 105, 118, 101, 61, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 98, 125, 34, 32, 38, 38, 32, 34, 36, 97, 99, 116, 105, 118, 101, 61, 61, 45, 49, 125, 10, 91, 50, 93, 32, 40, 64, 123, 33, 44, 120, 125, 44, 64, 123, 33, 44, 121, 125, 41, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 40, 64, 123, 45, 49, 44, 99, 125, 41, 32, 110, 101, 97, 114, 101, 115, 116, 61, 64, 123, 45, 49, 44, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 109, 125, 60, 54, 52, 125, 32, 97, 99, 116, 105, 118, 101, 61, 36, 110, 101, 97, 114, 101, 115, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 50, 93, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 97, 99, 116, 105, 118, 101, 33, 61, 45, 49, 125, 10, 45, 61, 91, 49, 93, 32, 123, 64, 123, 33, 44, 120, 125, 42, 64, 123, 48, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 125, 44, 48, 44, 36, 97, 99, 116, 105, 118, 101, 10, 45, 61, 91, 49, 93, 32, 123, 64, 123, 33, 44, 121, 125, 42, 64, 123, 48, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 125, 44, 49, 44, 36, 97, 99, 116, 105, 118, 101, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 50, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 49, 44, 104, 125, 62, 51, 125, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 114, 109, 91, 36, 110, 101, 97, 114, 101, 115, 116, 93, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 61, 48, 125, 10, 120, 121, 61, 40, 123, 64, 123, 33, 44, 120, 125, 42, 64, 123, 48, 44, 119, 125, 47, 64, 123, 33, 44, 119, 125, 125, 44, 123, 64, 123, 33, 44, 121, 125, 42, 64, 123, 48, 44, 104, 125, 47, 64, 123, 33, 44, 104, 125, 125, 41, 10, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 36, 120, 121, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 120, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 40, 64, 123, 45, 49, 44, 99, 125, 41, 32, 110, 115, 61, 64, 123, 45, 49, 44, 49, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 121, 32, 45, 105, 91, 123, 36, 110, 115, 43, 49, 125, 93, 32, 36, 120, 121, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 97, 99, 116, 105, 118, 101, 61, 123, 36, 110, 115, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 111, 117, 110, 100, 110, 101, 115, 115, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 50, 32, 45, 114, 109, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 49, 44, 104, 125, 32, 45, 115, 112, 108, 105, 110, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 48, 45, 49, 125, 44, 64, 123, 49, 44, 48, 45, 49, 125, 44, 64, 123, 48, 44, 50, 45, 51, 125, 44, 64, 123, 49, 44, 50, 45, 51, 125, 44, 49, 50, 56, 44, 49, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 32, 45, 100, 111, 110, 101, 10, 45, 102, 108, 111, 111, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 116, 101, 116, 114, 105, 115, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 101, 116, 114, 105, 115, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 71, 39, 77, 73, 67, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 84, 101, 116, 114, 105, 115, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 65, 114, 114, 111, 119, 32, 107, 101, 121, 115, 32, 116, 111, 32, 109, 111, 118, 101, 47, 114, 111, 116, 97, 116, 101, 32, 116, 104, 101, 32, 116, 114, 105, 111, 109, 105, 110, 111, 115, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 32, 39, 83, 80, 65, 67, 69, 39, 32, 116, 111, 32, 109, 97, 107, 101, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 116, 114, 105, 111, 109, 105, 110, 111, 32, 102, 97, 108, 108, 105, 110, 103, 46, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 32, 45, 114, 109, 10, 45, 105, 91, 109, 48, 93, 32, 52, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 56, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 49, 50, 93, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 49, 54, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 10, 45, 105, 91, 109, 50, 48, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 50, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 105, 102, 32, 123, 63, 60, 48, 46, 50, 53, 125, 10, 45, 105, 91, 109, 50, 56, 93, 32, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 51, 50, 93, 32, 50, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 105, 91, 109, 51, 54, 93, 32, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 48, 93, 32, 49, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 105, 91, 109, 52, 52, 93, 32, 51, 44, 50, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 105, 91, 109, 52, 56, 93, 32, 51, 44, 51, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 105, 61, 123, 52, 42, 36, 62, 125, 32, 45, 108, 91, 109, 36, 105, 93, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 57, 48, 42, 40, 36, 62, 43, 49, 41, 125, 32, 45, 110, 109, 91, 45, 49, 93, 32, 109, 123, 36, 105, 43, 36, 62, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 78, 61, 64, 35, 10, 45, 105, 91, 99, 111, 108, 111, 114, 115, 93, 32, 51, 44, 36, 78, 44, 49, 44, 49, 44, 39, 63, 40, 49, 54, 44, 50, 50, 52, 41, 39, 32, 45, 114, 91, 45, 49, 93, 32, 51, 44, 52, 48, 48, 37, 32, 45, 105, 91, 109, 97, 115, 107, 93, 32, 40, 48, 44, 45, 49, 44, 48, 59, 49, 44, 48, 44, 45, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 42, 91, 45, 49, 93, 32, 49, 50, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 10, 45, 45, 114, 91, 109, 36, 62, 93, 32, 53, 48, 48, 37, 44, 53, 48, 48, 37, 44, 49, 44, 51, 32, 45, 45, 99, 111, 114, 114, 101, 108, 97, 116, 101, 91, 45, 49, 93, 32, 91, 109, 97, 115, 107, 93, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 49, 44, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 51, 48, 37, 44, 49, 48, 48, 37, 10, 45, 45, 114, 91, 109, 36, 62, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 32, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 64, 123, 99, 111, 108, 111, 114, 115, 44, 123, 51, 42, 36, 62, 125, 45, 123, 51, 42, 36, 62, 43, 50, 125, 125, 32, 45, 114, 118, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 36, 62, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 99, 111, 108, 111, 114, 115, 44, 109, 97, 115, 107, 93, 10, 102, 97, 99, 116, 61, 123, 64, 123, 115, 48, 44, 119, 125, 47, 64, 123, 109, 48, 44, 119, 125, 125, 10, 87, 61, 49, 50, 32, 72, 61, 50, 48, 10, 45, 105, 91, 98, 111, 97, 114, 100, 93, 32, 36, 87, 44, 36, 72, 32, 45, 105, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 98, 111, 97, 114, 100, 93, 10, 45, 105, 91, 114, 101, 110, 100, 101, 114, 93, 32, 123, 36, 102, 97, 99, 116, 42, 36, 87, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 72, 125, 44, 49, 44, 51, 32, 45, 105, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 10, 45, 45, 114, 111, 119, 115, 91, 114, 101, 110, 100, 101, 114, 93, 32, 48, 44, 53, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 32, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 52, 48, 37, 44, 49, 32, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 114, 91, 45, 49, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 54, 52, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 49, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 53, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 51, 48, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 110, 109, 91, 45, 49, 93, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 10, 116, 105, 109, 101, 61, 64, 124, 32, 115, 99, 111, 114, 101, 61, 48, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 48, 32, 103, 97, 109, 101, 111, 118, 101, 114, 61, 48, 32, 110, 61, 45, 49, 32, 110, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 78, 45, 49, 41, 41, 125, 10, 45, 100, 111, 10, 45, 119, 97, 105, 116, 32, 123, 105, 102, 40, 36, 102, 97, 108, 108, 95, 109, 111, 100, 101, 44, 45, 49, 44, 45, 50, 48, 41, 125, 10, 45, 105, 102, 32, 36, 103, 97, 109, 101, 111, 118, 101, 114, 10, 45, 45, 106, 91, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 46, 55, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 71, 97, 109, 101, 92, 110, 79, 118, 101, 114, 33, 34, 44, 51, 48, 44, 51, 48, 37, 44, 51, 50, 44, 50, 44, 49, 44, 50, 53, 53, 32, 45, 119, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 110, 60, 48, 125, 10, 45, 108, 91, 98, 111, 97, 114, 100, 93, 32, 45, 115, 32, 121, 32, 105, 61, 45, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 64, 123, 36, 60, 44, 109, 125, 32, 105, 61, 36, 60, 44, 36, 105, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 48, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 97, 32, 121, 32, 115, 99, 111, 114, 101, 61, 123, 36, 115, 99, 111, 114, 101, 43, 50, 94, 40, 110, 97, 114, 103, 40, 36, 105, 41, 45, 49, 41, 45, 49, 125, 32, 45, 114, 32, 36, 87, 44, 36, 72, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 110, 109, 32, 98, 111, 97, 114, 100, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 105, 41, 62, 49, 125, 32, 45, 108, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 115, 32, 121, 44, 36, 72, 32, 48, 32, 45, 114, 109, 91, 36, 105, 93, 32, 45, 97, 32, 121, 32, 45, 114, 32, 123, 36, 102, 97, 99, 116, 42, 36, 87, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 72, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 110, 109, 32, 114, 101, 110, 100, 101, 114, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 110, 61, 36, 110, 110, 32, 110, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 78, 45, 49, 41, 41, 125, 32, 120, 61, 123, 36, 87, 47, 50, 125, 32, 121, 61, 48, 32, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 100, 111, 95, 114, 101, 110, 100, 101, 114, 10, 45, 114, 109, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 10, 45, 105, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 98, 111, 97, 114, 100, 93, 32, 45, 106, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 110, 93, 44, 123, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 49, 44, 91, 109, 36, 110, 93, 10, 45, 105, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 114, 101, 110, 100, 101, 114, 93, 32, 45, 115, 104, 91, 115, 36, 110, 93, 32, 51, 44, 51, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 115, 36, 110, 93, 44, 123, 36, 102, 97, 99, 116, 42, 40, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 41, 125, 44, 123, 36, 102, 97, 99, 116, 42, 36, 121, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 42, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 99, 111, 114, 101, 32, 58, 32, 34, 36, 115, 99, 111, 114, 101, 34, 32, 32, 32, 32, 78, 101, 120, 116, 32, 58, 34, 44, 52, 44, 48, 44, 51, 50, 44, 49, 44, 49, 54, 52, 32, 45, 114, 91, 45, 49, 93, 32, 52, 48, 37, 44, 52, 48, 37, 44, 49, 44, 51, 44, 50, 32, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 42, 91, 109, 36, 110, 110, 93, 32, 49, 57, 54, 32, 45, 114, 91, 45, 49, 93, 32, 51, 48, 48, 37, 44, 51, 48, 48, 37, 44, 49, 44, 51, 32, 45, 106, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 44, 119, 125, 45, 119, 45, 52, 125, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 49, 57, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 91, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 93, 32, 48, 44, 123, 45, 49, 51, 42, 64, 124, 42, 49, 46, 48, 52, 94, 36, 115, 99, 111, 114, 101, 125, 44, 48, 44, 48, 44, 50, 10, 45, 106, 91, 45, 49, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 95, 109, 97, 115, 107, 93, 44, 50, 53, 53, 10, 45, 119, 91, 45, 49, 93, 32, 123, 50, 42, 119, 125, 44, 123, 50, 42, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 84, 101, 116, 114, 105, 115, 34, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 64, 123, 33, 44, 83, 80, 65, 67, 69, 125, 32, 102, 97, 108, 108, 95, 109, 111, 100, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 34, 32, 124, 124, 32, 34, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 125, 10, 97, 110, 61, 123, 105, 102, 40, 64, 123, 33, 44, 65, 82, 82, 79, 87, 85, 80, 125, 44, 110, 61, 36, 110, 43, 49, 59, 105, 102, 40, 110, 37, 52, 44, 110, 44, 110, 45, 52, 41, 44, 36, 110, 41, 125, 10, 110, 120, 61, 123, 119, 50, 61, 105, 110, 116, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 47, 50, 41, 59, 109, 97, 120, 40, 119, 50, 44, 109, 105, 110, 40, 36, 120, 45, 64, 123, 33, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 43, 64, 123, 33, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 44, 36, 87, 45, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 37, 50, 41, 45, 119, 50, 41, 41, 125, 10, 45, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 97, 110, 93, 44, 123, 36, 110, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 97, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 45, 49, 44, 91, 109, 36, 97, 110, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 77, 125, 61, 61, 49, 125, 32, 120, 61, 36, 110, 120, 32, 110, 61, 36, 97, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 65, 82, 82, 79, 87, 68, 79, 87, 78, 125, 34, 32, 124, 124, 32, 34, 64, 124, 45, 36, 116, 105, 109, 101, 62, 48, 46, 57, 94, 105, 110, 116, 40, 36, 115, 99, 111, 114, 101, 47, 50, 41, 34, 32, 124, 124, 32, 34, 36, 102, 97, 108, 108, 95, 109, 111, 100, 101, 125, 10, 121, 61, 123, 36, 121, 43, 49, 125, 10, 45, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 109, 36, 110, 93, 44, 123, 36, 120, 45, 105, 110, 116, 40, 64, 123, 109, 36, 110, 44, 119, 125, 47, 50, 41, 125, 44, 36, 121, 44, 48, 44, 48, 44, 45, 49, 44, 91, 109, 36, 110, 93, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 77, 125, 62, 49, 34, 32, 124, 124, 32, 34, 36, 121, 43, 64, 123, 109, 36, 110, 44, 104, 125, 62, 36, 72, 125, 10, 45, 105, 102, 32, 123, 36, 121, 60, 61, 49, 125, 32, 103, 97, 109, 101, 111, 118, 101, 114, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 106, 91, 98, 111, 97, 114, 100, 93, 32, 91, 99, 117, 114, 114, 95, 98, 111, 97, 114, 100, 93, 32, 45, 106, 91, 114, 101, 110, 100, 101, 114, 93, 32, 91, 99, 117, 114, 114, 95, 114, 101, 110, 100, 101, 114, 93, 32, 110, 61, 45, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 116, 105, 109, 101, 61, 64, 124, 32, 100, 111, 95, 114, 101, 110, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 32, 45, 119, 32, 48, 32, 45, 118, 32, 43, 10, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 103, 97, 109, 101, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 85, 115, 101, 32, 109, 111, 117, 115, 101, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 92, 110, 10, 45, 45, 45, 45, 32, 115, 121, 109, 98, 111, 108, 115, 46, 32, 67, 108, 111, 115, 101, 32, 119, 105, 110, 100, 111, 119, 32, 116, 111, 32, 101, 120, 105, 116, 32, 103, 97, 109, 101, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 109, 101, 115, 115, 97, 103, 101, 61, 48, 10, 99, 111, 117, 110, 116, 101, 114, 61, 48, 10, 112, 108, 97, 121, 101, 114, 61, 48, 10, 115, 116, 97, 116, 101, 61, 48, 10, 116, 109, 112, 51, 61, 48, 10, 116, 109, 112, 50, 61, 48, 10, 116, 109, 112, 49, 61, 48, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 50, 10, 45, 119, 91, 45, 49, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 32, 34, 10, 45, 100, 111, 10, 45, 105, 102, 32, 36, 112, 108, 97, 121, 101, 114, 32, 109, 101, 115, 115, 97, 103, 101, 61, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 79, 32, 116, 111, 32, 112, 108, 97, 121, 41, 34, 10, 45, 101, 108, 115, 101, 32, 109, 101, 115, 115, 97, 103, 101, 61, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 88, 32, 116, 111, 32, 112, 108, 97, 121, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 10, 45, 119, 91, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 34, 36, 109, 101, 115, 115, 97, 103, 101, 32, 45, 119, 97, 105, 116, 10, 45, 105, 102, 32, 123, 33, 64, 33, 125, 32, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 64, 123, 33, 44, 98, 125, 38, 49, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 62, 50, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 121, 125, 62, 50, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 120, 125, 60, 52, 48, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 44, 121, 125, 60, 52, 48, 48, 125, 10, 116, 109, 112, 51, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 120, 125, 45, 49, 53, 41, 47, 49, 51, 48, 41, 125, 10, 116, 109, 112, 50, 61, 123, 105, 110, 116, 40, 40, 64, 123, 33, 44, 121, 125, 45, 49, 53, 41, 47, 49, 51, 48, 41, 125, 10, 116, 109, 112, 49, 61, 123, 52, 94, 40, 36, 116, 109, 112, 50, 42, 51, 43, 36, 116, 109, 112, 51, 41, 125, 10, 45, 105, 102, 32, 123, 105, 110, 116, 40, 36, 115, 116, 97, 116, 101, 47, 36, 116, 109, 112, 49, 41, 37, 52, 125, 32, 116, 109, 112, 49, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 116, 109, 112, 49, 61, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 116, 109, 112, 49, 60, 48, 125, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 123, 36, 112, 108, 97, 121, 101, 114, 37, 50, 125, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 34, 49, 51, 48, 42, 34, 36, 116, 109, 112, 51, 34, 32, 43, 32, 49, 53, 43, 63, 40, 45, 53, 44, 53, 41, 34, 125, 44, 92, 10, 123, 34, 49, 51, 48, 42, 34, 36, 116, 109, 112, 50, 34, 32, 43, 32, 49, 53, 43, 63, 40, 45, 53, 44, 53, 41, 34, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 119, 91, 45, 49, 93, 10, 115, 116, 97, 116, 101, 61, 123, 36, 115, 116, 97, 116, 101, 43, 40, 49, 43, 36, 112, 108, 97, 121, 101, 114, 41, 42, 36, 116, 109, 112, 49, 125, 10, 40, 50, 49, 44, 49, 51, 52, 52, 44, 56, 54, 48, 49, 54, 44, 52, 49, 54, 49, 44, 49, 54, 54, 52, 52, 44, 54, 54, 53, 55, 54, 44, 54, 53, 55, 57, 51, 44, 52, 51, 54, 56, 59, 92, 10, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 50, 44, 48, 44, 48, 59, 92, 10, 48, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 59, 92, 10, 51, 44, 51, 44, 51, 44, 52, 44, 52, 44, 52, 44, 53, 44, 54, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 116, 109, 112, 49, 61, 64, 123, 45, 49, 44, 36, 62, 125, 10, 45, 105, 102, 32, 123, 40, 36, 115, 116, 97, 116, 101, 38, 36, 116, 109, 112, 49, 41, 61, 61, 36, 116, 109, 112, 49, 124, 124, 40, 36, 115, 116, 97, 116, 101, 38, 40, 50, 42, 36, 116, 109, 112, 49, 41, 41, 61, 61, 50, 42, 36, 116, 109, 112, 49, 125, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 64, 123, 45, 49, 44, 40, 36, 62, 44, 51, 41, 125, 10, 45, 106, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 123, 49, 51, 48, 42, 64, 123, 45, 51, 44, 40, 36, 62, 44, 49, 41, 125, 43, 63, 40, 45, 53, 44, 53, 41, 125, 44, 92, 10, 123, 49, 51, 48, 42, 64, 123, 45, 51, 44, 40, 36, 62, 44, 50, 41, 125, 43, 63, 40, 45, 53, 44, 53, 41, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 105, 102, 32, 123, 40, 36, 115, 116, 97, 116, 101, 38, 36, 116, 109, 112, 49, 41, 61, 61, 36, 116, 109, 112, 49, 125, 32, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 88, 32, 119, 111, 110, 33, 41, 34, 10, 45, 101, 108, 115, 101, 32, 45, 119, 91, 45, 50, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 79, 32, 119, 111, 110, 33, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 32, 45, 119, 97, 105, 116, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 33, 10, 45, 114, 109, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 112, 108, 97, 121, 101, 114, 61, 123, 40, 36, 112, 108, 97, 121, 101, 114, 43, 49, 41, 37, 50, 125, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 99, 111, 117, 110, 116, 101, 114, 60, 57, 125, 10, 45, 119, 91, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 34, 84, 105, 99, 45, 84, 97, 99, 45, 84, 111, 101, 32, 40, 84, 105, 101, 100, 32, 103, 97, 109, 101, 33, 41, 34, 10, 45, 100, 111, 32, 45, 119, 97, 105, 116, 32, 45, 119, 91, 93, 32, 64, 123, 33, 44, 119, 125, 44, 64, 123, 33, 44, 104, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 33, 10, 45, 119, 91, 93, 32, 48, 32, 45, 114, 109, 32, 45, 118, 32, 43, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 52, 32, 45, 98, 91, 45, 49, 93, 32, 54, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 48, 46, 56, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 58, 10, 45, 45, 102, 91, 45, 49, 93, 32, 49, 45, 105, 32, 45, 45, 110, 91, 45, 50, 93, 32, 36, 50, 44, 50, 53, 53, 32, 45, 45, 110, 91, 45, 51, 93, 32, 36, 51, 44, 50, 53, 53, 32, 45, 110, 91, 45, 52, 93, 32, 36, 49, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 48, 32, 58, 10, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 53, 37, 44, 49, 53, 37, 44, 56, 53, 37, 44, 56, 53, 37, 44, 49, 44, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 53, 37, 44, 56, 53, 37, 44, 56, 53, 37, 44, 49, 53, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 49, 50, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 52, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 52, 48, 44, 52, 48, 44, 49, 54, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 49, 32, 58, 10, 49, 50, 56, 44, 49, 50, 56, 44, 49, 44, 49, 44, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 50, 50, 37, 44, 50, 50, 37, 44, 48, 44, 49, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 49, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 52, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 54, 48, 44, 52, 48, 44, 49, 54, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 50, 32, 58, 10, 51, 57, 49, 44, 51, 57, 49, 44, 49, 44, 49, 44, 34, 33, 40, 120, 37, 49, 51, 48, 41, 32, 124, 124, 32, 33, 40, 121, 37, 49, 51, 48, 41, 34, 32, 45, 114, 91, 45, 49, 93, 32, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 102, 91, 45, 49, 93, 32, 49, 45, 105, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 32, 45, 98, 91, 45, 49, 93, 32, 56, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 46, 53, 32, 45, 110, 91, 45, 49, 93, 32, 50, 50, 48, 44, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 51, 32, 58, 10, 52, 50, 49, 44, 49, 51, 48, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 54, 48, 37, 44, 57, 48, 37, 44, 54, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 123, 63, 40, 45, 54, 44, 54, 41, 125, 44, 49, 44, 49, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 52, 32, 58, 10, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 51, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 50, 45, 45, 49, 93, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 53, 32, 58, 10, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 54, 32, 58, 10, 52, 50, 49, 44, 52, 50, 49, 44, 49, 44, 49, 44, 49, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 48, 37, 44, 49, 44, 48, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 54, 32, 45, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 45, 95, 95, 120, 95, 116, 105, 99, 116, 97, 99, 116, 111, 101, 32, 49, 56, 48, 44, 49, 48, 44, 49, 48, 10, 120, 95, 119, 104, 105, 114, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 36, 123, 49, 61, 48, 46, 50, 125, 62, 61, 48, 10, 45, 101, 91, 93, 32, 34, 92, 110, 10, 45, 45, 45, 45, 45, 45, 32, 70, 114, 97, 99, 116, 97, 108, 32, 119, 104, 105, 114, 108, 32, 100, 101, 109, 111, 32, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 32, 75, 101, 121, 115, 32, 39, 69, 83, 67, 39, 32, 111, 114, 32, 39, 81, 39, 32, 116, 111, 32, 101, 120, 105, 116, 46, 92, 110, 10, 45, 45, 45, 45, 92, 110, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 10, 45, 118, 32, 45, 10, 53, 44, 53, 44, 49, 44, 51, 32, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 32, 91, 45, 49, 93, 32, 45, 119, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 48, 44, 48, 44, 34, 91, 71, 39, 77, 73, 67, 93, 32, 70, 114, 97, 99, 116, 97, 108, 32, 119, 104, 105, 114, 108, 32, 100, 101, 109, 111, 34, 10, 116, 97, 110, 103, 108, 101, 61, 48, 32, 116, 122, 111, 111, 109, 61, 48, 32, 120, 99, 61, 123, 40, 119, 45, 64, 123, 45, 51, 44, 119, 125, 41, 47, 50, 125, 32, 121, 99, 61, 123, 40, 104, 45, 64, 123, 45, 51, 44, 104, 125, 41, 47, 50, 125, 10, 45, 100, 111, 10, 45, 114, 97, 110, 100, 91, 45, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 51, 93, 44, 36, 120, 99, 44, 36, 121, 99, 44, 48, 44, 48, 10, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 93, 32, 123, 56, 42, 115, 105, 110, 40, 36, 116, 97, 110, 103, 108, 101, 41, 125, 44, 48, 44, 48, 44, 123, 119, 47, 50, 43, 63, 40, 45, 50, 44, 50, 41, 125, 44, 123, 104, 47, 50, 125, 44, 123, 49, 46, 48, 51, 43, 48, 46, 48, 50, 42, 115, 105, 110, 40, 36, 116, 122, 111, 111, 109, 41, 125, 10, 116, 97, 110, 103, 108, 101, 61, 123, 36, 116, 97, 110, 103, 108, 101, 43, 48, 46, 48, 48, 49, 125, 32, 116, 122, 111, 111, 109, 61, 123, 36, 116, 122, 111, 111, 109, 43, 48, 46, 48, 50, 125, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 32, 45, 119, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 32, 50, 48, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 33, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 69, 83, 67, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 44, 81, 125, 125, 10, 45, 114, 109, 91, 45, 51, 44, 45, 50, 93, 32, 45, 119, 91, 93, 32, 48, 32, 45, 118, 32, 43, 10, 95, 119, 114, 98, 121, 116, 101, 112, 110, 107, 32, 58, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 49, 125, 46, 112, 110, 107, 10, 95, 120, 112, 105, 110, 107, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 102, 105, 108, 101, 95, 114, 97, 110, 100, 125, 10, 112, 114, 101, 102, 105, 120, 61, 112, 105, 110, 107, 46, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 125, 10, 45, 120, 32, 34, 119, 104, 105, 99, 104, 32, 34, 36, 123, 112, 114, 101, 102, 105, 120, 125, 36, 123, 49, 125, 34, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 45, 105, 102, 32, 123, 64, 123, 125, 33, 61, 48, 125, 32, 112, 114, 101, 102, 105, 120, 61, 34, 34, 32, 45, 120, 32, 34, 119, 104, 105, 99, 104, 32, 34, 36, 49, 34, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 9, 32, 32, 45, 105, 102, 32, 123, 64, 123, 125, 33, 61, 48, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 40, 112, 105, 110, 107, 46, 41, 34, 36, 49, 34, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 80, 65, 84, 72, 44, 32, 115, 116, 97, 116, 117, 115, 32, 61, 32, 34, 64, 123, 125, 34, 33, 33, 32, 82, 101, 116, 117, 114, 110, 105, 110, 103, 33, 33, 92, 110, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 32, 45, 120, 32, 36, 123, 112, 114, 101, 102, 105, 120, 125, 36, 123, 49, 125, 34, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 112, 110, 107, 32, 36, 50, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 95, 111, 46, 112, 110, 107, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 45, 101, 108, 115, 101, 10, 45, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 32, 45, 120, 32, 36, 49, 34, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 112, 110, 107, 32, 36, 50, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 95, 111, 46, 112, 110, 107, 34, 10, 45, 101, 110, 100, 105, 102, 10, 115, 116, 97, 116, 117, 115, 61, 64, 123, 125, 10, 45, 102, 105, 108, 101, 95, 114, 109, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 112, 110, 107, 10, 45, 105, 102, 32, 123, 36, 115, 116, 97, 116, 117, 115, 33, 61, 48, 92, 32, 38, 38, 92, 32, 123, 36, 49, 39, 33, 61, 39, 115, 101, 117, 105, 108, 97, 117, 116, 111, 125, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 32, 83, 116, 97, 116, 117, 115, 32, 105, 115, 32, 34, 36, 123, 115, 116, 97, 116, 117, 115, 125, 34, 46, 34, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 108, 105, 102, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 105, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 102, 105, 108, 101, 95, 114, 109, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 95, 111, 46, 112, 110, 107, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 101, 114, 114, 111, 114, 32, 34, 101, 120, 101, 99, 32, 69, 114, 114, 111, 114, 33, 33, 34, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 112, 105, 110, 107, 115, 32, 58, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 32, 45, 95, 120, 112, 105, 110, 107, 32, 36, 49, 44, 34, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 95, 120, 102, 114, 97, 109, 101, 32, 58, 10, 45, 108, 105, 110, 101, 32, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 44, 48, 37, 32, 45, 108, 105, 110, 101, 32, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 108, 105, 110, 101, 32, 48, 37, 44, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 32, 45, 108, 105, 110, 101, 32, 49, 48, 48, 37, 44, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 111, 117, 116, 112, 117, 116, 95, 112, 105, 110, 107, 51, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 36, 63, 32, 97, 115, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 32, 40, 105, 110, 32, 51, 100, 32, 112, 105, 110, 107, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 111, 102, 32, 80, 53, 45, 99, 111, 100, 101, 100, 32, 80, 80, 77, 32, 102, 111, 114, 109, 97, 116, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 48, 61, 34, 36, 49, 34, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 61, 64, 123, 45, 102, 105, 108, 101, 110, 97, 109, 101, 92, 32, 34, 92, 34, 36, 49, 92, 34, 34, 44, 36, 62, 125, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 32, 45, 111, 91, 45, 49, 93, 32, 112, 112, 109, 58, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 125, 10, 45, 101, 108, 115, 101, 10, 40, 123, 39, 80, 53, 92, 110, 123, 119, 125, 92, 32, 123, 104, 125, 92, 32, 123, 100, 125, 92, 110, 50, 53, 53, 92, 110, 39, 125, 41, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 32, 45, 121, 91, 45, 49, 93, 32, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 36, 62, 125, 44, 117, 99, 104, 97, 114, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 110, 107, 32, 58, 32, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 62, 49, 125, 32, 40, 123, 34, 39, 36, 123, 50, 45, 45, 49, 125, 39, 34, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 44, 39, 125, 44, 123, 34, 39, 32, 39, 34, 125, 32, 112, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 112, 61, 34, 32, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 97, 108, 108, 32, 112, 105, 110, 107, 32, 112, 97, 99, 107, 97, 103, 101, 32, 119, 105, 116, 104, 32, 99, 109, 100, 58, 32, 92, 34, 36, 49, 36, 63, 32, 34, 36, 112, 34, 36, 63, 92, 34, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 36, 49, 44, 36, 112, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 110, 107, 95, 103, 114, 97, 121, 115, 107, 101, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 103, 114, 97, 121, 115, 107, 101, 108, 34, 44, 34, 110, 117, 108, 108, 32, 36, 49, 32, 36, 50, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 105, 108, 116, 101, 114, 32, 98, 121, 32, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 110, 107, 95, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 102, 105, 108, 116, 101, 114, 32, 98, 121, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 104, 101, 105, 103, 104, 116, 32, 36, 50, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 110, 107, 95, 104, 116, 107, 101, 114, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 104, 116, 107, 101, 114, 110, 36, 50, 44, 34, 110, 117, 108, 108, 32, 36, 49, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 108, 118, 107, 101, 114, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 34, 34, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 108, 118, 107, 101, 114, 110, 36, 123, 50, 125, 44, 34, 110, 117, 108, 108, 32, 36, 49, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 114, 101, 103, 95, 109, 105, 110, 105, 109, 97, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 114, 101, 103, 105, 111, 110, 97, 108, 32, 109, 105, 110, 105, 109, 97, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 32, 45, 95, 120, 112, 105, 110, 107, 32, 34, 109, 105, 110, 105, 109, 97, 34, 44, 34, 36, 49, 34, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 52, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 117, 114, 118, 105, 108, 105, 110, 101, 97, 114, 32, 98, 105, 110, 97, 114, 121, 32, 115, 107, 101, 108, 101, 116, 111, 110, 32, 103, 117, 105, 100, 101, 100, 32, 98, 121, 32, 97, 32, 112, 114, 105, 111, 114, 105, 116, 121, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 105, 109, 97, 103, 101, 32, 102, 114, 111, 109, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 112, 114, 105, 111, 61, 36, 49, 44, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 61, 36, 50, 44, 32, 105, 110, 104, 105, 98, 105, 116, 61, 36, 51, 46, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 99, 117, 114, 118, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 101, 110, 100, 34, 44, 34, 36, 49, 32, 36, 50, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 52, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 101, 116, 111, 110, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 45, 49, 125, 44, 36, 123, 51, 61, 34, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 95, 120, 102, 114, 97, 109, 101, 32, 45, 95, 120, 112, 105, 110, 107, 115, 32, 34, 115, 107, 101, 108, 112, 97, 114, 34, 44, 34, 36, 49, 32, 36, 50, 32, 36, 51, 34, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 32, 124, 124, 32, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 36, 49, 32, 105, 110, 118, 101, 114, 115, 105, 111, 110, 32, 36, 50, 32, 104, 101, 105, 103, 104, 116, 32, 36, 51, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 61, 61, 49, 125, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 52, 125, 61, 61, 52, 32, 124, 124, 32, 36, 49, 61, 61, 56, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 32, 109, 97, 120, 40, 109, 105, 110, 40, 105, 44, 50, 53, 53, 41, 44, 48, 41, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 36, 49, 44, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 61, 61, 54, 32, 124, 124, 32, 36, 49, 61, 61, 50, 54, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 32, 109, 97, 120, 40, 109, 105, 110, 40, 105, 44, 50, 53, 53, 41, 44, 48, 41, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 10, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 36, 49, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 108, 101, 114, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 91, 71, 39, 77, 73, 67, 32, 65, 108, 101, 114, 116, 93, 125, 44, 36, 123, 50, 61, 84, 104, 105, 115, 32, 105, 115, 32, 97, 110, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 125, 44, 36, 123, 51, 61, 79, 75, 125, 34, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 116, 105, 116, 108, 101, 32, 39, 36, 49, 39, 44, 32, 109, 101, 115, 115, 97, 103, 101, 32, 39, 36, 50, 39, 32, 97, 110, 100, 32, 98, 117, 116, 116, 111, 110, 115, 32, 39, 36, 123, 51, 45, 45, 49, 125, 39, 46, 34, 10, 45, 101, 108, 115, 101, 10, 45, 101, 91, 48, 45, 45, 51, 93, 32, 34, 68, 105, 115, 112, 108, 97, 121, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 44, 32, 119, 105, 116, 104, 32, 116, 105, 116, 108, 101, 32, 39, 36, 49, 39, 44, 32, 109, 101, 115, 115, 97, 103, 101, 32, 39, 36, 50, 39, 32, 97, 110, 100, 32, 98, 117, 116, 116, 111, 110, 115, 32, 39, 36, 123, 51, 45, 45, 49, 125, 39, 46, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 108, 111, 103, 111, 61, 32, 45, 101, 108, 115, 101, 32, 108, 111, 103, 111, 61, 91, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 108, 36, 108, 111, 103, 111, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 115, 101, 10, 54, 52, 44, 54, 52, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 53, 48, 37, 44, 49, 48, 37, 44, 49, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 49, 32, 45, 98, 32, 51, 32, 45, 103, 101, 32, 53, 48, 37, 10, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 53, 32, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 61, 61, 91, 45, 49, 93, 32, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 52, 55, 37, 44, 52, 51, 37, 44, 53, 51, 37, 44, 52, 51, 37, 44, 53, 51, 37, 44, 54, 54, 37, 44, 52, 55, 37, 44, 54, 54, 37, 44, 49, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 55, 54, 37, 44, 50, 44, 49, 44, 48, 10, 45, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 45, 91, 45, 49, 93, 32, 39, 51, 42, 40, 121, 45, 104, 47, 50, 41, 39, 10, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 42, 91, 48, 93, 32, 50, 53, 53, 32, 45, 114, 118, 32, 45, 97, 32, 99, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 51, 44, 51, 44, 49, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 50, 48, 48, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 45, 49, 44, 50, 10, 36, 61, 97, 114, 103, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 50, 125, 32, 108, 97, 98, 101, 108, 61, 36, 123, 97, 114, 103, 123, 36, 62, 43, 51, 125, 125, 32, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 36, 108, 97, 98, 101, 108, 44, 48, 44, 48, 44, 49, 52, 44, 49, 44, 45, 50, 48, 48, 32, 45, 100, 111, 110, 101, 10, 45, 114, 91, 94, 48, 93, 32, 123, 109, 105, 110, 40, 49, 50, 56, 44, 109, 97, 120, 40, 54, 52, 44, 64, 123, 45, 109, 97, 120, 95, 119, 91, 94, 48, 93, 125, 43, 49, 50, 41, 41, 125, 44, 123, 109, 105, 110, 40, 52, 56, 44, 109, 97, 120, 40, 50, 52, 44, 64, 123, 45, 109, 97, 120, 95, 104, 91, 94, 48, 93, 125, 43, 49, 50, 41, 41, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 43, 91, 94, 48, 93, 32, 50, 48, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 94, 48, 93, 10, 45, 109, 118, 91, 48, 93, 32, 64, 35, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 39, 40, 121, 45, 104, 47, 50, 41, 39, 32, 45, 42, 91, 45, 49, 93, 32, 45, 50, 32, 45, 99, 91, 45, 49, 93, 32, 45, 51, 48, 44, 51, 48, 32, 45, 43, 91, 48, 45, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 91, 94, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 50, 44, 123, 104, 45, 51, 125, 44, 123, 119, 45, 51, 125, 44, 123, 104, 45, 51, 125, 44, 49, 44, 49, 53, 48, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 119, 45, 51, 125, 44, 123, 104, 45, 51, 125, 44, 123, 119, 45, 51, 125, 44, 50, 44, 49, 44, 49, 53, 48, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 51, 125, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 123, 104, 45, 51, 125, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 53, 125, 44, 49, 44, 48, 120, 65, 65, 65, 65, 65, 65, 65, 65, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 49, 53, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 52, 44, 52, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 53, 125, 44, 49, 44, 48, 120, 65, 65, 65, 65, 65, 65, 65, 65, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 49, 44, 123, 104, 45, 50, 125, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 49, 44, 49, 53, 48, 32, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 44, 123, 119, 45, 50, 125, 44, 49, 44, 49, 44, 49, 53, 48, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 123, 119, 45, 50, 125, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 48, 44, 123, 104, 45, 50, 125, 44, 49, 44, 50, 53, 53, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 48, 93, 32, 49, 44, 48, 44, 48, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 45, 108, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 51, 32, 45, 115, 104, 32, 49, 44, 49, 48, 48, 37, 32, 45, 45, 91, 53, 48, 37, 45, 45, 49, 93, 32, 50, 48, 48, 32, 45, 114, 109, 91, 53, 48, 37, 45, 45, 49, 93, 32, 45, 102, 114, 97, 109, 101, 32, 56, 44, 56, 44, 48, 10, 45, 105, 102, 32, 123, 64, 35, 60, 54, 125, 32, 45, 97, 91, 94, 45, 49, 93, 32, 120, 32, 45, 101, 108, 115, 101, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 94, 45, 49, 93, 32, 44, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 36, 50, 34, 44, 48, 44, 48, 44, 49, 52, 44, 49, 44, 48, 44, 45, 50, 48, 48, 44, 45, 50, 48, 48, 44, 45, 50, 48, 48, 32, 45, 114, 91, 45, 49, 93, 32, 123, 119, 43, 49, 54, 125, 44, 123, 104, 43, 56, 125, 44, 49, 44, 52, 44, 48, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 44, 48, 46, 53, 32, 45, 114, 118, 32, 45, 97, 32, 121, 44, 48, 46, 53, 10, 45, 115, 104, 32, 49, 44, 49, 48, 48, 37, 32, 45, 43, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 108, 105, 110, 101, 32, 48, 44, 48, 44, 123, 119, 45, 50, 125, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 108, 105, 110, 101, 32, 48, 44, 48, 44, 48, 44, 123, 104, 45, 50, 125, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 40, 48, 44, 123, 119, 45, 49, 125, 41, 32, 40, 48, 59, 64, 123, 45, 50, 44, 104, 45, 49, 125, 41, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 123, 104, 47, 50, 125, 44, 50, 44, 49, 44, 49, 44, 45, 49, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 51, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 45, 51, 44, 119, 125, 32, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 62, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 62, 44, 49, 41, 125, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 120, 48, 43, 64, 123, 48, 44, 119, 125, 45, 49, 125, 44, 123, 36, 121, 48, 43, 64, 123, 48, 44, 104, 125, 45, 49, 125, 44, 49, 44, 123, 49, 43, 36, 62, 125, 32, 45, 100, 111, 110, 101, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 57, 32, 45, 105, 102, 32, 123, 33, 64, 123, 33, 36, 62, 125, 125, 32, 100, 105, 115, 112, 61, 36, 62, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 100, 105, 115, 112, 41, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 67, 97, 110, 110, 111, 116, 32, 111, 112, 101, 110, 32, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 102, 111, 114, 32, 97, 108, 101, 114, 116, 32, 98, 111, 120, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 105, 102, 40, 36, 35, 61, 61, 51, 44, 48, 44, 45, 49, 41, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 45, 49, 10, 45, 100, 111, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 50, 10, 45, 105, 102, 32, 123, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 125, 10, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 99, 108, 105, 99, 107, 101, 100, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 99, 108, 105, 99, 107, 101, 100, 44, 49, 41, 125, 10, 45, 45, 115, 104, 91, 36, 99, 108, 105, 99, 107, 101, 100, 93, 32, 55, 44, 57, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 48, 44, 36, 121, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 115, 101, 108, 101, 99, 116, 101, 100, 62, 61, 48, 125, 10, 120, 48, 61, 64, 123, 45, 51, 44, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 44, 48, 41, 125, 32, 121, 48, 61, 64, 123, 45, 51, 44, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 44, 49, 41, 125, 10, 45, 45, 115, 104, 91, 36, 115, 101, 108, 101, 99, 116, 101, 100, 93, 32, 52, 44, 54, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 120, 48, 44, 36, 121, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 36, 100, 105, 115, 112, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 34, 36, 49, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 119, 97, 105, 116, 10, 120, 109, 61, 64, 123, 33, 36, 100, 105, 115, 112, 44, 120, 125, 32, 121, 109, 61, 64, 123, 33, 36, 100, 105, 115, 112, 44, 121, 125, 32, 98, 109, 61, 123, 64, 123, 33, 36, 100, 105, 115, 112, 44, 98, 125, 38, 49, 125, 32, 118, 97, 108, 61, 123, 105, 40, 36, 120, 109, 44, 36, 121, 109, 44, 48, 44, 51, 41, 125, 10, 45, 105, 102, 32, 123, 36, 98, 109, 34, 32, 38, 38, 32, 34, 36, 118, 97, 108, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 123, 36, 118, 97, 108, 45, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 98, 109, 34, 32, 38, 38, 32, 34, 33, 36, 118, 97, 108, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 36, 99, 108, 105, 99, 107, 101, 100, 32, 99, 108, 105, 99, 107, 101, 100, 61, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 33, 36, 98, 109, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 62, 61, 48, 34, 32, 38, 38, 32, 34, 36, 99, 108, 105, 99, 107, 101, 100, 61, 61, 36, 118, 97, 108, 45, 49, 125, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 33, 36, 100, 105, 115, 112, 44, 65, 82, 82, 79, 87, 82, 73, 71, 72, 84, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 43, 49, 41, 37, 64, 123, 45, 50, 44, 119, 125, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 64, 123, 33, 36, 100, 105, 115, 112, 44, 65, 82, 82, 79, 87, 76, 69, 70, 84, 125, 32, 115, 101, 108, 101, 99, 116, 101, 100, 61, 123, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 45, 49, 41, 37, 64, 123, 45, 50, 44, 119, 125, 43, 40, 36, 115, 101, 108, 101, 99, 116, 101, 100, 61, 61, 45, 49, 41, 125, 32, 45, 119, 97, 105, 116, 32, 45, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 115, 101, 108, 101, 99, 116, 101, 100, 62, 61, 48, 34, 32, 38, 38, 32, 34, 64, 123, 33, 36, 100, 105, 115, 112, 44, 69, 78, 84, 69, 82, 125, 125, 32, 99, 108, 105, 99, 107, 101, 100, 61, 36, 115, 101, 108, 101, 99, 116, 101, 100, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 64, 123, 33, 36, 100, 105, 115, 112, 125, 34, 32, 38, 38, 32, 34, 33, 64, 123, 33, 36, 100, 105, 115, 112, 44, 69, 83, 67, 125, 125, 10, 45, 119, 36, 100, 105, 115, 112, 32, 48, 32, 45, 114, 109, 32, 45, 117, 32, 36, 99, 108, 105, 99, 107, 101, 100, 10, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 97, 114, 103, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 97, 114, 103, 32, 45, 117, 32, 36, 123, 97, 114, 103, 123, 49, 43, 40, 36, 49, 41, 125, 125, 32, 45, 118, 32, 43, 10, 97, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 118, 32, 45, 32, 45, 45, 122, 91, 45, 49, 93, 32, 36, 123, 49, 45, 51, 125, 44, 36, 123, 49, 45, 51, 125, 32, 45, 117, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 111, 114, 100, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 97, 117, 116, 111, 125, 10, 45, 118, 32, 45, 10, 105, 115, 95, 97, 117, 116, 111, 61, 123, 36, 49, 39, 61, 61, 39, 97, 117, 116, 111, 125, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 10, 118, 97, 108, 117, 101, 61, 123, 105, 40, 119, 45, 49, 44, 104, 45, 49, 44, 100, 45, 49, 41, 125, 32, 45, 45, 61, 91, 45, 49, 93, 32, 123, 49, 43, 36, 118, 97, 108, 117, 101, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 61, 91, 45, 49, 93, 32, 36, 118, 97, 108, 117, 101, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 120, 48, 61, 123, 36, 119, 45, 119, 125, 32, 121, 48, 61, 123, 36, 104, 45, 104, 125, 32, 122, 48, 61, 123, 36, 100, 45, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 95, 97, 117, 116, 111, 99, 114, 111, 112, 36, 105, 115, 95, 97, 117, 116, 111, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 49, 125, 10, 120, 49, 61, 123, 36, 120, 48, 43, 119, 45, 49, 125, 32, 121, 49, 61, 123, 36, 121, 48, 43, 104, 45, 49, 125, 32, 122, 49, 61, 123, 36, 122, 48, 43, 100, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 117, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 122, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 122, 49, 10, 45, 118, 32, 43, 10, 95, 97, 117, 116, 111, 99, 114, 111, 112, 48, 32, 58, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 36, 42, 10, 95, 97, 117, 116, 111, 99, 114, 111, 112, 49, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 42, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 10, 97, 118, 101, 114, 97, 103, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 118, 32, 45, 10, 114, 101, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 45, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 123, 49, 43, 36, 62, 125, 44, 123, 49, 43, 36, 62, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 123, 105, 97, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 117, 32, 123, 105, 97, 125, 36, 114, 101, 115, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 98, 97, 115, 101, 110, 97, 109, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 117, 110, 117, 115, 101, 100, 125, 10, 45, 118, 32, 45, 10, 45, 108, 91, 93, 32, 40, 123, 34, 39, 36, 49, 39, 34, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 57, 50, 44, 52, 55, 32, 45, 115, 32, 43, 44, 52, 55, 10, 45, 105, 102, 32, 123, 105, 61, 61, 52, 55, 125, 32, 45, 97, 32, 121, 32, 36, 50, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 117, 32, 34, 34, 10, 45, 101, 108, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 36, 50, 61, 34, 34, 10, 45, 101, 108, 115, 101, 32, 45, 97, 91, 94, 45, 49, 93, 32, 121, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 36, 50, 61, 64, 123, 45, 50, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 98, 105, 110, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 98, 105, 110, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 98, 105, 110, 97, 114, 121, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 10, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 98, 105, 110, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 98, 105, 110, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 52, 57, 44, 40, 105, 45, 52, 56, 41, 42, 50, 94, 40, 119, 45, 49, 45, 120, 41, 44, 110, 97, 110, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 99, 111, 109, 112, 114, 101, 115, 115, 95, 103, 109, 105, 99, 32, 58, 10, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 104, 101, 97, 100, 95, 115, 116, 100, 61, 123, 39, 34, 35, 64, 103, 109, 105, 99, 34, 39, 125, 10, 45, 115, 32, 45, 44, 49, 48, 32, 78, 61, 64, 35, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 33, 40, 36, 62, 37, 49, 48, 48, 41, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 47, 36, 78, 42, 49, 48, 48, 41, 125, 37, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 10, 104, 101, 97, 100, 61, 64, 123, 45, 49, 44, 48, 45, 123, 109, 105, 110, 40, 53, 44, 104, 45, 49, 41, 125, 125, 10, 45, 105, 102, 32, 123, 123, 36, 104, 101, 97, 100, 39, 33, 61, 39, 36, 104, 101, 97, 100, 95, 115, 116, 100, 125, 34, 32, 124, 124, 32, 34, 40, 105, 40, 48, 44, 54, 41, 33, 61, 123, 39, 34, 32, 34, 39, 125, 34, 32, 38, 38, 32, 34, 105, 40, 48, 44, 54, 41, 33, 61, 123, 39, 58, 39, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 32, 43, 44, 51, 50, 44, 51, 53, 32, 45, 105, 102, 32, 123, 64, 35, 62, 50, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 32, 45, 105, 102, 32, 123, 33, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 97, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 49, 48, 48, 37, 34, 10, 99, 111, 109, 112, 114, 101, 115, 115, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 32, 58, 10, 45, 101, 91, 93, 32, 34, 34, 32, 45, 118, 32, 45, 10, 104, 101, 97, 100, 95, 115, 116, 100, 61, 123, 39, 34, 35, 64, 103, 105, 109, 112, 34, 39, 125, 10, 45, 115, 32, 45, 44, 49, 48, 32, 78, 61, 64, 35, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 33, 40, 36, 62, 37, 49, 48, 48, 41, 125, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 47, 36, 78, 42, 49, 48, 48, 41, 125, 37, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 10, 104, 101, 97, 100, 61, 64, 123, 45, 49, 44, 48, 45, 123, 109, 105, 110, 40, 53, 44, 104, 45, 49, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 104, 101, 97, 100, 39, 33, 61, 39, 36, 104, 101, 97, 100, 95, 115, 116, 100, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 32, 43, 44, 51, 50, 44, 51, 53, 32, 45, 105, 102, 32, 123, 64, 35, 62, 50, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 32, 45, 105, 102, 32, 123, 33, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 49, 48, 41, 32, 45, 97, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 114, 32, 80, 114, 111, 99, 101, 115, 115, 32, 58, 32, 49, 48, 48, 37, 34, 10, 100, 101, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 44, 10, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 44, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 123, 94, 48, 125, 125, 34, 39, 46, 34, 10, 100, 101, 99, 50, 115, 116, 114, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 96, 36, 123, 94, 48, 125, 96, 125, 32, 45, 118, 32, 43, 10, 100, 101, 99, 50, 98, 105, 110, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 98, 105, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 123, 36, 114, 37, 50, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 50, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 100, 101, 99, 50, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 104, 101, 120, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 64, 123, 45, 95, 100, 101, 99, 50, 104, 101, 120, 95, 123, 36, 114, 37, 49, 54, 125, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 49, 54, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 48, 32, 58, 32, 45, 117, 32, 48, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 32, 58, 32, 45, 117, 32, 49, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 50, 32, 58, 32, 45, 117, 32, 50, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 51, 32, 58, 32, 45, 117, 32, 51, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 52, 32, 58, 32, 45, 117, 32, 52, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 53, 32, 58, 32, 45, 117, 32, 53, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 54, 32, 58, 32, 45, 117, 32, 54, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 55, 32, 58, 32, 45, 117, 32, 55, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 56, 32, 58, 32, 45, 117, 32, 56, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 57, 32, 58, 32, 45, 117, 32, 57, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 48, 32, 58, 32, 45, 117, 32, 97, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 49, 32, 58, 32, 45, 117, 32, 98, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 50, 32, 58, 32, 45, 117, 32, 99, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 51, 32, 58, 32, 45, 117, 32, 100, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 52, 32, 58, 32, 45, 117, 32, 101, 10, 95, 100, 101, 99, 50, 104, 101, 120, 95, 49, 53, 32, 58, 32, 45, 117, 32, 102, 10, 100, 101, 99, 50, 111, 99, 116, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 100, 101, 99, 50, 111, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 114, 101, 115, 61, 34, 34, 32, 114, 61, 123, 97, 98, 115, 40, 36, 49, 41, 125, 10, 45, 100, 111, 32, 114, 101, 115, 61, 123, 36, 114, 37, 56, 125, 36, 114, 101, 115, 32, 114, 61, 123, 105, 110, 116, 40, 36, 114, 47, 56, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 36, 114, 10, 45, 117, 32, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 49, 62, 61, 48, 41, 44, 45, 44, 34, 34, 125, 36, 114, 101, 115, 10, 102, 97, 99, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 105, 115, 105, 110, 116, 40, 36, 49, 41, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 114, 101, 115, 61, 123, 36, 114, 101, 115, 42, 40, 36, 62, 43, 49, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 102, 105, 108, 101, 95, 109, 118, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 111, 118, 101, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 32, 116, 111, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 39, 36, 50, 39, 46, 34, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 45, 120, 32, 34, 109, 111, 118, 101, 32, 34, 36, 49, 34, 32, 34, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 120, 32, 34, 109, 118, 32, 34, 36, 49, 34, 32, 34, 36, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 102, 105, 108, 101, 95, 114, 97, 110, 100, 32, 58, 10, 45, 118, 32, 45, 10, 45, 100, 111, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 64, 123, 45, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 125, 103, 109, 105, 99, 64, 37, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 57, 41, 41, 125, 10, 45, 119, 104, 105, 108, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 10, 45, 117, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 10, 45, 118, 32, 43, 10, 102, 105, 108, 101, 95, 114, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 10, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 36, 49, 34, 32, 100, 105, 114, 61, 64, 123, 45, 49, 44, 102, 125, 32, 98, 97, 115, 101, 61, 64, 123, 45, 49, 44, 98, 125, 32, 101, 120, 116, 61, 64, 123, 45, 49, 44, 120, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 99, 111, 109, 61, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 100, 105, 114, 41, 125, 32, 99, 111, 109, 61, 34, 99, 100, 32, 92, 34, 34, 36, 100, 105, 114, 34, 92, 92, 92, 34, 32, 38, 38, 32, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 101, 120, 116, 41, 125, 32, 99, 111, 109, 61, 36, 123, 99, 111, 109, 125, 34, 100, 101, 108, 32, 92, 34, 34, 36, 98, 97, 115, 101, 46, 36, 101, 120, 116, 34, 92, 34, 34, 32, 45, 101, 108, 115, 101, 32, 99, 111, 109, 61, 36, 123, 99, 111, 109, 125, 34, 100, 101, 108, 32, 92, 34, 34, 36, 98, 97, 115, 101, 34, 92, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 120, 32, 36, 99, 111, 109, 10, 45, 101, 108, 115, 101, 10, 45, 120, 32, 34, 114, 109, 32, 45, 102, 32, 92, 34, 36, 49, 92, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 45, 117, 32, 34, 92, 92, 34, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 47, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 102, 105, 108, 101, 110, 97, 109, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 100, 101, 102, 97, 117, 108, 116, 125, 34, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 35, 61, 61, 49, 125, 32, 45, 117, 32, 34, 36, 49, 34, 10, 45, 101, 108, 115, 101, 10, 40, 36, 123, 50, 45, 45, 49, 125, 41, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 34, 36, 49, 34, 32, 45, 117, 32, 64, 123, 45, 49, 44, 102, 125, 64, 123, 45, 49, 44, 98, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 45, 117, 32, 64, 123, 125, 95, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 48, 41, 37, 49, 48, 125, 123, 105, 110, 116, 40, 105, 47, 49, 48, 41, 37, 49, 48, 125, 123, 105, 37, 49, 48, 125, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 64, 123, 45, 49, 44, 120, 125, 39, 125, 41, 125, 32, 45, 117, 32, 64, 123, 125, 46, 64, 123, 45, 49, 44, 120, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 36, 51, 42, 36, 50, 62, 36, 49, 125, 32, 45, 117, 32, 123, 105, 110, 116, 40, 36, 51, 42, 36, 50, 41, 125, 44, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 49, 44, 123, 105, 110, 116, 40, 36, 49, 47, 36, 51, 41, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 102, 105, 116, 115, 99, 114, 101, 101, 110, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 48, 32, 38, 38, 32, 36, 50, 62, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 48, 34, 10, 45, 118, 32, 45, 10, 119, 61, 123, 105, 102, 40, 36, 51, 62, 49, 44, 36, 49, 43, 36, 51, 44, 36, 49, 41, 125, 10, 104, 61, 123, 105, 102, 40, 36, 51, 62, 49, 44, 36, 50, 43, 36, 51, 44, 36, 50, 41, 125, 10, 77, 119, 61, 123, 105, 110, 116, 40, 48, 46, 56, 53, 42, 64, 123, 33, 44, 117, 125, 41, 125, 10, 77, 104, 61, 123, 105, 110, 116, 40, 48, 46, 56, 53, 42, 64, 123, 33, 44, 118, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 119, 60, 49, 50, 56, 125, 32, 104, 61, 123, 105, 110, 116, 40, 36, 104, 42, 49, 50, 56, 47, 36, 119, 41, 125, 32, 119, 61, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 60, 49, 50, 56, 125, 32, 119, 61, 123, 105, 110, 116, 40, 36, 119, 42, 49, 50, 56, 47, 36, 104, 41, 125, 32, 104, 61, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 119, 62, 36, 77, 119, 125, 32, 104, 61, 123, 109, 97, 120, 40, 49, 44, 105, 110, 116, 40, 36, 104, 42, 36, 77, 119, 47, 36, 119, 41, 41, 125, 32, 119, 61, 36, 77, 119, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 104, 62, 36, 77, 104, 125, 32, 119, 61, 123, 109, 97, 120, 40, 49, 44, 105, 110, 116, 40, 36, 119, 42, 36, 77, 104, 47, 36, 104, 41, 41, 125, 32, 104, 61, 36, 77, 119, 32, 45, 101, 110, 100, 105, 102, 10, 119, 61, 123, 109, 97, 120, 40, 36, 119, 44, 49, 50, 56, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 49, 50, 56, 41, 125, 10, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 118, 32, 43, 10, 103, 99, 100, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 49, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 50, 41, 32, 38, 38, 32, 36, 49, 42, 36, 50, 33, 61, 48, 34, 10, 45, 118, 32, 45, 32, 45, 95, 103, 99, 100, 32, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 41, 125, 44, 123, 109, 105, 110, 40, 97, 98, 115, 40, 36, 49, 41, 44, 97, 98, 115, 40, 36, 50, 41, 41, 125, 32, 45, 118, 32, 43, 10, 95, 103, 99, 100, 32, 58, 10, 114, 61, 123, 36, 49, 37, 36, 50, 125, 32, 45, 105, 102, 32, 36, 114, 32, 45, 117, 32, 64, 123, 45, 95, 103, 99, 100, 92, 32, 36, 50, 44, 36, 114, 125, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 104, 101, 120, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 115, 44, 34, 34, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 10, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 104, 101, 120, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 104, 101, 120, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 53, 55, 44, 105, 45, 52, 56, 44, 105, 102, 40, 105, 62, 61, 57, 55, 32, 38, 38, 32, 105, 60, 61, 49, 48, 50, 44, 105, 45, 56, 55, 44, 110, 97, 110, 41, 41, 42, 49, 54, 94, 40, 119, 45, 49, 45, 120, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 104, 101, 120, 50, 115, 116, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 34, 36, 49, 34, 41, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 40, 123, 39, 36, 42, 39, 125, 41, 10, 45, 105, 102, 32, 123, 119, 60, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 50, 44, 123, 119, 47, 50, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 44, 105, 45, 56, 55, 44, 105, 45, 52, 56, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 61, 61, 48, 44, 105, 42, 49, 54, 43, 105, 40, 120, 43, 49, 41, 44, 48, 41, 39, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 48, 10, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 105, 109, 103, 50, 115, 116, 114, 32, 58, 10, 45, 118, 32, 45, 10, 45, 117, 32, 34, 40, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 115, 125, 32, 99, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 100, 125, 32, 122, 61, 36, 62, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 32, 121, 61, 36, 62, 10, 45, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 44, 36, 121, 44, 36, 122, 44, 36, 99, 44, 49, 48, 48, 37, 44, 36, 121, 44, 36, 122, 44, 36, 99, 10, 45, 117, 32, 64, 123, 125, 64, 45, 49, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 121, 33, 61, 104, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 59, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 32, 64, 123, 125, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 122, 33, 61, 100, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 47, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 99, 33, 61, 115, 45, 49, 125, 32, 45, 117, 32, 64, 123, 125, 94, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 117, 32, 64, 123, 125, 34, 41, 34, 10, 45, 118, 32, 43, 10, 105, 109, 103, 50, 116, 101, 120, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 32, 125, 34, 10, 45, 118, 32, 45, 32, 45, 45, 108, 32, 45, 115, 32, 121, 32, 45, 115, 32, 45, 44, 48, 32, 45, 121, 32, 120, 32, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 105, 91, 49, 45, 45, 50, 93, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 32, 120, 32, 45, 117, 32, 64, 123, 48, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 32, 45, 118, 32, 43, 10, 105, 109, 103, 56, 50, 104, 101, 120, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 36, 63, 32, 105, 110, 116, 111, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 46, 34, 10, 45, 118, 32, 45, 32, 45, 109, 111, 100, 32, 50, 53, 54, 32, 45, 121, 32, 121, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 102, 91, 36, 62, 93, 32, 39, 118, 61, 105, 110, 116, 40, 105, 41, 38, 49, 53, 59, 118, 43, 105, 102, 40, 118, 60, 49, 48, 44, 52, 56, 44, 56, 55, 41, 39, 10, 45, 102, 91, 36, 62, 93, 32, 39, 118, 61, 105, 110, 116, 40, 105, 41, 62, 62, 52, 59, 118, 43, 105, 102, 40, 118, 60, 49, 48, 44, 52, 56, 44, 56, 55, 41, 39, 10, 45, 97, 91, 36, 62, 44, 45, 49, 93, 32, 120, 10, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 104, 101, 120, 50, 105, 109, 103, 56, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 36, 63, 32, 40, 97, 115, 99, 105, 105, 45, 101, 110, 99, 111, 100, 101, 100, 41, 32, 105, 110, 116, 111, 32, 56, 98, 105, 116, 115, 45, 118, 97, 108, 117, 101, 100, 32, 118, 101, 99, 116, 111, 114, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 102, 91, 45, 50, 44, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 44, 105, 45, 56, 55, 44, 105, 45, 52, 56, 41, 39, 32, 45, 42, 91, 45, 50, 93, 32, 49, 54, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 105, 115, 95, 51, 100, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 48, 10, 45, 105, 102, 32, 64, 35, 32, 114, 101, 115, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 43, 51, 100, 32, 48, 32, 45, 111, 110, 102, 97, 105, 108, 32, 114, 101, 115, 61, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 45, 49, 44, 123, 39, 34, 36, 49, 34, 39, 125, 41, 61, 61, 51, 55, 125, 32, 45, 118, 32, 43, 10, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 110, 97, 114, 103, 40, 36, 79, 83, 41, 61, 61, 49, 34, 32, 38, 38, 32, 34, 110, 97, 114, 103, 40, 36, 87, 73, 78, 68, 73, 82, 41, 61, 61, 49, 125, 32, 45, 118, 32, 43, 10, 109, 97, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 45, 91, 45, 49, 93, 32, 64, 123, 45, 109, 101, 100, 91, 45, 49, 93, 125, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 109, 101, 100, 91, 45, 49, 93, 32, 45, 117, 32, 123, 49, 46, 52, 56, 50, 54, 42, 64, 123, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 119, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 49, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 50, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 51, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 52, 44, 64, 123, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 50, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 119, 104, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 51, 32, 45, 118, 32, 43, 10, 109, 97, 120, 95, 119, 104, 100, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 52, 32, 45, 118, 32, 43, 10, 95, 109, 97, 120, 95, 119, 104, 100, 115, 32, 58, 10, 119, 61, 48, 32, 104, 61, 48, 32, 100, 61, 48, 32, 115, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 109, 97, 120, 40, 36, 119, 44, 119, 41, 125, 10, 104, 61, 123, 109, 97, 120, 40, 36, 104, 44, 104, 41, 125, 10, 100, 61, 123, 109, 97, 120, 40, 36, 100, 44, 100, 41, 125, 10, 115, 61, 123, 109, 97, 120, 40, 36, 115, 44, 115, 41, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 52, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 119, 10, 45, 101, 110, 100, 105, 102, 10, 109, 101, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 117, 32, 64, 123, 45, 49, 44, 123, 119, 42, 104, 42, 100, 42, 115, 47, 50, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 119, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 49, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 50, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 97, 114, 103, 40, 51, 44, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 41, 125, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 115, 32, 64, 123, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 92, 32, 52, 125, 32, 45, 118, 32, 43, 10, 95, 109, 105, 110, 95, 115, 32, 58, 10, 45, 117, 32, 36, 52, 10, 109, 105, 110, 95, 119, 104, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 50, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 119, 104, 100, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 51, 32, 45, 118, 32, 43, 10, 109, 105, 110, 95, 119, 104, 100, 115, 32, 58, 10, 45, 118, 32, 45, 32, 45, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 52, 32, 45, 118, 32, 43, 10, 95, 109, 105, 110, 95, 119, 104, 100, 115, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 100, 61, 123, 100, 125, 32, 115, 61, 123, 115, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 109, 105, 110, 40, 36, 119, 44, 119, 41, 125, 10, 104, 61, 123, 109, 105, 110, 40, 36, 104, 44, 104, 41, 125, 10, 100, 61, 123, 109, 105, 110, 40, 36, 100, 44, 100, 41, 125, 10, 115, 61, 123, 109, 105, 110, 40, 36, 115, 44, 115, 41, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 52, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 44, 36, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 44, 36, 100, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 117, 32, 36, 119, 44, 36, 104, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 119, 10, 45, 101, 110, 100, 105, 102, 10, 111, 99, 116, 32, 58, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 64, 123, 45, 111, 99, 116, 50, 100, 101, 99, 92, 32, 36, 123, 94, 48, 125, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 111, 99, 116, 97, 108, 32, 105, 110, 116, 101, 103, 101, 114, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 40, 36, 35, 62, 49, 41, 44, 34, 34, 44, 115, 125, 34, 32, 39, 36, 123, 94, 48, 125, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 44, 10, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 32, 97, 110, 100, 32, 115, 116, 114, 105, 110, 103, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 115, 116, 114, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 111, 99, 116, 50, 100, 101, 99, 32, 58, 10, 45, 118, 32, 45, 32, 114, 101, 115, 61, 64, 123, 45, 95, 36, 48, 92, 32, 36, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 44, 64, 123, 45, 95, 36, 48, 92, 32, 64, 123, 45, 97, 114, 103, 92, 32, 36, 62, 43, 50, 44, 36, 123, 94, 48, 125, 125, 125, 32, 45, 100, 111, 110, 101, 32, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 95, 111, 99, 116, 50, 100, 101, 99, 32, 58, 10, 40, 123, 39, 64, 123, 45, 115, 116, 114, 117, 110, 99, 97, 115, 101, 92, 32, 36, 49, 125, 39, 125, 41, 10, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 48, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 125, 61, 61, 52, 53, 125, 32, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 32, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 105, 62, 61, 52, 56, 32, 38, 38, 32, 105, 60, 61, 53, 53, 44, 40, 105, 45, 52, 56, 41, 42, 56, 94, 40, 119, 45, 49, 45, 120, 41, 44, 110, 97, 110, 41, 34, 10, 45, 117, 32, 123, 105, 102, 40, 36, 105, 115, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 45, 49, 44, 49, 41, 42, 64, 123, 45, 49, 44, 43, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 112, 97, 100, 105, 110, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 52, 125, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 117, 32, 64, 123, 125, 123, 105, 110, 116, 40, 36, 49, 47, 49, 48, 94, 36, 60, 41, 37, 49, 48, 125, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 97, 116, 104, 95, 116, 109, 112, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 77, 80, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 77, 80, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 69, 77, 80, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 69, 77, 80, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 84, 77, 80, 68, 73, 82, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 84, 77, 80, 68, 73, 82, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 72, 79, 77, 69, 125, 39, 125, 41, 125, 32, 45, 117, 32, 34, 47, 116, 109, 112, 34, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 112, 97, 116, 104, 95, 117, 115, 101, 114, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 65, 80, 80, 68, 65, 84, 65, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 65, 80, 80, 68, 65, 84, 65, 125, 10, 45, 101, 108, 105, 102, 32, 123, 110, 97, 114, 103, 40, 123, 39, 36, 123, 72, 79, 77, 69, 125, 39, 125, 41, 125, 32, 45, 117, 32, 36, 123, 72, 79, 77, 69, 125, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 113, 117, 111, 116, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 36, 42, 34, 32, 45, 118, 32, 43, 10, 114, 101, 103, 105, 111, 110, 95, 102, 101, 97, 116, 117, 114, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 51, 61, 48, 125, 34, 10, 45, 118, 32, 45, 10, 115, 61, 64, 123, 45, 50, 44, 115, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 61, 61, 91, 45, 49, 93, 32, 36, 49, 32, 45, 94, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 108, 91, 45, 49, 93, 10, 45, 115, 91, 45, 49, 93, 32, 45, 44, 105, 110, 102, 32, 45, 97, 32, 121, 10, 45, 105, 102, 32, 64, 35, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 104, 47, 36, 115, 125, 44, 49, 44, 36, 115, 44, 45, 49, 32, 45, 117, 32, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 117, 32, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 114, 101, 115, 101, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 115, 101, 116, 32, 103, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 111, 102, 32, 116, 104, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 32, 101, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 46, 34, 10, 45, 118, 32, 45, 32, 45, 100, 98, 51, 100, 32, 49, 32, 45, 98, 51, 100, 32, 45, 109, 51, 100, 32, 52, 32, 45, 109, 100, 51, 100, 32, 45, 49, 32, 45, 102, 51, 100, 32, 55, 48, 48, 32, 45, 108, 51, 100, 32, 45, 115, 108, 51, 100, 32, 48, 46, 49, 53, 32, 45, 115, 115, 51, 100, 32, 48, 46, 56, 32, 45, 118, 32, 43, 10, 82, 71, 66, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 32, 45, 118, 32, 43, 10, 82, 71, 66, 65, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 50, 53, 53, 41, 41, 125, 32, 45, 118, 32, 43, 10, 115, 116, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 118, 32, 45, 32, 100, 101, 99, 61, 123, 39, 36, 42, 39, 125, 32, 45, 118, 32, 43, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 110, 118, 101, 114, 116, 32, 115, 116, 114, 105, 110, 103, 32, 39, 36, 42, 39, 32, 116, 111, 32, 98, 105, 110, 97, 114, 121, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 98, 105, 110, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 111, 99, 116, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 111, 99, 116, 92, 32, 36, 100, 101, 99, 125, 34, 39, 44, 32, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 36, 100, 101, 99, 34, 39, 32, 97, 110, 100, 10, 104, 101, 120, 97, 100, 101, 99, 105, 109, 97, 108, 32, 39, 34, 64, 123, 45, 100, 101, 99, 50, 104, 101, 120, 92, 32, 36, 100, 101, 99, 125, 34, 39, 46, 34, 10, 115, 116, 114, 50, 104, 101, 120, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 42, 34, 39, 125, 41, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 121, 61, 61, 48, 44, 105, 110, 116, 40, 105, 47, 49, 54, 41, 44, 105, 40, 120, 44, 121, 45, 49, 41, 37, 49, 54, 41, 39, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 60, 61, 57, 44, 52, 56, 43, 105, 44, 56, 55, 43, 105, 41, 39, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 114, 101, 115, 99, 32, 58, 10, 45, 118, 32, 45, 32, 40, 36, 42, 41, 32, 45, 99, 91, 45, 49, 93, 32, 51, 50, 44, 50, 53, 53, 32, 45, 121, 91, 45, 49, 93, 32, 121, 32, 91, 45, 49, 93, 10, 45, 102, 91, 45, 50, 93, 32, 39, 105, 102, 40, 105, 61, 61, 51, 50, 124, 124, 105, 61, 61, 51, 52, 124, 124, 105, 61, 61, 51, 54, 124, 124, 105, 61, 61, 52, 52, 124, 124, 105, 61, 61, 54, 52, 124, 124, 105, 61, 61, 57, 50, 124, 124, 105, 61, 61, 49, 50, 51, 124, 124, 105, 61, 61, 49, 50, 53, 44, 57, 50, 44, 45, 49, 41, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 114, 99, 97, 116, 32, 58, 10, 45, 118, 32, 45, 32, 36, 61, 115, 32, 114, 101, 115, 61, 34, 36, 49, 34, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 35, 45, 49, 125, 32, 114, 101, 115, 61, 36, 114, 101, 115, 36, 123, 115, 123, 36, 62, 43, 50, 125, 125, 32, 45, 100, 111, 110, 101, 10, 45, 117, 32, 36, 114, 101, 115, 32, 45, 118, 32, 43, 10, 115, 116, 114, 99, 109, 112, 32, 58, 10, 45, 118, 32, 45, 32, 40, 48, 44, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 40, 123, 119, 125, 44, 123, 39, 34, 36, 50, 34, 39, 125, 41, 32, 45, 61, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 117, 32, 123, 33, 64, 123, 45, 49, 44, 43, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 114, 108, 101, 110, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 117, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 114, 114, 101, 112, 108, 97, 99, 101, 32, 58, 10, 45, 118, 32, 45, 10, 108, 115, 61, 64, 123, 45, 115, 116, 114, 108, 101, 110, 92, 32, 34, 36, 50, 34, 125, 10, 108, 114, 61, 123, 64, 123, 45, 115, 116, 114, 108, 101, 110, 92, 32, 34, 36, 51, 34, 125, 45, 49, 125, 10, 45, 108, 91, 93, 32, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 115, 32, 43, 44, 123, 39, 34, 36, 50, 34, 39, 125, 32, 45, 115, 32, 121, 44, 45, 36, 108, 115, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 116, 125, 39, 61, 61, 39, 34, 36, 50, 34, 125, 32, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 44, 36, 108, 114, 32, 45, 102, 91, 36, 62, 93, 32, 123, 39, 34, 36, 51, 34, 39, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 97, 32, 121, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 10, 45, 118, 32, 43, 10, 115, 116, 114, 117, 110, 99, 97, 115, 101, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 34, 36, 42, 34, 39, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 54, 53, 38, 38, 105, 60, 61, 57, 48, 44, 51, 50, 44, 48, 41, 39, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 115, 116, 114, 118, 101, 114, 32, 58, 10, 45, 118, 32, 45, 32, 40, 123, 39, 64, 46, 39, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 55, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 120, 37, 50, 44, 123, 39, 46, 39, 125, 44, 105, 41, 39, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 116, 105, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 32, 116, 105, 109, 101, 114, 46, 34, 10, 45, 118, 32, 45, 32, 95, 95, 116, 105, 99, 61, 64, 124, 32, 45, 118, 32, 43, 10, 116, 111, 99, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 69, 108, 97, 112, 115, 101, 100, 32, 116, 105, 109, 101, 32, 58, 32, 34, 123, 95, 64, 124, 45, 36, 95, 95, 116, 105, 99, 125, 34, 32, 115, 34, 46, 10, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 32, 58, 10, 45, 118, 32, 45, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 49, 93, 32, 45, 117, 32, 123, 64, 123, 45, 109, 97, 100, 91, 45, 49, 93, 125, 47, 115, 113, 114, 116, 40, 105, 102, 40, 100, 61, 61, 49, 44, 50, 48, 44, 52, 50, 41, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 103, 112, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 104, 116, 116, 112, 115, 58, 47, 47, 116, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 117, 115, 101, 114, 115, 46, 103, 114, 101, 121, 99, 46, 102, 114, 47, 103, 112, 116, 46, 114, 97, 119, 125, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 115, 99, 111, 114, 101, 32, 98, 111, 97, 114, 100, 32, 102, 111, 114, 32, 71, 80, 84, 45, 108, 105, 107, 101, 32, 99, 104, 97, 109, 112, 105, 111, 110, 115, 104, 105, 112, 32, 40, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 41, 44, 32, 102, 114, 111, 109, 32, 102, 105, 108, 101, 32, 39, 36, 49, 39, 46, 34, 10, 45, 118, 32, 45, 10, 45, 114, 109, 32, 45, 105, 32, 114, 97, 119, 58, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 115, 91, 45, 49, 93, 32, 45, 44, 49, 48, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 35, 39, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 45, 44, 123, 39, 92, 32, 39, 125, 10, 45, 105, 102, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 52, 125, 32, 45, 101, 114, 114, 111, 114, 91, 48, 45, 45, 52, 93, 32, 34, 73, 110, 118, 97, 108, 105, 100, 32, 115, 99, 111, 114, 101, 32, 102, 105, 108, 101, 32, 40, 108, 105, 110, 101, 32, 34, 123, 36, 62, 43, 49, 125, 34, 32, 100, 101, 102, 105, 110, 101, 115, 32, 34, 64, 35, 34, 32, 105, 116, 101, 109, 115, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 52, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 110, 97, 109, 101, 61, 64, 123, 48, 44, 116, 125, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 117, 114, 108, 61, 64, 123, 49, 44, 116, 125, 10, 112, 108, 97, 121, 101, 114, 36, 62, 95, 102, 105, 108, 101, 61, 64, 123, 50, 44, 116, 125, 10, 40, 64, 123, 51, 44, 116, 125, 41, 32, 45, 114, 109, 91, 48, 45, 51, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 43, 32, 49, 32, 45, 97, 32, 121, 44, 49, 32, 45, 45, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 122, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 44, 119, 45, 36, 50, 41, 125, 44, 49, 48, 48, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 122, 91, 45, 49, 93, 32, 123, 119, 45, 49, 45, 40, 40, 119, 45, 49, 41, 37, 45, 36, 50, 41, 125, 44, 49, 48, 48, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 115, 32, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 105, 102, 32, 123, 64, 123, 36, 60, 44, 77, 125, 60, 48, 125, 10, 105, 61, 36, 60, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 36, 105, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 110, 97, 109, 101, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 110, 97, 109, 101, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 117, 114, 108, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 117, 114, 108, 125, 10, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 125, 95, 102, 105, 108, 101, 61, 36, 123, 112, 108, 97, 121, 101, 114, 123, 36, 105, 43, 36, 62, 43, 49, 125, 95, 102, 105, 108, 101, 125, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 36, 60, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 115, 10, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 61, 123, 105, 102, 40, 36, 50, 44, 50, 52, 44, 52, 56, 41, 125, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 32, 45, 45, 61, 61, 91, 115, 99, 111, 114, 101, 115, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 119, 105, 110, 110, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 101, 56, 32, 45, 115, 32, 121, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 32, 45, 45, 61, 61, 91, 115, 99, 111, 114, 101, 115, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 115, 101, 114, 115, 10, 45, 45, 108, 91, 119, 105, 110, 110, 101, 114, 115, 93, 32, 45, 115, 32, 121, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 119, 105, 110, 110, 101, 114, 115, 10, 45, 45, 108, 91, 108, 111, 115, 101, 114, 115, 93, 32, 45, 115, 32, 121, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 108, 111, 115, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 114, 32, 50, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 32, 45, 102, 32, 39, 105, 102, 40, 120, 44, 121, 44, 105, 41, 39, 32, 45, 115, 111, 114, 116, 32, 45, 44, 121, 10, 45, 114, 32, 51, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 102, 32, 39, 105, 102, 40, 120, 44, 105, 44, 121, 43, 49, 41, 39, 10, 45, 102, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 49, 44, 121, 41, 61, 61, 105, 40, 49, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 115, 111, 114, 116, 32, 43, 44, 121, 32, 45, 122, 32, 49, 44, 50, 32, 45, 102, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 61, 61, 45, 49, 44, 45, 49, 44, 105, 41, 39, 10, 45, 122, 32, 49, 44, 49, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 114, 97, 110, 107, 115, 10, 45, 114, 111, 117, 110, 100, 91, 115, 99, 111, 114, 101, 115, 93, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 102, 32, 104, 32, 45, 114, 111, 119, 115, 32, 48, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 109, 97, 120, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 97, 120, 95, 115, 99, 111, 114, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 101, 56, 32, 45, 115, 32, 121, 32, 45, 109, 105, 110, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 103, 101, 32, 48, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 110, 98, 95, 103, 97, 109, 101, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 110, 101, 113, 32, 45, 49, 32, 45, 115, 32, 121, 32, 45, 42, 32, 39, 119, 45, 120, 39, 32, 45, 102, 32, 120, 77, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 102, 105, 114, 115, 116, 95, 103, 97, 109, 101, 10, 45, 45, 108, 116, 91, 115, 99, 111, 114, 101, 115, 93, 32, 48, 10, 45, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 49, 93, 32, 91, 102, 105, 114, 115, 116, 95, 103, 97, 109, 101, 93, 10, 45, 108, 91, 45, 50, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 44, 105, 44, 45, 120, 41, 39, 32, 45, 115, 32, 121, 32, 45, 108, 97, 98, 101, 108, 32, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 110, 61, 123, 64, 123, 36, 62, 44, 77, 125, 125, 32, 45, 105, 102, 32, 36, 110, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 36, 62, 93, 32, 36, 110, 44, 49, 44, 36, 110, 32, 45, 101, 108, 115, 101, 32, 45, 102, 91, 36, 62, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 97, 32, 121, 32, 45, 45, 32, 49, 32, 45, 109, 97, 120, 32, 48, 32, 45, 114, 111, 117, 110, 100, 32, 45, 101, 110, 100, 108, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 97, 98, 115, 95, 109, 97, 108, 117, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 97, 98, 115, 95, 109, 97, 108, 117, 115, 93, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 110, 109, 91, 45, 49, 93, 32, 114, 97, 110, 107, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 115, 99, 111, 114, 101, 10, 115, 117, 109, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 44, 43, 125, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 120, 32, 45, 109, 97, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 119, 45, 50, 125, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 45, 91, 45, 49, 93, 32, 91, 97, 98, 115, 95, 109, 97, 108, 117, 115, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 112, 114, 101, 118, 105, 111, 117, 115, 95, 115, 99, 111, 114, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 105, 45, 49, 48, 48, 41, 39, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 104, 105, 112, 115, 10, 115, 117, 109, 95, 99, 104, 105, 112, 115, 61, 64, 123, 99, 104, 105, 112, 115, 44, 43, 125, 10, 45, 118, 32, 43, 10, 45, 101, 32, 34, 83, 117, 109, 32, 111, 102, 32, 99, 104, 105, 112, 115, 32, 58, 32, 34, 36, 115, 117, 109, 95, 99, 104, 105, 112, 115, 10, 45, 101, 32, 34, 83, 117, 109, 32, 111, 102, 32, 115, 99, 111, 114, 101, 115, 32, 58, 32, 34, 36, 115, 117, 109, 95, 115, 99, 111, 114, 101, 10, 45, 118, 32, 45, 10, 45, 45, 45, 91, 112, 114, 101, 118, 105, 111, 117, 115, 95, 115, 99, 111, 114, 101, 44, 115, 99, 111, 114, 101, 93, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 10, 45, 110, 109, 91, 45, 49, 93, 32, 116, 114, 101, 110, 100, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 117, 110, 114, 111, 108, 108, 32, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 32, 45, 102, 32, 105, 77, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 117, 110, 114, 111, 108, 108, 32, 120, 32, 45, 45, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 32, 45, 102, 32, 105, 109, 32, 45, 97, 32, 121, 32, 45, 122, 32, 48, 44, 48, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 43, 49, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 45, 45, 91, 115, 99, 111, 114, 101, 115, 93, 32, 91, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 93, 32, 91, 109, 97, 120, 95, 115, 99, 111, 114, 101, 115, 93, 32, 45, 45, 91, 45, 49, 93, 32, 91, 109, 105, 110, 95, 115, 99, 111, 114, 101, 115, 93, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 108, 91, 45, 49, 93, 32, 45, 102, 32, 39, 105, 102, 40, 105, 60, 48, 44, 45, 49, 44, 105, 41, 39, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 102, 32, 39, 105, 102, 40, 105, 97, 60, 48, 44, 48, 44, 105, 97, 41, 39, 32, 45, 114, 111, 119, 115, 32, 48, 32, 45, 97, 32, 121, 32, 45, 114, 111, 117, 110, 100, 32, 49, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 10, 45, 45, 108, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 115, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 45, 49, 32, 45, 45, 32, 49, 48, 48, 32, 45, 114, 32, 49, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 97, 118, 101, 114, 97, 103, 101, 10, 45, 45, 33, 61, 91, 115, 99, 111, 114, 101, 115, 93, 32, 45, 49, 10, 45, 45, 42, 91, 108, 111, 115, 101, 114, 115, 44, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 110, 98, 95, 108, 111, 115, 101, 114, 115, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 43, 32, 45, 101, 110, 100, 108, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 46, 52, 10, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 43, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 102, 91, 45, 49, 93, 32, 39, 62, 105, 102, 40, 120, 44, 105, 44, 105, 102, 40, 105, 40, 50, 44, 121, 41, 61, 61, 105, 40, 50, 44, 121, 45, 49, 41, 44, 105, 40, 48, 44, 121, 45, 49, 41, 44, 105, 41, 41, 39, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 121, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 110, 109, 91, 45, 49, 93, 32, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 10, 45, 99, 111, 110, 101, 51, 100, 32, 49, 46, 53, 44, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 57, 48, 32, 45, 98, 111, 120, 51, 100, 32, 52, 44, 49, 44, 48, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 48, 44, 45, 48, 46, 53, 32, 45, 43, 51, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 49, 56, 48, 10, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 55, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 48, 48, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 48, 48, 32, 45, 45, 42, 91, 45, 51, 93, 32, 50, 48, 48, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 101, 113, 10, 45, 114, 51, 100, 91, 45, 51, 93, 32, 48, 44, 48, 44, 49, 44, 51, 53, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 52, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 54, 52, 32, 45, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 45, 42, 91, 45, 51, 93, 32, 54, 52, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 117, 112, 10, 45, 114, 51, 100, 91, 45, 53, 93, 32, 48, 44, 48, 44, 49, 44, 45, 55, 48, 10, 49, 50, 56, 44, 49, 50, 56, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 54, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 10, 45, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 42, 91, 45, 50, 93, 32, 54, 52, 32, 45, 45, 42, 91, 45, 51, 93, 32, 51, 50, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 110, 109, 91, 45, 49, 93, 32, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 10, 45, 100, 105, 108, 97, 116, 101, 91, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 44, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 44, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 93, 32, 51, 10, 45, 114, 109, 91, 45, 55, 93, 10, 98, 111, 97, 114, 100, 61, 64, 35, 10, 105, 61, 64, 35, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 82, 97, 110, 107, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 78, 97, 109, 101, 34, 44, 49, 53, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 99, 111, 114, 101, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 67, 104, 105, 112, 115, 92, 110, 91, 109, 97, 108, 117, 115, 93, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 80, 108, 97, 121, 101, 100, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 87, 111, 110, 47, 92, 110, 76, 111, 115, 116, 34, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 84, 114, 100, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 84, 114, 101, 110, 100, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 116, 97, 116, 115, 34, 44, 123, 50, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 83, 116, 97, 116, 105, 115, 116, 105, 99, 115, 34, 44, 123, 52, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 43, 50, 125, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 50, 44, 49, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 76, 97, 115, 116, 92, 110, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 66, 101, 115, 116, 92, 110, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 72, 105, 103, 104, 101, 115, 116, 92, 110, 99, 104, 105, 112, 115, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 76, 111, 119, 101, 115, 116, 92, 110, 99, 104, 105, 112, 115, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 92, 110, 32, 32, 32, 40, 114, 97, 110, 107, 41, 34, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 65, 118, 101, 114, 97, 103, 101, 92, 110, 91, 115, 116, 100, 93, 32, 40, 114, 97, 110, 107, 41, 34, 44, 49, 48, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 67, 111, 102, 102, 101, 101, 32, 98, 97, 108, 97, 110, 99, 101, 92, 110, 32, 32, 32, 32, 32, 40, 114, 97, 110, 107, 41, 34, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 52, 44, 49, 44, 54, 10, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 120, 10, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 77, 125, 10, 45, 45, 122, 91, 114, 97, 110, 107, 93, 32, 48, 44, 48, 32, 109, 97, 120, 95, 114, 97, 110, 107, 61, 123, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 97, 118, 101, 114, 97, 103, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 122, 91, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 93, 32, 49, 44, 49, 32, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 123, 105, 77, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 114, 97, 110, 107, 44, 104, 125, 10, 112, 61, 64, 123, 114, 97, 110, 107, 44, 40, 49, 44, 36, 62, 41, 125, 10, 110, 61, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 99, 61, 123, 105, 102, 40, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 61, 61, 48, 44, 48, 44, 118, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 41, 125, 10, 105, 61, 64, 35, 10, 116, 95, 114, 97, 110, 107, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 114, 97, 110, 107, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 49, 44, 36, 99, 10, 45, 105, 102, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 10, 45, 101, 108, 115, 101, 32, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 117, 114, 108, 125, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 102, 105, 108, 101, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 110, 97, 109, 101, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 112, 125, 95, 110, 97, 109, 101, 125, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 116, 95, 110, 97, 109, 101, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 40, 50, 45, 99, 41, 42, 48, 46, 57, 42, 121, 47, 104, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 50, 50, 53, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 50, 48, 44, 49, 44, 36, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 44, 40, 48, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 115, 99, 111, 114, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 115, 99, 111, 114, 101, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 50, 48, 44, 36, 110, 44, 36, 99, 10, 116, 95, 99, 104, 105, 112, 115, 61, 64, 123, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 116, 95, 109, 97, 108, 117, 115, 61, 123, 45, 64, 123, 97, 98, 115, 95, 109, 97, 108, 117, 115, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 99, 104, 105, 112, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 99, 104, 105, 112, 115, 92, 32, 91, 36, 116, 95, 109, 97, 108, 117, 115, 93, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 110, 98, 95, 103, 97, 109, 101, 115, 61, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 110, 98, 95, 103, 97, 109, 101, 115, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 45, 114, 111, 119, 115, 91, 119, 105, 110, 110, 101, 114, 115, 93, 32, 36, 112, 10, 116, 95, 119, 111, 110, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 45, 114, 111, 119, 115, 91, 108, 111, 115, 101, 114, 115, 93, 32, 36, 112, 10, 116, 95, 108, 111, 115, 116, 61, 64, 123, 45, 49, 44, 43, 125, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 119, 111, 110, 47, 36, 116, 95, 108, 111, 115, 116, 44, 52, 56, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 101, 108, 115, 101, 10, 116, 95, 116, 114, 101, 110, 100, 61, 123, 45, 64, 123, 116, 114, 101, 110, 100, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 62, 48, 125, 32, 116, 95, 116, 114, 101, 110, 100, 61, 43, 36, 116, 95, 116, 114, 101, 110, 100, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 117, 112, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 117, 112, 95, 109, 97, 115, 107, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 60, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 100, 111, 119, 110, 95, 109, 97, 115, 107, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 97, 114, 114, 111, 119, 95, 101, 113, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 97, 114, 114, 111, 119, 95, 101, 113, 95, 109, 97, 115, 107, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 105, 102, 32, 36, 50, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 62, 48, 125, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 92, 110, 92, 110, 32, 32, 32, 32, 34, 36, 116, 95, 116, 114, 101, 110, 100, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 116, 114, 101, 110, 100, 60, 48, 125, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 92, 110, 92, 110, 34, 36, 116, 95, 116, 114, 101, 110, 100, 34, 32, 32, 32, 32, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 34, 32, 34, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 56, 44, 36, 110, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 123, 105, 102, 40, 36, 50, 44, 50, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 52, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 43, 50, 41, 125, 44, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 123, 51, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 45, 114, 111, 119, 115, 91, 114, 97, 110, 107, 115, 93, 32, 36, 112, 44, 36, 112, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 44, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 48, 46, 50, 44, 48, 44, 54, 52, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 114, 111, 119, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 36, 112, 10, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 99, 117, 109, 117, 108, 91, 45, 49, 93, 32, 115, 97, 61, 123, 105, 97, 125, 32, 115, 109, 61, 123, 105, 109, 125, 32, 115, 77, 61, 123, 105, 77, 125, 10, 45, 103, 114, 105, 100, 91, 45, 50, 93, 32, 123, 109, 97, 120, 40, 50, 48, 44, 49, 48, 48, 47, 109, 97, 120, 40, 49, 44, 104, 45, 49, 41, 41, 125, 37, 44, 49, 48, 44, 48, 44, 48, 44, 48, 46, 54, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 48, 10, 40, 48, 44, 48, 41, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 40, 36, 115, 97, 44, 36, 115, 97, 41, 32, 45, 103, 114, 97, 112, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 48, 120, 53, 53, 53, 53, 53, 53, 53, 53, 44, 48, 44, 49, 53, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 50, 44, 48, 44, 123, 36, 115, 77, 43, 49, 48, 125, 44, 123, 36, 115, 109, 45, 49, 48, 125, 44, 49, 44, 50, 53, 53, 44, 51, 50, 44, 52, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 123, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 125, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 49, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 48, 10, 45, 45, 114, 111, 119, 115, 91, 114, 97, 110, 107, 115, 93, 32, 36, 112, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 44, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 32, 45, 121, 91, 45, 49, 93, 32, 121, 10, 105, 112, 61, 64, 35, 10, 40, 49, 44, 49, 48, 44, 50, 53, 53, 44, 50, 52, 50, 44, 49, 53, 51, 41, 10, 40, 50, 44, 49, 48, 44, 50, 50, 50, 44, 50, 50, 50, 44, 50, 50, 50, 41, 10, 40, 51, 44, 49, 48, 44, 50, 51, 50, 44, 50, 48, 57, 44, 49, 57, 54, 41, 10, 40, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 45, 49, 125, 44, 49, 48, 44, 50, 53, 53, 44, 50, 48, 52, 44, 50, 48, 52, 41, 10, 40, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 44, 49, 48, 44, 50, 53, 53, 44, 49, 53, 51, 44, 49, 53, 51, 41, 10, 45, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 49, 125, 32, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 50, 125, 32, 45, 114, 109, 91, 45, 51, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 51, 125, 32, 45, 114, 109, 91, 45, 50, 45, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 61, 61, 52, 125, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 62, 53, 125, 32, 45, 97, 91, 45, 51, 44, 45, 50, 93, 32, 121, 32, 45, 114, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 123, 36, 109, 97, 120, 95, 112, 108, 97, 121, 101, 114, 115, 45, 51, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 111, 117, 110, 100, 91, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 105, 112, 45, 45, 49, 93, 32, 121, 10, 45, 106, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 50, 93, 10, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 112, 105, 101, 99, 104, 97, 114, 116, 91, 45, 49, 93, 32, 53, 55, 44, 48, 44, 48, 44, 48, 44, 64, 45, 50, 44, 34, 97, 98, 115, 46, 34, 44, 123, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 45, 64, 123, 110, 98, 95, 103, 97, 109, 101, 115, 44, 40, 48, 44, 36, 112, 41, 125, 125, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 50, 53, 53, 10, 49, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 48, 10, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 112, 105, 101, 99, 104, 97, 114, 116, 91, 45, 49, 93, 32, 53, 55, 44, 48, 44, 48, 44, 48, 44, 64, 45, 52, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 52, 93, 32, 45, 114, 50, 100, 121, 91, 45, 51, 44, 45, 49, 93, 32, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 10, 45, 97, 91, 45, 53, 45, 45, 49, 93, 32, 120, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 122, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 119, 45, 50, 125, 44, 123, 104, 45, 50, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 64, 123, 115, 99, 111, 114, 101, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 61, 45, 49, 125, 32, 116, 95, 108, 97, 115, 116, 61, 97, 98, 115, 46, 10, 45, 101, 108, 115, 101, 10, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 45, 49, 48, 48, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 108, 97, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 114, 97, 110, 107, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 10, 116, 95, 108, 97, 115, 116, 61, 36, 116, 95, 108, 97, 115, 116, 95, 115, 99, 111, 114, 101, 92, 32, 40, 36, 116, 95, 108, 97, 115, 116, 95, 114, 97, 110, 107, 41, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 114, 97, 110, 107, 115, 44, 40, 49, 48, 48, 37, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 45, 49, 125, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 45, 49, 125, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 108, 97, 115, 116, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 123, 118, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 98, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 62, 48, 125, 32, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 43, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 61, 45, 49, 125, 32, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 92, 32, 40, 36, 116, 95, 98, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 123, 118, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 61, 45, 49, 125, 32, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 98, 101, 115, 116, 95, 115, 99, 111, 114, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 99, 104, 105, 112, 115, 92, 32, 40, 36, 116, 95, 104, 105, 103, 104, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 123, 118, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 48, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 61, 61, 45, 49, 44, 45, 49, 44, 118, 41, 125, 10, 116, 95, 108, 111, 119, 101, 115, 116, 95, 114, 97, 110, 107, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 62, 48, 125, 32, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 43, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 61, 45, 49, 125, 32, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 61, 97, 98, 115, 46, 10, 45, 101, 110, 100, 105, 102, 10, 99, 61, 123, 118, 61, 64, 123, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 43, 49, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 99, 104, 105, 112, 115, 92, 32, 40, 36, 116, 95, 108, 111, 119, 101, 115, 116, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 48, 44, 36, 112, 41, 125, 10, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 37, 92, 32, 40, 36, 116, 95, 112, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 95, 114, 97, 110, 107, 41, 44, 54, 52, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 45, 114, 111, 119, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 36, 112, 32, 45, 100, 105, 115, 99, 97, 114, 100, 91, 45, 49, 93, 32, 45, 49, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 61, 123, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 105, 97, 45, 49, 48, 48, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 62, 48, 125, 32, 116, 95, 97, 118, 101, 114, 97, 103, 101, 61, 43, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 115, 116, 100, 61, 123, 105, 102, 40, 105, 61, 61, 45, 49, 44, 48, 44, 114, 111, 117, 110, 100, 40, 115, 113, 114, 116, 40, 105, 118, 41, 41, 41, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 61, 64, 123, 97, 118, 101, 114, 97, 103, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 97, 118, 101, 114, 97, 103, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 92, 32, 91, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 115, 116, 100, 93, 92, 32, 40, 36, 116, 95, 97, 118, 101, 114, 97, 103, 101, 95, 114, 97, 110, 107, 41, 44, 49, 48, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 61, 123, 95, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 48, 44, 36, 112, 41, 125, 125, 10, 45, 105, 102, 32, 123, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 62, 48, 125, 32, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 61, 43, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 116, 95, 99, 111, 102, 102, 101, 101, 95, 114, 97, 110, 107, 61, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 10, 99, 61, 123, 118, 61, 64, 123, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 44, 40, 49, 44, 36, 112, 41, 125, 59, 105, 102, 40, 118, 62, 61, 49, 38, 38, 118, 60, 61, 51, 44, 118, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 45, 49, 44, 52, 44, 105, 102, 40, 118, 61, 61, 36, 109, 97, 120, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 95, 114, 97, 110, 107, 44, 53, 44, 48, 41, 41, 41, 125, 10, 45, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 98, 97, 108, 97, 110, 99, 101, 92, 36, 92, 32, 40, 36, 116, 95, 99, 111, 102, 102, 101, 101, 95, 114, 97, 110, 107, 41, 44, 56, 48, 44, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 44, 49, 54, 44, 36, 110, 44, 36, 99, 10, 45, 105, 102, 32, 123, 33, 36, 110, 125, 32, 45, 102, 91, 36, 105, 44, 123, 36, 105, 43, 50, 125, 45, 45, 49, 93, 32, 34, 105, 42, 40, 48, 46, 55, 43, 48, 46, 51, 42, 40, 40, 40, 120, 43, 121, 41, 37, 56, 41, 33, 61, 48, 41, 41, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 105, 45, 45, 49, 93, 32, 120, 10, 45, 100, 111, 110, 101, 10, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 44, 97, 125, 44, 48, 46, 53, 41, 125, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 83, 101, 115, 115, 105, 111, 110, 32, 92, 35, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 32, 32, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 76, 97, 115, 116, 32, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 32, 115, 101, 115, 115, 105, 111, 110, 115, 32, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 108, 115, 101, 32, 116, 95, 116, 105, 116, 108, 101, 61, 34, 42, 42, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 42, 42, 32, 83, 101, 115, 115, 105, 111, 110, 32, 92, 35, 34, 64, 123, 115, 99, 111, 114, 101, 115, 44, 119, 125, 34, 47, 34, 123, 45, 36, 50, 125, 34, 32, 40, 97, 118, 103, 46, 32, 92, 35, 112, 108, 97, 121, 101, 114, 32, 61, 32, 34, 36, 97, 118, 103, 95, 110, 98, 95, 112, 108, 97, 121, 101, 114, 115, 34, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 36, 116, 95, 116, 105, 116, 108, 101, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 123, 105, 102, 40, 36, 50, 44, 48, 46, 57, 44, 48, 46, 54, 41, 125, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 51, 44, 49, 44, 51, 44, 51, 50, 44, 48, 44, 54, 52, 44, 51, 50, 44, 54, 52, 44, 49, 50, 56, 44, 54, 52, 44, 50, 48, 48, 44, 50, 53, 54, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 36, 98, 111, 97, 114, 100, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 115, 99, 111, 114, 101, 115, 93, 32, 49, 48, 48, 37, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 61, 61, 105, 40, 48, 44, 48, 41, 44, 105, 44, 45, 49, 41, 39, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 10, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 123, 104, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 10, 105, 61, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 105, 125, 95, 110, 97, 109, 101, 125, 34, 95, 95, 34, 36, 123, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 125, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 123, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 125, 95, 102, 105, 108, 101, 125, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 53, 54, 44, 53, 54, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 100, 111, 110, 101, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 115, 115, 105, 111, 110, 32, 119, 105, 110, 110, 101, 114, 34, 64, 123, 45, 105, 102, 92, 32, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 61, 61, 49, 125, 92, 32, 45, 117, 92, 32, 92, 34, 92, 34, 92, 32, 45, 101, 108, 115, 101, 92, 32, 45, 117, 92, 32, 115, 92, 32, 45, 101, 110, 100, 105, 102, 125, 34, 32, 58, 32, 34, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 49, 44, 48, 46, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 50, 44, 49, 44, 51, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 54, 52, 44, 49, 50, 56, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 123, 45, 50, 45, 36, 60, 125, 93, 44, 123, 119, 45, 54, 52, 45, 36, 62, 42, 54, 52, 125, 44, 55, 32, 45, 100, 111, 110, 101, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 123, 36, 98, 111, 97, 114, 100, 43, 49, 125, 10, 45, 114, 109, 91, 45, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 119, 105, 110, 110, 101, 114, 115, 43, 49, 125, 45, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 108, 111, 115, 101, 114, 115, 93, 32, 49, 48, 48, 37, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 121, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 40, 48, 44, 121, 41, 44, 105, 44, 45, 49, 41, 39, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 10, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 123, 104, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 34, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 10, 105, 61, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 36, 123, 112, 108, 97, 121, 101, 114, 36, 123, 105, 125, 95, 110, 97, 109, 101, 125, 34, 95, 95, 34, 36, 123, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 125, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 36, 123, 112, 108, 97, 121, 101, 114, 123, 64, 123, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 40, 49, 44, 36, 62, 41, 125, 125, 95, 102, 105, 108, 101, 125, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 53, 54, 44, 53, 54, 44, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 100, 111, 110, 101, 10, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 64, 123, 45, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 92, 32, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 125, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 83, 101, 115, 115, 105, 111, 110, 32, 108, 111, 115, 101, 114, 34, 64, 123, 45, 105, 102, 92, 32, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 61, 61, 49, 125, 92, 32, 45, 117, 92, 32, 92, 34, 92, 34, 92, 32, 45, 101, 108, 115, 101, 92, 32, 45, 117, 92, 32, 115, 92, 32, 45, 101, 110, 100, 105, 102, 125, 34, 32, 58, 32, 34, 36, 116, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 50, 53, 53, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 53, 44, 53, 44, 50, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 50, 52, 32, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 36, 98, 111, 97, 114, 100, 44, 119, 125, 45, 50, 125, 44, 123, 49, 46, 53, 42, 36, 114, 111, 119, 95, 104, 101, 105, 103, 104, 116, 45, 50, 125, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 49, 44, 48, 46, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 44, 50, 44, 49, 44, 51, 44, 49, 50, 56, 44, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 54, 52, 44, 49, 50, 56, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 44, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 50, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 60, 48, 125, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 32, 45, 106, 91, 45, 49, 93, 32, 91, 123, 45, 50, 45, 36, 60, 125, 93, 44, 123, 119, 45, 54, 52, 45, 36, 62, 42, 54, 52, 125, 44, 55, 32, 45, 100, 111, 110, 101, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 123, 36, 110, 98, 95, 115, 101, 115, 115, 105, 111, 110, 95, 108, 111, 115, 101, 114, 115, 43, 50, 125, 45, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 36, 98, 111, 97, 114, 100, 45, 45, 49, 93, 32, 121, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 91, 45, 49, 93, 32, 54, 44, 54, 44, 52, 32, 45, 105, 91, 45, 50, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 107, 91, 36, 98, 111, 97, 114, 100, 93, 32, 45, 118, 32, 43, 10, 95, 103, 112, 116, 95, 114, 101, 109, 111, 118, 101, 95, 117, 110, 100, 101, 114, 115, 99, 111, 114, 101, 32, 58, 10, 40, 123, 39, 34, 36, 49, 34, 39, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 95, 39, 125, 44, 123, 39, 92, 32, 39, 125, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 112, 116, 95, 102, 105, 101, 108, 100, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 123, 36, 50, 45, 50, 125, 44, 123, 36, 51, 45, 50, 125, 44, 49, 44, 51, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 52, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 114, 91, 45, 49, 93, 32, 123, 36, 50, 45, 50, 125, 44, 123, 36, 51, 45, 50, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 10, 91, 45, 49, 93, 120, 50, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 52, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 53, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 50, 50, 32, 45, 42, 91, 45, 50, 93, 32, 50, 50, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 50, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 51, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 51, 50, 32, 45, 42, 91, 45, 50, 93, 32, 50, 48, 57, 32, 45, 42, 91, 45, 49, 93, 32, 49, 57, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 52, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 48, 52, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 53, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 93, 32, 49, 53, 51, 32, 45, 42, 91, 45, 49, 93, 32, 49, 53, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 54, 125, 32, 45, 42, 91, 45, 51, 93, 32, 50, 52, 48, 32, 45, 42, 91, 45, 50, 93, 32, 50, 52, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 52, 48, 10, 45, 101, 108, 115, 101, 32, 45, 42, 91, 45, 51, 45, 45, 49, 93, 32, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 103, 105, 109, 112, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 58, 10, 40, 123, 39, 103, 109, 105, 99, 39, 125, 41, 10, 40, 123, 39, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 117, 112, 100, 97, 116, 101, 64, 46, 46, 103, 109, 105, 99, 39, 125, 44, 49, 41, 10, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 36, 49, 34, 44, 36, 51, 44, 123, 105, 102, 40, 36, 50, 44, 50, 94, 40, 36, 50, 45, 49, 41, 44, 48, 41, 125, 10, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 64, 46, 125, 44, 36, 123, 50, 61, 49, 125, 10, 45, 118, 32, 45, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 34, 47, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 47, 76, 111, 99, 97, 108, 126, 99, 111, 110, 116, 114, 97, 115, 116, 126, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 34, 44, 34, 47, 68, 101, 116, 97, 105, 108, 115, 34, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 34, 47, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 47, 89, 65, 71, 95, 101, 102, 102, 101, 99, 116, 34, 44, 34, 47, 68, 101, 116, 97, 105, 108, 115, 34, 10, 45, 109, 32, 34, 112, 97, 114, 101, 110, 116, 32, 58, 32, 45, 108, 91, 93, 32, 40, 123, 39, 36, 34, 34, 49, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 105, 102, 32, 64, 35, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 91, 48, 45, 45, 49, 93, 32, 40, 52, 55, 41, 32, 45, 97, 32, 121, 32, 45, 117, 32, 64, 123, 48, 44, 116, 125, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 34, 10, 45, 109, 32, 34, 95, 109, 97, 120, 32, 58, 32, 40, 123, 39, 92, 34, 36, 34, 34, 49, 92, 34, 39, 125, 41, 32, 40, 123, 39, 92, 34, 36, 34, 34, 50, 92, 34, 39, 125, 41, 32, 45, 102, 91, 45, 50, 44, 45, 49, 93, 32, 39, 105, 102, 40, 105, 62, 61, 57, 55, 38, 38, 105, 60, 61, 49, 50, 50, 44, 105, 45, 51, 50, 44, 105, 41, 39, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 119, 44, 64, 123, 45, 50, 44, 119, 125, 41, 125, 44, 49, 44, 49, 44, 49, 44, 48, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 32, 34, 92, 10, 34, 45, 117, 32, 123, 105, 62, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 34, 10, 45, 109, 32, 34, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 58, 32, 34, 92, 10, 34, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 61, 123, 36, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 43, 49, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 92, 34, 45, 98, 97, 115, 101, 110, 97, 109, 101, 32, 36, 34, 34, 49, 92, 34, 125, 32, 34, 92, 10, 34, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 92, 34, 36, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 92, 34, 46, 32, 92, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 92, 34, 32, 32, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 45, 108, 91, 93, 32, 34, 92, 10, 34, 32, 32, 45, 105, 32, 114, 97, 119, 58, 36, 34, 34, 49, 44, 117, 99, 104, 97, 114, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 114, 101, 116, 114, 105, 101, 118, 101, 100, 32, 102, 114, 111, 109, 32, 115, 111, 117, 114, 99, 101, 32, 39, 36, 34, 34, 49, 39, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 108, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 111, 32, 114, 97, 119, 58, 47, 116, 109, 112, 47, 36, 102, 105, 108, 101, 110, 97, 109, 101, 44, 117, 99, 104, 97, 114, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 120, 32, 92, 34, 115, 99, 112, 32, 47, 116, 109, 112, 47, 92, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 92, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 105, 110, 99, 108, 117, 100, 101, 47, 92, 34, 32, 34, 92, 10, 34, 32, 32, 32, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 97, 114, 99, 104, 105, 118, 101, 100, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 99, 111, 117, 108, 100, 32, 110, 111, 116, 32, 98, 101, 32, 97, 114, 99, 104, 105, 118, 101, 100, 33, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 45, 101, 110, 100, 108, 32, 34, 92, 10, 34, 45, 111, 110, 102, 97, 105, 108, 32, 45, 108, 91, 93, 32, 34, 92, 10, 34, 32, 32, 115, 111, 117, 114, 99, 101, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 110, 99, 108, 117, 100, 101, 47, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 34, 92, 10, 34, 32, 32, 45, 105, 32, 114, 97, 119, 58, 36, 115, 111, 117, 114, 99, 101, 44, 117, 99, 104, 97, 114, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 114, 101, 116, 114, 105, 101, 118, 101, 100, 32, 102, 114, 111, 109, 32, 97, 114, 99, 104, 105, 118, 101, 32, 39, 92, 34, 36, 115, 111, 117, 114, 99, 101, 92, 34, 39, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 32, 34, 92, 10, 34, 32, 32, 45, 111, 110, 102, 97, 105, 108, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 92, 34, 32, 32, 32, 32, 32, 32, 91, 101, 114, 114, 111, 114, 44, 32, 110, 111, 116, 32, 114, 101, 97, 99, 104, 97, 98, 108, 101, 33, 93, 92, 110, 92, 34, 32, 45, 118, 32, 45, 34, 92, 10, 34, 32, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 108, 34, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 64, 46, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 85, 112, 108, 111, 97, 100, 32, 108, 97, 116, 101, 115, 116, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 111, 110, 32, 83, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 32, 115, 101, 114, 118, 101, 114, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 120, 32, 34, 115, 99, 112, 32, 34, 36, 72, 79, 77, 69, 47, 119, 111, 114, 107, 47, 115, 114, 99, 47, 103, 109, 105, 99, 47, 115, 114, 99, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 103, 109, 105, 99, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 34, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 76, 111, 97, 100, 32, 97, 110, 100, 32, 97, 114, 99, 104, 105, 118, 101, 32, 46, 103, 109, 105, 99, 32, 115, 111, 117, 114, 99, 101, 32, 102, 105, 108, 101, 115, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 95, 110, 98, 95, 115, 111, 117, 114, 99, 101, 115, 61, 48, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 36, 49, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 99, 111, 109, 112, 97, 116, 105, 98, 105, 108, 105, 116, 121, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 107, 97, 114, 111, 48, 51, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 103, 109, 105, 99, 47, 107, 97, 114, 111, 115, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 112, 104, 111, 116, 111, 99, 111, 109, 105, 120, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 115, 97, 117, 110, 97, 108, 97, 104, 116, 105, 46, 102, 105, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 110, 97, 103, 103, 111, 98, 111, 116, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 105, 97, 105, 110, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 105, 97, 105, 110, 95, 102, 101, 114, 103, 117, 115, 115, 111, 110, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 115, 52, 48, 54, 56, 51, 51, 50, 52, 55, 46, 119, 101, 98, 115, 105, 116, 101, 104, 111, 109, 101, 46, 99, 111, 46, 117, 107, 47, 103, 109, 105, 99, 47, 103, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 108, 106, 97, 99, 111, 109, 46, 99, 111, 109, 47, 126, 103, 109, 105, 99, 47, 115, 97, 109, 106, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 100, 111, 99, 103, 109, 105, 99, 46, 116, 117, 120, 102, 97, 109, 105, 108, 121, 46, 111, 114, 103, 47, 122, 111, 110, 100, 101, 114, 114, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 116, 111, 109, 107, 101, 105, 108, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 104, 45, 112, 115, 46, 100, 101, 109, 111, 110, 46, 99, 111, 46, 117, 107, 47, 71, 77, 73, 67, 47, 106, 97, 121, 112, 114, 105, 99, 104, 46, 103, 109, 105, 99, 10, 45, 108, 111, 97, 100, 95, 103, 109, 105, 99, 32, 104, 116, 116, 112, 115, 58, 47, 47, 114, 97, 119, 46, 103, 105, 116, 104, 117, 98, 46, 99, 111, 109, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 45, 103, 109, 105, 99, 47, 109, 97, 115, 116, 101, 114, 47, 106, 98, 111, 117, 108, 97, 110, 103, 101, 114, 46, 103, 109, 105, 99, 10, 45, 105, 91, 48, 93, 32, 40, 49, 48, 41, 32, 45, 105, 91, 50, 45, 45, 49, 93, 32, 40, 123, 34, 39, 92, 110, 35, 64, 103, 105, 109, 112, 32, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 110, 39, 34, 125, 41, 32, 45, 121, 32, 121, 32, 45, 97, 32, 121, 32, 45, 100, 105, 115, 99, 97, 114, 100, 32, 49, 51, 10, 45, 115, 32, 43, 44, 123, 39, 34, 35, 64, 103, 105, 109, 112, 34, 39, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 40, 64, 35, 45, 49, 41, 47, 50, 41, 125, 32, 45, 97, 91, 123, 36, 62, 43, 49, 125, 44, 123, 36, 62, 43, 50, 125, 93, 32, 121, 32, 45, 100, 111, 110, 101, 10, 45, 110, 109, 91, 48, 93, 32, 33, 104, 101, 97, 100, 101, 114, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 83, 116, 97, 114, 116, 32, 115, 111, 117, 114, 99, 101, 32, 112, 97, 114, 115, 105, 110, 103, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 112, 114, 111, 103, 114, 101, 115, 115, 95, 102, 97, 99, 116, 111, 114, 61, 123, 49, 48, 48, 47, 40, 64, 35, 45, 49, 41, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 48, 10, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 61, 48, 10, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 61, 48, 10, 111, 102, 102, 115, 101, 116, 61, 48, 10, 112, 97, 116, 104, 61, 47, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 105, 110, 100, 61, 123, 36, 62, 45, 36, 111, 102, 102, 115, 101, 116, 125, 10, 45, 105, 102, 32, 123, 64, 123, 123, 36, 105, 110, 100, 45, 49, 125, 44, 45, 49, 125, 61, 61, 49, 48, 34, 32, 38, 38, 32, 34, 123, 123, 96, 64, 123, 36, 105, 110, 100, 44, 48, 45, 53, 125, 96, 125, 39, 61, 61, 39, 34, 35, 64, 103, 105, 109, 112, 34, 125, 34, 32, 38, 38, 32, 34, 40, 64, 123, 36, 105, 110, 100, 44, 54, 125, 61, 61, 51, 50, 34, 32, 124, 124, 32, 34, 64, 123, 36, 105, 110, 100, 44, 54, 125, 61, 61, 123, 39, 95, 39, 125, 41, 125, 32, 45, 108, 91, 36, 105, 110, 100, 93, 10, 105, 115, 95, 102, 111, 108, 100, 101, 114, 61, 48, 10, 45, 115, 32, 43, 44, 49, 48, 32, 45, 45, 114, 111, 119, 115, 91, 48, 93, 32, 54, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 51, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 51, 50, 10, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 58, 39, 125, 125, 10, 45, 108, 91, 45, 49, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 98, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 47, 98, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 105, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 60, 47, 105, 62, 39, 125, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 47, 39, 125, 44, 51, 50, 10, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 44, 39, 125, 44, 123, 39, 59, 39, 125, 10, 45, 115, 32, 45, 44, 123, 39, 58, 39, 125, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 51, 50, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 10, 45, 107, 91, 48, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 10, 110, 97, 109, 101, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 49, 10, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 61, 123, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 43, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 34, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 34, 46, 32, 34, 36, 110, 97, 109, 101, 34, 32, 40, 34, 123, 114, 111, 117, 110, 100, 40, 36, 62, 42, 36, 112, 114, 111, 103, 114, 101, 115, 115, 95, 102, 97, 99, 116, 111, 114, 41, 125, 34, 37, 41, 46, 34, 32, 45, 118, 32, 45, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 10, 45, 100, 111, 32, 112, 97, 116, 104, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 112, 97, 116, 104, 125, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 45, 49, 44, 48, 44, 48, 32, 45, 119, 104, 105, 108, 101, 32, 123, 105, 61, 61, 123, 39, 95, 39, 125, 125, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 51, 50, 10, 45, 105, 102, 32, 123, 119, 125, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 32, 112, 97, 116, 104, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 47, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 51, 50, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 51, 50, 44, 123, 39, 126, 39, 125, 10, 112, 97, 116, 104, 61, 36, 112, 97, 116, 104, 64, 123, 48, 44, 116, 125, 47, 10, 45, 101, 110, 100, 105, 102, 10, 105, 115, 95, 102, 111, 108, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 36, 105, 115, 95, 102, 111, 108, 100, 101, 114, 32, 45, 114, 109, 91, 48, 93, 32, 45, 105, 91, 48, 93, 32, 40, 49, 48, 41, 10, 45, 101, 108, 115, 101, 32, 45, 110, 109, 91, 48, 93, 32, 36, 110, 97, 109, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 32, 121, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 34, 32, 38, 38, 32, 34, 36, 105, 110, 100, 62, 48, 125, 10, 45, 97, 91, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 123, 36, 105, 110, 100, 45, 49, 125, 93, 32, 121, 10, 111, 102, 102, 115, 101, 116, 61, 123, 36, 111, 102, 102, 115, 101, 116, 43, 36, 105, 110, 100, 45, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 49, 125, 10, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 61, 123, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 43, 49, 125, 10, 109, 101, 114, 103, 101, 95, 114, 101, 113, 117, 101, 115, 116, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 97, 91, 36, 109, 101, 114, 103, 101, 95, 115, 116, 97, 114, 116, 45, 45, 49, 93, 32, 121, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 62, 32, 70, 111, 114, 99, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 116, 111, 32, 109, 111, 118, 101, 44, 32, 105, 102, 32, 110, 101, 99, 101, 115, 115, 97, 114, 121, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 105, 110, 100, 61, 36, 62, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 95, 110, 98, 109, 32, 45, 105, 102, 32, 123, 64, 123, 36, 105, 110, 100, 44, 110, 125, 39, 61, 61, 39, 36, 123, 95, 116, 111, 95, 109, 111, 118, 101, 36, 62, 125, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 32, 32, 34, 36, 105, 110, 100, 34, 46, 32, 77, 111, 118, 101, 32, 39, 34, 64, 123, 36, 105, 110, 100, 44, 110, 125, 34, 39, 32, 116, 111, 32, 39, 34, 36, 123, 95, 109, 111, 118, 101, 95, 116, 111, 36, 62, 125, 34, 39, 46, 34, 32, 45, 118, 32, 45, 10, 45, 110, 97, 109, 101, 91, 36, 105, 110, 100, 93, 32, 36, 123, 95, 109, 111, 118, 101, 95, 116, 111, 36, 62, 125, 47, 64, 123, 36, 105, 110, 100, 44, 98, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 92, 110, 62, 32, 83, 111, 114, 116, 32, 102, 105, 108, 116, 101, 114, 115, 32, 98, 121, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 32, 111, 114, 100, 101, 114, 46, 34, 32, 45, 118, 32, 45, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 48, 44, 123, 64, 35, 45, 49, 125, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 82, 101, 98, 117, 105, 108, 100, 32, 102, 111, 108, 100, 101, 114, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 46, 34, 32, 45, 118, 32, 45, 10, 45, 109, 32, 34, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 58, 32, 45, 108, 91, 93, 32, 40, 123, 39, 36, 34, 34, 49, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 117, 32, 64, 35, 32, 45, 114, 109, 32, 45, 101, 110, 100, 108, 34, 10, 112, 97, 116, 104, 61, 47, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 112, 97, 116, 104, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 32, 34, 64, 123, 48, 44, 110, 125, 125, 10, 45, 105, 102, 32, 123, 36, 112, 97, 116, 104, 39, 33, 61, 39, 36, 110, 112, 97, 116, 104, 125, 10, 110, 99, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 112, 97, 116, 104, 125, 10, 110, 110, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 110, 112, 97, 116, 104, 125, 10, 110, 98, 95, 117, 112, 61, 48, 10, 110, 98, 95, 100, 111, 119, 110, 61, 48, 10, 98, 97, 115, 105, 115, 61, 36, 112, 97, 116, 104, 32, 110, 98, 97, 115, 105, 115, 61, 36, 110, 112, 97, 116, 104, 10, 45, 100, 111, 10, 110, 99, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 10, 110, 110, 61, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 10, 45, 105, 102, 32, 123, 36, 110, 99, 62, 36, 110, 110, 125, 32, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 117, 112, 61, 123, 36, 110, 98, 95, 117, 112, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 110, 110, 62, 36, 110, 99, 125, 32, 110, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 100, 111, 119, 110, 61, 123, 36, 110, 98, 95, 100, 111, 119, 110, 43, 49, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 110, 98, 97, 115, 105, 115, 39, 33, 61, 39, 36, 98, 97, 115, 105, 115, 125, 32, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 117, 112, 61, 123, 36, 110, 98, 95, 117, 112, 43, 49, 125, 32, 110, 98, 97, 115, 105, 115, 61, 64, 123, 34, 45, 112, 97, 114, 101, 110, 116, 91, 93, 32, 34, 36, 110, 98, 97, 115, 105, 115, 125, 32, 110, 98, 95, 100, 111, 119, 110, 61, 123, 36, 110, 98, 95, 100, 111, 119, 110, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 110, 98, 97, 115, 105, 115, 39, 33, 61, 39, 36, 98, 97, 115, 105, 115, 125, 10, 99, 111, 109, 109, 97, 110, 100, 61, 10, 45, 105, 102, 32, 36, 110, 98, 95, 117, 112, 32, 49, 44, 36, 110, 98, 95, 117, 112, 44, 49, 44, 49, 44, 123, 39, 95, 39, 125, 32, 99, 111, 109, 109, 97, 110, 100, 61, 34, 35, 64, 103, 105, 109, 112, 32, 34, 64, 123, 45, 49, 44, 116, 125, 34, 92, 110, 34, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 110, 98, 95, 100, 111, 119, 110, 32, 45, 108, 91, 93, 10, 40, 123, 39, 36, 110, 112, 97, 116, 104, 39, 125, 41, 32, 45, 115, 32, 45, 44, 123, 39, 47, 39, 125, 32, 45, 107, 91, 45, 36, 110, 98, 95, 100, 111, 119, 110, 45, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 108, 101, 118, 101, 108, 61, 123, 64, 123, 34, 45, 110, 98, 95, 108, 101, 118, 101, 108, 115, 32, 34, 36, 112, 97, 116, 104, 125, 45, 36, 110, 98, 95, 117, 112, 125, 10, 98, 97, 108, 105, 115, 101, 61, 64, 123, 34, 45, 105, 102, 32, 34, 123, 36, 108, 101, 118, 101, 108, 60, 61, 48, 34, 32, 38, 38, 32, 34, 123, 36, 110, 112, 97, 116, 104, 39, 33, 61, 39, 47, 65, 98, 111, 117, 116, 47, 125, 125, 34, 32, 45, 117, 32, 98, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 105, 32, 45, 101, 110, 100, 105, 102, 34, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 99, 111, 109, 109, 97, 110, 100, 61, 36, 99, 111, 109, 109, 97, 110, 100, 34, 35, 64, 103, 105, 109, 112, 32, 60, 34, 36, 98, 97, 108, 105, 115, 101, 34, 62, 34, 64, 123, 36, 62, 44, 116, 125, 34, 60, 47, 34, 36, 98, 97, 108, 105, 115, 101, 34, 62, 92, 110, 34, 10, 98, 97, 108, 105, 115, 101, 61, 34, 105, 34, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 10, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 99, 111, 109, 109, 97, 110, 100, 41, 125, 32, 110, 97, 109, 101, 61, 64, 123, 48, 44, 110, 125, 32, 45, 105, 91, 48, 93, 32, 40, 123, 39, 36, 99, 111, 109, 109, 97, 110, 100, 39, 125, 41, 32, 45, 121, 91, 48, 93, 32, 121, 32, 45, 97, 32, 121, 32, 45, 110, 109, 32, 36, 110, 97, 109, 101, 10, 45, 101, 110, 100, 105, 102, 10, 112, 97, 116, 104, 61, 36, 110, 112, 97, 116, 104, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 83, 97, 118, 101, 32, 111, 117, 116, 112, 117, 116, 32, 46, 103, 109, 105, 99, 32, 102, 105, 108, 101, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 45, 97, 32, 121, 32, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 123, 104, 45, 49, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 72, 79, 77, 69, 47, 46, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 44, 117, 99, 104, 97, 114, 10, 45, 120, 32, 34, 115, 99, 112, 32, 34, 36, 72, 79, 77, 69, 47, 46, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 34, 32, 114, 111, 110, 111, 117, 110, 111, 117, 114, 115, 44, 103, 109, 105, 99, 64, 119, 101, 98, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 58, 104, 116, 100, 111, 99, 115, 47, 34, 117, 112, 100, 97, 116, 101, 36, 49, 46, 103, 109, 105, 99, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 50, 10, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 79, 117, 116, 112, 117, 116, 32, 108, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 110, 32, 115, 116, 100, 111, 117, 116, 46, 92, 110, 34, 32, 45, 118, 32, 45, 10, 45, 101, 120, 101, 99, 32, 34, 100, 97, 116, 101, 32, 43, 37, 89, 44, 37, 109, 44, 37, 100, 32, 62, 34, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 100, 97, 116, 101, 46, 100, 108, 109, 10, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 100, 97, 116, 101, 46, 100, 108, 109, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 42, 42, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 110, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 112, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 32, 40, 34, 36, 110, 98, 95, 102, 105, 108, 116, 101, 114, 115, 34, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 111, 110, 32, 34, 123, 105, 125, 47, 123, 105, 40, 49, 41, 125, 47, 123, 105, 40, 50, 41, 125, 34, 41, 32, 42, 42, 42, 92, 110, 34, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 115, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 97, 116, 104, 58, 92, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 39, 64, 123, 48, 44, 110, 125, 39, 125, 41, 32, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 33, 39, 125, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 45, 49, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 49, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 44, 123, 39, 38, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 38, 35, 50, 51, 51, 59, 34, 39, 125, 125, 44, 123, 39, 101, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 123, 39, 47, 39, 125, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 126, 47, 126, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 91, 93, 32, 34, 32, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 92, 110, 42, 32, 76, 105, 115, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 44, 32, 115, 111, 114, 116, 101, 100, 32, 97, 108, 112, 104, 97, 98, 101, 116, 105, 99, 97, 108, 108, 121, 58, 92, 110, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 110, 97, 109, 101, 61, 64, 123, 36, 62, 44, 98, 125, 10, 112, 97, 116, 104, 61, 64, 123, 36, 62, 44, 102, 125, 10, 45, 110, 109, 91, 36, 62, 93, 32, 36, 110, 97, 109, 101, 34, 126, 40, 105, 110, 126, 39, 34, 36, 112, 97, 116, 104, 34, 39, 41, 34, 10, 45, 100, 111, 110, 101, 10, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 48, 44, 123, 64, 35, 45, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 40, 123, 39, 64, 123, 48, 44, 110, 125, 39, 125, 41, 32, 45, 105, 102, 32, 123, 105, 33, 61, 123, 39, 33, 39, 125, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 38, 97, 109, 112, 59, 39, 125, 125, 44, 123, 39, 38, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 115, 101, 113, 91, 45, 49, 93, 32, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 123, 39, 34, 38, 35, 50, 51, 51, 59, 34, 39, 125, 125, 44, 123, 39, 101, 39, 125, 10, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 126, 39, 125, 44, 51, 50, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 91, 93, 32, 34, 32, 32, 34, 64, 123, 45, 49, 44, 116, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 34, 92, 110, 42, 42, 42, 32, 69, 110, 100, 32, 111, 102, 32, 108, 105, 115, 116, 32, 42, 42, 42, 92, 110, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 118, 32, 43, 32, 45, 101, 91, 93, 32, 34, 62, 32, 65, 108, 108, 32, 100, 111, 110, 101, 32, 33, 92, 110, 34, 10, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 58, 10, 109, 105, 100, 61, 123, 105, 110, 116, 40, 40, 36, 49, 43, 36, 50, 41, 47, 50, 41, 125, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 49, 44, 110, 125, 44, 64, 123, 36, 109, 105, 100, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 49, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 109, 105, 100, 44, 110, 125, 44, 64, 123, 36, 50, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 50, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 49, 44, 110, 125, 44, 64, 123, 36, 109, 105, 100, 44, 110, 125, 125, 32, 45, 114, 118, 91, 36, 49, 44, 36, 109, 105, 100, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 45, 36, 49, 62, 61, 51, 125, 10, 112, 105, 118, 111, 116, 61, 64, 123, 36, 109, 105, 100, 44, 110, 125, 10, 105, 61, 36, 49, 32, 106, 61, 36, 50, 10, 45, 100, 111, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 36, 112, 105, 118, 111, 116, 44, 64, 123, 36, 105, 44, 110, 125, 125, 32, 45, 100, 111, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 36, 112, 105, 118, 111, 116, 44, 64, 123, 36, 105, 44, 110, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 106, 44, 110, 125, 44, 36, 112, 105, 118, 111, 116, 125, 32, 45, 100, 111, 32, 106, 61, 123, 36, 106, 45, 49, 125, 32, 45, 119, 104, 105, 108, 101, 32, 64, 123, 34, 45, 95, 109, 97, 120, 91, 93, 32, 34, 64, 123, 36, 106, 44, 110, 125, 44, 36, 112, 105, 118, 111, 116, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 60, 61, 36, 106, 125, 32, 45, 114, 118, 91, 36, 105, 44, 36, 106, 93, 32, 105, 61, 123, 36, 105, 43, 49, 125, 32, 106, 61, 123, 36, 106, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 119, 104, 105, 108, 101, 32, 123, 36, 105, 60, 61, 36, 106, 125, 10, 45, 105, 102, 32, 123, 36, 49, 60, 36, 106, 125, 32, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 36, 49, 44, 36, 106, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 60, 36, 50, 125, 32, 45, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 115, 111, 114, 116, 32, 36, 105, 44, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 95, 117, 112, 100, 97, 116, 101, 95, 103, 109, 105, 99, 95, 103, 105, 109, 112, 95, 109, 111, 118, 101, 32, 58, 10, 45, 105, 102, 32, 123, 33, 110, 97, 114, 103, 40, 36, 95, 110, 98, 109, 41, 125, 32, 95, 110, 98, 109, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 95, 116, 111, 95, 109, 111, 118, 101, 36, 123, 95, 110, 98, 109, 125, 61, 34, 36, 49, 34, 32, 95, 109, 111, 118, 101, 95, 116, 111, 36, 123, 95, 110, 98, 109, 125, 61, 34, 36, 50, 34, 32, 95, 110, 98, 109, 61, 123, 36, 95, 110, 98, 109, 43, 49, 125, 10, 95, 98, 101, 102, 111, 114, 101, 32, 58, 10, 51, 51, 44, 49, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 66, 101, 102, 111, 114, 101, 34, 44, 49, 44, 45, 49, 44, 49, 51, 44, 49, 44, 49, 10, 95, 97, 102, 116, 101, 114, 32, 58, 10, 50, 54, 44, 49, 49, 32, 45, 116, 91, 45, 49, 93, 32, 34, 65, 102, 116, 101, 114, 34, 44, 49, 44, 45, 49, 44, 49, 51, 44, 49, 44, 49, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 101, 91, 93, 32, 34, 36, 49, 34, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 40, 36, 50, 37, 50, 41, 125, 10, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 108, 91, 45, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 97, 102, 116, 101, 114, 32, 45, 95, 98, 101, 102, 111, 114, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 48, 44, 64, 123, 45, 51, 44, 104, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 51, 93, 32, 120, 10, 45, 101, 108, 115, 101, 10, 45, 115, 91, 45, 49, 93, 32, 121, 44, 50, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 125, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 108, 91, 45, 50, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 125, 32, 45, 95, 97, 102, 116, 101, 114, 32, 45, 95, 98, 101, 102, 111, 114, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 108, 91, 45, 49, 93, 32, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 95, 98, 101, 102, 111, 114, 101, 32, 45, 95, 97, 102, 116, 101, 114, 10, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 51, 93, 32, 48, 44, 48, 44, 64, 123, 45, 51, 44, 119, 125, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 52, 44, 45, 51, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 52, 44, 45, 51, 93, 32, 64, 123, 45, 53, 44, 115, 125, 10, 45, 106, 91, 45, 53, 93, 32, 91, 45, 52, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 45, 50, 93, 32, 45, 106, 91, 45, 53, 93, 32, 91, 45, 51, 93, 44, 123, 64, 123, 45, 53, 44, 119, 125, 45, 119, 45, 49, 125, 44, 123, 64, 123, 45, 53, 44, 104, 125, 45, 104, 45, 49, 125, 44, 48, 44, 48, 44, 48, 46, 56, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 52, 45, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 78, 111, 32, 112, 114, 101, 118, 105, 101, 119, 92, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 34, 44, 34, 36, 42, 34, 10, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 62, 48, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 44, 49, 44, 49, 44, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 49, 49, 56, 44, 53, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 50, 44, 49, 44, 50, 52, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 10, 40, 49, 46, 53, 44, 48, 44, 49, 46, 53, 59, 48, 44, 48, 44, 48, 59, 49, 46, 53, 44, 48, 44, 49, 46, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 111, 114, 10, 45, 115, 107, 105, 112, 32, 34, 36, 42, 34, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 65, 98, 111, 117, 116, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 110, 116, 114, 105, 98, 117, 116, 111, 114, 115, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 101, 32, 119, 111, 117, 108, 100, 32, 108, 105, 107, 101, 32, 116, 111, 32, 116, 104, 97, 110, 107, 32, 97, 108, 108, 32, 116, 104, 101, 115, 101, 32, 112, 101, 111, 112, 108, 101, 32, 119, 104, 111, 32, 99, 111, 110, 116, 114, 105, 98, 117, 116, 101, 100, 32, 116, 111, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 105, 110, 32, 111, 110, 101, 32, 119, 97, 121, 32, 111, 114, 32, 97, 110, 111, 116, 104, 101, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 98, 105, 103, 32, 104, 117, 103, 32, 116, 111, 32, 58, 32, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 83, 121, 108, 118, 105, 101, 32, 65, 108, 101, 120, 97, 110, 100, 114, 101, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 44, 32, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 80, 97, 114, 116, 104, 97, 32, 66, 97, 103, 99, 104, 105, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 83, 38, 35, 50, 51, 51, 59, 98, 97, 115, 116, 105, 101, 110, 32, 66, 111, 117, 103, 108, 101, 117, 120, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 100, 101, 98, 117, 103, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 99, 111, 100, 101, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 67, 108, 97, 117, 100, 101, 32, 66, 117, 108, 105, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 65, 117, 114, 38, 35, 50, 51, 51, 59, 108, 105, 101, 110, 32, 67, 101, 121, 100, 101, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 70, 114, 97, 110, 38, 35, 50, 51, 49, 59, 111, 105, 115, 32, 67, 111, 108, 108, 97, 114, 100, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 77, 97, 120, 105, 109, 101, 32, 68, 97, 105, 115, 121, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 99, 111, 100, 101, 32, 38, 97, 109, 112, 59, 32, 116, 101, 115, 116, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 82, 111, 98, 101, 114, 116, 111, 32, 70, 101, 114, 114, 97, 109, 111, 115, 99, 97, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 70, 101, 114, 114, 97, 114, 105, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 44, 32, 99, 111, 100, 101, 32, 38, 97, 109, 112, 59, 32, 116, 117, 116, 111, 114, 105, 97, 108, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 67, 104, 114, 105, 115, 32, 70, 105, 101, 100, 108, 101, 114, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 103, 102, 120, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 83, 38, 35, 50, 51, 51, 59, 98, 97, 115, 116, 105, 101, 110, 32, 70, 111, 117, 114, 101, 121, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 90, 65, 114, 116, 32, 99, 111, 100, 101, 32, 38, 97, 109, 112, 59, 32, 71, 39, 77, 73, 67, 32, 111, 110, 108, 105, 110, 101, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 71, 101, 110, 116, 108, 101, 109, 97, 110, 98, 101, 103, 103, 97, 114, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 67, 108, 97, 101, 115, 32, 72, 111, 108, 109, 101, 114, 115, 111, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 117, 116, 111, 114, 105, 97, 108, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 44, 32, 102, 105, 108, 116, 101, 114, 115, 32, 38, 97, 109, 112, 59, 32, 116, 117, 116, 111, 114, 105, 97, 108, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 65, 110, 100, 121, 32, 75, 101, 108, 100, 97, 121, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 65, 110, 103, 101, 108, 111, 32, 76, 97, 109, 97, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 69, 75, 68, 32, 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 83, 116, 38, 35, 50, 51, 51, 59, 112, 104, 97, 110, 101, 32, 100, 101, 32, 108, 97, 32, 76, 105, 110, 117, 120, 101, 114, 105, 101, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 100, 101, 115, 105, 103, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 77, 97, 114, 107, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 77, 97, 104, 118, 105, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 100, 101, 115, 105, 103, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 77, 97, 114, 101, 114, 111, 81, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 82, 97, 109, 111, 110, 32, 77, 105, 114, 97, 110, 100, 97, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 77, 97, 117, 114, 111, 32, 81, 117, 101, 114, 99, 105, 97, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 44, 32, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32, 38, 97, 109, 112, 59, 32, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 74, 97, 109, 101, 115, 32, 80, 114, 105, 99, 104, 97, 114, 100, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 101, 115, 116, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 102, 105, 108, 116, 101, 114, 115, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 71, 117, 105, 108, 104, 101, 114, 109, 101, 32, 82, 97, 122, 103, 114, 105, 122, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 75, 97, 114, 115, 116, 101, 110, 32, 82, 111, 100, 101, 110, 97, 99, 107, 101, 114, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 32, 38, 97, 109, 112, 59, 32, 99, 111, 100, 101, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 68, 97, 110, 105, 32, 83, 97, 114, 100, 38, 35, 50, 50, 52, 59, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 89, 117, 114, 105, 32, 83, 104, 101, 109, 97, 110, 105, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 100, 101, 98, 117, 103, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 84, 104, 111, 114, 115, 116, 101, 110, 32, 34, 111, 116, 116, 111, 34, 32, 83, 116, 101, 116, 116, 105, 110, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 83, 116, 101, 112, 97, 110, 101, 107, 111, 115, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 116, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 32, 60, 105, 62, 66, 101, 114, 110, 100, 32, 90, 101, 105, 109, 101, 116, 122, 60, 47, 105, 62, 32, 60, 115, 109, 97, 108, 108, 62, 40, 112, 97, 99, 107, 97, 103, 105, 110, 103, 41, 60, 47, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 32, 45, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 67, 114, 38, 35, 50, 51, 51, 59, 97, 116, 105, 111, 110, 32, 100, 101, 32, 102, 105, 108, 116, 114, 101, 115, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 101, 115, 116, 32, 117, 110, 32, 115, 121, 115, 116, -61, -88, 109, 101, 32, 60, 98, 62, 111, 117, 118, 101, 114, 116, 60, 47, 98, 62, 32, 100, 101, 32, 116, 114, 97, 105, 116, 101, 109, 101, 110, 116, 32, 100, 39, 105, 109, 97, 103, 101, 46, 32, 73, 108, 32, 101, 115, 116, 32, 97, 105, 110, 115, 105, 32, 112, 111, 115, 115, 105, 98, 108, 101, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 100, 39, 97, 106, 111, 117, 116, 101, 114, 32, 118, 111, 115, 32, 60, 98, 62, 112, 114, 111, 112, 114, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 112, 101, 114, 115, 111, 110, 110, 97, 108, 105, 115, -61, -87, 115, 60, 47, 98, 62, 32, -61, -96, 32, 108, 39, 105, 110, 116, -61, -87, 114, 105, 101, 117, 114, 32, 109, -61, -86, 109, 101, 32, 100, 101, 32, 99, 101, 32, 103, 114, 101, 102, 102, 111, 110, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 80, 111, 117, 114, 32, 99, 101, 108, 97, 44, 32, 105, 108, 32, 118, 111, 117, 115, 32, 115, 117, 102, 102, 105, 116, 32, 100, 101, 32, 99, 114, 38, 35, 50, 51, 51, 59, 101, 114, 32, 117, 110, 32, 102, 105, 99, 104, 105, 101, 114, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 115, 116, 121, 108, 101, 61, 34, 105, 116, 97, 108, 105, 99, 34, 62, 46, 103, 109, 105, 99, 60, 47, 115, 112, 97, 110, 62, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 100, 97, 110, 115, 32, 118, 111, 116, 114, 101, 32, 100, 111, 115, 115, 105, 101, 114, 32, 60, 105, 62, 72, 111, 109, 101, 60, 47, 105, 62, 32, 40, 111, 117, 32, 60, 105, 62, 65, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 32, 68, 97, 116, 97, 47, 60, 47, 105, 62, 32, 115, 111, 117, 115, 32, 87, 105, 110, 100, 111, 119, 115, 44, 32, 115, 97, 110, 115, 32, 108, 101, 32, 112, 114, 101, 109, 105, 101, 114, 32, 112, 111, 105, 110, 116, 41, 46, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 67, 101, 32, 102, 105, 99, 104, 105, 101, 114, 32, 118, 97, 32, -61, -86, 116, 114, 101, 32, 108, 117, 32, 38, 35, 50, 50, 52, 59, 32, 99, 104, 97, 113, 117, 101, 32, 100, 38, 35, 50, 51, 51, 59, 109, 97, 114, 114, 97, 103, 101, 32, 100, 117, 32, 103, 114, 101, 102, 102, 111, 110, 44, 32, 111, 117, 32, 108, 111, 114, 115, 113, 117, 101, 32, 108, 101, 32, 98, 111, 117, 116, 111, 110, 32, 60, 105, 62, 65, 99, 116, 117, 97, 108, 105, 115, 101, 114, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 40, 115, 111, 117, 115, 32, 108, 101, 32, 112, 97, 110, 110, 101, 97, 117, 32, 99, 101, 110, 116, 114, 97, 108, 41, 32, 115, 101, 114, 97, 32, 99, 108, 105, 113, 117, 38, 35, 50, 51, 51, 59, 46, 32, 67, 101, 32, 102, 105, 99, 104, 105, 101, 114, 32, 65, 83, 67, 73, 73, 32, 118, 97, 32, 99, 111, 110, 116, 101, 110, 105, 114, 32, 108, 101, 115, 32, 100, -61, -87, 99, 108, 97, 114, 97, 116, 105, 111, 110, 115, 32, 101, 116, 32, 108, 101, 115, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 105, 109, 112, 108, -61, -87, 109, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 100, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 40, -61, -87, 99, 114, 105, 116, 115, 32, 101, 110, 32, 108, 97, 110, 103, 97, 103, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 41, 32, 113, 117, 105, 32, 118, 111, 110, 116, 32, 115, 39, 97, 106, 111, 117, 116, 101, 114, 32, -61, -96, 32, 108, 97, 32, 108, 105, 115, 116, 101, 32, 100, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 100, 105, 115, 112, 111, 110, 105, 98, 108, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 84, 111, 117, 115, 32, 108, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 101, 120, 105, 115, 116, 97, 110, 116, 115, 32, 115, 111, 110, 116, 32, 100, -61, -87, 106, -61, -96, 32, 100, -61, -87, 102, 105, 110, 105, 115, 32, 100, 101, 32, 99, 101, 116, 116, 101, 32, 102, 97, -61, -89, 111, 110, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 69, 99, 114, 105, 114, 101, 32, 117, 110, 32, 102, 105, 108, 116, 114, 101, 32, 101, 110, 32, 108, 97, 110, 103, 97, 103, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 110, 39, 101, 115, 116, 32, 112, 97, 115, 32, 112, 97, 114, 116, 105, 99, 117, 108, 105, -61, -88, 114, 101, 109, 101, 110, 116, 32, 100, 105, 102, 102, 105, 99, 105, 108, 101, 32, 40, 115, 97, 110, 115, 32, -61, -86, 116, 114, 101, 32, 116, 114, 105, 118, 105, 97, 108, 41, 44, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 101, 116, 32, 110, 101, 32, 110, 38, 35, 50, 51, 51, 59, 99, 101, 115, 115, 105, 116, 101, 32, 115, 111, 117, 118, 101, 110, 116, 32, 113, 117, 101, 32, 113, 117, 101, 108, 113, 117, 101, 115, 32, 108, 105, 103, 110, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 117, 110, 100, 101, 114, 108, 105, 110, 101, 61, 34, 115, 105, 110, 103, 108, 101, 34, 62, 69, 120, 101, 109, 112, 108, 101, 32, 100, 101, 32, 102, 105, 99, 104, 105, 101, 114, 32, 60, 105, 62, 46, 103, 109, 105, 99, 60, 47, 105, 62, 32, 118, 97, 108, 105, 100, 101, 32, 58, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 60, 116, 116, 62, 35, 64, 103, 105, 109, 112, 32, 77, 121, 32, 101, 102, 102, 101, 99, 116, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 44, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 44, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 32, 58, 92, 110, 32, 32, 32, 32, 32, 45, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 120, 111, 114, 60, 47, 116, 116, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 86, 111, 117, 115, 32, 38, 35, 50, 51, 52, 59, 116, 101, 115, 32, 98, 105, 101, 110, 32, 115, 38, 35, 50, 53, 49, 59, 114, 32, 101, 110, 99, 111, 117, 114, 97, 103, 38, 35, 50, 51, 51, 59, 115, 32, 38, 35, 50, 50, 52, 59, 32, 112, 97, 114, 116, 97, 103, 101, 114, 32, 118, 111, 115, 32, 112, 114, 111, 112, 114, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 115, 117, 114, 32, 108, 101, 32, 102, 111, 114, 117, 109, 32, 112, 114, 38, 35, 50, 51, 51, 59, 118, 117, 32, 38, 35, 50, 50, 52, 59, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 99, 101, 116, 32, 101, 102, 102, 101, 116, 44, 32, 112, 111, 117, 114, 32, 117, 110, 101, 32, 105, 110, 99, 108, 117, 115, 105, 111, 110, 32, -61, -87, 118, 101, 110, 116, 117, 101, 108, 108, 101, 32, 100, 97, 110, 115, 32, 108, 101, 115, 32, 112, 114, 111, 99, 104, 97, 105, 110, 101, 115, 32, 118, 101, 114, 115, 105, 111, 110, 115, 32, 100, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 58, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 80, 97, 114, 116, 105, 99, 105, 112, 101, 114, 32, 97, 117, 32, 102, 111, 114, 117, 109, 32, 71, 39, 77, 73, 67, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 112, 114, 111, 106, 101, 99, 116, 115, 47, 103, 109, 105, 99, 47, 102, 111, 114, 117, 109, 115, 47, 102, 111, 114, 117, 109, 47, 56, 52, 57, 51, 56, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 70, 105, 108, 116, 101, 114, 115, 32, 100, 101, 115, 105, 103, 110, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 83, 105, 32, 118, 111, 108, 101, 117, 32, 112, 111, 100, 101, 117, 32, 97, 102, 101, 103, 105, 114, 32, 101, 108, 115, 32, 118, 111, 115, 116, 114, 101, 115, 32, 60, 98, 62, 102, 105, 108, 116, 114, 101, 115, 32, 100, 39, 117, 115, 117, 97, 114, 105, 60, 47, 98, 62, 32, 97, 108, 32, 99, 111, 110, 110, 101, 99, 116, 111, 114, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 58, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 80, 101, 114, 32, 97, 32, 102, 101, 114, 45, 104, 111, 44, 32, 99, 97, 108, 32, 113, 117, 101, 32, 99, 114, 101, 101, 117, 32, 117, 110, 32, 102, 105, 116, 120, 101, 114, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 115, 116, 121, 108, 101, 61, 34, 105, 116, 97, 108, 105, 99, 34, 62, 46, 103, 109, 105, 99, 60, 47, 115, 112, 97, 110, 62, 32, 40, 110, 111, 32, 111, 98, 108, 105, 100, 101, 117, 32, 101, 108, 32, 112, 114, 105, 109, 101, 114, 32, 112, 117, 110, 116, 32, 33, 41, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 97, 32, 108, 97, 32, 118, 111, 115, 116, 114, 97, 32, 60, 105, 62, 67, 97, 114, 112, 101, 116, 97, 32, 100, 39, 105, 110, 105, 99, 105, 60, 47, 105, 62, 32, 40, 111, 32, 97, 32, 108, 97, 32, 99, 97, 114, 112, 101, 116, 97, 32, 60, 105, 62, 65, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 32, 68, 97, 116, 97, 60, 47, 105, 62, 32, 97, 108, 32, 87, 105, 110, 100, 111, 119, 115, 41, 46, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 69, 108, 32, 99, 111, 110, 110, 101, 99, 116, 111, 114, 32, 101, 108, 32, 108, 108, 101, 103, 105, 114, 38, 35, 50, 50, 52, 59, 32, 99, 97, 100, 97, 32, 118, 101, 103, 97, 100, 97, 32, 113, 117, 101, 32, 115, 39, 97, 114, 114, 97, 110, 113, 117, 105, 44, 32, 111, 32, 113, 117, 97, 110, 32, 112, 114, 101, 109, 101, 117, 32, 101, 108, 32, 98, 111, 116, 38, 35, 50, 52, 51, 59, 32, 60, 105, 62, 65, 99, 116, 117, 97, 108, 105, 116, 122, 97, 114, 32, 101, 108, 115, 32, 102, 105, 108, 116, 114, 101, 115, 60, 47, 105, 62, 46, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 65, 113, 117, 101, 115, 116, 32, 102, 105, 116, 120, 101, 114, 32, 104, 97, 32, 100, 101, 32, 115, 101, 114, 32, 117, 110, 32, 97, 114, 120, 105, 117, 32, 100, 101, 32, 99, 111, 109, 109, 97, 110, 100, 32, 100, 101, 108, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 44, 32, 105, 32, 104, 97, 32, 100, 101, 32, 99, 111, 110, 116, 105, 110, 100, 114, 101, 32, 108, 101, 115, 32, 100, 101, 102, 105, 110, 105, 99, 105, 111, 110, 115, 32, 100, 101, 32, 102, 105, 108, 116, 114, 101, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 113, 117, 101, 32, 104, 97, 110, 32, 100, 39, 97, 112, 97, 114, 38, 35, 50, 51, 50, 59, 105, 120, 101, 114, 32, 97, 32, 108, 97, 32, 108, 108, 105, 115, 116, 97, 32, 100, 101, 32, 102, 105, 108, 116, 114, 101, 115, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 69, 115, 99, 114, 105, 117, 114, 101, 32, 117, 110, 32, 110, 111, 117, 32, 102, 105, 108, 116, 114, 101, 32, 97, 109, 98, 32, 101, 108, 32, 108, 108, 101, 110, 103, 117, 97, 116, 103, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 110, 111, 32, 38, 35, 50, 51, 51, 59, 115, 32, 116, 114, 105, 118, 105, 97, 108, 32, 100, 101, 108, 32, 116, 111, 116, 32, 40, 112, 101, 114, 38, 35, 50, 52, 50, 59, 32, 116, 97, 109, 112, 111, 99, 32, 117, 110, 97, 32, 99, 111, 115, 97, 32, 105, 110, 97, 98, 97, 115, 116, 97, 98, 108, 101, 41, 44, 32, 112, 101, 114, 38, 35, 50, 52, 50, 59, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 114, 109, 97, 108, 109, 101, 110, 116, 32, 101, 115, 32, 112, 111, 116, 32, 102, 101, 114, 32, 101, 110, 32, 117, 110, 101, 115, 32, 113, 117, 97, 110, 116, 101, 115, 32, 108, 38, 35, 50, 51, 55, 59, 110, 105, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 117, 110, 100, 101, 114, 108, 105, 110, 101, 61, 34, 115, 105, 110, 103, 108, 101, 34, 62, 69, 120, 97, 109, 112, 108, 101, 32, 100, 39, 117, 110, 32, 102, 105, 116, 120, 101, 114, 32, 60, 105, 62, 46, 103, 109, 105, 99, 60, 47, 105, 62, 32, 118, 38, 35, 50, 50, 52, 59, 108, 105, 100, 32, 58, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 60, 116, 116, 62, 35, 64, 103, 105, 109, 112, 32, 77, 121, 32, 101, 102, 102, 101, 99, 116, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 44, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 44, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 32, 58, 92, 110, 32, 32, 45, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 120, 111, 114, 60, 47, 116, 116, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 80, 101, 114, 32, 99, 101, 114, 116, 44, 32, 117, 115, 32, 101, 110, 99, 111, 114, 97, 116, 103, 101, 109, 32, 97, 32, 113, 117, 101, 32, 99, 111, 109, 112, 97, 114, 116, 105, 117, 32, 101, 108, 115, 32, 118, 111, 115, 116, 114, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 112, 101, 114, 115, 111, 110, 97, 108, 105, 116, 122, 97, 116, 115, 32, 97, 108, 32, 102, 38, 35, 50, 52, 50, 59, 114, 117, 109, 32, 101, 115, 112, 101, 99, 38, 35, 50, 51, 55, 59, 102, 105, 99, 32, 100, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 58, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 69, 110, 108, 108, 97, 92, 51, 48, 51, 92, 50, 52, 55, 97, 32, 97, 108, 32, 102, 92, 51, 48, 51, 92, 50, 54, 50, 114, 117, 109, 32, 71, 39, 77, 73, 67, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 112, 114, 111, 106, 101, 99, 116, 115, 47, 103, 109, 105, 99, 47, 102, 111, 114, 117, 109, 115, 47, 102, 111, 114, 117, 109, 47, 56, 52, 57, 51, 56, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 70, 105, 108, 116, 101, 114, 115, 32, 100, 101, 115, 105, 103, 110, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 105, 115, 32, 97, 110, 32, 60, 98, 62, 111, 112, 101, 110, 60, 47, 98, 62, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 102, 114, 97, 109, 101, 119, 111, 114, 107, 46, 32, 84, 104, 117, 115, 44, 32, 105, 110, 99, 108, 117, 100, 105, 110, 103, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 98, 62, 117, 115, 101, 114, 45, 100, 101, 102, 105, 110, 101, 100, 32, 102, 105, 108, 116, 101, 114, 115, 60, 47, 98, 62, 32, 105, 110, 116, 111, 32, 116, 104, 105, 115, 32, 112, 108, 117, 103, 45, 105, 110, 32, 105, 115, 32, 112, 111, 115, 115, 105, 98, 108, 101, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 84, 111, 32, 100, 111, 32, 115, 111, 44, 32, 121, 111, 117, 32, 110, 101, 101, 100, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 97, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 115, 116, 121, 108, 101, 61, 34, 105, 116, 97, 108, 105, 99, 34, 62, 46, 103, 109, 105, 99, 60, 47, 115, 112, 97, 110, 62, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 102, 105, 108, 101, 32, 105, 110, 32, 121, 111, 117, 114, 32, 60, 105, 62, 72, 111, 109, 101, 60, 47, 105, 62, 32, 102, 111, 108, 100, 101, 114, 32, 40, 111, 114, 32, 60, 105, 62, 65, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 32, 68, 97, 116, 97, 47, 60, 47, 105, 62, 32, 111, 110, 32, 87, 105, 110, 100, 111, 119, 115, 44, 32, 119, 105, 116, 104, 111, 117, 116, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 100, 111, 116, 41, 46, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 73, 116, 32, 119, 105, 108, 108, 32, 98, 101, 32, 114, 101, 97, 100, 32, 101, 97, 99, 104, 32, 116, 105, 109, 101, 32, 116, 104, 101, 32, 112, 108, 117, 103, 45, 105, 110, 32, 105, 115, 32, 108, 97, 117, 110, 99, 104, 101, 100, 44, 32, 111, 114, 32, 119, 104, 101, 110, 32, 116, 104, 101, 32, 60, 105, 62, 82, 101, 102, 114, 101, 115, 104, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 98, 117, 116, 116, 111, 110, 32, 40, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 99, 101, 110, 116, 114, 97, 108, 32, 112, 97, 110, 101, 41, 32, 105, 115, 32, 112, 114, 101, 115, 115, 101, 100, 46, 32, 73, 116, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 32, 114, 101, 103, 117, 108, 97, 114, 32, 65, 83, 67, 73, 73, 32, 102, 105, 108, 101, 44, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 116, 104, 101, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 40, 119, 114, 105, 116, 116, 101, 110, 32, 105, 110, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 108, 97, 110, 103, 117, 97, 103, 101, 41, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 98, 101, 32, 97, 100, 100, 101, 100, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 116, 111, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 111, 110, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 69, 120, 105, 115, 116, 105, 110, 103, 32, 102, 105, 108, 116, 101, 114, 115, 32, 97, 114, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 100, 101, 102, 105, 110, 101, 100, 32, 116, 104, 105, 115, 32, 119, 97, 121, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 87, 114, 105, 116, 105, 110, 103, 32, 97, 32, 110, 101, 119, 32, 102, 105, 108, 116, 101, 114, 32, 105, 110, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 105, 115, 32, 110, 111, 116, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 108, 121, 32, 97, 119, 102, 117, 108, 32, 97, 110, 100, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 99, 97, 110, 32, 98, 101, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 100, 111, 110, 101, 32, 105, 110, 32, 118, 101, 114, 121, 32, 102, 101, 119, 32, 108, 105, 110, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 117, 110, 100, 101, 114, 108, 105, 110, 101, 61, 34, 115, 105, 110, 103, 108, 101, 34, 62, 69, 120, 97, 109, 112, 108, 101, 32, 111, 102, 32, 97, 32, 118, 97, 108, 105, 100, 32, 60, 105, 62, 46, 103, 109, 105, 99, 60, 47, 105, 62, 32, 101, 110, 116, 114, 121, 32, 58, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 116, 116, 62, 35, 64, 103, 105, 109, 112, 32, 77, 121, 32, 101, 102, 102, 101, 99, 116, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 44, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 109, 121, 95, 101, 102, 102, 101, 99, 116, 32, 58, 92, 110, 32, 32, 32, 32, 32, 45, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 120, 111, 114, 60, 47, 116, 116, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 66, 121, 32, 116, 104, 101, 32, 119, 97, 121, 44, 32, 121, 111, 117, 32, 97, 114, 101, 32, 101, 110, 99, 111, 117, 114, 97, 103, 101, 100, 32, 116, 111, 32, 115, 104, 97, 114, 101, 32, 121, 111, 117, 114, 32, 110, 105, 99, 101, 32, 99, 117, 115, 116, 111, 109, 32, 102, 105, 108, 116, 101, 114, 115, 32, 111, 110, 32, 116, 104, 101, 32, 100, 101, 100, 105, 99, 97, 116, 101, 100, 32, 102, 111, 114, 117, 109, 44, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 102, 111, 114, 32, 105, 110, 99, 108, 117, 115, 105, 111, 110, 32, 105, 110, 116, 111, 32, 110, 101, 120, 116, 32, 114, 101, 108, 101, 97, 115, 101, 115, 32, 111, 102, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 58, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 71, 111, 32, 116, 111, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 102, 111, 114, 117, 109, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 103, 114, 111, 117, 112, 115, 47, 103, 109, 105, 99, 47, 100, 105, 115, 99, 117, 115, 115, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 70, 105, 108, 116, 101, 114, 32, 115, 111, 117, 114, 99, 101, 115, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 72, 101, 114, 101, 32, 121, 111, 117, 32, 99, 97, 110, 32, 115, 101, 101, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 102, 105, 108, 116, 101, 114, 32, 115, 111, 117, 114, 99, 101, 115, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 101, 110, 97, 98, 108, 101, 100, 32, 105, 110, 32, 121, 111, 117, 114, 32, 112, 108, 117, 103, 45, 105, 110, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 115, 116, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 44, 32, 116, 104, 101, 114, 101, 32, 119, 105, 108, 108, 32, 98, 101, 32, 111, 110, 108, 121, 32, 116, 119, 111, 32, 105, 116, 101, 109, 115, 32, 108, 105, 115, 116, 101, 100, 32, 116, 104, 101, 114, 101, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 45, 107, 91, 48, 93, 32, 45, 102, 32, 48, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 93, 32, 45, 103, 105, 109, 112, 95, 102, 105, 108, 116, 101, 114, 95, 115, 111, 117, 114, 99, 101, 115, 32, 45, 121, 32, 120, 32, 45, 97, 32, 121, 32, 45, 111, 110, 102, 97, 105, 108, 32, 40, 48, 41, 32, 45, 101, 110, 100, 108, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 69, 110, 97, 98, 108, 101, 100, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 115, 111, 117, 114, 99, 101, 115, 58, 92, 110, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 34, 44, 53, 44, 53, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 104, 125, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 36, 62, 10, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 48, 45, 51, 125, 39, 61, 61, 39, 123, 39, 104, 116, 116, 112, 39, 125, 125, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 91, 123, 49, 43, 36, 62, 125, 93, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 44, 53, 44, 123, 51, 50, 43, 49, 53, 42, 36, 62, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 91, 123, 49, 43, 36, 62, 125, 93, 34, 32, 34, 64, 123, 45, 49, 44, 116, 125, 34, 32, 40, 108, 111, 99, 97, 108, 32, 102, 105, 108, 101, 41, 34, 44, 53, 44, 123, 51, 50, 43, 49, 53, 42, 36, 62, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 105, 101, 110, 100, 115, 32, 72, 97, 108, 108, 32, 111, 102, 32, 70, 97, 109, 101, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 102, 114, 105, 101, 110, 100, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 117, 110, 100, 101, 114, 108, 105, 110, 101, 61, 34, 115, 105, 110, 103, 108, 101, 34, 62, 68, 111, 110, 97, 116, 111, 114, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 60, 98, 62, 45, 60, 47, 98, 62, 32, 87, 101, 39, 118, 101, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 60, 98, 62, 49, 53, 60, 47, 98, 62, 32, 100, 111, 110, 97, 116, 105, 111, 110, 115, 32, 102, 114, 111, 109, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 109, 101, 103, 97, 45, 101, 110, 116, 104, 117, 115, 105, 97, 115, 116, 115, 32, 115, 111, 32, 102, 97, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 111, 117, 32, 99, 111, 117, 108, 100, 32, 98, 101, 32, 116, 104, 101, 32, 49, 54, 116, 104, 32, 100, 111, 110, 97, 116, 111, 114, 32, 58, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 60, 115, 109, 97, 108, 108, 62, 78, 111, 116, 101, 58, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 98, 62, 32, 68, 111, 110, 97, 116, 105, 111, 110, 115, 32, 97, 114, 101, 32, 109, 97, 105, 110, 108, 121, 32, 117, 115, 101, 100, 32, 116, 111, 32, 104, 101, 108, 112, 32, 117, 115, 32, 109, 97, 107, 105, 110, 103, 32, 71, 39, 77, 73, 67, 32, 109, 111, 114, 101, 32, 118, 105, 115, 105, 98, 108, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 99, 111, 118, 101, 114, 32, 101, 120, 112, 101, 110, 115, 101, 115, 32, 102, 111, 114, 32, 111, 112, 101, 110, 45, 115, 111, 117, 114, 99, 101, 32, 101, 118, 101, 110, 116, 115, 44, 32, 102, 111, 114, 32, 105, 110, 115, 116, 97, 110, 99, 101, 41, 46, 32, 65, 108, 115, 111, 44, 32, 105, 116, 32, 119, 105, 108, 108, 32, 109, 111, 116, 105, 118, 97, 116, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 117, 115, 32, 116, 111, 32, 100, 101, 115, 105, 103, 110, 32, 109, 111, 114, 101, 32, 110, 101, 119, 32, 105, 109, 97, 103, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 97, 110, 100, 32, 101, 102, 102, 101, 99, 116, 115, 46, 32, 70, 101, 101, 108, 32, 102, 114, 101, 101, 32, 116, 111, 32, 100, 111, 110, 97, 116, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 105, 102, 32, 121, 111, 117, 32, 97, 112, 112, 114, 101, 99, 105, 97, 116, 101, 32, 71, 39, 77, 73, 67, 44, 32, 98, 121, 32, 99, 108, 105, 99, 107, 105, 110, 103, 32, 111, 110, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 123, 34, 77, 97, 107, 101, 32, 97, 32, 100, 111, 110, 97, 116, 105, 111, 110, 32, 116, 111, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 112, 114, 111, 106, 101, 99, 116, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 100, 111, 110, 97, 116, 101, 47, 105, 110, 100, 101, 120, 46, 112, 104, 112, 63, 103, 114, 111, 117, 112, 95, 105, 100, 61, 50, 51, 52, 57, 51, 49, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 60, 98, 62, 45, 60, 47, 98, 62, 32, 65, 32, 98, 105, 103, 32, 104, 117, 103, 32, 103, 111, 101, 115, 32, 116, 111, 32, 116, 104, 101, 115, 101, 32, 100, 111, 110, 97, 116, 111, 114, 115, 32, 40, 114, 101, 99, 101, 110, 116, 108, 121, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 102, 105, 114, 115, 116, 41, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 93, 32, 67, 104, 114, 105, 115, 116, 105, 97, 110, 32, 77, 97, 114, 105, 117, 99, 99, 105, 34, 44, 34, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 50, 93, 32, 77, 46, 32, 82, 46, 34, 44, 34, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 51, 93, 32, 77, 97, 114, 107, 32, 76, 105, 110, 107, 34, 44, 34, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 52, 93, 32, 82, 111, 108, 102, 32, 83, 116, 101, 105, 110, 111, 114, 116, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 98, 108, 111, 103, 46, 109, 101, 101, 116, 116, 104, 101, 103, 105, 109, 112, 46, 111, 114, 103, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 53, 93, 32, 80, 97, 116, 32, 68, 97, 118, 105, 100, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 98, 108, 111, 103, 46, 112, 97, 116, 100, 97, 118, 105, 100, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 54, 93, 32, 68, 97, 110, 105, 101, 108, 32, 84, 97, 117, 114, 111, 34, 44, 34, 104, 116, 116, 112, 115, 58, 47, 47, 112, 108, 117, 115, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109, 47, 49, 49, 50, 51, 53, 55, 48, 56, 56, 53, 48, 53, 52, 56, 56, 55, 53, 54, 56, 50, 51, 47, 112, 111, 115, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 55, 93, 32, 66, 101, 110, 32, 76, 97, 110, 103, 104, 105, 110, 114, 105, 99, 104, 115, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 103, 101, 110, 105, 105, 115, 111, 102, 116, 46, 99, 111, 109, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 56, 93, 32, 80, 97, 111, 108, 111, 32, 80, 101, 100, 97, 108, 101, 116, 116, 105, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 111, 112, 101, 110, 108, 97, 98, 115, 46, 105, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 57, 93, 32, 82, 105, 99, 97, 114, 100, 111, 32, 67, 111, 114, 105, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 98, 108, 111, 103, 46, 112, 104, 111, 116, 111, 109, 111, 110, 116, 97, 103, 101, 114, 46, 99, 111, 109, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 48, 93, 32, 74, 97, 109, 101, 115, 32, 80, 114, 105, 99, 104, 97, 114, 100, 34, 44, 34, 104, 116, 116, 112, 115, 58, 47, 47, 112, 108, 117, 115, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109, 47, 49, 49, 53, 57, 53, 51, 54, 54, 54, 50, 55, 57, 53, 48, 57, 57, 53, 57, 50, 53, 56, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 49, 93, 32, 77, 97, 116, 116, 32, 74, 111, 110, 101, 115, 34, 44, 34, 104, 116, 116, 112, 115, 58, 47, 47, 112, 108, 117, 115, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109, 47, 49, 49, 54, 54, 53, 56, 50, 50, 49, 52, 54, 49, 48, 52, 55, 51, 49, 51, 54, 52, 55, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 50, 93, 32, 69, 100, 100, 121, 32, 86, 101, 114, 118, 101, 115, 116, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 101, 111, 112, 108, 101, 47, 116, 119, 101, 107, 107, 101, 108, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 51, 93, 32, 83, 116, 101, 118, 101, 110, 32, 83, 104, 117, 112, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 115, 115, 115, 104, 117, 112, 101, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 52, 93, 32, 70, 108, 97, 118, 105, 111, 32, 67, 97, 115, 97, 100, 101, 105, 32, 68, 101, 108, 108, 97, 32, 67, 104, 105, 101, 115, 97, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 97, 118, 105, 111, 99, 100, 99, 46, 110, 101, 116, 47, 119, 105, 107, 105, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 53, 93, 32, 76, 121, 108, 101, 32, 75, 114, 111, 108, 108, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 114, 116, 119, 97, 110, 116, 101, 100, 46, 99, 111, 109, 47, 97, 114, 116, 105, 115, 116, 46, 99, 102, 109, 63, 97, 114, 116, 105, 100, 61, 49, 48, 57, 49, 56, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 32, 117, 110, 100, 101, 114, 108, 105, 110, 101, 61, 34, 115, 105, 110, 103, 108, 101, 34, 62, 80, 111, 115, 116, 99, 97, 114, 100, 32, 115, 101, 110, 100, 101, 114, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 60, 98, 62, 45, 60, 47, 98, 62, 32, 87, 101, 39, 118, 101, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 60, 98, 62, 50, 49, 47, 98, 62, 32, 112, 111, 115, 116, 99, 97, 114, 100, 115, 32, 102, 114, 111, 109, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 101, 110, 116, 104, 117, 115, 105, 97, 115, 116, 115, 32, 115, 111, 32, 102, 97, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 89, 111, 117, 32, 99, 111, 117, 108, 100, 32, 98, 101, 32, 116, 104, 101, 32, 50, 50, 116, 104, 32, 115, 101, 110, 100, 101, 114, 32, 58, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 60, 98, 62, 45, 60, 47, 98, 62, 32, 65, 32, 98, 105, 103, 32, 104, 117, 103, 32, 103, 111, 101, 115, 32, 116, 111, 32, 116, 104, 101, 115, 101, 32, 112, 111, 115, 116, 99, 97, 114, 100, 32, 115, 101, 110, 100, 101, 114, 115, 32, 40, 114, 101, 99, 101, 110, 116, 108, 121, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 102, 105, 114, 115, 116, 41, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 93, 32, 65, 107, 107, 121, 32, 91, 71, 105, 109, 112, 99, 104, 97, 116, 93, 32, 45, 32, 65, 117, 115, 116, 114, 97, 108, 105, 97, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 55, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 50, 93, 32, 77, 105, 99, 104, 101, 108, 32, 84, 104, 111, 109, 97, 115, 32, 45, 32, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 53, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 51, 93, 32, 80, 105, 101, 114, 114, 101, 45, 89, 118, 101, 115, 32, 45, 32, 73, 108, 101, 32, 100, 101, 32, 66, 97, 116, 122, 47, 70, 114, 97, 110, 99, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 52, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 52, 93, 32, 70, 97, 109, 105, 108, 121, 32, 72, 97, 109, 97, 99, 104, 101, 114, 32, 45, 32, 84, 114, 105, 101, 114, 47, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 51, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 53, 93, 32, 66, 101, 110, 111, 105, 116, 32, 71, 97, 117, 122, 101, 114, 101, 32, 97, 110, 100, 32, 70, 114, 97, 110, 99, 111, 105, 115, 32, 76, 111, 122, 101, 115, 32, 45, 32, 72, 111, 107, 117, 115, 97, 105, 47, 74, 97, 112, 97, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 49, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 54, 93, 32, 68, 114, 46, 32, 82, 97, 105, 110, 101, 114, 32, 84, 101, 117, 98, 110, 101, 114, 32, 45, 32, 83, 101, 108, 105, 103, 101, 110, 115, 116, 97, 100, 116, 47, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 52, 48, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 55, 93, 32, 77, 97, 117, 114, 111, 32, 77, 105, 116, 114, 105, 110, 111, 32, 45, 32, 77, 97, 110, 116, 111, 118, 97, 47, 73, 116, 97, 108, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 51, 57, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 56, 93, 32, 87, 101, 114, 110, 101, 114, 32, 77, 101, 105, 101, 114, 32, 45, 32, 77, 101, 116, 116, 108, 97, 99, 104, 47, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 51, 55, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 57, 93, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 45, 32, 72, 101, 108, 115, 105, 110, 107, 105, 47, 70, 105, 110, 108, 97, 110, 100, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 51, 54, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 48, 93, 32, 66, 101, 110, 111, 105, 116, 32, 71, 97, 117, 122, 101, 114, 101, 32, 45, 32, 67, 97, 108, 105, 102, 111, 114, 110, 105, 97, 47, 85, 83, 65, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 51, 51, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 49, 93, 32, 65, 114, 107, 97, 100, 105, 32, 71, 101, 108, 102, 111, 110, 100, 32, 45, 32, 70, 111, 115, 116, 101, 114, 32, 67, 105, 116, 121, 32, 45, 32, 67, 97, 108, 105, 102, 111, 114, 110, 105, 97, 47, 85, 83, 65, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 51, 48, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 50, 93, 32, 67, 111, 114, 105, 110, 110, 101, 32, 77, 97, 115, 105, 109, 97, 110, 110, 32, 45, 32, 78, 101, 117, 99, 104, 97, 116, 101, 108, 47, 83, 119, 105, 116, 122, 101, 114, 108, 97, 110, 100, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 57, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 51, 93, 32, 77, 97, 104, 118, 105, 110, 32, 45, 32, 80, 111, 114, 116, 108, 97, 110, 100, 47, 85, 83, 65, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 55, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 52, 93, 32, 86, 105, 110, 99, 101, 110, 116, 32, 82, 111, 117, 108, 108, 105, 101, 114, 32, 45, 32, 67, 97, 101, 110, 47, 70, 114, 97, 110, 99, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 54, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 53, 93, 32, 77, 63, 63, 63, 63, 32, 45, 32, 77, 117, 110, 105, 99, 104, 47, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 52, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 54, 93, 32, 70, 46, 32, 65, 108, 98, 105, 111, 114, 32, 45, 32, 74, 97, 99, 97, 47, 83, 112, 97, 105, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 51, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 55, 93, 32, 80, 104, 111, 116, 111, 67, 111, 109, 73, 88, 32, 45, 32, 70, 114, 97, 115, 99, 97, 116, 105, 47, 73, 116, 97, 108, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 50, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 56, 93, 32, 71, 117, 121, 32, 80, 111, 105, 122, 97, 116, 32, 45, 32, 67, 97, 98, 101, 115, 116, 97, 110, 121, 47, 70, 114, 97, 110, 99, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 49, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 49, 57, 93, 32, 73, 110, 115, 116, 105, 116, 117, 116, 32, 102, 111, 114, 32, 66, 105, 111, 109, 97, 116, 104, 101, 109, 97, 116, 105, 107, 32, 117, 110, 100, 32, 66, 105, 111, 109, 101, 116, 114, 105, 101, 32, 45, 32, 78, 101, 117, 104, 101, 114, 98, 101, 114, 103, 47, 71, 101, 114, 109, 97, 110, 121, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 50, 48, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 50, 48, 93, 32, 74, 97, 105, 109, 101, 32, 45, 32, 66, 97, 114, 99, 101, 108, 111, 110, 97, 47, 83, 112, 97, 105, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 49, 52, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 91, 50, 49, 93, 32, 74, 101, 97, 110, 45, 77, 105, 99, 104, 101, 108, 32, 87, 101, 98, 98, 101, 32, 45, 32, 71, 117, 97, 100, 101, 108, 111, 117, 112, 101, 47, 70, 114, 97, 110, 99, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 112, 111, 115, 116, 99, 97, 114, 100, 49, 53, 46, 106, 112, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 77, 97, 121, 32, 116, 104, 101, 32, 102, 111, 114, 99, 101, 32, 98, 101, 32, 119, 105, 116, 104, 32, 121, 111, 117, 33, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 52, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 105, 101, 110, 100, 115, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 114, 97, 116, 105, 111, 61, 123, 119, 47, 104, 125, 32, 45, 101, 108, 115, 101, 32, 114, 97, 116, 105, 111, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 45, 95, 104, 101, 97, 114, 116, 56, 48, 120, 55, 51, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 114, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 42, 91, 45, 49, 93, 32, 55, 48, 32, 45, 45, 42, 91, 45, 50, 93, 32, 49, 49, 48, 32, 45, 45, 42, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 52, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 48, 10, 45, 105, 91, 45, 50, 93, 32, 64, 123, 45, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 92, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 114, 97, 116, 105, 111, 125, 44, 49, 44, 51, 10, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 50, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 91, 45, 50, 93, 32, 49, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 54, 48, 48, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 49, 51, 53, 44, 54, 55, 44, 49, 44, 49, 44, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 114, 101, 101, 116, 105, 110, 103, 115, 32, 116, 111, 92, 110, 32, 32, 97, 108, 108, 32, 71, 39, 77, 73, 67, 92, 110, 32, 32, 102, 114, 105, 101, 110, 100, 115, 33, 34, 44, 50, 44, 45, 50, 44, 50, 52, 44, 49, 44, 49, 10, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 123, 40, 64, 123, 45, 51, 44, 119, 125, 45, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 125, 44, 123, 40, 64, 123, 45, 51, 44, 104, 125, 45, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 46, 50, 125, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 95, 104, 101, 97, 114, 116, 56, 48, 120, 55, 51, 32, 58, 10, 52, 48, 44, 55, 51, 44, 49, 44, 49, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 50, 50, 44, 50, 50, 44, 50, 48, 44, 50, 48, 44, 48, 44, 49, 44, 49, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 55, 44, 51, 55, 44, 52, 50, 44, 55, 50, 44, 52, 50, 44, 50, 55, 44, 49, 44, 49, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 71, 39, 77, 73, 67, 32, 102, 111, 114, 32, 71, 73, 77, 80, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 101, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 62, 40, 32, 60, 98, 62, 71, 60, 47, 98, 62, 82, 69, 89, 67, 39, 115, 32, 60, 98, 62, 77, 60, 47, 98, 62, 97, 103, 105, 99, 32, 60, 98, 62, 73, 60, 47, 98, 62, 109, 97, 103, 101, 32, 60, 98, 62, 67, 60, 47, 98, 62, 111, 110, 118, 101, 114, 116, 101, 114, 32, 41, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 105, 115, 32, 112, 114, 111, 112, 111, 115, 101, 100, 32, 116, 111, 32, 121, 111, 117, 32, 98, 121, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 51, 48, 51, 92, 50, 53, 49, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 116, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 117, 115, 101, 114, 115, 46, 103, 114, 101, 121, 99, 46, 102, 114, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 123, 34, 40, 32, 73, 77, 65, 71, 69, 32, 84, 101, 97, 109, 32, 47, 32, 71, 82, 69, 89, 67, 32, 76, 97, 98, 111, 114, 97, 116, 111, 114, 121, 32, 45, 32, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 32, 41, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 114, 101, 121, 99, 46, 101, 110, 115, 105, 99, 97, 101, 110, 46, 102, 114, 47, 69, 113, 117, 105, 112, 101, 73, 109, 97, 103, 101, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 84, 104, 105, 115, 32, 112, 108, 117, 103, 45, 105, 110, 32, 105, 115, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 111, 117, 114, 32, 111, 112, 101, 110, 45, 115, 111, 117, 114, 99, 101, 32, 108, 105, 98, 114, 97, 114, 105, 101, 115, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 97, 110, 100, 32, 60, 98, 62, 67, 73, 109, 103, 60, 47, 98, 62, 32, 40, 67, 43, 43, 32, 84, 101, 109, 112, 108, 97, 116, 101, 32, 73, 109, 97, 103, 101, 32, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 76, 105, 98, 114, 97, 114, 121, 41, 44, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 97, 110, 100, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 73, 102, 32, 121, 111, 117, 32, 97, 112, 112, 114, 101, 99, 105, 97, 116, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 44, 32, 121, 111, 117, 32, 97, 114, 101, 32, 119, 101, 108, 99, 111, 109, 101, 32, 116, 111, 32, 115, 101, 110, 100, 32, 117, 115, 32, 97, 32, 110, 105, 99, 101, 32, 112, 111, 115, 116, 99, 97, 114, 100, 32, 102, 114, 111, 109, 32, 121, 111, 117, 114, 32, 112, 108, 97, 99, 101, 44, 32, 97, 116, 58, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 60, 115, 109, 97, 108, 108, 62, 60, 116, 116, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 44, 92, 110, 32, 76, 97, 98, 111, 114, 97, 116, 111, 105, 114, 101, 32, 71, 82, 69, 89, 67, 32, 40, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 41, 44, 32, 69, 113, 117, 105, 112, 101, 32, 73, 109, 97, 103, 101, 44, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 32, 54, 32, 66, 100, 32, 100, 117, 32, 77, 97, 114, 38, 35, 50, 51, 51, 59, 99, 104, 97, 108, 32, 74, 117, 105, 110, 44, 92, 110, 32, 49, 52, 48, 53, 48, 32, 67, 97, 101, 110, 32, 67, 101, 100, 101, 120, 32, 47, 32, 70, 114, 97, 110, 99, 101, 46, 60, 47, 116, 116, 62, 60, 47, 115, 109, 97, 108, 108, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 80, 111, 115, 116, 99, 97, 114, 100, 115, 32, 115, 101, 110, 100, 101, 114, 115, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 32, 101, 110, 116, 101, 114, 32, 116, 104, 101, 32, 60, 105, 62, 70, 114, 105, 101, 110, 100, 115, 32, 72, 97, 108, 108, 32, 111, 102, 32, 70, 97, 109, 101, 60, 47, 105, 62, 32, 58, 41, 32, 33, 10, 35, 64, 103, 105, 109, 112, 95, 101, 110, 32, 58, 32, 34, 125, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 80, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 125, 34, 10, 45, 105, 102, 32, 64, 35, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 71, 39, 77, 73, 67, 34, 44, 48, 44, 48, 44, 53, 55, 44, 49, 44, 49, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 10, 54, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 49, 53, 48, 44, 50, 53, 53, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 48, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 93, 32, 49, 48, 44, 48, 32, 45, 98, 91, 45, 49, 93, 32, 50, 32, 45, 114, 91, 45, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 54, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 54, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 91, 45, 49, 93, 32, 48, 46, 53, 44, 48, 44, 49, 44, 53, 48, 44, 53, 48, 44, 48, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 45, 49, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 56, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 49, 56, 48, 32, 45, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 50, 48, 44, 48, 44, 52, 53, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 48, 32, 45, 109, 97, 120, 91, 45, 51, 45, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 40, 48, 59, 49, 50, 56, 41, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 51, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 105, 110, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 36, 49, 34, 44, 51, 50, 37, 44, 55, 53, 37, 44, 49, 51, 44, 51, 44, 49, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 50, 56, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 42, 91, 94, 48, 93, 32, 48, 46, 52, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 40, 119, 45, 64, 123, 48, 44, 119, 125, 41, 47, 50, 125, 44, 123, 40, 104, 45, 64, 123, 48, 44, 104, 125, 41, 47, 50, 125, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 111, 108, 100, 32, 58, 10, 45, 105, 102, 32, 64, 35, 32, 114, 97, 116, 105, 111, 61, 123, 119, 47, 104, 125, 32, 45, 101, 108, 115, 101, 32, 114, 97, 116, 105, 111, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 32, 49, 49, 56, 44, 52, 52, 44, 49, 44, 49, 32, 45, 116, 32, 34, 71, 39, 77, 73, 67, 34, 44, 51, 44, 45, 54, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 44, 49, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 50, 48, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 32, 49, 46, 53, 10, 45, 105, 115, 111, 115, 117, 114, 102, 97, 99, 101, 51, 100, 32, 53, 48, 37, 10, 45, 99, 111, 108, 51, 100, 32, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 10, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 56, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 44, 123, 63, 40, 49, 53, 48, 44, 50, 53, 53, 41, 125, 32, 45, 43, 51, 100, 91, 45, 49, 93, 32, 55, 50, 44, 45, 54, 32, 45, 43, 51, 100, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 114, 118, 51, 100, 10, 45, 100, 98, 51, 100, 32, 48, 32, 45, 115, 108, 51, 100, 32, 48, 46, 50, 32, 45, 115, 115, 51, 100, 32, 49, 46, 51, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 51, 48, 32, 45, 102, 51, 100, 32, 49, 50, 48, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 46, 53, 10, 50, 51, 48, 44, 49, 50, 48, 44, 49, 44, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 51, 48, 37, 44, 48, 44, 49, 44, 52, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 116, 32, 34, 36, 49, 34, 44, 49, 50, 37, 44, 55, 53, 37, 44, 50, 52, 44, 49, 44, 50, 53, 53, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 54, 44, 54, 44, 50, 10, 45, 105, 91, 45, 50, 93, 32, 64, 123, 45, 102, 105, 116, 114, 97, 116, 105, 111, 95, 119, 104, 92, 32, 50, 51, 48, 44, 49, 50, 48, 44, 36, 114, 97, 116, 105, 111, 125, 44, 49, 44, 51, 10, 45, 114, 97, 110, 100, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 91, 45, 50, 93, 32, 49, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 54, 48, 48, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 80, 108, 117, 103, 45, 105, 110, 32, 102, 111, 114, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 71, 39, 77, 73, 67, 32, 112, 101, 114, 32, 97, 108, 32, 71, 73, 77, 80, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 99, 97, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 62, 40, 32, 60, 98, 62, 71, 60, 47, 98, 62, 82, 69, 89, 67, 39, 115, 32, 60, 98, 62, 77, 60, 47, 98, 62, 97, 103, 105, 99, 32, 60, 98, 62, 73, 60, 47, 98, 62, 109, 97, 103, 101, 32, 60, 98, 62, 67, 60, 47, 98, 62, 111, 110, 118, 101, 114, 116, 101, 114, 32, 41, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 32, 38, 35, 50, 51, 51, 59, 115, 32, 117, 110, 97, 32, 103, 101, 110, 116, 105, 108, 101, 115, 97, 32, 100, 101, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 51, 48, 51, 92, 50, 53, 49, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 116, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 117, 115, 101, 114, 115, 46, 103, 114, 101, 121, 99, 46, 102, 114, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 123, 34, 40, 32, 73, 77, 65, 71, 69, 32, 84, 101, 97, 109, 32, 47, 32, 71, 82, 69, 89, 67, 32, 76, 97, 98, 111, 114, 97, 116, 111, 114, 121, 32, 45, 32, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 32, 41, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 114, 101, 121, 99, 46, 101, 110, 115, 105, 99, 97, 101, 110, 46, 102, 114, 47, 69, 113, 117, 105, 112, 101, 73, 109, 97, 103, 101, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 65, 113, 117, 101, 115, 116, 32, 99, 111, 110, 110, 101, 99, 116, 111, 114, 32, 101, 115, 116, 38, 35, 50, 50, 52, 59, 32, 98, 97, 115, 97, 116, 32, 101, 110, 32, 108, 101, 115, 32, 98, 105, 98, 108, 105, 111, 116, 101, 113, 117, 101, 115, 32, 100, 101, 32, 99, 111, 100, 105, 32, 111, 98, 101, 114, 116, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 105, 32, 60, 98, 62, 67, 73, 109, 103, 60, 47, 98, 62, 32, 40, 67, 43, 43, 32, 84, 101, 109, 112, 108, 97, 116, 101, 32, 73, 109, 97, 103, 101, 32, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 76, 105, 98, 114, 97, 114, 121, 41, 44, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 100, 105, 115, 112, 111, 110, 105, 98, 108, 101, 115, 32, 97, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 83, 105, 32, 116, 39, 97, 103, 114, 97, 100, 97, 32, 101, 108, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 44, 32, 112, 111, 116, 115, 32, 101, 110, 118, 105, 97, 114, 45, 110, 111, 115, 32, 117, 110, 97, 32, 112, 111, 115, 116, 97, 108, 32, 100, 101, 108, 32, 108, 108, 111, 99, 32, 111, 110, 32, 118, 105, 117, 115, 44, 32, 97, 32, 58, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 60, 115, 109, 97, 108, 108, 62, 60, 116, 116, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 44, 92, 110, 32, 76, 97, 98, 111, 114, 97, 116, 111, 105, 114, 101, 32, 71, 82, 69, 89, 67, 32, 40, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 41, 44, 32, 69, 113, 117, 105, 112, 101, 32, 73, 109, 97, 103, 101, 44, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 32, 54, 32, 66, 100, 32, 100, 117, 32, 77, 97, 114, 38, 35, 50, 51, 51, 59, 99, 104, 97, 108, 32, 74, 117, 105, 110, 44, 92, 110, 32, 49, 52, 48, 53, 48, 32, 67, 97, 101, 110, 32, 67, 101, 100, 101, 120, 32, 47, 32, 70, 114, 97, 110, 99, 101, 46, 60, 47, 116, 116, 62, 60, 47, 115, 109, 97, 108, 108, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 84, 111, 116, 32, 97, 113, 117, 101, 108, 108, 32, 113, 117, 101, 32, 101, 110, 118, 105, 38, 35, 50, 51, 57, 59, 32, 117, 110, 97, 32, 112, 111, 115, 116, 97, 108, 32, 97, 112, 97, 114, 101, 105, 120, 101, 114, 38, 35, 50, 50, 52, 59, 32, 97, 108, 32, 60, 105, 62, 70, 114, 105, 101, 110, 100, 115, 32, 72, 97, 108, 108, 32, 111, 102, 32, 70, 97, 109, 101, 60, 47, 105, 62, 32, 58, 41, 32, 33, 10, 35, 64, 103, 105, 109, 112, 95, 99, 97, 32, 58, 32, 34, 125, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 99, 97, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 32, 32, 112, 101, 114, 32, 97, 108, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 71, 39, 77, 73, 67, 32, 112, 111, 117, 114, 32, 71, 73, 77, 80, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 102, 114, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 62, 40, 32, 60, 98, 62, 71, 60, 47, 98, 62, 82, 69, 89, 67, 39, 115, 32, 60, 98, 62, 77, 60, 47, 98, 62, 97, 103, 105, 99, 32, 60, 98, 62, 73, 60, 47, 98, 62, 109, 97, 103, 101, 32, 60, 98, 62, 67, 60, 47, 98, 62, 111, 110, 118, 101, 114, 116, 101, 114, 32, 41, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 118, 111, 117, 115, 32, 101, 115, 116, 32, 112, 114, 111, 112, 111, 115, -61, -87, 32, 112, 97, 114, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 92, 51, 48, 51, 92, 50, 53, 49, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 116, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 46, 117, 115, 101, 114, 115, 46, 103, 114, 101, 121, 99, 46, 102, 114, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 123, 34, 40, 32, 69, 113, 117, 105, 112, 101, 32, 73, 77, 65, 71, 69, 32, 47, 32, 76, 97, 98, 111, 114, 97, 116, 111, 105, 114, 101, 32, 71, 82, 69, 89, 67, 32, 45, 32, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 32, 41, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 114, 101, 121, 99, 46, 101, 110, 115, 105, 99, 97, 101, 110, 46, 102, 114, 47, 69, 113, 117, 105, 112, 101, 73, 109, 97, 103, 101, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 67, 101, 32, 103, 114, 101, 102, 102, 111, 110, 32, 101, 115, 116, 32, 98, 97, 115, 38, 35, 50, 51, 51, 59, 32, 115, 117, 114, 32, 110, 111, 115, 32, 98, 105, 98, 108, 105, 111, 116, 104, 38, 35, 50, 51, 50, 59, 113, 117, 101, 115, 32, 108, 105, 98, 114, 101, 115, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 101, 116, 32, 60, 98, 62, 67, 73, 109, 103, 60, 47, 98, 62, 32, 40, 67, 43, 43, 32, 84, 101, 109, 112, 108, 97, 116, 101, 32, 73, 109, 97, 103, 101, 32, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 76, 105, 98, 114, 97, 114, 121, 41, 44, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 100, 105, 115, 112, 111, 110, 105, 98, 108, 101, 115, 32, 97, 117, 120, 32, 97, 100, 114, 101, 115, 115, 101, 115, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 101, 116, 34, 125, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 83, 105, 32, 118, 111, 117, 115, 32, 97, 112, 112, 114, 38, 35, 50, 51, 51, 59, 99, 105, 101, 122, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 44, 32, 118, 111, 117, 115, 32, 112, 111, 117, 118, 101, 122, 32, 110, 111, 117, 115, 32, 108, 101, 32, 102, 97, 105, 114, 101, 32, 115, 97, 118, 111, 105, 114, 32, 101, 110, 32, 110, 111, 117, 115, 32, 101, 110, 118, 111, 121, 97, 110, 116, 32, 117, 110, 101, 32, 106, 111, 108, 105, 101, 32, 99, 97, 114, 116, 101, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 112, 111, 115, 116, 97, 108, 101, 32, 100, 101, 32, 118, 111, 116, 114, 101, 32, 118, 105, 108, 108, 101, 32, 111, 117, 32, 114, 38, 35, 50, 51, 51, 59, 103, 105, 111, 110, 44, 32, 38, 35, 50, 50, 52, 59, 32, 108, 39, 97, 100, 114, 101, 115, 115, 101, 32, 58, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 60, 115, 109, 97, 108, 108, 62, 60, 116, 116, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 44, 92, 110, 32, 76, 97, 98, 111, 114, 97, 116, 111, 105, 114, 101, 32, 71, 82, 69, 89, 67, 32, 40, 67, 78, 82, 83, 32, 85, 77, 82, 32, 54, 48, 55, 50, 41, 44, 32, 69, 113, 117, 105, 112, 101, 32, 73, 109, 97, 103, 101, 44, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 32, 54, 32, 66, 100, 32, 100, 117, 32, 77, 97, 114, 38, 35, 50, 51, 51, 59, 99, 104, 97, 108, 32, 74, 117, 105, 110, 44, 92, 110, 32, 49, 52, 48, 53, 48, 32, 67, 97, 101, 110, 32, 67, 101, 100, 101, 120, 32, 47, 32, 70, 114, 97, 110, 99, 101, 46, 60, 47, 116, 116, 62, 60, 47, 115, 109, 97, 108, 108, 62, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 69, 110, 118, 111, 121, 101, 114, 32, 117, 110, 101, 32, 99, 97, 114, 116, 101, 32, 112, 111, 115, 116, 97, 108, 101, 32, 118, 111, 117, 115, 32, 102, 101, 114, 97, 32, 114, 101, 110, 116, 114, 101, 114, 32, 60, 105, 62, 100, 101, 32, 102, 97, 99, 116, 111, 60, 47, 105, 62, 32, 100, 97, 110, 115, 32, 108, 101, 32, 60, 105, 62, 70, 114, 105, 101, 110, 100, 115, 32, 72, 97, 108, 108, 32, 111, 102, 32, 70, 97, 109, 101, 60, 47, 105, 62, 32, 58, 41, 32, 33, 10, 35, 64, 103, 105, 109, 112, 95, 102, 114, 32, 58, 32, 34, 125, 10, 103, 105, 109, 112, 95, 108, 111, 103, 111, 95, 102, 114, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 71, 114, 101, 102, 102, 111, 110, 32, 112, 111, 117, 114, 32, 71, 73, 77, 80, 92, 110, 32, 32, 32, 32, 32, 34, 91, 64, 123, 45, 115, 116, 114, 118, 101, 114, 125, 93, 10, 35, 64, 103, 105, 109, 112, 32, 71, 109, 105, 99, 107, 121, 32, 47, 32, 82, 111, 100, 100, 121, 32, 58, 32, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 44, 32, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 99, 111, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 109, 105, 99, 107, 121, 34, 44, 34, 71, 109, 105, 99, 107, 121, 32, 38, 32, 87, 105, 108, 98, 101, 114, 34, 44, 34, 82, 111, 100, 100, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 60, 105, 62, 71, 109, 105, 99, 107, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 105, 115, 32, 116, 104, 101, 32, 110, 97, 109, 101, 32, 111, 102, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 109, 97, 115, 99, 111, 116, 46, 32, 72, 101, 32, 105, 115, 32, 97, 32, 115, 109, 97, 108, 108, 32, 97, 110, 100, 32, 99, 117, 116, 101, 32, 116, 105, 103, 101, 114, 32, 119, 104, 111, 32, 107, 110, 111, 119, 115, 32, 104, 111, 119, 32, 116, 111, 32, 100, 111, 32, 109, 97, 103, 105, 99, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 60, 105, 62, 71, 109, 105, 99, 107, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 105, 115, 32, 97, 32, 116, 105, 103, 101, 114, 44, 32, 105, 46, 101, 46, 32, 102, 97, 115, 116, 44, 32, 97, 103, 105, 108, 101, 32, 97, 110, 100, 32, 101, 108, 101, 103, 97, 110, 116, 44, 32, 106, 117, 115, 116, 32, 97, 115, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 99, 111, 100, 101, 32, 105, 115, 32, 58, 41, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 115, 32, 109, 97, 110, 121, 32, 109, 97, 103, 105, 99, 105, 97, 110, 115, 44, 32, 60, 98, 62, 60, 105, 62, 71, 109, 105, 99, 107, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 107, 110, 111, 119, 115, 32, 108, 111, 116, 32, 111, 102, 32, 103, 105, 109, 109, 105, 99, 107, 115, 32, 40, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 41, 44, 32, 97, 110, 100, 32, 104, 101, 32, 105, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 32, 97, 110, 100, 32, 102, 114, 105, 101, 110, 100, 108, 121, 32, 99, 111, 109, 112, 101, 116, 105, 116, 111, 114, 32, 111, 102, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 104, 101, 32, 73, 109, 97, 103, 101, 77, 97, 103, 105, 99, 107, 39, 115, 32, 119, 105, 122, 97, 114, 100, 44, 32, 111, 114, 32, 116, 104, 101, 32, 71, 114, 97, 112, 104, 105, 99, 77, 97, 103, 105, 99, 107, 39, 115, 32, 102, 114, 111, 103, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 60, 105, 62, 82, 111, 100, 100, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 105, 115, 32, 97, 110, 111, 116, 104, 101, 114, 32, 109, 97, 115, 99, 111, 116, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 115, 112, 101, 99, 105, 102, 105, 99, 97, 108, 108, 121, 32, 102, 111, 114, 32, 116, 104, 101, 32, 60, 105, 62, 65, 114, 116, 105, 115, 116, 105, 99, 32, 47, 32, 82, 111, 100, 105, 108, 105, 117, 115, 60, 47, 105, 62, 32, 102, 105, 108, 116, 101, 114, 32, 111, 102, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 60, 105, 62, 71, 109, 105, 99, 107, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 97, 110, 100, 32, 60, 98, 62, 60, 105, 62, 82, 111, 100, 100, 121, 60, 47, 105, 62, 60, 47, 98, 62, 32, 104, 97, 118, 101, 32, 98, 101, 101, 110, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 98, 121, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 77, 97, 104, 118, 101, 108, 111, 117, 115, 32, 77, 97, 104, 118, 105, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 109, 97, 104, 118, 105, 110, 46, 99, 111, 109, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 77, 97, 104, 118, 105, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 32, 58, 10, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 109, 105, 99, 107, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 100, 100, 121, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 103, 109, 105, 99, 107, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 107, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 103, 109, 105, 99, 107, 121, 95, 119, 105, 108, 98, 101, 114, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 115, 101, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 114, 111, 100, 100, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 117, 114, 108, 61, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 105, 109, 103, 47, 114, 111, 100, 100, 121, 95, 115, 109, 97, 108, 108, 46, 99, 105, 109, 103, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 45, 105, 32, 36, 117, 114, 108, 32, 45, 111, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 50, 100, 121, 32, 36, 104, 32, 45, 45, 32, 50, 53, 53, 32, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 108, 101, 97, 115, 101, 32, 110, 111, 116, 101, 115, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 48, 57, 47, 48, 49, 47, 49, 51, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 51, 60, 47, 105, 62, 32, 40, 105, 110, 105, 116, 105, 97, 108, 32, 112, 108, 117, 103, 45, 105, 110, 32, 114, 101, 108, 101, 97, 115, 101, 41, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 48, 47, 48, 57, 47, 48, 51, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 52, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 49, 47, 48, 55, 47, 48, 55, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 48, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 50, 47, 48, 51, 47, 48, 49, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 49, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 50, 47, 49, 48, 47, 49, 53, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 50, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 55, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 51, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 56, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 52, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 51, 47, 48, 51, 47, 48, 56, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 53, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 51, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 54, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 98, 62, 50, 48, 49, 51, 47, 48, 57, 47, 48, 57, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 55, 46, 48, 60, 47, 105, 62, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 62, 60, 98, 62, 50, 48, 49, 51, 47, 48, 57, 47, 49, 55, 60, 47, 98, 62, 32, 58, 32, 118, 101, 114, 115, 105, 111, 110, 32, 60, 105, 62, 49, 46, 53, 46, 55, 46, 49, 60, 47, 105, 62, 32, 40, 67, 117, 114, 114, 101, 110, 116, 32, 115, 116, 97, 98, 108, 101, 41, 46, 60, 47, 115, 112, 97, 110, 62, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 86, 105, 101, 119, 32, 108, 97, 116, 101, 115, 116, 32, 99, 104, 97, 110, 103, 101, 108, 111, 103, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 103, 114, 111, 117, 112, 115, 47, 103, 109, 105, 99, 47, 100, 105, 115, 99, 117, 115, 115, 47, 55, 50, 49, 53, 55, 54, 51, 53, 53, 48, 57, 52, 54, 49, 49, 50, 51, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 57, 47, 49, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 65, 114, 114, 97, 121, 115, 32, 38, 97, 109, 112, 59, 32, 116, 105, 108, 101, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 114, 114, 97, 121, 32, 91, 102, 97, 100, 101, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 44, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 115, 116, 97, 114, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 101, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 40, 34, 83, 104, 114, 105, 110, 107, 34, 44, 32, 34, 69, 120, 112, 97, 110, 100, 34, 44, 32, 34, 82, 101, 112, 101, 97, 116, 32, 91, 77, 101, 109, 111, 114, 121, 32, 99, 111, 110, 115, 117, 109, 105, 110, 103, 33, 93, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 55, 38, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 55, 62, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 44, 36, 53, 44, 36, 54, 44, 36, 56, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 51, 37, 44, 45, 36, 52, 37, 44, 48, 44, 48, 44, 50, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 65, 114, 114, 97, 121, 32, 91, 109, 105, 114, 114, 111, 114, 101, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 44, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 114, 97, 121, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 44, 34, 50, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 32, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 32, 89, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 49, 56, 48, 32, 100, 101, 103, 46, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 50, 55, 48, 32, 100, 101, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 105, 122, 101, 32, 61, 32, 95, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 114, 111, 112, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 57, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 49, 56, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 55, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 55, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 114, 111, 119, 115, 32, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 32, 45, 122, 32, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 125, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 51, 125, 32, 45, 122, 32, 123, 36, 55, 47, 50, 125, 37, 44, 123, 36, 55, 47, 50, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 47, 50, 125, 37, 44, 123, 49, 48, 48, 45, 36, 55, 47, 50, 125, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 50, 37, 44, 45, 36, 51, 37, 44, 48, 44, 48, 44, 50, 10, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 36, 49, 44, 36, 52, 44, 36, 54, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 44, 36, 55, 10, 35, 64, 103, 105, 109, 112, 32, 65, 114, 114, 97, 121, 32, 91, 114, 97, 110, 100, 111, 109, 93, 32, 58, 32, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 44, 32, 97, 114, 114, 97, 121, 95, 114, 97, 110, 100, 111, 109, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 117, 114, 99, 101, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 117, 114, 99, 101, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 65, 114, 114, 97, 121, 32, 91, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 99, 111, 108, 111, 114, 44, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 99, 111, 108, 111, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 115, 125, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 51, 32, 45, 42, 91, 45, 50, 93, 32, 123, 49, 45, 36, 51, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 65, 114, 114, 97, 121, 32, 91, 114, 101, 103, 117, 108, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 44, 32, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 40, 34, 83, 104, 114, 105, 110, 107, 34, 44, 32, 34, 69, 120, 112, 97, 110, 100, 34, 44, 32, 34, 82, 101, 112, 101, 97, 116, 32, 91, 77, 101, 109, 111, 114, 121, 32, 99, 111, 110, 115, 117, 109, 105, 110, 103, 33, 93, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 51, 37, 44, 45, 36, 52, 37, 44, 48, 44, 48, 44, 50, 10, 45, 105, 102, 32, 123, 36, 53, 38, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 53, 62, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 54, 10, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 67, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 32, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 44, 32, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 114, 115, 116, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 54, 52, 44, 49, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 99, 111, 110, 100, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 54, 52, 44, 49, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 114, 115, 116, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 99, 111, 110, 100, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 114, 115, 116, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 99, 111, 110, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 36, 123, 49, 45, 49, 52, 125, 10, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 105, 99, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 100, 105, 99, 101, 115, 44, 32, 103, 105, 109, 112, 95, 100, 105, 99, 101, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 56, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 101, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 32, 100, 105, 99, 101, 115, 34, 44, 34, 87, 104, 105, 116, 101, 32, 100, 105, 99, 101, 115, 34, 44, 34, 68, 105, 99, 101, 115, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 101, 100, 32, 110, 117, 109, 98, 101, 114, 115, 34, 44, 34, 68, 105, 99, 101, 115, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 101, 100, 32, 115, 105, 100, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 99, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 54, 32, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 50, 125, 32, 45, 95, 100, 105, 99, 101, 36, 62, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 51, 37, 50, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 54, 45, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 91, 45, 54, 45, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 48, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 48, 10, 45, 114, 50, 100, 121, 91, 45, 54, 45, 45, 49, 93, 32, 36, 50, 32, 45, 97, 91, 45, 54, 45, 45, 49, 93, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 114, 91, 48, 44, 49, 93, 32, 123, 49, 48, 48, 42, 36, 49, 47, 36, 50, 125, 37, 44, 123, 49, 48, 48, 42, 36, 49, 47, 36, 50, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 49, 93, 32, 54, 44, 48, 10, 45, 42, 91, 45, 50, 93, 32, 36, 50, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 44, 49, 32, 45, 114, 91, 45, 50, 93, 32, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 10, 36, 50, 44, 36, 50, 44, 49, 44, 50, 44, 39, 105, 102, 40, 99, 44, 121, 44, 120, 41, 39, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 91, 45, 51, 93, 44, 49, 44, 50, 44, 48, 44, 50, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 105, 102, 32, 123, 36, 51, 60, 50, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 48, 93, 32, 91, 50, 93, 44, 91, 50, 93, 44, 49, 44, 49, 48, 48, 37, 32, 45, 114, 118, 91, 48, 44, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 100, 105, 99, 101, 48, 32, 58, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 49, 32, 58, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 55, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 50, 32, 58, 32, 45, 95, 100, 105, 99, 101, 49, 32, 45, 95, 100, 105, 99, 101, 48, 10, 95, 100, 105, 99, 101, 51, 32, 58, 32, 45, 95, 100, 105, 99, 101, 49, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 55, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 50, 53, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 95, 100, 105, 99, 101, 52, 32, 58, 32, 45, 95, 100, 105, 99, 101, 51, 32, 45, 95, 100, 105, 99, 101, 48, 10, 95, 100, 105, 99, 101, 53, 32, 58, 32, 45, 95, 100, 105, 99, 101, 51, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 50, 53, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 55, 53, 37, 44, 53, 48, 37, 44, 53, 46, 50, 37, 44, 53, 46, 50, 37, 44, 48, 44, 49, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 69, 120, 116, 114, 97, 99, 116, 32, 111, 98, 106, 101, 99, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 44, 32, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 97, 114, 101, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 76, 111, 119, 34, 44, 34, 72, 105, 103, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 116, 121, 112, 101, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 67, 114, 111, 112, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 50, 56, 38, 116, 61, 55, 57, 48, 53, 34, 41, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 36, 53, 37, 32, 45, 101, 108, 115, 101, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 120, 61, 123, 36, 49, 37, 42, 40, 119, 45, 49, 41, 125, 10, 121, 61, 123, 36, 50, 37, 42, 40, 104, 45, 49, 41, 125, 10, 99, 111, 108, 111, 114, 61, 64, 123, 45, 97, 116, 92, 32, 36, 120, 44, 36, 121, 125, 10, 45, 105, 102, 32, 36, 55, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 36, 55, 10, 45, 101, 108, 115, 101, 10, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 91, 45, 49, 93, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 32, 45, 45, 122, 91, 48, 93, 32, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 51, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 52, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 97, 99, 116, 95, 111, 98, 106, 101, 99, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 36, 53, 37, 32, 45, 101, 108, 115, 101, 32, 109, 105, 110, 95, 97, 114, 101, 97, 61, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 120, 61, 123, 36, 49, 37, 42, 40, 119, 45, 49, 41, 125, 10, 121, 61, 123, 36, 50, 37, 42, 40, 104, 45, 49, 41, 125, 10, 99, 111, 108, 111, 114, 61, 64, 123, 45, 97, 116, 92, 32, 36, 120, 44, 36, 121, 125, 10, 45, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 51, 44, 48, 44, 36, 99, 111, 108, 111, 114, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 95, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 91, 45, 49, 93, 32, 36, 52, 37, 44, 36, 109, 105, 110, 95, 97, 114, 101, 97, 44, 36, 54, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 119, 125, 10, 120, 121, 99, 111, 111, 114, 100, 115, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 51, 41, 125, 44, 64, 123, 49, 44, 105, 40, 36, 62, 44, 52, 41, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 48, 93, 32, 36, 120, 121, 99, 111, 111, 114, 100, 115, 44, 48, 46, 51, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 48, 93, 32, 36, 120, 121, 99, 111, 111, 114, 100, 115, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 45, 100, 114, 103, 98, 97, 91, 48, 93, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 123, 119, 125, 34, 32, 111, 98, 106, 101, 99, 116, 115, 34, 44, 50, 44, 50, 44, 49, 51, 44, 50, 44, 48, 46, 51, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 107, 91, 48, 93, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 44, 36, 121, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 44, 36, 121, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 105, 100, 32, 58, 32, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 103, 114, 105, 100, 44, 32, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 103, 114, 105, 100, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 58, 10, 45, 105, 109, 97, 103, 101, 103, 114, 105, 100, 32, 36, 49, 44, 36, 50, 10, 35, 64, 103, 105, 109, 112, 32, 84, 97, 113, 117, 105, 110, 32, 58, 32, 116, 97, 113, 117, 105, 110, 44, 32, 116, 97, 113, 117, 105, 110, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 97, 98, 108, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 44, 32, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 117, 109, 32, 115, 105, 122, 101, 32, 102, 97, 99, 116, 111, 114, 32, 61, 32, 105, 110, 116, 40, 56, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 114, 97, 121, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 101, 34, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 44, 34, 50, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 115, 32, 116, 104, 101, 32, 116, 105, 108, 101, 97, 98, 108, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 116, 101, 99, 104, 110, 105, 113, 117, 101, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 98, 121, 32, 60, 98, 62, 80, 101, 116, 101, 114, 32, 89, 117, 60, 47, 98, 62, 44, 32, 97, 116, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 32, 61, 32, 108, 105, 110, 107, 40, 34, 91, 80, 101, 116, 101, 114, 32, 89, 117, 93, 32, 67, 114, 101, 97, 116, 101, 32, 114, 111, 116, 97, 116, 101, 100, 32, 116, 105, 108, 101, 97, 98, 108, 101, 32, 112, 97, 116, 116, 101, 114, 110, 115, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 112, 101, 116, 101, 114, 121, 117, 46, 99, 97, 47, 116, 117, 116, 111, 114, 105, 97, 108, 115, 47, 103, 105, 109, 112, 47, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 95, 112, 97, 116, 116, 101, 114, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 123, 36, 51, 45, 49, 125, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 97, 98, 108, 101, 32, 36, 49, 44, 123, 105, 102, 40, 36, 51, 61, 61, 48, 44, 36, 50, 44, 36, 50, 47, 50, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 64, 123, 36, 62, 44, 119, 125, 61, 61, 49, 34, 32, 38, 38, 32, 34, 64, 123, 36, 62, 44, 104, 125, 61, 61, 49, 125, 32, 45, 114, 109, 32, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 32, 32, 73, 110, 118, 97, 108, 105, 100, 92, 110, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 100, 32, 105, 115, 111, 108, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 105, 115, 111, 108, 97, 116, 101, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 105, 115, 111, 108, 97, 116, 101, 95, 116, 105, 108, 101, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 98, 111, 114, 100, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 98, 111, 114, 100, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 116, 105, 108, 101, 115, 32, 115, 113, 117, 97, 114, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 98, 111, 114, 100, 101, 114, 115, 32, 115, 113, 117, 97, 114, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 105, 115, 111, 108, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 36, 53, 32, 115, 120, 61, 123, 114, 111, 117, 110, 100, 40, 109, 105, 110, 40, 119, 44, 104, 41, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 47, 49, 48, 48, 41, 125, 32, 115, 121, 61, 36, 115, 120, 32, 45, 101, 108, 115, 101, 32, 115, 120, 61, 123, 114, 111, 117, 110, 100, 40, 119, 42, 36, 49, 47, 49, 48, 48, 41, 125, 32, 115, 121, 61, 123, 114, 111, 117, 110, 100, 40, 104, 42, 36, 50, 47, 49, 48, 48, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 98, 120, 61, 123, 109, 97, 120, 40, 36, 51, 44, 36, 52, 41, 125, 32, 98, 121, 61, 36, 98, 120, 32, 45, 101, 108, 115, 101, 32, 98, 120, 61, 36, 51, 32, 98, 121, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 120, 44, 45, 36, 115, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 121, 44, 45, 36, 115, 121, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 49, 48, 48, 43, 36, 98, 121, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 32, 123, 49, 48, 48, 43, 36, 98, 120, 125, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 100, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 49, 44, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 49, 44, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 118, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 110, 32, 36, 51, 44, 36, 52, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 116, 116, 105, 110, 103, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 81, 117, 97, 100, 114, 97, 116, 105, 99, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 10, 45, 113, 117, 97, 100, 114, 97, 116, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 108, 105, 110, 101, 97, 114, 105, 122, 101, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 100, 32, 114, 97, 110, 100, 111, 109, 32, 115, 104, 105, 102, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 105, 102, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 105, 102, 32, 123, 36, 52, 60, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 111, 116, 97, 116, 101, 95, 116, 105, 108, 101, 115, 32, 36, 51, 44, 36, 49, 44, 36, 50, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 65, 114, 116, 105, 115, 116, 105, 99, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 97, 99, 107, 32, 67, 114, 97, 121, 111, 110, 32, 71, 114, 97, 102, 102, 105, 116, 105, 32, 58, 32, 103, 105, 109, 112, 95, 99, 114, 97, 121, 111, 110, 103, 114, 97, 102, 102, 105, 116, 105, 50, 44, 32, 103, 105, 109, 112, 95, 99, 114, 97, 121, 111, 110, 103, 114, 97, 102, 102, 105, 116, 105, 50, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 50, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 83, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 68, 111, 112, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 50, 47, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 114, 97, 121, 111, 110, 103, 114, 97, 102, 102, 105, 116, 105, 50, 32, 58, 10, 45, 45, 98, 108, 117, 114, 32, 36, 51, 32, 45, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 55, 44, 36, 55, 32, 45, 114, 101, 118, 101, 114, 115, 101, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 114, 97, 121, 111, 110, 103, 114, 97, 102, 102, 105, 116, 105, 50, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 114, 97, 121, 111, 110, 103, 114, 97, 102, 102, 105, 116, 105, 50, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 111, 107, 101, 104, 32, 58, 32, 98, 111, 107, 101, 104, 44, 32, 103, 105, 109, 112, 95, 98, 111, 107, 101, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 60, 115, 109, 97, 108, 108, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 58, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 48, 44, 48, 44, 54, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 60, 115, 109, 97, 108, 108, 62, 66, 111, 107, 101, 104, 32, 115, 104, 97, 112, 101, 58, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 52, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 111, 107, 101, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 98, 111, 107, 101, 104, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 114, 116, 111, 111, 110, 32, 58, 32, 99, 97, 114, 116, 111, 111, 110, 44, 32, 103, 105, 109, 112, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 99, 97, 114, 116, 111, 111, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 32, 58, 32, 103, 105, 109, 112, 95, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 44, 32, 103, 105, 109, 112, 95, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 95, 80, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 108, 108, 105, 112, 115, 101, 32, 114, 97, 116, 105, 111, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 112, 97, 99, 105, 116, 105, 101, 115, 44, 32, 116, 114, 121, 32, 48, 32, 116, 111, 32, 115, 101, 101, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 101, 102, 102, 101, 99, 116, 32, 108, 97, 121, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 111, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 97, 115, 32, 72, 117, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 105, 110, 103, 32, 111, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 97, 115, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 111, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 67, 111, 108, 111, 114, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 98, 105, 115, 109, 32, 111, 110, 32, 67, 111, 108, 111, 114, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 111, 110, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 102, 116, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 102, 116, 101, 110, 32, 97, 108, 108, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 111, 78, 111, 116, 77, 101, 114, 103, 101, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 83, 97, 109, 112, 108, 101, 32, 97, 114, 116, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 54, 52, 48, 55, 52, 51, 49, 51, 51, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 32, 58, 10, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 36, 49, 10, 69, 108, 108, 105, 112, 115, 101, 82, 97, 116, 105, 111, 61, 36, 50, 10, 86, 97, 108, 117, 101, 79, 112, 97, 99, 105, 116, 121, 61, 36, 51, 10, 85, 115, 101, 72, 117, 101, 61, 36, 52, 10, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 61, 36, 53, 10, 85, 115, 101, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 36, 54, 10, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 61, 36, 55, 10, 78, 67, 65, 61, 36, 56, 10, 67, 117, 98, 101, 73, 116, 61, 36, 57, 10, 75, 117, 119, 97, 73, 116, 61, 36, 49, 48, 10, 83, 111, 102, 116, 101, 110, 61, 36, 49, 49, 10, 83, 111, 102, 116, 101, 110, 65, 108, 108, 61, 36, 49, 50, 10, 68, 111, 78, 111, 116, 67, 111, 109, 112, 111, 115, 101, 61, 36, 49, 51, 10, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 48, 61, 49, 10, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 49, 61, 49, 10, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 50, 61, 49, 10, 101, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 10, 101, 79, 112, 97, 99, 105, 116, 121, 61, 48, 46, 56, 10, 101, 79, 117, 116, 108, 105, 110, 101, 61, 49, 10, 101, 68, 101, 110, 115, 105, 116, 121, 61, 123, 49, 46, 53, 42, 36, 101, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 47, 49, 48, 125, 10, 112, 68, 101, 116, 97, 105, 108, 115, 83, 99, 97, 108, 101, 61, 123, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 47, 50, 125, 10, 112, 67, 111, 108, 111, 114, 61, 49, 46, 53, 10, 112, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 123, 49, 48, 42, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 125, 10, 101, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 123, 49, 48, 43, 40, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 45, 49, 41, 42, 40, 49, 45, 49, 48, 41, 47, 40, 49, 48, 45, 49, 41, 125, 10, 101, 80, 114, 105, 109, 97, 114, 121, 82, 97, 100, 105, 117, 115, 61, 123, 40, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 47, 53, 41, 42, 40, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 47, 53, 41, 42, 115, 113, 114, 116, 40, 64, 123, 48, 44, 104, 125, 41, 125, 10, 101, 83, 101, 99, 111, 110, 100, 97, 114, 121, 82, 97, 100, 105, 117, 115, 61, 123, 36, 69, 108, 108, 105, 112, 115, 101, 82, 97, 116, 105, 111, 47, 49, 48, 48, 42, 36, 101, 80, 114, 105, 109, 97, 114, 121, 82, 97, 100, 105, 117, 115, 125, 10, 99, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 123, 50, 43, 40, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 45, 49, 41, 42, 40, 49, 48, 45, 50, 41, 47, 40, 49, 48, 45, 49, 41, 125, 10, 67, 117, 98, 101, 83, 105, 122, 101, 61, 123, 52, 43, 40, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 45, 49, 41, 42, 40, 49, 48, 45, 52, 41, 47, 40, 49, 48, 45, 49, 41, 125, 10, 45, 45, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 91, 48, 93, 32, 36, 101, 80, 114, 105, 109, 97, 114, 121, 82, 97, 100, 105, 117, 115, 44, 36, 101, 83, 101, 99, 111, 110, 100, 97, 114, 121, 82, 97, 100, 105, 117, 115, 44, 36, 101, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 101, 79, 112, 97, 99, 105, 116, 121, 44, 49, 44, 36, 101, 68, 101, 110, 115, 105, 116, 121, 44, 48, 10, 45, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 65, 108, 108, 61, 61, 49, 34, 32, 38, 38, 32, 34, 36, 83, 111, 102, 116, 101, 110, 62, 48, 125, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 83, 111, 102, 116, 101, 110, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 48, 93, 32, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 36, 112, 68, 101, 116, 97, 105, 108, 115, 83, 99, 97, 108, 101, 44, 36, 112, 67, 111, 108, 111, 114, 44, 36, 112, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 75, 117, 119, 97, 73, 116, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 50, 44, 36, 112, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 62, 48, 125, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 83, 111, 102, 116, 101, 110, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 91, 48, 93, 32, 36, 99, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 52, 53, 44, 48, 46, 51, 53, 44, 48, 10, 45, 105, 102, 32, 123, 36, 78, 67, 65, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 117, 98, 101, 73, 116, 61, 61, 49, 125, 32, 45, 99, 117, 98, 105, 115, 109, 91, 45, 49, 93, 32, 54, 48, 48, 44, 36, 67, 117, 98, 101, 83, 105, 122, 101, 44, 52, 48, 44, 48, 46, 55, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 62, 48, 125, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 83, 111, 102, 116, 101, 110, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 68, 111, 78, 111, 116, 67, 111, 109, 112, 111, 115, 101, 61, 61, 48, 125, 10, 9, 35, 67, 111, 109, 112, 111, 115, 101, 32, 79, 114, 105, 103, 105, 110, 97, 108, 32, 97, 110, 100, 32, 69, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 119, 105, 116, 104, 32, 118, 97, 108, 117, 101, 10, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 118, 97, 108, 117, 101, 44, 36, 86, 97, 108, 117, 101, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 48, 10, 9, 35, 67, 111, 109, 112, 111, 115, 101, 32, 79, 114, 105, 103, 105, 110, 97, 108, 43, 69, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 119, 105, 116, 104, 32, 112, 97, 105, 110, 116, 105, 110, 103, 10, 9, 45, 105, 102, 32, 123, 36, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 60, 48, 125, 10, 9, 9, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 49, 61, 48, 10, 9, 9, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 61, 123, 45, 49, 42, 36, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 85, 115, 101, 72, 117, 101, 61, 61, 48, 125, 10, 9, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 36, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 49, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 85, 115, 101, 72, 117, 101, 61, 61, 49, 125, 10, 9, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 104, 117, 101, 44, 36, 77, 117, 108, 116, 105, 112, 108, 121, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 67, 111, 109, 112, 111, 115, 101, 32, 79, 114, 105, 103, 105, 110, 97, 108, 43, 69, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 43, 80, 97, 105, 110, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 67, 111, 108, 111, 114, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 10, 9, 45, 105, 102, 32, 123, 36, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 60, 48, 125, 10, 9, 9, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 50, 61, 48, 10, 9, 9, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 61, 123, 45, 49, 42, 36, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 85, 115, 101, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 36, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 50, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 85, 115, 101, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 61, 61, 49, 125, 9, 10, 9, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 71, 114, 97, 105, 110, 77, 101, 114, 103, 101, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 50, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 68, 111, 78, 111, 116, 67, 111, 109, 112, 111, 115, 101, 61, 61, 49, 125, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 95, 80, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 67, 111, 108, 111, 114, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 80, 97, 105, 110, 116, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 101, 100, 32, 80, 101, 110, 99, 105, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 112, 101, 110, 99, 105, 108, 44, 32, 103, 105, 109, 112, 95, 99, 112, 101, 110, 99, 105, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 101, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 48, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 67, 111, 108, 111, 114, 32, 68, 111, 112, 105, 110, 103, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 86, 97, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 112, 101, 110, 99, 105, 108, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 48, 46, 52, 44, 48, 46, 52, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 51, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 52, 44, 36, 52, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 54, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 54, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 54, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 54, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 54, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 54, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 54, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 54, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 112, 101, 110, 99, 105, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 112, 101, 110, 99, 105, 108, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 32, 83, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 107, 101, 116, 99, 104, 98, 119, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 101, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 48, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 53, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 67, 111, 108, 111, 114, 32, 68, 111, 112, 105, 110, 103, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 86, 97, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 98, 108, 117, 114, 32, 36, 51, 32, 45, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 105, 102, 32, 36, 55, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 56, 32, 32, 45, 116, 111, 95, 114, 103, 98, 32, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 57, 44, 36, 57, 10, 45, 105, 102, 32, 123, 36, 49, 48, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 49, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 49, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 49, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 49, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 49, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 49, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 48, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 49, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 32, 83, 116, 97, 109, 112, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 116, 97, 109, 112, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 116, 97, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 66, 87, 32, 109, 111, 100, 117, 108, 101, 44, 97, 110, 97, 108, 111, 103, 32, 116, 111, 32, 34, 83, 116, 97, 109, 112, 34, 102, 105, 108, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 67, 111, 108, 111, 114, 32, 109, 111, 100, 117, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 117, 108, 101, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 101, 32, 67, 111, 108, 111, 114, 115, 32, 61, 105, 110, 116, 40, 50, 48, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 32, 44, 32, 65, 110, 116, 97, 114, 111, 110, 44, 32, 77, 97, 104, 118, 105, 110, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 48, 49, 49, 47, 48, 53, 47, 49, 55, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 116, 97, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 110, 111, 114, 109, 10, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 91, 45, 49, 93, 32, 36, 50, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 49, 48, 49, 44, 51, 51, 44, 49, 55, 48, 44, 50, 50, 57, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 53, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 116, 97, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 115, 116, 97, 109, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 117, 98, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 46, 48, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 99, 117, 98, 105, 115, 109, 32, 36, 123, 50, 45, 45, 49, 125, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 98, 105, 115, 109, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 114, 101, 97, 109, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 100, 114, 101, 97, 109, 115, 109, 111, 111, 116, 104, 44, 32, 103, 105, 109, 112, 95, 100, 114, 101, 97, 109, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 32, 114, 101, 108, 97, 116, 105, 118, 101, 108, 121, 32, 115, 108, 111, 119, 32, 102, 105, 108, 116, 101, 114, 32, 116, 104, 97, 116, 32, 117, 115, 101, 115, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 116, 111, 32, 115, 109, 111, 111, 116, 104, 32, 97, 110, 32, 105, 109, 97, 103, 101, 46, 32, 77, 111, 114, 101, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 112, 114, 111, 100, 117, 99, 101, 115, 32, 115, 111, 102, 116, 101, 114, 32, 105, 109, 97, 103, 101, 32, 97, 115, 32, 100, 111, 101, 115, 32, 108, 111, 119, 101, 114, 32, 111, 112, 97, 99, 105, 116, 121, 32, 118, 97, 108, 117, 101, 115, 46, 32, 80, 114, 97, 99, 116, 105, 99, 97, 108, 32, 109, 111, 100, 101, 115, 32, 102, 111, 114, 32, 109, 101, 114, 103, 105, 110, 103, 32, 97, 114, 101, 32, 65, 108, 112, 104, 97, 32, 97, 110, 100, 32, 65, 118, 101, 114, 97, 103, 101, 46, 32, 78, 111, 116, 101, 32, 116, 104, 97, 116, 32, 114, 101, 115, 117, 108, 116, 115, 32, 97, 114, 101, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 100, 101, 112, 101, 110, 100, 101, 110, 116, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 71, 101, 110, 101, 114, 97, 108, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 97, 116, 32, 101, 97, 99, 104, 32, 115, 116, 101, 112, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 101, 114, 103, 105, 110, 103, 32, 111, 102, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 97, 100, 100, 34, 44, 34, 97, 108, 112, 104, 97, 34, 44, 34, 97, 110, 100, 34, 44, 34, 97, 118, 101, 114, 97, 103, 101, 34, 44, 34, 98, 108, 117, 101, 34, 44, 34, 98, 117, 114, 110, 34, 44, 34, 100, 97, 114, 107, 101, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 100, 105, 118, 105, 100, 101, 34, 44, 34, 100, 111, 100, 103, 101, 34, 44, 34, 101, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 102, 114, 101, 101, 122, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 34, 44, 34, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 34, 44, 34, 103, 114, 101, 101, 110, 34, 44, 34, 104, 97, 114, 100, 108, 105, 103, 104, 116, 34, 44, 34, 104, 97, 114, 100, 109, 105, 120, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 104, 117, 101, 34, 44, 34, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 108, 105, 103, 104, 116, 101, 110, 34, 44, 34, 108, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 34, 44, 34, 108, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 109, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 110, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 111, 114, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 111, 118, 101, 114, 108, 97, 121, 34, 44, 34, 112, 105, 110, 108, 105, 103, 104, 116, 34, 44, 34, 114, 101, 100, 34, 44, 34, 114, 101, 102, 108, 101, 99, 116, 34, 44, 34, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 115, 99, 114, 101, 101, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 34, 44, 34, 115, 111, 102, 116, 98, 117, 114, 110, 34, 44, 34, 115, 111, 102, 116, 100, 111, 100, 103, 101, 34, 44, 34, 115, 111, 102, 116, 108, 105, 103, 104, 116, 34, 44, 34, 115, 116, 97, 109, 112, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 115, 117, 98, 116, 114, 97, 99, 116, 34, 44, 34, 118, 97, 108, 117, 101, 34, 44, 34, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 34, 44, 34, 120, 111, 114, 34, 44, 34, 101, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 111, 114, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 116, 116, 105, 110, 103, 115, 32, 102, 111, 114, 32, 108, 97, 121, 101, 114, 32, 109, 111, 100, 101, 32, 101, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 32, 65, 117, 116, 104, 111, 114, 58, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 49, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 83, 97, 109, 112, 108, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 55, 54, 52, 52, 48, 48, 54, 54, 48, 56, 47, 34, 41, 10, 103, 105, 109, 112, 95, 100, 114, 101, 97, 109, 115, 109, 111, 111, 116, 104, 32, 58, 10, 45, 109, 32, 34, 77, 101, 114, 103, 101, 67, 104, 111, 105, 115, 101, 32, 58, 32, 36, 34, 34, 61, 95, 109, 111, 100, 101, 34, 32, 45, 77, 101, 114, 103, 101, 67, 104, 111, 105, 115, 101, 32, 34, 97, 100, 100, 34, 44, 34, 97, 108, 112, 104, 97, 34, 44, 34, 97, 110, 100, 34, 44, 34, 97, 118, 101, 114, 97, 103, 101, 34, 44, 34, 98, 108, 117, 101, 34, 44, 34, 98, 117, 114, 110, 34, 44, 34, 100, 97, 114, 107, 101, 110, 34, 44, 34, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 100, 105, 118, 105, 100, 101, 34, 44, 34, 100, 111, 100, 103, 101, 34, 44, 34, 101, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 102, 114, 101, 101, 122, 101, 34, 44, 34, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 34, 44, 34, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 34, 44, 34, 103, 114, 101, 101, 110, 34, 44, 34, 104, 97, 114, 100, 108, 105, 103, 104, 116, 34, 44, 34, 104, 97, 114, 100, 109, 105, 120, 34, 44, 34, 104, 117, 101, 34, 44, 34, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 108, 105, 103, 104, 116, 101, 110, 34, 44, 34, 108, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 34, 44, 34, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 34, 44, 34, 108, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 109, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 110, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 111, 114, 34, 44, 34, 111, 118, 101, 114, 108, 97, 121, 34, 44, 34, 112, 105, 110, 108, 105, 103, 104, 116, 34, 44, 34, 114, 101, 100, 34, 44, 34, 114, 101, 102, 108, 101, 99, 116, 34, 44, 34, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 115, 99, 114, 101, 101, 110, 34, 44, 34, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 34, 44, 34, 115, 111, 102, 116, 98, 117, 114, 110, 34, 44, 34, 115, 111, 102, 116, 100, 111, 100, 103, 101, 34, 44, 34, 115, 111, 102, 116, 108, 105, 103, 104, 116, 34, 44, 34, 115, 116, 97, 109, 112, 34, 44, 34, 115, 117, 98, 116, 114, 97, 99, 116, 34, 44, 34, 118, 97, 108, 117, 101, 34, 44, 34, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 34, 44, 34, 120, 111, 114, 34, 44, 34, 101, 100, 103, 101, 115, 34, 44, 34, 101, 114, 114, 111, 114, 34, 10, 45, 116, 111, 95, 114, 103, 98, 10, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 49, 10, 69, 113, 97, 61, 36, 50, 10, 77, 101, 114, 103, 105, 110, 103, 79, 112, 116, 105, 111, 110, 61, 36, 51, 10, 79, 112, 97, 99, 105, 116, 121, 61, 36, 52, 10, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 61, 36, 53, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 35, 67, 97, 108, 99, 117, 108, 97, 116, 101, 32, 119, 105, 100, 116, 104, 32, 97, 110, 100, 32, 104, 101, 105, 103, 104, 116, 10, 9, 73, 87, 105, 100, 116, 104, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 119, 125, 47, 40, 64, 123, 60, 44, 45, 49, 125, 43, 49, 41, 41, 125, 10, 9, 73, 72, 101, 105, 103, 104, 116, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 40, 64, 123, 60, 44, 45, 49, 125, 43, 49, 41, 41, 125, 10, 9, 35, 82, 101, 115, 105, 122, 101, 32, 112, 114, 101, 118, 105, 111, 117, 115, 108, 121, 32, 112, 114, 111, 99, 101, 115, 115, 101, 100, 32, 105, 109, 97, 103, 101, 46, 32, 78, 111, 116, 32, 100, 111, 110, 101, 32, 111, 110, 32, 102, 105, 114, 115, 116, 32, 114, 101, 112, 101, 97, 116, 32, 108, 111, 111, 112, 32, 115, 105, 110, 99, 101, 32, 116, 104, 101, 114, 101, 32, 105, 115, 32, 110, 111, 32, 115, 117, 99, 104, 32, 105, 109, 97, 103, 101, 32, 121, 101, 116, 46, 10, 9, 45, 105, 102, 32, 123, 64, 123, 62, 44, 45, 49, 125, 33, 61, 48, 125, 10, 9, 9, 35, 82, 101, 115, 105, 122, 101, 32, 91, 105, 109, 97, 103, 101, 95, 119, 93, 44, 91, 105, 109, 97, 103, 101, 95, 104, 93, 44, 91, 105, 109, 97, 103, 101, 95, 100, 93, 44, 91, 105, 109, 97, 103, 101, 95, 115, 93, 44, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 95, 98, 111, 117, 110, 100, 97, 114, 121, 44, 95, 97, 120, 44, 95, 97, 121, 44, 95, 97, 122, 44, 95, 97, 99, 10, 9, 9, 45, 114, 91, 45, 49, 93, 32, 36, 73, 87, 105, 100, 116, 104, 44, 36, 73, 72, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 53, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 82, 101, 115, 105, 122, 101, 32, 97, 110, 100, 32, 109, 97, 107, 101, 32, 97, 32, 99, 111, 112, 121, 9, 10, 9, 45, 45, 114, 91, 48, 93, 32, 36, 73, 87, 105, 100, 116, 104, 44, 36, 73, 72, 101, 105, 103, 104, 116, 44, 49, 44, 51, 44, 53, 44, 49, 10, 9, 35, 83, 109, 111, 111, 116, 104, 105, 110, 103, 10, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 123, 52, 51, 48, 47, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 40, 64, 123, 60, 44, 45, 49, 125, 43, 49, 41, 125, 44, 48, 46, 52, 44, 48, 46, 53, 44, 48, 46, 54, 44, 50, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 48, 44, 49, 44, 48, 44, 49, 44, 48, 10, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 123, 54, 48, 48, 47, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 40, 64, 123, 60, 44, 45, 49, 125, 43, 49, 41, 125, 44, 48, 46, 52, 44, 49, 44, 48, 46, 54, 44, 52, 44, 48, 46, 56, 44, 49, 53, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 9, 10, 9, 35, 67, 111, 109, 98, 105, 110, 101, 32, 105, 109, 97, 103, 101, 115, 9, 105, 102, 32, 110, 111, 116, 32, 102, 105, 114, 115, 116, 32, 114, 111, 117, 110, 100, 10, 9, 45, 105, 102, 32, 123, 64, 123, 62, 44, 45, 49, 125, 33, 61, 48, 125, 10, 9, 9, 35, 83, 111, 109, 101, 116, 104, 105, 110, 103, 32, 119, 114, 111, 110, 103, 32, 119, 105, 116, 104, 32, 116, 104, 105, 115, 32, 98, 111, 111, 108, 101, 97, 110, 46, 32, 73, 116, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 119, 111, 114, 107, 46, 10, 9, 9, 45, 105, 102, 32, 123, 36, 51, 39, 33, 61, 39, 52, 50, 125, 10, 9, 9, 9, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 36, 123, 95, 109, 111, 100, 101, 123, 36, 77, 101, 114, 103, 105, 110, 103, 79, 112, 116, 105, 111, 110, 43, 49, 125, 125, 44, 36, 79, 112, 97, 99, 105, 116, 121, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 51, 39, 61, 61, 39, 52, 50, 125, 10, 9, 9, 9, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 79, 112, 97, 99, 105, 116, 121, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 82, 101, 118, 101, 114, 115, 101, 79, 114, 100, 101, 114, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 69, 113, 97, 125, 9, 9, 10, 9, 9, 9, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 100, 114, 101, 97, 109, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 114, 101, 97, 109, 115, 109, 111, 111, 116, 104, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 69, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 105, 109, 97, 114, 121, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 99, 111, 110, 100, 97, 114, 121, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 58, 10, 45, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 36, 123, 94, 48, 125, 10, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 70, 101, 108, 116, 32, 112, 101, 110, 32, 58, 32, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 44, 32, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 49, 45, 53, 125, 44, 48, 44, 48, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 32, 36, 54, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 102, 101, 108, 116, 112, 101, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 99, 32, 66, 111, 111, 115, 116, 32, 50, 32, 58, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 52, 44, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 52, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 110, 115, 104, 97, 114, 112, 32, 77, 97, 115, 107, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 104, 101, 99, 107, 32, 102, 111, 114, 32, 118, 105, 115, 117, 97, 108, 32, 99, 111, 110, 116, 114, 111, 108, 44, 32, 85, 78, 99, 104, 101, 99, 107, 32, 116, 111, 32, 114, 101, 97, 99, 116, 105, 118, 97, 116, 101, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 66, 87, 95, 80, 101, 110, 99, 105, 108, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 34, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 34, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 87, 65, 80, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 84, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 34, 83, 119, 97, 112, 34, 32, 99, 104, 97, 110, 103, 101, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 102, 32, 77, 101, 114, 103, 105, 110, 103, 32, 97, 110, 100, 32, 73, 110, 116, 101, 115, 105, 116, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 32, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 32, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 32, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 42, 67, 111, 108, 111, 114, 115, 32, 68, 111, 112, 105, 110, 103, 42, 34, 44, 34, 67, 111, 109, 105, 120, 32, 67, 111, 108, 111, 114, 115, 34, 32, 44, 34, 71, 114, 97, 112, 104, 105, 99, 32, 67, 111, 108, 111, 117, 114, 115, 34, 44, 34, 71, 114, 97, 112, 104, 105, 120, 32, 67, 111, 108, 111, 114, 115, 34, 44, 34, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 42, 34, 44, 34, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 34, 44, 34, 68, 97, 114, 107, 32, 83, 99, 114, 101, 101, 110, 34, 44, 34, 86, 105, 118, 105, 100, 32, 83, 99, 114, 101, 101, 110, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 32, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 55, 55, 53, 34, 41, 10, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 52, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 49, 44, 36, 49, 44, 51, 48, 44, 51, 44, 48, 44, 36, 50, 44, 48, 46, 52, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 52, 44, 36, 53, 44, 48, 44, 48, 44, 48, 10, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 49, 93, 32, 54, 48, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 32, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 49, 52, 44, 48, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 49, 52, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 49, 52, 44, 49, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 36, 49, 52, 44, 49, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 49, 52, 44, 48, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 32, 36, 49, 52, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 32, 36, 49, 52, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 32, 36, 49, 52, 44, 48, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 36, 49, 52, 44, 48, 46, 53, 48, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 36, 49, 52, 44, 48, 46, 53, 48, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 115, 99, 114, 101, 101, 110, 32, 36, 49, 52, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 115, 99, 114, 101, 101, 110, 32, 36, 49, 52, 44, 48, 44, 36, 49, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 36, 49, 52, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 49, 55, 44, 36, 49, 56, 44, 36, 49, 57, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 99, 32, 78, 111, 118, 101, 108, 32, 32, 58, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 44, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 112, 112, 108, 121, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 116, 104, 105, 115, 32, 115, 116, 101, 112, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 109, 112, 108, 105, 116, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 78, 101, 105, 103, 104, 116, 98, 111, 114, 104, 111, 111, 100, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 118, 101, 114, 97, 103, 101, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 80, 101, 110, 99, 105, 108, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 34, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 34, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 57, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 66, 111, 111, 115, 116, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 73, 120, 101, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 83, 111, 102, 116, 32, 108, 105, 103, 104, 116, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 32, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 42, 67, 111, 108, 111, 114, 115, 32, 68, 111, 112, 105, 110, 103, 34, 44, 34, 42, 67, 111, 109, 105, 120, 32, 67, 111, 108, 111, 114, 115, 42, 34, 32, 44, 34, 71, 114, 97, 112, 104, 105, 99, 32, 67, 111, 108, 111, 117, 114, 115, 34, 44, 34, 42, 71, 114, 97, 112, 104, 105, 120, 32, 67, 111, 108, 111, 114, 115, 34, 44, 34, 42, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 42, 34, 44, 34, 42, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 42, 34, 44, 34, 42, 68, 97, 114, 107, 32, 83, 99, 114, 101, 101, 110, 42, 34, 44, 34, 42, 86, 105, 118, 105, 100, 32, 83, 99, 114, 101, 101, 110, 42, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 46, 50, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 49, 53, 56, 50, 34, 41, 10, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 49, 44, 51, 44, 48, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 55, 44, 36, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 48, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 54, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 32, 32, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 9, 32, 32, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 116, 97, 109, 112, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 49, 55, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 49, 55, 44, 48, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 101, 122, 101, 32, 36, 49, 55, 44, 48, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 49, 55, 44, 49, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 36, 49, 55, 44, 49, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 49, 55, 44, 48, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 32, 36, 49, 55, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 32, 36, 49, 55, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 32, 36, 49, 55, 44, 48, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 36, 49, 55, 44, 48, 46, 53, 48, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 36, 49, 55, 44, 48, 46, 53, 48, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 115, 99, 114, 101, 101, 110, 32, 36, 49, 55, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 115, 99, 114, 101, 101, 110, 32, 36, 49, 55, 44, 48, 44, 36, 49, 56, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 36, 49, 55, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 50, 48, 44, 36, 50, 49, 44, 36, 50, 50, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 58, 32, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 44, 32, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 51, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 107, 117, 119, 97, 104, 97, 114, 97, 32, 36, 50, 32, 45, 100, 111, 110, 101, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 121, 108, 101, 106, 107, 39, 115, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 118, 97, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 76, 121, 108, 101, 32, 75, 114, 111, 108, 108, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 57, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 49, 48, 38, 116, 61, 50, 54, 50, 52, 34, 41, 10, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 95, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 46, 52, 57, 44, 48, 46, 55, 53, 44, 48, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 51, 48, 48, 44, 48, 46, 50, 54, 44, 49, 44, 48, 44, 55, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 10, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 51, 45, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 44, 48, 46, 53, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 49, 10, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 10, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 91, 45, 49, 93, 32, 36, 51, 44, 52, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 32, 36, 51, 32, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 51, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 34, 44, 36, 52, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 107, 101, 32, 83, 113, 117, 105, 103, 103, 108, 121, 32, 58, 32, 103, 105, 109, 112, 95, 83, 113, 117, 105, 103, 103, 108, 121, 44, 32, 103, 105, 109, 112, 95, 83, 113, 117, 105, 103, 103, 108, 121, 95, 80, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 113, 117, 105, 103, 108, 101, 115, 32, 97, 110, 32, 105, 109, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 113, 117, 105, 103, 108, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 110, 111, 105, 115, 101, 32, 97, 109, 111, 117, 110, 116, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 101, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 78, 111, 114, 109, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 78, 111, 114, 109, 76, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 79, 112, 116, 105, 111, 110, 97, 108, 32, 99, 111, 108, 111, 114, 32, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 78, 111, 116, 101, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 102, 32, 115, 108, 105, 100, 101, 114, 115, 32, 100, 101, 112, 101, 110, 100, 115, 32, 111, 110, 32, 116, 104, 101, 32, 109, 101, 114, 103, 101, 32, 115, 101, 116, 116, 105, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 67, 111, 108, 111, 114, 32, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 103, 103, 108, 101, 32, 116, 111, 32, 118, 105, 101, 119, 32, 98, 97, 115, 101, 32, 105, 109, 97, 103, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 104, 101, 99, 107, 32, 116, 104, 105, 115, 32, 116, 111, 32, 118, 105, 101, 119, 32, 98, 97, 115, 101, 32, 105, 109, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 97, 115, 101, 67, 104, 114, 111, 109, 97, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 32, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 108, 101, 99, 116, 32, 109, 101, 114, 103, 105, 110, 103, 32, 109, 111, 100, 101, 32, 116, 111, 32, 111, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 110, 100, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 101, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 109, 101, 114, 103, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 72, 97, 114, 100, 32, 108, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 114, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 83, 111, 102, 116, 32, 108, 105, 103, 104, 116, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 111, 114, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 54, 54, 55, 54, 55, 51, 56, 52, 55, 47, 34, 41, 10, 103, 105, 109, 112, 95, 83, 113, 117, 105, 103, 103, 108, 121, 32, 58, 10, 83, 112, 114, 101, 97, 100, 78, 111, 105, 115, 101, 65, 109, 111, 117, 110, 116, 61, 36, 49, 10, 83, 69, 103, 84, 104, 114, 115, 104, 108, 100, 61, 36, 50, 10, 83, 101, 103, 83, 109, 111, 111, 116, 104, 61, 36, 51, 10, 71, 78, 83, 109, 111, 111, 116, 104, 61, 36, 52, 10, 71, 78, 76, 105, 110, 61, 36, 53, 10, 73, 110, 118, 101, 114, 116, 76, 117, 109, 105, 110, 97, 110, 99, 101, 61, 36, 54, 10, 69, 110, 104, 97, 110, 99, 101, 67, 111, 108, 111, 114, 115, 61, 36, 55, 10, 84, 111, 103, 103, 108, 101, 79, 114, 103, 61, 36, 56, 10, 67, 104, 114, 111, 109, 97, 61, 36, 57, 10, 84, 111, 110, 101, 84, 114, 61, 36, 49, 48, 10, 84, 111, 110, 101, 71, 109, 61, 36, 49, 49, 10, 79, 114, 103, 77, 101, 114, 103, 101, 67, 104, 61, 36, 49, 50, 10, 79, 114, 103, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 51, 10, 79, 114, 103, 82, 101, 118, 101, 114, 115, 101, 111, 114, 100, 101, 114, 61, 36, 49, 52, 10, 45, 105, 102, 32, 123, 36, 84, 111, 103, 103, 108, 101, 79, 114, 103, 61, 61, 49, 125, 10, 9, 79, 114, 103, 77, 101, 114, 103, 101, 67, 104, 61, 51, 48, 10, 9, 79, 114, 103, 82, 101, 118, 101, 114, 115, 101, 111, 114, 100, 101, 114, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 91, 48, 93, 32, 36, 83, 112, 114, 101, 97, 100, 78, 111, 105, 115, 101, 65, 109, 111, 117, 110, 116, 44, 36, 83, 112, 114, 101, 97, 100, 78, 111, 105, 115, 101, 65, 109, 111, 117, 110, 116, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 49, 93, 32, 36, 83, 69, 103, 84, 104, 114, 115, 104, 108, 100, 44, 36, 83, 101, 103, 83, 109, 111, 111, 116, 104, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 49, 93, 32, 36, 71, 78, 83, 109, 111, 111, 116, 104, 44, 36, 71, 78, 76, 105, 110, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 45, 98, 108, 101, 110, 100, 91, 50, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 116, 76, 117, 109, 105, 110, 97, 110, 99, 101, 61, 61, 49, 125, 10, 9, 35, 67, 111, 110, 118, 101, 114, 116, 32, 116, 111, 32, 76, 65, 66, 10, 9, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 10, 9, 35, 83, 112, 108, 105, 116, 32, 99, 104, 97, 110, 110, 101, 108, 115, 10, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 51, 93, 10, 9, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 9, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 69, 110, 104, 97, 110, 99, 101, 67, 111, 108, 111, 114, 115, 61, 61, 49, 125, 10, 9, 35, 73, 110, 99, 114, 101, 97, 115, 101, 32, 99, 104, 114, 111, 109, 97, 10, 9, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 91, 51, 93, 32, 49, 44, 48, 44, 48, 44, 36, 67, 104, 114, 111, 109, 97, 44, 48, 44, 48, 44, 36, 67, 104, 114, 111, 109, 97, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 9, 35, 84, 111, 110, 101, 109, 97, 112, 32, 111, 114, 105, 103, 105, 110, 97, 108, 10, 9, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 48, 93, 32, 36, 84, 111, 110, 101, 84, 114, 44, 36, 84, 111, 110, 101, 71, 109, 44, 48, 46, 49, 44, 51, 48, 44, 48, 44, 48, 10, 9, 35, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 51, 48, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 9, 35, 67, 111, 109, 112, 111, 115, 101, 32, 83, 113, 117, 105, 103, 103, 108, 105, 101, 115, 32, 116, 111, 32, 111, 114, 105, 103, 105, 110, 97, 108, 10, 9, 45, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 91, 48, 44, 51, 93, 32, 36, 79, 114, 103, 77, 101, 114, 103, 101, 67, 104, 44, 36, 79, 114, 103, 79, 112, 97, 99, 105, 116, 121, 44, 36, 79, 114, 103, 82, 101, 118, 101, 114, 115, 101, 111, 114, 100, 101, 114, 9, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 83, 113, 117, 105, 103, 103, 108, 121, 95, 80, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 83, 113, 117, 105, 103, 103, 108, 121, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 77, 111, 114, 112, 104, 111, 80, 97, 105, 110, 116, 44, 32, 103, 105, 109, 112, 95, 77, 111, 114, 112, 104, 111, 80, 97, 105, 110, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 114, 101, 97, 116, 101, 115, 32, 97, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 117, 115, 105, 110, 103, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 121, 45, 44, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 45, 32, 97, 110, 100, 32, 80, 97, 105, 110, 116, 105, 110, 103, 45, 32, 102, 105, 108, 116, 101, 114, 115, 46, 32, 67, 80, 85, 32, 105, 110, 116, 101, 110, 115, 105, 118, 101, 32, 102, 105, 108, 116, 101, 114, 32, 116, 104, 97, 116, 32, 109, 97, 121, 32, 116, 97, 107, 101, 32, 108, 111, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 114, 112, 104, 111, 83, 116, 114, 101, 110, 103, 104, 116, 32, 61, 32, 105, 110, 116, 40, 49, 56, 44, 50, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 97, 108, 34, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 102, 111, 114, 32, 77, 111, 114, 112, 104, 111, 108, 97, 121, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 80, 111, 105, 110, 116, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 83, 104, 97, 100, 111, 119, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 114, 101, 115, 115, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 105, 110, 116, 40, 50, 51, 48, 44, 50, 48, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 115, 116, 114, 101, 110, 103, 116, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 97, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 56, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 114, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 97, 105, 110, 116, 105, 110, 103, 32, 83, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 101, 32, 108, 97, 121, 101, 114, 115, 63, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 87, 104, 101, 110, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 102, 105, 108, 116, 101, 114, 32, 119, 105, 108, 108, 32, 111, 117, 116, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 115, 101, 112, 97, 114, 97, 116, 101, 108, 121, 32, 102, 111, 114, 32, 109, 97, 110, 117, 97, 108, 32, 99, 111, 109, 112, 111, 115, 105, 110, 103, 46, 32, 83, 101, 116, 32, 71, 39, 77, 105, 99, 32, 111, 117, 116, 112, 117, 116, 32, 116, 111, 32, 110, 101, 119, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 97, 98, 108, 101, 32, 80, 97, 105, 110, 116, 115, 116, 114, 111, 107, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 111, 107, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 97, 98, 108, 101, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 115, 116, 114, 101, 110, 103, 116, 104, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 97, 98, 108, 101, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 115, 116, 114, 101, 110, 103, 116, 104, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 49, 48, 56, 54, 51, 55, 57, 51, 53, 47, 34, 41, 10, 103, 105, 109, 112, 95, 77, 111, 114, 112, 104, 111, 80, 97, 105, 110, 116, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 48, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 50, 44, 48, 44, 36, 51, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 36, 52, 44, 53, 48, 44, 36, 53, 44, 50, 48, 48, 44, 36, 54, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 91, 49, 93, 32, 36, 55, 44, 36, 55, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 36, 56, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 49, 93, 32, 36, 57, 44, 36, 49, 48, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 48, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 49, 46, 53, 44, 36, 49, 51, 44, 49, 44, 48, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 50, 93, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 10, 45, 105, 102, 32, 36, 49, 52, 10, 9, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 48, 125, 32, 77, 111, 114, 112, 104, 111, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 48, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 57, 61, 61, 49, 125, 32, 77, 111, 114, 112, 104, 111, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 36, 50, 48, 125, 32, 45, 101, 110, 100, 105, 102, 9, 35, 83, 101, 116, 32, 108, 97, 121, 101, 114, 32, 118, 97, 108, 117, 101, 32, 116, 111, 32, 122, 101, 114, 111, 32, 105, 102, 32, 101, 110, 97, 98, 108, 101, 100, 10, 9, 45, 109, 117, 108, 91, 50, 93, 32, 123, 36, 77, 111, 114, 112, 104, 111, 83, 116, 114, 101, 110, 103, 116, 104, 47, 51, 125, 10, 9, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 48, 125, 32, 83, 116, 114, 111, 107, 101, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 48, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 49, 125, 32, 83, 116, 114, 111, 107, 101, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 36, 49, 54, 125, 32, 45, 101, 110, 100, 105, 102, 9, 35, 83, 101, 116, 32, 108, 97, 121, 101, 114, 32, 118, 97, 108, 117, 101, 32, 116, 111, 32, 122, 101, 114, 111, 32, 105, 102, 32, 101, 110, 97, 98, 108, 101, 100, 9, 10, 9, 45, 109, 117, 108, 91, 48, 93, 32, 123, 36, 83, 116, 114, 111, 107, 101, 83, 116, 114, 101, 110, 103, 116, 104, 47, 51, 125, 10, 9, 45, 105, 102, 32, 123, 36, 49, 55, 61, 61, 48, 125, 32, 83, 101, 103, 109, 101, 110, 116, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 48, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 55, 61, 61, 49, 125, 32, 83, 101, 103, 109, 101, 110, 116, 83, 116, 114, 101, 110, 103, 116, 104, 61, 123, 36, 49, 56, 125, 32, 45, 101, 110, 100, 105, 102, 9, 35, 83, 101, 116, 32, 108, 97, 121, 101, 114, 32, 118, 97, 108, 117, 101, 32, 116, 111, 32, 122, 101, 114, 111, 32, 105, 102, 32, 101, 110, 97, 98, 108, 101, 100, 10, 9, 45, 109, 117, 108, 91, 49, 93, 32, 123, 36, 83, 101, 103, 109, 101, 110, 116, 83, 116, 114, 101, 110, 103, 116, 104, 47, 51, 125, 10, 9, 45, 97, 100, 100, 91, 49, 93, 32, 91, 50, 93, 10, 9, 45, 97, 100, 100, 91, 49, 93, 32, 91, 48, 93, 10, 9, 9, 45, 105, 102, 32, 36, 50, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 77, 111, 114, 112, 104, 111, 80, 97, 105, 110, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 77, 111, 114, 112, 104, 111, 80, 97, 105, 110, 116, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 104, 97, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 76, 121, 108, 101, 32, 75, 114, 111, 108, 108, 44, 32, 65, 110, 103, 101, 108, 111, 32, 76, 97, 109, 97, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 92, 110, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 50, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 44, 54, 44, 53, 44, 50, 48, 44, 49, 44, 51, 32, 45, 100, 111, 110, 101, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 123, 49, 48, 48, 42, 36, 50, 125, 44, 48, 46, 50, 44, 49, 44, 36, 50, 44, 123, 50, 42, 36, 50, 125, 44, 48, 46, 56, 44, 57, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 49, 44, 49, 54, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 51, 44, 48, 44, 48, 46, 53, 44, 36, 51, 44, 48, 44, 48, 46, 53, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 36, 53, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 49, 48, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 118, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 97, 115, 116, 101, 108, 108, 32, 97, 114, 116, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 115, 116, 101, 108, 108, 44, 32, 103, 105, 109, 112, 95, 112, 97, 115, 116, 101, 108, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 116, 101, 114, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 46, 51, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 103, 32, 116, 101, 120, 116, 117, 114, 101, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 69, 102, 102, 101, 99, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 82, 111, 100, 105, 108, 105, 117, 115, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 51, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 97, 114, 107, 101, 114, 34, 44, 34, 76, 105, 103, 104, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 65, 99, 116, 105, 118, 97, 116, 101, 32, 83, 104, 97, 107, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 65, 99, 116, 105, 118, 97, 116, 101, 32, 76, 105, 122, 97, 114, 100, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 105, 118, 101, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 65, 99, 116, 105, 118, 97, 116, 101, 32, 80, 105, 110, 107, 32, 101, 108, 101, 112, 104, 97, 110, 116, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 117, 110, 107, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 50, 57, 52, 48, 55, 53, 48, 55, 51, 47, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 115, 116, 101, 108, 108, 32, 58, 10, 77, 97, 115, 116, 101, 114, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 10, 66, 103, 84, 101, 120, 116, 117, 114, 101, 100, 61, 36, 50, 10, 82, 101, 118, 101, 114, 115, 101, 69, 102, 102, 101, 99, 116, 61, 36, 51, 10, 82, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 52, 10, 82, 84, 104, 105, 99, 107, 110, 101, 115, 115, 61, 36, 53, 10, 82, 83, 104, 97, 114, 112, 110, 101, 115, 115, 61, 36, 54, 10, 82, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 61, 36, 55, 10, 82, 79, 102, 102, 115, 101, 116, 61, 36, 56, 10, 82, 67, 111, 108, 111, 114, 109, 111, 100, 101, 61, 36, 57, 10, 71, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 49, 48, 10, 71, 76, 105, 110, 101, 97, 114, 105, 116, 121, 61, 36, 49, 49, 10, 71, 78, 101, 103, 97, 116, 105, 118, 101, 67, 111, 108, 111, 114, 115, 61, 36, 49, 50, 10, 65, 99, 116, 105, 118, 97, 116, 101, 83, 104, 97, 107, 101, 115, 61, 36, 49, 51, 10, 82, 105, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 49, 52, 10, 82, 105, 83, 105, 122, 101, 61, 36, 49, 53, 10, 65, 99, 116, 105, 118, 97, 116, 101, 76, 105, 122, 97, 114, 100, 115, 61, 36, 49, 54, 10, 87, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 49, 55, 10, 87, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 49, 56, 10, 65, 99, 116, 105, 118, 97, 116, 101, 80, 105, 110, 107, 61, 36, 49, 57, 10, 82, 68, 101, 102, 111, 114, 109, 61, 36, 50, 48, 10, 82, 67, 104, 97, 110, 110, 101, 108, 115, 61, 48, 10, 71, 77, 105, 110, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 10, 71, 77, 97, 120, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 49, 48, 48, 10, 82, 105, 83, 104, 97, 112, 101, 61, 51, 10, 82, 105, 65, 110, 103, 108, 101, 61, 49, 51, 53, 10, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 80, 105, 110, 107, 61, 61, 49, 125, 32, 45, 100, 101, 102, 111, 114, 109, 91, 48, 93, 32, 36, 82, 68, 101, 102, 111, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 91, 48, 93, 32, 36, 82, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 84, 104, 105, 99, 107, 110, 101, 115, 115, 44, 36, 82, 83, 104, 97, 114, 112, 110, 101, 115, 115, 44, 36, 82, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 44, 36, 82, 79, 102, 102, 115, 101, 116, 44, 36, 82, 67, 111, 108, 111, 114, 109, 111, 100, 101, 44, 36, 82, 67, 104, 97, 110, 110, 101, 108, 115, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 36, 71, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 71, 76, 105, 110, 101, 97, 114, 105, 116, 121, 44, 36, 71, 77, 105, 110, 84, 104, 114, 101, 115, 104, 111, 108, 100, 44, 36, 71, 77, 97, 120, 84, 104, 114, 101, 115, 104, 111, 108, 100, 44, 36, 71, 78, 101, 103, 97, 116, 105, 118, 101, 67, 111, 108, 111, 114, 115, 44, 48, 10, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 48, 93, 32, 49, 53, 44, 49, 48, 44, 51, 44, 51, 44, 48, 10, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 76, 105, 122, 97, 114, 100, 115, 61, 61, 49, 125, 32, 45, 119, 97, 116, 101, 114, 91, 48, 44, 50, 93, 32, 36, 87, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 87, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 83, 104, 97, 107, 101, 115, 61, 61, 49, 125, 32, 45, 114, 105, 112, 112, 108, 101, 91, 48, 44, 50, 93, 32, 36, 82, 105, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 105, 83, 105, 122, 101, 44, 36, 82, 105, 83, 104, 97, 112, 101, 44, 36, 82, 105, 65, 110, 103, 108, 101, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 82, 101, 118, 101, 114, 115, 101, 69, 102, 102, 101, 99, 116, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 100, 105, 118, 105, 100, 101, 44, 49, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 51, 93, 10, 45, 98, 108, 101, 110, 100, 91, 49, 44, 51, 93, 32, 118, 97, 108, 117, 101, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 66, 103, 84, 101, 120, 116, 117, 114, 101, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 101, 108, 108, 105, 112, 115, 105, 111, 110, 105, 115, 109, 91, 48, 93, 32, 50, 48, 44, 50, 44, 49, 48, 44, 48, 46, 53, 44, 49, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 97, 108, 112, 104, 97, 44, 36, 77, 97, 115, 116, 101, 114, 79, 112, 97, 99, 105, 116, 121, 44, 48, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 103, 105, 109, 112, 95, 112, 97, 115, 116, 101, 108, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 115, 116, 101, 108, 108, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 110, 32, 100, 114, 97, 119, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 32, 58, 10, 45, 100, 114, 97, 119, 105, 110, 103, 32, 36, 49, 10, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 95, 100, 114, 97, 119, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 104, 111, 101, 110, 105, 120, 32, 83, 116, 101, 97, 109, 45, 80, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 112, 104, 111, 101, 110, 105, 120, 44, 32, 103, 105, 109, 112, 95, 112, 104, 111, 101, 110, 105, 120, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 32, 34, 67, 111, 110, 116, 114, 111, 108, 115, 32, 102, 111, 114, 32, 34, 80, 101, 110, 99, 105, 108, 34, 32, 97, 112, 112, 108, 105, 101, 100, 32, 111, 110, 32, 97, 32, 99, 111, 112, 121, 32, 111, 102, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 32, 34, 67, 111, 110, 116, 114, 111, 108, 115, 32, 102, 111, 114, 32, 34, 83, 116, 101, 97, 109, 34, 32, 97, 112, 112, 108, 105, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 80, 101, 110, 99, 105, 108, 32, 108, 97, 121, 101, 114, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 97, 109, 32, 80, 114, 101, 115, 115, 117, 114, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 98, 114, 105, 99, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 49, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 32, 34, 84, 111, 32, 101, 120, 105, 116, 32, 104, 101, 114, 101, 32, 111, 114, 32, 109, 101, 114, 103, 101, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 87, 32, 111, 114, 32, 67, 111, 108, 111, 117, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 32, 34, 66, 108, 97, 99, 107, 32, 97, 110, 100, 32, 87, 104, 105, 116, 101, 34, 44, 32, 34, 67, 111, 108, 111, 117, 114, 115, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 116, 111, 32, 97, 99, 116, 105, 118, 97, 116, 101, 32, 116, 104, 101, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 32, 98, 101, 108, 111, 119, 32, 99, 104, 111, 115, 101, 32, 34, 67, 111, 108, 111, 117, 114, 115, 34, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 87, 65, 80, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 86, 97, 108, 117, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 42, 67, 111, 108, 111, 114, 115, 32, 68, 111, 112, 105, 110, 103, 42, 34, 44, 34, 42, 67, 111, 109, 105, 120, 32, 67, 111, 108, 111, 114, 115, 42, 34, 44, 34, 71, 114, 97, 112, 104, 105, 99, 32, 67, 111, 108, 111, 114, 115, 42, 34, 32, 44, 42, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 42, 34, 44, 32, 34, 42, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 42, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 73, 110, 116, 101, 110, 115, 105, 116, 121, 42, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 52, 32, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 104, 111, 119, 32, 116, 111, 32, 97, 110, 100, 32, 104, 101, 108, 112, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 50, 57, 56, 51, 34, 41, 10, 103, 105, 109, 112, 95, 112, 104, 111, 101, 110, 105, 120, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 91, 49, 93, 32, 36, 51, 44, 36, 52, 44, 48, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 49, 93, 32, 36, 53, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 32, 36, 57, 44, 36, 55, 44, 36, 49, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 32, 36, 57, 44, 48, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 36, 57, 44, 48, 46, 53, 48, 44, 36, 55, 44, 36, 49, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 36, 57, 44, 48, 46, 53, 48, 44, 36, 55, 44, 36, 49, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 57, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 32, 36, 57, 44, 48, 46, 56, 48, 44, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 36, 57, 44, 36, 55, 32, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 104, 111, 101, 110, 105, 120, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 104, 111, 101, 110, 105, 120, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 112, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 44, 32, 32, 103, 105, 109, 112, 95, 116, 107, 95, 112, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 97, 100, 100, 105, 110, 103, 32, 97, 110, 32, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 116, 111, 32, 97, 110, 121, 32, 112, 104, 111, 116, 111, 103, 114, 97, 112, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 34, 44, 34, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 115, 111, 102, 116, 34, 44, 34, 116, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 102, 97, 115, 116, 34, 44, 34, 108, 111, 99, 97, 108, 32, 32, 110, 111, 114, 109, 97, 108, 105, 115, 97, 116, 105, 111, 110, 34, 44, 34, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 34, 44, 34, 103, 108, 111, 98, 97, 108, 32, 109, 97, 112, 112, 105, 110, 103, 34, 44, 34, 100, 121, 110, 97, 109, 105, 99, 32, 114, 97, 110, 103, 101, 32, 105, 110, 99, 114, 101, 97, 115, 101, 34, 44, 34, 110, 111, 110, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 46, 48, 48, 44, 50, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 34, 44, 34, 98, 105, 108, 97, 116, 101, 114, 97, 108, 34, 44, 34, 99, 111, 108, 111, 114, 32, 99, 104, 97, 110, 110, 101, 108, 32, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 34, 44, 34, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 34, 44, 34, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 99, 108, 111, 115, 105, 110, 103, 34, 44, 34, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 103, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 119, 97, 118, 101, 108, 101, 116, 34, 44, 34, 75, 117, 119, 97, 104, 97, 114, 97, 34, 44, 34, 110, 111, 110, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 48, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 101, 97, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 48, 44, 48, 46, 48, 48, 44, 49, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 48, 44, 48, 46, 48, 48, 44, 49, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 48, 48, 44, 48, 46, 48, 48, 44, 53, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 105, 97, 108, 32, 101, 102, 102, 101, 99, 116, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 110, 111, 110, 101, 34, 44, 34, 115, 111, 102, 116, 32, 103, 108, 111, 119, 34, 44, 34, 100, 117, 115, 116, 121, 34, 44, 34, 79, 114, 116, 111, 110, 32, 103, 108, 111, 119, 34, 44, 34, 101, 120, 116, 114, 97, 32, 32, 115, 109, 111, 111, 116, 104, 34, 44, 34, 98, 108, 111, 111, 109, 34, 44, 34, 112, 97, 105, 110, 116, 115, 116, 114, 111, 107, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 102, 102, 101, 99, 116, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 46, 48, 48, 44, 48, 46, 48, 48, 44, 50, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 118, 101, 114, 97, 108, 108, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 118, 101, 114, 97, 108, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 100, 32, 116, 111, 110, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 103, 114, 101, 101, 110, 45, 109, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 108, 117, 101, 45, 121, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 111, 111, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 100, 101, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 57, 56, 46, 53, 44, 53, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 109, 105, 99, 114, 111, 47, 109, 97, 99, 114, 111, 32, 100, 101, 116, 97, 105, 108, 115, 32, 32, 97, 100, 106, 117, 115, 116, 101, 100, 34, 44, 34, 102, 105, 110, 101, 34, 44, 34, 115, 116, 114, 111, 110, 103, 34, 44, 34, 104, 105, 103, 104, 32, 112, 97, 115, 115, 34, 44, 34, 97, 114, 116, 105, 115, 116, 105, 99, 32, 114, 111, 117, 110, 100, 34, 44, 34, 97, 114, 116, 105, 115, 116, 105, 99, 32, 104, 97, 114, 100, 34, 44, 34, 97, 114, 116, 105, 115, 116, 105, 99, 32, 32, 109, 111, 100, 101, 114, 110, 34, 44, 34, 99, 111, 109, 105, 99, 32, 83, 116, 121, 108, 101, 34, 44, 34, 103, 114, 105, 116, 116, 121, 34, 44, 34, 110, 111, 110, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 100, 101, 116, 97, 105, 108, 32, 108, 97, 121, 101, 114, 32, 115, 101, 112, 101, 114, 97, 116, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 97, 114, 116, 105, 102, 97, 99, 116, 115, 32, 102, 114, 111, 109, 32, 109, 105, 99, 114, 111, 47, 109, 97, 99, 114, 111, 32, 100, 101, 116, 97, 105, 108, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 110, 32, 116, 111, 110, 101, 32, 112, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 101, 100, 103, 101, 115, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 104, 105, 103, 104, 32, 113, 117, 97, 108, 105, 116, 121, 34, 44, 34, 110, 111, 114, 109, 97, 108, 34, 44, 34, 104, 105, 103, 104, 32, 115, 112, 101, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 50, 56, 47, 48, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 80, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 46, 104, 116, 109, 108, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 112, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 50, 54, 61, 61, 49, 125, 32, 115, 99, 100, 111, 61, 53, 48, 32, 115, 99, 117, 112, 61, 50, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 54, 61, 61, 50, 125, 32, 115, 99, 100, 111, 61, 50, 53, 32, 115, 99, 117, 112, 61, 52, 48, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 54, 33, 61, 48, 125, 32, 45, 114, 32, 36, 115, 99, 100, 111, 37, 44, 36, 115, 99, 100, 111, 37, 32, 45, 101, 108, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 123, 49, 48, 48, 45, 36, 49, 56, 125, 47, 53, 125, 43, 48, 46, 53, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 49, 44, 50, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 123, 123, 49, 48, 48, 45, 36, 49, 56, 125, 47, 49, 48, 125, 43, 48, 46, 53, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 51, 93, 32, 123, 123, 123, 123, 123, 49, 48, 48, 45, 36, 49, 56, 125, 47, 53, 125, 43, 49, 125, 42, 49, 48, 125, 43, 49, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 50, 44, 51, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 123, 123, 49, 48, 48, 45, 36, 49, 56, 125, 47, 49, 48, 125, 43, 48, 46, 53, 125, 42, 51, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 49, 44, 50, 93, 32, 123, 49, 45, 123, 36, 49, 57, 47, 49, 48, 125, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 123, 123, 49, 45, 36, 50, 48, 125, 43, 48, 46, 49, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 36, 49, 57, 44, 123, 57, 57, 46, 57, 57, 45, 36, 49, 56, 125, 44, 36, 49, 56, 44, 49, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 50, 125, 32, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 36, 49, 57, 44, 48, 46, 53, 44, 123, 57, 57, 46, 57, 57, 45, 36, 49, 56, 125, 44, 36, 49, 56, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 51, 125, 32, 45, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 32, 123, 45, 123, 36, 49, 56, 45, 49, 48, 48, 46, 51, 125, 125, 44, 123, 123, 49, 48, 45, 36, 49, 57, 125, 42, 48, 46, 55, 125, 44, 48, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 52, 125, 32, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 123, 49, 48, 48, 45, 36, 49, 56, 125, 44, 123, 36, 49, 57, 42, 50, 48, 125, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 53, 125, 10, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 123, 51, 48, 48, 43, 123, 123, 36, 49, 56, 45, 53, 48, 125, 42, 49, 53, 125, 125, 44, 123, 36, 49, 57, 42, 49, 48, 125, 44, 36, 49, 57, 44, 49, 44, 123, 53, 48, 45, 123, 36, 49, 56, 47, 50, 125, 125, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 54, 125, 32, 45, 45, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 32, 36, 49, 57, 44, 123, 123, 36, 49, 56, 47, 53, 125, 45, 49, 48, 125, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 55, 125, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 123, 36, 49, 57, 47, 51, 46, 53, 125, 44, 123, 57, 53, 45, 36, 49, 56, 125, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 49, 44, 45, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 50, 93, 32, 49, 44, 49, 44, 48, 44, 123, 36, 49, 57, 47, 49, 48, 125, 44, 52, 44, 123, 123, 36, 49, 56, 45, 53, 48, 125, 42, 50, 125, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 49, 44, 50, 93, 32, 123, 48, 46, 53, 43, 123, 36, 50, 48, 47, 50, 125, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 56, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 10, 45, 105, 102, 32, 123, 36, 49, 57, 60, 61, 53, 125, 32, 32, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 49, 93, 32, 32, 49, 44, 123, 50, 45, 123, 123, 36, 49, 57, 42, 48, 46, 51, 125, 43, 48, 46, 53, 125, 125, 44, 50, 48, 44, 123, 53, 45, 36, 49, 57, 125, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 36, 49, 57, 45, 53, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 51, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 49, 44, 36, 49, 50, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 123, 97, 98, 115, 40, 36, 49, 50, 47, 49, 48, 41, 125, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 49, 44, 36, 49, 51, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 51, 44, 123, 97, 98, 115, 40, 36, 49, 50, 47, 49, 48, 41, 125, 44, 55, 44, 48, 32, 32, 32, 32, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 52, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 48, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 49, 45, 123, 36, 50, 47, 50, 46, 53, 125, 125, 44, 36, 50, 44, 123, 50, 43, 123, 36, 50, 42, 56, 48, 125, 125, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 48, 93, 32, 123, 36, 50, 47, 49, 48, 125, 44, 48, 46, 53, 44, 123, 49, 48, 45, 123, 36, 50, 42, 50, 125, 125, 44, 51, 48, 48, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 91, 48, 93, 32, 123, 36, 50, 42, 50, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 10, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 48, 93, 32, 123, 36, 50, 42, 50, 125, 44, 123, 49, 43, 123, 36, 50, 42, 50, 53, 46, 50, 125, 125, 44, 123, 36, 50, 42, 49, 54, 125, 44, 123, 36, 50, 42, 49, 54, 125, 44, 48, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 48, 44, 123, 123, 119, 43, 104, 125, 47, 49, 48, 48, 125, 44, 48, 44, 36, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 123, 123, 119, 43, 104, 125, 47, 53, 125, 45, 123, 36, 50, 42, 123, 123, 119, 43, 104, 125, 47, 49, 50, 46, 53, 125, 125, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 91, 48, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 36, 50, 47, 53, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 36, 50, 42, 50, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 109, 111, 118, 101, 91, 49, 93, 32, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 50, 93, 32, 49, 44, 49, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 119, 43, 104, 125, 47, 53, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 49, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 49, 45, 123, 36, 50, 47, 50, 46, 53, 125, 125, 44, 36, 50, 44, 123, 50, 43, 123, 36, 50, 42, 56, 48, 125, 125, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 49, 93, 32, 123, 36, 50, 47, 49, 48, 125, 44, 48, 46, 53, 44, 123, 49, 48, 45, 123, 36, 50, 42, 50, 125, 125, 44, 51, 48, 48, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 91, 49, 93, 32, 123, 36, 50, 42, 50, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 32, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 49, 93, 32, 32, 123, 36, 50, 42, 50, 125, 44, 123, 49, 43, 123, 36, 50, 42, 50, 53, 46, 50, 125, 125, 44, 123, 36, 50, 42, 49, 54, 125, 44, 123, 36, 50, 42, 49, 54, 125, 44, 48, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 49, 93, 32, 48, 44, 49, 48, 48, 44, 48, 44, 36, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 32, 123, 123, 123, 119, 43, 104, 125, 47, 53, 125, 45, 123, 36, 50, 42, 123, 123, 119, 43, 104, 125, 47, 49, 50, 46, 53, 125, 125, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 91, 49, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 36, 50, 47, 53, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 123, 36, 50, 42, 50, 125, 44, 123, 36, 50, 47, 50, 46, 53, 125, 44, 49, 44, 49, 44, 48, 32, 32, 32, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 112, 108, 105, 116, 91, 49, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 52, 44, 53, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 53, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 53, 44, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 51, 44, 52, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 51, 44, 52, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 51, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 36, 50, 47, 50, 46, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 36, 49, 49, 44, 36, 49, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 36, 49, 52, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 50, 44, 123, 97, 98, 115, 40, 36, 49, 52, 42, 50, 46, 53, 41, 125, 44, 55, 44, 48, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 49, 44, 36, 49, 50, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 123, 97, 98, 115, 40, 36, 49, 50, 47, 49, 48, 41, 125, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 49, 44, 36, 49, 51, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 51, 44, 123, 97, 98, 115, 40, 36, 49, 50, 47, 49, 48, 41, 125, 44, 55, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 32, 123, 36, 53, 42, 49, 48, 48, 125, 44, 123, 36, 52, 42, 50, 125, 44, 36, 52, 44, 36, 53, 44, 36, 53, 44, 48, 46, 56, 48, 44, 51, 48, 46, 48, 48, 44, 50, 46, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 48, 93, 32, 123, 49, 48, 48, 45, 123, 36, 52, 42, 49, 48, 48, 125, 125, 44, 123, 36, 53, 42, 50, 53, 125, 44, 49, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 48, 93, 32, 123, 36, 53, 42, 49, 48, 125, 44, 48, 44, 48, 44, 49, 44, 56, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 48, 93, 32, 123, 36, 52, 42, 53, 125, 44, 123, 36, 53, 47, 50, 125, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 48, 93, 32, 51, 44, 123, 36, 53, 42, 50, 43, 50, 125, 44, 48, 44, 50, 44, 48, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 123, 36, 53, 42, 52, 125, 44, 123, 36, 52, 42, 50, 125, 44, 49, 48, 44, 49, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 123, 49, 48, 45, 123, 36, 52, 42, 49, 48, 125, 125, 44, 123, 114, 111, 117, 110, 100, 40, 36, 53, 42, 53, 44, 49, 41, 125, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 55, 125, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 91, 48, 93, 32, 123, 54, 45, 123, 36, 52, 42, 53, 125, 125, 44, 123, 49, 43, 123, 36, 53, 42, 50, 46, 57, 125, 125, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 55, 44, 36, 49, 53, 44, 48, 44, 36, 49, 55, 44, 36, 49, 54, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 123, 36, 50, 53, 61, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 49, 44, 36, 54, 44, 50, 48, 44, 36, 55, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 48, 93, 32, 36, 54, 44, 123, 51, 48, 45, 123, 36, 55, 42, 53, 125, 125, 44, 49, 44, 48, 32, 45, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 109, 111, 118, 101, 91, 49, 93, 32, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 49, 93, 32, 49, 44, 36, 54, 44, 50, 48, 44, 36, 55, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 119, 43, 104, 125, 47, 53, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 10, 45, 115, 112, 108, 105, 116, 91, 49, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 52, 44, 53, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 53, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 53, 44, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 51, 44, 52, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 51, 44, 52, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 51, 125, 32, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 50, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 61, 61, 56, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 50, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 49, 33, 61, 57, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 50, 48, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 91, 48, 93, 32, 36, 57, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 91, 48, 93, 32, 123, 36, 57, 42, 51, 125, 44, 50, 44, 49, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 123, 36, 50, 50, 61, 61, 49, 125, 38, 38, 123, 36, 50, 49, 33, 61, 57, 125, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 48, 44, 49, 93, 32, 123, 36, 57, 47, 52, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 45, 105, 102, 32, 123, 123, 36, 50, 50, 61, 61, 49, 125, 38, 38, 123, 36, 50, 49, 33, 61, 57, 125, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 51, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 91, 49, 44, 50, 93, 32, 49, 32, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 36, 57, 42, 51, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 36, 57, 47, 50, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 52, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 48, 44, 49, 46, 53, 44, 48, 46, 51, 44, 123, 36, 57, 47, 52, 125, 44, 49, 46, 49, 48, 44, 48, 46, 56, 48, 44, 51, 48, 46, 48, 48, 44, 50, 46, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 53, 125, 10, 45, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 49, 44, 45, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 123, 123, 36, 50, 50, 61, 61, 49, 125, 38, 38, 123, 36, 50, 49, 33, 61, 57, 125, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 48, 44, 123, 49, 48, 48, 45, 123, 36, 57, 42, 50, 46, 53, 125, 125, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 57, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 48, 44, 123, 53, 48, 45, 123, 36, 57, 42, 50, 125, 125, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 36, 57, 42, 50, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 48, 46, 50, 53, 43, 123, 36, 57, 47, 49, 53, 48, 125, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 54, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 32, 54, 48, 44, 48, 46, 49, 54, 44, 123, 123, 36, 57, 47, 53, 48, 125, 43, 48, 46, 54, 125, 44, 123, 123, 36, 57, 47, 57, 125, 43, 48, 46, 54, 125, 44, 50, 46, 51, 53, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 54, 33, 61, 48, 125, 32, 45, 114, 32, 36, 115, 99, 117, 112, 37, 44, 36, 115, 99, 117, 112, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 112, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 112, 104, 111, 116, 111, 105, 108, 108, 117, 115, 116, 114, 97, 116, 105, 111, 110, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 115, 116, 101, 114, 105, 122, 101, 100, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 112, 100, 105, 116, 104, 101, 114, 101, 100, 44, 32, 103, 105, 109, 112, 95, 112, 100, 105, 116, 104, 101, 114, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 101, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 67, 111, 108, 111, 114, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 67, 111, 108, 111, 114, 32, 68, 111, 112, 105, 110, 103, 34, 44, 32, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 32, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 86, 97, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 100, 105, 116, 104, 101, 114, 101, 100, 32, 58, 10, 45, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 49, 50, 56, 32, 45, 43, 32, 36, 51, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 52, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 91, 45, 49, 93, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 50, 93, 32, 36, 53, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 54, 44, 36, 54, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 36, 56, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 56, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 56, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 56, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 56, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 56, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 100, 105, 116, 104, 101, 114, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 100, 105, 116, 104, 101, 114, 101, 100, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 115, 116, 101, 114, 32, 101, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 109, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 115, 104, 97, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 32, 108, 101, 118, 101, 108, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 101, 114, 105, 122, 97, 116, 105, 111, 110, 32, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 32, 97, 110, 100, 32, 68, 97, 118, 105, 100, 32, 82, 101, 118, 111, 121, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 49, 48, 44, 36, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 36, 123, 50, 45, 55, 125, 10, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 111, 115, 116, 101, 114, 95, 101, 100, 103, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 99, 32, 71, 108, 97, 115, 115, 119, 111, 114, 107, 32, 84, 105, 108, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 112, 115, 121, 103, 108, 97, 115, 115, 44, 32, 103, 105, 109, 112, 95, 112, 115, 121, 103, 108, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 116, 97, 105, 110, 101, 100, 32, 71, 108, 97, 115, 115, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 104, 105, 116, 101, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 111, 32, 115, 107, 105, 112, 32, 76, 97, 121, 101, 114, 32, 70, 120, 32, 115, 101, 116, 32, 79, 112, 97, 99, 105, 116, 121, 32, 116, 111, 32, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 121, 101, 114, 32, 70, 120, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 32, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 81, 117, 105, 99, 107, 32, 67, 111, 114, 114, 101, 99, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 83, 112, 101, 99, 105, 97, 108, 32, 70, 120, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 112, 108, 121, 32, 77, 97, 115, 107, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 77, 97, 115, 107, 32, 112, 114, 101, 115, 101, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 105, 115, 101, 32, 76, 111, 99, 97, 108, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 112, 114, 101, 115, 101, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 105, 114, 114, 111, 114, 115, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 77, 105, 114, 114, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 114, 97, 121, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 88, 45, 97, 120, 105, 115, 34, 44, 34, 89, 45, 97, 120, 105, 115, 34, 44, 34, 88, 89, 45, 97, 120, 101, 115, 34, 44, 34, 50, 88, 89, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 32, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 32, 89, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 49, 56, 48, 32, 100, 101, 103, 46, 34, 44, 34, 82, 111, 116, 97, 116, 101, 32, 50, 55, 48, 32, 100, 101, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 115, 105, 122, 101, 32, 61, 32, 95, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 115, 121, 103, 108, 97, 115, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 98, 108, 117, 114, 32, 48, 46, 49, 32, 45, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 98, 108, 117, 114, 32, 48, 46, 49, 32, 45, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 98, 108, 117, 114, 32, 48, 46, 57, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 55, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 50, 44, 54, 44, 53, 44, 50, 48, 44, 49, 44, 51, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 49, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 50, 125, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 51, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 57, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 52, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 49, 56, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 53, 125, 32, 45, 114, 111, 116, 97, 116, 101, 32, 50, 55, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 36, 49, 49, 44, 36, 49, 52, 44, 36, 49, 54, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 49, 50, 37, 44, 45, 36, 49, 51, 37, 44, 48, 44, 48, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 115, 121, 103, 108, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 32, 45, 103, 105, 109, 112, 95, 112, 115, 121, 103, 108, 97, 115, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 82, 111, 100, 105, 108, 105, 117, 115, 32, 58, 32, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 44, 32, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 51, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 97, 114, 107, 101, 114, 34, 44, 34, 76, 105, 103, 104, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 82, 111, 100, 47, 71, 105, 109, 112, 67, 104, 97, 116, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 48, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 111, 100, 105, 108, 105, 117, 115, 32, 36, 123, 49, 45, 53, 44, 55, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 32, 45, 115, 109, 111, 111, 116, 104, 32, 49, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 56, 44, 52, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 51, 48, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 34, 44, 36, 56, 44, 48, 10, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 112, 101, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 83, 113, 117, 97, 114, 101, 115, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 34, 44, 34, 67, 105, 114, 99, 108, 101, 115, 34, 44, 34, 68, 105, 97, 109, 111, 110, 100, 34, 44, 34, 72, 101, 120, 97, 103, 111, 110, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 34, 44, 34, 83, 116, 97, 114, 115, 34, 44, 34, 67, 117, 115, 116, 111, 109, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 97, 110, 99, 104, 101, 115, 32, 61, 32, 105, 110, 116, 40, 55, 44, 50, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 60, 105, 62, 66, 114, 97, 110, 99, 104, 101, 115, 60, 47, 105, 62, 44, 32, 60, 105, 62, 84, 104, 105, 99, 107, 110, 101, 115, 115, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 65, 110, 103, 108, 101, 60, 47, 105, 62, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 60, 105, 62, 67, 117, 115, 116, 111, 109, 60, 47, 105, 62, 32, 115, 104, 97, 112, 101, 115, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 108, 111, 119, 32, 97, 110, 103, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 48, 32, 100, 101, 103, 46, 34, 44, 34, 49, 56, 48, 32, 100, 101, 103, 46, 34, 44, 34, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 65, 110, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 99, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 49, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 51, 37, 32, 45, 112, 111, 119, 91, 45, 49, 93, 32, 36, 49, 50, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 36, 54, 44, 48, 44, 48, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 54, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 50, 93, 32, 49, 48, 48, 37, 32, 45, 45, 103, 116, 91, 49, 93, 32, 36, 62, 32, 45, 110, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 50, 44, 45, 49, 93, 32, 99, 10, 115, 105, 122, 101, 61, 123, 105, 102, 40, 36, 54, 60, 61, 49, 44, 36, 55, 44, 36, 55, 43, 40, 36, 56, 45, 36, 55, 41, 42, 36, 62, 47, 40, 36, 54, 45, 49, 41, 41, 125, 10, 45, 105, 102, 32, 123, 36, 115, 105, 122, 101, 60, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 123, 50, 42, 36, 115, 105, 122, 101, 125, 44, 123, 50, 42, 36, 115, 105, 122, 101, 125, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 32, 45, 114, 50, 100, 121, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 10, 45, 101, 108, 115, 101, 32, 36, 115, 105, 122, 101, 44, 36, 115, 105, 122, 101, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 48, 32, 45, 110, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 123, 36, 49, 48, 60, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 101, 110, 100, 105, 102, 10, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 34, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 49, 48, 48, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 34, 44, 123, 36, 62, 42, 49, 48, 48, 47, 36, 54, 125, 44, 123, 40, 36, 62, 43, 49, 41, 42, 49, 48, 48, 47, 36, 54, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 100, 111, 110, 101, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 57, 55, 10, 45, 114, 109, 91, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 42, 91, 49, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 48, 93, 32, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 49, 48, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 64, 35, 62, 61, 49, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 115, 101, 32, 50, 53, 54, 44, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 32, 34, 44, 34, 36, 42, 34, 10, 53, 48, 37, 44, 53, 48, 37, 32, 45, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 36, 49, 91, 45, 49, 93, 32, 36, 123, 50, 45, 52, 125, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 111, 114, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 48, 32, 58, 10, 45, 102, 32, 50, 53, 53, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 49, 32, 58, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 53, 48, 37, 44, 48, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 50, 32, 58, 10, 45, 95, 100, 116, 95, 99, 105, 114, 99, 108, 101, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 51, 32, 58, 10, 45, 95, 100, 116, 95, 100, 105, 97, 109, 111, 110, 100, 32, 123, 119, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 52, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 51, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 53, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 52, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 54, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 53, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 32, 45, 115, 107, 105, 112, 32, 36, 42, 10, 95, 103, 105, 109, 112, 95, 115, 104, 97, 112, 101, 105, 115, 109, 55, 32, 58, 10, 45, 115, 116, 97, 114, 51, 100, 32, 36, 49, 44, 36, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 64, 123, 48, 44, 109, 105, 110, 40, 119, 44, 104, 41, 47, 50, 125, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 51, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 50, 44, 48, 32, 45, 107, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 83, 105, 109, 112, 108, 101, 32, 110, 111, 105, 115, 101, 32, 99, 97, 110, 118, 97, 115, 32, 58, 32, 103, 105, 109, 112, 95, 83, 105, 109, 112, 108, 101, 78, 111, 105, 115, 101, 67, 97, 110, 118, 97, 115, 44, 32, 103, 105, 109, 112, 95, 83, 105, 109, 112, 108, 101, 78, 111, 105, 115, 101, 67, 97, 110, 118, 97, 115, 80, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 105, 109, 112, 101, 32, 110, 111, 105, 115, 101, 32, 98, 97, 115, 101, 100, 32, 120, 121, 32, 99, 97, 110, 118, 97, 115, 32, 101, 102, 102, 101, 99, 116, 46, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 99, 97, 110, 118, 97, 115, 32, 97, 110, 100, 32, 98, 117, 109, 112, 109, 97, 112, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 99, 97, 110, 118, 97, 115, 32, 97, 102, 116, 101, 114, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 102, 111, 114, 32, 98, 101, 115, 116, 32, 114, 101, 115, 117, 108, 116, 115, 46, 32, 77, 101, 114, 103, 101, 32, 111, 112, 116, 105, 111, 110, 32, 68, 111, 78, 111, 116, 104, 105, 110, 103, 32, 111, 117, 116, 112, 117, 116, 115, 32, 111, 110, 108, 121, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 105, 109, 97, 103, 101, 32, 105, 102, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 99, 97, 110, 118, 97, 115, 32, 111, 112, 116, 105, 111, 110, 32, 105, 115, 32, 110, 111, 116, 32, 115, 101, 108, 101, 99, 116, 101, 100, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 102, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 78, 111, 105, 115, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 105, 115, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 114, 101, 97, 100, 32, 108, 101, 110, 103, 116, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 115, 111, 110, 116, 97, 108, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 50, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 50, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 118, 101, 114, 32, 97, 108, 108, 32, 98, 108, 117, 114, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 118, 97, 115, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 50, 51, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 118, 97, 115, 32, 100, 97, 114, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 72, 111, 119, 32, 116, 111, 32, 99, 111, 109, 98, 105, 110, 101, 32, 88, 89, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 69, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 67, 97, 110, 118, 97, 115, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 73, 109, 97, 103, 101, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 72, 111, 119, 32, 116, 111, 32, 99, 111, 109, 98, 105, 110, 101, 32, 105, 109, 97, 103, 101, 32, 43, 32, 99, 97, 110, 118, 97, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 111, 114, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 49, 44, 34, 65, 118, 103, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 83, 99, 114, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 68, 105, 102, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 72, 97, 114, 100, 108, 105, 103, 104, 116, 34, 44, 34, 83, 111, 102, 116, 108, 105, 103, 104, 116, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 98, 117, 114, 110, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 34, 44, 34, 71, 114, 97, 105, 110, 101, 120, 116, 34, 44, 34, 71, 114, 97, 105, 110, 109, 101, 114, 103, 101, 34, 44, 34, 88, 111, 114, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 68, 111, 78, 111, 116, 104, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 67, 97, 110, 118, 97, 115, 32, 102, 111, 114, 32, 112, 111, 115, 116, 32, 98, 117, 109, 112, 32, 109, 97, 112, 112, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 118, 97, 115, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 49, 53, 50, 48, 52, 48, 54, 52, 50, 47, 34, 41, 10, 103, 105, 109, 112, 95, 83, 105, 109, 112, 108, 101, 78, 111, 105, 115, 101, 67, 97, 110, 118, 97, 115, 32, 58, 10, 67, 97, 110, 118, 97, 115, 83, 99, 97, 108, 101, 61, 123, 36, 49, 125, 10, 78, 111, 105, 115, 101, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 50, 10, 78, 111, 105, 115, 101, 84, 121, 112, 101, 61, 36, 51, 10, 84, 104, 114, 101, 97, 100, 72, 111, 114, 105, 122, 76, 101, 110, 61, 36, 52, 10, 84, 104, 114, 101, 97, 100, 86, 101, 114, 116, 76, 101, 110, 61, 36, 53, 10, 79, 118, 101, 114, 65, 108, 108, 66, 108, 117, 114, 114, 61, 36, 54, 10, 72, 105, 103, 104, 67, 117, 116, 61, 36, 55, 10, 76, 111, 119, 67, 117, 116, 61, 36, 56, 10, 67, 97, 110, 118, 97, 115, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 36, 57, 10, 73, 110, 118, 101, 114, 116, 67, 97, 110, 118, 97, 115, 67, 111, 108, 111, 114, 115, 61, 36, 49, 48, 10, 73, 110, 118, 101, 114, 116, 73, 109, 97, 103, 101, 67, 111, 108, 111, 114, 115, 61, 36, 49, 49, 10, 82, 101, 118, 101, 114, 115, 101, 67, 104, 111, 105, 99, 101, 61, 36, 49, 50, 10, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 36, 49, 51, 10, 80, 114, 101, 115, 101, 114, 118, 101, 67, 97, 110, 118, 97, 115, 61, 36, 49, 52, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 67, 97, 110, 118, 97, 115, 83, 99, 97, 108, 101, 61, 123, 49, 46, 50, 45, 36, 67, 97, 110, 118, 97, 115, 83, 99, 97, 108, 101, 125, 10, 40, 50, 53, 53, 94, 50, 53, 53, 94, 50, 53, 53, 41, 10, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 10, 45, 114, 91, 49, 93, 32, 123, 49, 48, 48, 42, 36, 67, 97, 110, 118, 97, 115, 83, 99, 97, 108, 101, 125, 37, 44, 123, 49, 48, 48, 42, 36, 67, 97, 110, 118, 97, 115, 83, 99, 97, 108, 101, 125, 37, 10, 45, 105, 102, 32, 123, 36, 78, 111, 105, 115, 101, 84, 121, 112, 101, 33, 61, 50, 125, 32, 78, 111, 105, 115, 101, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 123, 40, 36, 78, 111, 105, 115, 101, 65, 109, 112, 108, 105, 116, 117, 100, 101, 42, 49, 48, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 49, 93, 32, 36, 78, 111, 105, 115, 101, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 78, 111, 105, 115, 101, 84, 121, 112, 101, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 48, 44, 36, 84, 104, 114, 101, 97, 100, 72, 111, 114, 105, 122, 76, 101, 110, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 48, 44, 48, 44, 36, 84, 104, 114, 101, 97, 100, 86, 101, 114, 116, 76, 101, 110, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 50, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 51, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 67, 97, 110, 118, 97, 115, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 48, 125, 32, 45, 98, 108, 101, 110, 100, 91, 50, 44, 51, 93, 32, 97, 118, 101, 114, 97, 103, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 67, 97, 110, 118, 97, 115, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 125, 32, 45, 98, 108, 101, 110, 100, 91, 50, 44, 51, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 67, 97, 110, 118, 97, 115, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 50, 125, 32, 45, 98, 108, 101, 110, 100, 91, 50, 44, 51, 93, 32, 100, 97, 114, 107, 101, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 67, 97, 110, 118, 97, 115, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 51, 125, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 50, 44, 51, 93, 32, 48, 46, 57, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 36, 79, 118, 101, 114, 65, 108, 108, 66, 108, 117, 114, 114, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 10, 40, 36, 49, 53, 94, 36, 49, 54, 94, 36, 49, 55, 41, 10, 45, 114, 91, 50, 93, 32, 91, 48, 93, 10, 45, 98, 108, 101, 110, 100, 91, 49, 44, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 123, 36, 76, 111, 119, 67, 117, 116, 125, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 123, 36, 72, 105, 103, 104, 67, 117, 116, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 82, 101, 118, 101, 114, 115, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 116, 67, 97, 110, 118, 97, 115, 67, 111, 108, 111, 114, 115, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 116, 73, 109, 97, 103, 101, 67, 111, 108, 111, 114, 115, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 48, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 97, 118, 101, 114, 97, 103, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 50, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 115, 99, 114, 101, 101, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 51, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 100, 97, 114, 107, 101, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 52, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 108, 105, 103, 104, 116, 101, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 53, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 54, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 110, 101, 103, 97, 116, 105, 111, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 55, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 56, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 111, 118, 101, 114, 108, 97, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 57, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 48, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 49, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 100, 111, 100, 103, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 50, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 99, 111, 108, 111, 114, 98, 117, 114, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 51, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 114, 101, 102, 108, 101, 99, 116, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 52, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 102, 114, 101, 101, 122, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 53, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 115, 116, 97, 109, 112, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 54, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 55, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 56, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 57, 125, 32, 45, 45, 98, 108, 101, 110, 100, 91, 49, 44, 48, 93, 32, 120, 111, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 61, 61, 50, 48, 125, 32, 45, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 49, 44, 48, 93, 32, 48, 46, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 82, 101, 118, 101, 114, 115, 101, 67, 104, 111, 105, 99, 101, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 80, 114, 101, 115, 101, 114, 118, 101, 67, 97, 110, 118, 97, 115, 61, 61, 48, 125, 32, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 80, 114, 101, 115, 101, 114, 118, 101, 67, 97, 110, 118, 97, 115, 61, 61, 49, 34, 32, 38, 38, 32, 34, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 33, 61, 50, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 33, 61, 50, 49, 125, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 77, 101, 114, 103, 101, 67, 104, 111, 105, 99, 101, 33, 61, 50, 49, 34, 32, 38, 38, 32, 34, 36, 80, 114, 101, 115, 101, 114, 118, 101, 67, 97, 110, 118, 97, 115, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 83, 105, 109, 112, 108, 101, 78, 111, 105, 115, 101, 67, 97, 110, 118, 97, 115, 80, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 83, 105, 109, 112, 108, 101, 78, 111, 105, 115, 101, 67, 97, 110, 118, 97, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 114, 104, 111, 108, 32, 58, 32, 119, 97, 114, 104, 111, 108, 44, 32, 119, 97, 114, 104, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 44, 32, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 71, 101, 110, 101, 114, 97, 108, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 76, 105, 110, 101, 32, 97, 114, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 97, 114, 116, 32, 100, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 56, 48, 44, 53, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 97, 114, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 97, 114, 116, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 97, 114, 116, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 112, 101, 110, 99, 105, 108, 34, 44, 34, 105, 110, 107, 34, 44, 34, 99, 111, 109, 105, 99, 32, 115, 116, 121, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 97, 114, 116, 32, 102, 97, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 111, 108, 111, 114, 32, 98, 114, 117, 115, 104, 101, 115, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 117, 115, 104, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 109, 111, 100, 101, 114, 110, 34, 44, 34, 99, 108, 97, 115, 115, 105, 99, 34, 44, 34, 97, 98, 115, 116, 114, 97, 99, 116, 34, 44, 34, 108, 105, 110, 101, 34, 44, 34, 115, 109, 111, 111, 116, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 98, 114, 117, 115, 104, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 115, 116, 114, 111, 107, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 101, 100, 103, 101, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 98, 114, 117, 115, 104, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 115, 116, 114, 111, 107, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 101, 100, 103, 101, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 98, 114, 117, 115, 104, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 115, 116, 114, 111, 107, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 101, 100, 103, 101, 32, 100, 105, 115, 116, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 97, 112, 101, 114, 32, 97, 110, 100, 32, 97, 109, 98, 105, 101, 110, 99, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 112, 101, 114, 32, 99, 111, 108, 111, 114, 32, 98, 108, 97, 99, 107, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 112, 97, 112, 101, 114, 32, 116, 101, 120, 116, 117, 114, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 98, 105, 101, 110, 116, 32, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 32, 97, 110, 100, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 50, 47, 49, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 84, 117, 116, 111, 114, 105, 97, 108, 32, 100, 111, 119, 110, 108, 111, 97, 100, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 115, 108, 105, 100, 101, 115, 104, 97, 114, 101, 46, 110, 101, 116, 47, 65, 114, 116, 111, 72, 117, 111, 116, 97, 114, 105, 47, 103, 109, 105, 103, 45, 119, 97, 116, 101, 114, 45, 99, 111, 108, 111, 114, 45, 102, 105, 108, 116, 101, 114, 45, 116, 117, 116, 111, 114, 105, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 86, 105, 100, 101, 111, 32, 100, 101, 109, 111, 110, 115, 116, 114, 97, 116, 105, 111, 110, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 118, 105, 109, 101, 111, 46, 99, 111, 109, 47, 49, 57, 55, 49, 51, 56, 53, 48, 34, 41, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 36, 53, 44, 48, 46, 53, 44, 123, 57, 57, 46, 57, 57, 45, 36, 52, 125, 44, 36, 52, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 123, 36, 53, 47, 51, 46, 53, 125, 44, 123, 57, 53, 45, 36, 52, 125, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 123, 36, 53, 47, 51, 46, 53, 125, 44, 123, 57, 53, 45, 36, 52, 125, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 49, 44, 45, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 50, 93, 32, 49, 44, 49, 44, 48, 44, 123, 36, 53, 47, 49, 48, 125, 44, 52, 44, 123, 123, 36, 52, 45, 53, 48, 125, 42, 50, 125, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 49, 44, 50, 93, 32, 123, 48, 46, 53, 43, 123, 36, 54, 47, 50, 125, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 91, 49, 93, 32, 53, 44, 36, 56, 44, 49, 53, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 46, 49, 44, 51, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 54, 48, 44, 48, 46, 49, 54, 44, 123, 123, 50, 48, 47, 53, 48, 125, 43, 48, 46, 54, 125, 44, 123, 123, 50, 48, 47, 57, 125, 43, 48, 46, 54, 125, 44, 50, 46, 51, 53, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 109, 111, 118, 101, 91, 49, 93, 32, 52, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 119, 43, 104, 125, 47, 49, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 49, 44, 50, 93, 32, 49, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 44, 36, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 48, 44, 49, 93, 32, 36, 50, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 123, 36, 51, 42, 53, 125, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 51, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 48, 44, 57, 57, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 49, 93, 32, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 91, 49, 93, 32, 123, 36, 51, 42, 50, 125, 44, 123, 36, 51, 42, 50, 125, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 123, 119, 43, 104, 125, 47, 49, 48, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 48, 44, 49, 93, 32, 49, 10, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 50, 125, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 51, 125, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 48, 93, 32, 123, 36, 49, 48, 47, 53, 125, 44, 123, 36, 49, 51, 42, 53, 125, 44, 49, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 49, 93, 32, 123, 36, 49, 52, 47, 53, 125, 44, 123, 36, 49, 55, 42, 53, 125, 44, 49, 44, 48, 32, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 50, 93, 32, 123, 36, 49, 56, 47, 53, 125, 44, 123, 36, 50, 49, 42, 53, 125, 44, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 52, 125, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 48, 93, 32, 49, 44, 123, 123, 36, 49, 49, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 49, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 57, 33, 61, 50, 125, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 48, 93, 32, 36, 49, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 99, 117, 98, 105, 115, 109, 91, 48, 93, 32, 51, 48, 48, 44, 123, 36, 49, 51, 42, 53, 125, 44, 123, 36, 49, 51, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 48, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 51, 93, 32, 49, 44, 123, 123, 36, 49, 49, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 49, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 99, 117, 98, 105, 115, 109, 91, 45, 51, 93, 32, 51, 48, 48, 44, 123, 36, 49, 51, 42, 53, 125, 44, 123, 36, 49, 51, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 48, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 52, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 51, 93, 32, 49, 44, 123, 123, 36, 49, 49, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 49, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 51, 93, 32, 36, 49, 51, 44, 49, 46, 53, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 51, 93, 32, 123, 36, 49, 50, 42, 53, 125, 44, 123, 36, 49, 50, 42, 53, 125, 44, 123, 36, 49, 51, 42, 50, 48, 125, 44, 123, 36, 49, 48, 47, 50, 125, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 123, 123, 36, 49, 53, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 53, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 57, 33, 61, 50, 125, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 49, 52, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 99, 117, 98, 105, 115, 109, 91, 49, 93, 32, 51, 48, 48, 44, 123, 36, 49, 55, 42, 53, 125, 44, 123, 36, 49, 55, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 52, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 50, 93, 32, 49, 44, 123, 123, 36, 49, 53, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 53, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 99, 117, 98, 105, 115, 109, 91, 45, 50, 93, 32, 51, 48, 48, 44, 123, 36, 49, 55, 42, 53, 125, 44, 123, 36, 49, 55, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 52, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 52, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 50, 93, 32, 49, 44, 123, 123, 36, 49, 53, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 53, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 50, 93, 32, 36, 49, 55, 44, 49, 46, 53, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 50, 93, 32, 123, 36, 49, 54, 42, 53, 125, 44, 123, 36, 49, 54, 42, 53, 125, 44, 123, 36, 49, 55, 42, 50, 48, 125, 44, 123, 36, 49, 52, 47, 50, 125, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 50, 93, 32, 49, 44, 123, 123, 36, 49, 57, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 57, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 57, 33, 61, 50, 125, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 36, 49, 56, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 99, 117, 98, 105, 115, 109, 91, 50, 93, 32, 51, 48, 48, 44, 123, 36, 50, 49, 42, 53, 125, 44, 123, 36, 50, 49, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 56, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 49, 57, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 57, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 99, 117, 98, 105, 115, 109, 91, 45, 49, 93, 32, 51, 48, 48, 44, 123, 36, 50, 49, 42, 53, 125, 44, 123, 36, 50, 49, 42, 51, 54, 125, 44, 49, 44, 123, 36, 49, 56, 47, 53, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 52, 125, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 49, 57, 47, 53, 125, 43, 49, 125, 44, 123, 36, 49, 57, 47, 53, 48, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 36, 50, 49, 44, 49, 46, 53, 44, 50, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 49, 93, 32, 123, 36, 50, 48, 42, 53, 125, 44, 123, 36, 50, 48, 42, 53, 125, 44, 123, 36, 50, 49, 42, 50, 48, 125, 44, 123, 36, 49, 56, 47, 50, 125, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 50, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 50, 93, 10, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 51, 44, 45, 51, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 51, 44, 45, 51, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 44, 51, 93, 32, 99, 10, 45, 115, 112, 108, 105, 116, 91, 49, 93, 32, 99, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 52, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 45, 50, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 44, 51, 44, 52, 93, 32, 99, 10, 45, 115, 112, 108, 105, 116, 91, 50, 93, 32, 99, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 53, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 53, 44, 45, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 50, 44, 51, 44, 52, 44, 53, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 45, 49, 93, 32, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 50, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 50, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 50, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 50, 44, 45, 49, 93, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 32, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 52, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 36, 50, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 48, 44, 49, 93, 32, 36, 54, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 87, 104, 105, 114, 108, 32, 100, 114, 97, 119, 105, 110, 103, 32, 58, 32, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 44, 32, 103, 105, 109, 112, 95, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 100, 114, 97, 119, 95, 119, 104, 105, 114, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 87, 105, 108, 100, 32, 67, 97, 114, 116, 111, 111, 110, 105, 122, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 109, 95, 108, 95, 117, 110, 115, 104, 97, 114, 112, 50, 32, 44, 32, 103, 105, 109, 112, 95, 109, 95, 108, 95, 117, 110, 115, 104, 97, 114, 112, 50, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 46, 49, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 101, 110, 32, 77, 101, 114, 103, 101, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 101, 110, 32, 77, 101, 114, 103, 101, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 65, 100, 100, 105, 116, 105, 111, 110, 97, 108, 32, 80, 97, 105, 110, 116, 101, 114, 32, 77, 111, 100, 117, 108, 101, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 46, 50, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 95, 108, 95, 117, 110, 115, 104, 97, 114, 112, 50, 32, 58, 10, 45, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 49, 44, 36, 50, 44, 48, 10, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 51, 44, 36, 52, 44, 48, 91, 49, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 53, 10, 45, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 51, 44, 36, 52, 44, 48, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 32, 36, 54, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 95, 108, 95, 117, 110, 115, 104, 97, 114, 112, 50, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 95, 108, 95, 117, 110, 115, 104, 97, 114, 112, 50, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 66, 108, 97, 99, 107, 32, 38, 97, 109, 112, 59, 32, 119, 104, 105, 116, 101, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 97, 99, 107, 32, 38, 97, 109, 112, 59, 32, 87, 104, 105, 116, 101, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 44, 32, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 57, 57, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 56, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 49, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 115, 104, 97, 100, 111, 119, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 109, 105, 100, 116, 111, 110, 101, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 116, 111, 110, 101, 32, 102, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 54, 44, 49, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 115, 101, 117, 100, 111, 45, 103, 114, 97, 121, 32, 100, 105, 116, 104, 101, 114, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 109, 97, 120, 105, 109, 117, 109, 32, 116, 111, 110, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 50, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 98, 91, 45, 51, 93, 32, 36, 50, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 51, 32, 45, 98, 91, 45, 50, 93, 32, 36, 52, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 54, 37, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 123, 36, 49, 43, 36, 51, 43, 36, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 55, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 56, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 43, 91, 45, 49, 93, 32, 36, 57, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 91, 45, 49, 93, 120, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 51, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 51, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 51, 93, 32, 45, 36, 49, 50, 44, 36, 49, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 50, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 50, 93, 32, 45, 36, 49, 51, 44, 36, 49, 51, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 48, 44, 36, 49, 55, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 54, 37, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 49, 52, 44, 36, 49, 52, 10, 45, 45, 116, 111, 110, 101, 115, 91, 45, 52, 93, 32, 51, 32, 45, 98, 91, 45, 51, 45, 45, 49, 93, 32, 36, 49, 53, 37, 10, 45, 42, 91, 45, 54, 44, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 49, 48, 124, 124, 36, 49, 49, 125, 10, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 49, 49, 10, 45, 105, 91, 45, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 49, 48, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 36, 49, 56, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 49, 56, 44, 36, 49, 57, 44, 36, 50, 48, 44, 50, 37, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 49, 32, 45, 116, 111, 95, 112, 115, 101, 117, 100, 111, 103, 114, 97, 121, 32, 36, 50, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 87, 32, 83, 116, 101, 97, 109, 112, 117, 110, 107, 45, 80, 101, 110, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 101, 97, 109, 112, 101, 110, 44, 32, 103, 105, 109, 112, 95, 115, 116, 101, 97, 109, 112, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 97, 109, 32, 80, 114, 101, 115, 115, 117, 114, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 98, 114, 105, 99, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 49, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 70, 88, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 45, 83, 107, 105, 112, 34, 44, 34, 76, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 34, 44, 34, 77, 97, 115, 107, 34, 44, 34, 66, 111, 111, 115, 116, 34, 44, 34, 70, 97, 115, 116, 32, 84, 111, 110, 101, 32, 77, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 70, 111, 114, 32, 97, 32, 109, 111, 114, 101, 32, 34, 112, 97, 105, 110, 116, 101, 100, 34, 32, 101, 102, 102, 101, 99, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 54, 47, 50, 57, 32, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 101, 97, 109, 112, 101, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 107, 117, 119, 97, 104, 97, 114, 97, 32, 36, 51, 44, 36, 52, 44, 48, 44, 48, 10, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 53, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 52, 46, 56, 44, 50, 50, 44, 54, 46, 56, 57, 44, 50, 48, 44, 49, 44, 51, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 50, 44, 48, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 50, 44, 49, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 51, 44, 48, 46, 53, 44, 51, 44, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 101, 97, 109, 112, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 101, 97, 109, 112, 101, 110, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 104, 97, 114, 99, 111, 97, 108, 32, 58, 32, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 44, 32, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 110, 117, 108, 97, 114, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 54, 53, 44, 48, 44, 56, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 119, 108, 105, 103, 104, 116, 115, 32, 99, 114, 111, 115, 115, 111, 118, 101, 114, 32, 112, 111, 105, 110, 116, 32, 61, 32, 105, 110, 116, 40, 55, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 99, 114, 111, 115, 115, 111, 118, 101, 114, 32, 112, 111, 105, 110, 116, 32, 61, 32, 105, 110, 116, 40, 49, 55, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 111, 115, 116, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 105, 122, 101, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 32, 111, 112, 116, 105, 109, 117, 109, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 99, 104, 97, 108, 107, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 105, 110, 116, 40, 55, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 47, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 49, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 110, 115, 112, 105, 114, 101, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 67, 104, 97, 114, 99, 111, 97, 108, 32, 115, 99, 114, 105, 112, 116, 32, 98, 121, 32, 60, 105, 62, 109, 105, 99, 111, 109, 105, 99, 111, 110, 60, 47, 105, 62, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 114, 101, 103, 105, 115, 116, 114, 121, 46, 103, 105, 109, 112, 46, 111, 114, 103, 47, 110, 111, 100, 101, 47, 50, 53, 48, 55, 56, 34, 41, 10, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 109, 97, 120, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 53, 48, 37, 44, 49, 53, 48, 37, 44, 49, 44, 49, 44, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 123, 36, 49, 42, 51, 125, 32, 45, 99, 117, 116, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 45, 45, 116, 50, 32, 36, 55, 44, 36, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 50, 91, 48, 93, 32, 36, 50, 44, 36, 51, 10, 45, 105, 102, 32, 123, 33, 36, 49, 53, 125, 32, 45, 101, 113, 91, 48, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 111, 114, 10, 45, 45, 42, 91, 48, 93, 32, 36, 49, 48, 32, 45, 45, 42, 91, 48, 93, 32, 36, 49, 49, 32, 45, 42, 91, 48, 93, 32, 36, 57, 10, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 97, 114, 99, 111, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 105, 122, 101, 32, 91, 99, 111, 109, 105, 99, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 76, 97, 121, 101, 114, 115, 32, 111, 114, 100, 101, 114, 105, 110, 103, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 48, 44, 34, 67, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 32, 43, 32, 108, 105, 110, 101, 97, 114, 116, 34, 44, 34, 76, 105, 110, 101, 97, 114, 116, 32, 43, 32, 99, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 34, 44, 34, 67, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 32, 43, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 43, 32, 108, 105, 110, 101, 97, 114, 116, 34, 44, 34, 76, 105, 110, 101, 97, 114, 116, 32, 43, 32, 99, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 32, 43, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 123, 49, 44, 34, 83, 105, 110, 103, 108, 101, 32, 40, 109, 101, 114, 103, 101, 100, 41, 34, 44, 34, 69, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 43, 32, 108, 105, 110, 101, 97, 114, 116, 34, 44, 34, 76, 105, 110, 101, 97, 114, 116, 32, 43, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 67, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 32, 43, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 32, 43, 32, 108, 105, 110, 101, 97, 114, 116, 34, 44, 34, 76, 105, 110, 101, 97, 114, 116, 32, 43, 32, 99, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 32, 43, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 89, 111, 117, 32, 112, 114, 111, 98, 97, 98, 108, 121, 32, 110, 101, 101, 100, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 60, 105, 62, 65, 108, 108, 60, 47, 105, 62, 32, 102, 111, 114, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 111, 110, 32, 116, 104, 101, 32, 108, 101, 102, 116, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 105, 62, 67, 111, 108, 111, 114, 32, 115, 112, 111, 116, 115, 60, 47, 105, 62, 32, 61, 32, 121, 111, 117, 114, 32, 108, 97, 121, 101, 114, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 105, 110, 100, 105, 99, 97, 116, 105, 111, 110, 115, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 105, 62, 76, 105, 110, 101, 97, 114, 116, 60, 47, 105, 62, 32, 61, 32, 121, 111, 117, 114, 32, 108, 97, 121, 101, 114, 32, 119, 105, 116, 104, 32, 108, 105, 110, 101, 45, 97, 114, 116, 32, 40, 98, 38, 97, 109, 112, 59, 119, 32, 111, 114, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 41, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 105, 62, 69, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 60, 47, 105, 62, 32, 61, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 108, 97, 121, 101, 114, 32, 119, 105, 116, 104, 32, 102, 108, 97, 116, 32, 99, 111, 108, 111, 114, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 98, 62, 87, 97, 114, 110, 105, 110, 103, 58, 60, 47, 98, 62, 32, 68, 111, 32, 110, 111, 116, 32, 114, 101, 108, 121, 32, 116, 111, 111, 32, 109, 117, 99, 104, 32, 111, 110, 32, 116, 104, 101, 32, 112, 114, 101, 118, 105, 101, 119, 44, 32, 105, 116, 32, 105, 115, 32, 112, 114, 111, 98, 97, 98, 108, 121, 32, 110, 111, 116, 32, 97, 99, 99, 117, 114, 97, 116, 101, 32, 33, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 44, 32, 84, 105, 109, 111, 116, 104, 38, 35, 50, 51, 51, 59, 101, 32, 71, 105, 101, 116, 44, 32, 68, 97, 118, 105, 100, 32, 82, 101, 118, 111, 121, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 49, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 48, 46, 53, 44, 34, 77, 111, 114, 101, 32, 105, 110, 102, 111, 115, 32, 111, 110, 32, 116, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 50, 56, 38, 116, 61, 55, 53, 54, 55, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 60, 50, 125, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 48, 44, 49, 32, 45, 101, 108, 115, 101, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 48, 44, 49, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 36, 115, 101, 108, 101, 99, 116, 105, 111, 110, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 118, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 114, 109, 91, 50, 93, 32, 45, 114, 118, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 10, 45, 105, 102, 32, 123, 105, 40, 48, 41, 62, 105, 40, 49, 41, 125, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 114, 118, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 114, 118, 91, 49, 44, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 105, 122, 101, 95, 99, 111, 109, 105, 99, 115, 32, 36, 49, 44, 48, 44, 36, 51, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 105, 122, 101, 32, 91, 112, 104, 111, 116, 111, 103, 114, 97, 112, 104, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 44, 32, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 77, 101, 114, 103, 101, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 47, 99, 111, 108, 111, 114, 115, 34, 44, 34, 83, 112, 108, 105, 116, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 47, 99, 111, 108, 111, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 84, 104, 101, 32, 98, 111, 116, 116, 111, 109, 32, 108, 97, 121, 101, 114, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 32, 66, 38, 97, 109, 112, 59, 87, 32, 105, 109, 97, 103, 101, 44, 32, 119, 104, 105, 108, 101, 32, 116, 104, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 99, 111, 108, 111, 114, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 98, 101, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 115, 109, 97, 114, 116, 32, 119, 97, 121, 32, 40, 101, 100, 103, 101, 45, 100, 105, 114, 101, 99, 116, 101, 100, 41, 32, 116, 111, 32, 102, 105, 108, 108, 32, 116, 104, 101, 32, 101, 110, 116, 105, 114, 101, 32, 105, 109, 97, 103, 101, 46, 32, 65, 116, 32, 116, 104, 101, 32, 101, 110, 100, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 121, 111, 117, 32, 103, 101, 116, 32, 97, 32, 99, 111, 109, 112, 108, 101, 116, 101, 108, 121, 32, 114, 101, 99, 111, 108, 111, 114, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 105, 102, 32, 36, 51, 32, 115, 61, 36, 62, 44, 123, 36, 62, 43, 49, 125, 32, 45, 101, 108, 115, 101, 32, 115, 61, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 36, 115, 93, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 51, 44, 45, 50, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 51, 44, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 51, 93, 32, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 50, 10, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 93, 32, 49, 10, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 45, 51, 93, 32, 36, 50, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 101, 113, 91, 45, 50, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 36, 49, 42, 56, 48, 125, 44, 48, 46, 56, 44, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 105, 91, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 32, 45, 105, 91, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 48, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 97, 91, 94, 48, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 36, 42, 32, 45, 97, 32, 120, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 105, 122, 101, 32, 91, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 109, 97, 112, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 44, 32, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 112, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 85, 115, 101, 114, 45, 100, 101, 102, 105, 110, 101, 100, 34, 44, 34, 66, 108, 97, 99, 107, 32, 116, 111, 32, 119, 104, 105, 116, 101, 34, 44, 34, 87, 104, 105, 116, 101, 32, 116, 111, 32, 98, 108, 97, 99, 107, 34, 44, 34, 83, 101, 112, 105, 97, 34, 44, 34, 83, 111, 108, 97, 114, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 67, 117, 98, 105, 99, 34, 44, 34, 76, 97, 110, 99, 122, 111, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 105, 110, 105, 116, 105, 97, 108, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 117, 62, 85, 115, 101, 114, 45, 100, 101, 102, 105, 110, 101, 100, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 60, 47, 117, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 52, 51, 44, 50, 53, 44, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 53, 56, 44, 49, 51, 55, 44, 49, 56, 57, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 116, 104, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 49, 57, 49, 44, 50, 50, 56, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 116, 104, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 116, 104, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 55, 116, 104, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 116, 104, 32, 116, 111, 110, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 10, 40, 36, 123, 57, 45, 45, 50, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 52, 44, 36, 56, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 10, 40, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 48, 44, 50, 53, 53, 94, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 10, 40, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 48, 94, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 10, 40, 48, 44, 52, 52, 44, 49, 49, 53, 44, 49, 52, 51, 44, 49, 57, 54, 44, 50, 52, 52, 94, 48, 44, 50, 48, 44, 56, 52, 44, 49, 49, 57, 44, 49, 56, 52, 44, 50, 51, 53, 94, 48, 44, 53, 44, 52, 52, 44, 55, 51, 44, 49, 52, 52, 44, 50, 48, 48, 94, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 45, 101, 108, 115, 101, 10, 40, 48, 44, 51, 53, 57, 94, 49, 44, 49, 94, 49, 44, 49, 94, 50, 53, 53, 44, 50, 53, 53, 41, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 51, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 91, 45, 49, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 52, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 102, 91, 45, 49, 93, 32, 120, 47, 119, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 94, 45, 49, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 123, 36, 51, 43, 49, 50, 56, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 119, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 105, 116, 104, 101, 114, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 44, 32, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 49, 50, 56, 32, 45, 43, 32, 36, 51, 32, 45, 98, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 10, 45, 105, 102, 32, 123, 36, 53, 124, 124, 36, 54, 125, 32, 45, 47, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 102, 99, 91, 48, 93, 32, 36, 53, 44, 36, 54, 32, 45, 97, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 116, 104, 101, 114, 101, 100, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 97, 114, 100, 32, 115, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 44, 32, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 98, 32, 36, 51, 32, 45, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 105, 102, 32, 36, 55, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 111, 117, 103, 104, 32, 115, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 44, 32, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 55, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 50, 45, 53, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 107, 32, 119, 97, 115, 104, 32, 58, 32, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 44, 32, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 107, 32, 119, 97, 115, 104, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 52, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 51, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 104, 101, 99, 107, 32, 105, 102, 32, 121, 111, 117, 32, 119, 105, 115, 104, 32, 118, 105, 115, 117, 97, 108, 32, 99, 111, 110, 116, 114, 111, 108, 32, 111, 110, 32, 116, 104, 105, 115, 32, 115, 116, 101, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 85, 78, 99, 104, 101, 99, 107, 32, 116, 111, 32, 114, 101, 97, 99, 116, 105, 118, 97, 116, 101, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 111, 102, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 50, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 116, 99, 104, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 65, 117, 116, 111, 109, 97, 116, 105, 99, 34, 44, 34, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 38, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 77, 97, 115, 107, 34, 44, 34, 77, 97, 110, 117, 97, 108, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 111, 32, 97, 99, 116, 105, 118, 97, 116, 101, 32, 116, 104, 101, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 99, 104, 111, 115, 101, 32, 39, 77, 97, 110, 117, 97, 108, 32, 67, 111, 110, 116, 114, 111, 108, 115, 39, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 109, 112, 108, 105, 116, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 78, 101, 105, 103, 104, 116, 98, 111, 114, 104, 111, 111, 100, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 118, 101, 114, 97, 103, 101, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 52, 47, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 48, 44, 34, 70, 111, 114, 117, 109, 32, 116, 104, 114, 101, 97, 100, 32, 97, 98, 111, 117, 116, 32, 116, 104, 101, 32, 102, 105, 108, 116, 101, 114, 32, 100, 105, 115, 99, 117, 115, 115, 105, 111, 110, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 49, 48, 38, 116, 61, 57, 49, 52, 34, 41, 10, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 99, 111, 110, 116, 105, 110, 117, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 54, 48, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 50, 44, 54, 44, 53, 44, 50, 52, 44, 49, 44, 48, 44, 50, 53, 53, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 50, 44, 54, 44, 53, 44, 50, 52, 44, 49, 44, 48, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 50, 44, 48, 44, 48, 46, 53, 49, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 49, 44, 51, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 77, 117, 108, 116, 105, 45, 76, 97, 121, 101, 114, 32, 69, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 108, 97, 121, 101, 114, 101, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 108, 97, 121, 101, 114, 101, 116, 99, 104, 40, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 69, 116, 99, 104, 32, 119, 105, 116, 104, 32, 115, 101, 108, 101, 99, 116, 97, 98, 108, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 108, 97, 121, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 87, 97, 114, 110, 105, 110, 103, 58, 32, 87, 105, 116, 104, 32, 104, 105, 103, 104, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 108, 97, 121, 101, 114, 115, 32, 116, 104, 105, 115, 32, 99, 97, 110, 32, 98, 101, 32, 86, 69, 82, 89, 32, 115, 108, 111, 119, 33, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 116, 97, 108, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 105, 110, 116, 40, 49, 49, 44, 50, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 104, 105, 116, 101, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 116, 99, 104, 32, 84, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 50, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 105, 115, 101, 32, 76, 101, 118, 101, 108, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 53, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 46, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 32, 65, 110, 103, 108, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 110, 100, 111, 109, 32, 65, 110, 103, 108, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 52, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 67, 117, 114, 118, 101, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 65, 110, 103, 108, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 82, 101, 115, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 50, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 99, 100, 95, 108, 97, 121, 101, 114, 101, 116, 99, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 54, 125, 44, 36, 123, 50, 61, 55, 125, 44, 36, 123, 51, 61, 49, 52, 125, 44, 36, 123, 52, 61, 48, 46, 49, 50, 125, 44, 36, 123, 53, 61, 49, 48, 48, 125, 44, 36, 123, 54, 61, 53, 125, 44, 36, 123, 55, 61, 52, 46, 54, 53, 125, 44, 36, 123, 56, 61, 48, 125, 44, 36, 123, 57, 61, 48, 125, 44, 36, 123, 49, 48, 61, 51, 125, 44, 36, 123, 49, 49, 61, 49, 125, 44, 36, 123, 49, 50, 61, 49, 125, 44, 36, 123, 49, 51, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 99, 61, 56, 48, 48, 32, 109, 108, 61, 36, 49, 32, 119, 108, 61, 123, 109, 105, 110, 40, 36, 50, 44, 36, 109, 108, 45, 49, 41, 125, 10, 110, 119, 108, 61, 123, 36, 109, 108, 45, 36, 119, 108, 125, 32, 110, 119, 108, 61, 123, 36, 110, 119, 108, 43, 40, 36, 110, 119, 108, 37, 50, 61, 61, 48, 41, 125, 10, 45, 105, 102, 32, 123, 33, 36, 49, 51, 125, 32, 110, 119, 61, 36, 119, 32, 110, 104, 61, 36, 104, 10, 45, 101, 108, 105, 102, 32, 123, 119, 62, 104, 125, 32, 110, 119, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 119, 41, 125, 32, 110, 104, 61, 123, 36, 110, 119, 47, 119, 42, 104, 125, 10, 45, 101, 108, 115, 101, 32, 110, 104, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 104, 41, 125, 32, 110, 119, 61, 123, 36, 110, 104, 47, 104, 42, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 91, 48, 93, 32, 45, 114, 91, 49, 93, 32, 36, 110, 119, 44, 36, 110, 104, 10, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 116, 111, 110, 101, 115, 91, 49, 93, 32, 36, 109, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 109, 108, 45, 49, 125, 32, 45, 43, 91, 123, 45, 36, 60, 45, 49, 125, 93, 32, 91, 123, 45, 36, 60, 45, 50, 125, 93, 32, 45, 100, 111, 110, 101, 10, 45, 98, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 36, 52, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 109, 108, 10, 112, 99, 61, 123, 40, 36, 62, 43, 49, 41, 47, 36, 109, 108, 125, 32, 109, 115, 107, 61, 123, 50, 43, 36, 62, 125, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 105, 102, 32, 36, 49, 50, 32, 97, 110, 103, 61, 123, 36, 62, 47, 36, 110, 119, 108, 125, 32, 45, 101, 108, 115, 101, 32, 97, 110, 103, 61, 36, 112, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 60, 62, 61, 36, 119, 108, 125, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 40, 49, 45, 36, 112, 99, 41, 42, 36, 53, 125, 44, 50, 10, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 123, 36, 54, 43, 36, 112, 99, 42, 40, 36, 55, 45, 36, 54, 41, 125, 37, 44, 48, 44, 123, 36, 97, 110, 103, 42, 51, 54, 48, 43, 63, 40, 45, 36, 57, 44, 36, 57, 41, 43, 36, 56, 125, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 36, 51, 44, 48, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 63, 42, 36, 49, 48, 43, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 36, 110, 119, 44, 36, 110, 104, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 109, 117, 108, 91, 36, 109, 115, 107, 44, 45, 49, 93, 32, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 36, 112, 99, 42, 49, 48, 48, 125, 10, 45, 100, 111, 110, 101, 10, 45, 97, 100, 100, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 49, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 44, 32, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 48, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 124, 124, 36, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 52, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 51, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 110, 99, 105, 108, 32, 112, 111, 114, 116, 114, 97, 105, 116, 32, 58, 32, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 44, 32, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 111, 107, 101, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 111, 107, 101, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 52, 52, 44, 55, 57, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 82, 97, 109, 111, 110, 32, 77, 105, 114, 97, 110, 100, 97, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 50, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 98, 32, 50, 37, 10, 45, 45, 98, 108, 101, 110, 100, 32, 100, 105, 118, 105, 100, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 105, 110, 107, 95, 119, 97, 115, 104, 91, 45, 50, 93, 32, 48, 44, 49, 54, 55, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 52, 44, 50, 46, 50, 53, 44, 48, 44, 50, 44, 54, 44, 53, 44, 50, 48, 10, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 56, 48, 44, 51, 50, 44, 49, 46, 56, 57, 44, 48, 46, 50, 49, 44, 51, 49, 46, 52, 54, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 50, 93, 32, 49, 44, 36, 50, 44, 49, 56, 48, 44, 36, 49, 44, 36, 51, 44, 48, 46, 48, 51, 44, 48, 44, 48, 46, 54, 44, 48, 46, 49, 44, 48, 46, 54, 44, 48, 46, 50, 53, 44, 49, 44, 48, 44, 49, 44, 48, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 100, 97, 114, 107, 101, 110, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 48, 46, 53, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 108, 105, 103, 104, 116, 101, 110, 44, 36, 52, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 44, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 102, 99, 32, 36, 123, 53, 45, 55, 125, 32, 45, 98, 108, 101, 110, 100, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 95, 112, 111, 114, 116, 114, 97, 105, 116, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 44, 32, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 111, 107, 101, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 51, 44, 48, 44, 48, 46, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 105, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 104, 101, 114, 101, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 111, 115, 116, 32, 115, 116, 114, 111, 107, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 100, 32, 115, 116, 114, 111, 107, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 101, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 66, 108, 97, 99, 107, 32, 111, 110, 32, 119, 104, 105, 116, 101, 34, 44, 34, 87, 104, 105, 116, 101, 32, 111, 110, 32, 98, 108, 97, 99, 107, 34, 44, 34, 66, 108, 97, 99, 107, 32, 111, 110, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 119, 104, 105, 116, 101, 34, 44, 34, 87, 104, 105, 116, 101, 32, 111, 110, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 98, 108, 97, 99, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 123, 49, 45, 49, 52, 125, 10, 45, 105, 102, 32, 123, 36, 49, 53, 38, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 50, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 45, 50, 32, 45, 43, 91, 45, 49, 93, 32, 123, 50, 42, 50, 53, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 53, 61, 61, 51, 125, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 97, 109, 112, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 44, 32, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 65, 110, 116, 97, 114, 111, 110, 44, 32, 77, 97, 104, 118, 105, 110, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 50, 48, 49, 50, 47, 49, 48, 47, 48, 56, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 110, 111, 114, 109, 32, 45, 110, 111, 105, 115, 101, 32, 36, 53, 10, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 103, 101, 32, 36, 50, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 51, 44, 48, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 49, 44, 48, 44, 48, 44, 49, 48, 49, 44, 51, 51, 44, 49, 55, 48, 44, 50, 50, 57, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 97, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 32, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 124, 124, 36, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 52, 32, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 51, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 69, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 101, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 101, 116, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 82, 101, 112, 108, 97, 99, 101, 32, 116, 111, 110, 101, 115, 32, 119, 105, 116, 104, 32, 110, 111, 105, 115, 101, 32, 103, 101, 110, 101, 114, 97, 116, 101, 100, 32, 108, 105, 110, 101, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 73, 110, 112, 117, 116, 32, 73, 109, 97, 103, 101, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 76, 111, 119, 32, 61, 32, 105, 110, 116, 40, 49, 50, 53, 44, 49, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 77, 105, 100, 32, 61, 32, 105, 110, 116, 40, 49, 53, 51, 44, 49, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 72, 105, 103, 104, 32, 61, 32, 105, 110, 116, 40, 49, 55, 49, 44, 49, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 77, 97, 120, 32, 61, 32, 105, 110, 116, 40, 49, 56, 53, 44, 49, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 79, 117, 116, 112, 117, 116, 32, 69, 116, 99, 104, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 114, 111, 115, 115, 45, 72, 97, 116, 99, 104, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 49, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 50, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 49, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 50, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 105, 112, 32, 67, 114, 111, 115, 115, 45, 72, 97, 116, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 46, 48, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 82, 101, 115, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 73, 109, 97, 103, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 58, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 50, 53, 125, 44, 36, 123, 50, 61, 49, 53, 51, 125, 44, 36, 123, 51, 61, 49, 55, 49, 125, 44, 36, 123, 52, 61, 49, 56, 53, 125, 44, 36, 123, 53, 61, 48, 46, 49, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 54, 61, 53, 48, 125, 44, 36, 123, 55, 61, 56, 48, 125, 44, 36, 123, 56, 61, 53, 48, 125, 44, 36, 123, 57, 61, 49, 48, 125, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 48, 61, 49, 53, 125, 44, 36, 123, 49, 49, 61, 49, 50, 125, 44, 36, 123, 49, 50, 61, 50, 48, 125, 44, 36, 123, 49, 51, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 52, 61, 49, 125, 44, 36, 123, 49, 53, 61, 48, 46, 51, 125, 44, 36, 123, 49, 54, 61, 49, 125, 44, 36, 123, 49, 55, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 99, 61, 56, 48, 48, 32, 109, 108, 61, 52, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 110, 119, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 119, 41, 125, 32, 110, 104, 61, 123, 36, 110, 119, 47, 119, 42, 104, 125, 32, 45, 101, 108, 115, 101, 32, 110, 104, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 104, 41, 125, 32, 110, 119, 61, 123, 36, 110, 104, 47, 104, 42, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 91, 48, 93, 32, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 49, 93, 32, 36, 110, 119, 44, 36, 110, 104, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 49, 93, 32, 36, 53, 37, 32, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 99, 91, 49, 93, 32, 48, 44, 123, 50, 53, 53, 45, 36, 52, 125, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 51, 125, 44, 49, 50, 56, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 50, 125, 44, 49, 57, 50, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 49, 125, 44, 50, 53, 53, 32, 45, 110, 91, 45, 51, 45, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 54, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 48, 44, 48, 44, 120, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 55, 44, 50, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 48, 32, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 45, 49, 44, 48, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 48, 44, 51, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 56, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 49, 44, 48, 44, 121, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 57, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 50, 44, 48, 44, 121, 44, 48, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 50, 44, 48, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 109, 108, 32, 45, 109, 117, 108, 91, 123, 50, 43, 36, 62, 125, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 100, 100, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 49, 93, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 53, 10, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 55, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 45, 101, 108, 115, 101, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 103, 99, 100, 95, 101, 116, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 67, 111, 108, 111, 114, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 46, 48, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 48, 47, 49, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 32, 36, 49, 32, 45, 115, 32, 99, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 50, 44, 49, 44, 48, 32, 45, 97, 114, 101, 97, 32, 48, 32, 45, 94, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 111, 111, 115, 116, 32, 47, 32, 70, 97, 100, 101, 32, 58, 32, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 44, 32, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 48, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 91, 48, 93, 32, 54, 52, 48, 44, 52, 56, 48, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 48, 93, 32, 48, 44, 49, 32, 45, 98, 91, 48, 93, 32, 123, 49, 48, 45, 36, 49, 125, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 104, 97, 110, 110, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 97, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 67, 117, 116, 34, 44, 34, 67, 117, 116, 32, 38, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 44, 34, 84, 104, 114, 101, 115, 104, 111, 108, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 119, 32, 118, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 32, 118, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 53, 54, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 49, 125, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 45, 49, 93, 32, 36, 51, 10, 45, 98, 91, 45, 49, 93, 32, 36, 52, 37, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 99, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 99, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 54, 37, 44, 36, 55, 37, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 33, 61, 50, 53, 54, 125, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 49, 93, 32, 36, 56, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 57, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 49, 44, 36, 49, 50, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 34, 44, 36, 49, 51, 44, 48, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 49, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 77, 89, 75, 32, 116, 111, 110, 101, 58, 32, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 44, 32, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 99, 121, 97, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 76, 111, 116, 32, 111, 102, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 99, 121, 97, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 99, 121, 97, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 99, 121, 97, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 77, 97, 103, 101, 110, 116, 97, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 77, 97, 103, 101, 110, 116, 97, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 77, 97, 103, 101, 110, 116, 97, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 77, 97, 103, 101, 110, 116, 97, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 89, 101, 108, 108, 111, 119, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 89, 101, 108, 108, 111, 119, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 89, 101, 108, 108, 111, 119, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 89, 101, 108, 108, 111, 119, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 75, 101, 121, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 99, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 75, 101, 121, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 75, 101, 121, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 75, 101, 121, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 108, 111, 116, 32, 111, 102, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 75, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 83, 116, 114, 101, 110, 103, 116, 104, 32, 111, 102, 32, 101, 102, 102, 101, 99, 116, 32, 102, 111, 114, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 108, 101, 118, 101, 108, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 110, 101, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 115, 116, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 80, 101, 114, 115, 101, 114, 118, 101, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 67, 108, 105, 112, 32, 67, 77, 89, 75, 34, 44, 34, 67, 108, 105, 112, 32, 82, 71, 66, 34, 44, 34, 83, 99, 97, 108, 101, 32, 67, 77, 89, 75, 34, 44, 34, 83, 99, 97, 108, 101, 32, 82, 71, 66, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 114, 103, 98, 50, 99, 109, 121, 107, 10, 45, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 49, 50, 56, 44, 36, 50, 57, 44, 50, 53, 53, 44, 36, 51, 48, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 51, 49, 44, 49, 50, 56, 44, 36, 51, 50, 44, 50, 53, 53, 44, 36, 51, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 51, 52, 44, 49, 50, 56, 44, 36, 51, 53, 44, 50, 53, 53, 44, 36, 51, 54, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 51, 55, 44, 49, 50, 56, 44, 36, 51, 56, 44, 50, 53, 53, 44, 36, 51, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 48, 44, 49, 50, 56, 44, 36, 52, 49, 44, 50, 53, 53, 44, 36, 52, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 52, 51, 44, 49, 50, 56, 44, 36, 52, 52, 44, 50, 53, 53, 44, 36, 52, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 52, 54, 44, 49, 50, 56, 44, 36, 52, 55, 44, 50, 53, 53, 44, 36, 52, 56, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 10, 45, 97, 100, 100, 91, 49, 44, 53, 93, 10, 45, 97, 100, 100, 91, 50, 44, 53, 93, 10, 45, 97, 100, 100, 91, 51, 44, 53, 93, 10, 45, 97, 100, 100, 91, 52, 44, 53, 93, 10, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 99, 10, 45, 45, 115, 117, 98, 91, 48, 44, 49, 93, 10, 45, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 51, 93, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 52, 57, 44, 54, 52, 44, 36, 53, 48, 44, 49, 50, 56, 44, 36, 53, 49, 44, 49, 57, 50, 44, 36, 53, 50, 44, 50, 53, 53, 44, 36, 53, 51, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 115, 117, 98, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 48, 125, 10, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 9, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 9, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 10, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 48, 44, 45, 49, 93, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 49, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 50, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 51, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 110, 32, 48, 44, 50, 53, 53, 10, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 52, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 9, 45, 110, 32, 48, 44, 50, 53, 53, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 109, 97, 112, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 44, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 109, 97, 112, 32, 61, 32, 99, 104, 111, 105, 99, 101, 91, 49, 44, 34, 65, 100, 97, 112, 116, 105, 118, 101, 34, 44, 34, 67, 117, 115, 116, 111, 109, 34, 44, 34, 83, 116, 97, 110, 100, 97, 114, 100, 32, 40, 50, 53, 54, 41, 34, 44, 34, 72, 83, 86, 32, 40, 50, 53, 54, 41, 34, 44, 34, 76, 105, 110, 101, 115, 32, 40, 50, 53, 54, 41, 34, 44, 34, 72, 111, 116, 32, 40, 50, 53, 54, 41, 34, 44, 34, 67, 111, 111, 108, 32, 40, 50, 53, 54, 41, 34, 44, 34, 74, 101, 116, 32, 40, 50, 53, 54, 41, 34, 44, 34, 70, 108, 97, 103, 32, 40, 50, 53, 54, 41, 34, 44, 34, 67, 117, 98, 101, 32, 40, 50, 53, 54, 41, 34, 93, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 116, 104, 101, 114, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 105, 62, 70, 111, 114, 32, 97, 100, 97, 112, 116, 105, 118, 101, 32, 97, 110, 100, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 108, 111, 114, 109, 97, 112, 115, 32, 111, 110, 108, 121, 32, 58, 60, 47, 105, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 105, 62, 70, 111, 114, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 108, 111, 114, 109, 97, 112, 115, 32, 111, 110, 108, 121, 32, 58, 60, 47, 105, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 116, 104, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 116, 104, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 116, 104, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 55, 116, 104, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 116, 104, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 50, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 50, 125, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 123, 36, 49, 45, 50, 125, 44, 36, 50, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 40, 36, 123, 53, 45, 50, 56, 125, 41, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 123, 51, 42, 36, 52, 45, 49, 125, 10, 45, 114, 91, 45, 49, 93, 32, 51, 44, 123, 119, 47, 51, 125, 44, 49, 44, 49, 44, 45, 49, 32, 45, 112, 101, 114, 109, 117, 116, 101, 91, 45, 49, 93, 32, 121, 122, 99, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 51, 44, 49, 44, 49, 44, 51, 44, 51, 10, 45, 105, 110, 100, 101, 120, 91, 48, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 48, 93, 32, 36, 51, 44, 36, 50, 44, 123, 105, 102, 40, 36, 51, 60, 61, 51, 50, 44, 49, 44, 48, 41, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 109, 97, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 32, 98, 97, 108, 97, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 44, 32, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 117, 116, 114, 97, 108, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 116, 99, 104, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 55, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 58, 10, 45, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 36, 123, 49, 45, 51, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 97, 108, 97, 110, 99, 101, 95, 103, 97, 109, 109, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 108, 111, 114, 32, 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, 101, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 99, 111, 108, 111, 114, 32, 98, 97, 108, 97, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 53, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 32, 97, 118, 98, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 50, 44, 97, 125, 125, 32, 97, 118, 103, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 51, 44, 97, 125, 125, 32, 97, 118, 114, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 52, 44, 97, 125, 125, 10, 45, 43, 91, 45, 52, 93, 32, 36, 97, 118, 114, 32, 45, 43, 91, 45, 51, 93, 32, 36, 97, 118, 103, 32, 45, 43, 91, 45, 50, 93, 32, 36, 97, 118, 98, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 32, 45, 114, 118, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 123, 105, 102, 40, 123, 36, 49, 62, 61, 48, 125, 44, 123, 36, 49, 47, 52, 125, 44, 123, 36, 49, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 49, 44, 36, 49, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 117, 114, 118, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 123, 49, 45, 49, 51, 125, 34, 44, 36, 49, 52, 44, 36, 49, 53, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 45, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 54, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 48, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 62, 61, 48, 125, 10, 120, 61, 123, 36, 49, 42, 49, 48, 48, 47, 50, 53, 53, 125, 37, 32, 121, 61, 123, 49, 48, 48, 45, 36, 50, 42, 49, 48, 48, 47, 50, 53, 53, 125, 37, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 50, 44, 50, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 116, 91, 45, 49, 93, 32, 36, 51, 44, 36, 120, 44, 123, 36, 121, 42, 104, 45, 50, 48, 125, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 67, 117, 114, 118, 101, 115, 32, 91, 76, 97, 98, 93, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 45, 99, 111, 108, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 97, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 66, 45, 99, 111, 108, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 47, 91, 45, 49, 93, 32, 50, 46, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 43, 91, 45, 49, 93, 32, 56, 54, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 51, 56, 53, 56, 55, 32, 45, 45, 91, 45, 49, 93, 32, 56, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 48, 56, 32, 45, 42, 91, 45, 49, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 50, 53, 54, 49, 54, 32, 45, 45, 91, 45, 49, 93, 32, 49, 48, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 97, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 76, 97, 98, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 76, 97, 98, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 97, 98, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 76, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 67, 117, 114, 118, 101, 115, 32, 91, 82, 71, 66, 93, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 101, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 71, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 82, 71, 66, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 82, 71, 66, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 50, 48, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 101, 101, 110, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 71, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 100, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 71, 66, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 82, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 67, 117, 114, 118, 101, 115, 32, 91, 89, 67, 98, 67, 114, 93, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 100, 32, 67, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 51, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 52, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 53, 41, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 89, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 44, 45, 49, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 48, 93, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 125, 32, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 48, 45, 49, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 49, 51, 45, 50, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 64, 123, 45, 50, 44, 50, 54, 45, 51, 56, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 50, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 48, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 98, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 49, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 36, 123, 49, 45, 45, 51, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 91, 94, 45, 49, 93, 32, 64, 45, 49, 44, 50, 44, 36, 123, 45, 50, 44, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 99, 111, 110, 102, 105, 103, 102, 105, 108, 101, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 46, 100, 108, 109, 10, 45, 105, 102, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 32, 45, 101, 108, 115, 101, 32, 40, 48, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 40, 36, 123, 49, 45, 45, 51, 125, 41, 32, 45, 114, 91, 45, 49, 93, 32, 49, 51, 44, 51, 44, 49, 44, 49, 44, 45, 49, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 46, 103, 109, 105, 99, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 46, 100, 108, 109, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 49, 51, 44, 48, 44, 36, 49, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 44, 36, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 52, 44, 36, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 54, 44, 36, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 56, 44, 36, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 48, 44, 36, 49, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 49, 50, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 50, 54, 44, 48, 44, 36, 49, 52, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 53, 44, 36, 49, 54, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 55, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 55, 44, 36, 49, 56, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 49, 57, 62, 61, 48, 125, 32, 45, 117, 32, 36, 49, 57, 44, 36, 50, 48, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 49, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 49, 44, 36, 50, 50, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 51, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 51, 44, 36, 50, 52, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 50, 53, 10, 45, 102, 117, 110, 99, 116, 105, 111, 110, 49, 100, 32, 36, 51, 57, 44, 48, 44, 36, 50, 55, 44, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 50, 56, 62, 61, 48, 125, 32, 45, 117, 32, 36, 50, 56, 44, 36, 50, 57, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 48, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 48, 44, 36, 51, 49, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 50, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 50, 44, 36, 51, 51, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 52, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 52, 44, 36, 51, 53, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 64, 123, 34, 45, 105, 102, 32, 123, 36, 51, 54, 62, 61, 48, 125, 32, 45, 117, 32, 36, 51, 54, 44, 36, 51, 55, 44, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 92, 34, 92, 34, 32, 45, 101, 110, 100, 105, 102, 34, 125, 92, 10, 50, 53, 53, 44, 36, 51, 56, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 121, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 91, 45, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 89, 67, 98, 67, 114, 99, 117, 114, 118, 101, 32, 48, 34, 44, 36, 45, 49, 10, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 97, 120, 101, 115, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 48, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 45, 50, 10, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 49, 44, 45, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 51, 93, 32, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 51, 93, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 32, 45, 103, 114, 97, 112, 104, 91, 45, 49, 93, 32, 91, 45, 51, 93, 44, 51, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 114, 109, 91, 45, 51, 93, 32, 45, 43, 91, 45, 49, 93, 32, 123, 36, 45, 50, 42, 50, 53, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 48, 46, 51, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 50, 53, 53, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 50, 48, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 49, 44, 50, 53, 53, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 114, 97, 112, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 46, 53, 44, 50, 48, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 44, 36, 51, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 52, 44, 36, 53, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 54, 44, 36, 55, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 56, 44, 36, 57, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 48, 44, 36, 49, 49, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 49, 50, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 49, 52, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 53, 44, 36, 49, 54, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 55, 44, 36, 49, 56, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 57, 44, 36, 50, 48, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 49, 44, 36, 50, 50, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 51, 44, 36, 50, 52, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 50, 53, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 44, 36, 50, 55, 44, 48, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 50, 56, 44, 36, 50, 57, 44, 49, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 48, 44, 36, 51, 49, 44, 50, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 50, 44, 36, 51, 51, 44, 51, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 52, 44, 36, 51, 53, 44, 52, 32, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 51, 54, 44, 36, 51, 55, 44, 53, 10, 45, 95, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 50, 53, 53, 44, 36, 51, 56, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 99, 111, 109, 112, 111, 115, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 44, 32, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 97, 115, 105, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 55, 44, 34, 82, 71, 66, 34, 44, 34, 72, 83, 86, 34, 44, 34, 72, 83, 76, 34, 44, 34, 72, 83, 73, 34, 44, 34, 89, 85, 86, 34, 44, 34, 89, 67, 98, 67, 114, 34, 44, 34, 88, 89, 90, 34, 44, 34, 76, 97, 98, 34, 44, 34, 76, 99, 104, 34, 44, 34, 67, 77, 89, 34, 44, 34, 67, 77, 89, 75, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 68, 101, 99, 111, 109, 112, 111, 115, 101, 34, 44, 34, 82, 101, 99, 111, 109, 112, 111, 115, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 108, 117, 100, 101, 32, 111, 112, 97, 99, 105, 116, 121, 32, 108, 97, 121, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 50, 125, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 108, 115, 101, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 10, 45, 115, 91, 48, 93, 32, 99, 32, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 110, 98, 61, 64, 35, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 36, 110, 98, 45, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 110, 98, 99, 61, 123, 51, 43, 40, 36, 49, 61, 61, 49, 48, 41, 125, 32, 110, 98, 61, 123, 36, 110, 98, 99, 43, 36, 52, 125, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 36, 110, 98, 41, 125, 32, 45, 108, 91, 48, 45, 123, 36, 110, 98, 45, 49, 125, 93, 10, 45, 97, 91, 48, 45, 123, 36, 110, 98, 99, 45, 49, 125, 93, 32, 99, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 120, 44, 36, 110, 98, 32, 45, 97, 91, 48, 45, 123, 36, 110, 98, 99, 45, 49, 125, 93, 32, 99, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 36, 49, 91, 48, 93, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 36, 123, 94, 48, 125, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 48, 32, 58, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 118, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 50, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 108, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 51, 32, 58, 32, 45, 114, 103, 98, 50, 104, 115, 105, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 52, 32, 58, 32, 45, 114, 103, 98, 50, 121, 117, 118, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 53, 32, 58, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 54, 32, 58, 32, 45, 114, 103, 98, 50, 120, 121, 122, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 55, 32, 58, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 56, 32, 58, 32, 45, 114, 103, 98, 50, 108, 99, 104, 56, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 57, 32, 58, 32, 45, 114, 103, 98, 50, 99, 109, 121, 10, 95, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 48, 32, 58, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 48, 32, 58, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 32, 58, 32, 45, 104, 115, 118, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 50, 32, 58, 32, 45, 104, 115, 108, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 51, 32, 58, 32, 45, 104, 115, 105, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 52, 32, 58, 32, 45, 121, 117, 118, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 53, 32, 58, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 54, 32, 58, 32, 45, 120, 121, 122, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 55, 32, 58, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 56, 32, 58, 32, 45, 108, 99, 104, 56, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 57, 32, 58, 32, 45, 99, 109, 121, 50, 114, 103, 98, 10, 95, 103, 105, 109, 112, 95, 114, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 49, 48, 32, 58, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 35, 64, 103, 105, 109, 112, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 72, 83, 86, 32, 58, 32, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 44, 32, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 98, 97, 110, 100, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 98, 97, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 110, 100, 32, 119, 105, 100, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 49, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 98, 97, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 110, 100, 32, 119, 105, 100, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 49, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 98, 97, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 110, 100, 32, 119, 105, 100, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 49, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 57, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 70, 101, 114, 114, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 49, 47, 49, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 103, 114, 111, 117, 112, 115, 47, 103, 109, 105, 99, 47, 100, 105, 115, 99, 117, 115, 115, 47, 55, 50, 49, 53, 55, 54, 50, 53, 55, 57, 56, 53, 51, 51, 52, 56, 50, 34, 41, 10, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 50, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 45, 51, 54, 48, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 43, 51, 54, 48, 41, 60, 36, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 55, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 45, 51, 54, 48, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 43, 51, 54, 48, 41, 60, 36, 56, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 49, 50, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 45, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 43, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 49, 44, 50, 93, 32, 48, 46, 48, 49, 32, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 91, 45, 49, 93, 120, 50, 32, 45, 42, 91, 45, 49, 44, 51, 93, 32, 45, 42, 91, 45, 49, 44, 52, 93, 32, 45, 42, 91, 45, 49, 44, 53, 93, 9, 35, 48, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 97, 110, 100, 32, 118, 97, 108, 117, 101, 32, 110, 111, 116, 32, 105, 110, 32, 109, 97, 115, 107, 10, 45, 45, 42, 91, 51, 93, 32, 36, 52, 32, 45, 45, 42, 91, 52, 93, 32, 36, 57, 32, 45, 45, 42, 91, 53, 93, 32, 36, 49, 52, 32, 45, 43, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 43, 91, 45, 49, 44, 48, 93, 32, 45, 37, 91, 48, 93, 32, 51, 54, 48, 10, 45, 105, 102, 32, 123, 36, 53, 62, 61, 48, 125, 32, 45, 45, 42, 91, 51, 93, 32, 45, 36, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 51, 93, 32, 123, 49, 47, 40, 49, 43, 36, 53, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 45, 42, 91, 52, 93, 32, 45, 36, 49, 48, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 52, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 48, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 53, 62, 61, 48, 125, 32, 45, 45, 42, 91, 53, 93, 32, 45, 36, 49, 53, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 53, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 53, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 94, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 54, 62, 61, 48, 125, 32, 45, 45, 42, 91, 51, 93, 32, 45, 36, 54, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 51, 93, 32, 123, 49, 47, 40, 49, 43, 36, 54, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 49, 62, 61, 48, 125, 32, 45, 45, 42, 91, 52, 93, 32, 45, 36, 49, 49, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 52, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 49, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 105, 102, 32, 123, 36, 49, 54, 62, 61, 48, 125, 32, 45, 45, 42, 91, 53, 93, 32, 45, 36, 49, 54, 32, 45, 101, 108, 115, 101, 32, 45, 45, 42, 91, 53, 93, 32, 123, 49, 47, 40, 49, 43, 36, 49, 54, 41, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 43, 91, 45, 49, 93, 32, 49, 10, 45, 42, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 94, 91, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 51, 44, 52, 44, 53, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 108, 111, 99, 97, 108, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 10, 45, 101, 108, 115, 101, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 112, 108, 105, 116, 32, 99, 10, 40, 48, 44, 51, 53, 57, 41, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 123, 64, 123, 48, 44, 104, 125, 47, 49, 48, 125, 44, 49, 44, 49, 44, 51, 32, 91, 45, 49, 93, 32, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 49, 9, 35, 99, 114, 101, 97, 116, 101, 32, 108, 111, 119, 101, 114, 32, 98, 97, 110, 100, 10, 45, 106, 91, 48, 93, 32, 91, 51, 93, 44, 48, 44, 57, 49, 37, 32, 45, 106, 91, 49, 93, 32, 91, 52, 93, 44, 48, 44, 57, 49, 37, 32, 45, 106, 91, 50, 93, 32, 91, 52, 93, 44, 48, 44, 57, 49, 37, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 50, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 45, 51, 54, 48, 41, 60, 36, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 50, 43, 51, 54, 48, 41, 60, 36, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 55, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 45, 51, 54, 48, 41, 60, 36, 56, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 55, 43, 51, 54, 48, 41, 60, 36, 56, 47, 50, 44, 49, 44, 48, 41, 10, 45, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 97, 98, 115, 40, 105, 45, 36, 49, 50, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 45, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 124, 97, 98, 115, 40, 105, 45, 36, 49, 50, 43, 51, 54, 48, 41, 60, 36, 49, 51, 47, 50, 44, 49, 44, 48, 41, 10, 45, 111, 114, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 51, 51, 32, 45, 47, 91, 45, 49, 93, 32, 49, 46, 51, 51, 9, 35, 49, 32, 97, 110, 100, 32, 48, 46, 50, 53, 10, 45, 42, 91, 50, 44, 45, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 35, 64, 103, 105, 109, 112, 32, 72, 117, 101, 32, 76, 105, 103, 104, 116, 101, 110, 47, 68, 97, 114, 107, 101, 110, 58, 32, 105, 97, 105, 110, 95, 104, 117, 101, 95, 108, 105, 103, 104, 116, 95, 100, 97, 114, 107, 44, 32, 105, 97, 105, 110, 95, 104, 117, 101, 95, 108, 105, 103, 104, 116, 95, 100, 97, 114, 107, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 54, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 55, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 56, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 108, 111, 98, 97, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 83, 76, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 32, 84, 111, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 32, 66, 111, 116, 116, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 84, 111, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 66, 111, 116, 116, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 38, 87, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 104, 117, 101, 95, 108, 105, 103, 104, 116, 95, 100, 97, 114, 107, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 108, 91, 48, 93, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 10, 45, 114, 103, 98, 50, 104, 115, 118, 56, 10, 45, 101, 108, 115, 101, 10, 45, 114, 103, 98, 50, 104, 115, 108, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 123, 49, 50, 56, 43, 36, 49, 125, 44, 49, 54, 44, 123, 49, 50, 56, 43, 36, 50, 125, 44, 51, 48, 44, 123, 49, 50, 56, 43, 36, 51, 125, 44, 52, 50, 44, 123, 49, 50, 56, 43, 36, 52, 125, 44, 54, 48, 44, 123, 49, 50, 56, 43, 36, 53, 125, 44, 55, 53, 44, 123, 49, 50, 56, 43, 36, 54, 125, 44, 56, 53, 44, 123, 49, 50, 56, 43, 36, 55, 125, 44, 49, 48, 53, 44, 123, 49, 50, 56, 43, 36, 56, 125, 44, 49, 50, 55, 44, 123, 49, 50, 56, 43, 36, 57, 125, 44, 49, 51, 53, 44, 123, 49, 50, 56, 43, 36, 49, 48, 125, 44, 49, 53, 48, 44, 123, 49, 50, 56, 43, 36, 49, 49, 125, 44, 49, 55, 48, 44, 123, 49, 50, 56, 43, 36, 49, 50, 125, 44, 49, 56, 48, 44, 123, 49, 50, 56, 43, 36, 49, 51, 125, 44, 49, 57, 53, 44, 123, 49, 50, 56, 43, 36, 49, 52, 125, 44, 50, 49, 51, 44, 123, 49, 50, 56, 43, 36, 49, 53, 125, 44, 50, 50, 53, 44, 123, 49, 50, 56, 43, 36, 49, 54, 125, 44, 50, 52, 48, 44, 123, 49, 50, 56, 43, 36, 49, 55, 125, 44, 50, 53, 53, 44, 123, 49, 50, 56, 43, 36, 49, 56, 125, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 36, 49, 57, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 45, 97, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 10, 45, 104, 115, 118, 56, 50, 114, 103, 98, 10, 45, 101, 108, 115, 101, 10, 45, 104, 115, 108, 56, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 107, 101, 101, 112, 91, 48, 44, 49, 44, 45, 49, 44, 45, 50, 93, 10, 45, 109, 117, 108, 91, 45, 49, 44, 45, 50, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 50, 93, 32, 48, 44, 48, 44, 48, 44, 36, 50, 50, 44, 48, 44, 36, 50, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 36, 50, 52, 44, 48, 44, 36, 50, 51, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 100, 105, 118, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 48, 44, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 53, 61, 61, 49, 125, 10, 45, 116, 111, 95, 103, 114, 97, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 102, 114, 97, 114, 101, 100, 32, 115, 105, 109, 117, 108, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 105, 110, 102, 114, 97, 114, 101, 100, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 105, 110, 102, 114, 97, 114, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 116, 101, 114, 32, 100, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 53, 44, 48, 46, 48, 49, 44, 48, 46, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 111, 111, 100, 32, 101, 102, 102, 101, 99, 116, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 111, 111, 100, 32, 101, 102, 102, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 61, 32, 105, 110, 116, 40, 45, 49, 48, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 111, 111, 100, 32, 101, 102, 102, 101, 99, 116, 32, 102, 97, 108, 108, 111, 102, 102, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 121, 32, 99, 111, 108, 111, 114, 32, 61, 32, 105, 110, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 121, 32, 102, 97, 108, 108, 111, 102, 102, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 102, 114, 97, 114, 101, 100, 32, 100, 101, 102, 111, 99, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 111, 115, 117, 114, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 47, 66, 38, 87, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 103, 114, 97, 105, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 49, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 105, 110, 102, 114, 97, 114, 101, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 105, 109, 112, 95, 104, 115, 118, 95, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 48, 44, 49, 50, 48, 44, 123, 50, 52, 48, 42, 36, 52, 125, 44, 123, 105, 102, 40, 123, 36, 50, 61, 61, 48, 125, 44, 48, 44, 36, 51, 41, 125, 44, 123, 105, 102, 40, 123, 36, 50, 61, 61, 48, 125, 44, 45, 36, 49, 44, 123, 45, 49, 43, 36, 50, 125, 41, 125, 44, 36, 49, 44, 50, 52, 48, 44, 123, 49, 50, 48, 42, 36, 54, 125, 44, 36, 53, 44, 48, 44, 45, 36, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 55, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 32, 36, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 36, 57, 44, 36, 56, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 36, 49, 48, 44, 48, 44, 48, 44, 36, 49, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 48, 46, 50, 57, 57, 44, 48, 44, 48, 46, 53, 56, 55, 44, 48, 44, 48, 46, 49, 49, 52, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 36, 49, 50, 44, 36, 49, 50, 44, 36, 49, 50, 44, 50, 44, 123, 123, 119, 43, 104, 125, 47, 54, 48, 48, 48, 48, 125, 44, 48, 44, 48, 44, 49, 54, 44, 52, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 105, 110, 102, 114, 97, 114, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 105, 110, 102, 114, 97, 114, 101, 100, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 101, 116, 97, 108, 108, 105, 99, 32, 108, 111, 111, 107, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 97, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 115, 105, 108, 118, 101, 114, 34, 44, 34, 103, 111, 108, 100, 34, 44, 34, 99, 111, 112, 112, 101, 114, 34, 44, 34, 98, 114, 111, 110, 122, 101, 34, 44, 34, 98, 108, 117, 101, 32, 115, 116, 101, 101, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 102, 105, 108, 116, 101, 114, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 48, 44, 49, 93, 32, 36, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 53, 48, 44, 48, 44, 49, 44, 53, 48, 44, 48, 44, 49, 44, 45, 53, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 53, 44, 48, 44, 49, 44, 53, 44, 48, 44, 49, 44, 45, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 48, 44, 48, 44, 49, 44, 52, 48, 44, 48, 44, 49, 44, 45, 50, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 45, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 46, 49, 44, 49, 50, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 120, 101, 114, 32, 91, 67, 77, 89, 75, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 44, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 97, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 103, 101, 110, 116, 97, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 101, 108, 108, 111, 119, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 121, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 121, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 121, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 51, 44, 36, 49, 52, 10, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 52, 93, 32, 36, 49, 32, 45, 43, 91, 45, 52, 93, 32, 36, 50, 32, 45, 98, 91, 45, 52, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 51, 93, 32, 36, 52, 32, 45, 43, 91, 45, 51, 93, 32, 36, 53, 32, 45, 98, 91, 45, 51, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 55, 32, 45, 43, 91, 45, 50, 93, 32, 36, 56, 32, 45, 98, 91, 45, 50, 93, 32, 36, 57, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 49, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 49, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 50, 37, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 51, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 99, 109, 121, 107, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 120, 101, 114, 32, 91, 72, 83, 86, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 44, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 48, 46, 53, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 37, 91, 45, 51, 93, 32, 51, 54, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 48, 46, 53, 32, 45, 99, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 49, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 120, 101, 114, 32, 91, 76, 97, 98, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 44, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 45, 99, 111, 108, 111, 114, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 45, 99, 111, 108, 111, 114, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 45, 99, 111, 108, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 45, 99, 111, 108, 111, 114, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 45, 99, 111, 108, 111, 114, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 45, 99, 111, 108, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 91, 48, 93, 32, 34, 45, 95, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 36, 42, 34, 44, 48, 44, 123, 51, 42, 109, 97, 120, 40, 36, 51, 44, 36, 54, 44, 36, 57, 41, 125, 10, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 36, 62, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 120, 101, 114, 32, 91, 82, 71, 66, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 44, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 51, 44, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 45, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 51, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 37, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 109, 118, 91, 45, 51, 93, 32, 64, 35, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 120, 101, 114, 32, 91, 89, 67, 98, 67, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 44, 32, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 97, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 97, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 97, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 97, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 97, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 97, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 32, 116, 111, 110, 101, 115, 34, 44, 34, 83, 104, 97, 100, 111, 119, 115, 34, 44, 34, 77, 105, 100, 45, 116, 111, 110, 101, 115, 34, 44, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 116, 97, 114, 116, 95, 109, 105, 120, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 49, 32, 45, 43, 91, 45, 51, 93, 32, 36, 50, 32, 45, 98, 91, 45, 51, 93, 32, 36, 51, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 52, 32, 45, 43, 91, 45, 50, 93, 32, 36, 53, 32, 45, 98, 91, 45, 50, 93, 32, 36, 54, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 57, 37, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 101, 110, 100, 95, 109, 105, 120, 32, 36, 49, 48, 10, 45, 105, 102, 32, 123, 64, 35, 33, 61, 51, 125, 32, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 112, 108, 97, 99, 101, 32, 99, 111, 108, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 44, 32, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 49, 44, 52, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 112, 108, 97, 99, 101, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 36, 49, 44, 36, 50, 37, 44, 36, 123, 51, 45, 45, 49, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 82, 71, 66, 32, 116, 111, 110, 101, 58, 32, 105, 97, 105, 110, 95, 114, 103, 98, 95, 116, 111, 110, 101, 44, 32, 105, 97, 105, 110, 95, 114, 103, 98, 95, 116, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 82, 101, 100, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 82, 101, 100, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 82, 101, 100, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 120, 120, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 71, 114, 101, 101, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 71, 114, 101, 101, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 71, 114, 101, 101, 110, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 66, 108, 117, 101, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 66, 108, 117, 101, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 65, 100, 106, 117, 115, 116, 32, 66, 108, 117, 101, 115, 60, 47, 98, 62, 32, 102, 111, 114, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 83, 116, 114, 101, 110, 103, 116, 104, 32, 111, 102, 32, 101, 102, 102, 101, 99, 116, 32, 102, 111, 114, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 108, 101, 118, 101, 108, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 110, 101, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 116, 116, 108, 101, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 109, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 99, 104, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 115, 116, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 80, 101, 114, 115, 101, 114, 118, 101, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 67, 108, 105, 112, 34, 44, 34, 83, 99, 97, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 114, 103, 98, 95, 116, 111, 110, 101, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 97, 100, 100, 91, 49, 44, 52, 93, 10, 45, 97, 100, 100, 91, 50, 44, 52, 93, 10, 45, 97, 100, 100, 91, 51, 44, 52, 93, 10, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 45, 115, 117, 98, 91, 48, 44, 49, 93, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 51, 93, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 54, 52, 44, 36, 50, 57, 44, 49, 50, 56, 44, 36, 51, 48, 44, 49, 57, 50, 44, 36, 51, 49, 44, 50, 53, 53, 44, 36, 51, 50, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 115, 117, 98, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 51, 61, 61, 48, 125, 10, 9, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 9, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 10, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 48, 44, 45, 49, 93, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 51, 61, 61, 49, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 51, 61, 61, 50, 125, 10, 9, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 9, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 35, 10, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 69, 81, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 95, 69, 81, 44, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 95, 69, 81, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 76, 105, 103, 104, 116, 110, 101, 115, 115, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 97, 114, 32, 98, 108, 97, 99, 107, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 32, 71, 114, 101, 121, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 100, 45, 68, 97, 114, 107, 32, 71, 114, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 100, 100, 108, 101, 32, 71, 114, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 100, 45, 108, 105, 103, 104, 116, 32, 71, 114, 101, 121, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 32, 71, 114, 101, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 104, 105, 116, 101, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 72, 117, 101, 60, 47, 98, 62, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 53, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 57, 48, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 51, 53, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 56, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 50, 53, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 55, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 49, 53, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 54, 48, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 111, 116, 97, 116, 101, 32, 72, 117, 101, 32, 66, 97, 110, 100, 115, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 52, 53, 44, 52, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 97, 108, 108, 111, 119, 115, 32, 121, 111, 117, 32, 116, 111, 32, 97, 100, 106, 117, 115, 116, 32, 116, 104, 101, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 111, 114, 32, 72, 117, 101, 32, 111, 102, 32, 116, 104, 101, 32, 112, 105, 120, 101, 108, 46, 32, 84, 104, 101, 32, 60, 105, 62, 82, 111, 116, 97, 116, 101, 32, 72, 117, 101, 32, 66, 97, 110, 100, 115, 60, 47, 105, 62, 32, 99, 111, 110, 116, 114, 111, 108, 32, 97, 108, 108, 111, 119, 115, 32, 121, 111, 117, 32, 115, 104, 105, 102, 116, 32, 116, 104, 101, 32, 104, 117, 101, 32, 116, 104, 97, 116, 32, 101, 97, 99, 104, 32, 98, 97, 110, 100, 32, 99, 111, 110, 116, 114, 111, 108, 115, 32, 98, 121, 32, 52, 53, 32, 100, 101, 103, 114, 101, 101, 115, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 95, 69, 81, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 108, 56, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 46, 53, 44, 48, 44, 123, 49, 50, 56, 43, 36, 49, 125, 44, 51, 49, 44, 123, 49, 50, 56, 43, 36, 50, 125, 44, 54, 51, 44, 123, 49, 50, 56, 43, 36, 51, 125, 44, 57, 53, 44, 123, 49, 50, 56, 43, 36, 52, 125, 44, 49, 50, 56, 44, 123, 49, 50, 56, 43, 36, 53, 125, 44, 49, 54, 48, 44, 123, 49, 50, 56, 43, 36, 54, 125, 44, 49, 57, 50, 44, 123, 49, 50, 56, 43, 36, 55, 125, 44, 50, 50, 52, 44, 123, 49, 50, 56, 43, 36, 56, 125, 44, 50, 53, 53, 44, 123, 49, 50, 56, 43, 36, 57, 125, 10, 45, 45, 43, 91, 48, 93, 32, 123, 40, 40, 40, 36, 49, 57, 47, 51, 54, 48, 41, 42, 50, 53, 53, 41, 41, 42, 45, 49, 125, 10, 45, 109, 111, 100, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 46, 53, 44, 48, 44, 123, 49, 50, 56, 43, 36, 49, 48, 125, 44, 51, 49, 44, 123, 49, 50, 56, 43, 36, 49, 49, 125, 44, 54, 51, 44, 123, 49, 50, 56, 43, 36, 49, 50, 125, 44, 57, 53, 44, 123, 49, 50, 56, 43, 36, 49, 51, 125, 44, 49, 50, 56, 44, 123, 49, 50, 56, 43, 36, 49, 52, 125, 44, 49, 54, 48, 44, 123, 49, 50, 56, 43, 36, 49, 53, 125, 44, 49, 57, 50, 44, 123, 49, 50, 56, 43, 36, 49, 54, 125, 44, 50, 50, 52, 44, 123, 49, 50, 56, 43, 36, 49, 55, 125, 44, 50, 53, 53, 44, 123, 49, 50, 56, 43, 36, 49, 56, 125, 10, 45, 115, 117, 98, 91, 45, 49, 44, 45, 50, 93, 32, 49, 50, 56, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 10, 45, 97, 100, 100, 91, 49, 44, 51, 93, 10, 45, 99, 91, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 104, 115, 108, 56, 50, 114, 103, 98, 10, 35, 64, 103, 105, 109, 112, 32, 83, 101, 108, 101, 99, 116, 32, 99, 111, 108, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 44, 32, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 109, 105, 108, 97, 114, 105, 116, 121, 32, 115, 112, 97, 99, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 82, 71, 66, 91, 65, 93, 34, 44, 34, 82, 71, 66, 34, 44, 34, 89, 67, 98, 67, 114, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 79, 112, 97, 99, 105, 116, 121, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 32, 38, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 83, 101, 108, 101, 99, 116, 101, 100, 32, 109, 97, 115, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 48, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 58, 10, 40, 36, 52, 94, 36, 53, 94, 36, 54, 94, 36, 55, 41, 32, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 32, 99, 111, 108, 111, 114, 61, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 10, 45, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 99, 111, 108, 111, 114, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 99, 111, 108, 111, 114, 10, 45, 98, 91, 45, 49, 93, 32, 36, 51, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 101, 112, 105, 97, 32, 58, 32, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 44, 32, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 32, 58, 10, 45, 115, 101, 112, 105, 97, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 50, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 51, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 112, 105, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 111, 110, 101, 32, 112, 114, 101, 115, 101, 116, 115, 32, 58, 32, 105, 97, 105, 110, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 44, 32, 105, 97, 105, 110, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 87, 104, 105, 116, 101, 114, 32, 87, 104, 105, 116, 101, 115, 34, 44, 34, 87, 97, 114, 109, 32, 86, 105, 110, 116, 97, 103, 101, 34, 44, 34, 77, 97, 103, 101, 110, 116, 97, 45, 89, 101, 108, 108, 111, 119, 34, 44, 34, 86, 101, 108, 118, 101, 116, 105, 97, 34, 44, 34, 83, 101, 118, 101, 110, 116, 105, 101, 115, 32, 77, 97, 103, 97, 122, 105, 110, 101, 34, 44, 34, 70, 97, 100, 101, 100, 32, 80, 114, 105, 110, 116, 34, 44, 34, 69, 120, 112, 105, 114, 101, 100, 32, 54, 57, 34, 44, 34, 77, 111, 100, 101, 114, 110, 32, 70, 105, 108, 109, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 48, 48, 44, 45, 50, 48, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 111, 117, 116, 112, 117, 116, 32, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 45, 105, 97, 105, 110, 95, 114, 103, 98, 95, 116, 111, 110, 101, 32, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 56, 44, 45, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 52, 57, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 53, 44, 45, 50, 53, 44, 49, 55, 44, 56, 44, 50, 54, 44, 51, 49, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 48, 44, 45, 57, 44, 45, 51, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 44, 45, 57, 44, 49, 56, 56, 44, 50, 53, 53, 44, 49, 56, 49, 44, 49, 51, 51, 44, 55, 50, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 45, 51, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 54, 52, 44, 56, 56, 44, 50, 53, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 54, 53, 44, 51, 51, 44, 45, 49, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 49, 50, 56, 44, 57, 50, 44, 54, 50, 44, 52, 53, 44, 51, 56, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 45, 50, 53, 44, 53, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 50, 53, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 54, 44, 49, 55, 56, 44, 50, 53, 53, 44, 49, 54, 57, 44, 57, 52, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 50, 53, 44, 45, 53, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 45, 50, 53, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 49, 50, 48, 44, 50, 52, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 54, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 50, 44, 52, 48, 44, 49, 54, 49, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 56, 44, 51, 51, 44, 51, 51, 44, 49, 54, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 55, 55, 44, 45, 56, 44, 45, 56, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 55, 44, 45, 50, 48, 44, 45, 51, 51, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 56, 44, 45, 54, 53, 44, 45, 55, 55, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 53, 44, 52, 53, 44, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 10, 45, 45, 105, 97, 105, 110, 95, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 51, 44, 48, 48, 44, 48, 48, 48, 44, 45, 49, 51, 44, 48, 48, 44, 48, 44, 49, 55, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 50, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 57, 44, 54, 56, 44, 49, 56, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 53, 44, 53, 53, 44, 45, 49, 53, 44, 49, 50, 56, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 117, 98, 91, 48, 44, 49, 93, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 123, 123, 36, 50, 47, 49, 48, 48, 125, 42, 45, 49, 125, 10, 45, 43, 91, 48, 44, 45, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 10, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 85, 115, 101, 114, 45, 100, 101, 102, 105, 110, 101, 100, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 44, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 45, 32, 71, 114, 101, 101, 110, 32, 45, 32, 66, 108, 117, 101, 32, 45, 32, 65, 108, 112, 104, 97, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 45, 32, 71, 114, 101, 101, 110, 32, 45, 32, 66, 108, 117, 101, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 32, 43, 32, 57, 48, 42, 40, 120, 47, 119, 41, 42, 99, 111, 115, 40, 105, 47, 49, 48, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 116, 101, 120, 116, 123, 34, 105, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 82, 71, 66, 34, 44, 34, 82, 71, 66, 65, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 102, 91, 45, 49, 93, 32, 34, 36, 49, 34, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 50, 34, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 52, 93, 32, 34, 36, 51, 34, 32, 45, 102, 91, 45, 51, 93, 32, 34, 36, 52, 34, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 53, 34, 32, 45, 102, 91, 45, 49, 93, 32, 34, 36, 54, 34, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 97, 91, 45, 52, 45, 45, 50, 93, 32, 99, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 110, 116, 97, 103, 101, 32, 115, 116, 121, 108, 101, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 110, 116, 97, 103, 101, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 110, 116, 97, 103, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 111, 115, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 53, 44, 48, 46, 53, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 49, 50, 56, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 115, 104, 97, 100, 111, 119, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 52, 55, 44, 50, 54, 44, 49, 54, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 115, 104, 97, 100, 111, 119, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 105, 100, 116, 111, 110, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 51, 53, 44, 50, 50, 48, 44, 49, 55, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 109, 105, 100, 116, 111, 110, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 57, 48, 44, 49, 56, 49, 44, 49, 48, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 111, 118, 101, 114, 97, 108, 108, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 101, 102, 102, 101, 99, 116, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 101, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 111, 118, 101, 114, 108, 97, 121, 34, 44, 34, 115, 111, 102, 116, 32, 32, 76, 105, 103, 104, 116, 34, 44, 34, 109, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 115, 99, 114, 101, 101, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 116, 114, 101, 110, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 54, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 102, 105, 108, 116, 101, 114, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 110, 116, 97, 103, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 48, 93, 32, 36, 50, 44, 123, 36, 49, 42, 49, 48, 125, 44, 48, 44, 36, 51, 44, 48, 44, 48, 44, 36, 51, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 123, 36, 52, 47, 50, 46, 53, 53, 125, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 50, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 123, 36, 52, 47, 50, 46, 53, 53, 125, 44, 123, 36, 53, 47, 50, 46, 53, 53, 125, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 51, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 52, 44, 48, 44, 123, 36, 53, 47, 50, 46, 53, 53, 125, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 36, 54, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 45, 102, 99, 91, 48, 93, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 45, 102, 99, 91, 48, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 32, 45, 45, 102, 99, 91, 48, 93, 32, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 114, 118, 91, 45, 49, 44, 45, 57, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 57, 93, 32, 45, 109, 118, 91, 45, 56, 93, 32, 57, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 114, 118, 91, 45, 50, 44, 45, 56, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 50, 44, 45, 56, 93, 32, 45, 109, 118, 91, 45, 55, 93, 32, 55, 32, 45, 97, 91, 45, 53, 44, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 10, 45, 115, 91, 45, 51, 93, 32, 99, 32, 45, 114, 118, 91, 45, 51, 44, 45, 55, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 51, 44, 45, 55, 93, 32, 45, 109, 118, 91, 45, 54, 93, 32, 53, 32, 45, 97, 91, 45, 54, 44, 45, 53, 44, 45, 52, 44, 45, 51, 93, 32, 99, 10, 45, 45, 102, 99, 91, 48, 93, 32, 36, 49, 57, 44, 36, 50, 48, 44, 36, 50, 49, 32, 45, 114, 118, 91, 45, 49, 44, 45, 53, 93, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 53, 93, 32, 36, 50, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 53, 93, 32, 36, 50, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 50, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 53, 93, 32, 36, 50, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 50, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 53, 93, 32, 36, 50, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 50, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 53, 93, 32, 36, 50, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 91, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 51, 44, 45, 52, 93, 32, 36, 49, 48, 10, 45, 114, 118, 91, 45, 50, 44, 45, 51, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 50, 44, 45, 51, 93, 32, 36, 49, 52, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 49, 56, 10, 45, 105, 102, 32, 123, 36, 50, 53, 33, 61, 48, 125, 10, 45, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 50, 44, 36, 50, 52, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 49, 48, 48, 44, 48, 46, 49, 44, 51, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 54, 42, 53, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 50, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 110, 116, 97, 103, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 110, 116, 97, 103, 101, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 90, 111, 110, 101, 32, 115, 121, 115, 116, 101, 109, 32, 58, 32, 103, 105, 109, 112, 95, 122, 111, 110, 101, 115, 121, 115, 116, 101, 109, 44, 32, 103, 105, 109, 112, 95, 122, 111, 110, 101, 115, 121, 115, 116, 101, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 122, 111, 110, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 122, 111, 110, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 54, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 112, 111, 105, 110, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 104, 105, 116, 101, 32, 112, 111, 105, 110, 116, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 50, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 122, 111, 110, 101, 115, 121, 115, 116, 101, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 115, 32, 99, 32, 45, 110, 91, 48, 93, 32, 123, 123, 36, 49, 45, 49, 125, 42, 49, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 125, 37, 10, 45, 97, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 36, 51, 44, 36, 52, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 48, 44, 36, 53, 44, 48, 44, 36, 54, 44, 50, 53, 53, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 55, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 122, 111, 110, 101, 115, 121, 115, 116, 101, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 122, 111, 110, 101, 115, 121, 115, 116, 101, 109, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 67, 111, 110, 116, 111, 117, 114, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 110, 118, 111, 108, 118, 101, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 44, 32, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 114, 110, 101, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 115, 116, 111, 109, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 32, 51, 120, 51, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 32, 53, 120, 53, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 32, 55, 120, 55, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 32, 57, 120, 57, 34, 44, 34, 80, 114, 101, 119, 105, 116, 116, 45, 88, 34, 44, 34, 80, 114, 101, 119, 105, 116, 116, 45, 89, 34, 44, 34, 83, 111, 98, 101, 108, 45, 88, 34, 44, 34, 83, 111, 98, 101, 108, 45, 89, 34, 44, 34, 82, 111, 116, 105, 110, 118, 45, 88, 34, 44, 34, 82, 111, 116, 105, 110, 118, 45, 89, 34, 44, 34, 76, 97, 112, 108, 97, 99, 105, 97, 110, 34, 44, 34, 82, 111, 98, 101, 114, 116, 32, 67, 114, 111, 115, 115, 32, 49, 34, 44, 34, 82, 111, 98, 101, 114, 116, 32, 67, 114, 111, 115, 115, 32, 50, 34, 44, 34, 73, 109, 112, 117, 108, 115, 101, 115, 32, 53, 120, 53, 34, 44, 34, 73, 109, 112, 117, 108, 115, 101, 115, 32, 55, 120, 55, 34, 44, 34, 73, 109, 112, 117, 108, 115, 101, 115, 32, 57, 120, 57, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 105, 114, 105, 99, 104, 108, 101, 116, 34, 44, 34, 78, 101, 117, 109, 97, 110, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 73, 102, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 60, 105, 62, 75, 101, 114, 110, 101, 108, 60, 47, 105, 62, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 60, 105, 62, 67, 117, 115, 116, 111, 109, 60, 47, 105, 62, 44, 32, 105, 116, 32, 117, 115, 101, 115, 32, 116, 104, 101, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 110, 118, 111, 108, 117, 116, 105, 111, 110, 32, 107, 101, 114, 110, 101, 108, 32, 100, 101, 102, 105, 110, 101, 100, 32, 98, 101, 108, 111, 119, 46, 32, 85, 115, 101, 32, 99, 111, 109, 109, 97, 115, 32, 97, 110, 100, 32, 115, 101, 109, 105, 99, 111, 108, 111, 110, 115, 32, 97, 115, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 102, 111, 114, 32, 114, 101, 115, 46, 32, 109, 97, 116, 114, 105, 120, 32, 99, 111, 108, 117, 109, 110, 115, 32, 97, 110, 100, 32, 114, 111, 119, 115, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 115, 116, 111, 109, 32, 107, 101, 114, 110, 101, 108, 32, 61, 32, 116, 101, 120, 116, 40, 34, 48, 44, 49, 44, 48, 59, 49, 44, 45, 52, 44, 49, 59, 48, 44, 49, 44, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 75, 101, 114, 110, 101, 108, 32, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 105, 115, 32, 117, 115, 101, 102, 117, 108, 32, 111, 110, 108, 121, 32, 119, 104, 101, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 60, 105, 62, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 60, 47, 105, 62, 32, 105, 115, 32, 115, 101, 116, 32, 116, 111, 32, 60, 105, 62, 67, 117, 116, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 114, 110, 101, 108, 32, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 36, 49, 44, 36, 50, 44, 92, 34, 36, 51, 92, 34, 44, 36, 123, 52, 45, 45, 51, 125, 34, 44, 36, 45, 50, 44, 48, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 36, 49, 91, 93, 32, 45, 101, 108, 115, 101, 32, 40, 36, 51, 41, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 45, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 50, 32, 58, 32, 53, 44, 53, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 51, 32, 58, 32, 55, 44, 55, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 52, 32, 58, 32, 57, 44, 57, 32, 45, 102, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 53, 32, 58, 32, 40, 49, 44, 48, 44, 45, 49, 59, 49, 44, 48, 44, 45, 49, 59, 49, 44, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 54, 32, 58, 32, 40, 49, 44, 49, 44, 49, 59, 48, 44, 48, 44, 48, 59, 45, 49, 44, 45, 49, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 55, 32, 58, 32, 40, 49, 44, 48, 44, 45, 49, 59, 50, 44, 48, 44, 45, 50, 59, 49, 44, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 56, 32, 58, 32, 40, 49, 44, 50, 44, 49, 59, 48, 44, 48, 44, 48, 59, 45, 49, 44, 45, 50, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 57, 32, 58, 32, 97, 61, 123, 48, 46, 50, 53, 42, 40, 50, 45, 115, 113, 114, 116, 40, 50, 41, 41, 125, 32, 98, 61, 123, 48, 46, 53, 42, 40, 115, 113, 114, 116, 40, 50, 41, 45, 49, 41, 125, 32, 40, 36, 97, 44, 48, 44, 45, 36, 97, 59, 36, 98, 44, 48, 44, 45, 36, 98, 59, 36, 97, 44, 48, 44, 45, 36, 97, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 48, 32, 58, 32, 97, 61, 123, 48, 46, 50, 53, 42, 40, 50, 45, 115, 113, 114, 116, 40, 50, 41, 41, 125, 32, 98, 61, 123, 48, 46, 53, 42, 40, 115, 113, 114, 116, 40, 50, 41, 45, 49, 41, 125, 32, 40, 36, 97, 44, 36, 98, 44, 36, 97, 59, 48, 44, 48, 44, 48, 59, 45, 36, 97, 44, 45, 36, 98, 44, 45, 36, 97, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 49, 32, 58, 32, 40, 48, 44, 49, 44, 48, 59, 49, 44, 45, 52, 44, 49, 59, 48, 44, 49, 44, 48, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 50, 32, 58, 32, 40, 49, 44, 48, 59, 48, 44, 45, 49, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 51, 32, 58, 32, 40, 48, 44, 49, 59, 45, 49, 44, 48, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 52, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 55, 44, 55, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 53, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 57, 44, 57, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 95, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 49, 54, 32, 58, 32, 51, 44, 51, 32, 45, 102, 32, 49, 32, 45, 114, 32, 49, 49, 44, 49, 49, 44, 49, 44, 49, 44, 52, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 115, 117, 109, 10, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 111, 110, 118, 111, 108, 118, 101, 32, 36, 49, 44, 36, 50, 44, 92, 34, 36, 51, 92, 34, 44, 36, 123, 52, 45, 45, 49, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 117, 114, 118, 97, 116, 117, 114, 101, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 44, 32, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 111, 108, 117, 116, 101, 32, 118, 97, 108, 117, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 98, 32, 36, 49, 32, 45, 105, 101, 101, 10, 45, 105, 102, 32, 36, 52, 32, 45, 97, 98, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 103, 97, 117, 115, 115, 105, 97, 110, 115, 32, 58, 32, 103, 105, 109, 112, 95, 100, 111, 103, 44, 32, 103, 105, 109, 112, 95, 100, 111, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 52, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 52, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 111, 103, 32, 58, 10, 45, 100, 111, 103, 32, 36, 49, 37, 44, 36, 50, 37, 10, 45, 99, 32, 36, 51, 37, 44, 123, 49, 48, 48, 45, 36, 51, 125, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 100, 111, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 103, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 105, 115, 116, 97, 110, 99, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 44, 32, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 114, 105, 99, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 67, 104, 101, 98, 121, 115, 104, 101, 118, 34, 44, 34, 77, 97, 110, 104, 97, 116, 116, 97, 110, 34, 44, 34, 69, 117, 99, 108, 105, 100, 101, 97, 110, 34, 44, 34, 83, 113, 117, 97, 114, 101, 100, 45, 69, 117, 99, 108, 105, 100, 101, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 44, 34, 77, 111, 100, 117, 108, 111, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 117, 108, 111, 32, 118, 97, 108, 117, 101, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 37, 32, 36, 52, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 69, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 98, 32, 36, 49, 37, 32, 45, 101, 100, 103, 101, 115, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 51, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 69, 100, 103, 101, 115, 32, 111, 102, 102, 115, 101, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 44, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 111, 115, 61, 123, 115, 125, 10, 45, 98, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 50, 37, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 32, 45, 37, 91, 45, 49, 93, 32, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 44, 36, 51, 45, 36, 52, 41, 125, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 36, 111, 115, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 44, 32, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 94, 32, 36, 50, 10, 45, 99, 32, 36, 51, 37, 44, 36, 52, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 82, 71, 66, 32, 58, 32, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 44, 32, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 36, 52, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 50, 114, 103, 98, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 44, 32, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 108, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 44, 34, 67, 111, 108, 111, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 10, 45, 116, 111, 112, 111, 103, 114, 97, 112, 104, 105, 99, 95, 109, 97, 112, 32, 36, 49, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 98, 32, 36, 50, 32, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 36, 49, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 97, 112, 108, 97, 99, 105, 97, 110, 32, 58, 32, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 44, 32, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 111, 108, 117, 116, 101, 32, 118, 97, 108, 117, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 58, 10, 45, 98, 32, 36, 49, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 10, 45, 105, 102, 32, 36, 52, 32, 45, 97, 98, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 44, 32, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 98, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 32, 45, 99, 111, 109, 112, 108, 101, 120, 50, 112, 111, 108, 97, 114, 32, 45, 114, 109, 91, 48, 45, 45, 49, 58, 50, 93, 10, 45, 99, 32, 36, 50, 37, 44, 36, 51, 37, 10, 45, 105, 102, 32, 36, 52, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 49, 10, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 102, 105, 108, 116, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 44, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 97, 108, 34, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 95, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 123, 94, 48, 125, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 95, 95, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 115, 117, 102, 61, 34, 95, 111, 99, 116, 34, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 115, 117, 102, 61, 34, 34, 32, 45, 101, 108, 115, 101, 32, 115, 117, 102, 61, 34, 95, 99, 105, 114, 99, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 91, 45, 49, 93, 32, 36, 50, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 45, 100, 105, 108, 97, 116, 101, 36, 115, 117, 102, 32, 36, 50, 32, 45, 101, 114, 111, 100, 101, 36, 115, 117, 102, 91, 45, 49, 93, 32, 36, 50, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 44, 32, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 50, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 49, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 44, 32, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 68, 105, 115, 116, 97, 110, 99, 101, 34, 44, 34, 84, 104, 105, 110, 110, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 110, 111, 114, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 50, 37, 10, 45, 105, 102, 32, 36, 49, 32, 45, 116, 104, 105, 110, 110, 105, 110, 103, 32, 45, 101, 108, 115, 101, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 32, 36, 51, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 32, 50, 53, 53, 10, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 104, 105, 110, 32, 101, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 98, 32, 36, 49, 37, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 103, 101, 32, 36, 50, 37, 32, 45, 116, 104, 105, 110, 110, 105, 110, 103, 10, 45, 105, 102, 32, 123, 33, 36, 51, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 104, 105, 110, 95, 101, 100, 103, 101, 115, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 114, 116, 101, 115, 105, 97, 110, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 44, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 119, 97, 114, 112, 105, 110, 103, 32, 61, 32, 116, 101, 120, 116, 123, 34, 40, 119, 43, 104, 41, 47, 50, 48, 32, 42, 32, 99, 111, 115, 40, 121, 42, 50, 48, 47, 104, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 119, 97, 114, 112, 105, 110, 103, 32, 61, 32, 116, 101, 120, 116, 123, 34, 40, 119, 43, 104, 41, 47, 50, 48, 32, 42, 32, 115, 105, 110, 40, 120, 42, 50, 48, 47, 119, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 108, 97, 116, 105, 118, 101, 32, 119, 97, 114, 112, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 102, 91, 45, 50, 93, 32, 34, 36, 49, 34, 32, 45, 102, 91, 45, 49, 93, 32, 34, 36, 50, 34, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 67, 105, 114, 99, 108, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 44, 32, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 50, 44, 45, 49, 54, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 50, 44, 45, 49, 54, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 121, 109, 109, 101, 116, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 73, 110, 115, 105, 100, 101, 34, 44, 34, 79, 117, 116, 115, 105, 100, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 99, 105, 114, 99, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 114, 61, 123, 36, 53, 42, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 125, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 99, 111, 110, 100, 61, 34, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 34, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 99, 111, 110, 100, 61, 34, 105, 102, 40, 78, 60, 34, 36, 114, 34, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 44, 105, 41, 34, 10, 45, 101, 108, 115, 101, 32, 99, 111, 110, 100, 61, 34, 105, 102, 40, 78, 62, 34, 36, 114, 34, 44, 105, 40, 88, 44, 89, 44, 122, 44, 99, 44, 36, 55, 44, 36, 56, 41, 44, 105, 41, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 102, 32, 39, 85, 61, 120, 45, 119, 42, 36, 49, 59, 86, 61, 121, 45, 104, 42, 36, 50, 59, 78, 61, 115, 113, 114, 116, 40, 85, 42, 85, 43, 86, 42, 86, 41, 59, 78, 114, 61, 78, 45, 36, 114, 59, 88, 61, 120, 43, 36, 51, 42, 78, 114, 42, 85, 47, 78, 59, 89, 61, 121, 43, 36, 52, 42, 78, 114, 42, 86, 47, 78, 59, 36, 99, 111, 110, 100, 39, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 101, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 36, 42, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 36, 49, 42, 119, 125, 10, 121, 48, 61, 123, 36, 50, 42, 104, 125, 10, 114, 61, 123, 36, 53, 42, 115, 113, 114, 116, 40, 119, 94, 50, 43, 104, 94, 50, 41, 125, 10, 45, 105, 102, 32, 36, 57, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 114, 45, 49, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 123, 36, 114, 43, 49, 125, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 114, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 69, 117, 99, 108, 105, 100, 101, 97, 110, 32, 45, 32, 80, 111, 108, 97, 114, 32, 58, 32, 103, 105, 109, 112, 95, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 44, 32, 103, 105, 109, 112, 95, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 108, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 58, 10, 45, 105, 102, 32, 36, 53, 32, 45, 112, 111, 108, 97, 114, 50, 101, 117, 99, 108, 105, 100, 101, 97, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 101, 108, 115, 101, 32, 45, 101, 117, 99, 108, 105, 100, 101, 97, 110, 50, 112, 111, 108, 97, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 70, 105, 115, 104, 45, 101, 121, 101, 32, 58, 32, 102, 105, 115, 104, 101, 121, 101, 44, 32, 102, 105, 115, 104, 101, 121, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 70, 108, 111, 119, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 102, 108, 111, 119, 101, 114, 44, 32, 103, 105, 109, 112, 95, 102, 108, 111, 119, 101, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 116, 97, 108, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 108, 111, 119, 101, 114, 32, 58, 10, 45, 102, 108, 111, 119, 101, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 10, 35, 64, 103, 105, 109, 112, 32, 75, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 91, 98, 108, 101, 110, 100, 101, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 44, 32, 103, 105, 109, 112, 95, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 117, 108, 97, 114, 32, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 55, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 114, 111, 116, 111, 105, 100, 111, 115, 99, 111, 112, 101, 32, 123, 36, 49, 42, 49, 48, 48, 125, 37, 44, 123, 36, 50, 42, 49, 48, 48, 125, 37, 44, 36, 51, 44, 36, 52, 37, 44, 36, 53, 10, 35, 64, 103, 105, 109, 112, 32, 75, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 91, 112, 111, 108, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 44, 32, 103, 105, 109, 112, 95, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 99, 117, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 99, 117, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 36, 51, 37, 44, 36, 52, 37, 44, 48, 44, 48, 44, 50, 32, 45, 107, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 36, 49, 44, 36, 50, 44, 36, 53, 44, 36, 54, 44, 36, 55, 10, 35, 64, 103, 105, 109, 112, 32, 75, 97, 108, 101, 105, 100, 111, 115, 99, 111, 112, 101, 32, 91, 115, 121, 109, 109, 101, 116, 114, 121, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 111, 115, 99, 111, 112, 101, 44, 32, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 111, 115, 99, 111, 112, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 121, 109, 109, 101, 116, 114, 121, 32, 115, 105, 100, 101, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 66, 97, 99, 107, 119, 97, 114, 100, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 34, 44, 34, 83, 119, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 111, 115, 99, 111, 112, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 97, 110, 103, 61, 123, 36, 50, 43, 49, 56, 48, 42, 36, 62, 47, 109, 97, 120, 40, 49, 44, 36, 49, 45, 49, 41, 125, 10, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 97, 110, 103, 44, 36, 51, 44, 48, 44, 123, 105, 102, 40, 36, 52, 33, 61, 50, 44, 36, 52, 44, 36, 62, 37, 50, 41, 125, 10, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 32, 103, 105, 109, 112, 95, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 44, 32, 103, 105, 109, 112, 95, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 55, 51, 44, 45, 52, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 52, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 58, 10, 45, 115, 104, 105, 102, 116, 32, 36, 54, 37, 44, 36, 55, 37, 44, 48, 44, 48, 44, 50, 32, 45, 119, 97, 114, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 56, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 108, 97, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 44, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 115, 116, 111, 109, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 34, 44, 34, 73, 110, 118, 101, 114, 115, 101, 32, 114, 97, 100, 105, 117, 115, 34, 44, 34, 83, 119, 97, 112, 32, 114, 97, 100, 105, 117, 115, 47, 97, 110, 103, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 116, 101, 120, 116, 123, 34, 114, 32, 43, 32, 82, 47, 49, 48, 42, 99, 111, 115, 40, 97, 42, 53, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 116, 101, 120, 116, 123, 34, 97, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 82, 45, 114, 44, 97, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 108, 115, 101, 10, 45, 116, 114, 97, 110, 115, 102, 111, 114, 109, 95, 112, 111, 108, 97, 114, 32, 97, 42, 82, 47, 40, 50, 42, 112, 105, 41, 44, 114, 42, 50, 42, 112, 105, 47, 82, 44, 36, 50, 44, 36, 51, 44, 36, 54, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 105, 110, 100, 114, 111, 112, 115, 32, 58, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 44, 32, 114, 97, 105, 110, 100, 114, 111, 112, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 97, 118, 101, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 115, 116, 101, 112, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 110, 100, 111, 109, 32, 58, 32, 100, 101, 102, 111, 114, 109, 44, 32, 100, 101, 102, 111, 114, 109, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 102, 108, 101, 99, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 102, 108, 101, 99, 116, 44, 32, 103, 105, 109, 112, 95, 114, 101, 102, 108, 101, 99, 116, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 49, 48, 44, 49, 54, 48, 44, 49, 57, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 97, 118, 101, 115, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 97, 118, 101, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 51, 46, 51, 48, 44, 45, 49, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 119, 97, 116, 101, 114, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 10, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 102, 91, 45, 52, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 51, 41, 47, 50, 53, 53, 34, 10, 45, 102, 91, 45, 51, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 52, 41, 47, 50, 53, 53, 34, 10, 45, 102, 91, 45, 50, 93, 32, 34, 40, 105, 42, 40, 50, 53, 53, 45, 36, 54, 41, 32, 43, 32, 36, 54, 42, 36, 53, 41, 47, 50, 53, 53, 34, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 49, 93, 32, 39, 40, 104, 94, 36, 50, 45, 121, 94, 36, 50, 41, 47, 104, 94, 36, 50, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 49, 49, 42, 36, 49, 50, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 36, 49, 49, 42, 36, 49, 50, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 34, 36, 49, 48, 42, 40, 120, 47, 119, 45, 48, 46, 53, 41, 32, 43, 32, 36, 57, 42, 40, 121, 47, 104, 45, 48, 46, 53, 41, 32, 43, 32, 36, 49, 49, 34, 10, 45, 47, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 45, 51, 93, 32, 48, 46, 53, 32, 45, 42, 91, 45, 51, 93, 32, 64, 123, 45, 51, 44, 119, 125, 10, 45, 47, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 42, 91, 45, 49, 93, 32, 123, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 44, 48, 44, 48, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 82, 105, 112, 112, 108, 101, 32, 58, 32, 114, 105, 112, 112, 108, 101, 44, 32, 114, 105, 112, 112, 108, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 111, 99, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 34, 44, 34, 83, 105, 110, 101, 34, 44, 34, 83, 105, 110, 101, 43, 34, 44, 34, 82, 97, 110, 100, 111, 109, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 56, 47, 50, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 104, 101, 114, 101, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 44, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 53, 49, 50, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 53, 49, 50, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 108, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 114, 100, 101, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 114, 100, 101, 114, 32, 119, 105, 100, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 48, 32, 100, 101, 103, 46, 34, 44, 34, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 49, 56, 48, 32, 100, 101, 103, 46, 34, 44, 34, 50, 55, 48, 32, 100, 101, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 44, 34, 77, 101, 97, 110, 32, 99, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 105, 110, 103, 32, 115, 104, 97, 112, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 58, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 36, 56, 42, 57, 48, 125, 10, 45, 105, 102, 32, 36, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 123, 40, 49, 45, 36, 55, 47, 49, 48, 48, 41, 42, 119, 47, 50, 125, 44, 123, 40, 49, 43, 36, 55, 47, 49, 48, 48, 41, 42, 119, 47, 50, 125, 10, 49, 48, 48, 37, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 91, 45, 49, 93, 32, 123, 48, 46, 49, 42, 119, 125, 44, 123, 104, 125, 44, 48, 32, 49, 48, 48, 37, 32, 49, 48, 48, 37, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 51, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 54, 44, 53, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 49, 45, 36, 55, 47, 49, 48, 48, 41, 42, 64, 123, 45, 50, 44, 119, 125, 47, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 45, 53, 48, 37, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 105, 102, 116, 32, 36, 53, 37, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 114, 111, 119, 115, 91, 36, 62, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 44, 49, 44, 49, 44, 52, 44, 50, 32, 82, 71, 66, 65, 36, 62, 61, 64, 45, 49, 10, 45, 114, 91, 45, 49, 93, 32, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 52, 32, 45, 45, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 49, 48, 44, 36, 49, 49, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 36, 123, 82, 71, 66, 65, 36, 62, 125, 41, 32, 45, 121, 91, 45, 49, 93, 32, 99, 32, 45, 114, 91, 45, 49, 93, 32, 91, 36, 62, 93, 44, 91, 36, 62, 93, 44, 49, 44, 52, 32, 45, 43, 91, 36, 62, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 115, 112, 104, 101, 114, 101, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 51, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 83, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 44, 32, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 83, 121, 109, 109, 101, 116, 114, 121, 34, 44, 34, 65, 110, 116, 105, 115, 121, 109, 109, 101, 116, 114, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 115, 105, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 121, 109, 109, 101, 116, 114, 105, 122, 101, 32, 36, 42, 10, 116, 104, 101, 116, 97, 61, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 125, 32, 117, 61, 123, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 125, 32, 118, 61, 123, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 120, 48, 61, 123, 119, 42, 36, 49, 37, 125, 10, 121, 48, 61, 123, 104, 42, 36, 50, 37, 125, 10, 120, 49, 61, 123, 36, 120, 48, 45, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 117, 125, 32, 121, 49, 61, 123, 36, 121, 48, 45, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 118, 125, 10, 120, 50, 61, 123, 36, 120, 48, 43, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 117, 125, 32, 121, 50, 61, 123, 36, 121, 48, 43, 109, 97, 120, 40, 119, 44, 104, 41, 42, 36, 118, 125, 10, 45, 108, 105, 110, 101, 32, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 49, 44, 48, 120, 48, 70, 48, 70, 48, 70, 48, 70, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 49, 44, 48, 120, 70, 48, 70, 48, 70, 48, 70, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 120, 48, 44, 36, 121, 48, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 84, 119, 105, 114, 108, 32, 58, 32, 116, 119, 105, 114, 108, 44, 32, 116, 119, 105, 114, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 116, 101, 114, 32, 58, 32, 119, 97, 116, 101, 114, 44, 32, 119, 97, 116, 101, 114, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 118, 101, 32, 58, 32, 119, 97, 118, 101, 44, 32, 119, 97, 118, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 87, 105, 110, 100, 32, 58, 32, 103, 105, 109, 112, 95, 119, 105, 110, 100, 44, 32, 103, 105, 109, 112, 95, 119, 105, 110, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 97, 114, 107, 101, 114, 34, 44, 34, 66, 114, 105, 103, 104, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 55, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 119, 105, 110, 100, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 119, 105, 110, 100, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 45, 50, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 119, 105, 110, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 119, 105, 110, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 90, 111, 111, 109, 32, 58, 32, 103, 105, 109, 112, 95, 122, 111, 111, 109, 44, 32, 103, 105, 109, 112, 95, 122, 111, 111, 109, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 48, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 122, 111, 111, 109, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 60, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 110, 100, 105, 102, 10, 45, 122, 111, 111, 109, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 48, 44, 36, 52, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 68, 101, 103, 114, 97, 100, 97, 116, 105, 111, 110, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 114, 32, 91, 97, 110, 103, 117, 108, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 44, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 114, 32, 91, 103, 97, 117, 115, 115, 105, 97, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 44, 32, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 89, 45, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 58, 10, 45, 98, 32, 36, 49, 44, 36, 52, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 121, 32, 45, 98, 32, 36, 50, 44, 36, 52, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 62, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 120, 32, 45, 98, 32, 36, 51, 44, 36, 52, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 114, 32, 91, 103, 108, 111, 119, 93, 32, 58, 32, 103, 105, 109, 112, 95, 103, 108, 111, 119, 44, 32, 103, 105, 109, 112, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 108, 111, 119, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 114, 32, 91, 108, 105, 110, 101, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 44, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 97, 110, 103, 101, 110, 116, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 116, 104, 111, 103, 111, 110, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 114, 100, 101, 114, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 36, 49, 44, 123, 36, 50, 42, 36, 49, 47, 49, 48, 48, 125, 44, 36, 51, 44, 36, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 117, 114, 32, 91, 114, 97, 100, 105, 97, 108, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 44, 32, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 34, 44, 36, 53, 44, 36, 54, 10, 35, 64, 103, 105, 109, 112, 32, 67, 82, 84, 32, 83, 117, 98, 45, 112, 105, 120, 101, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 99, 114, 116, 44, 32, 103, 105, 109, 112, 95, 103, 99, 100, 95, 99, 114, 116, 40, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 105, 62, 67, 97, 116, 104, 111, 100, 101, 32, 114, 97, 121, 32, 116, 117, 98, 101, 32, 115, 117, 98, 45, 112, 105, 120, 101, 108, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 102, 105, 108, 116, 101, 114, 60, 47, 105, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 114, 101, 101, 110, 32, 66, 111, 114, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 99, 100, 95, 99, 114, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 46, 56, 125, 44, 36, 123, 50, 61, 49, 46, 56, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 32, 49, 50, 44, 48, 32, 50, 52, 44, 49, 52, 44, 49, 44, 51, 44, 48, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 40, 120, 45, 99, 42, 52, 41, 37, 49, 50, 60, 52, 44, 50, 53, 53, 44, 48, 41, 34, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 120, 37, 52, 61, 61, 48, 44, 48, 44, 105, 41, 34, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 40, 121, 37, 49, 52, 61, 61, 48, 41, 38, 38, 40, 120, 37, 50, 52, 60, 49, 50, 41, 44, 48, 44, 105, 41, 34, 10, 45, 102, 91, 45, 49, 93, 32, 34, 105, 102, 40, 40, 40, 121, 45, 55, 41, 37, 49, 52, 61, 61, 48, 41, 38, 38, 40, 40, 120, 43, 49, 50, 41, 37, 50, 52, 60, 49, 50, 41, 44, 48, 44, 105, 41, 34, 10, 45, 97, 114, 114, 97, 121, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 119, 125, 47, 50, 52, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 49, 52, 41, 125, 44, 50, 10, 45, 122, 91, 45, 49, 93, 32, 48, 44, 48, 44, 123, 64, 123, 48, 44, 119, 125, 45, 49, 125, 44, 123, 64, 123, 48, 44, 104, 125, 45, 49, 125, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 51, 32, 45, 98, 108, 101, 110, 100, 91, 45, 52, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 91, 45, 49, 93, 32, 52, 10, 45, 105, 102, 32, 36, 51, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 53, 37, 44, 53, 37, 44, 57, 53, 37, 44, 57, 53, 37, 44, 49, 44, 49, 10, 45, 98, 91, 45, 49, 93, 32, 49, 48, 37, 32, 45, 42, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 44, 48, 44, 120, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 50, 44, 48, 44, 121, 10, 45, 115, 104, 114, 105, 110, 107, 95, 120, 121, 91, 45, 49, 93, 32, 49, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 52, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 79, 70, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 99, 97, 108, 32, 112, 111, 105, 110, 116, 32, 88, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 99, 97, 108, 32, 112, 111, 105, 110, 116, 32, 89, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 79, 70, 32, 49, 32, 61, 32, 105, 110, 116, 32, 40, 51, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 79, 70, 32, 50, 32, 32, 61, 32, 105, 110, 116, 32, 40, 54, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 99, 117, 115, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 99, 117, 115, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 109, 101, 100, 105, 97, 110, 34, 44, 34, 103, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 109, 105, 120, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 34, 44, 34, 100, 97, 121, 108, 105, 103, 104, 116, 32, 115, 99, 101, 110, 101, 34, 44, 34, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 102, 111, 99, 117, 115, 32, 102, 105, 101, 108, 100, 32, 109, 97, 115, 107, 34, 44, 34, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 107, 101, 104, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 107, 101, 104, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 50, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 107, 101, 104, 32, 98, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 101, 114, 116, 117, 114, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 99, 105, 114, 99, 117, 108, 97, 114, 34, 44, 34, 111, 99, 116, 111, 103, 111, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 111, 118, 101, 32, 98, 108, 117, 114, 114, 105, 110, 103, 32, 97, 114, 116, 105, 102, 97, 99, 116, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 104, 101, 105, 109, 112, 102, 108, 117, 103, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 110, 111, 110, 101, 34, 44, 34, 118, 101, 114, 116, 105, 99, 97, 108, 32, 98, 108, 101, 110, 100, 34, 44, 34, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 98, 108, 101, 110, 100, 34, 44, 34, 118, 101, 114, 116, 105, 99, 97, 108, 32, 111, 110, 108, 121, 34, 44, 34, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 111, 110, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 116, 32, 112, 108, 97, 110, 101, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 116, 32, 112, 108, 97, 110, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 49, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 105, 109, 97, 103, 101, 34, 44, 34, 108, 97, 121, 101, 114, 115, 32, 105, 110, 32, 102, 111, 99, 117, 115, 47, 111, 117, 116, 32, 111, 102, 32, 102, 111, 99, 117, 115, 34, 44, 34, 102, 111, 99, 117, 115, 32, 102, 105, 101, 108, 100, 32, 109, 97, 115, 107, 32, 111, 110, 108, 121, 34, 44, 34, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 32, 111, 110, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 104, 105, 103, 104, 32, 113, 117, 97, 108, 105, 116, 121, 34, 44, 34, 110, 111, 114, 109, 97, 108, 34, 44, 34, 104, 105, 103, 104, 32, 115, 112, 101, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 115, 101, 32, 116, 114, 101, 115, 104, 111, 108, 100, 32, 109, 97, 115, 107, 32, 109, 111, 100, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 50, 49, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 68, 79, 70, 37, 50, 48, 109, 97, 110, 105, 112, 117, 108, 97, 116, 105, 111, 110, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 32, 58, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 48, 125, 124, 124, 123, 36, 56, 61, 61, 49, 125, 125, 32, 45, 105, 102, 32, 123, 123, 64, 35, 125, 33, 61, 49, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 83, 101, 108, 101, 99, 116, 32, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 67, 84, 73, 86, 69, 46, 32, 84, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 115, 105, 110, 103, 108, 101, 32, 108, 97, 121, 101, 114, 32, 111, 110, 108, 121, 46, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 50, 125, 124, 124, 123, 36, 56, 61, 61, 51, 125, 125, 32, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 51, 125, 124, 124, 123, 36, 49, 53, 61, 61, 52, 125, 124, 124, 123, 36, 49, 55, 61, 61, 51, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 79, 112, 116, 105, 111, 110, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 109, 97, 115, 107, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 50, 125, 124, 124, 123, 36, 56, 61, 61, 51, 125, 125, 32, 45, 105, 102, 32, 123, 123, 64, 35, 125, 33, 61, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 70, 111, 114, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 109, 97, 115, 107, 32, 115, 101, 108, 101, 99, 116, 32, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 67, 84, 73, 86, 69, 32, 65, 78, 68, 32, 66, 69, 76, 79, 87, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 116, 114, 61, 123, 36, 53, 125, 32, 100, 102, 115, 61, 123, 36, 54, 125, 32, 98, 115, 105, 61, 123, 36, 49, 49, 125, 32, 98, 115, 98, 61, 123, 36, 49, 50, 125, 10, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 49, 125, 32, 115, 99, 100, 111, 61, 53, 48, 32, 115, 99, 117, 112, 61, 50, 48, 48, 32, 116, 114, 61, 123, 36, 53, 47, 50, 125, 32, 100, 102, 115, 61, 123, 36, 54, 47, 50, 125, 32, 98, 115, 105, 61, 123, 36, 49, 49, 47, 50, 125, 32, 98, 115, 98, 61, 123, 36, 49, 50, 47, 50, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 50, 125, 32, 115, 99, 100, 111, 61, 50, 53, 32, 115, 99, 117, 112, 61, 52, 48, 48, 32, 116, 114, 61, 123, 36, 53, 47, 52, 125, 32, 100, 102, 115, 61, 123, 36, 54, 47, 52, 125, 32, 98, 115, 105, 61, 123, 36, 49, 49, 47, 52, 125, 32, 98, 115, 98, 61, 123, 36, 49, 50, 47, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 48, 125, 124, 124, 123, 36, 56, 61, 61, 49, 125, 125, 32, 45, 105, 102, 32, 123, 36, 49, 57, 33, 61, 48, 125, 32, 45, 45, 114, 91, 48, 93, 32, 36, 115, 99, 100, 111, 37, 44, 36, 115, 99, 100, 111, 37, 32, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 123, 36, 49, 57, 33, 61, 48, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 99, 100, 111, 37, 44, 36, 115, 99, 100, 111, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 57, 33, 61, 48, 125, 32, 45, 45, 114, 91, 48, 93, 32, 36, 115, 99, 100, 111, 37, 44, 36, 115, 99, 100, 111, 37, 32, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 50, 125, 124, 124, 123, 36, 56, 61, 61, 51, 125, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 48, 125, 124, 124, 123, 36, 49, 53, 61, 61, 49, 125, 124, 124, 123, 36, 49, 53, 61, 61, 50, 125, 125, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 97, 117, 116, 111, 100, 101, 112, 116, 104, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 91, 45, 49, 93, 32, 49, 44, 50, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 56, 61, 61, 50, 125, 124, 124, 123, 36, 56, 61, 61, 51, 125, 125, 32, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 56, 33, 61, 51, 125, 32, 45, 105, 102, 32, 123, 36, 56, 33, 61, 50, 125, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 45, 102, 91, 45, 49, 93, 32, 105, 102, 40, 105, 62, 61, 123, 123, 50, 53, 53, 45, 36, 51, 125, 43, 123, 36, 52, 47, 50, 125, 125, 44, 48, 44, 105, 41, 10, 45, 45, 102, 91, 45, 49, 93, 32, 105, 102, 40, 105, 60, 61, 123, 123, 50, 53, 53, 45, 36, 51, 125, 45, 123, 36, 52, 47, 50, 125, 125, 44, 48, 44, 105, 41, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 102, 91, 45, 49, 93, 32, 105, 102, 40, 105, 62, 61, 49, 44, 50, 53, 53, 44, 105, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 108, 115, 101, 10, 45, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 52, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 36, 116, 114, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 49, 125, 124, 124, 123, 36, 49, 53, 61, 61, 51, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 49, 56, 48, 44, 49, 48, 48, 44, 36, 49, 54, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 48, 44, 36, 49, 55, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 50, 125, 124, 124, 123, 36, 49, 53, 61, 61, 52, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 57, 48, 44, 49, 48, 48, 44, 36, 49, 54, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 36, 49, 55, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 49, 125, 124, 124, 123, 36, 49, 53, 61, 61, 50, 125, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 53, 61, 61, 51, 125, 124, 124, 123, 36, 49, 53, 61, 61, 52, 125, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 56, 61, 61, 48, 125, 124, 124, 123, 36, 49, 56, 61, 61, 49, 125, 125, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 44, 45, 50, 93, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 123, 36, 116, 114, 47, 50, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 49, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 44, 49, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 50, 93, 32, 36, 100, 102, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 36, 100, 102, 115, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 50, 93, 32, 123, 36, 100, 102, 115, 47, 50, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 123, 36, 100, 102, 115, 47, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 48, 125, 32, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 101, 108, 115, 101, 32, 45, 45, 114, 91, 48, 93, 32, 36, 115, 99, 100, 111, 37, 44, 36, 115, 99, 100, 111, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 49, 44, 36, 98, 115, 105, 44, 48, 44, 123, 50, 45, 36, 49, 51, 125, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 123, 36, 49, 48, 42, 49, 46, 55, 54, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 36, 98, 115, 98, 10, 45, 114, 118, 91, 45, 49, 44, 45, 51, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 51, 93, 32, 36, 57, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 57, 33, 61, 48, 125, 32, 45, 114, 91, 49, 44, 50, 93, 32, 36, 115, 99, 117, 112, 37, 44, 36, 115, 99, 117, 112, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 114, 118, 91, 51, 44, 53, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 51, 44, 53, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 51, 93, 10, 45, 97, 91, 48, 44, 49, 44, 50, 44, 51, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 49, 56, 61, 61, 48, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 56, 33, 61, 49, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 56, 61, 61, 50, 125, 124, 124, 123, 36, 49, 56, 61, 61, 51, 125, 125, 32, 45, 105, 102, 32, 123, 36, 49, 57, 33, 61, 48, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 99, 117, 112, 37, 44, 36, 115, 99, 117, 112, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 123, 123, 36, 56, 61, 61, 48, 125, 124, 124, 123, 36, 56, 61, 61, 49, 125, 125, 32, 45, 105, 102, 32, 123, 123, 64, 35, 125, 33, 61, 49, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 83, 101, 108, 101, 99, 116, 32, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 67, 84, 73, 86, 69, 46, 32, 84, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 115, 105, 110, 103, 108, 101, 32, 108, 97, 121, 101, 114, 32, 111, 110, 108, 121, 46, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 56, 33, 61, 50, 125, 38, 38, 123, 36, 56, 33, 61, 51, 125, 125, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 111, 102, 32, 36, 123, 49, 45, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 10, 45, 108, 105, 110, 101, 32, 49, 48, 48, 37, 44, 36, 50, 37, 44, 123, 36, 49, 43, 53, 125, 37, 44, 36, 50, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 48, 37, 44, 36, 50, 37, 44, 123, 36, 49, 45, 53, 125, 37, 44, 36, 50, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 49, 48, 48, 37, 44, 36, 49, 37, 44, 123, 36, 50, 43, 53, 125, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 48, 37, 44, 36, 49, 37, 44, 123, 36, 50, 45, 53, 125, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 109, 111, 32, 58, 32, 103, 105, 109, 112, 95, 108, 111, 109, 111, 44, 32, 103, 105, 109, 112, 95, 108, 111, 109, 111, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 54, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 111, 109, 111, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 97, 117, 115, 115, 105, 97, 110, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 44, 123, 49, 48, 48, 45, 36, 49, 125, 37, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 10, 45, 115, 32, 99, 10, 45, 102, 91, 48, 93, 32, 39, 50, 53, 53, 42, 97, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 49, 50, 56, 41, 39, 10, 45, 102, 91, 49, 93, 32, 39, 50, 53, 53, 42, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 49, 50, 56, 41, 39, 10, 45, 102, 91, 50, 93, 32, 39, 50, 53, 53, 42, 97, 116, 97, 110, 40, 40, 105, 45, 49, 50, 56, 41, 47, 50, 53, 53, 41, 39, 10, 45, 97, 32, 99, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 49, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 111, 109, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 111, 109, 111, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 111, 105, 115, 101, 32, 91, 97, 100, 100, 105, 116, 105, 118, 101, 93, 32, 58, 32, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 44, 32, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 105, 115, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 36, 52, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 111, 105, 115, 101, 32, 91, 115, 112, 114, 101, 97, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 44, 32, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 112, 114, 101, 97, 100, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 79, 108, 100, 45, 109, 111, 118, 105, 101, 32, 115, 116, 114, 105, 112, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 44, 32, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 79, 108, 100, 115, 99, 104, 111, 111, 108, 32, 56, 98, 105, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 44, 32, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 116, 104, 101, 114, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 48, 44, 48, 44, 49, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 49, 54, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 48, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 114, 32, 36, 49, 37, 44, 36, 49, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 50, 32, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 32, 99, 32, 45, 113, 117, 97, 110, 116, 105, 122, 101, 32, 36, 51, 44, 49, 44, 49, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 48, 48, 37, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 56, 98, 105, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 110, 100, 111, 109, 32, 115, 104, 97, 100, 101, 32, 115, 116, 114, 105, 112, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 86, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 51, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 95, 115, 116, 114, 105, 112, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 115, 105, 98, 108, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 58, 32, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 44, 32, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 120, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 92, 50, 53, 49, 32, 71, 39, 77, 73, 67, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 46, 49, 44, 48, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 55, 44, 49, 51, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 97, 114, 107, 101, 114, 34, 44, 34, 66, 114, 105, 103, 104, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 58, 10, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 118, 105, 115, 105, 98, 108, 101, 32, 34, 36, 49, 34, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 54, 44, 36, 53, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 68, 101, 116, 97, 105, 108, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 68, 121, 110, 97, 109, 105, 99, 32, 82, 97, 110, 103, 101, 32, 73, 110, 99, 114, 101, 97, 115, 101, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 112, 32, 84, 111, 110, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 99, 111, 118, 101, 114, 32, 83, 104, 97, 100, 111, 119, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 99, 111, 118, 101, 114, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 104, 97, 110, 99, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 112, 32, 84, 111, 110, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 104, 97, 110, 99, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 102, 105, 108, 116, 101, 114, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 123, 123, 119, 43, 104, 125, 47, 50, 48, 125, 42, 123, 49, 46, 49, 45, 36, 49, 125, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 49, 93, 10, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 36, 49, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 119, 43, 104, 125, 47, 50, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 10, 45, 115, 91, 49, 93, 32, 99, 32, 45, 114, 118, 91, 52, 44, 53, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 53, 93, 32, 45, 97, 91, 49, 44, 50, 44, 51, 44, 52, 93, 32, 99, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 48, 44, 49, 93, 32, 36, 50, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 123, 119, 43, 104, 125, 47, 50, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 32, 45, 115, 91, 49, 93, 32, 99, 10, 45, 114, 118, 91, 52, 44, 53, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 53, 93, 32, 45, 97, 91, 49, 44, 50, 44, 51, 44, 52, 93, 32, 99, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 48, 44, 49, 93, 32, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 48, 93, 32, 48, 46, 53, 48, 44, 48, 46, 55, 48, 44, 36, 52, 44, 53, 48, 10, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 48, 93, 32, 36, 52, 44, 54, 46, 48, 48, 44, 53, 46, 48, 48, 44, 49, 46, 48, 48, 10, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 48, 44, 49, 93, 32, 36, 53, 44, 48, 10, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 48, 44, 49, 93, 32, 36, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 101, 97, 107, 121, 32, 100, 101, 116, 97, 105, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 44, 32, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 101, 102, 102, 101, 99, 116, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 100, 111, 110, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 84, 104, 105, 115, 32, 116, 117, 116, 111, 114, 105, 97, 108, 32, 102, 114, 111, 109, 32, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 98, 108, 111, 103, 46, 112, 97, 116, 100, 97, 118, 105, 100, 46, 110, 101, 116, 47, 50, 48, 49, 51, 47, 48, 50, 47, 99, 97, 108, 118, 105, 110, 45, 104, 111, 108, 108, 121, 119, 111, 111, 100, 45, 102, 114, 101, 97, 107, 121, 45, 100, 101, 116, 97, 105, 108, 115, 45, 105, 110, 45, 103, 105, 109, 112, 46, 104, 116, 109, 108, 34, 41, 10, 95, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 91, 45, 49, 93, 32, 45, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 50, 44, 123, 49, 46, 53, 42, 36, 50, 125, 32, 45, 100, 111, 110, 101, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 32, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 95, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 36, 123, 49, 45, 51, 125, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 102, 114, 101, 97, 107, 121, 95, 100, 101, 116, 97, 105, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 105, 103, 104, 32, 80, 97, 115, 115, 58, 32, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 44, 32, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 121, 115, 99, 97, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 49, 47, 48, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 36, 50, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 50, 62, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 123, 36, 50, 45, 51, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 49, 44, 48, 44, 48, 44, 49, 44, 53, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 32, 58, 32, 103, 105, 109, 112, 95, 76, 67, 69, 44, 32, 103, 105, 109, 112, 95, 76, 67, 69, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 32, 105, 115, 32, 60, 105, 62, 85, 110, 115, 104, 97, 114, 112, 32, 77, 97, 115, 107, 60, 47, 105, 62, 32, 119, 105, 116, 104, 32, 104, 105, 103, 104, 32, 114, 97, 100, 105, 117, 115, 46, 32, 65, 112, 112, 108, 121, 32, 116, 111, 32, 102, 105, 108, 116, 101, 114, 32, 116, 111, 32, 82, 71, 66, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 102, 111, 114, 32, 99, 111, 108, 111, 114, 32, 97, 110, 100, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 101, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 51, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 32, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 103, 105, 110, 97, 108, 32, 85, 83, 77, 32, 99, 111, 100, 101, 32, 98, 121, 32, 60, 105, 62, 98, 121, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 44, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 76, 67, 69, 32, 58, 10, 83, 112, 97, 116, 105, 97, 108, 82, 97, 100, 105, 117, 115, 61, 36, 49, 10, 65, 109, 111, 117, 110, 116, 61, 36, 50, 10, 68, 97, 114, 107, 110, 101, 115, 115, 76, 101, 118, 101, 108, 61, 36, 51, 10, 76, 105, 103, 104, 116, 110, 101, 115, 115, 76, 101, 118, 101, 108, 61, 36, 52, 10, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 10, 45, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 83, 112, 97, 116, 105, 97, 108, 82, 97, 100, 105, 117, 115, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 65, 109, 111, 117, 110, 116, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 84, 104, 114, 101, 115, 104, 111, 108, 100, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 32, 45, 99, 91, 45, 50, 93, 32, 45, 49, 48, 48, 37, 44, 48, 32, 45, 42, 91, 45, 50, 93, 32, 36, 68, 97, 114, 107, 110, 101, 115, 115, 76, 101, 118, 101, 108, 32, 45, 42, 91, 45, 49, 93, 32, 36, 76, 105, 103, 104, 116, 110, 101, 115, 115, 76, 101, 118, 101, 108, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 76, 67, 69, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 76, 67, 69, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 76, 67, 69, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 76, 67, 69, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 44, 32, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 118, 101, 114, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 115, 116, 114, 97, 105, 110, 32, 118, 97, 108, 117, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 44, 50, 53, 53, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 107, 101, 32, 85, 112, 58, 32, 109, 97, 107, 101, 95, 117, 112, 44, 32, 109, 97, 107, 101, 95, 117, 112, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 49, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 102, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 109, 105, 116, 32, 104, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 45, 32, 85, 112, 100, 97, 116, 101, 58, 32, 49, 32, 77, 97, 114, 99, 104, 32, 50, 48, 49, 51, 58, 32, 70, 105, 120, 101, 100, 32, 114, 101, 115, 105, 122, 105, 110, 103, 32, 105, 115, 115, 117, 101, 44, 32, 115, 111, 109, 101, 32, 109, 101, 109, 111, 114, 121, 32, 117, 115, 101, 97, 103, 101, 32, 105, 109, 112, 114, 111, 118, 101, 109, 101, 110, 116, 115, 44, 32, 97, 110, 100, 32, 97, 100, 100, 101, 100, 32, 109, 111, 114, 101, 32, 111, 112, 116, 105, 111, 110, 115, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 109, 97, 107, 101, 117, 112, 95, 102, 117, 108, 108, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 46, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 114, 101, 100, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 103, 114, 101, 101, 110, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 98, 108, 117, 101, 10, 45, 115, 117, 98, 91, 103, 114, 101, 101, 110, 93, 32, 91, 114, 101, 100, 93, 10, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 103, 114, 101, 101, 110, 93, 32, 36, 49, 44, 36, 50, 10, 45, 97, 100, 100, 91, 103, 114, 101, 101, 110, 93, 32, 91, 114, 101, 100, 93, 10, 45, 115, 117, 98, 91, 98, 108, 117, 101, 93, 32, 91, 114, 101, 100, 93, 10, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 98, 108, 117, 101, 93, 32, 36, 49, 44, 36, 50, 10, 45, 97, 100, 100, 91, 98, 108, 117, 101, 93, 32, 91, 114, 101, 100, 93, 10, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 93, 32, 99, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 97, 107, 101, 95, 117, 112, 58, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 50, 45, 119, 37, 50, 41, 125, 44, 123, 104, 43, 40, 50, 45, 104, 37, 50, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 51, 44, 53, 10, 45, 45, 109, 97, 107, 101, 117, 112, 95, 102, 117, 108, 108, 91, 49, 93, 32, 123, 36, 49, 47, 50, 125, 44, 36, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 53, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 51, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 53, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 50, 44, 52, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 9, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 9, 45, 45, 109, 97, 107, 101, 117, 112, 95, 102, 117, 108, 108, 91, 48, 93, 32, 36, 49, 44, 36, 50, 10, 9, 45, 101, 108, 115, 101, 10, 9, 45, 109, 97, 107, 101, 117, 112, 95, 102, 117, 108, 108, 91, 48, 93, 32, 36, 49, 44, 36, 50, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 45, 114, 103, 98, 50, 104, 115, 108, 56, 91, 49, 93, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 109, 111, 100, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 51, 48, 44, 48, 44, 49, 51, 54, 44, 50, 53, 53, 44, 49, 53, 53, 44, 50, 53, 53, 44, 49, 54, 48, 44, 48, 44, 50, 53, 53, 44, 48, 10, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 45, 45, 101, 100, 103, 101, 115, 91, 49, 93, 32, 49, 48, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 109, 117, 108, 91, 45, 49, 44, 45, 50, 93, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 48, 44, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 109, 97, 107, 101, 95, 117, 112, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 109, 97, 107, 101, 95, 117, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 115, 107, 32, 67, 114, 101, 97, 116, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 115, 107, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 72, 117, 101, 34, 44, 34, 76, 65, 66, 45, 108, 105, 103, 104, 116, 110, 101, 115, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 67, 104, 97, 110, 110, 101, 108, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 89, 101, 108, 108, 111, 119, 34, 44, 34, 77, 97, 103, 101, 110, 116, 97, 34, 44, 34, 67, 121, 97, 110, 34, 44, 34, 76, 65, 66, 45, 65, 34, 44, 34, 76, 65, 66, 45, 66, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 112, 108, 121, 32, 77, 97, 115, 107, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 102, 105, 108, 116, 101, 114, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 115, 107, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 52, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 53, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 54, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 10, 45, 101, 110, 100, 105, 102, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 91, 45, 49, 93, 32, 36, 51, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 102, 91, 45, 50, 93, 32, 34, 105, 102, 40, 105, 60, 36, 52, 44, 105, 102, 40, 99, 61, 61, 48, 44, 105, 44, 105, 41, 44, 48, 41, 34, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 53, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 36, 54, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 57, 10, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 115, 107, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 114, 116, 114, 97, 105, 116, 32, 82, 101, 116, 111, 117, 99, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 116, 111, 117, 99, 104, 105, 110, 103, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 83, 116, 97, 110, 100, 97, 114, 100, 34, 44, 34, 71, 108, 97, 109, 111, 117, 114, 32, 103, 108, 111, 119, 34, 44, 34, 77, 97, 115, 99, 117, 108, 105, 110, 101, 34, 44, 34, 72, 105, 103, 104, 32, 107, 101, 121, 34, 44, 34, 76, 111, 119, 32, 75, 101, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 102, 102, 101, 99, 116, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 82, 101, 116, 111, 117, 99, 104, 105, 110, 103, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 110, 101, 32, 100, 101, 116, 97, 105, 108, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 117, 109, 32, 100, 101, 116, 97, 105, 108, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 101, 97, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 110, 101, 32, 100, 101, 116, 97, 105, 108, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 117, 109, 32, 100, 101, 116, 97, 105, 108, 115, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 101, 97, 115, 32, 108, 105, 103, 104, 116, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 66, 105, 108, 97, 116, 101, 114, 97, 108, 34, 44, 34, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 82, 101, 116, 111, 117, 99, 104, 101, 100, 32, 105, 109, 97, 103, 101, 34, 44, 34, 67, 111, 109, 112, 111, 115, 101, 100, 32, 108, 97, 121, 101, 114, 115, 34, 44, 34, 65, 108, 108, 32, 108, 97, 121, 101, 114, 115, 32, 97, 110, 100, 32, 109, 97, 115, 107, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 83, 107, 105, 110, 32, 116, 111, 110, 101, 32, 109, 97, 115, 107, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 112, 108, 121, 32, 115, 107, 105, 110, 32, 116, 111, 110, 101, 32, 109, 97, 115, 107, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 109, 105, 108, 97, 114, 105, 116, 121, 32, 115, 112, 97, 99, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 82, 71, 66, 91, 65, 93, 34, 44, 34, 82, 71, 66, 34, 44, 34, 89, 67, 98, 67, 114, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 79, 112, 97, 99, 105, 116, 121, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 32, 38, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 108, 101, 99, 116, 101, 100, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 48, 44, 49, 56, 48, 44, 49, 53, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 101, 110, 101, 114, 105, 99, 32, 115, 107, 105, 110, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 69, 110, 104, 97, 110, 99, 101, 109, 101, 110, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 112, 108, 121, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 115, 32, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 105, 110, 97, 108, 32, 105, 109, 97, 103, 101, 34, 44, 34, 82, 101, 116, 111, 117, 99, 104, 101, 100, 32, 97, 114, 101, 97, 115, 32, 111, 110, 108, 121, 34, 44, 34, 83, 104, 97, 114, 112, 101, 110, 101, 100, 32, 97, 114, 101, 97, 115, 32, 111, 110, 108, 121, 34, 44, 34, 82, 101, 116, 111, 117, 99, 104, 101, 100, 32, 97, 110, 100, 32, 115, 104, 97, 114, 112, 101, 110, 101, 100, 32, 97, 114, 101, 97, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 116, 101, 109, 112, 101, 114, 97, 116, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 82, 101, 116, 111, 117, 99, 104, 101, 100, 32, 105, 109, 97, 103, 101, 32, 102, 105, 110, 97, 108, 34, 44, 34, 82, 101, 116, 111, 117, 99, 104, 101, 100, 32, 105, 109, 97, 103, 101, 32, 98, 97, 115, 105, 99, 34, 44, 34, 82, 101, 116, 111, 117, 99, 104, 32, 108, 97, 121, 101, 114, 34, 44, 34, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 108, 97, 121, 101, 114, 34, 44, 34, 83, 107, 105, 110, 32, 116, 111, 110, 101, 32, 109, 97, 115, 107, 34, 44, 34, 83, 107, 105, 110, 32, 116, 111, 110, 101, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 69, 100, 103, 101, 32, 109, 97, 115, 107, 34, 44, 34, 72, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 108, 97, 121, 101, 114, 34, 44, 34, 77, 101, 100, 105, 117, 109, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 108, 97, 121, 101, 114, 34, 44, 34, 76, 111, 119, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 108, 97, 121, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 52, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 80, 111, 114, 116, 114, 97, 105, 116, 37, 50, 48, 114, 101, 116, 111, 117, 99, 104, 105, 110, 103, 46, 104, 116, 109, 108, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 41, 61, 61, 48, 125, 32, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 61, 61, 51, 125, 124, 124, 123, 36, 49, 61, 61, 52, 125, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 48, 44, 36, 50, 49, 44, 51, 48, 44, 36, 50, 50, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 48, 93, 32, 36, 50, 52, 44, 36, 50, 51, 44, 48, 44, 48, 32, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 48, 125, 32, 45, 102, 99, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 48, 44, 36, 50, 49, 44, 51, 48, 44, 36, 50, 50, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 105, 102, 32, 123, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 52, 125, 38, 38, 123, 36, 50, 57, 61, 61, 53, 125, 125, 32, 45, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 36, 123, 49, 50, 45, 49, 56, 125, 44, 48, 44, 48, 32, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 36, 123, 49, 50, 45, 49, 56, 125, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 91, 48, 93, 32, 36, 54, 32, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 49, 125, 32, 45, 102, 99, 91, 45, 49, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 36, 54, 42, 50, 125, 44, 48, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 91, 48, 93, 32, 36, 55, 10, 45, 114, 109, 91, 45, 50, 44, 45, 52, 93, 10, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 114, 105, 91, 48, 93, 32, 123, 36, 56, 47, 49, 48, 48, 125, 44, 123, 36, 56, 47, 50, 48, 48, 125, 44, 123, 36, 56, 47, 50, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 52, 32, 45, 98, 108, 117, 114, 91, 45, 51, 93, 32, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 55, 44, 36, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 54, 44, 36, 52, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 51, 93, 32, 123, 36, 51, 47, 53, 125, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 50, 125, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 52, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 51, 93, 32, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 57, 61, 61, 51, 125, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 36, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 36, 52, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 51, 93, 32, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 48, 125, 38, 38, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 60, 61, 51, 125, 125, 124, 124, 123, 123, 36, 49, 48, 60, 61, 49, 125, 38, 38, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 48, 125, 125, 125, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 91, 45, 49, 44, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 36, 49, 52, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 53, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 44, 45, 53, 93, 32, 45, 43, 91, 45, 49, 93, 32, 91, 45, 53, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 99, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 53, 48, 125, 32, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 49, 125, 124, 124, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 50, 125, 125, 124, 124, 123, 123, 36, 49, 48, 61, 61, 48, 125, 38, 38, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 48, 125, 125, 125, 10, 45, 105, 102, 32, 123, 123, 36, 49, 33, 61, 48, 125, 38, 38, 123, 36, 49, 33, 61, 49, 125, 125, 32, 45, 109, 118, 91, 45, 50, 93, 32, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 45, 50, 93, 32, 36, 50, 55, 44, 36, 50, 54, 44, 48, 44, 36, 50, 56, 44, 123, 105, 102, 40, 123, 36, 50, 53, 62, 61, 48, 125, 44, 123, 36, 50, 53, 47, 52, 125, 44, 123, 36, 50, 53, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 36, 50, 56, 44, 36, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 48, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 45, 49, 93, 32, 36, 50, 55, 44, 36, 50, 54, 44, 48, 44, 36, 50, 56, 44, 123, 105, 102, 40, 123, 36, 50, 53, 62, 61, 48, 125, 44, 123, 36, 50, 53, 47, 52, 125, 44, 123, 36, 50, 53, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 36, 50, 56, 44, 36, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 48, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 45, 49, 44, 45, 50, 93, 32, 36, 50, 55, 44, 36, 50, 54, 44, 48, 44, 36, 50, 56, 44, 123, 105, 102, 40, 123, 36, 50, 53, 62, 61, 48, 125, 44, 123, 36, 50, 53, 47, 52, 125, 44, 123, 36, 50, 53, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 36, 50, 56, 44, 36, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 51, 93, 32, 123, 105, 102, 40, 123, 36, 49, 61, 61, 48, 125, 44, 123, 36, 50, 47, 49, 48, 48, 125, 44, 49, 41, 125, 44, 48, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 123, 105, 102, 40, 123, 36, 49, 61, 61, 48, 125, 44, 123, 36, 50, 47, 49, 48, 48, 125, 44, 49, 41, 125, 44, 48, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 53, 48, 125, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 48, 44, 36, 50, 49, 44, 51, 48, 44, 36, 50, 50, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 60, 61, 49, 125, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 91, 48, 93, 32, 123, 36, 50, 47, 49, 48, 125, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 36, 50, 47, 49, 48, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 91, 48, 44, 49, 93, 32, 123, 36, 50, 47, 49, 48, 48, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 48, 44, 49, 93, 32, 123, 36, 50, 47, 49, 48, 48, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 48, 93, 32, 36, 50, 55, 44, 36, 50, 54, 44, 48, 44, 36, 50, 56, 44, 123, 105, 102, 40, 123, 36, 50, 53, 62, 61, 48, 125, 44, 123, 36, 50, 53, 47, 52, 125, 44, 123, 36, 50, 53, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 36, 50, 56, 44, 36, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 49, 10, 45, 105, 102, 32, 123, 36, 50, 57, 61, 61, 49, 125, 32, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 50, 32, 45, 101, 108, 105, 102, 32, 123, 123, 36, 50, 57, 61, 61, 50, 125, 124, 124, 123, 36, 50, 57, 61, 61, 51, 125, 125, 32, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 51, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 62, 61, 52, 125, 32, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 57, 62, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 112, 111, 114, 116, 114, 97, 105, 116, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 57, 61, 61, 49, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 50, 125, 32, 45, 107, 91, 50, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 51, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 52, 125, 32, 45, 107, 91, 45, 51, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 53, 125, 32, 45, 107, 91, 45, 51, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 54, 125, 32, 45, 107, 91, 45, 53, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 55, 125, 32, 45, 107, 91, 45, 50, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 56, 125, 32, 45, 107, 91, 48, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 57, 61, 61, 57, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 48, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 100, 101, 98, 108, 117, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 44, 32, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 103, 117, 108, 97, 114, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 105, 107, 104, 111, 110, 111, 118, 34, 44, 34, 77, 101, 97, 110, 32, 99, 117, 114, 118, 97, 116, 117, 114, 101, 34, 44, 34, 84, 111, 116, 97, 108, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 100, 101, 98, 108, 117, 114, 32, 36, 123, 49, 45, 53, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 55, 44, 36, 56, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 101, 98, 108, 117, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 71, 111, 108, 100, 45, 77, 101, 105, 110, 101, 108, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 44, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 99, 101, 108, 101, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 69, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 34, 44, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 58, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 45, 100, 101, 98, 108, 117, 114, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 36, 42, 32, 45, 105, 102, 32, 36, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 34, 44, 36, 54, 44, 36, 55, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 103, 111, 108, 100, 109, 101, 105, 110, 101, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 105, 110, 118, 101, 114, 115, 101, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 49, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 52, 44, 36, 53, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 105, 110, 118, 101, 114, 115, 101, 100, 105, 102, 102, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 111, 99, 116, 97, 118, 101, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 44, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 92, 34, 44, 36, 54, 44, 36, 55, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 82, 105, 99, 104, 97, 114, 100, 115, 111, 110, 45, 76, 117, 99, 121, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 44, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 69, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 34, 44, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 58, 10, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 34, 45, 100, 101, 98, 108, 117, 114, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 36, 42, 32, 45, 105, 102, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 34, 44, 36, 53, 44, 36, 54, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 114, 105, 99, 104, 97, 114, 100, 115, 111, 110, 108, 117, 99, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 115, 104, 111, 99, 107, 32, 102, 105, 108, 116, 101, 114, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 48, 44, 49, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 48, 46, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 53, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 55, 44, 36, 56, 34, 44, 36, 54, 44, 48, 10, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 104, 97, 114, 112, 101, 110, 95, 115, 104, 111, 99, 107, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 44, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 66, 105, 108, 97, 116, 101, 114, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 105, 108, 97, 116, 101, 114, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 105, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 60, 105, 62, 85, 110, 115, 104, 97, 114, 112, 32, 77, 97, 115, 107, 60, 47, 105, 62, 32, 102, 105, 108, 116, 101, 114, 32, 105, 110, 32, 71, 73, 77, 80, 44, 32, 119, 105, 116, 104, 32, 97, 100, 100, 105, 116, 105, 111, 110, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 56, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 101, 108, 115, 101, 32, 45, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 36, 52, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 57, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 32, 45, 99, 91, 45, 50, 93, 32, 45, 49, 48, 48, 37, 44, 48, 32, 45, 42, 91, 45, 50, 93, 32, 36, 54, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 34, 44, 36, 49, 48, 44, 48, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 87, 104, 105, 116, 101, 110, 93, 32, 58, 32, 106, 101, 106, 101, 95, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 44, 32, 106, 101, 106, 101, 95, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 101, 113, 117, 97, 108, 105, 122, 101, 115, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 58, 10, 45, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 123, 101, 120, 112, 40, 36, 49, 47, 49, 48, 48, 41, 45, 49, 125, 10, 45, 105, 102, 32, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 106, 101, 106, 101, 95, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 36, 49, 44, 36, 50, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 120, 116, 117, 114, 101, 32, 69, 110, 104, 97, 110, 99, 101, 58, 32, 105, 97, 105, 110, 95, 116, 101, 120, 116, 117, 114, 101, 95, 101, 110, 104, 97, 110, 99, 101, 44, 32, 105, 97, 105, 110, 95, 116, 101, 120, 116, 117, 114, 101, 95, 101, 110, 104, 97, 110, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 44, 50, 44, 49, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 117, 99, 101, 32, 72, 97, 108, 111, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 117, 99, 101, 32, 110, 111, 105, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 85, 112, 100, 97, 116, 101, 58, 32, 52, 32, 77, 97, 114, 99, 104, 32, 50, 48, 49, 51, 32, 45, 32, 68, 105, 102, 102, 101, 114, 101, 110, 116, 32, 104, 97, 108, 111, 32, 112, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 109, 101, 116, 104, 111, 100, 44, 32, 97, 100, 100, 101, 100, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 114, 101, 100, 117, 99, 101, 32, 110, 111, 105, 115, 101, 44, 32, 102, 97, 115, 116, 101, 114, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 116, 101, 120, 116, 117, 114, 101, 95, 101, 110, 104, 97, 110, 99, 101, 58, 10, 45, 116, 105, 99, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 9, 9, 45, 105, 102, 32, 123, 36, 49, 37, 50, 33, 61, 48, 125, 10, 9, 9, 9, 45, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 48, 93, 32, 36, 49, 32, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 9, 45, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 48, 93, 32, 36, 49, 32, 32, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 91, 48, 93, 32, 36, 49, 32, 32, 45, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 9, 45, 45, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 91, 48, 93, 32, 36, 49, 32, 32, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 115, 117, 98, 91, 49, 93, 32, 91, 48, 93, 10, 9, 45, 115, 117, 98, 91, 50, 93, 32, 91, 48, 93, 10, 9, 45, 97, 100, 100, 91, 49, 93, 32, 91, 50, 93, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 50, 93, 10, 9, 45, 109, 117, 108, 91, 49, 93, 32, 36, 50, 10, 9, 45, 45, 97, 98, 115, 91, 49, 93, 10, 9, 112, 116, 49, 61, 123, 109, 105, 110, 40, 48, 44, 40, 36, 52, 45, 49, 48, 41, 41, 125, 10, 9, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 36, 112, 116, 49, 44, 48, 44, 123, 36, 52, 43, 49, 125, 44, 49, 44, 50, 53, 53, 44, 49, 10, 9, 40, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 59, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 50, 52, 54, 51, 55, 54, 56, 49, 49, 54, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 59, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 41, 10, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 109, 117, 108, 91, 49, 93, 32, 91, 50, 93, 10, 9, 45, 99, 91, 49, 93, 32, 123, 36, 51, 42, 45, 49, 125, 44, 36, 51, 10, 9, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 34, 44, 36, 53, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 116, 111, 99, 10, 105, 97, 105, 110, 95, 116, 101, 120, 116, 117, 114, 101, 95, 101, 110, 104, 97, 110, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 105, 97, 105, 110, 95, 116, 101, 120, 116, 117, 114, 101, 95, 101, 110, 104, 97, 110, 99, 101, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 44, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 111, 110, 101, 32, 109, 97, 112, 112, 105, 110, 103, 32, 91, 102, 97, 115, 116, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 44, 32, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 119, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 117, 108, 32, 78, 97, 115, 99, 97, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 54, 47, 49, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 89, 65, 71, 95, 101, 102, 102, 101, 99, 116, 32, 58, 32, 103, 105, 109, 112, 95, 121, 97, 103, 95, 115, 111, 102, 116, 101, 110, 44, 32, 103, 105, 109, 112, 95, 121, 97, 103, 95, 115, 111, 102, 116, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 101, 110, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 111, 102, 116, 101, 110, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 50, 54, 48, 50, 53, 55, 57, 50, 51, 47, 34, 41, 10, 103, 105, 109, 112, 95, 121, 97, 103, 95, 115, 111, 102, 116, 101, 110, 32, 58, 10, 68, 97, 114, 107, 101, 110, 61, 36, 49, 10, 83, 111, 102, 116, 101, 110, 61, 36, 50, 10, 45, 45, 103, 105, 109, 112, 95, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 48, 93, 32, 48, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 62, 48, 125, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 123, 36, 83, 111, 102, 116, 101, 110, 47, 49, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 91, 48, 93, 32, 48, 46, 53, 44, 53, 48, 44, 48, 46, 50, 44, 49, 44, 50, 44, 49, 44, 49, 44, 50, 44, 49, 44, 48, 44, 49, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 68, 97, 114, 107, 101, 110, 62, 48, 125, 10, 9, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 10, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 51, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 123, 36, 68, 97, 114, 107, 101, 110, 47, 49, 48, 48, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 45, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 33, 61, 49, 48, 48, 125, 10, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 101, 108, 105, 102, 32, 123, 36, 83, 111, 102, 116, 101, 110, 61, 61, 49, 48, 48, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 121, 97, 103, 95, 115, 111, 102, 116, 101, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 121, 97, 103, 95, 115, 111, 102, 116, 101, 110, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 70, 105, 108, 109, 32, 101, 109, 117, 108, 97, 116, 105, 111, 110, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 38, 97, 109, 112, 59, 87, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 65, 103, 102, 97, 32, 65, 80, 88, 32, 49, 48, 48, 34, 44, 34, 65, 103, 102, 97, 32, 65, 80, 88, 32, 50, 53, 34, 44, 34, 70, 117, 106, 105, 32, 78, 101, 111, 112, 97, 110, 32, 49, 54, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 78, 101, 111, 112, 97, 110, 32, 65, 99, 114, 111, 115, 32, 49, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 49, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 51, 50, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 52, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 70, 80, 52, 32, 80, 108, 117, 115, 32, 49, 50, 53, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 73, 108, 102, 111, 114, 100, 32, 72, 80, 53, 32, 80, 108, 117, 115, 32, 52, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 72, 80, 83, 32, 56, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 80, 97, 110, 32, 70, 32, 80, 108, 117, 115, 32, 53, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 88, 80, 50, 34, 44, 34, 75, 111, 100, 97, 107, 32, 66, 87, 32, 52, 48, 48, 32, 67, 78, 34, 44, 34, 75, 111, 100, 97, 107, 32, 72, 73, 69, 32, 40, 72, 83, 32, 73, 110, 102, 114, 97, 41, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 45, 77, 97, 120, 32, 49, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 45, 77, 97, 120, 32, 51, 50, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 75, 111, 100, 97, 107, 32, 84, 45, 77, 97, 120, 32, 52, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 114, 105, 45, 88, 32, 52, 48, 48, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 52, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 55, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 55, 50, 34, 44, 34, 82, 111, 108, 108, 101, 105, 32, 73, 82, 32, 52, 48, 48, 34, 44, 34, 82, 111, 108, 108, 101, 105, 32, 79, 114, 116, 104, 111, 32, 50, 53, 34, 44, 34, 82, 111, 108, 108, 101, 105, 32, 82, 101, 116, 114, 111, 32, 49, 48, 48, 32, 84, 111, 110, 97, 108, 34, 44, 34, 82, 111, 108, 108, 101, 105, 32, 82, 101, 116, 114, 111, 32, 56, 48, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 97, 112, 120, 95, 49, 48, 48, 44, 97, 103, 102, 97, 95, 97, 112, 120, 95, 50, 53, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 97, 99, 114, 111, 115, 95, 49, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 49, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 52, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 102, 112, 52, 95, 112, 108, 117, 115, 95, 49, 50, 53, 44, 92, 10, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 112, 108, 117, 115, 95, 52, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 104, 112, 115, 95, 56, 48, 48, 44, 105, 108, 102, 111, 114, 100, 95, 112, 97, 110, 95, 102, 95, 112, 108, 117, 115, 95, 53, 48, 44, 105, 108, 102, 111, 114, 100, 95, 120, 112, 50, 44, 107, 111, 100, 97, 107, 95, 98, 119, 95, 52, 48, 48, 95, 99, 110, 44, 107, 111, 100, 97, 107, 95, 104, 105, 101, 95, 40, 104, 115, 95, 105, 110, 102, 114, 97, 41, 44, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 51, 50, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 45, 109, 97, 120, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 52, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 55, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 55, 50, 44, 114, 111, 108, 108, 101, 105, 95, 105, 114, 95, 52, 48, 48, 44, 114, 111, 108, 108, 101, 105, 95, 111, 114, 116, 104, 111, 95, 50, 53, 44, 114, 111, 108, 108, 101, 105, 95, 114, 101, 116, 114, 111, 95, 49, 48, 48, 95, 116, 111, 110, 97, 108, 44, 114, 111, 108, 108, 101, 105, 95, 114, 101, 116, 114, 111, 95, 56, 48, 115, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 115, 116, 97, 110, 116, 32, 91, 99, 111, 110, 115, 117, 109, 101, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 32, 43, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 67, 111, 108, 100, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 32, 43, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 49, 48, 48, 85, 86, 43, 32, 87, 97, 114, 109, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 32, 43, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 67, 111, 108, 100, 32, 43, 43, 97, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 87, 97, 114, 109, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 87, 97, 114, 109, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 87, 97, 114, 109, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 87, 97, 114, 109, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 54, 56, 48, 32, 87, 97, 114, 109, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 43, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 67, 111, 108, 100, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 67, 111, 108, 100, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 67, 111, 108, 100, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 87, 97, 114, 109, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 87, 97, 114, 109, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 87, 97, 114, 109, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 87, 97, 114, 109, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 88, 45, 55, 48, 32, 87, 97, 114, 109, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 45, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 43, 43, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 67, 111, 108, 100, 32, 45, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 84, 105, 109, 101, 32, 90, 101, 114, 111, 32, 40, 69, 120, 112, 105, 114, 101, 100, 41, 32, 67, 111, 108, 100, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 99, 111, 108, 100, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 49, 48, 48, 117, 118, 43, 95, 119, 97, 114, 109, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 99, 111, 108, 100, 95, 43, 43, 95, 97, 108, 116, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 54, 56, 48, 95, 119, 97, 114, 109, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 120, 45, 55, 48, 95, 119, 97, 114, 109, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 116, 105, 109, 101, 95, 122, 101, 114, 111, 95, 40, 101, 120, 112, 105, 114, 101, 100, 41, 95, 99, 111, 108, 100, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 99, 111, 110, 115, 117, 109, 101, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 115, 116, 97, 110, 116, 32, 91, 112, 114, 111, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 45, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 43, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 43, 43, 97, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 67, 111, 111, 108, 32, 45, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 67, 111, 111, 108, 32, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 67, 111, 111, 108, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 67, 111, 111, 108, 32, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 67, 111, 111, 108, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 45, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 43, 97, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 49, 48, 48, 99, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 45, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 43, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 72, 67, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 45, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 45, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 43, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 70, 80, 45, 51, 48, 48, 48, 98, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 69, 97, 114, 108, 121, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 78, 101, 103, 97, 116, 105, 118, 101, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 53, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 72, 67, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 43, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 43, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 67, 111, 108, 100, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 32, 67, 111, 108, 100, 32, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 67, 111, 108, 100, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 67, 111, 108, 100, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 67, 111, 108, 100, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 67, 111, 108, 100, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 67, 111, 108, 100, 32, 43, 43, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 87, 97, 114, 109, 32, 45, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 87, 97, 114, 109, 32, 45, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 87, 97, 114, 109, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 87, 97, 114, 109, 32, 43, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 32, 87, 97, 114, 109, 32, 43, 43, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 95, 97, 108, 116, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 43, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 99, 111, 111, 108, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 95, 97, 108, 116, 44, 102, 117, 106, 105, 95, 102, 112, 45, 49, 48, 48, 99, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 43, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 104, 99, 44, 92, 10, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 43, 43, 44, 102, 117, 106, 105, 95, 102, 112, 45, 51, 48, 48, 48, 98, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 101, 97, 114, 108, 121, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 53, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 104, 99, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 43, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 95, 99, 111, 108, 100, 95, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 99, 111, 108, 100, 95, 43, 43, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 45, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 45, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 43, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 95, 119, 97, 114, 109, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 105, 110, 115, 116, 97, 110, 116, 95, 112, 114, 111, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 91, 99, 111, 108, 111, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 65, 103, 102, 97, 32, 85, 108, 116, 114, 97, 32, 67, 111, 108, 111, 114, 32, 49, 48, 48, 34, 44, 34, 65, 103, 102, 97, 32, 86, 105, 115, 116, 97, 32, 50, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 50, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 72, 71, 32, 49, 54, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 82, 101, 97, 108, 97, 32, 49, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 88, 45, 84, 114, 97, 32, 56, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 49, 48, 48, 32, 88, 80, 82, 79, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 67, 111, 108, 111, 114, 32, 50, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 67, 111, 108, 111, 114, 32, 52, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 49, 54, 48, 32, 78, 67, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 49, 54, 48, 32, 86, 67, 34, 44, 34, 76, 111, 109, 111, 103, 114, 97, 112, 104, 121, 32, 82, 101, 100, 115, 99, 97, 108, 101, 32, 49, 48, 48, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 117, 108, 116, 114, 97, 95, 99, 111, 108, 111, 114, 95, 49, 48, 48, 44, 97, 103, 102, 97, 95, 118, 105, 115, 116, 97, 95, 50, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 50, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 104, 103, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 114, 101, 97, 108, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 120, 45, 116, 114, 97, 95, 56, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 49, 48, 48, 95, 120, 112, 114, 111, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 111, 108, 111, 114, 95, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 111, 108, 111, 114, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 44, 108, 111, 109, 111, 103, 114, 97, 112, 104, 121, 95, 114, 101, 100, 115, 99, 97, 108, 101, 95, 49, 48, 48, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 91, 110, 101, 119, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 34, 70, 117, 106, 105, 32, 49, 54, 48, 67, 34, 44, 34, 70, 117, 106, 105, 32, 52, 48, 48, 72, 34, 44, 34, 70, 117, 106, 105, 32, 56, 48, 48, 90, 34, 44, 34, 70, 117, 106, 105, 32, 73, 108, 102, 111, 114, 100, 32, 72, 80, 53, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 49, 54, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 52, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 56, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 77, 65, 88, 32, 51, 50, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 82, 73, 45, 88, 32, 52, 48, 48, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 102, 102, 101, 99, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 76, 111, 119, 34, 44, 34, 83, 116, 97, 110, 100, 97, 114, 100, 34, 44, 34, 72, 105, 103, 104, 34, 44, 34, 72, 105, 103, 104, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 123, 109, 97, 120, 40, 49, 44, 52, 42, 36, 49, 43, 36, 50, 45, 51, 41, 125, 44, 92, 10, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 45, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 43, 44, 102, 117, 106, 105, 95, 49, 54, 48, 99, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 45, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 43, 44, 102, 117, 106, 105, 95, 52, 48, 48, 104, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 45, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 43, 44, 102, 117, 106, 105, 95, 56, 48, 48, 122, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 45, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 43, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 104, 112, 53, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 56, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 116, 109, 97, 120, 95, 51, 50, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 45, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 43, 44, 107, 111, 100, 97, 107, 95, 116, 114, 105, 45, 120, 95, 52, 48, 48, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 110, 101, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 91, 111, 108, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 48, 44, 34, 78, 111, 110, 101, 34, 44, 34, 70, 117, 106, 105, 32, 73, 108, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 51, 50, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 78, 101, 111, 112, 97, 110, 32, 49, 54, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 49, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 52, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 56, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 49, 54, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 49, 54, 48, 32, 78, 67, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 49, 54, 48, 32, 86, 67, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 52, 48, 48, 32, 78, 67, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 52, 48, 48, 32, 85, 67, 34, 44, 34, 75, 111, 100, 97, 107, 32, 80, 111, 114, 116, 114, 97, 32, 52, 48, 48, 32, 86, 67, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 102, 102, 101, 99, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 76, 111, 119, 34, 44, 34, 83, 116, 97, 110, 100, 97, 114, 100, 34, 44, 34, 72, 105, 103, 104, 34, 44, 34, 72, 105, 103, 104, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 123, 109, 97, 120, 40, 49, 44, 52, 42, 36, 49, 43, 36, 50, 45, 51, 41, 125, 44, 92, 10, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 105, 108, 102, 111, 114, 100, 95, 100, 101, 108, 116, 97, 95, 51, 50, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 110, 101, 111, 112, 97, 110, 95, 49, 54, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 52, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 56, 48, 48, 95, 43, 43, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 45, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 43, 44, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 49, 54, 48, 48, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 110, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 49, 54, 48, 95, 118, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 110, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 117, 99, 95, 43, 43, 44, 92, 10, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 45, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 43, 44, 107, 111, 100, 97, 107, 95, 112, 111, 114, 116, 114, 97, 95, 52, 48, 48, 95, 118, 99, 95, 43, 43, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 110, 101, 103, 97, 116, 105, 118, 101, 95, 111, 108, 100, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 79, 116, 104, 101, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 34, 54, 48, 39, 115, 32, 40, 49, 41, 34, 44, 34, 54, 48, 39, 115, 32, 40, 50, 41, 34, 44, 34, 54, 48, 39, 115, 32, 40, 51, 41, 34, 44, 34, 72, 111, 110, 103, 32, 75, 111, 110, 103, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 76, 111, 109, 111, 34, 44, 34, 78, 111, 115, 116, 97, 108, 103, 105, 99, 34, 44, 34, 82, 101, 116, 114, 111, 34, 44, 34, 83, 117, 116, 114, 111, 32, 70, 88, 34, 44, 34, 86, 105, 110, 116, 97, 103, 101, 34, 44, 34, 86, 105, 110, 116, 97, 103, 101, 32, 50, 34, 44, 34, 87, 97, 114, 109, 34, 44, 34, 87, 97, 114, 109, 32, 115, 112, 114, 105, 110, 103, 34, 44, 34, 87, 97, 114, 109, 32, 121, 101, 108, 108, 111, 119, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 54, 48, 115, 44, 54, 48, 115, 95, 50, 44, 54, 48, 115, 95, 51, 44, 104, 107, 102, 105, 108, 109, 44, 108, 111, 109, 111, 44, 110, 111, 115, 116, 97, 108, 103, 105, 99, 44, 114, 101, 116, 114, 111, 44, 115, 117, 116, 114, 111, 102, 120, 44, 118, 105, 110, 116, 97, 103, 101, 44, 118, 105, 110, 116, 97, 103, 101, 95, 50, 44, 119, 97, 114, 109, 44, 119, 97, 114, 109, 95, 115, 112, 114, 105, 110, 103, 44, 119, 97, 114, 109, 95, 121, 101, 108, 108, 111, 119, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 111, 116, 104, 101, 114, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 58, 10, 45, 105, 102, 32, 36, 49, 10, 45, 105, 102, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 32, 45, 105, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 10, 45, 101, 108, 115, 101, 32, 45, 105, 32, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 100, 97, 116, 97, 95, 102, 105, 108, 109, 95, 112, 114, 101, 115, 101, 116, 115, 47, 36, 50, 46, 99, 105, 109, 103, 122, 32, 45, 111, 91, 45, 49, 93, 32, 64, 123, 45, 112, 97, 116, 104, 95, 116, 109, 112, 125, 47, 103, 109, 105, 99, 95, 36, 50, 46, 99, 105, 109, 103, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 112, 95, 99, 108, 117, 116, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 36, 51, 10, 45, 45, 91, 48, 93, 32, 49, 50, 56, 32, 45, 42, 91, 48, 93, 32, 36, 52, 32, 45, 43, 91, 48, 93, 32, 49, 50, 56, 32, 45, 43, 91, 48, 93, 32, 36, 53, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 54, 124, 124, 36, 55, 33, 61, 49, 124, 124, 36, 56, 125, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 10, 45, 115, 104, 91, 48, 93, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 54, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 36, 56, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 108, 105, 100, 101, 32, 91, 99, 111, 108, 111, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 44, 32, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 78, 111, 110, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 65, 103, 102, 97, 32, 80, 114, 101, 99, 105, 115, 97, 32, 49, 48, 48, 34, 44, 34, 70, 117, 106, 105, 32, 65, 115, 116, 105, 97, 32, 49, 48, 48, 70, 34, 44, 34, 70, 117, 106, 105, 32, 70, 80, 32, 49, 48, 48, 67, 34, 44, 34, 70, 117, 106, 105, 32, 80, 114, 111, 118, 105, 97, 32, 49, 48, 48, 70, 34, 44, 34, 70, 117, 106, 105, 32, 80, 114, 111, 118, 105, 97, 32, 52, 48, 48, 70, 34, 44, 34, 70, 117, 106, 105, 32, 80, 114, 111, 118, 105, 97, 32, 52, 48, 48, 88, 34, 44, 34, 70, 117, 106, 105, 32, 83, 101, 110, 115, 105, 97, 32, 49, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 70, 117, 106, 105, 32, 83, 117, 112, 101, 114, 105, 97, 32, 50, 48, 48, 32, 88, 80, 82, 79, 34, 44, 34, 70, 117, 106, 105, 32, 86, 101, 108, 118, 105, 97, 32, 53, 48, 34, 44, 34, 71, 101, 110, 101, 114, 105, 99, 32, 70, 117, 106, 105, 32, 65, 115, 116, 105, 97, 32, 49, 48, 48, 34, 44, 34, 71, 101, 110, 101, 114, 105, 99, 32, 70, 117, 106, 105, 32, 80, 114, 111, 118, 105, 97, 32, 49, 48, 48, 34, 44, 34, 71, 101, 110, 101, 114, 105, 99, 32, 70, 117, 106, 105, 32, 86, 101, 108, 118, 105, 97, 32, 49, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 71, 101, 110, 101, 114, 105, 99, 32, 75, 111, 100, 97, 99, 104, 114, 111, 109, 101, 32, 54, 52, 34, 44, 34, 71, 101, 110, 101, 114, 105, 99, 32, 75, 111, 100, 97, 107, 32, 69, 107, 116, 97, 99, 104, 114, 111, 109, 101, 32, 49, 48, 48, 32, 86, 83, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 45, 49, 48, 48, 32, 71, 88, 32, 69, 107, 116, 97, 99, 104, 114, 111, 109, 101, 32, 49, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 107, 116, 97, 99, 104, 114, 111, 109, 101, 32, 49, 48, 48, 32, 86, 83, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 67, 104, 114, 111, 109, 101, 32, 50, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 67, 104, 114, 111, 109, 101, 32, 52, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 69, 108, 105, 116, 101, 32, 69, 120, 116, 114, 97, 67, 111, 108, 111, 114, 32, 49, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 75, 111, 100, 97, 99, 104, 114, 111, 109, 101, 32, 50, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 75, 111, 100, 97, 99, 104, 114, 111, 109, 101, 32, 50, 53, 34, 44, 34, 75, 111, 100, 97, 107, 32, 75, 111, 100, 97, 99, 104, 114, 111, 109, 101, 32, 54, 52, 34, 44, 34, 76, 111, 109, 111, 103, 114, 97, 112, 104, 121, 32, 88, 45, 80, 114, 111, 32, 83, 108, 105, 100, 101, 32, 50, 48, 48, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 54, 57, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 54, 57, 48, 34, 44, 34, 80, 111, 108, 97, 114, 111, 105, 100, 32, 80, 111, 108, 97, 99, 104, 114, 111, 109, 101, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 80, 97, 116, 114, 105, 99, 107, 32, 68, 97, 118, 105, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 32, 58, 10, 112, 114, 101, 115, 101, 116, 61, 64, 123, 45, 97, 114, 103, 92, 32, 36, 49, 44, 92, 10, 97, 103, 102, 97, 95, 112, 114, 101, 99, 105, 115, 97, 95, 49, 48, 48, 44, 102, 117, 106, 105, 95, 97, 115, 116, 105, 97, 95, 49, 48, 48, 102, 44, 102, 117, 106, 105, 95, 102, 112, 95, 49, 48, 48, 99, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 49, 48, 48, 102, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 52, 48, 48, 102, 44, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 52, 48, 48, 120, 44, 102, 117, 106, 105, 95, 115, 101, 110, 115, 105, 97, 95, 49, 48, 48, 44, 92, 10, 102, 117, 106, 105, 95, 115, 117, 112, 101, 114, 105, 97, 95, 50, 48, 48, 95, 120, 112, 114, 111, 44, 102, 117, 106, 105, 95, 118, 101, 108, 118, 105, 97, 95, 53, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 97, 115, 116, 105, 97, 95, 49, 48, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 112, 114, 111, 118, 105, 97, 95, 49, 48, 48, 44, 103, 101, 110, 101, 114, 105, 99, 95, 102, 117, 106, 105, 95, 118, 101, 108, 118, 105, 97, 95, 49, 48, 48, 44, 92, 10, 103, 101, 110, 101, 114, 105, 99, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 54, 52, 44, 103, 101, 110, 101, 114, 105, 99, 95, 107, 111, 100, 97, 107, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 95, 118, 115, 44, 107, 111, 100, 97, 107, 95, 101, 45, 49, 48, 48, 95, 103, 120, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 107, 116, 97, 99, 104, 114, 111, 109, 101, 95, 49, 48, 48, 95, 118, 115, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 104, 114, 111, 109, 101, 95, 50, 48, 48, 44, 92, 10, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 99, 104, 114, 111, 109, 101, 95, 52, 48, 48, 44, 107, 111, 100, 97, 107, 95, 101, 108, 105, 116, 101, 95, 101, 120, 116, 114, 97, 99, 111, 108, 111, 114, 95, 49, 48, 48, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 50, 48, 48, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 50, 53, 44, 107, 111, 100, 97, 107, 95, 107, 111, 100, 97, 99, 104, 114, 111, 109, 101, 95, 54, 52, 44, 108, 111, 109, 111, 103, 114, 97, 112, 104, 121, 95, 120, 45, 112, 114, 111, 95, 115, 108, 105, 100, 101, 95, 50, 48, 48, 44, 92, 10, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 54, 57, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 54, 57, 48, 44, 112, 111, 108, 97, 114, 111, 105, 100, 95, 112, 111, 108, 97, 99, 104, 114, 111, 109, 101, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 32, 36, 49, 44, 36, 112, 114, 101, 115, 101, 116, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 109, 117, 108, 97, 116, 101, 95, 102, 105, 108, 109, 95, 99, 111, 108, 111, 114, 115, 108, 105, 100, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 70, 114, 97, 109, 101, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 68, 114, 111, 115, 116, 101, 32, 58, 32, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 44, 32, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 99, 111, 108, 111, 114, 61, 92, 34, 114, 101, 100, 92, 34, 62, 85, 112, 112, 101, 114, 45, 108, 101, 102, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 48, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 99, 111, 108, 111, 114, 61, 92, 34, 109, 97, 103, 101, 110, 116, 97, 92, 34, 62, 85, 112, 112, 101, 114, 45, 114, 105, 103, 104, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 99, 111, 108, 111, 114, 61, 92, 34, 98, 108, 117, 101, 92, 34, 62, 76, 111, 119, 101, 114, 45, 114, 105, 103, 104, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 99, 111, 108, 111, 114, 61, 92, 34, 99, 121, 97, 110, 92, 34, 62, 76, 111, 119, 101, 114, 45, 108, 101, 102, 116, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 58, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 114, 97, 119, 105, 110, 103, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 34, 82, 101, 112, 108, 97, 99, 101, 34, 44, 34, 82, 101, 112, 108, 97, 99, 101, 32, 40, 115, 104, 97, 114, 112, 101, 115, 116, 41, 34, 44, 34, 66, 101, 104, 105, 110, 100, 34, 44, 34, 66, 101, 108, 111, 119, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 101, 119, 32, 111, 117, 116, 108, 105, 110, 101, 115, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 54, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 120, 39, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 39, 121, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 57, 10, 120, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 48, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 104, 47, 49, 48, 48, 41, 125, 32, 120, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 51, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 52, 42, 104, 47, 49, 48, 48, 41, 125, 10, 120, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 53, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 50, 61, 123, 114, 111, 117, 110, 100, 40, 36, 54, 42, 104, 47, 49, 48, 48, 41, 125, 32, 120, 51, 61, 123, 114, 111, 117, 110, 100, 40, 36, 55, 42, 119, 47, 49, 48, 48, 41, 125, 32, 121, 51, 61, 123, 114, 111, 117, 110, 100, 40, 36, 56, 42, 104, 47, 49, 48, 48, 41, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 44, 45, 51, 50, 55, 54, 55, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 120, 50, 44, 36, 121, 50, 44, 36, 120, 51, 44, 36, 121, 51, 44, 49, 44, 45, 54, 53, 53, 51, 53, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 120, 48, 51, 61, 36, 120, 48, 43, 40, 121, 45, 36, 121, 48, 41, 47, 40, 36, 121, 51, 45, 36, 121, 48, 41, 42, 40, 36, 120, 51, 45, 36, 120, 48, 41, 59, 120, 49, 50, 61, 36, 120, 49, 43, 40, 121, 45, 36, 121, 49, 41, 47, 40, 36, 121, 50, 45, 36, 121, 49, 41, 42, 40, 36, 120, 50, 45, 36, 120, 49, 41, 59, 40, 120, 45, 120, 48, 51, 41, 47, 40, 120, 49, 50, 45, 120, 48, 51, 41, 42, 40, 119, 45, 49, 41, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 54, 53, 53, 51, 53, 44, 121, 48, 49, 61, 36, 121, 48, 43, 40, 120, 45, 36, 120, 48, 41, 47, 40, 36, 120, 49, 45, 36, 120, 48, 41, 42, 40, 36, 121, 49, 45, 36, 121, 48, 41, 59, 121, 51, 50, 61, 36, 121, 51, 43, 40, 120, 45, 36, 120, 51, 41, 47, 40, 36, 120, 50, 45, 36, 120, 51, 41, 42, 40, 36, 121, 50, 45, 36, 121, 51, 41, 59, 40, 121, 45, 121, 48, 49, 41, 47, 40, 121, 51, 50, 45, 121, 48, 49, 41, 42, 40, 104, 45, 49, 41, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 120, 115, 104, 105, 102, 116, 61, 123, 119, 42, 36, 49, 48, 47, 49, 48, 48, 125, 32, 121, 115, 104, 105, 102, 116, 61, 123, 104, 42, 36, 49, 49, 47, 49, 48, 48, 125, 32, 97, 108, 112, 104, 97, 61, 123, 45, 36, 49, 50, 42, 112, 105, 47, 49, 56, 48, 125, 32, 99, 97, 61, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 47, 36, 49, 51, 125, 32, 115, 97, 61, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 47, 36, 49, 51, 125, 32, 119, 50, 61, 123, 119, 47, 50, 125, 32, 104, 50, 61, 123, 104, 47, 50, 125, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 105, 44, 88, 61, 105, 40, 120, 44, 121, 44, 48, 44, 48, 41, 45, 36, 119, 50, 59, 89, 61, 105, 40, 120, 44, 121, 44, 48, 44, 49, 41, 45, 36, 104, 50, 59, 105, 102, 40, 99, 61, 61, 48, 44, 36, 119, 50, 45, 36, 120, 115, 104, 105, 102, 116, 43, 88, 42, 36, 99, 97, 45, 89, 42, 36, 115, 97, 44, 36, 104, 50, 45, 36, 121, 115, 104, 105, 102, 116, 43, 88, 42, 36, 115, 97, 43, 89, 42, 36, 99, 97, 41, 41, 39, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 48, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 119, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 52, 61, 61, 50, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 104, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 120, 44, 119, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 61, 61, 45, 51, 50, 55, 54, 55, 44, 121, 44, 104, 45, 49, 45, 105, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 54, 60, 50, 125, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 123, 36, 49, 54, 61, 61, 48, 125, 44, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 36, 49, 53, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 51, 125, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 33, 36, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 100, 114, 111, 115, 116, 101, 32, 36, 42, 32, 45, 101, 108, 115, 101, 32, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 56, 37, 44, 48, 46, 51, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 44, 36, 54, 37, 44, 36, 55, 37, 44, 36, 56, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 53, 37, 44, 36, 54, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 53, 37, 44, 36, 54, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 55, 37, 44, 36, 56, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 55, 37, 44, 36, 56, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 99, 117, 98, 101, 93, 32, 58, 32, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 44, 32, 102, 114, 97, 109, 101, 95, 99, 117, 98, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 102, 116, 32, 115, 105, 100, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 114, 109, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 89, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 89, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 105, 103, 104, 116, 32, 115, 105, 100, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 114, 109, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 89, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 89, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 112, 112, 101, 114, 32, 115, 105, 100, 101, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 114, 109, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 89, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 89, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 119, 101, 114, 32, 115, 105, 100, 101, 114, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 114, 109, 97, 108, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 89, 34, 44, 34, 77, 105, 114, 114, 111, 114, 45, 88, 89, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 44, 32, 65, 110, 103, 101, 108, 111, 32, 76, 97, 109, 97, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 49, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 102, 117, 122, 122, 121, 93, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 44, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 117, 122, 122, 121, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 42, 36, 49, 47, 50, 48, 48, 125, 44, 123, 104, 42, 36, 50, 47, 50, 48, 48, 125, 41, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 102, 114, 97, 109, 101, 95, 102, 117, 122, 122, 121, 91, 45, 50, 93, 32, 64, 45, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 112, 97, 105, 110, 116, 105, 110, 103, 93, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 50, 53, 44, 50, 48, 48, 44, 49, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 101, 99, 116, 115, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 101, 99, 116, 115, 32, 100, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 101, 99, 116, 115, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 101, 99, 116, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 114, 105, 97, 108, 32, 110, 117, 109, 98, 101, 114, 32, 61, 32, 105, 110, 116, 40, 49, 50, 51, 52, 53, 54, 44, 48, 44, 49, 48, 48, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 97, 115, 32, 97, 32, 110, 101, 119, 32, 108, 97, 121, 101, 114, 32, 61, 32, 95, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 54, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 45, 105, 102, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 116, 111, 95, 97, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 114, 97, 109, 101, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 37, 44, 36, 123, 52, 45, 54, 125, 44, 36, 55, 37, 44, 36, 123, 56, 45, 49, 51, 125, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 112, 97, 116, 116, 101, 114, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 44, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 51, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 84, 111, 112, 32, 108, 97, 121, 101, 114, 34, 44, 34, 83, 101, 108, 102, 32, 105, 109, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 115, 116, 114, 97, 105, 110, 32, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 36, 50, 44, 36, 52, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 49, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 114, 101, 103, 117, 108, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 44, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 67, 114, 111, 112, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 116, 97, 114, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 101, 110, 100, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 116, 97, 114, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 101, 110, 100, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 70, 114, 97, 109, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 122, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 51, 37, 44, 36, 50, 37, 44, 36, 52, 37, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 36, 49, 49, 44, 36, 49, 49, 44, 36, 123, 49, 50, 45, 49, 53, 125, 10, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 36, 53, 37, 44, 36, 54, 37, 44, 36, 123, 55, 45, 49, 48, 125, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 97, 109, 101, 32, 91, 114, 111, 117, 110, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 44, 32, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 46, 49, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 102, 114, 97, 109, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 115, 104, 97, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 58, 10, 45, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 36, 123, 49, 45, 56, 125, 10, 45, 105, 102, 32, 36, 57, 32, 45, 102, 114, 97, 109, 101, 95, 98, 108, 117, 114, 32, 36, 49, 44, 123, 109, 105, 110, 40, 57, 57, 44, 36, 49, 43, 36, 57, 41, 125, 44, 36, 51, 44, 36, 49, 48, 44, 36, 49, 49, 37, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 79, 108, 100, 32, 112, 104, 111, 116, 111, 103, 114, 97, 112, 104, 32, 58, 32, 103, 105, 109, 112, 95, 111, 108, 100, 95, 112, 104, 111, 116, 111, 44, 32, 103, 105, 109, 112, 95, 111, 108, 100, 95, 112, 104, 111, 116, 111, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 109, 105, 110, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 109, 97, 120, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 111, 108, 100, 95, 112, 104, 111, 116, 111, 32, 58, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 49, 45, 51, 125, 32, 45, 111, 108, 100, 95, 112, 104, 111, 116, 111, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 108, 97, 114, 111, 105, 100, 32, 58, 32, 103, 105, 109, 112, 95, 112, 111, 108, 97, 114, 111, 105, 100, 44, 32, 103, 105, 109, 112, 95, 112, 111, 108, 97, 114, 111, 105, 100, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 116, 116, 111, 109, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 109, 105, 110, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 109, 97, 120, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 111, 108, 97, 114, 111, 105, 100, 32, 58, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 55, 45, 57, 125, 32, 45, 112, 111, 108, 97, 114, 111, 105, 100, 32, 36, 49, 44, 36, 50, 32, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 51, 37, 44, 36, 52, 37, 44, 36, 53, 37, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 54, 44, 49, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 84, 117, 110, 110, 101, 108, 32, 58, 32, 103, 105, 109, 112, 95, 116, 117, 110, 110, 101, 108, 44, 32, 103, 105, 109, 112, 95, 116, 117, 110, 110, 101, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 49, 44, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 50, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 117, 110, 110, 101, 108, 32, 58, 10, 45, 116, 117, 110, 110, 101, 108, 32, 36, 49, 44, 36, 50, 37, 44, 36, 123, 51, 45, 54, 125, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 103, 110, 101, 116, 116, 101, 32, 58, 32, 103, 105, 109, 112, 95, 118, 105, 103, 110, 101, 116, 116, 101, 44, 32, 103, 105, 109, 112, 95, 118, 105, 103, 110, 101, 116, 116, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 118, 105, 103, 110, 101, 116, 116, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 61, 91, 45, 49, 93, 32, 48, 32, 45, 118, 105, 103, 110, 101, 116, 116, 101, 91, 45, 49, 93, 32, 36, 123, 49, 45, 51, 125, 32, 45, 97, 32, 99, 32, 45, 45, 102, 99, 32, 36, 123, 52, 45, 55, 125, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 76, 97, 121, 101, 114, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 108, 105, 103, 110, 32, 108, 97, 121, 101, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 44, 32, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 105, 103, 110, 109, 101, 110, 116, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 82, 105, 103, 105, 100, 34, 44, 34, 78, 111, 110, 45, 114, 105, 103, 105, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 117, 116, 111, 34, 44, 34, 49, 34, 44, 34, 50, 34, 44, 34, 51, 34, 44, 34, 52, 34, 44, 34, 53, 34, 44, 34, 54, 34, 44, 34, 55, 34, 44, 34, 56, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 52, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 49, 32, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 110, 111, 110, 114, 105, 103, 105, 100, 32, 36, 50, 44, 48, 46, 49, 44, 36, 51, 10, 45, 101, 108, 115, 101, 32, 40, 36, 50, 41, 32, 45, 42, 91, 45, 49, 93, 32, 51, 32, 45, 114, 101, 103, 105, 115, 116, 101, 114, 95, 114, 105, 103, 105, 100, 91, 94, 45, 49, 93, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 108, 105, 103, 110, 95, 108, 97, 121, 101, 114, 115, 32, 36, 49, 44, 36, 50, 44, 48, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 48, 46, 49, 10, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 114, 118, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 97, 118, 101, 114, 97, 103, 101, 32, 97, 108, 108, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 95, 97, 108, 108, 44, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 95, 97, 108, 108, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 116, 97, 107, 101, 115, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 108, 97, 121, 101, 114, 115, 32, 97, 115, 32, 105, 110, 112, 117, 116, 32, 97, 110, 100, 32, 97, 118, 101, 114, 97, 103, 101, 32, 116, 104, 101, 109, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 97, 118, 101, 114, 97, 103, 101, 95, 97, 108, 108, 32, 58, 10, 45, 105, 102, 32, 64, 35, 10, 78, 61, 64, 35, 32, 45, 43, 32, 45, 47, 32, 36, 78, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 101, 100, 103, 101, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 105, 102, 32, 36, 51, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 32, 45, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 44, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 102, 97, 100, 101, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 44, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 49, 44, 34, 67, 117, 115, 116, 111, 109, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 34, 44, 34, 87, 97, 118, 101, 34, 44, 34, 75, 101, 102, 116, 97, 108, 101, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 110, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 92, 110, 60, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 105, 110, 32, 109, 111, 115, 116, 32, 112, 114, 101, 115, 101, 116, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 92, 110, 60, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 101, 32, 102, 111, 114, 109, 117, 108, 97, 32, 98, 101, 108, 111, 119, 32, 105, 115, 32, 117, 115, 101, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 60, 105, 62, 67, 117, 115, 116, 111, 109, 60, 47, 105, 62, 32, 112, 114, 101, 115, 101, 116, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 114, 109, 117, 108, 97, 32, 61, 32, 116, 101, 120, 116, 123, 34, 99, 111, 115, 40, 52, 42, 112, 105, 42, 120, 47, 119, 41, 32, 42, 32, 115, 105, 110, 40, 52, 42, 112, 105, 42, 121, 47, 104, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 52, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 36, 49, 48, 34, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 36, 49, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 123, 45, 40, 64, 35, 45, 50, 41, 42, 36, 51, 125, 44, 123, 40, 64, 35, 45, 50, 41, 42, 40, 49, 43, 36, 51, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 123, 36, 50, 42, 40, 49, 43, 36, 51, 41, 42, 40, 64, 35, 45, 50, 41, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 118, 91, 94, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 49, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 97, 61, 36, 49, 42, 112, 105, 47, 50, 59, 32, 120, 42, 99, 111, 115, 40, 97, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 97, 41, 34, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 50, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 51, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 48, 46, 48, 49, 43, 36, 51, 47, 50, 125, 32, 45, 99, 111, 115, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 102, 97, 100, 101, 52, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 40, 40, 120, 45, 119, 42, 40, 36, 49, 43, 48, 46, 53, 41, 41, 42, 40, 121, 45, 104, 42, 40, 36, 50, 43, 48, 46, 53, 41, 41, 41, 37, 40, 48, 46, 50, 42, 119, 42, 104, 42, 40, 49, 46, 48, 48, 49, 43, 36, 51, 41, 41, 34, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 109, 101, 100, 105, 97, 110, 93, 32, 58, 32, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 44, 32, 98, 108, 101, 110, 100, 95, 109, 101, 100, 105, 97, 110, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 115, 116, 97, 110, 100, 97, 114, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 44, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 100, 100, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 110, 100, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 101, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 109, 101, 114, 103, 101, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 72, 97, 114, 100, 32, 108, 105, 103, 104, 116, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 72, 97, 114, 100, 32, 109, 105, 120, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 105, 110, 101, 97, 114, 32, 98, 117, 114, 110, 34, 44, 34, 76, 105, 110, 101, 97, 114, 32, 108, 105, 103, 104, 116, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 114, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 80, 105, 110, 32, 108, 105, 103, 104, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 48, 34, 44, 34, 83, 111, 102, 116, 32, 98, 117, 114, 110, 34, 44, 34, 83, 111, 102, 116, 32, 100, 111, 100, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 108, 105, 103, 104, 116, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 83, 117, 98, 116, 114, 97, 99, 116, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 86, 105, 118, 105, 100, 32, 108, 105, 103, 104, 116, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 82, 101, 102, 101, 114, 101, 110, 99, 101, 32, 112, 97, 103, 101, 32, 102, 111, 114, 32, 71, 39, 77, 73, 67, 32, 98, 108, 101, 110, 100, 105, 110, 103, 32, 109, 111, 100, 101, 115, 34, 44, 34, 104, 116, 116, 112, 115, 58, 47, 47, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 112, 47, 103, 109, 105, 99, 47, 119, 105, 107, 105, 47, 66, 108, 101, 110, 100, 105, 110, 103, 37, 50, 48, 109, 111, 100, 101, 115, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 32, 58, 10, 109, 111, 100, 101, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 49, 44, 97, 100, 100, 44, 97, 108, 112, 104, 97, 44, 97, 110, 100, 44, 97, 118, 101, 114, 97, 103, 101, 44, 98, 108, 117, 101, 44, 98, 117, 114, 110, 44, 100, 97, 114, 107, 101, 110, 44, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 92, 10, 100, 105, 118, 105, 100, 101, 44, 100, 111, 100, 103, 101, 44, 101, 120, 99, 108, 117, 115, 105, 111, 110, 44, 102, 114, 101, 101, 122, 101, 44, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 44, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 103, 114, 101, 101, 110, 44, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 92, 10, 104, 97, 114, 100, 109, 105, 120, 44, 104, 117, 101, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 108, 105, 103, 104, 116, 101, 110, 44, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 108, 105, 110, 101, 97, 114, 98, 117, 114, 110, 44, 108, 105, 110, 101, 97, 114, 108, 105, 103, 104, 116, 44, 108, 117, 109, 105, 110, 97, 110, 99, 101, 44, 92, 10, 109, 117, 108, 116, 105, 112, 108, 121, 44, 110, 101, 103, 97, 116, 105, 111, 110, 44, 111, 114, 44, 111, 118, 101, 114, 108, 97, 121, 44, 112, 105, 110, 108, 105, 103, 104, 116, 44, 114, 101, 100, 44, 114, 101, 102, 108, 101, 99, 116, 44, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 92, 10, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 44, 115, 111, 102, 116, 98, 117, 114, 110, 44, 115, 111, 102, 116, 100, 111, 100, 103, 101, 44, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 115, 99, 114, 101, 101, 110, 44, 115, 116, 97, 109, 112, 44, 115, 117, 98, 116, 114, 97, 99, 116, 44, 118, 97, 108, 117, 101, 44, 92, 10, 118, 105, 118, 105, 100, 108, 105, 103, 104, 116, 44, 120, 111, 114, 125, 10, 45, 98, 108, 101, 110, 100, 32, 36, 109, 111, 100, 101, 44, 36, 50, 44, 123, 49, 45, 36, 51, 125, 10, 35, 64, 103, 105, 109, 112, 32, 70, 97, 100, 101, 32, 108, 97, 121, 101, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 44, 32, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 45, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 122, 32, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 40, 100, 45, 49, 41, 42, 36, 49, 43, 49, 125, 44, 49, 48, 48, 37, 44, 51, 32, 45, 115, 32, 122, 10, 103, 105, 109, 112, 95, 102, 97, 100, 101, 95, 108, 97, 121, 101, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 43, 32, 45, 47, 32, 50, 10, 35, 64, 103, 105, 109, 112, 32, 70, 97, 115, 116, 32, 77, 101, 100, 105, 97, 110, 32, 83, 116, 97, 99, 107, 32, 58, 32, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 109, 101, 100, 105, 97, 110, 95, 115, 116, 97, 99, 107, 44, 32, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 109, 101, 100, 105, 97, 110, 95, 115, 116, 97, 99, 107, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 103, 105, 118, 101, 115, 32, 116, 104, 101, 32, 109, 101, 100, 105, 97, 110, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 51, 44, 52, 44, 32, 111, 114, 32, 53, 32, 105, 109, 97, 103, 101, 115, 32, 97, 116, 32, 101, 97, 99, 104, 32, 112, 105, 120, 101, 108, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 97, 110, 100, 32, 116, 104, 101, 114, 101, 102, 111, 114, 101, 32, 60, 98, 62, 114, 101, 113, 117, 105, 114, 101, 115, 32, 51, 44, 52, 44, 32, 111, 114, 32, 53, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 115, 60, 47, 98, 62, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 85, 112, 100, 97, 116, 101, 32, 56, 32, 77, 97, 114, 99, 104, 32, 50, 48, 49, 51, 32, 45, 32, 67, 111, 109, 98, 105, 110, 101, 100, 32, 60, 105, 62, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 60, 47, 105, 62, 32, 105, 110, 116, 111, 32, 116, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 44, 32, 97, 100, 100, 101, 100, 32, 60, 105, 62, 109, 101, 100, 105, 97, 110, 95, 52, 95, 115, 116, 97, 99, 107, 60, 47, 105, 62, 32, 97, 110, 100, 32, 97, 100, 100, 101, 100, 32, 97, 117, 116, 111, 45, 115, 101, 108, 101, 99, 116, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 115, 46, 60, 47, 115, 109, 97, 108, 108, 62, 32, 34, 41, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 109, 101, 100, 105, 97, 110, 95, 115, 116, 97, 99, 107, 58, 10, 108, 97, 121, 101, 114, 115, 61, 123, 64, 35, 125, 10, 45, 105, 102, 32, 123, 36, 108, 97, 121, 101, 114, 115, 61, 61, 51, 125, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 10, 45, 101, 108, 105, 102, 32, 123, 36, 108, 97, 121, 101, 114, 115, 61, 61, 52, 125, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 52, 95, 115, 116, 97, 99, 107, 10, 45, 101, 108, 105, 102, 32, 123, 36, 108, 97, 121, 101, 114, 115, 61, 61, 53, 125, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 10, 45, 101, 108, 115, 101, 10, 45, 101, 110, 100, 105, 102, 10, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 58, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 107, 101, 101, 112, 91, 50, 44, 51, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 50, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 51, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 52, 95, 115, 116, 97, 99, 107, 58, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 51, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 51, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 51, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 51, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 51, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 51, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 51, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 51, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 51, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 51, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 50, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 50, 93, 10, 45, 97, 100, 100, 10, 45, 109, 117, 108, 32, 48, 46, 53, 10, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 58, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 52, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 76, 97, 121, 101, 114, 115, 32, 116, 111, 32, 116, 105, 108, 101, 115, 32, 58, 32, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 114, 32, 98, 111, 116, 104, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 44, 32, 60, 105, 62, 48, 60, 47, 105, 62, 32, 109, 101, 97, 110, 115, 32, 60, 105, 62, 97, 117, 116, 111, 109, 97, 116, 105, 99, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 114, 112, 104, 32, 108, 97, 121, 101, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 45, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 32, 58, 10, 45, 105, 102, 32, 36, 123, 52, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 109, 111, 114, 112, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 108, 105, 116, 32, 116, 111, 110, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 44, 32, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 116, 111, 110, 101, 115, 32, 36, 49, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 42, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 111, 110, 101, 115, 32, 36, 49, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 101, 115, 32, 116, 111, 32, 108, 97, 121, 101, 114, 115, 32, 58, 32, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 44, 32, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 109, 111, 103, 101, 110, 101, 111, 117, 115, 32, 116, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 58, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 107, 91, 53, 48, 37, 93, 10, 35, 64, 103, 105, 109, 112, 32, 84, 114, 97, 110, 115, 102, 101, 114, 32, 99, 111, 108, 111, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 44, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 102, 101, 114, 32, 98, 114, 105, 103, 104, 110, 101, 115, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 101, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 116, 104, 101, 32, 116, 97, 114, 103, 101, 116, 32, 99, 111, 108, 111, 114, 115, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 36, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 95, 100, 105, 102, 102, 44, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 95, 100, 105, 102, 102, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 113, 117, 101, 32, 112, 105, 120, 101, 108, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 70, 114, 111, 109, 32, 49, 115, 116, 32, 108, 97, 121, 101, 114, 34, 44, 34, 70, 114, 111, 109, 32, 50, 110, 100, 32, 108, 97, 121, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 112, 105, 120, 101, 108, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 70, 114, 111, 109, 32, 115, 97, 109, 101, 32, 118, 97, 108, 117, 101, 115, 34, 44, 34, 70, 114, 111, 109, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 118, 97, 108, 117, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 95, 100, 105, 102, 102, 32, 58, 10, 45, 105, 102, 32, 36, 123, 53, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 105, 102, 32, 36, 51, 10, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 50, 93, 32, 45, 98, 91, 45, 50, 93, 32, 36, 50, 37, 32, 45, 103, 101, 91, 45, 50, 93, 32, 36, 49, 37, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 37, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 76, 105, 103, 104, 116, 115, 32, 38, 97, 109, 112, 59, 32, 83, 104, 97, 100, 111, 119, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 117, 114, 110, 32, 58, 32, 103, 105, 109, 112, 95, 98, 117, 114, 110, 44, 32, 103, 105, 109, 112, 95, 98, 117, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 110, 111, 114, 109, 10, 45, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 91, 45, 49, 93, 32, 48, 10, 45, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 48, 44, 123, 36, 104, 45, 49, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 37, 10, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 40, 36, 119, 45, 119, 41, 47, 50, 125, 44, 123, 40, 36, 104, 45, 104, 41, 47, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 91, 45, 49, 93, 32, 49, 10, 45, 98, 108, 101, 110, 100, 32, 111, 118, 101, 114, 108, 97, 121, 44, 36, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 36, 123, 49, 45, 51, 125, 34, 44, 36, 52, 44, 49, 10, 103, 105, 109, 112, 95, 98, 117, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 117, 114, 110, 32, 36, 123, 94, 48, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 115, 119, 105, 115, 115, 32, 109, 97, 115, 107, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 44, 32, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 116, 104, 101, 32, 109, 97, 115, 107, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 53, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 67, 111, 110, 116, 114, 97, 115, 116, 32, 77, 97, 115, 107, 32, 110, 101, 101, 100, 32, 116, 104, 101, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 115, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 116, 111, 32, 117, 115, 101, 32, 116, 104, 101, 32, 109, 97, 115, 107, 32, 116, 111, 32, 98, 111, 111, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 85, 110, 99, 104, 101, 99, 107, 32, 102, 111, 114, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 77, 97, 115, 107, 44, 67, 104, 101, 99, 107, 32, 102, 111, 114, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 66, 111, 111, 115, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 101, 114, 103, 101, 32, 116, 104, 101, 32, 77, 97, 115, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 47, 49, 32, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 56, 54, 52, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 110, 116, 114, 97, 115, 116, 95, 115, 119, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 49, 93, 32, 36, 49, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 36, 51, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 111, 100, 103, 101, 32, 97, 110, 100, 32, 66, 117, 114, 110, 32, 58, 32, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 98, 117, 114, 110, 44, 32, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 98, 117, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 111, 100, 103, 105, 110, 103, 32, 97, 110, 100, 32, 98, 117, 114, 110, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 111, 100, 103, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 111, 100, 103, 101, 32, 98, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 115, 32, 97, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 117, 114, 110, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 117, 114, 110, 32, 98, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 100, 118, 97, 110, 118, 101, 100, 58, 32, 111, 117, 116, 112, 117, 116, 32, 100, 111, 100, 103, 101, 32, 97, 110, 100, 32, 98, 117, 114, 110, 32, 108, 97, 121, 101, 114, 32, 115, 101, 112, 97, 114, 97, 116, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 108, 97, 121, 101, 114, 115, 32, 115, 101, 112, 101, 114, 97, 116, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 108, 97, 121, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 100, 111, 100, 103, 101, 32, 97, 110, 100, 32, 98, 117, 114, 110, 32, 108, 97, 121, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 50, 47, 49, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 98, 117, 114, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 45, 102, 99, 91, 48, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 48, 44, 36, 50, 44, 52, 44, 48, 44, 123, 49, 48, 48, 45, 36, 49, 125, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 49, 93, 32, 49, 44, 49, 44, 123, 45, 123, 50, 53, 54, 45, 36, 51, 125, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 52, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 48, 44, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 114, 118, 91, 49, 44, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 91, 49, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 36, 54, 44, 52, 44, 36, 53, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 50, 53, 54, 45, 36, 55, 125, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 56, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 48, 44, 49, 93, 32, 45, 101, 108, 115, 101, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 49, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 48, 61, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 98, 117, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 98, 117, 114, 110, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 114, 111, 112, 32, 115, 104, 97, 100, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 44, 32, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 114, 118, 97, 116, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 114, 110, 101, 114, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 49, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 58, 10, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 123, 50, 53, 53, 42, 36, 53, 125, 44, 56, 48, 44, 57, 53, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 10, 45, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 54, 44, 49, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 68, 114, 111, 112, 32, 115, 104, 97, 100, 111, 119, 32, 51, 100, 32, 58, 32, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 44, 32, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 111, 110, 108, 121, 32, 115, 104, 97, 100, 111, 119, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 48, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 10, 45, 101, 108, 115, 101, 32, 45, 45, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 36, 42, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 100, 114, 111, 112, 95, 115, 104, 97, 100, 111, 119, 51, 100, 32, 58, 10, 45, 112, 111, 105, 110, 116, 51, 100, 32, 48, 44, 48, 44, 49, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 51, 10, 117, 61, 123, 105, 40, 48, 44, 56, 41, 125, 32, 118, 61, 123, 105, 40, 48, 44, 57, 41, 125, 32, 119, 61, 123, 105, 40, 48, 44, 49, 48, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 97, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 48, 48, 37, 32, 45, 105, 102, 32, 123, 105, 109, 61, 61, 105, 77, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 102, 32, 39, 88, 61, 120, 47, 119, 45, 48, 46, 53, 59, 89, 61, 121, 47, 104, 45, 48, 46, 53, 59, 65, 61, 40, 36, 55, 45, 36, 52, 42, 36, 55, 47, 49, 48, 48, 41, 42, 36, 119, 47, 40, 88, 42, 36, 117, 43, 89, 42, 36, 118, 43, 36, 55, 42, 36, 119, 41, 59, 105, 102, 40, 65, 60, 48, 44, 49, 101, 56, 44, 65, 41, 39, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 121, 47, 104, 45, 48, 46, 53, 39, 32, 45, 42, 91, 45, 50, 93, 32, 39, 120, 47, 119, 45, 48, 46, 53, 39, 32, 45, 43, 91, 45, 50, 93, 32, 123, 48, 46, 53, 45, 36, 53, 47, 49, 48, 48, 125, 32, 45, 43, 91, 45, 49, 93, 32, 123, 48, 46, 53, 45, 36, 54, 47, 49, 48, 48, 125, 32, 45, 42, 91, 45, 50, 93, 32, 123, 119, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 104, 125, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 32, 36, 56, 37, 32, 45, 110, 32, 48, 44, 36, 49, 50, 32, 45, 105, 91, 45, 50, 93, 32, 40, 36, 57, 94, 36, 49, 48, 94, 36, 49, 49, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 35, 64, 103, 105, 109, 112, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 115, 104, 97, 100, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 44, 32, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 70, 114, 97, 110, 99, 111, 105, 115, 32, 71, 114, 97, 115, 115, 97, 114, 100, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 98, 108, 101, 110, 100, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 36, 49, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 115, 104, 97, 100, 111, 119, 32, 36, 49, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 103, 104, 116, 32, 103, 108, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 44, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 56, 44, 34, 66, 117, 114, 110, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 109, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 108, 105, 103, 104, 116, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 111, 102, 116, 32, 108, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 50, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 58, 10, 109, 111, 100, 101, 61, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 36, 51, 44, 98, 117, 114, 110, 44, 100, 111, 100, 103, 101, 44, 102, 114, 101, 101, 122, 101, 44, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 108, 105, 103, 104, 116, 101, 110, 44, 109, 117, 108, 116, 105, 112, 108, 121, 44, 111, 118, 101, 114, 108, 97, 121, 44, 114, 101, 102, 108, 101, 99, 116, 44, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 115, 116, 97, 109, 112, 44, 118, 97, 108, 117, 101, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 49, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 94, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 101, 110, 100, 32, 36, 109, 111, 100, 101, 44, 36, 49, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 103, 108, 111, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 103, 104, 116, 32, 112, 97, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 108, 105, 103, 104, 116, 95, 112, 97, 116, 99, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 34, 44, 36, 52, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 103, 104, 116, 32, 114, 97, 121, 115, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 114, 97, 121, 115, 44, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 114, 97, 121, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 49, 47, 48, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 58, 10, 45, 108, 105, 103, 104, 116, 114, 97, 121, 115, 32, 36, 123, 49, 45, 53, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 91, 36, 62, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 123, 64, 123, 36, 62, 44, 115, 125, 43, 40, 64, 123, 36, 62, 44, 115, 125, 37, 50, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 108, 105, 101, 102, 32, 108, 105, 103, 104, 116, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 44, 32, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 98, 105, 101, 110, 116, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 97, 115, 32, 98, 117, 109, 112, 109, 97, 112, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 109, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 58, 10, 45, 98, 32, 36, 49, 49, 37, 32, 45, 108, 105, 103, 104, 116, 95, 114, 101, 108, 105, 101, 102, 32, 36, 123, 49, 45, 49, 48, 125, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 100, 111, 119, 32, 112, 97, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 104, 97, 100, 111, 119, 95, 112, 97, 116, 99, 104, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 80, 97, 116, 116, 101, 114, 110, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 97, 121, 101, 114, 32, 102, 105, 108, 116, 101, 114, 32, 58, 32, 114, 103, 98, 50, 98, 97, 121, 101, 114, 44, 32, 114, 103, 98, 50, 98, 97, 121, 101, 114, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 116, 116, 101, 114, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 82, 101, 100, 45, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 45, 71, 114, 101, 101, 110, 34, 44, 34, 71, 114, 101, 101, 110, 45, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 45, 66, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 66, 111, 120, 32, 102, 105, 116, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 83, 101, 116, 32, 60, 105, 62, 77, 97, 120, 105, 109, 97, 108, 32, 115, 105, 122, 101, 60, 47, 105, 62, 32, 116, 111, 32, 60, 105, 62, 48, 60, 47, 105, 62, 32, 116, 111, 32, 97, 108, 108, 111, 119, 32, 97, 110, 121, 32, 115, 105, 122, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 115, 113, 117, 97, 114, 101, 115, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 105, 116, 105, 97, 108, 32, 100, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 104, 105, 103, 104, 108, 121, 32, 105, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 119, 111, 114, 107, 32, 111, 102, 32, 74, 97, 114, 101, 100, 32, 84, 97, 114, 98, 101, 108, 108, 44, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 112, 97, 103, 101, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 110, 107, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 99, 111, 109, 112, 108, 101, 120, 105, 102, 105, 99, 97, 116, 105, 111, 110, 46, 110, 101, 116, 47, 103, 97, 108, 108, 101, 114, 121, 47, 109, 97, 99, 104, 105, 110, 101, 115, 47, 98, 111, 120, 70, 105, 116, 116, 105, 110, 103, 73, 109, 103, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 58, 10, 45, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 36, 123, 49, 45, 51, 125, 44, 51, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 98, 111, 120, 102, 105, 116, 116, 105, 110, 103, 32, 36, 123, 49, 45, 51, 125, 44, 49, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 110, 118, 97, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 44, 32, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 70, 105, 114, 115, 116, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 48, 44, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 101, 99, 111, 110, 100, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 58, 32, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 115, 101, 99, 111, 110, 100, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 51, 53, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 48, 44, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 52, 10, 40, 123, 99, 111, 115, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 40, 123, 99, 111, 115, 40, 36, 54, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 54, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 50, 93, 32, 36, 55, 32, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 45, 101, 108, 115, 101, 10, 40, 123, 99, 111, 115, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 36, 50, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 32, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 51, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 97, 110, 118, 97, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 110, 118, 97, 115, 32, 116, 101, 120, 116, 117, 114, 101, 32, 58, 32, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 44, 32, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 109, 98, 111, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 67, 108, 111, 117, 100, 115, 32, 58, 32, 106, 101, 106, 101, 95, 99, 108, 111, 117, 100, 115, 44, 32, 106, 101, 106, 101, 95, 99, 108, 111, 117, 100, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 99, 108, 111, 117, 100, 115, 32, 58, 10, 45, 45, 99, 108, 111, 117, 100, 115, 32, 36, 49, 37, 44, 49, 44, 36, 50, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 106, 101, 106, 101, 95, 99, 108, 111, 117, 100, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 106, 101, 106, 101, 95, 99, 108, 111, 117, 100, 115, 32, 36, 49, 44, 36, 50, 10, 35, 64, 103, 105, 109, 112, 32, 67, 114, 97, 99, 107, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 44, 32, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 56, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 108, 105, 101, 102, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 99, 114, 97, 99, 107, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 114, 97, 99, 107, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 111, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 100, 111, 116, 115, 44, 32, 103, 105, 109, 112, 95, 100, 111, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 110, 99, 105, 108, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 32, 38, 32, 87, 104, 105, 116, 101, 34, 44, 34, 82, 71, 66, 34, 44, 34, 67, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 111, 116, 115, 32, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 36, 54, 32, 45, 42, 32, 45, 49, 32, 45, 43, 32, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 32, 99, 32, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 45, 100, 111, 116, 115, 98, 119, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 42, 91, 48, 93, 32, 45, 49, 32, 45, 43, 91, 48, 93, 32, 50, 53, 53, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 100, 111, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 97, 108, 102, 116, 111, 110, 101, 32, 58, 32, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 44, 32, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 60, 115, 109, 97, 108, 108, 62, 73, 109, 97, 103, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 60, 115, 109, 97, 108, 108, 62, 72, 97, 108, 102, 116, 111, 110, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 102, 111, 114, 32, 100, 97, 114, 107, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 102, 111, 114, 32, 98, 114, 105, 103, 104, 116, 32, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 53, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 68, 105, 97, 109, 111, 110, 100, 34, 44, 34, 67, 105, 114, 99, 108, 101, 34, 44, 34, 83, 113, 117, 97, 114, 101, 32, 40, 105, 110, 118, 46, 41, 34, 44, 34, 68, 105, 97, 109, 111, 110, 100, 32, 40, 105, 110, 118, 46, 41, 34, 44, 34, 67, 105, 114, 99, 108, 101, 32, 40, 105, 110, 118, 46, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 50, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 32, 45, 45, 32, 49, 50, 56, 32, 45, 42, 32, 36, 50, 32, 45, 43, 32, 49, 50, 56, 32, 45, 43, 32, 36, 51, 32, 45, 98, 32, 36, 52, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 104, 97, 108, 102, 116, 111, 110, 101, 91, 48, 93, 32, 36, 123, 53, 45, 57, 125, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 108, 102, 116, 111, 110, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 101, 97, 114, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 44, 32, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 104, 101, 97, 114, 116, 115, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 101, 97, 114, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 97, 118, 97, 32, 58, 32, 103, 105, 109, 112, 95, 108, 97, 118, 97, 44, 32, 103, 105, 109, 112, 95, 108, 97, 118, 97, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 114, 116, 117, 114, 98, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 56, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 32, 58, 10, 45, 110, 111, 114, 109, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 49, 44, 123, 49, 54, 45, 36, 49, 125, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 50, 44, 48, 44, 49, 44, 36, 51, 44, 36, 51, 44, 48, 46, 56, 44, 57, 48, 32, 45, 42, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 32, 45, 109, 97, 112, 32, 51, 10, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 52, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 108, 97, 118, 97, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 114, 98, 108, 101, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 114, 98, 108, 101, 44, 32, 103, 105, 109, 112, 95, 109, 97, 114, 98, 108, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 109, 97, 103, 101, 32, 119, 101, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 53, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 119, 101, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 52, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 104, 105, 103, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 114, 101, 98, 101, 110, 32, 83, 111, 101, 98, 101, 114, 103, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 114, 98, 108, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 109, 97, 114, 98, 108, 101, 32, 36, 49, 47, 49, 48, 44, 36, 50, 47, 49, 48, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 37, 44, 36, 49, 48, 37, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 77, 105, 110, 101, 114, 97, 108, 32, 109, 111, 115, 97, 105, 99, 32, 58, 32, 100, 116, 95, 109, 105, 110, 101, 114, 97, 108, 95, 109, 111, 115, 97, 105, 99, 44, 100, 116, 95, 109, 105, 110, 101, 114, 97, 108, 95, 109, 111, 115, 97, 105, 99, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 101, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 101, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 100, 116, 95, 109, 105, 110, 101, 114, 97, 108, 95, 109, 111, 115, 97, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 98, 32, 36, 51, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 97, 114, 101, 97, 91, 45, 49, 93, 32, 48, 32, 45, 45, 108, 101, 91, 45, 49, 93, 32, 123, 36, 50, 94, 50, 125, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 10, 45, 45, 102, 91, 48, 93, 32, 39, 105, 102, 40, 99, 61, 61, 48, 44, 120, 44, 121, 41, 39, 32, 45, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 49, 44, 49, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 48, 44, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 97, 108, 112, 104, 97, 61, 123, 36, 53, 42, 112, 105, 47, 49, 56, 48, 125, 32, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 123, 99, 111, 115, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 115, 105, 110, 40, 36, 97, 108, 112, 104, 97, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 43, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 52, 44, 36, 52, 10, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 115, 97, 105, 99, 32, 58, 32, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 44, 32, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 101, 100, 103, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 111, 115, 97, 105, 99, 32, 36, 49, 44, 36, 50, 34, 44, 36, 51, 44, 48, 10, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 111, 115, 97, 105, 99, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 97, 99, 107, 32, 115, 112, 114, 105, 116, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 105, 109, 97, 108, 32, 115, 99, 97, 108, 101, 32, 91, 37, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 108, 111, 119, 32, 97, 110, 103, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 48, 32, 100, 101, 103, 46, 34, 44, 34, 49, 56, 48, 32, 100, 101, 103, 46, 34, 44, 34, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 65, 110, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 99, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 49, 44, 45, 49, 54, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 32, 109, 97, 115, 107, 105, 110, 103, 34, 44, 34, 77, 97, 115, 107, 32, 97, 115, 32, 98, 111, 116, 116, 111, 109, 32, 108, 97, 121, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 53, 49, 50, 44, 51, 50, 44, 50, 48, 52, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 105, 110, 116, 40, 53, 49, 50, 44, 51, 50, 44, 50, 48, 52, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 115, 58, 60, 47, 98, 62, 92, 110, 32, 45, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 60, 105, 62, 87, 105, 100, 116, 104, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 72, 101, 105, 103, 104, 116, 60, 47, 105, 62, 32, 97, 114, 101, 32, 99, 111, 110, 115, 105, 100, 101, 114, 101, 100, 32, 111, 110, 108, 121, 32, 119, 104, 101, 110, 32, 60, 105, 62, 78, 111, 32, 109, 97, 115, 107, 105, 110, 103, 60, 47, 105, 62, 32, 109, 111, 100, 101, 32, 105, 115, 32, 115, 101, 108, 101, 99, 116, 101, 100, 46, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 45, 32, 83, 101, 116, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 115, 112, 114, 105, 116, 101, 115, 32, 111, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 112, 97, 99, 107, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 115, 112, 114, 105, 116, 101, 115, 32, 97, 116, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 116, 105, 109, 101, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 54, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 77, 97, 115, 107, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 116, 32, 108, 101, 97, 115, 116, 32, 116, 119, 111, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 33, 32, 40, 112, 108, 101, 97, 115, 101, 32, 99, 104, 101, 99, 107, 32, 116, 104, 97, 116, 32, 39, 73, 110, 112, 117, 116, 32, 76, 97, 121, 101, 114, 115, 39, 32, 105, 115, 32, 99, 111, 114, 114, 101, 99, 116, 108, 121, 32, 115, 101, 116, 41, 46, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 91, 48, 45, 45, 50, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 45, 52, 44, 48, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 91, 48, 45, 45, 50, 93, 32, 36, 123, 49, 45, 53, 125, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 32, 99, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 109, 111, 118, 101, 95, 101, 109, 112, 116, 121, 32, 45, 105, 91, 48, 93, 32, 36, 55, 44, 36, 56, 44, 49, 44, 53, 32, 45, 112, 97, 99, 107, 95, 115, 112, 114, 105, 116, 101, 115, 32, 36, 123, 49, 45, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 44, 64, 123, 48, 44, 115, 45, 50, 125, 10, 35, 64, 103, 105, 109, 112, 32, 80, 97, 112, 101, 114, 32, 116, 101, 120, 116, 117, 114, 101, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 44, 32, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 112, 97, 112, 101, 114, 34, 44, 36, 49, 44, 48, 10, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 112, 101, 114, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 114, 105, 111, 100, 105, 99, 32, 100, 111, 116, 115, 58, 32, 106, 101, 106, 101, 95, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 44, 32, 106, 101, 106, 101, 95, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 61, 32, 105, 110, 116, 40, 54, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 49, 44, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 112, 101, 97, 116, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 112, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 78, 111, 110, 101, 44, 100, 101, 102, 97, 117, 108, 116, 44, 72, 83, 86, 44, 108, 105, 110, 101, 115, 44, 104, 111, 116, 44, 99, 111, 111, 108, 44, 106, 101, 116, 44, 102, 108, 97, 103, 44, 99, 117, 98, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 58, 10, 116, 87, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 47, 36, 52, 125, 10, 36, 116, 87, 44, 36, 116, 87, 10, 45, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 91, 45, 49, 93, 32, 36, 42, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 52, 42, 36, 52, 45, 49, 125, 10, 45, 105, 32, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 49, 45, 45, 49, 93, 32, 36, 52, 44, 36, 52, 32, 45, 107, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 62, 48, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 32, 123, 36, 53, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 106, 101, 106, 101, 95, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 106, 101, 106, 101, 95, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 32, 36, 42, 10, 35, 64, 103, 105, 109, 112, 32, 80, 108, 97, 105, 100, 32, 58, 32, 103, 105, 109, 112, 95, 112, 108, 97, 105, 100, 95, 116, 101, 120, 116, 117, 114, 101, 44, 103, 105, 109, 112, 95, 112, 108, 97, 105, 100, 95, 116, 101, 120, 116, 117, 114, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 110, 103, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 108, 97, 105, 100, 95, 116, 101, 120, 116, 117, 114, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 61, 123, 115, 125, 10, 45, 114, 111, 119, 115, 32, 36, 49, 37, 10, 45, 98, 32, 36, 53, 37, 32, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 54, 10, 45, 114, 101, 115, 105, 122, 101, 32, 36, 119, 44, 36, 104, 44, 49, 44, 36, 115, 44, 50, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 36, 51, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 50, 45, 49, 125, 32, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 123, 36, 51, 43, 36, 52, 42, 40, 36, 62, 43, 49, 41, 47, 40, 36, 50, 45, 49, 41, 125, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 47, 32, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 32, 83, 101, 97, 109, 108, 101, 115, 115, 32, 100, 101, 99, 111, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 100, 95, 114, 111, 114, 115, 99, 104, 97, 114, 99, 104, 112, 44, 103, 105, 109, 112, 95, 109, 97, 100, 95, 114, 111, 114, 115, 99, 104, 97, 114, 99, 104, 112, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 32, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 32, 78, 101, 103, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 105, 120, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 32, 34, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 34, 44, 32, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 32, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 78, 101, 97, 116, 32, 77, 101, 114, 103, 101, 34, 44, 34, 76, 105, 103, 104, 116, 121, 32, 83, 109, 111, 111, 116, 104, 34, 44, 34, 68, 114, 101, 97, 109, 34, 44, 34, 77, 111, 111, 100, 121, 34, 32, 34, 83, 111, 102, 116, 34, 44, 34, 78, 97, 105, 102, 34, 44, 34, 68, 97, 114, 107, 32, 66, 111, 111, 115, 116, 34, 44, 34, 87, 104, 105, 116, 101, 110, 105, 110, 103, 34, 44, 34, 32, 78, 111, 110, 101, 45, 32, 83, 107, 105, 112, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 34, 78, 111, 45, 83, 107, 105, 112, 34, 44, 32, 88, 89, 32, 77, 105, 114, 114, 111, 114, 34, 44, 34, 32, 50, 88, 89, 32, 77, 105, 114, 114, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 87, 65, 82, 78, 73, 78, 71, 44, 34, 69, 120, 112, 97, 110, 100, 105, 110, 103, 32, 77, 105, 114, 114, 111, 114, 115, 34, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 120, 52, 32, 111, 114, 32, 105, 102, 32, 34, 50, 88, 89, 32, 77, 105, 114, 114, 111, 114, 115, 34, 32, 120, 57, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 105, 110, 103, 32, 77, 105, 114, 114, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 100, 95, 114, 111, 114, 115, 99, 104, 97, 114, 99, 104, 112, 32, 58, 10, 45, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 53, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 112, 108, 97, 105, 100, 95, 116, 101, 120, 116, 117, 114, 101, 32, 36, 51, 44, 50, 44, 48, 44, 57, 48, 44, 36, 52, 44, 36, 53, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 54, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 56, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 50, 44, 54, 44, 53, 44, 50, 48, 44, 48, 44, 48, 46, 54, 50, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 56, 44, 49, 46, 57, 50, 44, 48, 44, 48, 44, 49, 50, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 49, 46, 50, 56, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 44, 49, 52, 46, 54, 53, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 44, 51, 54, 46, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 44, 49, 46, 57, 51, 44, 48, 44, 48, 44, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 57, 53, 44, 50, 46, 56, 57, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 54, 44, 51, 54, 46, 49, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 54, 44, 51, 46, 54, 44, 48, 44, 48, 44, 49, 49, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 50, 46, 49, 54, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 51, 125, 32, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 57, 48, 51, 54, 49, 44, 51, 46, 54, 49, 52, 52, 54, 44, 48, 44, 49, 44, 49, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 57, 53, 49, 56, 49, 44, 50, 46, 49, 54, 56, 54, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 57, 50, 55, 55, 49, 44, 48, 44, 48, 44, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 51, 55, 51, 52, 57, 52, 44, 50, 46, 56, 57, 49, 53, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 48, 50, 52, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 51, 50, 53, 51, 44, 48, 44, 48, 44, 49, 50, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 49, 46, 50, 56, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 48, 50, 52, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 57, 50, 55, 55, 49, 44, 48, 44, 48, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 57, 53, 49, 56, 48, 55, 44, 49, 46, 57, 50, 55, 55, 49, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 57, 48, 51, 54, 49, 44, 51, 46, 54, 49, 52, 52, 54, 44, 48, 44, 49, 44, 49, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 57, 53, 49, 56, 49, 44, 50, 46, 49, 54, 56, 54, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 48, 44, 48, 44, 50, 44, 48, 44, 36, 57, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 48, 44, 48, 44, 51, 44, 48, 44, 36, 57, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 111, 110, 103, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 44, 32, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 51, 44, 51, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 115, 112, 111, 110, 103, 101, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 112, 111, 110, 103, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 97, 105, 110, 101, 100, 32, 103, 108, 97, 115, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 44, 32, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 110, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 52, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 54, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 55, 32, 45, 43, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 56, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 97, 112, 112, 101, 110, 100, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 97, 105, 110, 101, 100, 95, 103, 108, 97, 115, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 44, 32, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 110, 99, 105, 108, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 32, 38, 32, 87, 104, 105, 116, 101, 34, 44, 34, 82, 71, 66, 34, 44, 34, 67, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 32, 58, 10, 45, 118, 32, 45, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 115, 116, 101, 110, 99, 105, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 115, 116, 101, 110, 99, 105, 108, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 108, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 109, 111, 111, 116, 104, 32, 123, 51, 48, 42, 36, 52, 125, 44, 48, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 116, 101, 110, 99, 105, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 32, 83, 121, 109, 109, 101, 116, 114, 121, 32, 77, 97, 115, 116, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 118, 105, 114, 97, 108, 44, 103, 105, 109, 112, 95, 118, 105, 114, 97, 108, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 120, 101, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 32, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 32, 78, 101, 103, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 105, 120, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 32, 34, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 34, 44, 32, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 32, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 32, 80, 114, 101, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 78, 101, 97, 116, 32, 77, 101, 114, 103, 101, 34, 44, 34, 76, 105, 103, 104, 116, 121, 32, 83, 109, 111, 111, 116, 104, 34, 44, 34, 68, 114, 101, 97, 109, 34, 44, 34, 77, 111, 111, 100, 121, 34, 44, 34, 83, 111, 102, 116, 34, 44, 34, 78, 97, 105, 102, 34, 44, 34, 68, 97, 114, 107, 32, 66, 111, 111, 115, 116, 34, 44, 34, 87, 104, 105, 116, 101, 110, 105, 110, 103, 34, 44, 34, 32, 78, 111, 110, 101, 45, 32, 83, 107, 105, 112, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 34, 78, 111, 45, 83, 107, 105, 112, 34, 44, 32, 88, 89, 32, 77, 105, 114, 114, 111, 114, 34, 44, 34, 32, 50, 88, 89, 32, 77, 105, 114, 114, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 87, 65, 82, 78, 73, 78, 71, 44, 34, 69, 120, 112, 97, 110, 100, 105, 110, 103, 32, 77, 105, 114, 114, 111, 114, 115, 34, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 105, 109, 97, 103, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 120, 52, 32, 111, 114, 32, 105, 102, 32, 34, 50, 88, 89, 32, 77, 105, 114, 114, 111, 114, 115, 34, 32, 120, 57, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 105, 110, 103, 32, 77, 105, 114, 114, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 118, 105, 114, 97, 108, 32, 58, 10, 45, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 44, 49, 44, 49, 10, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 53, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 49, 44, 49, 44, 48, 46, 56, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 50, 44, 54, 44, 53, 44, 50, 48, 44, 48, 44, 48, 46, 54, 50, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 56, 44, 49, 46, 57, 50, 44, 48, 44, 48, 44, 49, 50, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 49, 46, 50, 56, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 44, 49, 52, 46, 54, 53, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 44, 51, 54, 46, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 44, 49, 46, 57, 51, 44, 48, 44, 48, 44, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 57, 53, 44, 50, 46, 56, 57, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 54, 44, 51, 54, 46, 49, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 54, 44, 51, 46, 54, 44, 48, 44, 48, 44, 49, 49, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 50, 46, 49, 54, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 51, 125, 32, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 57, 48, 51, 54, 49, 44, 51, 46, 54, 49, 52, 52, 54, 44, 48, 44, 49, 44, 49, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 57, 53, 49, 56, 49, 44, 50, 46, 49, 54, 56, 54, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 48, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 57, 50, 55, 55, 49, 44, 48, 44, 48, 44, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 51, 55, 51, 52, 57, 52, 44, 50, 46, 56, 57, 49, 53, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 48, 50, 52, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 51, 50, 53, 51, 44, 48, 44, 48, 44, 49, 50, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 44, 49, 46, 50, 56, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 48, 54, 48, 50, 52, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 56, 53, 53, 52, 50, 50, 44, 49, 46, 57, 50, 55, 55, 49, 44, 48, 44, 48, 44, 55, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 57, 53, 49, 56, 48, 55, 44, 49, 46, 57, 50, 55, 55, 49, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 110, 111, 118, 101, 108, 102, 120, 108, 32, 49, 44, 55, 46, 50, 50, 56, 57, 50, 44, 49, 52, 46, 54, 53, 48, 54, 44, 53, 44, 50, 48, 44, 48, 44, 49, 46, 53, 57, 48, 51, 54, 44, 51, 54, 46, 49, 52, 52, 54, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 53, 57, 48, 51, 54, 49, 44, 51, 46, 54, 49, 52, 52, 54, 44, 48, 44, 49, 44, 49, 56, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 55, 57, 53, 49, 56, 49, 44, 50, 46, 49, 54, 56, 54, 55, 44, 49, 46, 50, 53, 44, 50, 44, 48, 44, 48, 46, 49, 53, 44, 49, 52, 44, 48, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 50, 44, 48, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 46, 53, 44, 48, 46, 52, 53, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 48, 44, 48, 44, 50, 44, 48, 44, 36, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 32, 49, 44, 48, 44, 48, 44, 51, 44, 48, 44, 36, 54, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 116, 114, 105, 115, 32, 58, 32, 103, 105, 109, 112, 95, 116, 101, 116, 114, 105, 115, 44, 32, 103, 105, 109, 112, 95, 116, 101, 116, 114, 105, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 101, 116, 114, 105, 115, 32, 58, 10, 45, 116, 101, 116, 114, 105, 115, 32, 36, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 44, 32, 103, 105, 109, 112, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 56, 44, 49, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 99, 116, 97, 118, 101, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 49, 44, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 109, 112, 105, 110, 103, 32, 112, 101, 114, 32, 111, 99, 116, 97, 118, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 109, 105, 120, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 84, 117, 114, 98, 117, 108, 101, 110, 99, 101, 34, 44, 34, 84, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 50, 34, 44, 34, 70, 114, 97, 99, 116, 97, 108, 32, 78, 111, 105, 115, 101, 34, 44, 34, 70, 114, 97, 99, 116, 117, 114, 101, 100, 32, 67, 108, 111, 117, 100, 115, 34, 44, 34, 83, 116, 97, 114, 100, 117, 115, 116, 34, 44, 34, 80, 101, 97, 32, 83, 111, 117, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 114, 101, 98, 101, 110, 32, 83, 111, 101, 98, 101, 114, 103, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 36, 123, 94, 48, 125, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 87, 101, 97, 118, 101, 32, 58, 32, 119, 101, 97, 118, 101, 44, 32, 119, 101, 97, 118, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 54, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 101, 114, 115, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 101, 114, 115, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 48, 32, 100, 101, 103, 46, 34, 44, 34, 50, 50, 46, 53, 32, 100, 101, 103, 46, 34, 44, 34, 52, 53, 32, 100, 101, 103, 46, 34, 44, 34, 54, 55, 46, 53, 32, 100, 101, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 87, 104, 105, 114, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 44, 32, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 55, 44, 51, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 56, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 119, 104, 105, 114, 108, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 119, 104, 105, 114, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 99, 111, 108, 111, 114, 101, 100, 32, 111, 98, 106, 101, 99, 116, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 49, 44, 34, 80, 108, 97, 110, 101, 34, 44, 34, 66, 111, 120, 34, 44, 34, 80, 121, 114, 97, 109, 105, 100, 34, 44, 34, 69, 108, 108, 105, 112, 115, 111, 105, 100, 34, 44, 34, 84, 111, 114, 117, 115, 34, 44, 34, 71, 121, 114, 111, 105, 100, 34, 44, 34, 87, 101, 105, 114, 100, 34, 44, 34, 67, 117, 112, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 45, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 45, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 45, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 53, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 36, 49, 36, 50, 32, 36, 123, 54, 45, 56, 125, 32, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 36, 123, 51, 45, 53, 125, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 123, 49, 45, 52, 44, 54, 45, 56, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 44, 36, 54, 44, 36, 123, 57, 45, 45, 49, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 53, 47, 50, 53, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 36, 62, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 123, 49, 45, 52, 44, 54, 45, 56, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 64, 123, 36, 62, 44, 119, 125, 44, 64, 123, 36, 62, 44, 104, 125, 44, 36, 54, 44, 36, 123, 57, 45, 45, 49, 125, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 53, 47, 50, 53, 53, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 36, 62, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 48, 32, 58, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 49, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 50, 32, 58, 32, 45, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 49, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 51, 125, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 123, 36, 50, 47, 50, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 50, 52, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 51, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 49, 50, 56, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 48, 32, 58, 32, 45, 112, 108, 97, 110, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 49, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 50, 32, 58, 32, 45, 112, 121, 114, 97, 109, 105, 100, 51, 100, 32, 49, 44, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 49, 44, 123, 50, 42, 36, 50, 125, 44, 123, 50, 42, 36, 51, 125, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 123, 36, 50, 47, 50, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 51, 44, 48, 46, 53, 44, 48, 46, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 56, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 49, 50, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 95, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 101, 100, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 54, 52, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 44, 32, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 65, 100, 100, 32, 97, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 111, 98, 106, 101, 99, 116, 32, 116, 101, 120, 116, 117, 114, 101, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 45, 110, 111, 114, 109, 32, 45, 101, 108, 115, 101, 32, 45, 114, 91, 49, 93, 32, 91, 48, 93, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 49, 93, 32, 48, 44, 36, 49, 32, 45, 98, 91, 49, 93, 32, 36, 50, 10, 45, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 91, 48, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 49, 10, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 49, 45, 50, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 51, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 49, 45, 50, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 53, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 101, 120, 116, 114, 117, 115, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 44, 32, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 49, 50, 44, 49, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 65, 100, 100, 32, 97, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 111, 98, 106, 101, 99, 116, 32, 116, 101, 120, 116, 117, 114, 101, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 101, 120, 116, 114, 117, 100, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 49, 45, 51, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 52, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 49, 45, 51, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 105, 109, 97, 103, 101, 32, 111, 98, 106, 101, 99, 116, 32, 58, 32, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 44, 32, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 49, 44, 34, 80, 108, 97, 110, 101, 34, 44, 34, 67, 117, 98, 101, 34, 44, 34, 80, 121, 114, 97, 109, 105, 100, 34, 44, 34, 83, 112, 104, 101, 114, 101, 34, 44, 34, 84, 111, 114, 117, 115, 34, 44, 34, 71, 121, 114, 111, 105, 100, 34, 44, 34, 87, 101, 105, 114, 100, 34, 44, 34, 67, 117, 112, 34, 44, 34, 82, 117, 98, 105, 107, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 36, 49, 36, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 50, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 119, 44, 36, 104, 44, 36, 123, 52, 45, 45, 49, 125, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 48, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 49, 32, 58, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 50, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 51, 32, 58, 32, 45, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 54, 52, 44, 51, 50, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 50, 52, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 51, 50, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 49, 50, 56, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 56, 32, 58, 32, 45, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 53, 44, 53, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 48, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 49, 32, 58, 32, 45, 105, 109, 97, 103, 101, 99, 117, 98, 101, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 50, 32, 58, 32, 45, 105, 109, 97, 103, 101, 112, 121, 114, 97, 109, 105, 100, 51, 100, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 51, 32, 58, 32, 45, 105, 109, 97, 103, 101, 115, 112, 104, 101, 114, 101, 51, 100, 32, 49, 54, 44, 56, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 52, 32, 58, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 49, 48, 48, 44, 51, 48, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 53, 32, 58, 32, 45, 103, 121, 114, 111, 105, 100, 51, 100, 32, 56, 32, 45, 99, 51, 100, 91, 45, 49, 93, 32, 45, 110, 51, 100, 91, 45, 49, 93, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 54, 32, 58, 32, 45, 119, 101, 105, 114, 100, 51, 100, 32, 49, 50, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 55, 32, 58, 32, 45, 99, 117, 112, 51, 100, 32, 54, 52, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 95, 56, 32, 58, 32, 45, 105, 109, 97, 103, 101, 114, 117, 98, 105, 107, 51, 100, 32, 51, 44, 51, 44, 53, 44, 53, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 108, 97, 116, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 44, 32, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 55, 54, 44, 49, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 49, 44, 48, 44, 51, 54, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 32, 65, 100, 100, 32, 97, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 111, 98, 106, 101, 99, 116, 32, 116, 101, 120, 116, 117, 114, 101, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 95, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 47, 50, 125, 32, 45, 108, 91, 36, 62, 44, 123, 109, 105, 110, 40, 36, 62, 43, 49, 44, 64, 35, 45, 49, 41, 125, 93, 10, 45, 108, 97, 116, 104, 101, 51, 100, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 37, 44, 36, 51, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 50, 125, 32, 45, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 100, 98, 51, 100, 32, 48, 10, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 36, 123, 49, 45, 51, 125, 32, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 123, 52, 45, 45, 49, 125, 10, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 97, 116, 104, 105, 110, 103, 51, 100, 32, 36, 123, 49, 45, 51, 125, 44, 123, 119, 125, 44, 123, 104, 125, 44, 36, 123, 54, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 114, 97, 110, 100, 111, 109, 32, 111, 98, 106, 101, 99, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 44, 32, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 98, 101, 34, 44, 34, 67, 111, 110, 101, 34, 44, 34, 67, 121, 108, 105, 110, 100, 101, 114, 34, 44, 34, 83, 112, 104, 101, 114, 101, 34, 44, 34, 84, 111, 114, 117, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 49, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 114, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 102, 51, 100, 61, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 53, 42, 112, 105, 47, 51, 54, 48, 41, 125, 32, 45, 102, 51, 100, 32, 36, 102, 51, 100, 32, 45, 108, 51, 100, 32, 123, 36, 54, 42, 36, 102, 51, 100, 125, 44, 123, 36, 55, 42, 36, 102, 51, 100, 125, 44, 123, 36, 56, 42, 36, 102, 51, 100, 125, 32, 45, 115, 108, 51, 100, 32, 36, 57, 32, 45, 115, 115, 51, 100, 32, 36, 49, 48, 10, 45, 116, 111, 95, 114, 103, 98, 32, 40, 123, 119, 125, 44, 123, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 40, 64, 123, 49, 44, 48, 125, 41, 32, 45, 43, 91, 45, 49, 93, 32, 64, 123, 49, 44, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 36, 51, 32, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 32, 45, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 36, 49, 32, 64, 45, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 49, 44, 48, 44, 123, 63, 40, 48, 44, 51, 54, 48, 41, 125, 10, 40, 123, 63, 40, 45, 49, 44, 49, 41, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 49, 44, 48, 125, 32, 40, 123, 63, 40, 45, 49, 44, 49, 41, 125, 41, 32, 45, 42, 91, 45, 49, 93, 32, 64, 123, 49, 44, 49, 125, 10, 45, 43, 51, 100, 91, 45, 51, 93, 32, 64, 45, 50, 44, 64, 45, 49, 44, 123, 63, 40, 45, 36, 52, 44, 36, 52, 41, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 123, 63, 40, 50, 53, 53, 41, 125, 44, 123, 63, 40, 50, 53, 53, 41, 125, 44, 123, 63, 40, 50, 53, 53, 41, 125, 32, 45, 100, 111, 110, 101, 32, 45, 43, 51, 100, 91, 50, 45, 45, 49, 93, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 36, 49, 50, 44, 36, 49, 49, 44, 48, 44, 49, 10, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 48, 32, 58, 32, 45, 98, 111, 120, 51, 100, 32, 36, 49, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 49, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 99, 111, 110, 101, 51, 100, 32, 64, 45, 49, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 50, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 99, 121, 108, 105, 110, 100, 101, 114, 51, 100, 32, 64, 45, 49, 44, 36, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 51, 32, 58, 32, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 36, 49, 44, 50, 10, 95, 103, 105, 109, 112, 95, 114, 97, 110, 100, 111, 109, 51, 100, 52, 32, 58, 32, 40, 36, 49, 41, 32, 45, 47, 91, 45, 49, 93, 32, 51, 32, 45, 116, 111, 114, 117, 115, 51, 100, 32, 36, 49, 44, 64, 45, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 35, 64, 103, 105, 109, 112, 32, 69, 113, 117, 97, 116, 105, 111, 110, 32, 112, 108, 111, 116, 32, 58, 32, 103, 105, 109, 112, 95, 101, 113, 117, 97, 116, 105, 111, 110, 95, 112, 108, 111, 116, 44, 32, 103, 105, 109, 112, 95, 101, 113, 117, 97, 116, 105, 111, 110, 95, 112, 108, 111, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 113, 117, 97, 116, 105, 111, 110, 32, 61, 32, 116, 101, 120, 116, 123, 34, 88, 42, 99, 43, 49, 48, 42, 99, 111, 115, 40, 88, 43, 99, 43, 63, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 105, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 97, 120, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 50, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 108, 111, 116, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 78, 111, 110, 101, 34, 44, 34, 76, 105, 110, 101, 115, 34, 44, 34, 83, 112, 108, 105, 110, 101, 115, 34, 44, 34, 66, 97, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 101, 120, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 101, 34, 44, 34, 80, 111, 105, 110, 116, 115, 34, 44, 34, 67, 114, 111, 115, 115, 101, 115, 32, 49, 34, 44, 34, 67, 114, 111, 115, 115, 101, 115, 32, 50, 34, 44, 34, 67, 105, 114, 99, 108, 101, 115, 32, 49, 34, 44, 34, 67, 105, 114, 99, 108, 101, 115, 32, 50, 34, 44, 34, 83, 113, 117, 97, 114, 101, 32, 49, 34, 44, 34, 83, 113, 117, 97, 114, 101, 32, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 60, 47, 98, 62, 32, 58, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 88, 39, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 39, 120, 39, 32, 105, 110, 32, 116, 104, 101, 32, 101, 113, 117, 97, 116, 105, 111, 110, 32, 116, 111, 32, 116, 97, 107, 101, 32, 99, 97, 114, 101, 32, 111, 102, 32, 88, 45, 109, 105, 110, 47, 109, 97, 120, 32, 115, 101, 116, 116, 105, 110, 103, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 98, 108, 101, 32, 39, 99, 39, 32, 114, 101, 102, 101, 114, 115, 32, 116, 111, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 99, 104, 97, 110, 110, 101, 108, 32, 110, 117, 109, 98, 101, 114, 46, 32, 82, 101, 100, 117, 99, 101, 32, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 116, 111, 32, 98, 101, 32, 97, 98, 108, 101, 32, 116, 111, 32, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 97, 114, 97, 116, 101, 32, 103, 114, 97, 112, 104, 32, 118, 101, 114, 116, 105, 99, 101, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 101, 113, 117, 97, 116, 105, 111, 110, 95, 112, 108, 111, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 36, 52, 44, 49, 44, 49, 44, 36, 53, 44, 34, 88, 61, 36, 50, 43, 40, 36, 51, 45, 36, 50, 41, 42, 120, 47, 40, 36, 52, 45, 49, 41, 59, 36, 49, 34, 10, 45, 100, 103, 32, 36, 119, 44, 36, 104, 44, 36, 54, 44, 36, 55, 44, 36, 50, 44, 36, 51, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 91, 99, 111, 114, 110, 101, 114, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 44, 32, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 49, 32, 40, 117, 112, 47, 108, 101, 102, 116, 32, 99, 111, 114, 110, 101, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 50, 32, 40, 117, 112, 47, 114, 105, 103, 104, 116, 32, 99, 111, 114, 110, 101, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 51, 32, 40, 98, 111, 116, 116, 111, 109, 47, 108, 101, 102, 116, 32, 99, 111, 114, 110, 101, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 52, 32, 40, 98, 111, 116, 116, 111, 109, 47, 114, 105, 103, 104, 116, 32, 99, 111, 114, 110, 101, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 44, 36, 53, 59, 36, 57, 44, 36, 49, 51, 94, 36, 50, 44, 36, 54, 59, 36, 49, 48, 44, 36, 49, 52, 94, 36, 51, 44, 36, 55, 59, 36, 49, 49, 44, 36, 49, 53, 94, 36, 52, 44, 36, 56, 59, 36, 49, 50, 44, 36, 49, 54, 41, 32, 45, 114, 91, 45, 49, 93, 32, 64, 45, 50, 44, 49, 44, 52, 44, 51, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 91, 108, 105, 110, 101, 97, 114, 93, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 44, 32, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 115, 116, 97, 114, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 101, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 10, 45, 105, 102, 32, 36, 57, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 45, 51, 32, 45, 114, 109, 91, 45, 51, 93, 10, 45, 102, 97, 100, 101, 95, 108, 105, 110, 101, 97, 114, 32, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 91, 114, 97, 100, 105, 97, 108, 93, 32, 58, 32, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 44, 32, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 115, 116, 97, 114, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 101, 32, 101, 110, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 40, 123, 119, 125, 44, 123, 104, 125, 41, 32, 45, 114, 109, 91, 45, 50, 93, 10, 40, 36, 49, 94, 36, 50, 94, 36, 51, 94, 36, 52, 41, 32, 40, 36, 53, 94, 36, 54, 94, 36, 55, 94, 36, 56, 41, 10, 45, 105, 102, 32, 36, 57, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 64, 45, 51, 32, 45, 114, 109, 91, 45, 51, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 36, 49, 50, 37, 44, 36, 49, 51, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 95, 102, 97, 100, 101, 32, 36, 49, 48, 44, 36, 49, 49, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 48, 57, 54, 44, 50, 44, 56, 49, 57, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 123, 119, 125, 44, 123, 104, 125, 10, 45, 102, 51, 100, 32, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 108, 105, 115, 115, 97, 106, 111, 117, 115, 51, 100, 32, 36, 49, 44, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 57, 44, 36, 55, 44, 36, 49, 48, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 49, 51, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 49, 50, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 49, 49, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 53, 42, 36, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 48, 46, 53, 42, 36, 51, 42, 64, 123, 45, 50, 44, 104, 125, 125, 44, 123, 48, 46, 53, 42, 36, 52, 42, 109, 97, 120, 40, 64, 123, 45, 50, 44, 119, 125, 44, 64, 123, 45, 50, 44, 104, 125, 41, 125, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 52, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 54, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 55, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 56, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 47, 32, 74, 117, 108, 105, 97, 32, 115, 101, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 44, 32, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 101, 110, 116, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 49, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 99, 116, 97, 108, 32, 115, 101, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 77, 97, 110, 100, 101, 108, 98, 114, 111, 116, 44, 32, 74, 117, 108, 105, 97, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 101, 101, 100, 32, 40, 74, 117, 108, 105, 97, 41, 32, 61, 32, 116, 101, 120, 116, 40, 34, 48, 46, 51, 49, 55, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 101, 101, 100, 32, 40, 74, 117, 108, 105, 97, 41, 32, 61, 32, 116, 101, 120, 116, 40, 34, 48, 46, 48, 51, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 49, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 50, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 51, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 52, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 58, 10, 40, 48, 94, 48, 94, 48, 41, 32, 40, 36, 56, 94, 36, 57, 94, 36, 49, 48, 41, 32, 40, 36, 49, 49, 94, 36, 49, 50, 94, 36, 49, 51, 41, 32, 40, 36, 49, 52, 94, 36, 49, 53, 94, 36, 49, 54, 41, 32, 40, 36, 49, 55, 94, 36, 49, 56, 94, 36, 49, 57, 41, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 52, 44, 49, 44, 49, 44, 51, 44, 51, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 36, 119, 104, 10, 45, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 91, 45, 49, 93, 32, 123, 36, 49, 45, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 50, 45, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 49, 43, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 123, 36, 50, 43, 50, 47, 40, 49, 43, 36, 51, 41, 125, 44, 36, 52, 44, 36, 53, 44, 123, 105, 102, 40, 36, 53, 44, 36, 54, 44, 48, 41, 125, 44, 123, 105, 102, 40, 36, 53, 44, 36, 55, 44, 48, 41, 125, 10, 45, 109, 97, 112, 91, 45, 49, 93, 32, 91, 48, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 97, 110, 100, 101, 108, 98, 114, 111, 116, 32, 36, 123, 94, 48, 125, 10, 45, 108, 105, 110, 101, 32, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 53, 48, 37, 44, 48, 46, 53, 44, 50, 53, 53, 10, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 48, 46, 53, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 122, 101, 32, 58, 32, 103, 105, 109, 112, 95, 109, 97, 122, 101, 44, 32, 103, 105, 109, 112, 95, 109, 97, 122, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 108, 108, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 82, 101, 110, 100, 101, 114, 32, 111, 110, 32, 100, 97, 114, 107, 32, 97, 114, 101, 97, 115, 34, 44, 34, 82, 101, 110, 100, 101, 114, 32, 111, 110, 32, 119, 104, 105, 116, 101, 32, 97, 114, 101, 97, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 105, 109, 97, 103, 101, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 122, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 68, 97, 114, 107, 32, 119, 97, 108, 108, 115, 34, 44, 34, 87, 104, 105, 116, 101, 32, 119, 97, 108, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 57, 47, 48, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 97, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 114, 91, 45, 49, 93, 32, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 123, 49, 48, 48, 47, 36, 49, 125, 37, 44, 49, 44, 49, 48, 48, 37, 44, 50, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 102, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 97, 122, 101, 95, 109, 97, 115, 107, 91, 45, 49, 93, 32, 36, 49, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 50, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 80, 108, 97, 115, 109, 97, 32, 58, 32, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 44, 32, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 101, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 110, 100, 111, 109, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 50, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 105, 102, 32, 36, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 101, 108, 115, 101, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 114, 97, 110, 100, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 108, 97, 115, 109, 97, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 108, 107, 97, 32, 100, 111, 116, 115, 32, 58, 32, 103, 105, 109, 112, 95, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 44, 32, 103, 105, 109, 112, 95, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 46, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 114, 115, 116, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 99, 111, 110, 100, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 46, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 112, 111, 108, 107, 97, 95, 100, 111, 116, 115, 32, 123, 36, 49, 42, 36, 50, 47, 49, 48, 48, 125, 44, 36, 123, 50, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 81, 117, 105, 99, 107, 32, 99, 111, 112, 121, 114, 105, 103, 104, 116, 32, 58, 32, 103, 105, 109, 112, 95, 113, 117, 105, 99, 107, 95, 99, 111, 112, 121, 114, 105, 103, 104, 116, 44, 32, 103, 105, 109, 112, 95, 113, 117, 105, 99, 107, 95, 99, 111, 112, 121, 114, 105, 103, 104, 116, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 120, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 92, 50, 53, 49, 32, 71, 39, 77, 73, 67, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 49, 51, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 108, 105, 110, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 85, 112, 45, 108, 101, 102, 116, 34, 44, 34, 85, 112, 45, 114, 105, 103, 104, 116, 34, 44, 34, 66, 111, 116, 116, 111, 109, 45, 108, 101, 102, 116, 34, 44, 34, 66, 111, 116, 116, 111, 109, 45, 114, 105, 103, 104, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 45, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 48, 32, 100, 101, 103, 46, 34, 44, 34, 43, 57, 48, 32, 100, 101, 103, 46, 34, 44, 34, 43, 49, 56, 48, 32, 100, 101, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 113, 117, 105, 99, 107, 95, 99, 111, 112, 121, 114, 105, 103, 104, 116, 32, 58, 10, 45, 105, 91, 48, 93, 32, 48, 32, 45, 116, 91, 48, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 48, 93, 32, 48, 32, 45, 114, 91, 48, 93, 32, 123, 64, 123, 48, 44, 119, 125, 43, 50, 42, 36, 55, 125, 44, 123, 64, 123, 48, 44, 104, 125, 43, 50, 42, 36, 55, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 91, 49, 93, 32, 48, 32, 45, 116, 91, 49, 93, 32, 34, 36, 49, 34, 44, 48, 44, 48, 44, 36, 50, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 49, 93, 32, 48, 32, 45, 114, 91, 49, 93, 32, 123, 64, 123, 49, 44, 119, 125, 43, 50, 42, 36, 55, 125, 44, 123, 64, 123, 49, 44, 104, 125, 43, 50, 42, 36, 55, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 100, 105, 108, 97, 116, 101, 91, 49, 93, 32, 123, 49, 43, 50, 42, 36, 55, 125, 10, 45, 114, 111, 116, 97, 116, 101, 91, 48, 44, 49, 93, 32, 123, 57, 48, 42, 40, 36, 49, 48, 45, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 57, 44, 36, 57, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 119, 45, 49, 45, 64, 123, 48, 44, 119, 125, 45, 36, 57, 125, 44, 36, 57, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 36, 57, 44, 123, 104, 45, 49, 45, 64, 123, 48, 44, 104, 125, 45, 36, 57, 125, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 106, 91, 45, 49, 93, 32, 91, 48, 93, 44, 123, 119, 45, 49, 45, 64, 123, 48, 44, 119, 125, 45, 36, 57, 125, 44, 123, 104, 45, 49, 45, 64, 123, 48, 44, 104, 125, 45, 36, 57, 125, 44, 48, 44, 48, 44, 123, 36, 54, 47, 50, 53, 53, 125, 44, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 50, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 105, 110, 98, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 114, 97, 105, 110, 98, 111, 119, 44, 32, 103, 105, 109, 112, 95, 114, 97, 105, 110, 98, 111, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 102, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 105, 103, 104, 116, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 102, 116, 32, 115, 108, 111, 112, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 55, 53, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 105, 103, 104, 116, 32, 115, 108, 111, 112, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 55, 53, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 110, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 46, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 97, 105, 110, 98, 111, 119, 32, 58, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 48, 10, 45, 115, 112, 108, 105, 110, 101, 32, 48, 44, 36, 49, 37, 44, 49, 48, 48, 44, 123, 45, 36, 51, 125, 37, 44, 49, 48, 48, 37, 44, 36, 50, 37, 44, 49, 48, 48, 44, 36, 52, 37, 44, 50, 53, 54, 44, 49, 44, 49, 10, 45, 102, 108, 111, 111, 100, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 32, 45, 102, 108, 111, 111, 100, 32, 123, 119, 45, 49, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 123, 36, 53, 42, 50, 53, 53, 125, 10, 45, 114, 97, 105, 110, 98, 111, 119, 95, 108, 117, 116, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 109, 105, 110, 40, 49, 48, 48, 44, 50, 48, 48, 45, 36, 54, 41, 125, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 109, 97, 112, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 54, 60, 49, 48, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 115, 104, 91, 36, 62, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 54, 47, 49, 48, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 32, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 44, 32, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 52, 48, 48, 44, 48, 44, 51, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 48, 49, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 58, 10, 45, 99, 111, 108, 111, 114, 95, 101, 108, 108, 105, 112, 115, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 35, 64, 103, 105, 109, 112, 32, 82, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 44, 32, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 101, 34, 44, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 44, 34, 120, 121, 45, 97, 120, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 110, 99, 105, 108, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 66, 108, 97, 99, 107, 32, 38, 32, 87, 104, 105, 116, 101, 34, 44, 34, 82, 71, 66, 34, 44, 34, 67, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 110, 111, 114, 109, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 37, 44, 36, 50, 32, 45, 42, 32, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 32, 36, 49, 37, 44, 36, 50, 32, 45, 42, 32, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 45, 110, 111, 114, 109, 32, 45, 114, 111, 114, 115, 99, 104, 97, 99, 104, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 101, 97, 109, 108, 101, 115, 115, 32, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 101, 97, 109, 108, 101, 115, 115, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 44, 32, 103, 105, 109, 112, 95, 115, 101, 97, 109, 108, 101, 115, 115, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 118, 105, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 52, 47, 48, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 101, 97, 109, 108, 101, 115, 115, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 32, 45, 114, 109, 10, 36, 119, 104, 44, 49, 44, 123, 105, 102, 40, 36, 54, 44, 51, 44, 49, 41, 125, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 36, 119, 104, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 45, 36, 52, 42, 49, 48, 42, 112, 105, 125, 44, 123, 36, 51, 42, 112, 105, 47, 49, 56, 48, 43, 36, 52, 42, 49, 48, 42, 112, 105, 125, 32, 45, 45, 115, 105, 110, 91, 45, 49, 93, 32, 45, 99, 111, 115, 91, 45, 50, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 49, 51, 48, 37, 44, 49, 51, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 50, 32, 45, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 10, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 49, 44, 48, 46, 53, 44, 50, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 36, 119, 104, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 49, 125, 32, 105, 97, 61, 123, 105, 97, 125, 32, 45, 45, 32, 36, 105, 97, 32, 45, 42, 32, 36, 53, 32, 45, 43, 32, 36, 105, 97, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 100, 101, 32, 98, 111, 98, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 44, 32, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 111, 98, 115, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 48, 48, 44, 49, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 108, 111, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 117, 114, 118, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 120, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 44, 45, 51, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 45, 51, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 122, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 51, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 45, 51, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 99, 120, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 51, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 109, 97, 112, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 56, 44, 34, 71, 114, 97, 121, 115, 99, 97, 108, 101, 34, 44, 34, 83, 116, 97, 110, 100, 97, 114, 100, 34, 44, 34, 72, 83, 86, 34, 44, 34, 76, 105, 110, 101, 115, 34, 44, 34, 72, 111, 116, 34, 44, 34, 67, 111, 111, 108, 34, 44, 34, 74, 101, 116, 34, 44, 34, 70, 108, 97, 103, 34, 44, 34, 67, 117, 98, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 52, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 104, 97, 100, 101, 98, 111, 98, 115, 32, 58, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 116, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 114, 61, 123, 36, 54, 43, 36, 53, 42, 99, 111, 115, 40, 54, 42, 36, 55, 42, 36, 116, 41, 43, 40, 49, 45, 36, 53, 41, 42, 115, 105, 110, 40, 54, 42, 36, 56, 42, 36, 116, 41, 125, 10, 97, 61, 123, 40, 51, 54, 48, 42, 115, 105, 110, 40, 36, 55, 42, 36, 116, 41, 43, 51, 48, 42, 36, 54, 42, 36, 62, 41, 42, 112, 105, 47, 49, 56, 48, 125, 10, 97, 120, 61, 123, 50, 42, 36, 62, 42, 112, 105, 47, 36, 49, 43, 36, 116, 125, 10, 99, 120, 61, 123, 40, 49, 43, 36, 57, 42, 99, 111, 115, 40, 36, 97, 120, 41, 43, 36, 114, 42, 99, 111, 115, 40, 36, 97, 41, 41, 42, 119, 47, 50, 125, 10, 99, 121, 61, 123, 40, 49, 43, 36, 57, 42, 115, 105, 110, 40, 36, 97, 120, 41, 43, 36, 114, 42, 115, 105, 110, 40, 36, 97, 41, 41, 42, 104, 47, 50, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 120, 44, 36, 99, 121, 44, 36, 50, 37, 44, 36, 50, 37, 44, 48, 44, 45, 49, 44, 49, 10, 45, 100, 111, 110, 101, 10, 116, 61, 123, 36, 116, 43, 36, 52, 47, 49, 48, 48, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 110, 100, 32, 50, 53, 53, 32, 45, 105, 102, 32, 36, 49, 48, 32, 45, 109, 97, 112, 32, 123, 36, 49, 48, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 83, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 44, 32, 103, 105, 109, 112, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 99, 117, 114, 115, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 115, 105, 101, 114, 112, 105, 110, 115, 107, 105, 91, 45, 49, 93, 32, 36, 123, 49, 45, 55, 125, 10, 45, 45, 102, 99, 91, 45, 50, 93, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 49, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 44, 32, 103, 105, 109, 112, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 99, 117, 114, 115, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 114, 100, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 115, 110, 111, 119, 102, 108, 97, 107, 101, 32, 36, 123, 49, 45, 49, 49, 125, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 97, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 115, 116, 97, 114, 115, 44, 32, 103, 105, 109, 112, 95, 115, 116, 97, 114, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 97, 110, 99, 104, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 56, 44, 48, 46, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 116, 97, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 10, 45, 115, 116, 97, 114, 115, 32, 36, 49, 37, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 37, 44, 36, 123, 55, 45, 57, 125, 44, 123, 36, 49, 48, 47, 50, 53, 53, 125, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 58, 32, 103, 105, 109, 112, 95, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 44, 32, 103, 105, 109, 112, 95, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 48, 57, 54, 44, 50, 44, 56, 49, 57, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 109, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 51, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 45, 51, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 45, 51, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 56, 44, 50, 53, 53, 44, 49, 50, 56, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 123, 119, 125, 44, 123, 104, 125, 10, 45, 102, 51, 100, 32, 123, 48, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 116, 97, 110, 40, 36, 52, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 115, 117, 112, 101, 114, 102, 111, 114, 109, 117, 108, 97, 51, 100, 32, 36, 49, 44, 36, 123, 52, 45, 55, 125, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 49, 48, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 57, 32, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 56, 10, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 53, 42, 36, 50, 42, 64, 123, 45, 50, 44, 119, 125, 125, 44, 123, 48, 46, 53, 42, 36, 51, 42, 64, 123, 45, 50, 44, 104, 125, 125, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 49, 49, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 48, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 50, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 49, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 50, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 52, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 53, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 84, 114, 117, 99, 104, 101, 116, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 117, 99, 104, 101, 116, 44, 32, 103, 105, 109, 112, 95, 116, 114, 117, 99, 104, 101, 116, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 83, 116, 114, 97, 105, 103, 104, 116, 34, 44, 34, 67, 117, 114, 118, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 122, 101, 32, 114, 97, 110, 100, 111, 109, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 48, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 117, 99, 104, 101, 116, 32, 58, 10, 45, 105, 102, 32, 36, 54, 32, 45, 116, 111, 95, 97, 32, 45, 101, 108, 115, 101, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 114, 117, 99, 104, 101, 116, 32, 36, 49, 44, 36, 50, 44, 36, 52, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 48, 44, 49, 32, 123, 105, 77, 43, 49, 125, 44, 49, 44, 49, 44, 51, 32, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 32, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 36, 53, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 105, 102, 32, 36, 53, 32, 119, 105, 100, 116, 104, 61, 36, 53, 32, 45, 101, 108, 115, 101, 32, 119, 105, 100, 116, 104, 61, 123, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 104, 101, 105, 103, 104, 116, 61, 36, 54, 32, 45, 101, 108, 115, 101, 32, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 52, 32, 45, 115, 91, 45, 49, 93, 32, 120, 44, 50, 32, 45, 101, 108, 115, 101, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 36, 49, 91, 45, 50, 93, 32, 36, 50, 32, 45, 36, 49, 91, 45, 49, 93, 32, 36, 51, 10, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 123, 109, 97, 120, 40, 119, 44, 64, 123, 45, 50, 44, 119, 125, 41, 125, 44, 123, 109, 97, 120, 40, 104, 44, 64, 123, 45, 50, 44, 104, 125, 41, 125, 44, 49, 44, 49, 48, 48, 37, 44, 51, 10, 45, 105, 102, 32, 123, 33, 36, 52, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 50, 93, 32, 48, 44, 53, 48, 37, 32, 45, 99, 111, 108, 117, 109, 110, 115, 91, 45, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 49, 44, 49, 48, 48, 37, 44, 50, 32, 45, 100, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 83, 116, 97, 114, 116, 34, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 69, 110, 100, 34, 44, 123, 119, 45, 50, 51, 125, 44, 123, 104, 45, 49, 54, 125, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 82, 101, 112, 97, 105, 114, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 97, 110, 100, 105, 110, 103, 32, 100, 101, 110, 111, 105, 115, 101, 58, 32, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 44, 32, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 118, 32, 67, 117, 116, 111, 102, 102, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 32, 67, 117, 116, 111, 102, 102, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 50, 32, 45, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 32, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 49, 93, 10, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 45, 49, 93, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 48, 44, 123, 40, 104, 47, 50, 41, 43, 49, 125, 44, 123, 53, 48, 45, 36, 49, 125, 37, 44, 123, 40, 104, 47, 50, 41, 43, 49, 125, 44, 123, 53, 48, 45, 36, 49, 125, 37, 44, 123, 40, 104, 47, 50, 41, 45, 49, 125, 44, 48, 44, 123, 40, 104, 47, 50, 41, 45, 49, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 123, 53, 48, 43, 36, 49, 125, 37, 44, 123, 40, 104, 47, 50, 41, 43, 49, 125, 44, 123, 119, 125, 44, 123, 40, 104, 47, 50, 41, 43, 49, 125, 44, 123, 119, 125, 44, 123, 40, 104, 47, 50, 41, 45, 49, 125, 44, 123, 53, 48, 43, 36, 49, 125, 37, 44, 123, 40, 104, 47, 50, 41, 45, 49, 125, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 123, 40, 119, 47, 50, 41, 43, 49, 125, 44, 48, 44, 123, 40, 119, 47, 50, 41, 43, 49, 125, 44, 123, 53, 48, 45, 36, 50, 125, 37, 44, 123, 40, 119, 47, 50, 41, 45, 49, 125, 44, 123, 53, 48, 45, 36, 50, 125, 37, 44, 123, 40, 119, 47, 50, 41, 45, 49, 125, 44, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 50, 93, 32, 52, 44, 123, 40, 119, 47, 50, 41, 45, 49, 125, 44, 123, 104, 125, 44, 123, 40, 119, 47, 50, 41, 43, 49, 125, 44, 123, 104, 125, 44, 123, 40, 119, 47, 50, 41, 43, 49, 125, 44, 123, 53, 48, 43, 36, 50, 125, 37, 44, 123, 40, 119, 47, 50, 41, 45, 49, 125, 44, 123, 53, 48, 43, 36, 50, 125, 37, 10, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 45, 49, 44, 45, 50, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 10, 9, 45, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 123, 49, 45, 45, 49, 125, 10, 45, 101, 108, 115, 101, 10, 9, 45, 45, 98, 97, 110, 100, 105, 110, 103, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 123, 49, 45, 45, 49, 125, 10, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 49, 93, 10, 9, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 53, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 66, 97, 121, 101, 114, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 58, 32, 98, 97, 121, 101, 114, 50, 114, 103, 98, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 47, 77, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 47, 66, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 40, 112, 114, 105, 110, 99, 105, 112, 97, 108, 41, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 47, 66, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 40, 115, 101, 99, 111, 110, 100, 97, 114, 121, 41, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 32, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 44, 32, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 103, 111, 114, 105, 116, 104, 109, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 83, 116, 97, 110, 100, 97, 114, 100, 34, 44, 34, 77, 111, 116, 105, 111, 110, 45, 99, 111, 109, 112, 101, 110, 115, 97, 116, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 58, 10, 45, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 48, 32, 45, 115, 107, 105, 112, 32, 36, 123, 94, 48, 125, 10, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 110, 111, 105, 115, 101, 32, 91, 66, 108, 111, 99, 107, 32, 80, 67, 65, 93, 58, 32, 106, 101, 106, 101, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 44, 32, 106, 101, 106, 101, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 52, 44, 56, 44, 49, 54, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 121, 99, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 49, 44, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 105, 120, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 113, 117, 105, 116, 101, 32, 116, 105, 109, 101, 32, 99, 111, 110, 115, 117, 109, 105, 110, 103, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 58, 10, 45, 45, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 32, 123, 50, 94, 40, 36, 49, 43, 50, 41, 125, 44, 36, 50, 44, 36, 51, 44, 36, 52, 10, 45, 42, 91, 48, 93, 32, 36, 53, 32, 45, 42, 91, 49, 93, 32, 123, 49, 45, 36, 53, 125, 32, 45, 43, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 106, 101, 106, 101, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 73, 97, 105, 110, 39, 115, 32, 70, 97, 115, 116, 32, 68, 101, 110, 111, 105, 115, 101, 58, 32, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 44, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 114, 111, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 46, 53, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 115, 112, 101, 99, 107, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 116, 104, 101, 114, 32, 79, 117, 116, 112, 117, 116, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 83, 104, 111, 119, 115, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 48, 44, 34, 78, 111, 114, 109, 97, 108, 32, 79, 117, 116, 112, 117, 116, 34, 44, 34, 76, 117, 109, 97, 32, 78, 111, 105, 115, 101, 34, 44, 32, 32, 34, 67, 104, 114, 111, 109, 97, 32, 78, 111, 105, 115, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 110, 111, 105, 115, 101, 32, 114, 101, 100, 117, 99, 116, 105, 111, 110, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 102, 111, 114, 32, 115, 112, 101, 101, 100, 44, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 113, 117, 97, 108, 105, 116, 121, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 97, 99, 114, 105, 102, 105, 99, 101, 100, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 114, 101, 108, 101, 97, 115, 101, 100, 32, 50, 50, 32, 70, 101, 98, 32, 50, 48, 49, 51, 34, 41, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 102, 97, 115, 116, 108, 117, 109, 97, 49, 61, 123, 36, 49, 42, 53, 48, 48, 48, 125, 10, 102, 97, 115, 116, 108, 117, 109, 97, 50, 61, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 49, 42, 46, 57, 125, 10, 102, 97, 115, 116, 108, 117, 109, 97, 51, 61, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 49, 42, 46, 54, 53, 125, 10, 102, 97, 115, 116, 108, 117, 109, 97, 52, 61, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 49, 42, 46, 52, 52, 125, 10, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 49, 61, 123, 36, 50, 42, 53, 48, 48, 48, 125, 10, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 50, 61, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 49, 10, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 51, 61, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 50, 47, 50, 125, 10, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 52, 61, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 51, 47, 50, 125, 10, 100, 101, 115, 112, 101, 99, 107, 108, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 123, 40, 36, 52, 47, 50, 53, 41, 42, 49, 48, 48, 48, 48, 48, 125, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 125, 10, 115, 99, 97, 108, 101, 61, 123, 50, 53, 53, 42, 49, 48, 48, 48, 125, 10, 101, 120, 61, 123, 36, 51, 125, 10, 112, 116, 49, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 48, 50, 53, 125, 10, 112, 116, 50, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 48, 53, 125, 10, 112, 116, 51, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 48, 55, 53, 125, 10, 112, 116, 52, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 49, 125, 10, 112, 116, 53, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 49, 50, 53, 125, 10, 112, 116, 54, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 49, 53, 125, 10, 112, 116, 55, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 49, 55, 53, 125, 10, 112, 116, 56, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 50, 125, 10, 112, 116, 57, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 50, 50, 53, 125, 10, 112, 116, 49, 48, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 50, 53, 125, 10, 112, 116, 49, 49, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 50, 55, 53, 125, 10, 112, 116, 49, 50, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 51, 125, 10, 112, 116, 49, 51, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 51, 50, 53, 125, 10, 112, 116, 49, 52, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 51, 53, 125, 10, 112, 116, 49, 53, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 51, 55, 53, 125, 10, 112, 116, 49, 54, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 52, 125, 10, 112, 116, 49, 55, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 52, 50, 53, 125, 10, 112, 116, 49, 56, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 52, 53, 125, 10, 112, 116, 49, 57, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 52, 55, 53, 125, 10, 112, 116, 50, 48, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 53, 125, 10, 112, 116, 50, 49, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 53, 50, 53, 125, 10, 112, 116, 50, 50, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 53, 53, 125, 10, 112, 116, 50, 51, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 53, 55, 53, 125, 10, 112, 116, 50, 52, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 54, 125, 10, 112, 116, 50, 53, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 54, 50, 53, 125, 10, 112, 116, 50, 54, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 54, 53, 125, 10, 112, 116, 50, 55, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 54, 55, 53, 125, 10, 112, 116, 50, 56, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 55, 125, 10, 112, 116, 50, 57, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 55, 50, 53, 125, 10, 112, 116, 51, 48, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 55, 53, 125, 10, 112, 116, 51, 49, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 55, 55, 53, 125, 10, 112, 116, 51, 50, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 56, 125, 10, 112, 116, 51, 51, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 56, 50, 53, 125, 10, 112, 116, 51, 52, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 56, 53, 125, 10, 112, 116, 51, 53, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 56, 55, 53, 125, 10, 112, 116, 51, 54, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 57, 125, 10, 112, 116, 51, 55, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 57, 50, 53, 125, 10, 112, 116, 51, 56, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 57, 53, 125, 10, 112, 116, 51, 57, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 48, 46, 57, 55, 53, 125, 10, 112, 116, 52, 48, 120, 61, 123, 36, 115, 99, 97, 108, 101, 42, 49, 125, 10, 112, 116, 49, 121, 61, 123, 40, 48, 46, 48, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 121, 61, 123, 40, 48, 46, 48, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 121, 61, 123, 40, 48, 46, 48, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 52, 121, 61, 123, 40, 48, 46, 49, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 53, 121, 61, 123, 40, 48, 46, 49, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 54, 121, 61, 123, 40, 48, 46, 49, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 55, 121, 61, 123, 40, 48, 46, 49, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 56, 121, 61, 123, 40, 48, 46, 50, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 57, 121, 61, 123, 40, 48, 46, 50, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 48, 121, 61, 123, 40, 48, 46, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 49, 121, 61, 123, 40, 48, 46, 50, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 50, 121, 61, 123, 40, 48, 46, 51, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 51, 121, 61, 123, 40, 48, 46, 51, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 52, 121, 61, 123, 40, 48, 46, 51, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 53, 121, 61, 123, 40, 48, 46, 51, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 54, 121, 61, 123, 40, 48, 46, 52, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 55, 121, 61, 123, 40, 48, 46, 52, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 56, 121, 61, 123, 40, 48, 46, 52, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 57, 121, 61, 123, 40, 48, 46, 52, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 48, 121, 61, 123, 40, 48, 46, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 49, 121, 61, 123, 40, 48, 46, 53, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 50, 121, 61, 123, 40, 48, 46, 53, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 51, 121, 61, 123, 40, 48, 46, 53, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 52, 121, 61, 123, 40, 48, 46, 54, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 53, 121, 61, 123, 40, 48, 46, 54, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 54, 121, 61, 123, 40, 48, 46, 54, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 55, 121, 61, 123, 40, 48, 46, 54, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 56, 121, 61, 123, 40, 48, 46, 55, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 57, 121, 61, 123, 40, 48, 46, 55, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 48, 121, 61, 123, 40, 48, 46, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 49, 121, 61, 123, 40, 48, 46, 55, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 50, 121, 61, 123, 40, 48, 46, 56, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 51, 121, 61, 123, 40, 48, 46, 56, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 52, 121, 61, 123, 40, 48, 46, 56, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 53, 121, 61, 123, 40, 48, 46, 56, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 54, 121, 61, 123, 40, 48, 46, 57, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 55, 121, 61, 123, 40, 48, 46, 57, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 56, 121, 61, 123, 40, 48, 46, 57, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 57, 121, 61, 123, 40, 48, 46, 57, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 52, 48, 121, 61, 123, 40, 49, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 45, 101, 110, 100, 105, 102, 10, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 49, 10, 45, 116, 105, 99, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 109, 117, 108, 91, 48, 93, 32, 49, 48, 48, 48, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 36, 112, 116, 49, 120, 44, 36, 112, 116, 49, 121, 44, 36, 112, 116, 50, 120, 44, 36, 112, 116, 50, 121, 44, 36, 112, 116, 51, 120, 44, 36, 112, 116, 51, 121, 44, 36, 112, 116, 52, 120, 44, 36, 112, 116, 52, 121, 44, 36, 112, 116, 53, 120, 44, 36, 112, 116, 53, 121, 44, 36, 112, 116, 54, 120, 44, 36, 112, 116, 54, 121, 44, 36, 112, 116, 55, 120, 44, 36, 112, 116, 55, 121, 44, 36, 112, 116, 56, 120, 44, 36, 112, 116, 56, 121, 44, 36, 112, 116, 57, 120, 44, 36, 112, 116, 57, 121, 44, 36, 112, 116, 49, 48, 120, 44, 36, 112, 116, 49, 48, 121, 44, 36, 112, 116, 49, 49, 120, 44, 36, 112, 116, 49, 49, 121, 44, 36, 112, 116, 49, 50, 120, 44, 36, 112, 116, 49, 50, 121, 44, 36, 112, 116, 49, 51, 120, 44, 36, 112, 116, 49, 51, 121, 44, 36, 112, 116, 49, 52, 120, 44, 36, 112, 116, 49, 52, 121, 44, 36, 112, 116, 49, 53, 120, 44, 36, 112, 116, 49, 53, 121, 44, 36, 112, 116, 49, 54, 120, 44, 36, 112, 116, 49, 54, 121, 44, 36, 112, 116, 49, 55, 120, 44, 36, 112, 116, 49, 55, 121, 44, 36, 112, 116, 49, 56, 120, 44, 36, 112, 116, 49, 56, 121, 44, 36, 112, 116, 49, 57, 120, 44, 36, 112, 116, 49, 57, 121, 44, 36, 112, 116, 50, 48, 120, 44, 36, 112, 116, 50, 48, 121, 44, 36, 112, 116, 50, 49, 120, 44, 36, 112, 116, 50, 49, 121, 44, 36, 112, 116, 50, 50, 120, 44, 36, 112, 116, 50, 50, 121, 44, 36, 112, 116, 50, 51, 120, 44, 36, 112, 116, 50, 51, 121, 44, 36, 112, 116, 50, 52, 120, 44, 36, 112, 116, 50, 52, 121, 44, 36, 112, 116, 50, 53, 120, 44, 36, 112, 116, 50, 53, 121, 44, 36, 112, 116, 50, 54, 120, 44, 36, 112, 116, 50, 54, 121, 44, 36, 112, 116, 50, 55, 120, 44, 36, 112, 116, 50, 55, 121, 44, 36, 112, 116, 50, 56, 120, 44, 36, 112, 116, 50, 56, 121, 44, 36, 112, 116, 50, 57, 120, 44, 36, 112, 116, 50, 57, 121, 44, 36, 112, 116, 51, 48, 120, 44, 36, 112, 116, 51, 48, 121, 44, 36, 112, 116, 51, 49, 120, 44, 36, 112, 116, 51, 49, 121, 44, 36, 112, 116, 51, 50, 120, 44, 36, 112, 116, 51, 50, 121, 44, 36, 112, 116, 51, 51, 120, 44, 36, 112, 116, 51, 51, 121, 44, 36, 112, 116, 51, 52, 120, 44, 36, 112, 116, 51, 52, 121, 44, 36, 112, 116, 51, 53, 120, 44, 36, 112, 116, 51, 53, 121, 44, 36, 112, 116, 51, 54, 120, 44, 36, 112, 116, 51, 54, 121, 44, 36, 112, 116, 51, 55, 120, 44, 36, 112, 116, 51, 55, 121, 44, 36, 112, 116, 51, 56, 120, 44, 36, 112, 116, 51, 56, 121, 44, 36, 112, 116, 51, 57, 120, 44, 36, 112, 116, 51, 57, 121, 44, 36, 112, 116, 52, 48, 120, 44, 36, 112, 116, 52, 48, 121, 10, 45, 101, 110, 100, 105, 102, 10, 114, 101, 100, 109, 117, 108, 61, 46, 50, 57, 57, 10, 103, 114, 101, 101, 110, 109, 117, 108, 61, 46, 53, 56, 55, 10, 98, 108, 117, 101, 109, 117, 108, 61, 46, 49, 49, 52, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 109, 117, 108, 91, 49, 93, 32, 36, 114, 101, 100, 109, 117, 108, 10, 45, 109, 117, 108, 91, 50, 93, 32, 36, 103, 114, 101, 101, 110, 109, 117, 108, 10, 45, 109, 117, 108, 91, 51, 93, 32, 36, 98, 108, 117, 101, 109, 117, 108, 10, 45, 97, 100, 100, 91, 49, 45, 51, 93, 10, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 114, 101, 100, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 103, 114, 101, 101, 110, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 98, 108, 117, 101, 10, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 117, 109, 97, 10, 45, 45, 115, 117, 98, 91, 98, 108, 117, 101, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 99, 98, 10, 45, 45, 115, 117, 98, 91, 114, 101, 100, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 99, 114, 10, 45, 107, 101, 101, 112, 91, 108, 117, 109, 97, 44, 99, 98, 44, 99, 114, 93, 10, 45, 105, 102, 32, 123, 36, 100, 101, 115, 112, 101, 99, 107, 108, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 62, 48, 125, 10, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 115, 112, 101, 99, 107, 108, 101, 91, 48, 93, 32, 123, 49, 45, 36, 100, 101, 115, 112, 101, 99, 107, 108, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 62, 48, 125, 10, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 109, 97, 105, 110, 91, 48, 93, 32, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 49, 125, 44, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 50, 125, 44, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 51, 125, 44, 123, 36, 102, 97, 115, 116, 108, 117, 109, 97, 52, 125, 44, 36, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 10, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 109, 97, 105, 110, 91, 49, 93, 32, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 49, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 50, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 51, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 52, 125, 44, 36, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 109, 97, 105, 110, 91, 50, 93, 32, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 49, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 50, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 51, 125, 44, 123, 36, 102, 97, 115, 116, 99, 104, 114, 111, 109, 97, 52, 125, 44, 36, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 108, 117, 109, 97, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 99, 98, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 99, 114, 10, 45, 45, 97, 100, 100, 91, 99, 98, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 111, 117, 116, 10, 45, 45, 97, 100, 100, 91, 99, 114, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 114, 101, 100, 111, 117, 116, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 117, 108, 91, 114, 101, 100, 111, 117, 116, 93, 32, 36, 114, 101, 100, 109, 117, 108, 10, 45, 45, 109, 117, 108, 91, 98, 108, 117, 101, 111, 117, 116, 93, 32, 36, 98, 108, 117, 101, 109, 117, 108, 10, 45, 115, 117, 98, 91, 108, 117, 109, 97, 93, 32, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 108, 117, 109, 97, 93, 32, 91, 45, 50, 93, 10, 45, 100, 105, 118, 91, 108, 117, 109, 97, 93, 32, 36, 103, 114, 101, 101, 110, 109, 117, 108, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 109, 111, 118, 101, 91, 50, 93, 32, 48, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 48, 46, 55, 44, 48, 10, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 48, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 52, 10, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 45, 49, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 10, 45, 109, 117, 108, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 97, 100, 100, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 125, 10, 115, 99, 97, 108, 101, 61, 123, 50, 53, 53, 42, 49, 48, 48, 48, 125, 10, 101, 120, 61, 123, 49, 47, 36, 51, 125, 10, 112, 116, 49, 121, 61, 123, 40, 48, 46, 48, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 121, 61, 123, 40, 48, 46, 48, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 121, 61, 123, 40, 48, 46, 48, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 52, 121, 61, 123, 40, 48, 46, 49, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 53, 121, 61, 123, 40, 48, 46, 49, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 54, 121, 61, 123, 40, 48, 46, 49, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 55, 121, 61, 123, 40, 48, 46, 49, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 56, 121, 61, 123, 40, 48, 46, 50, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 57, 121, 61, 123, 40, 48, 46, 50, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 48, 121, 61, 123, 40, 48, 46, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 49, 121, 61, 123, 40, 48, 46, 50, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 50, 121, 61, 123, 40, 48, 46, 51, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 51, 121, 61, 123, 40, 48, 46, 51, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 52, 121, 61, 123, 40, 48, 46, 51, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 53, 121, 61, 123, 40, 48, 46, 51, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 54, 121, 61, 123, 40, 48, 46, 52, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 55, 121, 61, 123, 40, 48, 46, 52, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 56, 121, 61, 123, 40, 48, 46, 52, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 49, 57, 121, 61, 123, 40, 48, 46, 52, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 48, 121, 61, 123, 40, 48, 46, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 49, 121, 61, 123, 40, 48, 46, 53, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 50, 121, 61, 123, 40, 48, 46, 53, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 51, 121, 61, 123, 40, 48, 46, 53, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 52, 121, 61, 123, 40, 48, 46, 54, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 53, 121, 61, 123, 40, 48, 46, 54, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 54, 121, 61, 123, 40, 48, 46, 54, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 55, 121, 61, 123, 40, 48, 46, 54, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 56, 121, 61, 123, 40, 48, 46, 55, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 50, 57, 121, 61, 123, 40, 48, 46, 55, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 48, 121, 61, 123, 40, 48, 46, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 49, 121, 61, 123, 40, 48, 46, 55, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 50, 121, 61, 123, 40, 48, 46, 56, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 51, 121, 61, 123, 40, 48, 46, 56, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 52, 121, 61, 123, 40, 48, 46, 56, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 53, 121, 61, 123, 40, 48, 46, 56, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 54, 121, 61, 123, 40, 48, 46, 57, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 55, 121, 61, 123, 40, 48, 46, 57, 50, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 56, 121, 61, 123, 40, 48, 46, 57, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 51, 57, 121, 61, 123, 40, 48, 46, 57, 55, 53, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 112, 116, 52, 48, 121, 61, 123, 40, 49, 94, 36, 101, 120, 41, 42, 36, 115, 99, 97, 108, 101, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 36, 112, 116, 49, 120, 44, 36, 112, 116, 49, 121, 44, 36, 112, 116, 50, 120, 44, 36, 112, 116, 50, 121, 44, 36, 112, 116, 51, 120, 44, 36, 112, 116, 51, 121, 44, 36, 112, 116, 52, 120, 44, 36, 112, 116, 52, 121, 44, 36, 112, 116, 53, 120, 44, 36, 112, 116, 53, 121, 44, 36, 112, 116, 54, 120, 44, 36, 112, 116, 54, 121, 44, 36, 112, 116, 55, 120, 44, 36, 112, 116, 55, 121, 44, 36, 112, 116, 56, 120, 44, 36, 112, 116, 56, 121, 44, 36, 112, 116, 57, 120, 44, 36, 112, 116, 57, 121, 44, 36, 112, 116, 49, 48, 120, 44, 36, 112, 116, 49, 48, 121, 44, 36, 112, 116, 49, 49, 120, 44, 36, 112, 116, 49, 49, 121, 44, 36, 112, 116, 49, 50, 120, 44, 36, 112, 116, 49, 50, 121, 44, 36, 112, 116, 49, 51, 120, 44, 36, 112, 116, 49, 51, 121, 44, 36, 112, 116, 49, 52, 120, 44, 36, 112, 116, 49, 52, 121, 44, 36, 112, 116, 49, 53, 120, 44, 36, 112, 116, 49, 53, 121, 44, 36, 112, 116, 49, 54, 120, 44, 36, 112, 116, 49, 54, 121, 44, 36, 112, 116, 49, 55, 120, 44, 36, 112, 116, 49, 55, 121, 44, 36, 112, 116, 49, 56, 120, 44, 36, 112, 116, 49, 56, 121, 44, 36, 112, 116, 49, 57, 120, 44, 36, 112, 116, 49, 57, 121, 44, 36, 112, 116, 50, 48, 120, 44, 36, 112, 116, 50, 48, 121, 44, 36, 112, 116, 50, 49, 120, 44, 36, 112, 116, 50, 49, 121, 44, 36, 112, 116, 50, 50, 120, 44, 36, 112, 116, 50, 50, 121, 44, 36, 112, 116, 50, 51, 120, 44, 36, 112, 116, 50, 51, 121, 44, 36, 112, 116, 50, 52, 120, 44, 36, 112, 116, 50, 52, 121, 44, 36, 112, 116, 50, 53, 120, 44, 36, 112, 116, 50, 53, 121, 44, 36, 112, 116, 50, 54, 120, 44, 36, 112, 116, 50, 54, 121, 44, 36, 112, 116, 50, 55, 120, 44, 36, 112, 116, 50, 55, 121, 44, 36, 112, 116, 50, 56, 120, 44, 36, 112, 116, 50, 56, 121, 44, 36, 112, 116, 50, 57, 120, 44, 36, 112, 116, 50, 57, 121, 44, 36, 112, 116, 51, 48, 120, 44, 36, 112, 116, 51, 48, 121, 44, 36, 112, 116, 51, 49, 120, 44, 36, 112, 116, 51, 49, 121, 44, 36, 112, 116, 51, 50, 120, 44, 36, 112, 116, 51, 50, 121, 44, 36, 112, 116, 51, 51, 120, 44, 36, 112, 116, 51, 51, 121, 44, 36, 112, 116, 51, 52, 120, 44, 36, 112, 116, 51, 52, 121, 44, 36, 112, 116, 51, 53, 120, 44, 36, 112, 116, 51, 53, 121, 44, 36, 112, 116, 51, 54, 120, 44, 36, 112, 116, 51, 54, 121, 44, 36, 112, 116, 51, 55, 120, 44, 36, 112, 116, 51, 55, 121, 44, 36, 112, 116, 51, 56, 120, 44, 36, 112, 116, 51, 56, 121, 44, 36, 112, 116, 51, 57, 120, 44, 36, 112, 116, 51, 57, 121, 44, 36, 112, 116, 52, 48, 120, 44, 36, 112, 116, 52, 48, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 117, 108, 91, 48, 93, 32, 48, 46, 48, 48, 49, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 116, 111, 99, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 102, 97, 115, 116, 98, 108, 117, 114, 58, 10, 40, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 59, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 50, 52, 54, 51, 55, 54, 56, 49, 49, 54, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 59, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 44, 48, 46, 49, 51, 48, 52, 51, 52, 55, 56, 50, 54, 44, 48, 46, 48, 53, 55, 57, 55, 49, 48, 49, 52, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 115, 112, 101, 99, 107, 108, 101, 58, 10, 40, 48, 44, 48, 46, 50, 44, 48, 59, 48, 46, 50, 44, 48, 46, 50, 44, 48, 46, 50, 59, 48, 44, 48, 46, 50, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 48, 93, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 49, 93, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 50, 44, 45, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 49, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 93, 32, 99, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 109, 97, 105, 110, 58, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 56, 45, 119, 37, 56, 41, 125, 44, 123, 104, 43, 40, 56, 45, 104, 37, 56, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 100, 125, 44, 123, 115, 125, 44, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 50, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 100, 125, 44, 123, 115, 125, 44, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 49, 93, 32, 91, 51, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 51, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 100, 125, 44, 123, 115, 125, 44, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 51, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 50, 93, 32, 91, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 52, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 51, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 100, 125, 44, 123, 115, 125, 44, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 52, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 51, 93, 32, 91, 53, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 53, 93, 10, 45, 114, 109, 115, 116, 104, 114, 101, 115, 104, 91, 48, 93, 32, 36, 49, 10, 45, 114, 109, 115, 116, 104, 114, 101, 115, 104, 91, 49, 93, 32, 36, 50, 10, 45, 114, 109, 115, 116, 104, 114, 101, 115, 104, 91, 50, 93, 32, 36, 51, 10, 45, 114, 109, 115, 116, 104, 114, 101, 115, 104, 91, 51, 93, 32, 36, 52, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 51, 44, 119, 125, 44, 64, 123, 51, 44, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 50, 44, 119, 125, 44, 64, 123, 50, 44, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 49, 44, 119, 125, 44, 64, 123, 49, 44, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 36, 53, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 114, 109, 115, 116, 104, 114, 101, 115, 104, 58, 10, 45, 45, 97, 98, 115, 91, 48, 93, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 49, 93, 32, 123, 36, 49, 125, 10, 45, 102, 97, 115, 116, 98, 108, 117, 114, 91, 49, 93, 10, 45, 109, 117, 108, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 48, 44, 49, 44, 36, 52, 44, 48, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 115, 117, 98, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 51, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 50, 125, 10, 45, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 32, 48, 44, 36, 50, 44, 49, 44, 36, 52, 44, 48, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 115, 117, 98, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 51, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 73, 97, 105, 110, 39, 115, 32, 78, 111, 105, 115, 101, 32, 82, 101, 100, 117, 99, 116, 105, 111, 110, 58, 32, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 44, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 32, 76, 117, 109, 97, 32, 78, 82, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 32, 67, 104, 114, 111, 109, 97, 32, 78, 82, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 32, 68, 101, 115, 112, 101, 99, 107, 108, 101, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 32, 32, 32, 32, 32, 32, 60, 115, 109, 97, 108, 108, 62, 65, 100, 106, 117, 115, 116, 32, 110, 111, 105, 115, 101, 32, 114, 101, 100, 117, 99, 116, 105, 111, 110, 32, 98, 121, 32, 116, 111, 110, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 48, 48, 44, 53, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 32, 83, 104, 97, 100, 111, 119, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 51, 50, 48, 48, 48, 44, 51, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 82, 101, 99, 111, 118, 101, 114, 32, 68, 101, 116, 97, 105, 108, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 32, 82, 101, 99, 111, 118, 101, 114, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 48, 44, 34, 68, 111, 32, 110, 111, 116, 32, 82, 101, 99, 111, 118, 101, 114, 32, 68, 101, 116, 97, 105, 108, 115, 34, 44, 34, 82, 101, 99, 111, 118, 101, 114, 32, 68, 101, 116, 97, 105, 108, 115, 34, 44, 32, 34, 82, 101, 99, 111, 118, 101, 114, 32, 68, 101, 116, 97, 105, 108, 115, 32, 97, 115, 32, 115, 101, 112, 97, 114, 97, 116, 101, 32, 108, 97, 121, 101, 114, 34, 41, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 55, 32, 82, 101, 99, 111, 118, 101, 114, 121, 32, 97, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 32, 32, 32, 32, 32, 32, 60, 115, 109, 97, 108, 108, 62, 65, 100, 106, 117, 115, 116, 32, 100, 101, 116, 105, 97, 108, 32, 114, 101, 99, 111, 118, 101, 114, 121, 32, 98, 121, 32, 115, 105, 122, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 32, 65, 100, 106, 117, 115, 116, 32, 70, 105, 110, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 57, 32, 65, 100, 106, 117, 115, 116, 32, 77, 101, 100, 105, 117, 109, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 48, 32, 65, 100, 106, 117, 115, 116, 32, 76, 97, 114, 103, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 49, 32, 68, 101, 116, 97, 105, 108, 32, 69, 109, 112, 104, 97, 115, 105, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 51, 53, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 50, 32, 83, 104, 97, 114, 112, 101, 110, 32, 101, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 80, 114, 101, 118, 105, 101, 119, 32, 111, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 51, 32, 80, 114, 101, 118, 105, 101, 119, 32, 83, 104, 111, 119, 115, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 48, 44, 34, 78, 111, 114, 109, 97, 108, 32, 79, 117, 116, 112, 117, 116, 34, 44, 34, 76, 117, 109, 97, 32, 78, 111, 105, 115, 101, 34, 44, 32, 32, 34, 67, 104, 114, 111, 109, 97, 32, 78, 111, 105, 115, 101, 34, 44, 34, 68, 101, 116, 97, 105, 108, 115, 34, 41, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 117, 112, 100, 97, 116, 101, 32, 49, 48, 32, 74, 97, 110, 32, 50, 48, 49, 51, 34, 41, 10, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 58, 10, 108, 110, 114, 61, 36, 49, 10, 99, 110, 114, 61, 36, 50, 10, 100, 101, 115, 112, 101, 107, 61, 36, 51, 10, 104, 105, 103, 104, 115, 61, 36, 52, 10, 115, 104, 97, 100, 111, 119, 61, 36, 53, 10, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 36, 54, 10, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 61, 123, 53, 48, 48, 48, 45, 40, 36, 55, 42, 53, 48, 48, 41, 125, 10, 102, 97, 115, 116, 61, 49, 10, 102, 105, 110, 101, 95, 100, 101, 116, 61, 36, 56, 10, 109, 101, 100, 95, 100, 101, 116, 61, 36, 57, 10, 108, 97, 114, 103, 101, 95, 100, 101, 116, 61, 36, 49, 48, 10, 100, 101, 116, 95, 101, 109, 112, 104, 97, 115, 105, 115, 61, 36, 49, 49, 10, 115, 104, 97, 114, 112, 61, 36, 49, 50, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 49, 46, 51, 125, 10, 45, 109, 117, 108, 32, 57, 48, 48, 32, 9, 9, 9, 35, 35, 32, 105, 110, 99, 114, 101, 97, 115, 101, 32, 114, 97, 110, 103, 101, 32, 111, 102, 32, 110, 117, 109, 98, 101, 114, 32, 98, 101, 102, 111, 114, 101, 32, 99, 117, 114, 118, 101, 32, 116, 111, 32, 112, 114, 101, 118, 101, 110, 116, 32, 112, 111, 115, 116, 101, 114, 105, 115, 97, 116, 105, 111, 110, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 49, 44, 48, 44, 48, 44, 51, 50, 48, 48, 48, 44, 123, 51, 50, 48, 48, 48, 45, 36, 115, 104, 97, 100, 111, 119, 125, 44, 49, 54, 48, 48, 48, 48, 44, 123, 49, 54, 48, 48, 48, 48, 45, 36, 115, 104, 97, 100, 111, 119, 125, 44, 50, 53, 54, 48, 48, 48, 44, 123, 50, 53, 54, 48, 48, 48, 45, 36, 104, 105, 103, 104, 115, 45, 36, 115, 104, 97, 100, 111, 119, 125, 10, 45, 100, 105, 118, 32, 50, 48, 48, 48, 10, 45, 105, 97, 105, 110, 95, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 105, 102, 32, 123, 36, 108, 110, 114, 62, 48, 125, 10, 9, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 48, 125, 10, 9, 9, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 45, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 49, 125, 10, 9, 9, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 9, 9, 45, 117, 110, 115, 104, 97, 114, 112, 91, 50, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 49, 44, 49, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 52, 56, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 52, 56, 44, 49, 48, 48, 37, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 52, 56, 125, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 52, 56, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 36, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 125, 44, 52, 56, 44, 48, 44, 36, 102, 105, 110, 101, 95, 100, 101, 116, 44, 36, 109, 101, 100, 95, 100, 101, 116, 44, 36, 108, 97, 114, 103, 101, 95, 100, 101, 116, 44, 49, 44, 51, 10, 9, 9, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 52, 56, 44, 52, 56, 44, 123, 119, 45, 52, 57, 125, 44, 123, 104, 45, 52, 57, 125, 10, 9, 9, 45, 115, 117, 98, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 100, 101, 116, 95, 101, 109, 112, 104, 97, 115, 105, 115, 10, 9, 9, 45, 97, 100, 100, 91, 50, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 45, 109, 111, 118, 101, 91, 45, 49, 93, 32, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 50, 125, 10, 9, 9, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 9, 9, 45, 117, 110, 115, 104, 97, 114, 112, 91, 50, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 49, 44, 49, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 52, 56, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 52, 56, 44, 49, 48, 48, 37, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 52, 56, 125, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 52, 56, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 50, 56, 10, 9, 9, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 36, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 125, 44, 52, 56, 44, 48, 44, 36, 102, 105, 110, 101, 95, 100, 101, 116, 44, 36, 109, 101, 100, 95, 100, 101, 116, 44, 36, 108, 97, 114, 103, 101, 95, 100, 101, 116, 44, 49, 44, 51, 10, 9, 9, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 52, 56, 44, 52, 56, 44, 123, 119, 45, 52, 57, 125, 44, 123, 104, 45, 52, 57, 125, 10, 9, 9, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 10, 9, 9, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 100, 101, 116, 95, 101, 109, 112, 104, 97, 115, 105, 115, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 50, 56, 10, 9, 9, 45, 109, 111, 118, 101, 91, 45, 50, 93, 32, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 99, 110, 114, 62, 48, 125, 10, 45, 97, 100, 100, 91, 49, 44, 50, 93, 32, 51, 48, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 49, 93, 32, 49, 48, 44, 36, 99, 110, 114, 44, 51, 44, 51, 44, 48, 44, 49, 44, 49, 44, 52, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 50, 93, 32, 49, 48, 44, 36, 99, 110, 114, 44, 51, 44, 51, 44, 48, 44, 49, 44, 49, 44, 52, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 45, 115, 117, 98, 91, 49, 44, 50, 93, 32, 51, 48, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 44, 50, 93, 32, 99, 10, 45, 105, 97, 105, 110, 95, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 10, 45, 109, 117, 108, 91, 48, 93, 32, 50, 48, 48, 48, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 123, 51, 50, 48, 48, 48, 45, 36, 115, 104, 97, 100, 111, 119, 125, 44, 51, 50, 48, 48, 48, 44, 123, 49, 54, 48, 48, 48, 48, 45, 36, 115, 104, 97, 100, 111, 119, 125, 44, 49, 54, 48, 48, 48, 48, 44, 123, 50, 53, 54, 48, 48, 48, 45, 36, 104, 105, 103, 104, 115, 45, 36, 115, 104, 97, 100, 111, 119, 125, 44, 50, 53, 54, 48, 48, 48, 10, 45, 100, 105, 118, 91, 48, 93, 32, 57, 48, 48, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 49, 46, 51, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 107, 101, 101, 112, 91, 50, 44, 51, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 50, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 51, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 52, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 58, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 36, 52, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 37, 44, 53, 37, 44, 48, 44, 49, 44, 36, 54, 10, 45, 45, 97, 100, 100, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 58, 10, 116, 99, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 50, 41, 125, 32, 116, 114, 61, 123, 114, 111, 117, 110, 100, 40, 104, 47, 36, 50, 41, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 91, 48, 45, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 50, 45, 49, 125, 10, 45, 105, 102, 32, 123, 36, 56, 62, 50, 125, 10, 112, 117, 115, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 49, 46, 53, 41, 125, 10, 112, 117, 108, 108, 61, 123, 36, 50, 45, 36, 112, 117, 115, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 112, 117, 115, 104, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 112, 117, 108, 108, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 112, 117, 115, 104, 125, 44, 123, 36, 50, 125, 44, 123, 119, 45, 36, 112, 117, 108, 108, 45, 49, 125, 44, 123, 104, 45, 40, 36, 50, 41, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 115, 104, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 108, 108, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 123, 36, 112, 117, 115, 104, 125, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 112, 117, 108, 108, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 62, 49, 125, 10, 100, 105, 97, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 51, 41, 125, 10, 100, 105, 97, 50, 61, 123, 36, 50, 45, 36, 100, 105, 97, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 49, 125, 44, 123, 36, 100, 105, 97, 49, 125, 44, 123, 119, 45, 36, 100, 105, 97, 50, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 50, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 50, 125, 44, 123, 36, 100, 105, 97, 50, 125, 44, 123, 119, 45, 36, 100, 105, 97, 49, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 49, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 100, 111, 110, 101, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 50, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 51, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 52, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 50, 46, 53, 37, 44, 49, 50, 46, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 53, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 54, 46, 49, 50, 53, 37, 44, 54, 46, 49, 50, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 36, 49, 52, 125, 10, 9, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 9, 45, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 10, 9, 45, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 56, 61, 61, 52, 125, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 53, 10, 9, 45, 105, 102, 32, 123, 36, 56, 60, 52, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 125, 10, 9, 9, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 50, 32, 36, 49, 44, 123, 36, 50, 42, 36, 57, 125, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 51, 32, 36, 49, 44, 123, 36, 50, 42, 36, 49, 48, 125, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 52, 32, 36, 49, 44, 123, 36, 50, 42, 36, 49, 49, 125, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 53, 32, 36, 49, 44, 123, 36, 50, 42, 36, 49, 50, 125, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 52, 10, 105, 97, 105, 110, 95, 114, 103, 98, 50, 121, 99, 98, 99, 114, 58, 10, 114, 101, 100, 109, 117, 108, 61, 46, 50, 57, 57, 10, 103, 114, 101, 101, 110, 109, 117, 108, 61, 46, 53, 56, 55, 10, 98, 108, 117, 101, 109, 117, 108, 61, 46, 49, 49, 52, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 109, 117, 108, 91, 49, 93, 32, 36, 114, 101, 100, 109, 117, 108, 10, 45, 109, 117, 108, 91, 50, 93, 32, 36, 103, 114, 101, 101, 110, 109, 117, 108, 10, 45, 109, 117, 108, 91, 51, 93, 32, 36, 98, 108, 117, 101, 109, 117, 108, 10, 45, 97, 100, 100, 91, 49, 45, 51, 93, 10, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 114, 101, 100, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 103, 114, 101, 101, 110, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 98, 108, 117, 101, 10, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 117, 109, 97, 10, 45, 45, 115, 117, 98, 91, 98, 108, 117, 101, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 99, 98, 10, 45, 45, 115, 117, 98, 91, 114, 101, 100, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 99, 114, 10, 45, 107, 101, 101, 112, 91, 108, 117, 109, 97, 44, 99, 98, 44, 99, 114, 93, 10, 45, 97, 112, 112, 101, 110, 100, 91, 108, 117, 109, 97, 44, 99, 98, 44, 99, 114, 93, 32, 99, 10, 105, 97, 105, 110, 95, 121, 99, 98, 99, 114, 50, 114, 103, 98, 58, 10, 114, 101, 100, 109, 117, 108, 61, 46, 50, 57, 57, 10, 103, 114, 101, 101, 110, 109, 117, 108, 61, 46, 53, 56, 55, 10, 98, 108, 117, 101, 109, 117, 108, 61, 46, 49, 49, 52, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 108, 117, 109, 97, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 99, 98, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 99, 114, 10, 45, 45, 97, 100, 100, 91, 99, 98, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 111, 117, 116, 10, 45, 45, 97, 100, 100, 91, 99, 114, 93, 32, 91, 108, 117, 109, 97, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 114, 101, 100, 111, 117, 116, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 117, 108, 91, 114, 101, 100, 111, 117, 116, 93, 32, 36, 114, 101, 100, 109, 117, 108, 10, 45, 45, 109, 117, 108, 91, 98, 108, 117, 101, 111, 117, 116, 93, 32, 36, 98, 108, 117, 101, 109, 117, 108, 10, 45, 115, 117, 98, 91, 108, 117, 109, 97, 93, 32, 91, 45, 49, 93, 10, 45, 115, 117, 98, 91, 108, 117, 109, 97, 93, 32, 91, 45, 50, 93, 10, 45, 100, 105, 118, 91, 108, 117, 109, 97, 93, 32, 36, 103, 114, 101, 101, 110, 109, 117, 108, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 109, 111, 118, 101, 91, 50, 93, 32, 48, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 32, 36, 49, 44, 48, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 49, 46, 51, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 115, 117, 98, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 51, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 50, 125, 10, 45, 45, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 32, 48, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 115, 117, 98, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 51, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 51, 125, 10, 45, 105, 97, 105, 110, 95, 105, 97, 105, 110, 115, 95, 110, 114, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 50, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 48, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 115, 117, 98, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 51, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 112, 97, 105, 110, 116, 32, 91, 100, 105, 102, 102, 117, 115, 105, 111, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 44, 32, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 105, 110, 112, 97, 105, 110, 116, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 108, 111, 98, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 53, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 79, 112, 97, 113, 117, 101, 32, 114, 101, 103, 105, 111, 110, 115, 32, 105, 110, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 34, 44, 34, 77, 97, 115, 107, 32, 98, 121, 32, 99, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 102, 32, 60, 105, 62, 77, 97, 115, 107, 32, 98, 121, 32, 99, 111, 108, 111, 114, 60, 47, 105, 62, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 104, 101, 110, 32, 60, 105, 62, 39, 77, 97, 115, 107, 32, 98, 121, 32, 99, 111, 108, 111, 114, 39, 60, 47, 105, 62, 32, 109, 111, 100, 101, 32, 105, 115, 32, 115, 101, 108, 101, 99, 116, 101, 100, 44, 32, 112, 114, 101, 118, 105, 101, 119, 32, 105, 115, 32, 108, 105, 107, 101, 108, 121, 32, 116, 111, 32, 98, 101, 32, 105, 110, 97, 99, 99, 117, 114, 97, 116, 101, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 32, 58, 10, 45, 105, 102, 32, 36, 55, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 48, 44, 36, 123, 56, 45, 49, 49, 125, 32, 45, 114, 118, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 37, 44, 36, 54, 37, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 49, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 48, 93, 32, 53, 48, 37, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 110, 112, 97, 105, 110, 116, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 37, 44, 36, 54, 37, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 102, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 105, 110, 112, 97, 105, 110, 116, 32, 36, 123, 94, 48, 125, 10, 45, 105, 102, 32, 123, 33, 36, 55, 34, 32, 38, 38, 32, 34, 64, 35, 62, 49, 125, 32, 45, 114, 109, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 112, 97, 105, 110, 116, 32, 91, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 112, 97, 105, 114, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 49, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 111, 107, 117, 112, 32, 102, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 111, 107, 117, 112, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 54, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 100, 101, 99, 97, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 115, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 108, 111, 119, 32, 111, 117, 116, 101, 114, 32, 98, 108, 101, 110, 100, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 79, 112, 97, 113, 117, 101, 32, 114, 101, 103, 105, 111, 110, 115, 32, 105, 110, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 34, 44, 34, 77, 97, 115, 107, 32, 98, 121, 32, 99, 111, 108, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 102, 32, 60, 105, 62, 77, 97, 115, 107, 32, 98, 121, 32, 99, 111, 108, 111, 114, 60, 47, 105, 62, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 77, 97, 120, 105, 109, 101, 32, 68, 97, 105, 115, 121, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 112, 97, 105, 114, 32, 58, 10, 45, 105, 102, 32, 36, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 48, 44, 36, 123, 49, 48, 45, 49, 51, 125, 10, 45, 114, 101, 112, 97, 105, 114, 91, 48, 93, 32, 91, 49, 93, 44, 36, 49, 44, 123, 36, 49, 42, 36, 50, 125, 44, 36, 123, 51, 45, 56, 125, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 48, 93, 32, 53, 48, 37, 10, 45, 114, 101, 112, 97, 105, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 36, 49, 44, 123, 36, 49, 42, 36, 50, 125, 44, 36, 123, 51, 45, 56, 125, 10, 45, 116, 111, 95, 97, 91, 48, 93, 32, 45, 102, 91, 48, 93, 32, 48, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 73, 110, 112, 97, 105, 110, 116, 32, 91, 115, 111, 108, 105, 100, 105, 102, 121, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 44, 32, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 77, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 70, 111, 114, 32, 108, 105, 110, 101, 97, 114, 32, 109, 101, 116, 104, 111, 100, 32, 111, 110, 108, 121, 32, 58, 60, 47, 98, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 102, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 49, 46, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 114, 101, 112, 108, 97, 99, 101, 115, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 114, 101, 103, 105, 111, 110, 115, 32, 98, 121, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 100, 32, 99, 111, 108, 111, 114, 115, 46, 32, 73, 116, 32, 109, 97, 121, 32, 116, 97, 107, 101, 32, 108, 111, 110, 103, 32, 116, 111, 32, 114, 101, 110, 100, 101, 114, 33, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 50, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 115, 111, 108, 105, 100, 105, 102, 121, 10, 45, 101, 108, 115, 101, 32, 45, 115, 111, 108, 105, 100, 105, 102, 121, 95, 108, 105, 110, 101, 97, 114, 32, 36, 50, 44, 36, 51, 44, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 111, 108, 105, 100, 105, 102, 121, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 83, 105, 109, 105, 108, 97, 114, 105, 116, 121, 32, 77, 97, 115, 107, 58, 32, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 44, 32, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 108, 101, 99, 116, 32, 112, 105, 120, 101, 108, 115, 32, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 72, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 86, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 87, 105, 116, 104, 32, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 61, 32, 105, 110, 116, 32, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 106, 101, 99, 116, 32, 32, 61, 32, 105, 110, 116, 32, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 110, 32, 116, 104, 101, 115, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 82, 71, 66, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 91, 67, 121, 97, 110, 93, 77, 89, 75, 34, 44, 34, 67, 91, 77, 97, 103, 101, 110, 116, 97, 93, 89, 75, 34, 44, 34, 67, 77, 91, 89, 101, 108, 108, 111, 119, 93, 75, 34, 44, 34, 67, 77, 89, 91, 75, 101, 121, 93, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 109, 97, 115, 107, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 112, 105, 120, 101, 108, 115, 32, 116, 104, 97, 116, 32, 97, 114, 101, 32, 99, 108, 111, 115, 101, 32, 116, 111, 44, 32, 97, 110, 100, 32, 115, 105, 109, 105, 108, 97, 114, 32, 116, 111, 44, 32, 116, 104, 101, 32, 115, 101, 108, 101, 99, 116, 101, 100, 32, 112, 105, 120, 101, 108, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 101, 32, 60, 105, 62, 102, 97, 115, 116, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 115, 99, 97, 108, 101, 115, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 104, 97, 108, 102, 45, 115, 105, 122, 101, 32, 116, 111, 32, 100, 111, 32, 116, 104, 101, 32, 99, 97, 108, 99, 117, 108, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 103, 105, 118, 101, 115, 32, 97, 32, 115, 111, 102, 116, 101, 114, 32, 114, 101, 115, 117, 108, 116, 32, 105, 110, 32, 97, 114, 111, 117, 110, 100, 32, 111, 110, 101, 32, 113, 117, 97, 114, 116, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 116, 105, 109, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 112, 101, 101, 100, 32, 105, 115, 32, 97, 108, 115, 111, 32, 100, 101, 116, 101, 114, 109, 105, 110, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 60, 105, 62, 75, 101, 101, 112, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 82, 101, 106, 101, 99, 116, 60, 47, 105, 62, 32, 108, 97, 114, 103, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 32, 119, 105, 108, 108, 32, 100, 114, 97, 115, 116, 105, 99, 97, 108, 108, 121, 32, 115, 108, 111, 119, 32, 100, 111, 119, 110, 32, 116, 104, 101, 32, 102, 105, 108, 116, 101, 114, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 58, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 9, 45, 114, 101, 115, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 51, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 48, 125, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 50, 125, 32, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 51, 125, 32, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 52, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 53, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 54, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 55, 125, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 56, 125, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 57, 125, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 48, 125, 32, 45, 114, 103, 98, 50, 104, 115, 108, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 49, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 50, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 51, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 52, 125, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 32, 45, 107, 101, 101, 112, 91, 51, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 109, 117, 108, 91, 48, 93, 32, 48, 46, 57, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 52, 45, 36, 51, 125, 10, 45, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 36, 49, 37, 44, 36, 50, 37, 44, 48, 44, 123, 36, 51, 43, 36, 62, 125, 44, 48, 44, 49, 44, 50, 53, 53, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 57, 57, 37, 10, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 9, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 108, 111, 99, 97, 108, 95, 115, 105, 109, 105, 108, 97, 114, 105, 116, 121, 95, 109, 97, 115, 107, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 108, 105, 110, 101, 32, 49, 48, 48, 37, 44, 36, 50, 37, 44, 123, 36, 49, 43, 53, 125, 37, 44, 36, 50, 37, 44, 48, 46, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 48, 37, 44, 36, 50, 37, 44, 123, 36, 49, 45, 53, 125, 37, 44, 36, 50, 37, 44, 48, 46, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 49, 48, 48, 37, 44, 36, 49, 37, 44, 123, 36, 50, 43, 53, 125, 37, 44, 48, 46, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 48, 37, 44, 36, 49, 37, 44, 123, 36, 50, 45, 53, 125, 37, 44, 48, 46, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 80, 105, 120, 101, 108, 32, 68, 101, 110, 111, 105, 115, 101, 58, 32, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 44, 32, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 79, 108, 100, 32, 77, 101, 116, 104, 111, 100, 34, 44, 34, 72, 121, 98, 114, 105, 100, 32, 77, 101, 100, 105, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 110, 111, 114, 109, 97, 108, 105, 115, 101, 100, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 85, 112, 100, 97, 116, 101, 32, 45, 32, 56, 32, 77, 97, 114, 99, 104, 32, 50, 48, 49, 51, 32, 45, 32, 73, 110, 99, 111, 114, 112, 101, 114, 97, 116, 101, 100, 32, 72, 121, 98, 114, 105, 100, 32, 77, 101, 100, 105, 97, 110, 32, 105, 110, 116, 111, 32, 116, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 97, 110, 100, 32, 97, 100, 100, 101, 100, 32, 97, 32, 99, 104, 111, 105, 99, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104, 101, 32, 111, 108, 100, 32, 109, 101, 116, 104, 111, 100, 32, 97, 110, 100, 32, 104, 121, 98, 114, 105, 100, 32, 109, 101, 100, 105, 97, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 99, 114, 101, 97, 116, 101, 98, 99, 58, 10, 40, 48, 46, 53, 44, 48, 46, 53, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 40, 48, 46, 53, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 100, 58, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 41, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 101, 58, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 46, 53, 44, 48, 41, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 102, 58, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 46, 53, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 103, 58, 10, 40, 48, 44, 48, 46, 53, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 46, 53, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 104, 58, 10, 40, 48, 44, 48, 46, 53, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 46, 53, 44, 48, 41, 10, 40, 48, 44, 48, 46, 53, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 105, 58, 10, 40, 48, 44, 48, 46, 53, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 106, 58, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 46, 53, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 107, 58, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 108, 58, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 46, 53, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 109, 58, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 46, 53, 59, 48, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 110, 58, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 44, 48, 46, 53, 44, 48, 46, 53, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 46, 53, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 111, 58, 10, 40, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 46, 53, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 112, 58, 10, 40, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 48, 46, 53, 44, 48, 41, 10, 40, 48, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 50, 93, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 44, 45, 50, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 113, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 99, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 100, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 114, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 101, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 102, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 115, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 103, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 104, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 116, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 105, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 106, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 117, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 107, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 108, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 118, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 109, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 110, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 119, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 111, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 112, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 120, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 113, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 114, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 121, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 115, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 116, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 98, 122, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 117, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 118, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 99, 97, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 120, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 121, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 101, 97, 116, 101, 99, 98, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 122, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 98, 119, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 109, 101, 103, 97, 99, 108, 101, 97, 110, 58, 10, 45, 45, 99, 114, 101, 97, 116, 101, 99, 97, 91, 48, 93, 10, 45, 45, 99, 114, 101, 97, 116, 101, 99, 98, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 111, 115, 115, 58, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 10, 101, 120, 58, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 10, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 99, 114, 111, 115, 115, 91, 48, 93, 10, 45, 45, 101, 120, 91, 48, 93, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 51, 95, 115, 116, 97, 99, 107, 91, 48, 44, 49, 44, 50, 93, 10, 45, 100, 111, 110, 101, 10, 34, 44, 36, 50, 10, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 109, 101, 103, 97, 99, 108, 101, 97, 110, 10, 45, 100, 111, 110, 101, 10, 34, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 36, 50, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 10, 45, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 123, 49, 45, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 45, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 123, 49, 45, 45, 49, 125, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 99, 117, 114, 115, 105, 118, 101, 32, 77, 101, 100, 105, 97, 110, 58, 32, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 44, 32, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 112, 101, 97, 116, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 66, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 32, 45, 100, 111, 110, 101, 34, 44, 36, 50, 44, 48, 10, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 114, 101, 99, 117, 114, 115, 105, 118, 101, 95, 109, 101, 100, 105, 97, 110, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 109, 117, 108, 32, 50, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 100, 45, 69, 121, 101, 32, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 58, 32, 114, 101, 100, 95, 101, 121, 101, 44, 32, 114, 101, 100, 95, 101, 121, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 46, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 109, 111, 118, 101, 32, 104, 111, 116, 32, 112, 105, 120, 101, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 44, 32, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 44, 51, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 114, 101, 109, 111, 118, 101, 95, 104, 111, 116, 112, 105, 120, 101, 108, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 117, 108, 97, 114, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 82, 117, 110, 103, 101, 45, 75, 117, 116, 116, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 51, 61, 48, 125, 44, 36, 123, 49, 52, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 49, 32, 45, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 49, 51, 44, 36, 49, 52, 34, 44, 36, 49, 50, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 98, 105, 108, 97, 116, 101, 114, 97, 108, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 44, 32, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 32, 45, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 36, 49, 44, 36, 50, 32, 45, 100, 111, 110, 101, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 100, 105, 102, 102, 117, 115, 105, 111, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 53, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 115, 109, 111, 111, 116, 104, 32, 36, 54, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 56, 44, 36, 57, 34, 44, 36, 55, 44, 48, 10, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 109, 101, 97, 110, 45, 99, 117, 114, 118, 97, 116, 117, 114, 101, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 53, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 49, 44, 36, 51, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 109, 101, 100, 105, 97, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 44, 32, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 34, 44, 36, 50, 44, 48, 10, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 100, 105, 97, 110, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 93, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 46, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 46, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 111, 107, 117, 112, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 57, 44, 36, 49, 48, 34, 44, 36, 56, 44, 48, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 103, 97, 117, 115, 115, 105, 97, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 98, 108, 117, 114, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 54, 44, 36, 55, 34, 44, 36, 53, 44, 48, 10, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 105, 118, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 116, 104, 105, 110, 32, 98, 114, 117, 115, 104, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 117, 108, 97, 114, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 82, 117, 110, 103, 101, 45, 75, 117, 116, 116, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 32, 38, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 84, 104, 105, 115, 32, 115, 101, 116, 32, 111, 102, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 117, 103, 103, 101, 115, 116, 101, 100, 32, 98, 121, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 116, 111, 116, 97, 108, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 53, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 101, 112, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 97, 115, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 116, 118, 95, 102, 108, 111, 119, 32, 36, 50, 44, 36, 49, 44, 36, 51, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 119, 97, 118, 101, 108, 101, 116, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 108, 108, 101, 108, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 34, 44, 34, 79, 110, 101, 32, 116, 104, 114, 101, 97, 100, 34, 44, 34, 84, 119, 111, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 70, 111, 117, 114, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 69, 105, 103, 104, 116, 32, 116, 104, 114, 101, 97, 100, 115, 34, 44, 34, 83, 105, 120, 116, 101, 101, 110, 32, 116, 104, 114, 101, 97, 100, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 111, 118, 101, 114, 108, 97, 112, 32, 61, 32, 105, 110, 116, 40, 50, 52, 44, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 111, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 32, 97, 110, 100, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 56, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 112, 97, 114, 97, 108, 108, 101, 108, 95, 111, 118, 101, 114, 108, 97, 112, 32, 92, 34, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 32, 36, 49, 44, 36, 51, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 92, 34, 44, 36, 53, 44, 36, 54, 34, 44, 36, 52, 44, 48, 10, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 85, 112, 115, 99, 97, 108, 101, 32, 91, 100, 105, 102, 102, 117, 115, 105, 111, 110, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 44, 32, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 116, 101, 120, 116, 40, 34, 50, 48, 48, 37, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 50, 48, 48, 37, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 32, 36, 49, 44, 36, 50, 44, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 114, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 49, 44, 49, 44, 48, 10, 45, 105, 102, 32, 123, 119, 60, 64, 123, 45, 50, 44, 119, 125, 124, 124, 104, 60, 64, 123, 45, 50, 44, 104, 125, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 52, 10, 48, 32, 45, 116, 91, 45, 49, 93, 32, 34, 68, 111, 119, 110, 115, 99, 97, 108, 105, 110, 103, 32, 105, 115, 92, 110, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 33, 34, 44, 53, 44, 53, 44, 50, 48, 44, 49, 44, 50, 53, 53, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 122, 91, 45, 50, 93, 32, 123, 53, 48, 45, 53, 48, 42, 64, 123, 45, 50, 44, 119, 125, 47, 119, 125, 37, 44, 123, 53, 48, 45, 53, 48, 42, 64, 123, 45, 50, 44, 104, 125, 47, 104, 125, 37, 44, 123, 53, 48, 43, 53, 48, 42, 64, 123, 45, 50, 44, 119, 125, 47, 119, 125, 37, 44, 123, 53, 48, 43, 53, 48, 42, 64, 123, 45, 50, 44, 104, 125, 47, 104, 125, 37, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 103, 105, 109, 112, 95, 117, 112, 115, 99, 97, 108, 101, 95, 115, 109, 97, 114, 116, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 85, 112, 115, 99, 97, 108, 101, 32, 91, 115, 99, 97, 108, 101, 50, 120, 93, 32, 58, 32, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 44, 32, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 105, 110, 103, 32, 102, 97, 99, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 120, 32, 50, 34, 44, 34, 120, 32, 51, 34, 44, 34, 120, 32, 52, 34, 44, 34, 120, 32, 54, 34, 44, 34, 120, 32, 56, 34, 44, 34, 120, 32, 57, 34, 44, 34, 120, 32, 49, 50, 34, 44, 34, 120, 32, 49, 54, 34, 44, 34, 120, 32, 49, 56, 34, 44, 34, 120, 32, 50, 55, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 98, 97, 115, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 82, 71, 66, 34, 44, 34, 89, 67, 98, 67, 114, 34, 44, 34, 76, 97, 98, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 114, 101, 45, 105, 109, 112, 108, 101, 109, 101, 110, 116, 115, 32, 116, 104, 101, 32, 115, 99, 97, 108, 105, 110, 103, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 97, 116, 32, 58, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 115, 99, 97, 108, 101, 50, 120, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 117, 115, 101, 102, 117, 108, 32, 102, 111, 114, 32, 114, 101, 115, 105, 122, 105, 110, 103, 32, 105, 109, 97, 103, 101, 115, 32, 116, 104, 97, 116, 32, 104, 97, 118, 101, 32, 118, 101, 114, 121, 32, 102, 101, 119, 32, 99, 111, 108, 111, 114, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 40, 101, 46, 103, 46, 32, 105, 110, 100, 101, 120, 101, 100, 32, 105, 109, 97, 103, 101, 115, 41, 46, 32, 73, 116, 32, 105, 115, 32, 103, 101, 110, 101, 114, 97, 108, 108, 121, 32, 117, 115, 101, 108, 101, 115, 115, 32, 102, 111, 114, 32, 116, 114, 117, 101, 32, 99, 111, 108, 111, 114, 115, 32, 105, 109, 97, 103, 101, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 114, 111, 117, 110, 100, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 48, 93, 32, 45, 114, 111, 117, 110, 100, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 50, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 32, 45, 115, 99, 97, 108, 101, 51, 120, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 61, 61, 50, 125, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 122, 32, 52, 48, 37, 44, 52, 48, 37, 44, 54, 48, 37, 44, 54, 48, 37, 10, 45, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 110, 120, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 58, 10, 45, 110, 51, 100, 32, 45, 99, 51, 100, 32, 45, 109, 51, 100, 32, 36, 49, 51, 32, 102, 51, 100, 61, 123, 48, 46, 53, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 47, 116, 97, 110, 40, 36, 55, 42, 112, 105, 47, 51, 54, 48, 41, 125, 10, 45, 102, 51, 100, 32, 36, 102, 51, 100, 32, 45, 108, 51, 100, 32, 123, 36, 56, 42, 36, 102, 51, 100, 125, 44, 123, 36, 57, 42, 36, 102, 51, 100, 125, 44, 123, 36, 49, 48, 42, 36, 102, 51, 100, 125, 32, 45, 115, 108, 51, 100, 32, 36, 49, 49, 32, 45, 115, 115, 51, 100, 32, 36, 49, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 42, 51, 100, 32, 123, 36, 51, 42, 109, 97, 120, 40, 36, 49, 44, 36, 50, 41, 125, 32, 45, 114, 51, 100, 32, 48, 44, 48, 44, 49, 44, 36, 54, 32, 45, 114, 51, 100, 32, 48, 44, 49, 44, 48, 44, 36, 53, 32, 45, 114, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 52, 10, 36, 49, 44, 36, 50, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 83, 101, 113, 117, 101, 110, 99, 101, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 101, 108, 101, 118, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 48, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 53, 45, 54, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 55, 45, 56, 125, 44, 36, 123, 49, 48, 45, 49, 57, 125, 44, 36, 57, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 44, 36, 123, 50, 48, 45, 50, 57, 125, 44, 36, 57, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 53, 45, 54, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 48, 45, 49, 57, 125, 44, 36, 57, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 50, 48, 45, 50, 57, 125, 44, 36, 57, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 101, 120, 116, 114, 117, 115, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 49, 50, 44, 49, 44, 49, 48, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 48, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 53, 45, 55, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 56, 45, 57, 125, 44, 36, 123, 49, 49, 45, 50, 48, 125, 44, 36, 49, 48, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 123, 50, 49, 45, 51, 48, 125, 44, 36, 49, 48, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 123, 53, 45, 55, 125, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 49, 45, 50, 48, 125, 44, 36, 49, 48, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 50, 49, 45, 51, 48, 125, 44, 36, 49, 48, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 105, 109, 97, 103, 101, 32, 111, 98, 106, 101, 99, 116, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 123, 49, 44, 34, 80, 108, 97, 110, 101, 34, 44, 34, 67, 117, 98, 101, 34, 44, 34, 80, 121, 114, 97, 109, 105, 100, 34, 44, 34, 83, 112, 104, 101, 114, 101, 34, 44, 34, 84, 111, 114, 117, 115, 34, 44, 34, 71, 121, 114, 111, 105, 100, 34, 44, 34, 87, 101, 105, 114, 100, 34, 44, 34, 67, 117, 112, 34, 44, 34, 82, 117, 98, 105, 107, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 105, 100, 116, 104, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 50, 52, 44, 49, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 55, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 49, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 49, 44, 48, 44, 49, 52, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 34, 44, 36, 53, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 123, 57, 45, 49, 56, 125, 44, 36, 56, 34, 44, 92, 10, 34, 36, 123, 54, 45, 55, 125, 44, 36, 123, 49, 57, 45, 50, 56, 125, 44, 36, 56, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 95, 103, 105, 109, 112, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 34, 95, 112, 114, 101, 118, 105, 101, 119, 95, 34, 44, 36, 53, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 57, 45, 49, 56, 125, 44, 36, 56, 34, 44, 92, 10, 36, 119, 34, 44, 34, 36, 104, 34, 44, 36, 123, 49, 57, 45, 50, 56, 125, 44, 36, 56, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 116, 101, 120, 116, 32, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 32, 58, 32, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 44, 32, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 54, 52, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 115, 116, 32, 116, 101, 120, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 71, 39, 77, 73, 67, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 110, 100, 32, 116, 101, 120, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 82, 111, 99, 107, 115, 33, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 50, 50, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 104, 97, 100, 111, 119, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 104, 97, 100, 111, 119, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 111, 119, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 116, 105, 111, 110, 97, 114, 121, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 57, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 58, 10, 87, 61, 123, 119, 125, 32, 72, 61, 123, 104, 125, 32, 77, 61, 123, 114, 111, 117, 110, 100, 40, 49, 46, 53, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 125, 32, 45, 114, 109, 10, 45, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 34, 36, 50, 34, 44, 34, 36, 51, 34, 44, 36, 52, 10, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 36, 123, 53, 45, 55, 125, 32, 45, 42, 51, 100, 91, 45, 49, 93, 32, 123, 48, 46, 55, 42, 36, 77, 125, 10, 45, 102, 51, 100, 32, 52, 48, 48, 48, 32, 45, 100, 98, 51, 100, 32, 48, 32, 45, 109, 51, 100, 32, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 54, 48, 42, 36, 62, 47, 36, 49, 125, 10, 97, 110, 103, 108, 101, 61, 123, 36, 62, 42, 51, 54, 48, 47, 36, 49, 125, 10, 45, 45, 114, 51, 100, 91, 48, 93, 32, 49, 44, 48, 44, 49, 44, 36, 97, 110, 103, 108, 101, 10, 36, 77, 44, 36, 77, 44, 49, 44, 51, 44, 45, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 32, 122, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 49, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 32, 122, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 45, 49, 44, 45, 49, 44, 45, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 36, 49, 49, 32, 78, 61, 64, 35, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 114, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 54, 48, 43, 52, 48, 42, 36, 62, 47, 36, 78, 125, 10, 45, 105, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 102, 99, 91, 48, 93, 32, 36, 123, 56, 45, 49, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 98, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 52, 37, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 106, 91, 48, 93, 32, 91, 45, 49, 93, 44, 36, 49, 50, 37, 44, 36, 49, 51, 37, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 44, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 87, 62, 36, 72, 125, 32, 45, 114, 50, 100, 120, 32, 36, 87, 32, 45, 101, 108, 115, 101, 32, 45, 114, 50, 100, 121, 32, 36, 72, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 62, 49, 125, 10, 45, 105, 91, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 93, 32, 91, 123, 105, 110, 116, 40, 36, 49, 47, 50, 41, 125, 93, 120, 123, 36, 49, 53, 45, 49, 125, 10, 45, 105, 91, 48, 93, 32, 91, 48, 93, 120, 123, 36, 49, 53, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 101, 120, 116, 95, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 52, 44, 34, 36, 50, 34, 44, 34, 36, 51, 34, 44, 36, 52, 44, 36, 123, 53, 45, 55, 125, 44, 36, 123, 56, 45, 49, 49, 125, 44, 36, 123, 49, 50, 45, 49, 52, 125, 44, 49, 32, 45, 100, 114, 103, 98, 97, 10, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 50, 44, 50, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 116, 105, 108, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 44, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 45, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 51, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 116, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 116, 101, 120, 116, 40, 34, 49, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 116, 101, 120, 116, 40, 34, 49, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 116, 101, 120, 116, 40, 34, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 48, 44, 49, 48, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 97, 98, 108, 101, 32, 97, 110, 116, 105, 97, 108, 105, 97, 115, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 102, 51, 100, 32, 36, 55, 10, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 34, 36, 54, 34, 44, 36, 56, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 102, 51, 100, 32, 36, 55, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 51, 100, 32, 52, 44, 36, 50, 44, 36, 51, 44, 34, 36, 52, 34, 44, 34, 36, 53, 34, 44, 34, 36, 54, 34, 44, 36, 56, 10, 45, 107, 91, 49, 44, 50, 93, 10, 45, 114, 91, 48, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 10, 45, 114, 91, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 49, 10, 45, 97, 32, 120, 10, 45, 108, 105, 110, 101, 32, 53, 48, 37, 44, 48, 44, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 66, 38, 97, 109, 112, 59, 87, 32, 112, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 116, 121, 112, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 116, 121, 112, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 112, 101, 110, 99, 105, 108, 98, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 112, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 112, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 10, 35, 64, 103, 105, 109, 112, 32, 66, 38, 97, 109, 112, 59, 87, 32, 115, 116, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 115, 116, 101, 110, 99, 105, 108, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 115, 116, 101, 110, 99, 105, 108, 98, 119, 44, 34, 36, 123, 53, 45, 54, 125, 34, 44, 92, 10, 34, 36, 123, 55, 45, 56, 125, 34, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 114, 116, 111, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 113, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 99, 97, 114, 116, 111, 111, 110, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 99, 97, 114, 116, 111, 111, 110, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 99, 97, 114, 116, 111, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 99, 97, 114, 116, 111, 111, 110, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 10, 35, 64, 103, 105, 109, 112, 32, 69, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 101, 100, 103, 101, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 44, 34, 36, 123, 54, 45, 55, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 56, 45, 57, 125, 44, 36, 53, 34, 10, 35, 64, 103, 105, 109, 112, 32, 69, 100, 103, 101, 115, 32, 111, 110, 32, 102, 105, 114, 101, 32, 58, 32, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 50, 48, 44, 49, 44, 57, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 102, 114, 97, 109, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 49, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 115, 107, 105, 112, 32, 61, 32, 95, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 55, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 36, 123, 49, 45, 55, 125, 32, 45, 114, 118, 10, 103, 105, 109, 112, 95, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 102, 105, 114, 101, 95, 101, 100, 103, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 49, 44, 36, 54, 44, 48, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 97, 118, 97, 32, 108, 97, 109, 112, 32, 58, 32, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 44, 32, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 107, 101, 121, 45, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 51, 44, 50, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 105, 110, 116, 101, 114, 45, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 51, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 108, 111, 111, 112, 105, 110, 103, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 95, 102, 108, 111, 97, 116, 40, 48, 46, 48, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 55, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 32, 58, 10, 45, 105, 102, 32, 123, 33, 64, 35, 125, 32, 40, 50, 53, 53, 59, 49, 48, 48, 94, 54, 52, 59, 49, 54, 94, 49, 50, 56, 59, 48, 41, 32, 45, 114, 91, 45, 49, 93, 32, 53, 49, 50, 44, 53, 49, 50, 44, 49, 44, 51, 44, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 45, 45, 114, 32, 36, 52, 37, 44, 36, 52, 37, 44, 49, 44, 49, 44, 48, 32, 91, 45, 49, 93, 120, 123, 36, 49, 45, 49, 125, 32, 45, 114, 97, 110, 100, 91, 94, 48, 93, 32, 48, 44, 49, 32, 45, 115, 116, 101, 110, 99, 105, 108, 91, 94, 48, 93, 32, 36, 53, 44, 48, 10, 45, 105, 102, 32, 36, 51, 32, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 111, 114, 112, 104, 91, 94, 48, 93, 32, 36, 50, 44, 36, 54, 44, 48, 10, 45, 115, 116, 101, 110, 99, 105, 108, 91, 94, 48, 93, 32, 36, 53, 44, 48, 10, 45, 114, 91, 94, 48, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 49, 44, 51, 32, 45, 98, 91, 94, 48, 93, 32, 49, 48, 32, 45, 103, 101, 91, 94, 48, 93, 32, 53, 48, 37, 32, 45, 42, 91, 94, 48, 93, 32, 50, 53, 53, 10, 45, 114, 91, 94, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 32, 45, 106, 91, 94, 48, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 33, 36, 55, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 42, 91, 94, 45, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 97, 118, 97, 108, 97, 109, 112, 98, 119, 32, 50, 44, 50, 44, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 32, 45, 107, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 76, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 48, 57, 54, 44, 50, 44, 56, 49, 57, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 48, 57, 54, 44, 50, 44, 56, 49, 57, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 109, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 49, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 34, 36, 123, 53, 45, 50, 50, 125, 34, 44, 92, 10, 34, 36, 123, 50, 51, 45, 52, 48, 125, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 108, 105, 115, 115, 97, 106, 111, 117, 115, 44, 34, 36, 123, 53, 45, 50, 50, 125, 34, 44, 92, 10, 34, 36, 123, 50, 51, 45, 52, 48, 125, 34, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 102, 105, 108, 116, 101, 114, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 71, 108, 111, 98, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 97, 108, 34, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 109, 111, 114, 112, 104, 111, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 44, 34, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 92, 10, 34, 36, 53, 44, 36, 57, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 109, 111, 114, 112, 104, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 44, 34, 36, 53, 44, 36, 56, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 44, 92, 10, 34, 36, 53, 44, 36, 57, 44, 36, 54, 44, 36, 55, 44, 48, 44, 49, 34, 10, 35, 64, 103, 105, 109, 112, 32, 79, 98, 106, 101, 99, 116, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 97, 110, 105, 109, 97, 116, 101, 111, 98, 106, 101, 99, 116, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 97, 110, 105, 109, 97, 116, 101, 111, 98, 106, 101, 99, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 98, 106, 101, 99, 116, 32, 109, 111, 116, 105, 111, 110, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 109, 111, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 109, 111, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 109, 111, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 97, 109, 101, 114, 97, 32, 112, 111, 115, 105, 116, 105, 111, 110, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 109, 101, 114, 97, 32, 88, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 109, 101, 114, 97, 32, 89, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 70, 114, 97, 109, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 52, 48, 48, 44, 53, 48, 44, 49, 57, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 109, 111, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 89, 111, 117, 114, 32, 109, 97, 115, 107, 32, 109, 117, 115, 116, 32, 98, 101, 32, 112, 108, 97, 99, 101, 100, 32, 98, 101, 108, 111, 119, 32, 121, 111, 117, 114, 32, 105, 109, 97, 103, 101, 46, 32, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 105, 62, 60, 98, 62, 65, 99, 116, 105, 118, 101, 32, 97, 110, 100, 32, 98, 101, 108, 111, 119, 60, 47, 98, 62, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 111, 114, 107, 32, 111, 110, 32, 102, 114, 97, 109, 101, 115, 101, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 111, 32, 117, 115, 101, 32, 116, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 121, 111, 117, 114, 32, 109, 97, 115, 107, 32, 109, 117, 115, 116, 32, 98, 101, 32, 112, 108, 97, 99, 101, 100, 32, 98, 101, 108, 111, 119, 32, 121, 111, 117, 114, 32, 102, 114, 97, 109, 101, 115, 46, 32, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 105, 62, 60, 98, 62, 65, 108, 108, 60, 47, 98, 62, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 100, 118, 97, 110, 99, 101, 100, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 111, 98, 106, 101, 99, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 97, 110, 100, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 110, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 106, 117, 115, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 114, 101, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 76, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 115, 58, 32, 79, 98, 106, 101, 99, 116, 32, 105, 109, 97, 103, 101, 32, 116, 111, 112, 44, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 105, 109, 97, 103, 101, 32, 98, 101, 108, 111, 119, 44, 32, 109, 97, 115, 107, 32, 98, 111, 116, 116, 111, 109, 46, 32, 76, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 102, 111, 114, 32, 102, 114, 97, 109, 101, 115, 101, 116, 115, 58, 32, 70, 114, 97, 109, 101, 115, 101, 116, 32, 116, 111, 112, 44, 32, 111, 98, 106, 101, 99, 116, 32, 105, 109, 97, 103, 101, 32, 98, 101, 108, 111, 119, 44, 32, 109, 97, 115, 107, 32, 98, 111, 116, 116, 111, 109, 46, 32, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 105, 62, 60, 98, 62, 65, 108, 108, 60, 47, 98, 62, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 109, 101, 114, 97, 32, 109, 111, 116, 105, 111, 110, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 108, 111, 115, 101, 117, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 85, 115, 101, 32, 116, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 119, 105, 116, 104, 111, 117, 116, 32, 109, 97, 115, 107, 32, 108, 97, 121, 101, 114, 46, 32, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 105, 62, 60, 98, 62, 65, 99, 116, 105, 118, 101, 60, 47, 98, 62, 60, 47, 105, 62, 32, 111, 114, 32, 60, 105, 62, 60, 98, 62, 65, 108, 108, 60, 47, 98, 62, 60, 47, 105, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 52, 47, 48, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 97, 110, 105, 109, 97, 116, 101, 100, 37, 50, 48, 111, 98, 106, 101, 99, 116, 115, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 97, 110, 105, 109, 97, 116, 101, 111, 98, 106, 101, 99, 116, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 48, 125, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 10, 45, 114, 32, 123, 119, 42, 123, 36, 54, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 123, 104, 42, 123, 36, 54, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 49, 44, 123, 115, 125, 44, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 44, 45, 50, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 114, 118, 91, 48, 44, 49, 93, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 48, 93, 32, 36, 49, 49, 32, 45, 116, 50, 91, 48, 93, 32, 36, 49, 51, 44, 50, 53, 54, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 48, 93, 32, 36, 49, 50, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 49, 93, 32, 91, 48, 93, 10, 45, 114, 109, 91, 48, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 51, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 50, 91, 45, 49, 44, 45, 50, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 44, 45, 50, 93, 32, 48, 44, 50, 53, 53, 10, 45, 115, 91, 49, 93, 32, 99, 32, 45, 97, 91, 49, 44, 50, 44, 51, 44, 45, 49, 93, 32, 99, 10, 45, 115, 91, 50, 93, 32, 99, 32, 45, 97, 91, 50, 44, 51, 44, 52, 44, 45, 49, 93, 32, 99, 10, 45, 114, 118, 91, 49, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 49, 44, 45, 49, 93, 10, 45, 114, 118, 91, 50, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 50, 44, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 49, 44, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 100, 120, 61, 123, 36, 49, 47, 36, 55, 125, 32, 100, 121, 61, 123, 36, 50, 47, 36, 55, 125, 32, 100, 122, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 100, 120, 37, 44, 36, 100, 121, 37, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 32, 100, 122, 61, 123, 36, 100, 122, 43, 123, 123, 36, 51, 125, 47, 36, 55, 125, 125, 10, 45, 101, 108, 115, 101, 32, 100, 122, 61, 123, 36, 100, 122, 45, 123, 123, 123, 49, 45, 123, 49, 48, 46, 48, 49, 43, 36, 51, 125, 47, 49, 48, 125, 125, 47, 36, 55, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 122, 111, 111, 109, 91, 45, 49, 44, 45, 50, 93, 32, 36, 100, 122, 44, 36, 52, 44, 36, 53, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 116, 50, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 123, 36, 49, 48, 47, 53, 125, 44, 123, 36, 49, 48, 47, 50, 125, 44, 48, 32, 45, 99, 117, 116, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 45, 51, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 105, 110, 100, 101, 120, 61, 123, 45, 51, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 10, 45, 114, 118, 91, 45, 51, 44, 36, 105, 110, 100, 101, 120, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 45, 51, 44, 36, 105, 110, 100, 101, 120, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 48, 125, 32, 102, 114, 97, 109, 101, 115, 61, 123, 64, 35, 45, 49, 125, 32, 99, 111, 117, 110, 116, 101, 114, 61, 123, 45, 53, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 36, 49, 49, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 49, 51, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 36, 49, 50, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 102, 114, 97, 109, 101, 115, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 36, 99, 111, 117, 110, 116, 101, 114, 93, 32, 91, 45, 49, 93, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 45, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 44, 45, 52, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 115, 101, 32, 102, 114, 97, 109, 101, 115, 61, 123, 64, 35, 45, 50, 125, 32, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 115, 91, 45, 51, 93, 32, 99, 32, 45, 97, 91, 45, 53, 44, 45, 52, 44, 45, 51, 44, 45, 49, 93, 32, 99, 10, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 52, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 45, 49, 44, 45, 52, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 51, 10, 45, 101, 110, 100, 105, 102, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 45, 54, 125, 32, 100, 120, 61, 48, 32, 100, 121, 61, 48, 32, 100, 122, 61, 49, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 102, 114, 97, 109, 101, 115, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 44, 45, 50, 93, 10, 45, 115, 104, 105, 102, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 100, 120, 37, 44, 36, 100, 121, 37, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 32, 100, 122, 61, 123, 36, 100, 122, 43, 123, 123, 36, 51, 125, 47, 36, 102, 114, 97, 109, 101, 115, 125, 125, 10, 45, 101, 108, 115, 101, 32, 100, 122, 61, 123, 36, 100, 122, 45, 123, 123, 123, 49, 45, 123, 49, 48, 46, 48, 49, 43, 36, 51, 125, 47, 49, 48, 125, 125, 47, 36, 102, 114, 97, 109, 101, 115, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 122, 111, 111, 109, 91, 45, 49, 44, 45, 50, 93, 32, 36, 100, 122, 44, 36, 52, 44, 36, 53, 44, 48, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 116, 50, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 123, 36, 49, 48, 47, 53, 125, 44, 123, 36, 49, 48, 47, 50, 125, 44, 48, 32, 45, 99, 117, 116, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 36, 99, 111, 117, 110, 116, 101, 114, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 36, 99, 111, 117, 110, 116, 101, 114, 44, 123, 36, 99, 111, 117, 110, 116, 101, 114, 45, 49, 125, 93, 10, 100, 120, 61, 123, 36, 100, 120, 43, 123, 36, 49, 47, 36, 102, 114, 97, 109, 101, 115, 125, 125, 32, 100, 121, 61, 123, 36, 100, 121, 43, 123, 36, 50, 47, 36, 102, 114, 97, 109, 101, 115, 125, 125, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 45, 49, 125, 10, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 44, 45, 51, 44, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 35, 99, 97, 109, 101, 114, 97, 32, 109, 111, 116, 105, 111, 110, 32, 111, 110, 108, 121, 10, 45, 101, 108, 115, 101, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 10, 45, 114, 32, 123, 119, 42, 123, 36, 54, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 123, 104, 42, 123, 36, 54, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 49, 44, 123, 115, 125, 44, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 100, 120, 61, 48, 32, 100, 121, 61, 48, 32, 100, 122, 61, 49, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 99, 111, 117, 110, 116, 101, 114, 61, 36, 55, 32, 45, 101, 108, 115, 101, 32, 99, 111, 117, 110, 116, 101, 114, 61, 123, 64, 35, 45, 49, 125, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 100, 101, 120, 61, 123, 45, 50, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 99, 111, 117, 110, 116, 101, 114, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 36, 105, 110, 100, 101, 120, 32, 45, 101, 110, 100, 105, 102, 10, 100, 120, 61, 123, 36, 100, 120, 43, 123, 36, 49, 47, 36, 55, 125, 125, 32, 100, 121, 61, 123, 36, 100, 121, 43, 123, 36, 50, 47, 36, 55, 125, 125, 10, 45, 115, 104, 105, 102, 116, 91, 36, 105, 110, 100, 101, 120, 93, 32, 36, 100, 120, 37, 44, 36, 100, 121, 37, 10, 45, 105, 102, 32, 123, 36, 51, 62, 61, 48, 125, 32, 100, 122, 61, 123, 36, 100, 122, 43, 123, 123, 36, 51, 125, 47, 36, 55, 125, 125, 10, 45, 101, 108, 115, 101, 32, 100, 122, 61, 123, 36, 100, 122, 45, 123, 123, 123, 49, 45, 123, 49, 48, 46, 48, 49, 43, 36, 51, 125, 47, 49, 48, 125, 125, 47, 36, 55, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 122, 111, 111, 109, 91, 36, 105, 110, 100, 101, 120, 93, 32, 36, 49, 54, 44, 36, 52, 44, 36, 53, 44, 48, 10, 45, 103, 105, 109, 112, 95, 122, 111, 111, 109, 91, 36, 105, 110, 100, 101, 120, 93, 32, 36, 100, 122, 44, 36, 52, 44, 36, 53, 44, 48, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 36, 105, 110, 100, 101, 120, 93, 32, 123, 36, 49, 48, 47, 53, 125, 44, 123, 36, 49, 48, 47, 50, 125, 44, 48, 32, 45, 99, 117, 116, 91, 36, 105, 110, 100, 101, 120, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 54, 33, 61, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 112, 114, 101, 118, 105, 101, 119, 32, 102, 117, 110, 99, 116, 105, 111, 110, 10, 103, 105, 109, 112, 95, 116, 107, 95, 97, 110, 105, 109, 97, 116, 101, 111, 98, 106, 101, 99, 116, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 48, 125, 32, 115, 116, 97, 114, 116, 95, 120, 61, 123, 123, 120, 77, 47, 119, 125, 42, 49, 48, 48, 125, 32, 115, 116, 97, 114, 116, 95, 121, 61, 123, 123, 121, 77, 47, 104, 125, 42, 49, 48, 48, 125, 32, 45, 101, 108, 115, 101, 32, 115, 116, 97, 114, 116, 95, 120, 61, 53, 48, 32, 115, 116, 97, 114, 116, 95, 121, 61, 53, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 97, 110, 105, 109, 97, 116, 101, 111, 98, 106, 101, 99, 116, 32, 36, 123, 49, 45, 54, 125, 44, 49, 44, 36, 123, 56, 45, 45, 49, 125, 32, 45, 107, 91, 48, 93, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 123, 36, 49, 43, 36, 115, 116, 97, 114, 116, 95, 120, 125, 37, 44, 123, 36, 50, 43, 36, 115, 116, 97, 114, 116, 95, 121, 45, 49, 48, 125, 37, 44, 123, 36, 49, 43, 36, 115, 116, 97, 114, 116, 95, 120, 125, 37, 44, 123, 36, 50, 43, 36, 115, 116, 97, 114, 116, 95, 121, 43, 49, 48, 125, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 123, 36, 49, 43, 36, 115, 116, 97, 114, 116, 95, 120, 45, 49, 48, 125, 37, 44, 123, 36, 50, 43, 36, 115, 116, 97, 114, 116, 95, 121, 125, 37, 44, 123, 36, 49, 43, 36, 115, 116, 97, 114, 116, 95, 120, 43, 49, 48, 125, 37, 44, 123, 36, 50, 43, 36, 115, 116, 97, 114, 116, 95, 121, 125, 37, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 123, 36, 52, 42, 49, 48, 48, 125, 37, 44, 48, 37, 44, 123, 36, 52, 42, 49, 48, 48, 125, 37, 44, 123, 123, 36, 53, 42, 49, 48, 48, 125, 45, 53, 125, 37, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 123, 36, 52, 42, 49, 48, 48, 125, 37, 44, 123, 123, 36, 53, 42, 49, 48, 48, 125, 43, 53, 125, 37, 44, 123, 36, 52, 42, 49, 48, 48, 125, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 48, 37, 44, 123, 36, 53, 42, 49, 48, 48, 125, 37, 44, 123, 123, 36, 52, 42, 49, 48, 48, 125, 45, 53, 125, 37, 44, 123, 36, 53, 42, 49, 48, 48, 125, 37, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 108, 105, 110, 101, 91, 48, 93, 32, 123, 123, 36, 52, 42, 49, 48, 48, 125, 43, 53, 125, 37, 44, 123, 36, 53, 42, 49, 48, 48, 125, 37, 44, 49, 48, 48, 37, 44, 123, 36, 53, 42, 49, 48, 48, 125, 37, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 80, 108, 97, 115, 109, 97, 32, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 44, 32, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 51, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 49, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 58, 10, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 10, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 91, 48, 44, 49, 93, 32, 45, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 95, 112, 108, 97, 115, 109, 97, 32, 54, 44, 36, 50, 44, 36, 51, 37, 32, 45, 107, 91, 49, 45, 45, 50, 93, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 35, 64, 103, 105, 109, 112, 32, 82, 111, 100, 105, 108, 105, 117, 115, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 68, 97, 114, 107, 101, 114, 34, 44, 34, 76, 105, 103, 104, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 114, 111, 100, 105, 108, 105, 117, 115, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 114, 111, 100, 105, 108, 105, 117, 115, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 114, 111, 100, 105, 108, 105, 117, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 114, 111, 100, 105, 108, 105, 117, 115, 44, 34, 36, 123, 54, 45, 49, 48, 125, 44, 36, 53, 34, 44, 92, 10, 34, 36, 123, 49, 49, 45, 49, 53, 125, 44, 36, 53, 34, 10, 35, 64, 103, 105, 109, 112, 32, 83, 111, 102, 116, 32, 103, 108, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 95, 105, 110, 116, 40, 49, 48, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 97, 115, 32, 102, 105, 108, 101, 115, 32, 61, 32, 95, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 98, 62, 69, 110, 100, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 32, 58, 10, 45, 105, 102, 32, 36, 51, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 52, 47, 103, 109, 105, 99, 95, 103, 108, 111, 119, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 108, 111, 119, 44, 34, 36, 53, 34, 44, 92, 10, 34, 36, 54, 34, 44, 36, 49, 44, 36, 50, 44, 64, 123, 45, 113, 117, 111, 116, 101, 92, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 125, 10, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 103, 108, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 103, 108, 111, 119, 44, 34, 36, 53, 34, 44, 92, 10, 34, 36, 54, 34, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 83, 112, 101, 99, 116, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 97, 110, 100, 112, 97, 115, 115, 32, 58, 32, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 44, 32, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 119, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 68, 117, 112, 108, 105, 99, 97, 116, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 97, 110, 100, 112, 97, 115, 115, 32, 36, 49, 37, 44, 36, 50, 37, 34, 44, 36, 51, 44, 36, 52, 10, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 97, 110, 100, 112, 97, 115, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 70, 111, 117, 114, 105, 101, 114, 32, 97, 110, 97, 108, 121, 115, 105, 115, 32, 58, 32, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 44, 32, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 10, 35, 64, 103, 105, 109, 112, 32, 70, 111, 117, 114, 105, 101, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 32, 58, 32, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 44, 32, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 102, 111, 114, 109, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 68, 105, 114, 101, 99, 116, 34, 44, 34, 73, 110, 118, 101, 114, 115, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 102, 102, 116, 56, 50, 102, 108, 111, 97, 116, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 102, 108, 111, 97, 116, 50, 102, 102, 116, 56, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 48, 10, 45, 101, 108, 115, 101, 32, 45, 100, 102, 102, 116, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 70, 111, 117, 114, 105, 101, 114, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 58, 32, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 120, 116, 32, 61, 32, 116, 101, 120, 116, 40, 34, 92, 50, 53, 49, 32, 71, 39, 77, 73, 67, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 55, 44, 49, 51, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 32, 84, 111, 32, 109, 97, 107, 101, 32, 116, 104, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 118, 105, 115, 105, 98, 108, 101, 32, 97, 102, 116, 101, 114, 119, 97, 114, 100, 115, 44, 32, 117, 115, 101, 32, 116, 104, 101, 32, 39, 70, 111, 117, 114, 105, 101, 114, 32, 65, 110, 97, 108, 121, 115, 105, 115, 39, 32, 102, 105, 108, 116, 101, 114, 46, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 58, 10, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 32, 34, 36, 49, 34, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 109, 101, 114, 103, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 113, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 115, 112, 108, 105, 116, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 44, 32, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 115, 112, 108, 105, 116, 115, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 108, 97, 121, 101, 114, 32, 105, 110, 116, 111, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 44, 32, 111, 110, 101, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 116, 104, 101, 32, 108, 111, 119, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 32, 40, 99, 111, 108, 111, 114, 115, 41, 44, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 105, 101, 115, 32, 40, 99, 111, 110, 116, 111, 117, 114, 115, 41, 46, 32, 89, 111, 117, 32, 99, 97, 110, 32, 116, 104, 117, 115, 32, 112, 114, 111, 99, 101, 115, 115, 32, 101, 97, 99, 104, 32, 108, 97, 121, 101, 114, 32, 115, 101, 112, 97, 114, 97, 116, 101, 108, 121, 44, 32, 116, 104, 101, 110, 32, 114, 101, 99, 111, 109, 112, 111, 115, 101, 32, 116, 104, 101, 109, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 60, 98, 62, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 109, 101, 114, 103, 105, 110, 103, 60, 47, 98, 62, 32, 102, 105, 108, 116, 101, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 36, 49, 32, 45, 107, 91, 48, 44, 49, 93, 32, 45, 97, 32, 120, 10, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 102, 114, 101, 113, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 50, 93, 32, 50, 32, 45, 43, 91, 45, 50, 93, 32, 49, 50, 56, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 83, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 51, 68, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 51, 68, 32, 67, 111, 110, 118, 101, 114, 115, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 107, 101, 51, 68, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 107, 101, 51, 68, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 101, 110, 101, 32, 115, 101, 108, 101, 99, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 34, 44, 34, 100, 97, 121, 108, 105, 103, 104, 116, 32, 115, 99, 101, 110, 101, 34, 44, 34, 111, 112, 116, 105, 109, 105, 122, 101, 100, 32, 108, 97, 116, 101, 114, 97, 108, 32, 105, 110, 104, 105, 98, 105, 116, 105, 111, 110, 34, 44, 34, 108, 105, 103, 104, 116, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 100, 97, 114, 107, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 108, 97, 110, 100, 115, 99, 97, 112, 101, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 116, 111, 112, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 108, 101, 102, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 111, 117, 116, 100, 111, 111, 114, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 105, 110, 100, 111, 111, 114, 34, 44, 34, 112, 111, 114, 116, 114, 97, 105, 116, 34, 44, 34, 104, 117, 109, 97, 110, 32, 49, 34, 44, 34, 104, 117, 109, 97, 110, 32, 50, 34, 44, 34, 115, 116, 117, 100, 105, 111, 34, 44, 34, 117, 110, 100, 101, 114, 119, 97, 116, 101, 114, 34, 44, 34, 102, 108, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 114, 32, 112, 111, 105, 110, 116, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 119, 105, 110, 100, 111, 119, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 102, 105, 101, 108, 100, 32, 99, 111, 110, 116, 114, 111, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 100, 101, 116, 97, 105, 108, 32, 101, 110, 104, 97, 110, 99, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 79, 70, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 105, 112, 32, 108, 101, 102, 116, 32, 47, 32, 114, 105, 103, 104, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 111, 32, 117, 115, 101, 32, 116, 104, 105, 115, 32, 111, 112, 116, 105, 111, 110, 32, 121, 111, 117, 114, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 109, 117, 115, 116, 32, 98, 101, 32, 112, 108, 97, 99, 101, 100, 32, 98, 101, 108, 111, 119, 32, 121, 111, 117, 114, 32, 105, 109, 97, 103, 101, 46, 32, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 105, 62, 60, 98, 62, 65, 99, 116, 105, 118, 101, 32, 97, 110, 100, 32, 98, 101, 108, 111, 119, 60, 47, 98, 62, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 109, 97, 103, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 38, 32, 87, 104, 105, 116, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 115, 105, 100, 101, 32, 107, 101, 101, 112, 32, 119, 105, 100, 116, 104, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 115, 105, 100, 101, 32, 107, 101, 101, 112, 32, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 72, 97, 108, 102, 32, 115, 105, 100, 101, 32, 32, 98, 121, 32, 115, 105, 100, 101, 34, 44, 34, 72, 97, 108, 102, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 70, 117, 108, 108, 32, 72, 68, 32, 102, 114, 97, 109, 101, 32, 112, 97, 99, 107, 105, 110, 103, 34, 44, 34, 85, 110, 97, 108, 105, 103, 110, 101, 100, 32, 105, 109, 97, 103, 101, 115, 34, 44, 34, 68, 101, 112, 116, 104, 32, 109, 97, 112, 32, 111, 110, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 99, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 45, 103, 104, 111, 115, 116, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 111, 111, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 108, 97, 115, 115, 101, 115, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 105, 100, 105, 114, 101, 99, 116, 105, 111, 110, 97, 108, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 70, 114, 97, 109, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 102, 114, 97, 109, 101, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 114, 111, 117, 116, 105, 110, 101, 32, 102, 111, 114, 32, 119, 105, 103, 103, 108, 101, 32, 97, 110, 105, 109, 97, 116, 105, 111, 110, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 48, 44, 53, 48, 44, 49, 57, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 50, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 50, 68, 116, 111, 51, 68, 37, 50, 48, 51, 68, 45, 97, 117, 116, 111, 109, 97, 116, 105, 99, 37, 50, 48, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 37, 50, 48, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 107, 101, 51, 68, 32, 58, 10, 35, 32, 112, 114, 101, 112, 97, 114, 101, 32, 105, 109, 97, 103, 101, 10, 115, 104, 61, 123, 45, 36, 50, 125, 32, 115, 119, 61, 123, 45, 36, 115, 104, 45, 36, 51, 125, 32, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 115, 105, 122, 101, 50, 61, 123, 104, 125, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 91, 48, 93, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 35, 32, 99, 114, 101, 97, 116, 101, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 91, 45, 49, 93, 32, 36, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 48, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 48, 44, 123, 123, 119, 43, 104, 125, 47, 55, 48, 48, 125, 44, 123, 123, 119, 43, 104, 125, 47, 51, 53, 48, 125, 44, 49, 44, 48, 44, 48, 44, 48, 10, 35, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 10, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 123, 123, 64, 35, 125, 33, 61, 51, 125, 10, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 70, 111, 114, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 115, 101, 108, 101, 99, 116, 32, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 67, 84, 73, 86, 69, 32, 65, 78, 68, 32, 66, 69, 76, 79, 87, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 91, 49, 44, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 35, 32, 97, 110, 97, 108, 121, 122, 101, 32, 105, 109, 97, 103, 101, 32, 102, 101, 97, 116, 117, 114, 101, 115, 32, 116, 111, 32, 101, 110, 114, 105, 99, 104, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 109, 97, 112, 115, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 10, 45, 105, 102, 32, 123, 36, 57, 33, 61, 48, 125, 10, 45, 45, 102, 99, 91, 48, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 57, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 49, 54, 53, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 49, 33, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 57, 47, 53, 125, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 57, 47, 53, 125, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 52, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 57, 47, 53, 125, 44, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 33, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 53, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 55, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 32, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 97, 118, 61, 64, 123, 45, 49, 44, 97, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 36, 97, 118, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 50, 53, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 56, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 48, 93, 32, 123, 123, 36, 53, 42, 51, 125, 43, 50, 125, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 123, 53, 45, 123, 36, 53, 47, 50, 125, 125, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 53, 47, 49, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 123, 36, 54, 42, 50, 125, 44, 123, 49, 46, 53, 45, 123, 48, 46, 49, 43, 123, 36, 53, 47, 51, 46, 54, 125, 125, 125, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 53, 44, 36, 54, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 33, 61, 48, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 49, 44, 123, 48, 46, 50, 53, 45, 123, 36, 55, 47, 50, 48, 125, 125, 44, 48, 44, 51, 48, 44, 51, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 55, 47, 49, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 102, 114, 97, 109, 101, 32, 115, 105, 122, 101, 32, 102, 111, 114, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 49, 125, 32, 45, 114, 32, 123, 119, 42, 123, 36, 50, 51, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 123, 104, 42, 123, 36, 50, 51, 47, 109, 97, 120, 40, 119, 44, 104, 41, 125, 125, 44, 49, 44, 51, 44, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 35, 99, 114, 101, 97, 116, 101, 32, 115, 101, 99, 111, 110, 100, 32, 118, 105, 101, 119, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 115, 119, 60, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 44, 49, 44, 50, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 115, 119, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 36, 115, 104, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 44, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 123, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 50, 93, 32, 48, 32, 45, 110, 91, 45, 51, 93, 32, 48, 44, 123, 45, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 32, 45, 97, 91, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 49, 32, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 51, 93, 32, 36, 115, 104, 44, 48, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 35, 99, 114, 101, 97, 116, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 48, 125, 10, 99, 111, 117, 110, 116, 61, 123, 36, 50, 50, 125, 32, 100, 101, 118, 61, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 99, 111, 117, 110, 116, 32, 100, 101, 118, 61, 123, 36, 100, 101, 118, 43, 123, 36, 115, 119, 47, 36, 50, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 115, 119, 60, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 48, 125, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 100, 101, 118, 32, 45, 101, 108, 115, 101, 32, 45, 110, 91, 45, 50, 93, 32, 123, 45, 36, 100, 101, 118, 125, 44, 36, 100, 101, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 115, 119, 60, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 44, 48, 93, 32, 45, 114, 118, 10, 45, 101, 108, 115, 101, 10, 99, 111, 117, 110, 116, 61, 123, 97, 98, 115, 40, 36, 50, 50, 47, 50, 41, 125, 32, 100, 101, 118, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 99, 111, 117, 110, 116, 32, 100, 101, 118, 61, 123, 36, 100, 101, 118, 43, 123, 36, 115, 119, 47, 36, 99, 111, 117, 110, 116, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 44, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 48, 125, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 123, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 10, 45, 101, 108, 115, 101, 32, 45, 110, 91, 45, 50, 93, 32, 123, 45, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 44, 123, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 50, 93, 32, 48, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 48, 125, 32, 45, 110, 91, 45, 51, 93, 32, 48, 44, 123, 45, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 10, 45, 101, 108, 115, 101, 32, 45, 110, 91, 45, 51, 93, 32, 123, 45, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 44, 123, 97, 98, 115, 40, 36, 100, 101, 118, 47, 50, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 49, 32, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 52, 93, 32, 45, 49, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 32, 45, 109, 118, 91, 48, 45, 45, 49, 58, 50, 93, 32, 45, 49, 32, 45, 114, 118, 91, 48, 45, 53, 48, 37, 93, 32, 45, 109, 118, 91, 48, 93, 32, 53, 48, 37, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 99, 114, 111, 112, 32, 105, 109, 97, 103, 101, 115, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 49, 56, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 115, 104, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 115, 104, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 104, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 57, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 115, 119, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 115, 119, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 119, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 32, 123, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 44, 48, 44, 123, 119, 45, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 44, 123, 104, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 97, 108, 105, 103, 110, 32, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 10, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 48, 46, 50, 57, 57, 44, 48, 44, 48, 46, 53, 56, 55, 44, 48, 44, 48, 46, 49, 49, 52, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 54, 44, 52, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 33, 61, 49, 52, 125, 38, 38, 123, 36, 49, 51, 33, 61, 49, 53, 125, 125, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 91, 48, 44, 49, 93, 32, 36, 49, 51, 44, 36, 49, 48, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 107, 91, 48, 44, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 53, 125, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 52, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 49, 44, 36, 49, 53, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 49, 48, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 36, 49, 54, 44, 48, 44, 48, 44, 36, 49, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 107, 101, 51, 68, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 48, 125, 32, 115, 104, 112, 114, 101, 61, 123, 36, 50, 47, 51, 125, 32, 115, 119, 112, 114, 101, 61, 123, 36, 51, 47, 51, 125, 32, 45, 101, 108, 115, 101, 32, 115, 104, 112, 114, 101, 61, 123, 36, 50, 42, 123, 52, 48, 48, 47, 36, 50, 51, 125, 125, 32, 115, 119, 112, 114, 101, 61, 123, 36, 51, 42, 123, 52, 48, 48, 47, 36, 50, 51, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 49, 61, 61, 49, 125, 38, 38, 123, 123, 64, 35, 125, 33, 61, 50, 125, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 32, 45, 116, 101, 120, 116, 32, 34, 70, 111, 114, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 115, 101, 108, 101, 99, 116, 32, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 67, 84, 73, 86, 69, 32, 65, 78, 68, 32, 66, 69, 76, 79, 87, 46, 34, 44, 49, 48, 44, 57, 48, 37, 44, 50, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 109, 97, 107, 101, 51, 68, 32, 36, 49, 44, 36, 115, 104, 112, 114, 101, 44, 36, 115, 119, 112, 114, 101, 44, 36, 123, 52, 45, 49, 50, 125, 44, 123, 105, 102, 40, 123, 36, 50, 48, 61, 61, 49, 125, 44, 49, 52, 44, 36, 49, 51, 41, 125, 44, 36, 123, 49, 52, 45, 49, 57, 125, 44, 48, 44, 36, 123, 50, 49, 45, 50, 51, 125, 32, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 124, 124, 123, 36, 50, 48, 61, 61, 49, 125, 125, 32, 45, 107, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 51, 68, 32, 86, 105, 100, 101, 111, 32, 67, 111, 110, 118, 101, 114, 115, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 83, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 101, 110, 101, 32, 115, 101, 108, 101, 99, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 34, 44, 34, 100, 97, 121, 108, 105, 103, 104, 116, 32, 115, 99, 101, 110, 101, 34, 44, 34, 111, 112, 116, 105, 109, 105, 122, 101, 100, 32, 108, 97, 116, 101, 114, 97, 108, 32, 105, 110, 104, 105, 98, 105, 116, 105, 111, 110, 34, 44, 34, 108, 105, 103, 104, 116, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 100, 97, 114, 107, 32, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 108, 97, 110, 100, 115, 99, 97, 112, 101, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 116, 111, 112, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 108, 101, 102, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 111, 117, 116, 100, 111, 111, 114, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 105, 110, 100, 111, 111, 114, 34, 44, 34, 112, 111, 114, 116, 114, 97, 105, 116, 34, 44, 34, 104, 117, 109, 97, 110, 32, 49, 34, 44, 34, 104, 117, 109, 97, 110, 32, 32, 50, 34, 44, 34, 115, 116, 117, 100, 105, 111, 34, 44, 34, 117, 110, 100, 101, 114, 119, 97, 116, 101, 114, 34, 44, 34, 102, 108, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 114, 32, 112, 111, 105, 110, 116, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 114, 101, 111, 32, 119, 105, 110, 100, 111, 119, 32, 112, 111, 115, 105, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 102, 105, 101, 108, 100, 32, 99, 111, 110, 116, 114, 111, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 100, 101, 116, 97, 105, 108, 32, 101, 110, 104, 97, 110, 99, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 79, 70, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 116, 105, 111, 110, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 105, 112, 32, 108, 101, 102, 116, 32, 47, 32, 114, 105, 103, 104, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 70, 114, 97, 109, 101, 115, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 38, 32, 87, 104, 105, 116, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 115, 105, 100, 101, 32, 107, 101, 101, 112, 32, 119, 105, 100, 116, 104, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 72, 97, 108, 102, 32, 115, 105, 100, 101, 32, 32, 98, 121, 32, 115, 105, 100, 101, 34, 44, 34, 72, 97, 108, 102, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 70, 117, 108, 108, 32, 72, 68, 32, 102, 114, 97, 109, 101, 32, 112, 97, 99, 107, 105, 110, 103, 34, 44, 34, 76, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 115, 34, 44, 34, 68, 101, 112, 116, 104, 32, 109, 97, 112, 115, 32, 111, 110, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 116, 111, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 108, 100, 101, 114, 32, 110, 97, 109, 101, 32, 61, 32, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 99, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 45, 103, 104, 111, 115, 116, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 111, 111, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 108, 97, 115, 115, 101, 115, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 116, 32, 102, 114, 97, 109, 101, 32, 102, 111, 114, 109, 97, 116, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 119, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 48, 44, 49, 50, 56, 44, 52, 48, 57, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 102, 111, 114, 109, 97, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 52, 58, 51, 34, 44, 34, 49, 54, 58, 57, 34, 44, 34, 51, 58, 50, 34, 44, 34, 50, 58, 49, 34, 44, 34, 50, 49, 58, 57, 34, 44, 34, 75, 101, 101, 112, 32, 97, 115, 112, 101, 99, 116, 32, 114, 97, 116, 105, 111, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 102, 114, 97, 109, 101, 32, 115, 116, 97, 99, 107, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 73, 110, 112, 117, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 76, 97, 121, 101, 114, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 34, 44, 34, 66, 97, 116, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 102, 114, 97, 109, 101, 32, 102, 105, 108, 101, 115, 32, 110, 97, 109, 101, 32, 61, 32, 116, 101, 120, 116, 40, 34, 102, 114, 97, 109, 101, 95, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 32, 102, 114, 97, 109, 101, 32, 110, 117, 109, 98, 101, 114, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 57, 57, 57, 57, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 32, 102, 114, 97, 109, 101, 32, 110, 117, 109, 98, 101, 114, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 57, 57, 57, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 102, 105, 108, 101, 115, 32, 102, 111, 114, 109, 97, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 46, 112, 110, 103, 34, 44, 34, 46, 98, 109, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 65, 100, 118, 97, 110, 99, 101, 100, 32, 101, 100, 105, 116, 105, 110, 103, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 99, 117, 115, 116, 111, 109, 32, 102, 105, 108, 116, 101, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 111, 102, 102, 34, 44, 34, 111, 110, 34, 44, 34, 108, 101, 102, 116, 32, 115, 116, 114, 101, 97, 109, 32, 111, 110, 108, 121, 34, 44, 32, 34, 114, 105, 103, 104, 116, 32, 115, 116, 114, 101, 97, 109, 32, 111, 110, 108, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 115, 116, 111, 109, 32, 102, 105, 108, 116, 101, 114, 32, 99, 111, 100, 101, 32, 61, 32, 116, 101, 120, 116, 40, 49, 44, 34, 35, 32, 111, 108, 100, 32, 109, 111, 118, 105, 101, 32, 35, 92, 110, 35, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 103, 105, 109, 112, 95, 115, 116, 114, 105, 112, 101, 115, 95, 121, 32, 49, 48, 44, 51, 44, 48, 32, 45, 115, 101, 112, 105, 97, 32, 92, 110, 92, 110, 35, 115, 105, 109, 112, 108, 101, 32, 118, 105, 110, 116, 97, 103, 101, 35, 92, 110, 35, 45, 45, 102, 99, 32, 48, 44, 49, 53, 44, 49, 50, 53, 32, 45, 114, 118, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 48, 46, 51, 32, 92, 110, 92, 110, 35, 32, 72, 68, 82, 32, 112, 111, 112, 111, 117, 116, 32, 35, 92, 110, 35, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 50, 44, 48, 46, 51, 44, 51, 44, 50, 32, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 52, 44, 53, 44, 51, 44, 48, 44, 48, 44, 48, 92, 110, 92, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 102, 97, 100, 101, 32, 105, 110, 32, 102, 114, 97, 109, 101, 115, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 102, 97, 100, 101, 32, 111, 117, 116, 32, 102, 114, 97, 109, 101, 115, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 65, 100, 118, 97, 110, 99, 101, 100, 32, 113, 117, 97, 108, 105, 116, 121, 32, 99, 111, 110, 116, 114, 111, 108, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 101, 121, 32, 102, 114, 97, 109, 101, 32, 114, 97, 116, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 98, 105, 108, 105, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 112, 114, 111, 99, 101, 115, 115, 111, 114, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 112, 114, 111, 99, 101, 115, 115, 111, 114, 32, 112, 111, 119, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 115, 116, 111, 109, 32, 100, 101, 112, 116, 104, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 101, 34, 44, 34, 67, 117, 115, 116, 111, 109, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 109, 97, 112, 34, 44, 34, 83, 105, 110, 103, 108, 101, 32, 99, 117, 115, 116, 111, 109, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 34, 44, 34, 67, 117, 115, 116, 111, 109, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 115, 32, 115, 116, 114, 101, 97, 109, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 82, 105, 103, 104, 116, 32, 101, 121, 101, 32, 118, 105, 101, 119, 34, 44, 34, 66, 105, 100, 105, 114, 101, 99, 116, 105, 111, 110, 97, 108, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 34, 44, 34, 65, 108, 105, 103, 110, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 115, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 80, 114, 101, 118, 105, 101, 119, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 67, 104, 111, 105, 99, 101, 40, 34, 102, 105, 114, 115, 116, 32, 102, 114, 97, 109, 101, 34, 44, 34, 108, 97, 115, 116, 32, 102, 114, 97, 109, 101, 34, 44, 34, 115, 101, 108, 101, 99, 116, 101, 100, 32, 102, 114, 97, 109, 101, 34, 44, 34, 102, 117, 108, 108, 32, 108, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 45, 115, 108, 111, 119, 33, 45, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 102, 114, 97, 109, 101, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 57, 57, 57, 57, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 83, 119, 105, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 65, 108, 108, 46, 60, 47, 98, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 50, 68, 116, 111, 51, 68, 37, 50, 48, 51, 68, 45, 97, 117, 116, 111, 109, 97, 116, 105, 99, 37, 50, 48, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 37, 50, 48, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 32, 58, 10, 115, 104, 61, 123, 45, 36, 50, 125, 32, 115, 119, 61, 123, 45, 36, 115, 104, 45, 36, 51, 125, 32, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 115, 105, 122, 101, 50, 61, 123, 104, 125, 10, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 41, 61, 61, 48, 125, 32, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 48, 125, 32, 115, 104, 61, 123, 36, 115, 104, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 32, 115, 119, 61, 123, 36, 115, 119, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 54, 61, 61, 48, 125, 10, 35, 35, 35, 35, 108, 97, 121, 101, 114, 32, 98, 97, 115, 101, 100, 32, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 35, 35, 35, 35, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 33, 61, 48, 125, 124, 124, 123, 36, 51, 53, 33, 61, 48, 125, 125, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 62, 61, 123, 123, 64, 35, 125, 45, 36, 51, 53, 125, 125, 124, 124, 123, 36, 51, 53, 62, 61, 123, 123, 64, 35, 125, 45, 36, 51, 52, 125, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 70, 97, 100, 101, 32, 111, 117, 116, 32, 111, 102, 32, 102, 114, 97, 109, 101, 32, 114, 97, 110, 103, 101, 46, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 50, 125, 32, 32, 102, 114, 97, 109, 101, 115, 61, 123, 64, 35, 125, 32, 45, 101, 108, 115, 101, 32, 102, 114, 97, 109, 101, 115, 61, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 64, 35, 125, 32, 105, 110, 100, 101, 120, 61, 48, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 48, 125, 32, 45, 114, 32, 52, 48, 48, 44, 51, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 97, 110, 100, 32, 50, 68, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 111, 110, 108, 121, 32, 109, 111, 100, 101, 115, 10, 35, 45, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 51, 125, 38, 38, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 48, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 118, 105, 100, 101, 111, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 105, 110, 32, 98, 97, 116, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 109, 111, 100, 101, 32, 111, 110, 108, 121, 34, 32, 45, 101, 110, 100, 105, 102, 10, 102, 108, 97, 103, 51, 100, 61, 48, 32, 45, 105, 102, 32, 123, 36, 52, 49, 33, 61, 50, 125, 10, 45, 105, 102, 32, 123, 33, 123, 123, 36, 50, 61, 61, 48, 125, 38, 38, 123, 36, 51, 61, 61, 48, 125, 38, 38, 123, 36, 49, 61, 61, 50, 52, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 51, 50, 33, 61, 48, 125, 125, 125, 32, 102, 108, 97, 103, 51, 100, 61, 49, 10, 35, 32, 115, 116, 97, 114, 116, 32, 51, 68, 32, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 32, 112, 101, 114, 32, 102, 114, 97, 109, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 102, 114, 97, 109, 101, 115, 125, 10, 35, 32, 112, 114, 101, 112, 97, 114, 101, 32, 105, 109, 97, 103, 101, 115, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 36, 105, 110, 100, 101, 120, 93, 10, 35, 32, 99, 114, 101, 97, 116, 101, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 115, 10, 45, 105, 102, 32, 123, 123, 36, 52, 48, 61, 61, 48, 125, 124, 124, 123, 36, 52, 48, 61, 61, 49, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 91, 36, 105, 110, 100, 101, 120, 93, 32, 36, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 51, 56, 44, 36, 51, 57, 44, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 10, 45, 114, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 50, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 100, 101, 112, 116, 104, 109, 97, 112, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 51, 125, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 50, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 36, 95, 109, 97, 112, 105, 110, 34, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 100, 101, 112, 116, 104, 109, 97, 112, 115, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 101, 108, 115, 101, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 105, 110, 100, 101, 120, 125, 34, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 100, 101, 112, 116, 104, 109, 97, 112, 115, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 114, 118, 91, 36, 105, 110, 100, 101, 120, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 48, 125, 32, 45, 114, 32, 52, 48, 48, 44, 51, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 109, 111, 116, 105, 111, 110, 32, 97, 110, 97, 108, 121, 115, 105, 115, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 50, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 32, 45, 109, 118, 91, 45, 52, 93, 32, 45, 49, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 123, 36, 51, 55, 47, 50, 125, 43, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 36, 105, 110, 100, 101, 120, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 123, 36, 51, 55, 47, 50, 125, 43, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 105, 110, 100, 101, 120, 60, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 50, 125, 125, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 50, 125, 10, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 48, 125, 32, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 50, 57, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 49, 125, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 51, 48, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 50, 125, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 52, 51, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 61, 61, 50, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 108, 115, 101, 32, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 62, 61, 123, 36, 50, 57, 43, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 52, 44, 45, 53, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 52, 93, 32, 45, 110, 91, 45, 52, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 50, 91, 45, 52, 93, 32, 48, 44, 49, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 52, 93, 32, 45, 110, 91, 45, 52, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 52, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 52, 93, 10, 45, 109, 118, 91, 45, 51, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 50, 93, 32, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 33, 61, 36, 50, 57, 125, 32, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 108, 115, 101, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 114, 109, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 51, 125, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 102, 114, 97, 109, 101, 115, 45, 50, 125, 10, 45, 109, 118, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 54, 125, 93, 32, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 44, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 51, 125, 93, 10, 45, 114, 118, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 44, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 93, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 93, 32, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 44, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 108, 115, 101, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 44, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 50, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 118, 91, 45, 51, 44, 45, 52, 93, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 52, 93, 32, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 51, 44, 45, 52, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 108, 115, 101, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 51, 44, 45, 52, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 101, 99, 111, 110, 100, 32, 118, 105, 101, 119, 32, 102, 114, 97, 109, 101, 115, 101, 116, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 50, 125, 32, 45, 105, 102, 32, 123, 36, 50, 52, 33, 61, 48, 125, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 100, 101, 120, 61, 123, 45, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 115, 119, 60, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 36, 105, 110, 100, 101, 120, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 50, 125, 10, 45, 105, 102, 32, 123, 36, 51, 52, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 123, 45, 36, 105, 110, 100, 101, 120, 125, 60, 61, 36, 51, 52, 125, 32, 115, 119, 61, 123, 123, 123, 45, 36, 105, 110, 100, 101, 120, 125, 47, 36, 51, 52, 125, 42, 36, 115, 119, 125, 32, 115, 104, 61, 123, 123, 123, 45, 36, 105, 110, 100, 101, 120, 125, 47, 36, 51, 52, 125, 42, 36, 115, 104, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 53, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 45, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 51, 53, 125, 125, 32, 115, 119, 61, 123, 36, 115, 119, 42, 123, 123, 36, 102, 114, 97, 109, 101, 115, 45, 123, 45, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 125, 47, 36, 51, 53, 125, 125, 10, 115, 104, 61, 123, 36, 115, 104, 42, 123, 123, 36, 102, 114, 97, 109, 101, 115, 45, 123, 45, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 125, 47, 36, 51, 53, 125, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 48, 125, 10, 45, 114, 91, 36, 105, 110, 100, 101, 120, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 115, 91, 36, 105, 110, 100, 101, 120, 93, 32, 99, 32, 45, 102, 91, 36, 105, 110, 100, 101, 120, 93, 32, 48, 32, 45, 110, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 48, 44, 36, 115, 119, 10, 45, 97, 91, 36, 105, 110, 100, 101, 120, 44, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 91, 36, 105, 110, 100, 101, 120, 93, 44, 49, 10, 45, 115, 104, 105, 102, 116, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 36, 115, 104, 44, 48, 32, 45, 114, 109, 91, 36, 105, 110, 100, 101, 120, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 36, 105, 110, 100, 101, 120, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 10, 45, 114, 91, 36, 105, 110, 100, 101, 120, 44, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 115, 91, 36, 105, 110, 100, 101, 120, 93, 32, 99, 32, 45, 102, 91, 36, 105, 110, 100, 101, 120, 93, 32, 48, 32, 45, 110, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 48, 44, 123, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 32, 45, 97, 91, 36, 105, 110, 100, 101, 120, 44, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 99, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 32, 45, 115, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 32, 99, 10, 45, 102, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 50, 125, 125, 93, 32, 48, 32, 45, 110, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 32, 48, 44, 123, 45, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 10, 45, 97, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 44, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 50, 125, 125, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 48, 125, 125, 93, 32, 91, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 44, 49, 10, 45, 119, 97, 114, 112, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 91, 36, 105, 110, 100, 101, 120, 93, 44, 49, 10, 45, 115, 104, 105, 102, 116, 91, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 93, 32, 36, 115, 104, 44, 48, 10, 45, 114, 109, 91, 36, 105, 110, 100, 101, 120, 44, 123, 36, 102, 114, 97, 109, 101, 115, 43, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 115, 104, 61, 123, 45, 36, 50, 125, 32, 115, 119, 61, 123, 45, 36, 115, 104, 45, 36, 51, 125, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 48, 125, 32, 115, 104, 61, 123, 36, 115, 104, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 32, 115, 119, 61, 123, 36, 115, 119, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 32, 45, 100, 111, 110, 101, 10, 35, 32, 102, 114, 97, 109, 101, 115, 32, 111, 102, 102, 115, 101, 116, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 50, 125, 10, 45, 105, 102, 32, 123, 36, 50, 52, 62, 61, 48, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 52, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 36, 102, 114, 97, 109, 101, 115, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 36, 102, 114, 97, 109, 101, 115, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 32, 99, 111, 117, 110, 116, 101, 114, 61, 123, 49, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 97, 98, 115, 40, 36, 50, 52, 41, 125, 32, 45, 114, 109, 91, 36, 102, 114, 97, 109, 101, 115, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 123, 45, 36, 99, 111, 117, 110, 116, 101, 114, 125, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 123, 45, 36, 99, 111, 117, 110, 116, 101, 114, 45, 49, 125, 32, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 117, 116, 111, 99, 114, 111, 112, 32, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 115, 104, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 32, 36, 115, 104, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 104, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 115, 119, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 32, 36, 115, 119, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 119, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 101, 110, 100, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 97, 110, 100, 32, 50, 68, 32, 109, 111, 100, 101, 32, 98, 121, 112, 97, 115, 115, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 112, 112, 108, 121, 32, 99, 117, 115, 116, 111, 109, 32, 102, 105, 108, 116, 101, 114, 10, 45, 105, 102, 32, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 33, 61, 50, 125, 10, 45, 105, 102, 32, 123, 36, 51, 50, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 36, 51, 50, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 91, 48, 44, 49, 93, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 50, 61, 61, 50, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 108, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 50, 61, 61, 51, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 108, 91, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 108, 105, 103, 110, 32, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 115, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 50, 125, 32, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 124, 124, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 48, 46, 51, 44, 48, 44, 48, 46, 54, 44, 48, 44, 48, 46, 49, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 54, 44, 52, 44, 48, 44, 48, 44, 48, 34, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 49, 125, 32, 105, 110, 100, 101, 120, 61, 123, 45, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 33, 61, 49, 52, 125, 38, 38, 123, 36, 49, 51, 33, 61, 49, 53, 125, 125, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 91, 45, 49, 44, 36, 99, 111, 117, 110, 116, 101, 114, 93, 32, 36, 49, 51, 44, 36, 49, 49, 44, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 44, 36, 49, 57, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 53, 125, 32, 45, 114, 109, 91, 48, 44, 36, 105, 110, 100, 101, 120, 93, 10, 45, 101, 110, 100, 105, 102, 32, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 45, 49, 125, 32, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 45, 49, 125, 32, 45, 100, 111, 110, 101, 10, 35, 32, 97, 100, 106, 117, 115, 116, 32, 111, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 115, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 54, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 49, 44, 36, 49, 55, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 49, 48, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 36, 49, 56, 44, 48, 44, 48, 44, 36, 49, 56, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 114, 101, 115, 105, 122, 101, 32, 102, 114, 97, 109, 101, 115, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 51, 125, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 48, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 48, 46, 55, 53, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 49, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 57, 125, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 50, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 50, 125, 47, 51, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 51, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 48, 46, 53, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 52, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 57, 125, 47, 50, 49, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 53, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 123, 104, 47, 119, 125, 125, 44, 49, 44, 123, 115, 125, 44, 54, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 53, 61, 61, 49, 125, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 115, 97, 118, 101, 32, 102, 114, 97, 109, 101, 115, 32, 116, 111, 32, 102, 111, 108, 100, 101, 114, 10, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 10, 45, 105, 102, 32, 123, 123, 36, 51, 49, 61, 61, 48, 125, 124, 124, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 101, 110, 100, 61, 34, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 101, 110, 100, 61, 34, 46, 98, 109, 112, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 10, 105, 110, 100, 101, 120, 61, 123, 48, 125, 32, 110, 97, 109, 101, 61, 48, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 102, 108, 97, 103, 51, 100, 61, 61, 49, 125, 125, 10, 102, 105, 108, 101, 108, 101, 102, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 108, 101, 102, 116, 95, 34, 123, 36, 110, 97, 109, 101, 43, 49, 125, 36, 101, 110, 100, 32, 102, 105, 108, 101, 114, 105, 103, 104, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 114, 105, 103, 104, 116, 95, 34, 123, 36, 110, 97, 109, 101, 43, 49, 125, 36, 101, 110, 100, 10, 45, 101, 108, 115, 101, 32, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 34, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 36, 101, 110, 100, 10, 45, 101, 108, 115, 101, 32, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 36, 101, 110, 100, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 102, 108, 97, 103, 51, 100, 61, 61, 49, 125, 125, 10, 45, 111, 117, 116, 112, 117, 116, 91, 36, 105, 110, 100, 101, 120, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 114, 105, 103, 104, 116, 34, 92, 34, 34, 125, 10, 45, 111, 117, 116, 112, 117, 116, 91, 123, 36, 105, 110, 100, 101, 120, 43, 36, 102, 114, 97, 109, 101, 115, 125, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 108, 101, 102, 116, 34, 92, 34, 34, 125, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 32, 110, 97, 109, 101, 61, 123, 36, 110, 97, 109, 101, 43, 49, 125, 10, 102, 105, 108, 101, 108, 101, 102, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 108, 101, 102, 116, 95, 34, 123, 36, 110, 97, 109, 101, 43, 49, 125, 36, 101, 110, 100, 32, 102, 105, 108, 101, 114, 105, 103, 104, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 114, 105, 103, 104, 116, 95, 34, 123, 36, 110, 97, 109, 101, 43, 49, 125, 36, 101, 110, 100, 10, 45, 101, 108, 115, 101, 10, 45, 111, 117, 116, 112, 117, 116, 91, 36, 105, 110, 100, 101, 120, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 34, 125, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 34, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 36, 101, 110, 100, 32, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 36, 101, 110, 100, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 114, 118, 10, 45, 101, 110, 100, 105, 102, 10, 35, 35, 35, 35, 98, 97, 116, 99, 104, 32, 98, 97, 115, 101, 100, 32, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 35, 35, 35, 35, 10, 45, 101, 108, 115, 101, 10, 35, 32, 108, 111, 97, 100, 32, 105, 109, 97, 103, 101, 115, 32, 105, 110, 32, 98, 97, 116, 99, 104, 32, 109, 111, 100, 101, 10, 45, 105, 102, 32, 123, 36, 51, 49, 61, 61, 48, 125, 32, 101, 110, 100, 61, 34, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 101, 110, 100, 61, 34, 46, 98, 109, 112, 34, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 102, 105, 108, 101, 61, 123, 36, 50, 57, 125, 32, 105, 110, 112, 97, 116, 104, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 34, 34, 36, 101, 110, 100, 34, 34, 32, 111, 117, 116, 102, 105, 108, 101, 61, 123, 36, 50, 57, 125, 10, 102, 114, 97, 109, 101, 115, 61, 123, 123, 36, 51, 48, 45, 36, 50, 57, 125, 43, 49, 125, 32, 99, 111, 117, 110, 116, 101, 114, 61, 49, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 33, 61, 48, 125, 124, 124, 123, 36, 51, 53, 33, 61, 48, 125, 125, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 51, 53, 125, 125, 124, 124, 123, 36, 51, 53, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 51, 52, 125, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 70, 97, 100, 101, 32, 111, 117, 116, 32, 111, 102, 32, 102, 114, 97, 109, 101, 32, 114, 97, 110, 103, 101, 34, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 50, 125, 10, 105, 110, 112, 97, 116, 104, 108, 101, 102, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 108, 101, 102, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 32, 105, 110, 112, 97, 116, 104, 114, 105, 103, 104, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 114, 105, 103, 104, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 10, 45, 101, 110, 100, 105, 102, 10, 97, 118, 61, 49, 32, 118, 97, 114, 61, 49, 32, 97, 118, 112, 114, 101, 118, 61, 49, 32, 118, 97, 114, 112, 114, 101, 118, 61, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 52, 49, 33, 61, 50, 125, 10, 45, 114, 109, 32, 45, 105, 110, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 34, 92, 34, 34, 125, 10, 45, 105, 102, 32, 123, 123, 36, 50, 52, 61, 61, 48, 125, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 45, 101, 108, 115, 101, 32, 105, 110, 102, 105, 108, 101, 50, 61, 123, 36, 105, 110, 102, 105, 108, 101, 43, 36, 50, 52, 125, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 50, 60, 61, 36, 50, 57, 125, 32, 105, 110, 102, 105, 108, 101, 50, 61, 123, 36, 50, 57, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 50, 62, 61, 36, 51, 48, 125, 32, 105, 110, 102, 105, 108, 101, 50, 61, 123, 36, 51, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 112, 97, 116, 104, 50, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 50, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 50, 34, 92, 34, 34, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 32, 45, 105, 110, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 108, 101, 102, 116, 34, 92, 34, 34, 125, 10, 45, 105, 110, 112, 117, 116, 91, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 114, 105, 103, 104, 116, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 115, 105, 122, 101, 50, 61, 123, 104, 125, 10, 35, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 97, 110, 100, 32, 50, 68, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 111, 110, 108, 121, 32, 109, 111, 100, 101, 115, 10, 102, 108, 97, 103, 51, 100, 61, 48, 32, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 51, 125, 32, 102, 108, 97, 103, 51, 100, 61, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 123, 36, 52, 49, 33, 61, 50, 125, 38, 38, 123, 36, 52, 49, 33, 61, 51, 125, 125, 10, 45, 105, 102, 32, 123, 33, 123, 123, 36, 50, 61, 61, 48, 125, 38, 38, 123, 36, 51, 61, 61, 48, 125, 38, 38, 123, 36, 49, 61, 61, 50, 52, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 51, 50, 33, 61, 48, 125, 125, 125, 32, 102, 108, 97, 103, 51, 100, 61, 49, 10, 35, 32, 112, 114, 101, 112, 97, 114, 101, 32, 105, 109, 97, 103, 101, 115, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 52, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 44, 49, 93, 32, 48, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 99, 114, 101, 97, 116, 101, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 10, 45, 105, 102, 32, 123, 123, 36, 52, 48, 61, 61, 48, 125, 124, 124, 123, 36, 52, 48, 61, 61, 49, 125, 125, 10, 97, 118, 61, 64, 123, 48, 44, 97, 125, 32, 118, 97, 114, 61, 64, 123, 48, 44, 118, 125, 32, 100, 105, 102, 102, 97, 118, 61, 123, 123, 36, 97, 118, 45, 36, 97, 118, 112, 114, 101, 118, 125, 47, 36, 97, 118, 112, 114, 101, 118, 42, 49, 48, 48, 125, 32, 100, 105, 102, 102, 118, 97, 114, 61, 123, 123, 36, 118, 97, 114, 45, 36, 118, 97, 114, 112, 114, 101, 118, 125, 47, 36, 118, 97, 114, 112, 114, 101, 118, 42, 49, 48, 48, 125, 10, 45, 105, 102, 32, 123, 123, 97, 98, 115, 40, 36, 100, 105, 102, 102, 97, 118, 41, 62, 61, 49, 48, 125, 124, 124, 123, 97, 98, 115, 40, 36, 100, 105, 102, 102, 118, 97, 114, 41, 62, 61, 49, 48, 125, 125, 32, 115, 99, 101, 110, 101, 99, 104, 97, 110, 103, 101, 61, 49, 32, 45, 101, 108, 115, 101, 32, 115, 99, 101, 110, 101, 99, 104, 97, 110, 103, 101, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 99, 111, 117, 110, 116, 101, 114, 61, 61, 49, 125, 124, 124, 123, 36, 115, 99, 101, 110, 101, 99, 104, 97, 110, 103, 101, 61, 61, 49, 125, 124, 124, 123, 123, 36, 99, 111, 117, 110, 116, 101, 114, 47, 36, 51, 54, 125, 61, 61, 123, 114, 111, 117, 110, 100, 40, 36, 99, 111, 117, 110, 116, 101, 114, 47, 36, 51, 54, 44, 49, 41, 125, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 91, 48, 93, 32, 36, 49, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 51, 56, 44, 36, 51, 57, 44, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 32, 45, 114, 91, 45, 49, 93, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 10, 45, 105, 102, 32, 123, 36, 97, 118, 33, 61, 48, 125, 32, 97, 118, 112, 114, 101, 118, 61, 36, 97, 118, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 118, 97, 114, 33, 61, 48, 125, 32, 118, 97, 114, 112, 114, 101, 118, 61, 36, 118, 97, 114, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 54, 33, 61, 49, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 116, 101, 109, 112, 46, 112, 110, 103, 34, 10, 45, 111, 117, 116, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 34, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 116, 101, 109, 112, 46, 112, 110, 103, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 49, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 50, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 100, 101, 112, 116, 104, 109, 97, 112, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 48, 61, 61, 51, 125, 10, 105, 110, 102, 105, 108, 101, 99, 61, 34, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 36, 105, 110, 102, 105, 108, 101, 34, 46, 112, 110, 103, 34, 32, 105, 110, 112, 97, 116, 104, 99, 61, 34, 36, 50, 55, 47, 100, 101, 112, 116, 104, 109, 97, 112, 115, 47, 34, 36, 105, 110, 102, 105, 108, 101, 99, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 99, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 35, 32, 109, 111, 116, 105, 111, 110, 32, 97, 110, 97, 108, 121, 115, 105, 115, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 33, 61, 36, 50, 57, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 93, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 49, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 34, 92, 34, 34, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 123, 123, 36, 51, 55, 47, 50, 125, 43, 49, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 62, 61, 123, 36, 50, 57, 43, 50, 125, 125, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 50, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 50, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 50, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 50, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 50, 34, 92, 34, 34, 125, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 51, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 49, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 51, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 51, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 51, 34, 92, 34, 34, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 116, 50, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 123, 119, 42, 123, 36, 51, 55, 47, 49, 48, 48, 48, 125, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 108, 115, 101, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 123, 97, 98, 115, 40, 36, 49, 48, 41, 47, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 101, 99, 111, 110, 100, 32, 118, 105, 101, 119, 10, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 48, 125, 10, 45, 105, 102, 32, 123, 36, 115, 119, 60, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 52, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 99, 111, 117, 110, 116, 101, 114, 60, 61, 36, 51, 52, 125, 32, 115, 119, 61, 123, 123, 36, 99, 111, 117, 110, 116, 101, 114, 47, 36, 51, 52, 125, 42, 36, 115, 119, 125, 32, 115, 104, 61, 123, 123, 36, 99, 111, 117, 110, 116, 101, 114, 47, 36, 51, 52, 125, 42, 36, 115, 104, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 53, 33, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 99, 111, 117, 110, 116, 101, 114, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 51, 53, 125, 125, 32, 115, 119, 61, 123, 36, 115, 119, 42, 123, 123, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 99, 111, 117, 110, 116, 101, 114, 125, 43, 49, 125, 47, 36, 51, 53, 125, 125, 10, 115, 104, 61, 123, 36, 115, 104, 42, 123, 123, 123, 36, 102, 114, 97, 109, 101, 115, 45, 36, 99, 111, 117, 110, 116, 101, 114, 125, 43, 49, 125, 47, 36, 51, 53, 125, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 115, 119, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 36, 115, 104, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 45, 114, 91, 45, 49, 44, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 123, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 102, 91, 45, 50, 93, 32, 48, 32, 45, 110, 91, 45, 51, 93, 32, 48, 44, 123, 45, 97, 98, 115, 40, 36, 115, 119, 47, 50, 41, 125, 32, 45, 97, 91, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 49, 32, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 49, 93, 44, 49, 10, 45, 115, 104, 105, 102, 116, 91, 45, 51, 93, 32, 36, 115, 104, 44, 48, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 115, 104, 61, 123, 45, 36, 50, 125, 32, 115, 119, 61, 123, 45, 36, 115, 104, 45, 36, 51, 125, 10, 35, 32, 97, 117, 116, 111, 99, 114, 111, 112, 32, 102, 114, 97, 109, 101, 115, 10, 45, 105, 102, 32, 123, 36, 50, 48, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 10, 45, 105, 102, 32, 123, 36, 115, 104, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 32, 36, 115, 104, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 104, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 115, 119, 62, 61, 48, 125, 32, 45, 99, 114, 111, 112, 32, 36, 115, 119, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 32, 45, 101, 108, 115, 101, 32, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 119, 43, 36, 115, 119, 125, 44, 123, 104, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 101, 110, 100, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 97, 110, 100, 32, 50, 68, 32, 109, 111, 100, 101, 32, 98, 121, 112, 97, 115, 115, 10, 45, 101, 110, 100, 105, 102, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 97, 110, 97, 91, 48, 93, 32, 36, 51, 55, 44, 123, 123, 36, 51, 56, 42, 50, 125, 43, 48, 46, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 112, 112, 108, 121, 32, 99, 117, 115, 116, 111, 109, 32, 102, 105, 108, 116, 101, 114, 10, 45, 105, 102, 32, 123, 36, 51, 50, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 91, 48, 44, 49, 93, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 50, 61, 61, 50, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 108, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 50, 61, 61, 51, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 45, 108, 91, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 108, 105, 103, 110, 32, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 10, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 44, 49, 93, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 32, 48, 46, 51, 44, 48, 44, 48, 46, 54, 44, 48, 44, 48, 46, 49, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 54, 44, 52, 44, 48, 44, 48, 44, 48, 34, 44, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 50, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 32, 102, 111, 114, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 34, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 51, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 101, 114, 114, 111, 114, 91, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 32, 102, 111, 114, 32, 97, 110, 97, 103, 108, 121, 112, 104, 32, 118, 105, 100, 101, 111, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 34, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 50, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 95, 111, 98, 116, 97, 105, 110, 91, 48, 44, 49, 93, 32, 36, 49, 49, 44, 123, 36, 51, 55, 47, 49, 48, 48, 125, 44, 123, 49, 48, 48, 45, 123, 36, 51, 56, 42, 50, 48, 125, 125, 44, 123, 36, 51, 57, 42, 50, 48, 125, 10, 45, 105, 102, 32, 123, 36, 51, 50, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 91, 48, 44, 49, 44, 45, 49, 93, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 33, 61, 50, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 51, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 125, 32, 45, 107, 91, 48, 44, 49, 93, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 91, 48, 44, 49, 93, 32, 36, 49, 51, 44, 36, 49, 49, 44, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 44, 36, 49, 57, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 100, 106, 117, 115, 116, 32, 111, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 115, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 54, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 49, 44, 36, 49, 55, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 49, 48, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 36, 49, 56, 44, 48, 44, 48, 44, 36, 49, 56, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 35, 32, 114, 101, 115, 105, 122, 101, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 10, 45, 105, 102, 32, 123, 36, 50, 49, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 51, 125, 10, 45, 105, 102, 32, 123, 36, 50, 51, 61, 61, 48, 125, 32, 32, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 48, 46, 55, 53, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 49, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 57, 125, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 50, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 50, 125, 47, 51, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 51, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 48, 46, 53, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 52, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 123, 36, 50, 50, 42, 57, 125, 47, 50, 49, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 50, 51, 61, 61, 53, 125, 32, 45, 114, 32, 36, 50, 50, 44, 123, 36, 50, 50, 42, 123, 104, 47, 119, 125, 125, 44, 49, 44, 123, 115, 125, 44, 54, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 32, 115, 97, 118, 101, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 102, 111, 108, 100, 101, 114, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 102, 108, 97, 103, 51, 100, 61, 61, 49, 125, 125, 10, 102, 105, 108, 101, 108, 101, 102, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 108, 101, 102, 116, 95, 34, 36, 111, 117, 116, 102, 105, 108, 101, 36, 101, 110, 100, 32, 102, 105, 108, 101, 114, 105, 103, 104, 116, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 114, 105, 103, 104, 116, 95, 34, 36, 111, 117, 116, 102, 105, 108, 101, 36, 101, 110, 100, 10, 45, 101, 108, 115, 101, 32, 32, 45, 105, 102, 32, 123, 36, 49, 51, 33, 61, 49, 53, 125, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 102, 114, 97, 109, 101, 95, 34, 36, 111, 117, 116, 102, 105, 108, 101, 36, 101, 110, 100, 10, 45, 101, 108, 115, 101, 32, 32, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 34, 36, 111, 117, 116, 102, 105, 108, 101, 36, 101, 110, 100, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 102, 108, 97, 103, 51, 100, 61, 61, 49, 125, 125, 10, 45, 111, 117, 116, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 108, 101, 102, 116, 34, 92, 34, 34, 125, 32, 45, 111, 117, 116, 112, 117, 116, 91, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 114, 105, 103, 104, 116, 34, 92, 34, 34, 125, 10, 45, 101, 108, 115, 101, 32, 45, 111, 117, 116, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 102, 105, 108, 101, 110, 97, 109, 101, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 111, 117, 116, 102, 105, 108, 101, 61, 123, 36, 111, 117, 116, 102, 105, 108, 101, 43, 49, 125, 10, 35, 32, 101, 110, 100, 32, 98, 97, 116, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 108, 111, 111, 112, 115, 32, 97, 110, 100, 32, 100, 101, 108, 101, 116, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 121, 32, 102, 105, 108, 101, 10, 105, 110, 102, 105, 108, 101, 61, 123, 36, 105, 110, 102, 105, 108, 101, 43, 49, 125, 32, 105, 110, 112, 97, 116, 104, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 102, 32, 123, 36, 52, 49, 61, 61, 50, 125, 32, 105, 110, 112, 97, 116, 104, 108, 101, 102, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 108, 101, 102, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 32, 105, 110, 112, 97, 116, 104, 114, 105, 103, 104, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 114, 105, 103, 104, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 117, 110, 116, 101, 114, 61, 123, 36, 99, 111, 117, 110, 116, 101, 114, 43, 49, 125, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 61, 48, 125, 38, 38, 123, 36, 50, 54, 61, 61, 49, 125, 125, 32, 45, 105, 102, 32, 123, 36, 51, 54, 33, 61, 49, 125, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 112, 97, 116, 104, 61, 34, 36, 49, 53, 34, 32, 112, 97, 116, 104, 61, 36, 123, 112, 97, 116, 104, 125, 123, 96, 57, 50, 96, 125, 10, 45, 120, 32, 34, 99, 100, 32, 92, 34, 34, 36, 112, 97, 116, 104, 34, 92, 34, 32, 38, 38, 32, 100, 101, 108, 32, 100, 101, 112, 116, 104, 109, 97, 112, 95, 116, 101, 109, 112, 46, 112, 110, 103, 34, 10, 45, 101, 108, 115, 101, 32, 102, 105, 108, 101, 61, 34, 36, 49, 53, 47, 100, 101, 112, 116, 104, 109, 97, 112, 95, 116, 101, 109, 112, 46, 112, 110, 103, 34, 32, 45, 120, 32, 34, 114, 109, 32, 45, 102, 32, 92, 34, 36, 102, 105, 108, 101, 92, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 35, 35, 35, 35, 35, 112, 114, 101, 118, 105, 101, 119, 32, 102, 117, 110, 99, 116, 105, 111, 110, 35, 35, 35, 35, 10, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 115, 104, 112, 114, 101, 61, 123, 36, 50, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 32, 115, 119, 112, 114, 101, 61, 123, 36, 51, 42, 123, 52, 48, 48, 47, 36, 50, 50, 125, 125, 10, 45, 105, 102, 32, 123, 36, 50, 54, 61, 61, 48, 125, 10, 35, 35, 35, 35, 35, 112, 114, 101, 118, 105, 101, 119, 32, 108, 97, 121, 101, 114, 32, 109, 111, 100, 101, 35, 35, 35, 10, 45, 105, 102, 32, 123, 123, 64, 35, 125, 61, 61, 49, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 32, 45, 116, 101, 120, 116, 32, 34, 83, 101, 108, 101, 99, 116, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 108, 97, 121, 101, 114, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 105, 110, 112, 117, 116, 32, 109, 111, 100, 101, 32, 65, 76, 76, 46, 34, 44, 49, 48, 44, 57, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 49, 61, 61, 50, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 32, 45, 116, 101, 120, 116, 32, 34, 65, 108, 105, 103, 110, 109, 101, 110, 116, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 115, 116, 114, 101, 97, 109, 115, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 105, 110, 32, 66, 65, 84, 67, 72, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 109, 111, 100, 101, 32, 111, 110, 108, 121, 33, 34, 44, 49, 48, 44, 57, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 49, 61, 61, 51, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 32, 45, 116, 101, 120, 116, 32, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 118, 105, 100, 101, 111, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 105, 110, 32, 66, 65, 84, 67, 72, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 109, 111, 100, 101, 32, 111, 110, 108, 121, 33, 34, 44, 49, 48, 44, 57, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 49, 10, 45, 105, 102, 32, 123, 36, 52, 48, 61, 61, 51, 125, 32, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 48, 125, 32, 95, 109, 97, 112, 105, 110, 61, 49, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 49, 125, 32, 95, 109, 97, 112, 105, 110, 61, 123, 64, 35, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 50, 125, 32, 32, 95, 109, 97, 112, 105, 110, 61, 36, 52, 51, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 48, 125, 32, 110, 114, 61, 49, 32, 112, 118, 61, 123, 45, 49, 125, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 49, 125, 32, 110, 114, 61, 123, 64, 35, 125, 32, 112, 118, 61, 123, 45, 64, 35, 125, 32, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 50, 61, 61, 50, 125, 124, 124, 123, 36, 52, 50, 61, 61, 51, 125, 125, 32, 110, 114, 61, 36, 52, 51, 32, 112, 118, 61, 123, 45, 36, 52, 51, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 52, 50, 61, 61, 50, 125, 124, 124, 123, 36, 52, 50, 61, 61, 51, 125, 125, 32, 45, 105, 102, 32, 123, 36, 52, 51, 62, 61, 123, 64, 35, 125, 125, 32, 110, 114, 61, 123, 64, 35, 125, 32, 112, 118, 61, 123, 45, 64, 35, 125, 32, 95, 109, 97, 112, 105, 110, 61, 123, 64, 35, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 50, 33, 61, 51, 125, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 91, 36, 112, 118, 93, 32, 36, 49, 44, 36, 115, 104, 112, 114, 101, 44, 36, 115, 119, 112, 114, 101, 44, 36, 123, 52, 45, 57, 125, 44, 48, 44, 36, 123, 49, 49, 45, 49, 51, 125, 44, 48, 44, 34, 36, 49, 53, 34, 44, 36, 123, 49, 54, 45, 50, 51, 125, 44, 48, 44, 36, 123, 50, 53, 45, 50, 54, 125, 44, 34, 36, 50, 55, 34, 44, 34, 36, 50, 56, 34, 44, 36, 123, 50, 57, 45, 51, 50, 125, 44, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 36, 123, 51, 54, 45, 51, 57, 125, 44, 48, 44, 36, 123, 52, 49, 45, 52, 51, 125, 32, 45, 107, 91, 36, 112, 118, 93, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 108, 97, 121, 101, 114, 32, 34, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 110, 114, 34, 92, 34, 34, 125, 44, 50, 48, 44, 55, 53, 37, 44, 123, 104, 42, 48, 46, 49, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 123, 36, 49, 51, 61, 61, 50, 125, 124, 124, 123, 36, 49, 51, 61, 61, 51, 125, 124, 124, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 52, 33, 61, 48, 125, 32, 45, 116, 101, 120, 116, 32, 34, 70, 111, 114, 32, 112, 114, 101, 118, 105, 101, 119, 32, 119, 105, 116, 104, 32, 102, 114, 97, 109, 101, 115, 32, 111, 102, 102, 115, 101, 116, 32, 34, 44, 50, 48, 44, 55, 48, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 117, 115, 101, 32, 102, 117, 108, 108, 32, 108, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 112, 114, 101, 118, 105, 101, 119, 32, 109, 111, 100, 101, 33, 34, 44, 50, 48, 44, 56, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 33, 61, 48, 125, 124, 124, 123, 36, 51, 53, 33, 61, 48, 125, 125, 32, 45, 116, 101, 120, 116, 32, 34, 70, 111, 114, 32, 102, 97, 100, 101, 32, 105, 110, 47, 111, 117, 116, 32, 101, 102, 102, 101, 99, 116, 32, 112, 114, 101, 118, 105, 101, 119, 34, 44, 50, 48, 44, 54, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 117, 115, 101, 32, 102, 117, 108, 108, 32, 108, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 112, 114, 101, 118, 105, 101, 119, 32, 109, 111, 100, 101, 33, 34, 44, 50, 48, 44, 56, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 48, 33, 61, 48, 125, 32, 45, 116, 101, 120, 116, 32, 34, 70, 111, 114, 32, 112, 114, 101, 118, 105, 101, 119, 32, 119, 105, 116, 104, 32, 99, 117, 115, 116, 111, 109, 32, 100, 101, 112, 116, 104, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 34, 44, 50, 48, 44, 54, 48, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 117, 115, 101, 32, 102, 117, 108, 108, 32, 108, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 112, 114, 101, 118, 105, 101, 119, 32, 109, 111, 100, 101, 33, 34, 44, 50, 48, 44, 56, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 32, 45, 116, 101, 120, 116, 32, 34, 70, 111, 114, 32, 112, 114, 101, 118, 105, 101, 119, 32, 119, 105, 116, 104, 32, 109, 111, 116, 105, 111, 110, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 34, 44, 50, 48, 44, 53, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 117, 115, 101, 32, 102, 117, 108, 108, 32, 108, 97, 121, 101, 114, 32, 115, 116, 97, 99, 107, 32, 112, 114, 101, 118, 105, 101, 119, 32, 109, 111, 100, 101, 33, 34, 44, 50, 48, 44, 56, 53, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 123, 105, 102, 40, 123, 36, 49, 51, 61, 61, 49, 53, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 51, 50, 61, 61, 50, 125, 124, 124, 123, 36, 51, 50, 61, 61, 51, 125, 125, 32, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 83, 101, 112, 97, 114, 97, 116, 101, 32, 115, 116, 114, 101, 97, 109, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 105, 103, 110, 111, 114, 101, 100, 32, 105, 110, 32, 108, 97, 121, 101, 114, 32, 109, 111, 100, 101, 34, 44, 50, 48, 44, 53, 48, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 32, 36, 49, 44, 36, 115, 104, 112, 114, 101, 44, 36, 115, 119, 112, 114, 101, 44, 36, 123, 52, 45, 49, 51, 125, 44, 48, 44, 34, 36, 49, 53, 34, 44, 36, 123, 49, 54, 45, 50, 54, 125, 44, 34, 36, 50, 55, 34, 44, 34, 36, 50, 56, 34, 44, 36, 123, 50, 57, 45, 51, 50, 125, 44, 34, 36, 51, 51, 34, 44, 36, 123, 51, 52, 45, 52, 51, 125, 32, 45, 107, 91, 36, 112, 118, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 108, 97, 121, 101, 114, 32, 34, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 110, 114, 34, 92, 34, 34, 125, 44, 50, 48, 44, 55, 53, 37, 44, 123, 104, 42, 48, 46, 49, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 123, 36, 49, 51, 61, 61, 50, 125, 124, 124, 123, 36, 49, 51, 61, 61, 51, 125, 124, 124, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 123, 36, 50, 61, 61, 48, 125, 38, 38, 123, 36, 51, 61, 61, 48, 125, 38, 38, 123, 36, 49, 61, 61, 50, 52, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 51, 50, 33, 61, 48, 125, 125, 32, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 50, 68, 32, 102, 105, 108, 116, 101, 114, 32, 109, 111, 100, 101, 32, 111, 110, 33, 34, 44, 53, 48, 37, 44, 55, 53, 37, 44, 123, 104, 42, 48, 46, 48, 55, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 54, 33, 61, 49, 125, 32, 45, 116, 101, 120, 116, 32, 34, 75, 101, 121, 32, 102, 114, 97, 109, 101, 32, 115, 101, 116, 116, 105, 110, 103, 115, 32, 105, 103, 110, 111, 114, 101, 100, 32, 105, 110, 32, 108, 97, 121, 101, 114, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 109, 111, 100, 101, 46, 32, 34, 44, 50, 48, 44, 53, 48, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 35, 35, 35, 35, 112, 114, 101, 118, 105, 101, 119, 32, 98, 97, 116, 99, 104, 32, 109, 111, 100, 101, 35, 35, 35, 35, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 50, 10, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 51, 125, 10, 45, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 45, 49, 93, 10, 45, 116, 101, 120, 116, 32, 34, 78, 111, 32, 112, 114, 101, 118, 105, 101, 119, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 34, 44, 50, 48, 44, 53, 48, 44, 50, 56, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 102, 111, 114, 32, 98, 97, 116, 99, 104, 32, 105, 110, 112, 117, 116, 32, 115, 116, 97, 99, 107, 33, 34, 44, 50, 48, 44, 56, 48, 44, 50, 56, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 116, 101, 120, 116, 32, 34, 80, 108, 101, 97, 115, 101, 32, 115, 101, 108, 101, 99, 116, 32, 102, 114, 97, 109, 101, 32, 116, 111, 32, 97, 100, 106, 117, 115, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 46, 34, 44, 50, 48, 44, 49, 53, 48, 44, 49, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 50, 61, 61, 50, 125, 38, 38, 123, 123, 36, 52, 51, 60, 61, 123, 36, 50, 57, 45, 49, 125, 125, 124, 124, 123, 36, 52, 51, 62, 61, 123, 36, 51, 48, 43, 49, 125, 125, 125, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 83, 101, 108, 101, 99, 116, 101, 100, 32, 102, 114, 97, 109, 101, 32, 111, 117, 116, 32, 111, 102, 32, 114, 97, 110, 103, 101, 33, 32, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 50, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 33, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 51, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 79, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 33, 34, 44, 49, 48, 44, 56, 48, 37, 44, 50, 52, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 114, 109, 10, 45, 105, 102, 32, 123, 36, 51, 49, 61, 61, 48, 125, 32, 101, 110, 100, 61, 34, 46, 112, 110, 103, 34, 32, 45, 101, 108, 115, 101, 32, 101, 110, 100, 61, 34, 46, 98, 109, 112, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 48, 125, 32, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 50, 57, 125, 10, 45, 105, 102, 32, 123, 36, 51, 52, 33, 61, 48, 125, 32, 115, 119, 112, 114, 101, 61, 123, 123, 49, 47, 36, 51, 52, 125, 42, 36, 115, 119, 112, 114, 101, 125, 32, 115, 104, 112, 114, 101, 61, 123, 123, 49, 47, 36, 51, 52, 125, 42, 36, 115, 104, 112, 114, 101, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 49, 125, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 51, 48, 125, 10, 45, 105, 102, 32, 123, 36, 51, 53, 33, 61, 48, 125, 32, 115, 119, 112, 114, 101, 61, 123, 123, 49, 45, 123, 49, 47, 36, 51, 53, 125, 125, 42, 36, 115, 119, 112, 114, 101, 125, 32, 115, 104, 112, 114, 101, 61, 123, 123, 49, 45, 123, 49, 47, 36, 51, 53, 125, 125, 42, 36, 115, 104, 112, 114, 101, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 50, 125, 32, 105, 110, 102, 105, 108, 101, 61, 123, 36, 52, 51, 125, 10, 45, 105, 102, 32, 123, 123, 36, 51, 52, 33, 61, 48, 125, 124, 124, 123, 36, 51, 53, 33, 61, 48, 125, 125, 10, 45, 105, 102, 32, 123, 36, 52, 51, 60, 61, 123, 36, 50, 57, 43, 36, 51, 52, 125, 125, 32, 115, 119, 112, 114, 101, 61, 123, 123, 36, 52, 51, 47, 36, 51, 52, 125, 42, 36, 115, 119, 112, 114, 101, 125, 32, 115, 104, 112, 114, 101, 61, 123, 123, 36, 52, 51, 47, 36, 51, 52, 125, 42, 36, 115, 104, 112, 114, 101, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 51, 62, 61, 123, 36, 51, 48, 45, 36, 51, 53, 125, 125, 32, 115, 119, 112, 114, 101, 61, 123, 123, 36, 51, 48, 45, 36, 52, 51, 125, 42, 123, 36, 115, 119, 112, 114, 101, 47, 36, 51, 53, 125, 125, 32, 115, 104, 112, 114, 101, 61, 123, 123, 36, 51, 48, 45, 36, 52, 51, 125, 42, 123, 36, 115, 104, 112, 114, 101, 47, 36, 51, 53, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 49, 33, 61, 50, 125, 10, 105, 110, 112, 97, 116, 104, 49, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 49, 34, 92, 34, 34, 125, 10, 45, 105, 102, 32, 123, 36, 50, 52, 33, 61, 48, 125, 32, 105, 110, 102, 105, 108, 101, 111, 102, 102, 61, 123, 36, 105, 110, 102, 105, 108, 101, 43, 36, 50, 52, 125, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 111, 102, 102, 60, 61, 36, 50, 57, 125, 32, 105, 110, 102, 105, 108, 101, 111, 102, 102, 61, 123, 36, 50, 57, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 111, 102, 102, 62, 61, 36, 51, 48, 125, 32, 105, 110, 102, 105, 108, 101, 111, 102, 102, 61, 123, 36, 51, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 105, 110, 112, 97, 116, 104, 111, 102, 102, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 111, 102, 102, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 111, 102, 102, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 33, 61, 36, 50, 57, 125, 32, 45, 105, 102, 32, 123, 36, 49, 48, 33, 61, 48, 125, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 49, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 34, 92, 34, 34, 125, 10, 45, 105, 102, 32, 123, 36, 105, 110, 102, 105, 108, 101, 62, 61, 123, 36, 50, 57, 43, 50, 125, 125, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 50, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 50, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 50, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 50, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 50, 34, 92, 34, 34, 125, 10, 105, 110, 102, 105, 108, 101, 109, 111, 118, 51, 61, 123, 36, 105, 110, 102, 105, 108, 101, 45, 49, 125, 32, 105, 110, 112, 97, 116, 104, 109, 111, 118, 51, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 36, 105, 110, 102, 105, 108, 101, 109, 111, 118, 51, 34, 34, 36, 101, 110, 100, 34, 34, 10, 45, 105, 110, 112, 117, 116, 91, 45, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 109, 111, 118, 51, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 105, 110, 112, 97, 116, 104, 108, 101, 102, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 108, 101, 102, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 32, 105, 110, 112, 97, 116, 104, 114, 105, 103, 104, 116, 61, 34, 36, 50, 55, 47, 36, 50, 56, 34, 34, 114, 105, 103, 104, 116, 95, 34, 36, 105, 110, 102, 105, 108, 101, 36, 101, 110, 100, 10, 45, 114, 109, 32, 45, 105, 110, 112, 117, 116, 91, 48, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 108, 101, 102, 116, 34, 92, 34, 34, 125, 10, 45, 105, 110, 112, 117, 116, 91, 49, 93, 32, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 112, 97, 116, 104, 114, 105, 103, 104, 116, 34, 92, 34, 34, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 50, 61, 61, 48, 125, 32, 95, 109, 97, 112, 105, 110, 61, 36, 50, 57, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 49, 125, 32, 95, 109, 97, 112, 105, 110, 61, 36, 51, 48, 32, 45, 101, 108, 105, 102, 32, 123, 36, 52, 50, 61, 61, 50, 125, 32, 95, 109, 97, 112, 105, 110, 61, 36, 52, 51, 32, 45, 101, 110, 100, 105, 102, 10, 102, 114, 97, 109, 101, 115, 110, 61, 123, 123, 36, 51, 48, 45, 36, 50, 57, 125, 43, 49, 125, 10, 45, 105, 102, 32, 123, 123, 123, 36, 51, 52, 33, 61, 48, 125, 124, 124, 123, 36, 51, 53, 33, 61, 48, 125, 125, 38, 38, 123, 123, 36, 51, 52, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 110, 45, 36, 51, 53, 125, 125, 124, 124, 123, 36, 51, 53, 62, 61, 123, 36, 102, 114, 97, 109, 101, 115, 110, 45, 36, 51, 52, 125, 125, 125, 125, 32, 45, 102, 99, 91, 48, 93, 32, 50, 53, 53, 44, 48, 44, 49, 50, 56, 44, 50, 53, 53, 32, 45, 107, 91, 48, 93, 10, 45, 116, 101, 120, 116, 32, 34, 70, 97, 100, 101, 32, 111, 117, 116, 32, 111, 102, 32, 102, 114, 97, 109, 101, 32, 114, 97, 110, 103, 101, 33, 32, 34, 44, 49, 48, 44, 56, 48, 37, 44, 123, 104, 42, 48, 46, 49, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 123, 36, 52, 49, 61, 61, 50, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 32, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 95, 111, 98, 116, 97, 105, 110, 91, 48, 44, 49, 93, 32, 36, 49, 49, 44, 123, 36, 51, 55, 47, 49, 48, 48, 125, 44, 123, 49, 48, 48, 45, 123, 36, 51, 56, 42, 50, 48, 125, 125, 44, 123, 36, 51, 57, 42, 50, 48, 125, 10, 45, 105, 102, 32, 123, 36, 51, 50, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 91, 48, 44, 49, 44, 45, 49, 93, 32, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 48, 32, 32, 45, 101, 110, 100, 105, 102, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 103, 105, 109, 112, 95, 116, 107, 95, 118, 105, 100, 101, 111, 51, 68, 32, 36, 49, 44, 36, 115, 104, 112, 114, 101, 44, 36, 115, 119, 112, 114, 101, 44, 36, 123, 52, 45, 57, 125, 44, 123, 105, 102, 40, 123, 36, 105, 110, 102, 105, 108, 101, 61, 61, 36, 50, 57, 125, 44, 48, 44, 36, 49, 48, 41, 125, 44, 36, 123, 49, 49, 45, 49, 51, 125, 44, 48, 44, 34, 36, 49, 53, 34, 44, 36, 123, 49, 54, 45, 50, 53, 125, 44, 48, 44, 34, 36, 50, 55, 34, 44, 34, 36, 50, 56, 34, 44, 36, 123, 50, 57, 45, 51, 49, 125, 44, 123, 105, 102, 40, 123, 123, 36, 50, 61, 61, 48, 125, 38, 38, 123, 36, 51, 61, 61, 48, 125, 38, 38, 123, 36, 49, 61, 61, 50, 52, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 51, 50, 33, 61, 48, 125, 125, 44, 50, 44, 36, 51, 50, 41, 125, 44, 34, 36, 51, 51, 34, 44, 48, 44, 48, 44, 49, 44, 36, 123, 51, 55, 45, 52, 51, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 52, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 102, 114, 97, 109, 101, 32, 34, 64, 123, 34, 45, 113, 117, 111, 116, 101, 32, 92, 34, 34, 36, 105, 110, 102, 105, 108, 101, 34, 92, 34, 34, 125, 44, 50, 48, 44, 55, 53, 37, 44, 123, 104, 42, 48, 46, 49, 125, 44, 49, 44, 50, 53, 53, 44, 123, 105, 102, 40, 123, 123, 36, 49, 51, 61, 61, 50, 125, 124, 124, 123, 36, 49, 51, 61, 61, 51, 125, 124, 124, 123, 36, 49, 51, 61, 61, 49, 53, 125, 125, 44, 48, 44, 50, 53, 53, 41, 125, 44, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 52, 49, 33, 61, 50, 125, 32, 45, 105, 102, 32, 123, 36, 51, 54, 33, 61, 49, 125, 32, 45, 105, 102, 32, 123, 123, 36, 52, 48, 61, 61, 48, 125, 124, 124, 123, 36, 52, 48, 61, 61, 49, 125, 125, 32, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 80, 114, 101, 118, 105, 101, 119, 32, 97, 108, 119, 97, 121, 115, 32, 102, 111, 114, 99, 101, 100, 32, 116, 111, 32, 107, 101, 121, 32, 102, 114, 97, 109, 101, 46, 32, 34, 44, 50, 48, 44, 53, 48, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 78, 111, 32, 107, 101, 121, 102, 114, 97, 109, 101, 32, 99, 111, 109, 112, 117, 116, 97, 116, 105, 111, 110, 32, 102, 111, 114, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 109, 97, 112, 115, 46, 32, 34, 44, 50, 48, 44, 54, 52, 37, 44, 123, 104, 42, 48, 46, 48, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 50, 61, 61, 48, 125, 38, 38, 123, 36, 51, 61, 61, 48, 125, 38, 38, 123, 36, 49, 61, 61, 50, 52, 125, 38, 38, 123, 36, 49, 51, 61, 61, 49, 52, 125, 38, 38, 123, 36, 51, 50, 33, 61, 48, 125, 125, 32, 45, 116, 101, 120, 116, 91, 48, 93, 32, 34, 50, 68, 32, 102, 105, 108, 116, 101, 114, 32, 109, 111, 100, 101, 32, 111, 110, 33, 34, 44, 53, 48, 37, 44, 55, 53, 37, 44, 123, 104, 42, 48, 46, 48, 55, 53, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 95, 112, 114, 101, 118, 105, 101, 119, 102, 108, 97, 103, 61, 48, 10, 35, 64, 103, 105, 109, 112, 32, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 97, 117, 116, 111, 100, 101, 112, 116, 104, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 97, 117, 116, 111, 100, 101, 112, 116, 104, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 101, 115, 116, 105, 109, 97, 116, 101, 115, 32, 97, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 102, 114, 111, 109, 32, 97, 32, 50, 68, 32, 105, 109, 97, 103, 101, 32, 98, 121, 32, 97, 110, 97, 108, 121, 122, 105, 110, 103, 32, 118, 97, 114, 105, 111, 117, 115, 32, 109, 111, 110, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 97, 117, 116, 111, 100, 101, 112, 116, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 52, 48, 48, 44, 50, 10, 35, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 115, 101, 116, 116, 105, 110, 103, 115, 10, 119, 104, 112, 111, 115, 61, 49, 50, 56, 32, 98, 108, 112, 111, 115, 61, 49, 50, 56, 32, 114, 112, 111, 115, 61, 50, 53, 53, 32, 103, 112, 111, 115, 61, 50, 48, 48, 32, 98, 108, 117, 112, 111, 115, 61, 50, 48, 48, 32, 99, 114, 103, 97, 61, 49, 46, 53, 32, 99, 114, 109, 105, 120, 49, 61, 48, 46, 53, 32, 99, 114, 109, 105, 120, 50, 61, 48, 46, 53, 32, 103, 101, 111, 99, 111, 109, 112, 49, 61, 55, 53, 32, 103, 101, 111, 99, 111, 109, 112, 50, 61, 51, 48, 10, 103, 101, 111, 115, 116, 114, 61, 48, 46, 51, 32, 102, 111, 99, 115, 116, 114, 61, 48, 46, 51, 32, 102, 101, 97, 116, 115, 105, 122, 101, 61, 54, 48, 32, 102, 101, 97, 116, 112, 111, 115, 61, 49, 50, 56, 32, 102, 101, 97, 116, 116, 114, 61, 51, 53, 32, 116, 114, 61, 51, 48, 32, 114, 116, 114, 61, 57, 48, 32, 103, 116, 114, 61, 57, 48, 32, 98, 108, 117, 116, 114, 61, 57, 48, 32, 99, 111, 110, 116, 115, 116, 114, 61, 48, 46, 57, 10, 102, 101, 97, 116, 105, 110, 102, 108, 61, 49, 32, 102, 111, 99, 116, 111, 108, 61, 53, 32, 102, 111, 99, 109, 111, 114, 112, 104, 61, 55, 48, 32, 102, 111, 99, 97, 118, 116, 61, 56, 53, 32, 102, 111, 99, 97, 118, 116, 50, 61, 49, 52, 48, 32, 102, 111, 99, 118, 97, 114, 116, 61, 50, 48, 48, 48, 32, 108, 97, 116, 105, 110, 104, 105, 98, 61, 48, 46, 53, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 103, 114, 97, 118, 105, 116, 121, 10, 45, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 91, 45, 49, 93, 32, 49, 48, 44, 48, 46, 53, 44, 48, 44, 48, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 49, 44, 48, 32, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 53, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 48, 44, 48, 46, 53, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 49, 44, 48, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 53, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 97, 110, 100, 32, 99, 111, 109, 112, 101, 110, 115, 97, 116, 101, 32, 111, 118, 101, 114, 47, 117, 110, 100, 101, 114, 101, 120, 112, 111, 115, 101, 100, 32, 97, 114, 101, 97, 115, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 103, 116, 114, 37, 44, 49, 48, 48, 37, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 103, 112, 111, 115, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 114, 116, 114, 37, 44, 49, 48, 48, 37, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 114, 112, 111, 115, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 116, 50, 91, 45, 49, 93, 32, 36, 98, 108, 117, 116, 114, 37, 44, 49, 48, 48, 37, 32, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 98, 108, 117, 112, 111, 115, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 49, 48, 48, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 50, 91, 45, 49, 93, 32, 56, 48, 37, 44, 57, 53, 37, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 119, 104, 112, 111, 115, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 50, 91, 45, 49, 93, 32, 53, 37, 44, 50, 48, 37, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 98, 108, 112, 111, 115, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 108, 97, 116, 101, 114, 97, 108, 32, 105, 110, 104, 105, 98, 105, 116, 105, 111, 110, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 48, 44, 48, 46, 53, 44, 48, 44, 53, 48, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 50, 44, 36, 102, 101, 97, 116, 115, 105, 122, 101, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 116, 50, 91, 45, 49, 93, 32, 36, 102, 101, 97, 116, 116, 114, 37, 44, 49, 48, 48, 37, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 102, 101, 97, 116, 112, 111, 115, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 50, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 99, 111, 110, 116, 115, 116, 114, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 50, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 99, 111, 108, 111, 114, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 99, 91, 45, 49, 93, 32, 50, 53, 37, 44, 49, 48, 48, 37, 32, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 99, 114, 103, 97, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 55, 48, 44, 48, 44, 49, 48, 48, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 99, 114, 109, 105, 120, 49, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 103, 101, 111, 109, 101, 116, 114, 121, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 49, 48, 44, 53, 44, 49, 53, 44, 36, 116, 114, 44, 49, 44, 49, 44, 48, 32, 99, 111, 109, 112, 108, 101, 120, 61, 64, 123, 45, 49, 44, 97, 125, 10, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 108, 101, 120, 62, 61, 36, 103, 101, 111, 99, 111, 109, 112, 49, 125, 10, 45, 100, 111, 32, 116, 114, 61, 123, 36, 116, 114, 43, 49, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 49, 48, 44, 53, 44, 49, 53, 44, 36, 116, 114, 44, 49, 44, 49, 44, 48, 32, 99, 111, 109, 112, 108, 101, 120, 61, 64, 123, 45, 49, 44, 97, 125, 10, 45, 119, 104, 105, 108, 101, 32, 123, 123, 36, 99, 111, 109, 112, 108, 101, 120, 62, 61, 36, 103, 101, 111, 99, 111, 109, 112, 50, 125, 38, 38, 123, 36, 116, 114, 60, 61, 57, 48, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 53, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 49, 32, 45, 103, 105, 109, 112, 95, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 50, 53, 53, 44, 48, 44, 49, 44, 49, 44, 48, 10, 99, 111, 109, 112, 108, 101, 120, 61, 64, 123, 45, 49, 44, 97, 125, 10, 35, 100, 101, 112, 116, 104, 32, 102, 114, 111, 109, 32, 102, 111, 99, 117, 115, 10, 45, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 102, 111, 99, 116, 111, 108, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 36, 102, 111, 99, 109, 111, 114, 112, 104, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 32, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 97, 118, 61, 64, 123, 45, 49, 44, 97, 125, 32, 118, 97, 114, 61, 64, 123, 45, 49, 44, 118, 125, 10, 45, 105, 102, 32, 123, 123, 36, 97, 118, 60, 61, 36, 102, 111, 99, 97, 118, 116, 125, 124, 124, 123, 123, 36, 97, 118, 62, 61, 36, 102, 111, 99, 97, 118, 116, 125, 38, 38, 123, 36, 97, 118, 60, 61, 36, 102, 111, 99, 97, 118, 116, 50, 125, 38, 38, 123, 36, 118, 97, 114, 60, 61, 36, 102, 111, 99, 118, 97, 114, 116, 125, 125, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 36, 97, 118, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 49, 48, 32, 45, 101, 108, 115, 101, 32, 45, 102, 99, 91, 45, 49, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 35, 108, 97, 116, 101, 114, 97, 108, 32, 105, 110, 104, 105, 98, 105, 116, 105, 111, 110, 32, 101, 109, 112, 104, 97, 122, 105, 115, 101, 114, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 48, 44, 48, 46, 53, 44, 48, 44, 53, 48, 44, 48, 44, 48, 10, 35, 99, 111, 109, 112, 111, 115, 105, 110, 103, 32, 100, 101, 112, 116, 104, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 116, 105, 111, 110, 115, 10, 45, 114, 109, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 55, 44, 45, 54, 93, 32, 48, 46, 53, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 54, 44, 45, 53, 93, 32, 36, 102, 101, 97, 116, 105, 110, 102, 108, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 53, 44, 45, 52, 93, 32, 36, 99, 114, 109, 105, 120, 50, 10, 45, 114, 118, 91, 45, 52, 44, 45, 51, 93, 10, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 108, 101, 120, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 52, 44, 45, 51, 93, 32, 36, 103, 101, 111, 115, 116, 114, 32, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 91, 45, 51, 44, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 51, 44, 45, 50, 93, 32, 36, 102, 111, 99, 115, 116, 114, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 108, 97, 116, 105, 110, 104, 105, 98, 10, 35, 102, 105, 110, 97, 108, 32, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 50, 32, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 50, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 49, 53, 44, 48, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 50, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 49, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 115, 105, 122, 101, 49, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 45, 65, 110, 97, 103, 108, 121, 112, 104, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 97, 110, 97, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 97, 110, 97, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 115, 32, 115, 116, 114, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 102, 117, 108, 108, 32, 99, 111, 108, 111, 117, 114, 32, 118, 105, 101, 119, 115, 32, 102, 114, 111, 109, 32, 97, 110, 97, 103, 108, 121, 112, 104, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 117, 114, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 101, 113, 117, 97, 108, 105, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 50, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 97, 110, 97, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 115, 32, 99, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 93, 32, 48, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 98, 108, 117, 114, 95, 120, 91, 49, 44, 50, 93, 32, 36, 49, 10, 45, 99, 91, 45, 49, 44, 45, 50, 93, 32, 64, 123, 48, 44, 109, 125, 44, 64, 123, 48, 44, 77, 125, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 123, 123, 123, 123, 36, 50, 94, 123, 64, 123, 48, 44, 97, 125, 47, 64, 123, 45, 49, 44, 97, 125, 125, 125, 45, 36, 50, 125, 42, 36, 50, 125, 43, 49, 125, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 50, 93, 32, 123, 123, 123, 123, 36, 50, 94, 123, 64, 123, 48, 44, 97, 125, 47, 64, 123, 45, 50, 44, 97, 125, 125, 125, 45, 36, 50, 125, 42, 36, 50, 125, 43, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 49, 44, 50, 93, 32, 45, 114, 109, 91, 48, 93, 32, 45, 109, 118, 91, 50, 93, 32, 48, 10, 45, 97, 91, 48, 44, 49, 44, 50, 93, 32, 99, 32, 45, 97, 91, 49, 44, 50, 44, 51, 93, 32, 99, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 112, 116, 104, 32, 109, 97, 112, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 101, 115, 116, 105, 109, 97, 116, 101, 115, 32, 97, 110, 100, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 115, 32, 97, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 102, 111, 114, 32, 97, 32, 50, 68, 32, 105, 109, 97, 103, 101, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 101, 110, 101, 32, 115, 101, 108, 101, 99, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 100, 101, 112, 116, 104, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 34, 44, 34, 100, 97, 121, 108, 105, 103, 104, 116, 32, 115, 99, 101, 110, 101, 34, 44, 34, 111, 112, 116, 105, 109, 105, 122, 101, 100, 32, 108, 97, 116, 101, 114, 97, 108, 32, 105, 110, 104, 105, 98, 105, 116, 105, 111, 110, 34, 44, 34, 108, 105, 103, 104, 116, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 100, 97, 114, 107, 32, 32, 109, 111, 116, 105, 118, 101, 34, 44, 34, 108, 97, 110, 100, 115, 99, 97, 112, 101, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 101, 114, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 114, 105, 103, 104, 116, 32, 100, 105, 97, 103, 111, 110, 97, 108, 32, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 108, 101, 102, 116, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 116, 111, 112, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 108, 101, 102, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 98, 111, 116, 116, 111, 109, 32, 97, 110, 100, 32, 114, 105, 103, 104, 116, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 111, 117, 116, 100, 111, 111, 114, 34, 44, 34, 99, 101, 110, 116, 114, 97, 108, 32, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 105, 110, 100, 111, 111, 114, 34, 44, 34, 112, 111, 114, 116, 114, 97, 105, 116, 34, 44, 34, 104, 117, 109, 97, 110, 32, 49, 34, 44, 34, 104, 117, 109, 97, 110, 32, 32, 50, 34, 44, 34, 115, 116, 117, 100, 105, 111, 34, 44, 34, 117, 110, 100, 101, 114, 119, 97, 116, 101, 114, 34, 44, 34, 102, 108, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 102, 105, 101, 108, 100, 32, 99, 111, 110, 116, 114, 111, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 97, 116, 117, 114, 101, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 100, 101, 116, 97, 105, 108, 32, 101, 110, 104, 97, 110, 99, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 79, 70, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 97, 110, 97, 108, 121, 122, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 112, 114, 111, 99, 101, 115, 115, 111, 114, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 112, 114, 111, 99, 101, 115, 115, 111, 114, 32, 80, 111, 119, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 109, 97, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 32, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 52, 48, 48, 44, 50, 10, 45, 105, 102, 32, 123, 123, 36, 56, 33, 61, 48, 125, 124, 124, 123, 36, 56, 33, 61, 48, 125, 125, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 95, 102, 97, 115, 116, 32, 123, 36, 56, 42, 52, 125, 44, 123, 36, 57, 47, 53, 125, 44, 51, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 116, 107, 95, 97, 117, 116, 111, 100, 101, 112, 116, 104, 91, 45, 49, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 49, 44, 48, 46, 50, 53, 44, 48, 44, 51, 48, 44, 51, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 48, 46, 49, 53, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 48, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 50, 47, 50, 53, 125, 43, 48, 46, 49, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 49, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 49, 46, 53, 125, 125, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 123, 48, 46, 53, 43, 123, 36, 50, 47, 50, 48, 48, 125, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 103, 105, 109, 112, 95, 100, 111, 103, 91, 45, 49, 93, 32, 48, 46, 52, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 32, 45, 103, 105, 109, 112, 95, 100, 111, 103, 91, 45, 51, 93, 32, 48, 46, 52, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 48, 46, 52, 52, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 48, 46, 52, 52, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 48, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 36, 50, 44, 49, 48, 48, 44, 53, 48, 44, 53, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 10, 45, 45, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 53, 48, 44, 53, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 48, 44, 36, 50, 44, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 51, 49, 53, 44, 36, 50, 44, 49, 48, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 52, 53, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 50, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 51, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 49, 56, 48, 44, 49, 48, 48, 44, 123, 53, 48, 43, 123, 36, 50, 47, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 123, 53, 48, 45, 123, 36, 50, 47, 50, 125, 125, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 52, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 55, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 53, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 54, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 55, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 56, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 55, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 57, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 114, 97, 100, 105, 97, 108, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 44, 36, 50, 44, 49, 48, 48, 44, 53, 48, 44, 53, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 54, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 45, 49, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 53, 48, 45, 123, 36, 50, 47, 50, 125, 125, 44, 49, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 49, 46, 53, 45, 123, 36, 50, 47, 54, 55, 125, 125, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 50, 47, 50, 53, 125, 43, 49, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 53, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 48, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 50, 125, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 45, 49, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 53, 48, 45, 123, 36, 50, 47, 50, 125, 125, 44, 49, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 49, 46, 53, 45, 123, 36, 50, 47, 54, 55, 125, 125, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 50, 47, 50, 53, 125, 43, 48, 46, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 49, 56, 48, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 108, 105, 110, 101, 97, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 57, 48, 44, 55, 53, 44, 123, 49, 48, 48, 45, 123, 36, 50, 47, 52, 125, 125, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 48, 46, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 50, 125, 32, 45, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 52, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 45, 49, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 53, 48, 45, 123, 36, 50, 47, 50, 125, 125, 44, 49, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 123, 36, 52, 47, 50, 125, 44, 123, 49, 46, 53, 45, 123, 36, 50, 47, 54, 55, 125, 125, 44, 48, 44, 123, 49, 48, 48, 45, 36, 50, 125, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 123, 36, 50, 47, 50, 53, 125, 43, 48, 46, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 51, 125, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 52, 125, 32, 45, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 35, 32, 97, 110, 97, 108, 121, 122, 101, 32, 105, 109, 97, 103, 101, 32, 102, 101, 97, 116, 117, 114, 101, 115, 10, 45, 105, 102, 32, 123, 36, 55, 33, 61, 48, 125, 10, 45, 45, 102, 99, 91, 48, 93, 32, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 50, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 57, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 49, 54, 53, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 53, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 49, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 55, 47, 53, 125, 10, 45, 101, 108, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 55, 47, 53, 125, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 123, 36, 50, 47, 50, 53, 125, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 54, 33, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 91, 48, 93, 32, 50, 44, 50, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 53, 44, 48, 44, 49, 50, 56, 44, 49, 50, 56, 44, 49, 50, 56, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 55, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 32, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 97, 118, 61, 64, 123, 45, 49, 44, 97, 125, 10, 45, 116, 50, 91, 45, 49, 93, 32, 36, 97, 118, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 50, 53, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 54, 47, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 48, 93, 32, 123, 123, 36, 51, 42, 51, 125, 43, 50, 125, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 51, 44, 123, 53, 45, 123, 36, 51, 47, 50, 125, 125, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 45, 49, 93, 32, 49, 44, 49, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 51, 47, 49, 48, 125, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 123, 36, 52, 42, 50, 125, 44, 123, 49, 46, 53, 45, 123, 48, 46, 49, 43, 123, 36, 51, 47, 51, 46, 54, 125, 125, 125, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 117, 114, 95, 121, 91, 45, 49, 93, 32, 36, 49, 48, 32, 45, 98, 108, 117, 114, 95, 120, 91, 45, 49, 93, 32, 123, 36, 49, 48, 47, 50, 125, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 48, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 45, 49, 93, 32, 49, 44, 123, 48, 46, 50, 53, 45, 123, 36, 53, 47, 50, 48, 125, 125, 44, 48, 44, 51, 48, 44, 51, 44, 48, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 123, 36, 53, 47, 49, 48, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 48, 93, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 115, 105, 122, 101, 49, 44, 50, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 112, 116, 104, 32, 109, 97, 112, 32, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 95, 111, 98, 116, 97, 105, 110, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 95, 111, 98, 116, 97, 105, 110, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 101, 115, 116, 105, 109, 97, 116, 101, 115, 32, 97, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 101, 102, 116, 32, 97, 110, 100, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 32, 118, 105, 101, 119, 32, 111, 102, 32, 97, 32, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 46, 32, 73, 109, 97, 103, 101, 115, 32, 109, 117, 115, 116, 32, 98, 101, 32, 97, 108, 105, 103, 110, 101, 100, 32, 99, 111, 114, 114, 101, 99, 116, 32, 116, 111, 32, 99, 111, 109, 112, 117, 116, 101, 32, 99, 111, 114, 114, 101, 99, 116, 32, 100, 101, 112, 116, 104, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 102, 108, 105, 112, 32, 108, 101, 102, 116, 47, 114, 105, 103, 104, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 101, 114, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 101, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 100, 101, 112, 116, 104, 95, 111, 98, 116, 97, 105, 110, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 10, 45, 116, 111, 95, 114, 103, 98, 32, 115, 105, 122, 101, 49, 61, 123, 119, 125, 32, 115, 105, 122, 101, 50, 61, 123, 104, 125, 32, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 52, 48, 48, 44, 50, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 48, 48, 125, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 114, 111, 117, 110, 100, 32, 49, 48, 44, 123, 49, 48, 48, 45, 36, 51, 125, 44, 36, 52, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 46, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 48, 93, 32, 91, 49, 93, 44, 36, 50, 10, 45, 114, 109, 91, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 32, 36, 115, 105, 122, 101, 49, 44, 36, 115, 105, 122, 101, 50, 32, 45, 101, 110, 100, 108, 10, 35, 64, 103, 105, 109, 112, 32, 76, 101, 110, 116, 105, 99, 117, 108, 97, 114, 32, 112, 114, 105, 110, 116, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 108, 101, 110, 116, 105, 99, 117, 108, 97, 114, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 108, 101, 110, 116, 105, 99, 117, 108, 97, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 110, 116, 105, 99, 117, 108, 97, 114, 32, 100, 101, 110, 115, 105, 116, 121, 32, 108, 112, 105, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 53, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 110, 116, 105, 99, 117, 108, 97, 114, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 105, 122, 101, 32, 119, 105, 100, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 49, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 105, 110, 116, 32, 115, 105, 122, 101, 32, 117, 110, 105, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 105, 110, 99, 104, 34, 44, 34, 99, 101, 110, 116, 105, 109, 101, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 105, 110, 116, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 109, 97, 114, 107, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 117, 112, 115, 99, 97, 108, 101, 32, 102, 111, 114, 32, 111, 112, 116, 105, 109, 117, 109, 32, 114, 101, 115, 117, 108, 116, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 54, 47, 49, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 116, 117, 116, 111, 114, 105, 97, 108, 115, 37, 50, 48, 50, 68, 116, 111, 51, 68, 37, 50, 48, 51, 68, 45, 97, 117, 116, 111, 109, 97, 116, 105, 99, 37, 50, 48, 115, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 37, 50, 48, 99, 111, 110, 118, 101, 114, 115, 105, 111, 110, 46, 104, 116, 109, 108, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 108, 101, 110, 116, 105, 99, 117, 108, 97, 114, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 102, 114, 97, 109, 101, 115, 61, 123, 64, 35, 125, 32, 105, 110, 100, 101, 120, 61, 48, 32, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 32, 108, 101, 110, 103, 116, 104, 61, 36, 51, 32, 45, 101, 108, 115, 101, 32, 108, 101, 110, 103, 116, 104, 61, 123, 36, 51, 47, 50, 46, 53, 52, 125, 32, 45, 101, 110, 100, 105, 102, 10, 108, 101, 110, 115, 101, 115, 61, 123, 36, 108, 101, 110, 103, 116, 104, 42, 36, 49, 125, 32, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 61, 123, 119, 47, 36, 108, 101, 110, 115, 101, 115, 125, 10, 112, 105, 99, 115, 116, 114, 105, 112, 101, 61, 123, 36, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 47, 36, 102, 114, 97, 109, 101, 115, 125, 32, 120, 61, 48, 32, 121, 61, 48, 32, 101, 110, 100, 61, 123, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 10, 115, 116, 101, 112, 61, 123, 36, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 45, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 10, 35, 97, 117, 116, 111, 109, 97, 116, 105, 99, 32, 117, 112, 115, 99, 97, 108, 101, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 45, 105, 102, 32, 123, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 33, 61, 123, 105, 110, 116, 40, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 41, 125, 125, 32, 115, 99, 97, 108, 101, 61, 123, 123, 105, 110, 116, 40, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 41, 43, 49, 125, 47, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 10, 45, 114, 32, 123, 119, 42, 36, 115, 99, 97, 108, 101, 125, 44, 123, 104, 42, 36, 115, 99, 97, 108, 101, 125, 32, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 61, 123, 119, 47, 36, 108, 101, 110, 115, 101, 115, 125, 32, 112, 105, 99, 115, 116, 114, 105, 112, 101, 61, 123, 36, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 47, 36, 102, 114, 97, 109, 101, 115, 125, 10, 101, 110, 100, 61, 123, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 32, 115, 116, 101, 112, 61, 123, 36, 108, 101, 110, 115, 101, 119, 105, 100, 116, 104, 45, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 108, 101, 110, 115, 101, 115, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 105, 102, 40, 120, 62, 61, 36, 101, 110, 100, 44, 48, 44, 105, 41, 32, 120, 61, 123, 36, 120, 43, 36, 115, 116, 101, 112, 125, 32, 101, 110, 100, 61, 123, 36, 101, 110, 100, 43, 36, 115, 116, 101, 112, 125, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 105, 102, 40, 120, 62, 61, 36, 101, 110, 100, 44, 50, 53, 53, 44, 105, 41, 32, 120, 61, 123, 36, 120, 43, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 32, 101, 110, 100, 61, 123, 36, 101, 110, 100, 43, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 10, 45, 101, 108, 115, 101, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 105, 102, 40, 121, 62, 61, 36, 101, 110, 100, 44, 48, 44, 105, 41, 32, 121, 61, 123, 36, 121, 43, 36, 115, 116, 101, 112, 125, 32, 101, 110, 100, 61, 123, 36, 101, 110, 100, 43, 36, 115, 116, 101, 112, 125, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 105, 102, 40, 121, 62, 61, 36, 101, 110, 100, 44, 50, 53, 53, 44, 105, 41, 32, 121, 61, 123, 36, 121, 43, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 32, 101, 110, 100, 61, 123, 36, 101, 110, 100, 43, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 10, 45, 101, 110, 100, 105, 102, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 102, 114, 97, 109, 101, 115, 45, 49, 125, 32, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 116, 50, 91, 45, 49, 93, 32, 49, 50, 56, 44, 50, 53, 54, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 123, 123, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 42, 123, 36, 102, 114, 97, 109, 101, 115, 45, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 125, 10, 45, 101, 108, 115, 101, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 48, 44, 123, 123, 36, 112, 105, 99, 115, 116, 114, 105, 112, 101, 125, 42, 123, 36, 102, 114, 97, 109, 101, 115, 45, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 125, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 91, 36, 105, 110, 100, 101, 120, 93, 32, 99, 32, 45, 97, 91, 36, 105, 110, 100, 101, 120, 44, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 44, 123, 36, 105, 110, 100, 101, 120, 43, 50, 125, 44, 45, 49, 93, 32, 99, 10, 105, 110, 100, 101, 120, 61, 123, 36, 105, 110, 100, 101, 120, 43, 49, 125, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 102, 114, 97, 109, 101, 115, 45, 49, 125, 32, 45, 114, 118, 91, 48, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 45, 50, 93, 32, 45, 114, 118, 91, 48, 44, 45, 50, 93, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 53, 32, 45, 101, 108, 115, 101, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 114, 118, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 32, 45, 101, 108, 115, 101, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 83, 105, 110, 103, 108, 101, 32, 105, 109, 97, 103, 101, 32, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 118, 105, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 97, 116, 116, 101, 114, 110, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 116, 101, 114, 110, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 49, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 50, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 51, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 52, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 50, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 115, 104, 111, 117, 108, 100, 32, 98, 101, 32, 97, 32, 60, 98, 62, 100, 101, 112, 116, 104, 32, 109, 97, 112, 60, 47, 98, 62, 32, 119, 104, 105, 99, 104, 32, 105, 115, 32, 116, 117, 114, 110, 101, 100, 32, 105, 110, 116, 111, 32, 97, 110, 32, 97, 117, 116, 111, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 44, 32, 97, 108, 115, 111, 32, 107, 110, 111, 119, 110, 32, 97, 115, 32, 109, 97, 103, 105, 99, 32, 101, 121, 101, 32, 105, 109, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 84, 75, 70, 105, 108, 116, 101, 114, 37, 50, 48, 102, 105, 108, 116, 101, 114, 46, 104, 116, 109, 108, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 101, 110, 46, 119, 105, 107, 105, 112, 101, 100, 105, 97, 46, 111, 114, 103, 47, 119, 105, 107, 105, 47, 65, 117, 116, 111, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 34, 41, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 103, 114, 97, 121, 32, 45, 45, 102, 99, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 44, 56, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 91, 45, 49, 93, 32, 49, 48, 44, 49, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 114, 114, 97, 121, 95, 102, 97, 100, 101, 91, 45, 49, 93, 32, 123, 36, 53, 47, 49, 48, 125, 44, 123, 36, 53, 47, 49, 48, 125, 44, 48, 44, 48, 44, 56, 48, 44, 57, 48, 44, 51, 44, 48, 10, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 119, 47, 51, 48, 125, 44, 48, 44, 51, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 114, 111, 114, 115, 99, 104, 97, 99, 104, 91, 45, 49, 93, 32, 36, 52, 44, 49, 44, 48, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 48, 46, 53, 10, 45, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 36, 54, 44, 36, 55, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 44, 50, 53, 53, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 49, 56, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 50, 10, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 49, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 103, 114, 97, 109, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 101, 114, 101, 111, 115, 99, 111, 112, 105, 99, 32, 105, 109, 97, 103, 101, 32, 97, 108, 105, 103, 110, 109, 101, 110, 116, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 114, 101, 100, 47, 99, 121, 97, 110, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 98, 108, 117, 101, 47, 121, 101, 108, 108, 111, 119, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 34, 44, 34, 65, 110, 97, 103, 108, 121, 112, 103, 104, 32, 103, 114, 101, 101, 110, 47, 109, 97, 103, 101, 110, 116, 97, 32, 111, 112, 116, 105, 109, 105, 122, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 115, 105, 100, 101, 32, 107, 101, 101, 112, 32, 119, 105, 100, 116, 104, 34, 44, 34, 70, 117, 108, 108, 32, 115, 105, 100, 101, 32, 98, 121, 32, 115, 105, 100, 101, 32, 107, 101, 101, 112, 32, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 34, 44, 34, 70, 117, 108, 108, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 72, 97, 108, 102, 32, 115, 105, 100, 101, 32, 32, 98, 121, 32, 115, 105, 100, 101, 34, 44, 34, 72, 97, 108, 102, 32, 98, 111, 116, 116, 111, 109, 47, 116, 111, 112, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 73, 110, 116, 101, 114, 108, 97, 99, 101, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 70, 117, 108, 108, 32, 72, 68, 32, 102, 114, 97, 109, 101, 32, 112, 97, 99, 107, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 105, 112, 32, 108, 101, 102, 116, 32, 47, 32, 114, 105, 103, 104, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 99, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 45, 103, 104, 111, 115, 116, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 98, 111, 111, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 97, 103, 108, 121, 112, 104, 32, 103, 108, 97, 115, 115, 101, 115, 32, 97, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 32, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 97, 108, 105, 103, 110, 101, 100, 32, 105, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 115, 116, 101, 114, 101, 111, 105, 109, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 60, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 111, 99, 97, 108, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 36, 52, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 49, 44, 49, 44, 36, 52, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 49, 44, 49, 48, 44, 55, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 61, 61, 48, 125, 124, 124, 123, 36, 49, 61, 61, 49, 125, 124, 124, 123, 36, 49, 61, 61, 50, 125, 124, 124, 123, 36, 49, 61, 61, 51, 125, 124, 124, 123, 36, 49, 61, 61, 52, 125, 124, 124, 123, 36, 49, 61, 61, 53, 125, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 115, 32, 99, 10, 45, 114, 109, 91, 45, 51, 44, 45, 52, 44, 45, 53, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 49, 46, 49, 53, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 50, 93, 32, 49, 46, 48, 32, 45, 115, 32, 99, 10, 114, 108, 114, 61, 52, 53, 54, 32, 114, 108, 103, 61, 53, 48, 48, 32, 114, 108, 98, 61, 49, 55, 54, 32, 114, 114, 114, 61, 123, 45, 52, 51, 125, 32, 114, 114, 103, 61, 123, 45, 56, 56, 125, 32, 114, 114, 98, 61, 123, 45, 50, 125, 10, 103, 108, 114, 61, 123, 45, 52, 48, 125, 32, 103, 108, 103, 61, 123, 45, 51, 56, 125, 32, 103, 108, 98, 61, 123, 45, 49, 54, 125, 32, 103, 114, 114, 61, 51, 55, 56, 32, 103, 114, 103, 61, 55, 51, 52, 32, 103, 114, 98, 61, 123, 45, 49, 56, 125, 10, 98, 108, 114, 61, 123, 45, 49, 53, 125, 32, 98, 108, 103, 61, 123, 45, 50, 49, 125, 32, 98, 108, 98, 61, 123, 45, 53, 125, 32, 98, 114, 114, 61, 123, 45, 55, 50, 125, 32, 98, 114, 103, 61, 123, 45, 49, 49, 51, 125, 32, 98, 114, 98, 61, 49, 50, 50, 54, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 114, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 114, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 114, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 114, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 114, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 103, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 103, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 103, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 103, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 103, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 103, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 98, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 98, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 98, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 98, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 98, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 98, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 107, 91, 45, 49, 45, 45, 51, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 115, 32, 99, 10, 45, 114, 109, 91, 45, 54, 44, 45, 53, 44, 45, 49, 93, 32, 45, 109, 118, 91, 48, 93, 32, 51, 32, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 48, 46, 57, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 50, 93, 32, 49, 46, 50, 53, 32, 45, 115, 32, 99, 10, 114, 114, 114, 61, 49, 48, 54, 50, 32, 114, 114, 103, 61, 123, 45, 50, 48, 53, 125, 32, 114, 114, 98, 61, 50, 57, 57, 32, 114, 108, 114, 61, 123, 45, 49, 54, 125, 32, 114, 108, 103, 61, 123, 45, 49, 50, 51, 125, 32, 114, 108, 98, 61, 123, 45, 49, 55, 125, 10, 103, 114, 114, 61, 123, 45, 50, 54, 125, 32, 103, 114, 103, 61, 57, 48, 56, 32, 103, 114, 98, 61, 54, 56, 32, 103, 108, 114, 61, 54, 32, 103, 108, 103, 61, 54, 50, 32, 103, 108, 98, 61, 123, 45, 49, 55, 125, 10, 98, 114, 114, 61, 123, 45, 51, 56, 125, 32, 98, 114, 103, 61, 123, 45, 49, 55, 51, 125, 32, 98, 114, 98, 61, 50, 50, 32, 98, 108, 114, 61, 57, 52, 32, 98, 108, 103, 61, 49, 56, 53, 32, 98, 108, 98, 61, 57, 49, 49, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 114, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 114, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 114, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 114, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 114, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 103, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 103, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 103, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 103, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 103, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 103, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 98, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 98, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 98, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 98, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 98, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 98, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 107, 91, 45, 49, 45, 45, 51, 93, 32, 45, 97, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 32, 45, 115, 32, 99, 10, 45, 114, 109, 91, 45, 49, 44, 45, 51, 44, 45, 53, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 32, 45, 97, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 32, 45, 115, 32, 99, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 49, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 50, 93, 32, 49, 46, 49, 53, 32, 45, 115, 32, 99, 10, 114, 114, 114, 61, 123, 45, 54, 50, 125, 32, 114, 114, 103, 61, 123, 45, 49, 53, 56, 125, 32, 114, 114, 98, 61, 123, 45, 51, 57, 125, 32, 114, 108, 114, 61, 123, 53, 50, 57, 125, 32, 114, 108, 103, 61, 123, 55, 48, 53, 125, 32, 114, 108, 98, 61, 123, 50, 52, 125, 10, 103, 114, 114, 61, 123, 50, 56, 52, 125, 32, 103, 114, 103, 61, 54, 54, 56, 32, 103, 114, 98, 61, 49, 52, 51, 32, 103, 108, 114, 61, 123, 45, 49, 54, 125, 32, 103, 108, 103, 61, 123, 45, 49, 53, 125, 32, 103, 108, 98, 61, 123, 45, 54, 53, 125, 10, 98, 114, 114, 61, 123, 45, 49, 53, 125, 32, 98, 114, 103, 61, 123, 45, 50, 55, 125, 32, 98, 114, 98, 61, 50, 49, 32, 98, 108, 114, 61, 57, 32, 98, 108, 103, 61, 55, 53, 32, 98, 108, 98, 61, 57, 51, 55, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 114, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 114, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 114, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 114, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 114, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 114, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 103, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 103, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 103, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 103, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 103, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 103, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 48, 45, 53, 93, 10, 45, 42, 91, 45, 51, 93, 32, 36, 98, 108, 114, 32, 45, 42, 91, 45, 50, 93, 32, 36, 98, 108, 103, 32, 45, 42, 91, 45, 49, 93, 32, 36, 98, 108, 98, 32, 45, 42, 91, 45, 54, 93, 32, 36, 98, 114, 114, 32, 45, 42, 91, 45, 53, 93, 32, 36, 98, 114, 103, 32, 45, 42, 91, 45, 52, 93, 32, 36, 98, 114, 98, 10, 45, 43, 91, 45, 54, 93, 32, 91, 45, 53, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 52, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 51, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 50, 93, 32, 45, 43, 91, 45, 54, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 45, 45, 53, 93, 10, 45, 47, 91, 45, 49, 93, 32, 49, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 107, 91, 45, 49, 45, 45, 51, 93, 32, 45, 97, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 45, 49, 44, 45, 50, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 51, 44, 54, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 48, 44, 49, 93, 32, 53, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 54, 32, 45, 97, 91, 48, 44, 49, 93, 32, 120, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 48, 125, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 48, 44, 49, 93, 32, 49, 48, 48, 37, 44, 53, 48, 37, 44, 49, 44, 51, 44, 54, 32, 45, 97, 91, 48, 44, 49, 93, 32, 121, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 49, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 121, 37, 50, 61, 61, 48, 44, 48, 44, 105, 41, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 50, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 105, 102, 40, 120, 37, 50, 61, 61, 48, 44, 48, 44, 105, 41, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 91, 48, 44, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 51, 125, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 91, 48, 44, 49, 93, 32, 49, 57, 50, 48, 44, 49, 48, 56, 48, 44, 49, 44, 51, 44, 54, 32, 45, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 32, 45, 114, 91, 45, 49, 93, 32, 49, 57, 50, 48, 44, 52, 53, 10, 45, 114, 118, 91, 45, 49, 44, 45, 50, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 121, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 121, 10, 45, 101, 110, 100, 105, 102, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 123, 36, 49, 61, 61, 54, 125, 124, 124, 123, 36, 49, 61, 61, 55, 125, 124, 124, 123, 36, 49, 61, 61, 56, 125, 124, 124, 123, 36, 49, 61, 61, 57, 125, 124, 124, 123, 36, 49, 61, 61, 49, 48, 125, 124, 124, 123, 36, 49, 61, 61, 49, 49, 125, 124, 124, 123, 36, 49, 61, 61, 49, 50, 125, 124, 124, 123, 36, 49, 61, 61, 49, 51, 125, 125, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 36, 53, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 105, 102, 32, 123, 123, 36, 49, 61, 61, 48, 125, 124, 124, 123, 36, 49, 61, 61, 49, 125, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 36, 54, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 123, 36, 49, 61, 61, 50, 125, 124, 124, 123, 36, 49, 61, 61, 51, 125, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 36, 54, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 36, 54, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 36, 54, 44, 48, 44, 49, 44, 123, 105, 102, 40, 123, 36, 54, 62, 61, 48, 125, 44, 36, 54, 44, 48, 41, 125, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 84, 101, 115, 116, 105, 110, 103, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 110, 116, 105, 32, 65, 108, 105, 97, 115, 32, 58, 32, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 44, 32, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 108, 101, 99, 116, 105, 118, 101, 108, 121, 32, 115, 109, 111, 111, 116, 104, 32, 114, 101, 115, 105, 122, 105, 110, 103, 32, 112, 105, 120, 101, 108, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 54, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 69, 120, 112, 111, 110, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 101, 110, 32, 69, 100, 103, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 48, 46, 51, 125, 44, 36, 123, 51, 61, 49, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 45, 45, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 36, 49, 44, 48, 44, 49, 44, 49, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 48, 46, 54, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 45, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 51, 32, 45, 97, 100, 100, 91, 48, 44, 45, 49, 93, 10, 45, 112, 111, 119, 91, 45, 49, 93, 32, 36, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 112, 111, 119, 91, 45, 49, 93, 32, 36, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 111, 118, 101, 114, 108, 97, 121, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 97, 108, 112, 104, 97, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 65, 117, 114, 111, 114, 97, 32, 58, 32, 103, 99, 100, 95, 97, 117, 114, 111, 114, 97, 44, 32, 103, 99, 100, 95, 97, 117, 114, 111, 114, 97, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 105, 62, 83, 105, 109, 112, 108, 101, 32, 97, 117, 114, 111, 114, 97, 32, 101, 102, 102, 101, 99, 116, 32, 102, 105, 108, 116, 101, 114, 60, 47, 105, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 101, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 97, 117, 114, 111, 114, 97, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 100, 101, 114, 105, 99, 104, 101, 91, 48, 93, 32, 36, 49, 37, 44, 50, 44, 121, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 50, 37, 44, 48, 44, 120, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 51, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 97, 118, 101, 114, 97, 103, 101, 32, 45, 101, 108, 115, 101, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 32, 66, 108, 117, 114, 32, 58, 32, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 44, 32, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 70, 111, 114, 32, 115, 117, 98, 116, 108, 101, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 111, 102, 32, 99, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 32, 97, 114, 116, 105, 102, 97, 99, 116, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 49, 46, 32, 80, 114, 101, 118, 105, 101, 119, 32, 119, 105, 108, 108, 32, 60, 98, 62, 110, 111, 116, 60, 47, 98, 62, 32, 115, 104, 111, 119, 32, 116, 104, 101, 32, 102, 105, 110, 97, 108, 32, 114, 101, 115, 117, 108, 116, 32, 97, 99, 99, 117, 114, 97, 116, 101, 108, 121, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 50, 46, 32, 66, 101, 32, 115, 117, 114, 101, 32, 116, 111, 32, 97, 112, 112, 108, 121, 32, 60, 98, 62, 98, 101, 102, 111, 114, 101, 60, 47, 98, 62, 32, 97, 110, 121, 32, 105, 109, 97, 103, 101, 32, 114, 101, 115, 105, 122, 105, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 51, 46, 32, 82, 101, 100, 117, 99, 101, 32, 103, 114, 105, 100, 32, 119, 105, 100, 116, 104, 32, 119, 104, 101, 110, 32, 105, 110, 99, 114, 101, 97, 115, 105, 110, 103, 32, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 116, 111, 32, 97, 118, 111, 105, 100, 32, 111, 118, 101, 114, 45, 115, 109, 111, 111, 116, 104, 105, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 52, 46, 32, 83, 101, 116, 32, 103, 114, 105, 100, 32, 100, 105, 118, 105, 115, 105, 111, 110, 115, 32, 116, 111, 32, 122, 101, 114, 111, 32, 102, 111, 114, 32, 49, 48, 48, 37, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 46, 92, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 105, 100, 32, 68, 105, 118, 105, 115, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 105, 100, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 105, 100, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 69, 100, 103, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 117, 114, 32, 67, 104, 97, 110, 110, 101, 108, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 111, 115, 116, 32, 83, 109, 111, 111, 116, 104, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 125, 44, 36, 123, 50, 61, 51, 125, 44, 36, 123, 51, 61, 49, 125, 44, 36, 123, 52, 61, 49, 48, 48, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 48, 125, 10, 103, 115, 122, 61, 123, 50, 94, 40, 53, 45, 36, 49, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 32, 45, 101, 100, 103, 101, 115, 91, 45, 49, 93, 32, 49, 52, 46, 53, 37, 32, 45, 110, 91, 45, 49, 93, 32, 123, 49, 48, 48, 45, 36, 52, 125, 37, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 115, 125, 62, 49, 34, 32, 38, 38, 32, 34, 36, 53, 125, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 34, 45, 109, 101, 100, 105, 97, 110, 32, 53, 34, 44, 52, 10, 45, 105, 109, 97, 103, 101, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 50, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 109, 117, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 108, 115, 101, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 10, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 103, 115, 122, 44, 36, 103, 115, 122, 44, 48, 44, 48, 44, 49, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 62, 61, 50, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 103, 115, 122, 44, 36, 103, 115, 122, 44, 49, 44, 49, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 51, 125, 32, 45, 103, 114, 105, 100, 91, 45, 49, 93, 32, 36, 103, 115, 122, 44, 36, 103, 115, 122, 44, 45, 49, 44, 45, 49, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 51, 44, 48, 32, 45, 109, 117, 108, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 45, 50, 93, 32, 91, 48, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 115, 109, 111, 111, 116, 104, 91, 49, 93, 32, 123, 49, 48, 48, 42, 36, 54, 43, 49, 48, 48, 125, 44, 48, 46, 54, 44, 48, 46, 51, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 97, 108, 112, 104, 97, 10, 45, 105, 102, 32, 123, 33, 36, 54, 125, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 50, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 112, 116, 104, 32, 66, 108, 117, 114, 32, 58, 32, 103, 99, 100, 95, 100, 101, 112, 116, 104, 95, 98, 108, 117, 114, 44, 32, 103, 99, 100, 95, 100, 101, 112, 116, 104, 95, 98, 108, 117, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 105, 62, 83, 101, 108, 101, 99, 116, 105, 118, 101, 108, 121, 32, 98, 108, 117, 114, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 100, 101, 112, 116, 104, 60, 47, 105, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 105, 62, 65, 109, 111, 117, 110, 116, 32, 111, 102, 32, 98, 108, 117, 114, 32, 97, 112, 112, 108, 105, 101, 100, 32, 105, 115, 32, 114, 101, 108, 97, 116, 105, 118, 101, 32, 116, 111, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 111, 102, 32, 116, 104, 101, 32, 100, 101, 112, 116, 104, 32, 109, 97, 112, 60, 47, 105, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 116, 97, 110, 99, 101, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 49, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 68, 101, 112, 116, 104, 32, 77, 97, 112, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 80, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 82, 97, 116, 105, 111, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 114, 101, 97, 116, 101, 47, 86, 105, 101, 119, 32, 68, 101, 112, 116, 104, 32, 77, 97, 112, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 77, 97, 112, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 100, 101, 112, 116, 104, 95, 98, 108, 117, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 49, 53, 125, 44, 36, 123, 51, 61, 48, 46, 50, 53, 125, 44, 36, 123, 52, 61, 50, 125, 44, 36, 123, 53, 61, 52, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 97, 61, 123, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 49, 48, 48, 48, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 103, 99, 100, 95, 100, 101, 112, 116, 104, 91, 48, 93, 32, 36, 51, 44, 36, 52, 44, 36, 53, 10, 45, 105, 102, 32, 36, 55, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 49, 37, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 36, 54, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 91, 45, 50, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 115, 97, 44, 51, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 115, 112, 101, 99, 107, 108, 101, 58, 32, 103, 99, 100, 95, 100, 101, 115, 112, 101, 99, 107, 108, 101, 44, 32, 103, 99, 100, 95, 100, 101, 115, 112, 101, 99, 107, 108, 101, 40, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 65, 114, 101, 97, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 116, 32, 109, 97, 120, 32, 97, 114, 101, 97, 32, 116, 111, 32, 48, 32, 102, 111, 114, 32, 110, 111, 32, 97, 114, 101, 97, 32, 115, 105, 122, 101, 32, 108, 105, 109, 105, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 100, 101, 115, 112, 101, 99, 107, 108, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 53, 125, 44, 36, 123, 50, 61, 51, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 109, 97, 61, 123, 105, 102, 40, 33, 36, 50, 44, 119, 42, 104, 44, 36, 50, 41, 125, 10, 45, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 49, 32, 110, 98, 61, 64, 123, 45, 49, 44, 49, 43, 105, 77, 125, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 36, 109, 97, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 72, 83, 76, 32, 65, 100, 106, 117, 115, 116, 109, 101, 110, 116, 32, 58, 32, 103, 99, 100, 95, 104, 115, 108, 44, 32, 103, 99, 100, 95, 104, 115, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 73, 110, 112, 117, 116, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 32, 82, 101, 100, 117, 99, 101, 32, 76, 101, 118, 101, 108, 32, 40, 76, 101, 118, 101, 108, 32, 115, 108, 105, 100, 101, 114, 32, 105, 115, 32, 100, 105, 115, 97, 98, 108, 101, 100, 41, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 79, 117, 116, 112, 117, 116, 32, 72, 117, 101, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 32, 83, 101, 116, 32, 72, 117, 101, 32, 73, 110, 118, 101, 114, 115, 101, 32, 40, 72, 117, 101, 32, 115, 108, 105, 100, 101, 114, 32, 105, 115, 32, 100, 105, 115, 97, 98, 108, 101, 100, 41, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 79, 117, 116, 112, 117, 116, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 51, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 104, 115, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 56, 48, 125, 44, 36, 123, 53, 61, 48, 46, 50, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 49, 125, 44, 36, 123, 56, 61, 49, 125, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 49, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 10, 45, 105, 102, 32, 36, 54, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 10, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 51, 54, 48, 44, 48, 44, 51, 54, 48, 10, 104, 117, 101, 61, 123, 40, 120, 77, 43, 49, 56, 48, 41, 37, 51, 54, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 32, 104, 117, 101, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 104, 91, 48, 93, 32, 49, 44, 49, 10, 45, 105, 102, 32, 36, 51, 32, 115, 97, 116, 61, 123, 45, 109, 97, 120, 40, 48, 44, 64, 123, 45, 49, 44, 97, 125, 45, 48, 46, 53, 41, 125, 32, 45, 101, 108, 115, 101, 32, 115, 97, 116, 61, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 43, 91, 45, 49, 93, 32, 36, 115, 97, 116, 10, 45, 43, 91, 45, 49, 93, 32, 48, 46, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 104, 115, 118, 50, 114, 103, 98, 91, 48, 93, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 46, 48, 48, 49, 44, 36, 55, 41, 125, 10, 45, 105, 102, 32, 123, 36, 56, 33, 61, 49, 125, 32, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 56, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 102, 99, 91, 48, 93, 32, 36, 104, 117, 101, 44, 49, 44, 49, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 110, 91, 45, 49, 93, 32, 123, 49, 45, 36, 53, 125, 44, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 48, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 49, 44, 50, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 97, 91, 48, 44, 49, 93, 32, 99, 10, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 48, 93, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 104, 115, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 99, 100, 95, 104, 115, 108, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 83, 86, 32, 83, 101, 108, 101, 99, 116, 58, 32, 103, 99, 100, 95, 104, 115, 118, 95, 115, 101, 108, 101, 99, 116, 44, 32, 103, 99, 100, 95, 104, 115, 118, 95, 115, 101, 108, 101, 99, 116, 40, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 105, 62, 60, 98, 62, 67, 111, 108, 111, 114, 32, 83, 101, 108, 101, 99, 116, 105, 111, 110, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 60, 98, 62, 67, 111, 108, 111, 114, 32, 82, 97, 110, 103, 101, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 82, 97, 110, 103, 101, 32, 61, 32, 105, 110, 116, 40, 49, 56, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 32, 82, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 32, 82, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 60, 98, 62, 79, 117, 116, 112, 117, 116, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 111, 119, 32, 65, 108, 112, 104, 97, 32, 61, 32, 105, 110, 116, 40, 50, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 65, 108, 112, 104, 97, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 60, 98, 62, 65, 100, 118, 97, 110, 99, 101, 100, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 56, 44, 51, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 108, 32, 72, 111, 108, 101, 115, 32, 37, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 65, 114, 101, 97, 32, 37, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 87, 97, 116, 101, 114, 115, 104, 101, 100, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 49, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 104, 115, 118, 95, 115, 101, 108, 101, 99, 116, 32, 58, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 48, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 52, 61, 49, 56, 48, 125, 44, 36, 123, 53, 61, 48, 46, 53, 125, 44, 36, 123, 54, 61, 48, 46, 53, 125, 10, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 50, 125, 44, 36, 123, 56, 61, 50, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 57, 61, 49, 56, 125, 44, 36, 123, 49, 48, 61, 48, 125, 44, 36, 123, 49, 49, 61, 48, 125, 44, 36, 123, 49, 50, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 10, 45, 105, 102, 32, 123, 33, 36, 49, 50, 125, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 91, 45, 49, 93, 10, 45, 103, 99, 100, 95, 115, 104, 114, 105, 110, 107, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 98, 104, 61, 123, 36, 49, 45, 36, 52, 125, 32, 116, 104, 61, 123, 36, 49, 43, 36, 52, 125, 10, 45, 45, 103, 101, 91, 49, 93, 32, 123, 51, 54, 48, 43, 36, 98, 104, 125, 32, 45, 45, 108, 101, 91, 49, 93, 32, 123, 36, 116, 104, 45, 51, 54, 48, 125, 10, 45, 116, 50, 91, 49, 93, 32, 123, 109, 97, 120, 40, 36, 98, 104, 44, 48, 41, 125, 44, 123, 109, 105, 110, 40, 36, 116, 104, 44, 51, 54, 48, 41, 125, 10, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 111, 114, 91, 49, 44, 45, 49, 93, 10, 45, 116, 50, 91, 50, 93, 32, 123, 36, 50, 45, 36, 53, 125, 44, 123, 36, 50, 43, 36, 53, 125, 10, 45, 116, 50, 91, 51, 93, 32, 123, 36, 51, 45, 36, 54, 125, 44, 123, 36, 51, 43, 36, 54, 125, 10, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 91, 48, 93, 32, 51, 32, 45, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 51, 10, 45, 43, 91, 48, 93, 32, 49, 32, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 48, 93, 32, 45, 45, 98, 91, 45, 49, 93, 32, 50, 44, 49, 44, 49, 32, 45, 109, 105, 110, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 36, 57, 10, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 45, 42, 91, 48, 93, 32, 91, 49, 93, 32, 45, 103, 116, 91, 48, 93, 32, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 42, 91, 48, 44, 49, 93, 32, 45, 42, 91, 48, 93, 32, 48, 46, 53, 32, 45, 109, 97, 120, 91, 48, 44, 45, 49, 93, 10, 45, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 107, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 10, 45, 103, 99, 100, 95, 117, 110, 115, 104, 114, 105, 110, 107, 10, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 33, 36, 49, 50, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 103, 101, 91, 45, 49, 93, 32, 48, 10, 45, 45, 97, 114, 101, 97, 91, 45, 49, 93, 32, 48, 32, 45, 45, 108, 101, 91, 45, 49, 93, 32, 123, 40, 36, 49, 48, 37, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 94, 50, 125, 10, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 123, 40, 36, 49, 49, 37, 42, 109, 97, 120, 40, 119, 44, 104, 41, 41, 94, 50, 125, 32, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 55, 62, 48, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 55, 60, 48, 125, 32, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 123, 97, 98, 115, 40, 36, 55, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 56, 32, 45, 98, 91, 45, 49, 93, 32, 36, 56, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 74, 80, 69, 71, 32, 83, 109, 111, 111, 116, 104, 32, 58, 32, 103, 99, 100, 95, 106, 112, 101, 103, 95, 115, 109, 111, 111, 116, 104, 44, 32, 103, 99, 100, 95, 106, 112, 101, 103, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 81, 117, 105, 99, 107, 32, 74, 80, 69, 71, 32, 99, 108, 101, 97, 110, 117, 112, 32, 45, 32, 102, 111, 114, 32, 109, 111, 100, 101, 114, 97, 116, 101, 32, 99, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 32, 103, 108, 105, 116, 99, 104, 101, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 32, 70, 105, 108, 116, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 32, 65, 108, 105, 97, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 105, 99, 107, 32, 69, 110, 108, 97, 114, 103, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 106, 112, 101, 103, 95, 115, 109, 111, 111, 116, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 103, 99, 100, 95, 99, 111, 109, 112, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 50, 44, 51, 44, 49, 44, 49, 48, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 51, 32, 45, 114, 91, 45, 49, 93, 32, 49, 52, 48, 37, 44, 49, 52, 48, 37, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 103, 99, 100, 95, 97, 110, 116, 105, 95, 97, 108, 105, 97, 115, 91, 45, 49, 93, 32, 49, 48, 44, 48, 46, 51, 44, 49, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 106, 112, 101, 103, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 99, 100, 95, 106, 112, 101, 103, 95, 115, 109, 111, 111, 116, 104, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 99, 111, 108, 111, 114, 32, 58, 32, 103, 99, 100, 95, 114, 101, 99, 111, 108, 44, 32, 103, 99, 100, 95, 114, 101, 99, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 72, 117, 101, 32, 100, 114, 105, 102, 116, 32, 61, 32, 105, 110, 116, 40, 45, 49, 52, 44, 45, 52, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 72, 117, 101, 32, 100, 114, 105, 102, 116, 32, 61, 32, 105, 110, 116, 40, 49, 52, 44, 48, 44, 52, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 32, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 79, 114, 105, 103, 105, 110, 97, 108, 32, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 100, 97, 112, 116, 101, 100, 32, 98, 121, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 114, 101, 99, 111, 108, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 51, 44, 45, 50, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 51, 44, 45, 50, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 51, 93, 32, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 50, 10, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 91, 45, 51, 93, 32, 51, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 45, 91, 45, 50, 93, 32, 49, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 32, 99, 32, 45, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 50, 93, 32, 53, 49, 50, 32, 45, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 37, 91, 48, 93, 32, 51, 54, 48, 32, 45, 97, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 108, 105, 116, 32, 79, 98, 106, 101, 99, 116, 115, 32, 58, 32, 103, 99, 100, 95, 115, 112, 108, 105, 116, 111, 98, 106, 44, 32, 103, 99, 100, 95, 115, 112, 108, 105, 116, 111, 98, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 49, 46, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 110, 101, 119, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 108, 97, 121, 101, 114, 44, 32, 109, 97, 114, 107, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 114, 101, 100, 32, 97, 110, 100, 32, 111, 98, 106, 101, 99, 116, 115, 32, 103, 114, 101, 101, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 50, 46, 32, 83, 101, 116, 32, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 60, 98, 62, 65, 99, 116, 105, 118, 101, 32, 38, 97, 109, 112, 59, 32, 98, 101, 108, 111, 119, 60, 47, 98, 62, 44, 32, 111, 98, 106, 101, 99, 116, 115, 32, 119, 105, 108, 108, 32, 98, 101, 32, 115, 112, 108, 105, 116, 32, 116, 111, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 60, 98, 62, 69, 100, 103, 101, 32, 68, 101, 116, 101, 99, 116, 105, 111, 110, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 77, 105, 110, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 70, 108, 111, 119, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 97, 110, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 60, 98, 62, 79, 117, 116, 112, 117, 116, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 111, 119, 32, 65, 108, 112, 104, 97, 32, 61, 32, 105, 110, 116, 40, 48, 44, 45, 50, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 65, 108, 112, 104, 97, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 97, 105, 110, 116, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 79, 102, 102, 34, 44, 34, 76, 111, 119, 34, 44, 34, 78, 111, 114, 109, 97, 108, 34, 44, 34, 72, 105, 103, 104, 34, 44, 34, 85, 108, 116, 114, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 32, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 49, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 115, 112, 108, 105, 116, 111, 98, 106, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 125, 44, 36, 123, 50, 61, 51, 125, 44, 36, 123, 51, 61, 51, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 44, 36, 123, 55, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 91, 45, 49, 93, 10, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 49, 48, 48, 37, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 49, 93, 32, 45, 42, 91, 49, 44, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 48, 93, 32, 45, 110, 101, 113, 91, 49, 93, 32, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 44, 49, 32, 45, 43, 91, 48, 93, 32, 49, 32, 45, 42, 91, 48, 44, 49, 93, 10, 45, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 102, 108, 111, 119, 91, 49, 93, 32, 36, 50, 32, 45, 109, 101, 100, 105, 97, 110, 91, 49, 93, 32, 36, 51, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 45, 49, 32, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 48, 93, 32, 91, 49, 93, 32, 45, 45, 91, 48, 93, 32, 49, 10, 45, 114, 109, 91, 49, 93, 32, 45, 115, 91, 48, 93, 32, 99, 32, 45, 110, 91, 48, 44, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 123, 36, 52, 125, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 53, 62, 48, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 49, 93, 32, 36, 53, 32, 45, 101, 108, 105, 102, 32, 123, 36, 53, 60, 48, 125, 32, 45, 101, 114, 111, 100, 101, 91, 49, 93, 32, 123, 97, 98, 115, 40, 36, 53, 41, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 54, 32, 45, 98, 91, 49, 93, 32, 36, 54, 44, 49, 44, 49, 32, 45, 99, 91, 49, 93, 32, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 42, 91, 50, 93, 32, 91, 48, 93, 32, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 55, 62, 48, 125, 10, 45, 108, 101, 91, 48, 93, 32, 56, 48, 37, 32, 45, 45, 97, 114, 101, 97, 91, 48, 93, 32, 48, 32, 45, 42, 91, 45, 49, 93, 32, 91, 48, 93, 10, 112, 115, 61, 123, 109, 97, 120, 40, 114, 111, 117, 110, 100, 40, 105, 77, 94, 48, 46, 53, 47, 54, 41, 44, 52, 41, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 112, 97, 105, 114, 91, 49, 93, 32, 91, 48, 93, 44, 36, 112, 115, 44, 123, 36, 112, 115, 42, 54, 125, 44, 123, 57, 45, 36, 55, 42, 50, 125, 44, 36, 112, 115, 44, 48, 44, 48, 46, 48, 56, 44, 49, 48, 44, 49, 10, 45, 101, 108, 115, 101, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 123, 115, 61, 61, 50, 124, 124, 115, 61, 61, 52, 125, 32, 45, 115, 104, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 109, 97, 120, 91, 45, 50, 93, 32, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 101, 114, 101, 111, 32, 73, 109, 97, 103, 101, 32, 58, 32, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 105, 109, 103, 44, 32, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 105, 109, 103, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 84, 111, 109, 32, 75, 101, 105, 108, 39, 115, 32, 51, 68, 32, 67, 111, 110, 118, 101, 114, 115, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 51, 68, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 68, 32, 73, 109, 97, 103, 101, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 110, 97, 103, 108, 121, 112, 104, 58, 32, 82, 101, 100, 47, 67, 121, 97, 110, 34, 44, 34, 83, 105, 100, 101, 32, 98, 121, 32, 83, 105, 100, 101, 34, 44, 34, 68, 101, 112, 116, 104, 32, 77, 97, 112, 34, 44, 34, 73, 110, 118, 101, 114, 115, 101, 32, 68, 101, 112, 116, 104, 32, 77, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 108, 97, 110, 99, 101, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 101, 34, 44, 34, 72, 97, 108, 102, 34, 44, 34, 70, 117, 108, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 68, 101, 112, 116, 104, 32, 77, 97, 112, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 80, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 82, 97, 116, 105, 111, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 115, 112, 101, 99, 107, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 105, 109, 103, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 46, 50, 125, 44, 36, 123, 52, 61, 48, 46, 50, 53, 125, 44, 36, 123, 53, 61, 50, 125, 44, 36, 123, 54, 61, 52, 125, 44, 36, 123, 55, 61, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 45, 103, 99, 100, 95, 100, 101, 112, 116, 104, 91, 48, 93, 32, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 10, 45, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 91, 48, 44, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 37, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 100, 101, 112, 116, 104, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 50, 53, 125, 44, 36, 123, 50, 61, 50, 125, 44, 36, 123, 51, 61, 52, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 45, 105, 102, 32, 123, 119, 62, 55, 48, 48, 125, 32, 45, 45, 114, 91, 45, 49, 93, 32, 55, 48, 48, 44, 123, 104, 42, 55, 48, 48, 47, 119, 125, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 64, 123, 48, 44, 104, 125, 62, 55, 48, 48, 125, 32, 45, 45, 114, 91, 45, 49, 93, 32, 123, 64, 123, 48, 44, 119, 125, 42, 55, 48, 48, 47, 64, 123, 48, 44, 104, 125, 125, 44, 55, 48, 48, 32, 45, 101, 108, 115, 101, 32, 91, 48, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 55, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 49, 44, 49, 10, 45, 105, 102, 32, 36, 52, 32, 45, 103, 99, 100, 95, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 51, 32, 45, 101, 108, 115, 101, 32, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 51, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 48, 46, 52, 53, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 50, 10, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 10, 45, 110, 111, 114, 109, 91, 48, 93, 32, 45, 110, 91, 48, 93, 32, 48, 44, 49, 32, 45, 97, 100, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 46, 50, 37, 125, 10, 45, 108, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 114, 101, 116, 117, 114, 110, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 119, 102, 97, 99, 61, 123, 105, 102, 40, 64, 123, 34, 45, 105, 115, 95, 112, 101, 114, 99, 101, 110, 116, 32, 36, 51, 34, 125, 44, 36, 51, 42, 119, 44, 36, 51, 41, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 119, 102, 97, 99, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 34, 32, 38, 38, 32, 34, 36, 50, 62, 48, 125, 32, 45, 115, 91, 48, 93, 32, 99, 10, 45, 45, 45, 91, 49, 93, 32, 91, 48, 93, 32, 45, 47, 91, 45, 49, 93, 32, 123, 52, 47, 36, 50, 125, 32, 45, 45, 91, 49, 44, 50, 93, 32, 91, 45, 49, 93, 32, 45, 43, 91, 48, 44, 45, 49, 93, 10, 45, 45, 45, 91, 50, 93, 32, 91, 48, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 47, 91, 45, 49, 93, 32, 123, 52, 47, 36, 50, 125, 32, 45, 43, 91, 48, 44, 45, 49, 93, 10, 45, 110, 91, 48, 93, 32, 123, 49, 48, 42, 36, 50, 125, 44, 50, 53, 53, 32, 45, 97, 91, 48, 45, 50, 93, 32, 99, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 91, 49, 93, 32, 91, 48, 93, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 114, 112, 91, 49, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 114, 118, 91, 48, 44, 49, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 93, 32, 120, 32, 45, 101, 108, 115, 101, 32, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 123, 45, 36, 119, 102, 97, 99, 125, 32, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 123, 36, 119, 102, 97, 99, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 48, 93, 32, 48, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 49, 44, 50, 32, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 49, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 101, 114, 101, 111, 32, 86, 105, 100, 101, 111, 32, 58, 32, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 118, 105, 100, 44, 32, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 118, 105, 100, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 80, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 99, 97, 110, 32, 116, 97, 107, 101, 32, 97, 32, 76, 79, 78, 71, 32, 116, 105, 109, 101, 33, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 70, 105, 108, 101, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 32, 73, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 32, 73, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 70, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 51, 68, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 68, 32, 73, 109, 97, 103, 101, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 110, 97, 103, 108, 121, 112, 104, 58, 32, 82, 101, 100, 47, 67, 121, 97, 110, 34, 44, 34, 83, 105, 100, 101, 32, 98, 121, 32, 83, 105, 100, 101, 34, 44, 34, 68, 101, 112, 116, 104, 32, 77, 97, 112, 34, 44, 34, 73, 110, 118, 101, 114, 115, 101, 32, 68, 101, 112, 116, 104, 32, 77, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 108, 97, 110, 99, 101, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 101, 34, 44, 34, 72, 97, 108, 102, 34, 44, 34, 70, 117, 108, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 68, 101, 112, 116, 104, 32, 77, 97, 112, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 80, 101, 114, 99, 101, 110, 116, 97, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 82, 97, 116, 105, 111, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 115, 112, 101, 99, 107, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 86, 105, 100, 101, 111, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 32, 66, 117, 102, 102, 101, 114, 32, 61, 32, 95, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 101, 110, 101, 32, 68, 101, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 118, 105, 100, 32, 58, 10, 49, 32, 45, 108, 91, 45, 49, 93, 10, 45, 105, 32, 34, 36, 49, 34, 32, 115, 116, 95, 102, 111, 108, 100, 101, 114, 61, 64, 123, 45, 49, 44, 102, 125, 32, 115, 116, 95, 102, 105, 108, 101, 61, 64, 123, 45, 49, 44, 98, 125, 32, 115, 116, 95, 101, 120, 116, 61, 64, 123, 45, 49, 44, 120, 125, 32, 40, 123, 39, 36, 115, 116, 95, 102, 105, 108, 101, 39, 125, 41, 32, 99, 112, 120, 61, 64, 123, 45, 49, 44, 119, 125, 10, 45, 100, 111, 32, 99, 112, 120, 61, 123, 36, 99, 112, 120, 45, 49, 125, 32, 100, 103, 116, 61, 123, 105, 40, 36, 99, 112, 120, 41, 125, 32, 105, 115, 110, 117, 109, 61, 123, 40, 36, 100, 103, 116, 62, 52, 55, 41, 38, 38, 40, 36, 100, 103, 116, 60, 53, 56, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 40, 36, 105, 115, 110, 117, 109, 41, 38, 38, 40, 36, 99, 112, 120, 62, 48, 41, 125, 10, 45, 105, 102, 32, 123, 36, 99, 112, 120, 62, 48, 125, 32, 45, 45, 122, 91, 45, 49, 93, 32, 48, 44, 36, 99, 112, 120, 32, 102, 115, 110, 97, 109, 101, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 102, 115, 110, 97, 109, 101, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 122, 91, 45, 49, 93, 32, 123, 36, 99, 112, 120, 43, 123, 33, 36, 105, 115, 110, 117, 109, 125, 125, 44, 49, 48, 48, 37, 32, 100, 103, 116, 115, 61, 64, 123, 45, 49, 44, 119, 125, 32, 102, 115, 110, 117, 109, 61, 123, 64, 123, 45, 49, 44, 116, 125, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 49, 32, 45, 110, 109, 91, 45, 49, 93, 32, 34, 36, 50, 34, 32, 101, 110, 95, 102, 105, 108, 101, 61, 64, 123, 45, 49, 44, 98, 125, 32, 40, 123, 39, 36, 101, 110, 95, 102, 105, 108, 101, 39, 125, 41, 32, 99, 112, 120, 61, 64, 123, 45, 49, 44, 119, 125, 10, 45, 100, 111, 32, 99, 112, 120, 61, 123, 36, 99, 112, 120, 45, 49, 125, 32, 100, 103, 116, 61, 123, 105, 40, 36, 99, 112, 120, 41, 125, 32, 105, 115, 110, 117, 109, 61, 123, 40, 36, 100, 103, 116, 62, 52, 55, 41, 38, 38, 40, 36, 100, 103, 116, 60, 53, 56, 41, 125, 32, 45, 119, 104, 105, 108, 101, 32, 123, 40, 36, 105, 115, 110, 117, 109, 41, 38, 38, 40, 36, 99, 112, 120, 62, 48, 41, 125, 10, 45, 122, 91, 45, 49, 93, 32, 123, 36, 99, 112, 120, 43, 123, 33, 36, 105, 115, 110, 117, 109, 125, 125, 44, 49, 48, 48, 37, 32, 102, 101, 110, 117, 109, 61, 123, 64, 123, 45, 49, 44, 116, 125, 125, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 98, 117, 102, 115, 122, 61, 36, 49, 49, 32, 116, 116, 108, 98, 117, 102, 61, 123, 36, 98, 117, 102, 115, 122, 42, 50, 125, 32, 116, 116, 108, 105, 109, 103, 61, 123, 36, 102, 101, 110, 117, 109, 45, 36, 102, 115, 110, 117, 109, 43, 49, 125, 10, 115, 99, 101, 110, 101, 61, 49, 32, 115, 99, 102, 114, 97, 109, 101, 61, 48, 32, 111, 118, 61, 64, 123, 45, 49, 44, 118, 125, 32, 111, 97, 61, 64, 123, 45, 49, 44, 97, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 116, 116, 108, 105, 109, 103, 125, 10, 45, 105, 102, 32, 123, 36, 115, 99, 101, 110, 101, 34, 32, 38, 38, 32, 34, 36, 62, 61, 61, 36, 115, 99, 102, 114, 97, 109, 101, 125, 10, 45, 107, 91, 45, 49, 93, 32, 115, 99, 101, 110, 101, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 109, 105, 110, 40, 36, 116, 116, 108, 98, 117, 102, 44, 36, 116, 116, 108, 105, 109, 103, 45, 36, 115, 99, 102, 114, 97, 109, 101, 45, 49, 41, 125, 10, 99, 117, 114, 110, 117, 109, 61, 123, 36, 102, 115, 110, 117, 109, 43, 36, 115, 99, 102, 114, 97, 109, 101, 43, 36, 62, 43, 49, 125, 32, 99, 117, 114, 110, 117, 109, 61, 64, 123, 45, 103, 99, 100, 95, 97, 100, 100, 48, 92, 32, 36, 99, 117, 114, 110, 117, 109, 44, 36, 100, 103, 116, 115, 125, 10, 45, 105, 32, 34, 34, 36, 123, 115, 116, 95, 102, 111, 108, 100, 101, 114, 125, 36, 123, 102, 115, 110, 97, 109, 101, 125, 36, 123, 99, 117, 114, 110, 117, 109, 125, 46, 36, 123, 115, 116, 95, 101, 120, 116, 125, 34, 34, 10, 118, 114, 61, 64, 123, 45, 49, 44, 118, 125, 32, 97, 118, 61, 64, 123, 45, 49, 44, 97, 125, 32, 112, 118, 114, 61, 123, 97, 98, 115, 40, 36, 118, 114, 45, 36, 111, 118, 41, 47, 36, 118, 114, 125, 32, 112, 97, 118, 61, 123, 97, 98, 115, 40, 36, 97, 118, 45, 36, 111, 97, 41, 47, 36, 97, 118, 125, 10, 111, 118, 61, 36, 118, 114, 32, 111, 97, 61, 36, 97, 118, 10, 45, 105, 102, 32, 123, 36, 49, 50, 38, 38, 40, 36, 112, 118, 114, 62, 48, 46, 49, 34, 32, 124, 124, 32, 34, 36, 112, 97, 118, 62, 48, 46, 49, 41, 125, 32, 115, 99, 101, 110, 101, 61, 49, 32, 115, 99, 102, 114, 97, 109, 101, 61, 123, 36, 115, 99, 102, 114, 97, 109, 101, 43, 36, 62, 43, 49, 125, 32, 45, 98, 114, 101, 97, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 45, 108, 91, 48, 45, 45, 123, 49, 43, 36, 115, 99, 101, 110, 101, 125, 93, 32, 45, 103, 99, 100, 95, 100, 101, 112, 116, 104, 32, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 45, 97, 100, 100, 91, 48, 45, 45, 49, 93, 32, 45, 97, 91, 48, 45, 45, 50, 93, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 97, 91, 50, 45, 45, 123, 49, 43, 36, 115, 99, 101, 110, 101, 125, 93, 32, 122, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 108, 105, 99, 101, 115, 91, 50, 93, 32, 48, 32, 45, 45, 100, 105, 118, 91, 48, 93, 32, 64, 123, 49, 44, 100, 125, 32, 45, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 91, 45, 50, 44, 45, 49, 93, 32, 36, 52, 44, 36, 53, 44, 36, 54, 37, 10, 99, 117, 114, 110, 117, 109, 61, 123, 36, 102, 115, 110, 117, 109, 43, 36, 62, 125, 32, 99, 117, 114, 110, 117, 109, 61, 64, 123, 45, 103, 99, 100, 95, 97, 100, 100, 48, 92, 32, 36, 99, 117, 114, 110, 117, 109, 44, 36, 100, 103, 116, 115, 125, 10, 45, 105, 102, 32, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 32, 45, 111, 91, 45, 49, 93, 32, 34, 36, 51, 34, 34, 34, 123, 96, 57, 50, 96, 125, 36, 123, 102, 115, 110, 97, 109, 101, 125, 36, 123, 99, 117, 114, 110, 117, 109, 125, 46, 36, 123, 115, 116, 95, 101, 120, 116, 125, 34, 34, 10, 45, 101, 108, 115, 101, 32, 45, 111, 91, 45, 49, 93, 32, 34, 36, 51, 34, 34, 34, 123, 96, 52, 55, 96, 125, 36, 123, 102, 115, 110, 97, 109, 101, 125, 36, 123, 99, 117, 114, 110, 117, 109, 125, 46, 36, 123, 115, 116, 95, 101, 120, 116, 125, 34, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 112, 114, 111, 103, 114, 101, 115, 115, 32, 123, 40, 36, 62, 43, 49, 41, 47, 36, 116, 116, 108, 105, 109, 103, 42, 49, 48, 48, 125, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 108, 105, 99, 101, 115, 91, 50, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 105, 102, 32, 123, 33, 36, 115, 99, 101, 110, 101, 34, 32, 38, 38, 32, 34, 40, 36, 62, 62, 61, 40, 36, 115, 99, 102, 114, 97, 109, 101, 43, 36, 98, 117, 102, 115, 122, 41, 41, 34, 32, 38, 38, 32, 34, 40, 36, 62, 60, 40, 36, 116, 116, 108, 105, 109, 103, 45, 36, 98, 117, 102, 115, 122, 45, 49, 41, 41, 125, 10, 99, 117, 114, 110, 117, 109, 61, 123, 36, 102, 115, 110, 117, 109, 43, 36, 62, 43, 36, 98, 117, 102, 115, 122, 43, 49, 125, 32, 99, 117, 114, 110, 117, 109, 61, 64, 123, 45, 103, 99, 100, 95, 97, 100, 100, 48, 92, 32, 36, 99, 117, 114, 110, 117, 109, 44, 36, 100, 103, 116, 115, 125, 10, 45, 105, 32, 34, 34, 36, 123, 115, 116, 95, 102, 111, 108, 100, 101, 114, 125, 36, 123, 102, 115, 110, 97, 109, 101, 125, 36, 123, 99, 117, 114, 110, 117, 109, 125, 46, 36, 123, 115, 116, 95, 101, 120, 116, 125, 34, 34, 10, 118, 114, 61, 64, 123, 45, 49, 44, 118, 125, 32, 97, 118, 61, 64, 123, 45, 49, 44, 97, 125, 32, 112, 118, 114, 61, 123, 97, 98, 115, 40, 36, 118, 114, 45, 36, 111, 118, 41, 47, 36, 118, 114, 125, 32, 112, 97, 118, 61, 123, 97, 98, 115, 40, 36, 97, 118, 45, 36, 111, 97, 41, 47, 36, 97, 118, 125, 10, 111, 118, 61, 36, 118, 114, 32, 111, 97, 61, 36, 97, 118, 10, 45, 105, 102, 32, 123, 36, 49, 50, 38, 38, 40, 36, 112, 118, 114, 62, 48, 46, 49, 34, 32, 124, 124, 32, 34, 36, 112, 97, 118, 62, 48, 46, 49, 41, 125, 32, 115, 99, 101, 110, 101, 61, 49, 32, 115, 99, 102, 114, 97, 109, 101, 61, 123, 36, 62, 43, 36, 98, 117, 102, 115, 122, 43, 49, 125, 10, 45, 101, 108, 115, 101, 10, 45, 45, 103, 99, 100, 95, 100, 101, 112, 116, 104, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 97, 100, 100, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 49, 44, 45, 49, 93, 32, 122, 32, 45, 97, 91, 50, 44, 45, 49, 93, 32, 122, 10, 45, 45, 115, 108, 105, 99, 101, 115, 91, 49, 93, 32, 48, 32, 45, 115, 117, 98, 91, 48, 44, 45, 49, 93, 32, 45, 115, 108, 105, 99, 101, 115, 91, 49, 93, 32, 49, 44, 49, 48, 48, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 10, 45, 101, 110, 100, 108, 10, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 95, 118, 105, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 34, 34, 125, 44, 36, 123, 50, 61, 34, 34, 125, 10, 49, 48, 48, 44, 49, 48, 48, 44, 49, 44, 51, 44, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 92, 110, 83, 116, 97, 114, 116, 92, 110, 73, 109, 97, 103, 101, 32, 32, 32, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 10, 49, 48, 48, 44, 49, 48, 48, 44, 49, 44, 51, 44, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 83, 101, 108, 101, 99, 116, 92, 110, 69, 110, 100, 92, 110, 73, 109, 97, 103, 101, 32, 32, 32, 34, 44, 48, 44, 48, 44, 51, 50, 44, 49, 44, 50, 53, 53, 32, 45, 107, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 34, 36, 49, 34, 32, 45, 105, 32, 34, 36, 49, 34, 32, 45, 114, 118, 91, 48, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 34, 36, 50, 34, 32, 45, 105, 32, 34, 36, 50, 34, 32, 45, 114, 118, 91, 49, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 91, 48, 44, 49, 93, 32, 120, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 45, 103, 99, 100, 95, 100, 101, 112, 116, 104, 91, 45, 49, 93, 32, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 103, 99, 100, 95, 115, 116, 101, 114, 101, 111, 32, 36, 52, 44, 36, 53, 44, 36, 54, 37, 10, 103, 99, 100, 95, 97, 100, 100, 48, 32, 58, 10, 40, 123, 39, 36, 49, 39, 125, 41, 32, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 119, 125, 60, 36, 50, 125, 32, 123, 36, 50, 45, 64, 123, 45, 49, 44, 119, 125, 125, 44, 49, 44, 49, 44, 49, 44, 52, 56, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 85, 110, 100, 111, 32, 65, 110, 97, 103, 108, 121, 112, 104, 32, 58, 32, 103, 99, 100, 95, 117, 110, 115, 116, 101, 114, 101, 111, 44, 32, 103, 99, 100, 95, 117, 110, 115, 116, 101, 114, 101, 111, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 116, 116, 101, 109, 112, 116, 32, 116, 111, 32, 114, 101, 118, 101, 114, 116, 32, 114, 101, 100, 47, 99, 121, 97, 110, 32, 97, 110, 97, 103, 108, 121, 112, 104, 32, 116, 111, 32, 50, 68, 46, 32, 32, 78, 111, 116, 101, 32, 116, 104, 105, 115, 32, 105, 115, 32, 114, 97, 114, 101, 108, 121, 32, 112, 101, 114, 102, 101, 99, 116, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 87, 97, 114, 110, 105, 110, 103, 58, 32, 119, 105, 116, 104, 32, 104, 105, 103, 104, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 111, 114, 32, 108, 97, 114, 103, 101, 32, 105, 109, 97, 103, 101, 32, 116, 104, 105, 115, 32, 99, 97, 110, 32, 98, 101, 32, 86, 69, 82, 89, 32, 115, 108, 111, 119, 33, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 68, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 49, 44, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 87, 97, 114, 112, 32, 79, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 40, 76, 111, 119, 32, 80, 114, 101, 99, 105, 115, 105, 111, 110, 41, 32, 80, 114, 101, 118, 105, 101, 119, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 105, 62, 84, 105, 108, 101, 32, 83, 101, 116, 116, 105, 110, 103, 115, 60, 47, 105, 62, 34, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 116, 105, 99, 97, 108, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 49, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 117, 110, 115, 116, 101, 114, 101, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 48, 46, 49, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 49, 125, 44, 36, 123, 54, 61, 49, 125, 44, 36, 123, 55, 61, 48, 125, 44, 36, 123, 56, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 52, 34, 32, 38, 38, 32, 34, 36, 56, 125, 32, 112, 114, 61, 49, 32, 45, 101, 108, 115, 101, 32, 112, 114, 61, 36, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 91, 48, 93, 32, 36, 53, 44, 36, 54, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 91, 48, 93, 32, 99, 32, 45, 45, 116, 111, 95, 114, 103, 98, 91, 48, 44, 49, 93, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 50, 53, 54, 10, 45, 45, 100, 105, 115, 112, 108, 97, 99, 101, 109, 101, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 50, 44, 36, 112, 114, 10, 45, 105, 102, 32, 36, 51, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 34, 45, 102, 99, 32, 48, 34, 44, 50, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 119, 97, 114, 112, 91, 49, 44, 50, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 10, 45, 107, 101, 101, 112, 91, 48, 45, 50, 93, 32, 45, 97, 32, 99, 32, 45, 99, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 53, 44, 36, 54, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 117, 110, 115, 116, 101, 114, 101, 111, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 99, 100, 95, 117, 110, 115, 116, 101, 114, 101, 111, 32, 36, 123, 49, 45, 45, 49, 125, 44, 49, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 114, 112, 32, 77, 97, 112, 58, 32, 103, 99, 100, 95, 119, 97, 114, 112, 109, 97, 112, 44, 32, 103, 99, 100, 95, 119, 97, 114, 112, 109, 97, 112, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 112, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 87, 97, 114, 112, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 83, 111, 102, 116, 108, 105, 103, 104, 116, 34, 44, 34, 78, 111, 110, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 32, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 101, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 119, 105, 108, 108, 32, 98, 101, 32, 119, 97, 114, 112, 101, 100, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 98, 111, 116, 116, 111, 109, 32, 108, 97, 121, 101, 114, 32, 97, 115, 32, 97, 32, 115, 117, 114, 102, 97, 99, 101, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 68, 101, 112, 116, 104, 58, 32, 83, 101, 116, 32, 116, 104, 101, 32, 97, 112, 112, 97, 114, 101, 110, 116, 32, 100, 101, 112, 116, 104, 32, 111, 102, 32, 116, 104, 101, 32, 115, 117, 114, 102, 97, 99, 101, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 68, 101, 116, 97, 105, 108, 58, 32, 80, 101, 114, 102, 111, 114, 109, 32, 115, 101, 99, 111, 110, 100, 32, 119, 97, 114, 112, 32, 119, 105, 116, 104, 32, 110, 111, 32, 115, 109, 111, 111, 116, 104, 32, 102, 111, 114, 32, 102, 105, 110, 101, 32, 100, 101, 116, 97, 105, 108, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 109, 111, 111, 116, 104, 58, 32, 83, 101, 116, 32, 108, 111, 119, 32, 102, 111, 114, 32, 101, 109, 98, 111, 115, 115, 44, 32, 104, 105, 103, 104, 32, 116, 111, 32, 119, 114, 97, 112, 32, 97, 114, 111, 117, 110, 100, 32, 108, 97, 114, 103, 101, 32, 111, 98, 106, 101, 99, 116, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 119, 97, 114, 112, 109, 97, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 51, 125, 32, 98, 109, 61, 48, 32, 45, 105, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 101, 108, 115, 101, 32, 98, 109, 61, 36, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 45, 103, 99, 100, 95, 119, 97, 114, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 51, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 103, 99, 100, 95, 119, 97, 114, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 44, 48, 44, 36, 98, 109, 10, 45, 101, 108, 115, 101, 32, 45, 103, 99, 100, 95, 119, 97, 114, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 49, 44, 36, 51, 44, 36, 98, 109, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 51, 125, 32, 45, 114, 118, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 119, 97, 114, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 119, 102, 97, 99, 61, 123, 36, 49, 37, 42, 119, 125, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 95, 120, 121, 91, 45, 49, 93, 32, 36, 50, 37, 44, 36, 50, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 103, 91, 45, 49, 93, 32, 120, 121, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 119, 102, 97, 99, 44, 36, 119, 102, 97, 99, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 98, 108, 101, 110, 100, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 49, 44, 49, 32, 45, 101, 108, 115, 101, 32, 45, 98, 108, 101, 110, 100, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 120, 98, 114, 50, 120, 58, 32, 103, 99, 100, 95, 120, 98, 114, 50, 120, 44, 32, 103, 99, 100, 95, 120, 98, 114, 50, 120, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 109, 112, 108, 101, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 120, 66, 82, 32, 50, 120, 32, 91, 110, 111, 98, 108, 101, 110, 100, 93, 32, 97, 108, 103, 111, 114, 105, 116, 104, 109, 32, 98, 121, 32, 72, 121, 108, 108, 105, 97, 110, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 70, 111, 114, 32, 109, 111, 114, 101, 32, 105, 110, 102, 111, 32, 118, 105, 115, 105, 116, 58, 32, 34, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 98, 111, 97, 114, 100, 46, 98, 121, 117, 117, 46, 111, 114, 103, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 49, 48, 38, 116, 61, 50, 50, 52, 56, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 111, 100, 101, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109, 47, 112, 47, 50, 100, 105, 109, 97, 103, 101, 102, 105, 108, 116, 101, 114, 47, 119, 105, 107, 105, 47, 73, 109, 97, 103, 101, 82, 101, 115, 105, 122, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 71, 97, 114, 97, 103, 101, 99, 111, 100, 101, 114, 60, 47, 105, 62, 46, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 115, 99, 108, 97, 105, 109, 101, 114, 32, 58, 32, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 110, 101, 97, 114, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 114, 101, 99, 111, 100, 101, 32, 98, 97, 115, 101, 100, 32, 111, 110, 32, 67, 35, 32, 115, 111, 117, 114, 99, 101, 32, 102, 114, 111, 109, 32, 73, 109, 97, 103, 101, 82, 101, 115, 105, 122, 101, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 104, 101, 32, 114, 101, 115, 117, 108, 116, 115, 32, 109, 97, 121, 32, 110, 111, 116, 32, 102, 117, 108, 108, 121, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 32, 116, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 114, 111, 117, 116, 105, 110, 101, 33, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 99, 100, 95, 120, 98, 114, 50, 120, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 40, 45, 49, 44, 45, 49, 59, 48, 44, 45, 49, 59, 49, 44, 45, 49, 59, 45, 49, 44, 48, 59, 48, 44, 48, 59, 49, 44, 48, 59, 45, 49, 44, 49, 59, 48, 44, 49, 59, 49, 44, 49, 59, 92, 10, 45, 49, 44, 45, 50, 59, 48, 44, 45, 50, 59, 49, 44, 45, 50, 59, 45, 50, 44, 45, 49, 59, 45, 50, 44, 48, 59, 45, 50, 44, 49, 59, 50, 44, 45, 49, 59, 50, 44, 48, 59, 50, 44, 49, 59, 45, 49, 44, 50, 59, 48, 44, 50, 59, 49, 44, 50, 41, 10, 112, 97, 95, 61, 48, 32, 112, 98, 95, 61, 49, 32, 112, 99, 95, 61, 50, 32, 32, 112, 100, 95, 61, 51, 32, 112, 101, 95, 61, 52, 32, 112, 102, 95, 61, 53, 32, 32, 112, 103, 95, 61, 54, 32, 112, 104, 95, 61, 55, 32, 112, 105, 95, 61, 56, 10, 97, 49, 95, 61, 57, 32, 98, 49, 95, 61, 49, 48, 32, 99, 49, 95, 61, 49, 49, 32, 32, 97, 48, 95, 61, 49, 50, 32, 100, 48, 95, 61, 49, 51, 32, 103, 48, 95, 61, 49, 52, 10, 99, 52, 95, 61, 49, 53, 32, 102, 52, 95, 61, 49, 54, 32, 105, 52, 95, 61, 49, 55, 32, 32, 103, 53, 95, 61, 49, 56, 32, 104, 53, 95, 61, 49, 57, 32, 105, 53, 95, 61, 50, 48, 10, 101, 48, 61, 50, 49, 32, 101, 49, 61, 50, 50, 32, 101, 50, 61, 50, 51, 32, 101, 51, 61, 50, 52, 10, 40, 36, 112, 101, 95, 44, 36, 112, 105, 95, 44, 36, 112, 104, 95, 44, 36, 112, 102, 95, 44, 36, 112, 103, 95, 44, 36, 112, 99, 95, 44, 36, 112, 100, 95, 44, 36, 112, 98, 95, 44, 36, 102, 52, 95, 44, 36, 105, 52, 95, 44, 36, 104, 53, 95, 44, 36, 105, 53, 95, 44, 36, 101, 49, 44, 36, 101, 50, 44, 36, 101, 51, 59, 92, 10, 36, 112, 101, 95, 44, 36, 112, 99, 95, 44, 36, 112, 102, 95, 44, 36, 112, 98, 95, 44, 36, 112, 105, 95, 44, 36, 112, 97, 95, 44, 36, 112, 104, 95, 44, 36, 112, 100, 95, 44, 36, 98, 49, 95, 44, 36, 99, 49, 95, 44, 36, 102, 52, 95, 44, 36, 99, 52, 95, 44, 36, 101, 48, 44, 36, 101, 51, 44, 36, 101, 49, 59, 92, 10, 36, 112, 101, 95, 44, 36, 112, 97, 95, 44, 36, 112, 98, 95, 44, 36, 112, 100, 95, 44, 36, 112, 99, 95, 44, 36, 112, 103, 95, 44, 36, 112, 102, 95, 44, 36, 112, 104, 95, 44, 36, 100, 48, 95, 44, 36, 97, 48, 95, 44, 36, 98, 49, 95, 44, 36, 97, 49, 95, 44, 36, 101, 50, 44, 36, 101, 49, 44, 36, 101, 48, 59, 92, 10, 36, 112, 101, 95, 44, 36, 112, 103, 95, 44, 36, 112, 100, 95, 44, 36, 112, 104, 95, 44, 36, 112, 97, 95, 44, 36, 112, 105, 95, 44, 36, 112, 98, 95, 44, 36, 112, 102, 95, 44, 36, 104, 53, 95, 44, 36, 103, 53, 95, 44, 36, 100, 48, 95, 44, 36, 103, 48, 95, 44, 36, 101, 51, 44, 36, 101, 48, 44, 36, 101, 50, 41, 10, 45, 42, 91, 49, 93, 32, 45, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 50, 49, 32, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 64, 123, 49, 44, 40, 48, 44, 36, 62, 41, 125, 44, 64, 123, 49, 44, 40, 49, 44, 36, 62, 41, 125, 44, 48, 44, 48, 44, 49, 32, 45, 100, 111, 110, 101, 10, 91, 48, 93, 32, 91, 48, 93, 32, 91, 48, 93, 32, 91, 48, 93, 10, 45, 110, 109, 91, 48, 93, 32, 111, 114, 105, 103, 32, 45, 109, 118, 91, 48, 93, 32, 64, 35, 32, 45, 114, 109, 91, 48, 93, 32, 45, 110, 109, 91, 48, 93, 32, 107, 101, 114, 110, 32, 45, 109, 118, 91, 48, 93, 32, 64, 35, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 112, 101, 61, 64, 123, 107, 101, 114, 110, 44, 40, 48, 44, 36, 62, 41, 125, 32, 112, 105, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 44, 36, 62, 41, 125, 32, 112, 104, 61, 64, 123, 107, 101, 114, 110, 44, 40, 50, 44, 36, 62, 41, 125, 10, 112, 102, 61, 64, 123, 107, 101, 114, 110, 44, 40, 51, 44, 36, 62, 41, 125, 32, 112, 103, 61, 64, 123, 107, 101, 114, 110, 44, 40, 52, 44, 36, 62, 41, 125, 32, 112, 99, 61, 64, 123, 107, 101, 114, 110, 44, 40, 53, 44, 36, 62, 41, 125, 10, 112, 100, 61, 64, 123, 107, 101, 114, 110, 44, 40, 54, 44, 36, 62, 41, 125, 32, 112, 98, 61, 64, 123, 107, 101, 114, 110, 44, 40, 55, 44, 36, 62, 41, 125, 32, 102, 52, 61, 64, 123, 107, 101, 114, 110, 44, 40, 56, 44, 36, 62, 41, 125, 10, 105, 52, 61, 64, 123, 107, 101, 114, 110, 44, 40, 57, 44, 36, 62, 41, 125, 32, 104, 53, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 48, 44, 36, 62, 41, 125, 32, 105, 53, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 49, 44, 36, 62, 41, 125, 10, 110, 49, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 50, 44, 36, 62, 41, 125, 32, 110, 50, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 51, 44, 36, 62, 41, 125, 32, 110, 51, 61, 64, 123, 107, 101, 114, 110, 44, 40, 49, 52, 44, 36, 62, 41, 125, 10, 45, 45, 103, 99, 100, 95, 101, 113, 91, 36, 112, 101, 44, 36, 112, 102, 93, 32, 45, 45, 103, 99, 100, 95, 101, 113, 91, 36, 112, 101, 44, 36, 112, 104, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 110, 109, 91, 45, 49, 93, 32, 108, 118, 108, 49, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 101, 44, 36, 112, 99, 93, 32, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 101, 44, 36, 112, 103, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 105, 44, 36, 104, 53, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 105, 44, 36, 102, 52, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 104, 44, 36, 112, 102, 93, 32, 45, 42, 91, 45, 49, 93, 32, 52, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 114, 101, 100, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 104, 44, 36, 112, 100, 93, 32, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 104, 44, 36, 105, 53, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 102, 44, 36, 105, 52, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 102, 44, 36, 112, 98, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 101, 44, 36, 112, 105, 93, 32, 45, 42, 91, 45, 49, 93, 32, 52, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 110, 109, 91, 45, 49, 93, 32, 98, 108, 117, 101, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 101, 44, 36, 112, 102, 93, 32, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 101, 44, 36, 112, 104, 93, 32, 45, 108, 101, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 105, 109, 97, 103, 101, 91, 36, 112, 104, 93, 32, 91, 36, 112, 102, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 112, 120, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 45, 108, 116, 91, 114, 101, 100, 44, 98, 108, 117, 101, 93, 10, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 102, 44, 36, 105, 52, 93, 32, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 104, 44, 36, 105, 53, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 103, 99, 100, 95, 101, 113, 91, 36, 112, 101, 44, 36, 112, 105, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 102, 44, 36, 112, 98, 93, 32, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 104, 44, 36, 112, 100, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 103, 99, 100, 95, 101, 113, 91, 36, 112, 101, 44, 36, 112, 103, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 103, 99, 100, 95, 101, 113, 91, 36, 112, 101, 44, 36, 112, 99, 93, 32, 45, 111, 114, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 108, 118, 108, 50, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 102, 44, 36, 112, 103, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 108, 118, 101, 114, 10, 45, 45, 103, 99, 100, 95, 121, 117, 118, 91, 36, 112, 104, 44, 36, 112, 99, 93, 32, 45, 110, 109, 91, 45, 49, 93, 32, 117, 118, 101, 114, 10, 45, 45, 42, 91, 108, 118, 101, 114, 93, 32, 50, 32, 45, 108, 101, 91, 45, 49, 93, 32, 91, 117, 118, 101, 114, 93, 10, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 103, 44, 36, 112, 101, 93, 32, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 103, 44, 36, 112, 100, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 91, 108, 118, 108, 50, 93, 32, 45, 105, 109, 97, 103, 101, 91, 36, 110, 51, 93, 32, 91, 112, 120, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 45, 42, 91, 117, 118, 101, 114, 93, 32, 50, 32, 45, 108, 116, 91, 45, 49, 93, 32, 91, 108, 118, 101, 114, 93, 10, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 99, 44, 36, 112, 101, 93, 32, 45, 45, 103, 99, 100, 95, 110, 101, 113, 91, 36, 112, 99, 44, 36, 112, 98, 93, 32, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 10, 45, 97, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 110, 100, 91, 45, 49, 93, 32, 91, 108, 118, 108, 50, 93, 32, 45, 105, 109, 97, 103, 101, 91, 36, 110, 51, 93, 32, 91, 112, 120, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 50, 44, 45, 49, 44, 108, 118, 101, 114, 44, 117, 118, 101, 114, 93, 10, 45, 114, 109, 91, 114, 101, 100, 44, 98, 108, 117, 101, 44, 108, 118, 108, 49, 44, 108, 118, 108, 50, 44, 112, 120, 93, 10, 45, 100, 111, 110, 101, 10, 64, 123, 111, 114, 105, 103, 44, 119, 125, 44, 64, 123, 111, 114, 105, 103, 44, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 114, 50, 100, 120, 91, 45, 49, 93, 32, 123, 64, 123, 111, 114, 105, 103, 44, 119, 125, 42, 50, 125, 44, 52, 32, 45, 110, 109, 91, 45, 49, 93, 32, 109, 115, 107, 10, 45, 114, 50, 100, 120, 91, 111, 114, 105, 103, 44, 36, 101, 48, 44, 36, 101, 49, 44, 36, 101, 50, 44, 36, 101, 51, 93, 32, 123, 64, 123, 111, 114, 105, 103, 44, 119, 125, 42, 50, 125, 44, 49, 10, 45, 105, 109, 97, 103, 101, 91, 111, 114, 105, 103, 93, 32, 91, 36, 101, 48, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 115, 107, 93, 32, 45, 115, 104, 105, 102, 116, 91, 109, 115, 107, 93, 32, 49, 10, 45, 105, 109, 97, 103, 101, 91, 111, 114, 105, 103, 93, 32, 91, 36, 101, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 115, 107, 93, 32, 45, 115, 104, 105, 102, 116, 91, 109, 115, 107, 93, 32, 45, 49, 44, 49, 10, 45, 105, 109, 97, 103, 101, 91, 111, 114, 105, 103, 93, 32, 91, 36, 101, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 115, 107, 93, 32, 45, 115, 104, 105, 102, 116, 91, 109, 115, 107, 93, 32, 49, 10, 45, 105, 109, 97, 103, 101, 91, 111, 114, 105, 103, 93, 32, 91, 36, 101, 51, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 109, 115, 107, 93, 10, 45, 107, 91, 111, 114, 105, 103, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 101, 113, 32, 58, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 108, 10, 103, 99, 100, 95, 110, 101, 113, 32, 58, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 101, 110, 100, 108, 10, 103, 99, 100, 95, 121, 117, 118, 32, 58, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 114, 103, 98, 50, 121, 117, 118, 91, 45, 49, 93, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 42, 91, 45, 51, 93, 32, 52, 56, 32, 45, 42, 91, 45, 50, 93, 32, 55, 32, 45, 42, 91, 45, 49, 93, 32, 54, 32, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 101, 110, 100, 108, 10, 103, 99, 100, 95, 108, 97, 98, 101, 108, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 52, 125, 44, 36, 123, 50, 61, 48, 46, 50, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 49, 32, 110, 98, 61, 64, 123, 45, 49, 44, 49, 43, 105, 77, 125, 10, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 10, 45, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 108, 101, 91, 45, 49, 93, 32, 123, 36, 50, 37, 42, 119, 42, 104, 125, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 110, 112, 97, 105, 110, 116, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 115, 104, 114, 105, 110, 107, 32, 58, 10, 95, 103, 99, 100, 95, 119, 61, 64, 123, 48, 44, 119, 125, 32, 95, 103, 99, 100, 95, 104, 61, 64, 123, 48, 44, 104, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 109, 97, 120, 40, 119, 44, 104, 41, 62, 55, 48, 48, 125, 32, 45, 114, 114, 50, 100, 91, 45, 49, 93, 32, 55, 48, 48, 44, 55, 48, 48, 44, 48, 44, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 99, 100, 95, 117, 110, 115, 104, 114, 105, 110, 107, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 114, 32, 36, 95, 103, 99, 100, 95, 119, 44, 36, 95, 103, 99, 100, 95, 104, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 117, 116, 111, 109, 105, 120, 101, 114, 58, 32, 97, 117, 116, 111, 109, 105, 120, 101, 114, 44, 97, 117, 116, 111, 109, 105, 120, 101, 114, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 99, 111, 108, 111, 117, 114, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 112, 97, 114, 116, 105, 97, 108, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 32, 110, 111, 105, 115, 101, 32, 99, 97, 108, 117, 108, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 99, 114, 101, 97, 116, 101, 115, 32, 97, 32, 98, 108, 97, 99, 107, 32, 97, 110, 100, 32, 119, 104, 105, 116, 101, 32, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 109, 111, 115, 116, 32, 112, 108, 101, 97, 115, 97, 110, 116, 32, 110, 111, 105, 115, 101, 32, 99, 104, 97, 114, 97, 99, 116, 101, 114, 105, 115, 116, 105, 99, 115, 32, 40, 73, 77, 72, 79, 41, 46, 32, 73, 116, 32, 109, 101, 97, 115, 117, 114, 101, 115, 32, 116, 104, 101, 32, 110, 111, 105, 115, 101, 32, 105, 110, 32, 101, 97, 99, 104, 32, 99, 111, 108, 111, 117, 114, 32, 99, 104, 97, 110, 110, 101, 108, 32, 97, 110, 100, 32, 115, 99, 97, 108, 101, 115, 32, 101, 97, 99, 104, 32, 99, 104, 97, 110, 110, 101, 108, 32, 115, 111, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 110, 111, 105, 115, 101, 32, 108, 101, 118, 101, 108, 115, 32, 97, 114, 101, 32, 101, 118, 101, 110, 32, 97, 110, 100, 32, 112, 114, 111, 100, 117, 99, 101, 115, 32, 97, 32, 103, 114, 101, 121, 115, 99, 97, 108, 101, 32, 111, 117, 116, 112, 117, 116, 32, 97, 110, 100, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 97, 110, 32, 101, 120, 116, 114, 97, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 108, 111, 117, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 48, 49, 50, 47, 49, 48, 47, 50, 54, 34, 41, 10, 97, 117, 116, 111, 109, 105, 120, 101, 114, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 52, 48, 37, 44, 52, 48, 37, 44, 54, 48, 37, 44, 54, 48, 37, 10, 45, 101, 110, 100, 105, 102, 10, 98, 108, 117, 101, 110, 111, 105, 115, 101, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 103, 114, 101, 101, 110, 110, 111, 105, 115, 101, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 114, 101, 100, 110, 111, 105, 115, 101, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 103, 114, 101, 101, 110, 110, 111, 105, 115, 101, 61, 123, 36, 103, 114, 101, 101, 110, 110, 111, 105, 115, 101, 42, 48, 46, 53, 125, 10, 114, 101, 100, 97, 100, 106, 117, 115, 116, 61, 123, 36, 103, 114, 101, 101, 110, 110, 111, 105, 115, 101, 47, 36, 114, 101, 100, 110, 111, 105, 115, 101, 125, 10, 98, 108, 117, 101, 97, 100, 106, 117, 115, 116, 61, 123, 36, 103, 114, 101, 101, 110, 110, 111, 105, 115, 101, 47, 36, 98, 108, 117, 101, 110, 111, 105, 115, 101, 125, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 109, 117, 108, 91, 49, 93, 32, 123, 36, 114, 101, 100, 97, 100, 106, 117, 115, 116, 47, 40, 36, 114, 101, 100, 97, 100, 106, 117, 115, 116, 43, 49, 43, 36, 98, 108, 117, 101, 97, 100, 106, 117, 115, 116, 41, 125, 10, 45, 109, 117, 108, 91, 50, 93, 32, 123, 49, 47, 40, 36, 114, 101, 100, 97, 100, 106, 117, 115, 116, 43, 49, 43, 36, 98, 108, 117, 101, 97, 100, 106, 117, 115, 116, 41, 125, 10, 45, 109, 117, 108, 91, 51, 93, 32, 123, 36, 98, 108, 117, 101, 97, 100, 106, 117, 115, 116, 47, 40, 36, 114, 101, 100, 97, 100, 106, 117, 115, 116, 43, 49, 43, 36, 98, 108, 117, 101, 97, 100, 106, 117, 115, 116, 41, 125, 10, 45, 97, 100, 100, 91, 49, 45, 51, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 69, 97, 115, 121, 32, 83, 107, 105, 110, 32, 82, 101, 116, 111, 117, 99, 104, 58, 32, 105, 97, 105, 110, 95, 101, 97, 115, 121, 95, 115, 107, 105, 110, 95, 114, 101, 116, 111, 117, 99, 104, 44, 105, 97, 105, 110, 95, 101, 97, 115, 121, 95, 115, 107, 105, 110, 95, 114, 101, 116, 111, 117, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 66, 97, 115, 101, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 83, 101, 110, 115, 105, 116, 105, 118, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 55, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 111, 119, 32, 98, 105, 97, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 68, 101, 116, 97, 105, 108, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 102, 32, 112, 114, 101, 118, 105, 101, 119, 32, 97, 112, 112, 101, 97, 114, 115, 32, 100, 97, 114, 107, 44, 32, 105, 110, 99, 114, 101, 97, 115, 101, 32, 115, 105, 122, 101, 32, 111, 102, 32, 112, 114, 101, 118, 105, 101, 119, 32, 119, 105, 110, 100, 111, 119, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 121, 32, 70, 105, 110, 101, 32, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 110, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 117, 109, 32, 51, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 54, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 114, 115, 101, 32, 52, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 114, 121, 32, 67, 111, 117, 114, 115, 101, 32, 53, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 117, 99, 101, 32, 114, 101, 100, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 108, 105, 116, 32, 66, 97, 115, 101, 32, 97, 110, 100, 32, 68, 101, 116, 97, 105, 108, 32, 79, 117, 116, 112, 117, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 117, 112, 100, 97, 116, 101, 32, 49, 50, 32, 77, 97, 121, 32, 50, 48, 49, 51, 32, 45, 32, 110, 111, 119, 32, 104, 97, 110, 100, 108, 101, 115, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 105, 110, 116, 101, 114, 110, 97, 108, 32, 99, 104, 97, 110, 103, 101, 115, 34, 41, 10, 105, 97, 105, 110, 95, 101, 97, 115, 121, 95, 115, 107, 105, 110, 95, 114, 101, 116, 111, 117, 99, 104, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 115, 116, 114, 49, 61, 36, 49, 10, 115, 116, 114, 50, 61, 123, 36, 115, 116, 114, 49, 42, 36, 51, 125, 10, 115, 116, 114, 51, 61, 123, 36, 115, 116, 114, 50, 42, 36, 51, 125, 10, 115, 116, 114, 52, 61, 123, 36, 115, 116, 114, 51, 42, 36, 51, 125, 10, 115, 116, 114, 53, 61, 123, 36, 115, 116, 114, 52, 42, 36, 51, 125, 10, 115, 116, 114, 54, 61, 123, 36, 115, 116, 114, 53, 42, 36, 51, 125, 10, 115, 116, 114, 55, 61, 123, 36, 115, 116, 114, 54, 42, 36, 51, 125, 10, 115, 116, 114, 56, 61, 123, 36, 115, 116, 114, 55, 42, 36, 51, 125, 10, 45, 45, 108, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 50, 53, 54, 45, 119, 37, 50, 53, 54, 41, 125, 44, 123, 104, 43, 40, 50, 53, 54, 45, 104, 37, 50, 53, 54, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 49, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 48, 93, 32, 49, 48, 44, 36, 115, 116, 114, 49, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 50, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 50, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 51, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 51, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 52, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 52, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 51, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 53, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 53, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 52, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 54, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 54, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 53, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 55, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 55, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 54, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 115, 116, 114, 56, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 115, 116, 114, 56, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 53, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 53, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 55, 44, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 45, 49, 93, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 56, 91, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 51, 48, 10, 45, 109, 111, 100, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 103, 101, 91, 45, 49, 93, 32, 32, 52, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 52, 10, 45, 45, 115, 112, 108, 105, 116, 91, 45, 50, 93, 32, 99, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 109, 111, 118, 101, 91, 45, 49, 93, 32, 45, 50, 10, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 123, 36, 49, 48, 125, 10, 45, 109, 117, 108, 91, 45, 50, 93, 32, 123, 49, 45, 36, 49, 48, 125, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 45, 108, 91, 45, 49, 93, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 50, 53, 37, 44, 50, 53, 37, 44, 48, 44, 49, 44, 36, 54, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 50, 37, 44, 49, 50, 37, 44, 48, 44, 49, 44, 36, 55, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 54, 37, 44, 54, 37, 44, 48, 44, 49, 44, 36, 56, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 51, 37, 44, 51, 37, 44, 48, 44, 49, 44, 36, 57, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 46, 49, 37, 44, 48, 46, 49, 37, 44, 48, 44, 49, 44, 49, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 48, 125, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 115, 101, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 105, 97, 105, 110, 95, 101, 97, 115, 121, 95, 115, 107, 105, 110, 95, 114, 101, 116, 111, 117, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 97, 105, 110, 95, 101, 97, 115, 121, 95, 115, 107, 105, 110, 95, 114, 101, 116, 111, 117, 99, 104, 32, 36, 123, 49, 45, 45, 49, 125, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 48, 125, 10, 9, 9, 35, 35, 32, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 35, 35, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 35, 35, 32, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 9, 9, 35, 35, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 35, 35, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 9, 9, 35, 35, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 50, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 9, 35, 35, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 9, 35, 35, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 49, 44, 49, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 52, 56, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 52, 56, 44, 49, 48, 48, 37, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 52, 56, 125, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 52, 56, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 36, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 125, 44, 52, 56, 44, 48, 44, 36, 102, 105, 110, 101, 95, 100, 101, 116, 44, 36, 109, 101, 100, 95, 100, 101, 116, 44, 36, 108, 97, 114, 103, 101, 95, 100, 101, 116, 44, 49, 44, 51, 10, 9, 9, 35, 35, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 52, 56, 44, 52, 56, 44, 123, 119, 45, 52, 57, 125, 44, 123, 104, 45, 52, 57, 125, 10, 9, 9, 35, 35, 32, 45, 115, 117, 98, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 35, 35, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 100, 101, 116, 95, 101, 109, 112, 104, 97, 115, 105, 115, 10, 9, 9, 35, 35, 32, 45, 97, 100, 100, 91, 50, 93, 32, 91, 45, 49, 93, 10, 9, 9, 35, 35, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 35, 35, 32, 45, 109, 111, 118, 101, 91, 45, 49, 93, 32, 48, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 95, 99, 104, 111, 105, 99, 101, 61, 61, 50, 125, 10, 9, 9, 35, 35, 32, 45, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 91, 48, 93, 32, 49, 48, 44, 36, 108, 110, 114, 44, 51, 44, 51, 44, 48, 44, 36, 102, 97, 115, 116, 44, 49, 44, 36, 100, 101, 115, 112, 101, 107, 44, 46, 53, 44, 46, 52, 44, 46, 50, 44, 48, 44, 49, 44, 49, 44, 50, 44, 48, 10, 9, 9, 35, 35, 32, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 9, 9, 35, 35, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 9, 9, 35, 35, 32, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 9, 9, 35, 35, 32, 45, 117, 110, 115, 104, 97, 114, 112, 91, 50, 93, 32, 46, 55, 44, 36, 115, 104, 97, 114, 112, 44, 48, 10, 9, 9, 35, 35, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 9, 35, 35, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 49, 44, 49, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 52, 56, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 52, 56, 44, 49, 48, 48, 37, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 52, 56, 125, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 52, 56, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 36, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 125, 44, 52, 56, 44, 48, 44, 36, 102, 105, 110, 101, 95, 100, 101, 116, 44, 36, 109, 101, 100, 95, 100, 101, 116, 44, 36, 108, 97, 114, 103, 101, 95, 100, 101, 116, 44, 49, 44, 51, 10, 9, 9, 35, 35, 32, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 52, 56, 44, 52, 56, 44, 123, 119, 45, 52, 57, 125, 44, 123, 104, 45, 52, 57, 125, 10, 9, 9, 35, 35, 32, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 100, 101, 116, 95, 101, 109, 112, 104, 97, 115, 105, 115, 10, 9, 9, 35, 35, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 50, 56, 10, 9, 9, 35, 35, 32, 45, 109, 111, 118, 101, 91, 45, 50, 93, 32, 48, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 9, 35, 35, 32, 45, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 10, 9, 35, 35, 32, 45, 104, 121, 98, 114, 105, 100, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 10, 9, 35, 35, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 56, 61, 61, 52, 125, 10, 9, 35, 35, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 35, 35, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 35, 35, 32, 45, 109, 101, 100, 105, 97, 110, 91, 45, 49, 93, 32, 51, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 56, 60, 52, 125, 10, 9, 9, 35, 35, 32, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 45, 105, 97, 105, 110, 115, 95, 110, 114, 95, 112, 97, 116, 99, 104, 98, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 9, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 102, 97, 115, 116, 32, 102, 111, 114, 109, 117, 108, 97, 58, 32, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 102, 111, 114, 109, 117, 108, 97, 44, 32, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 102, 111, 114, 109, 117, 108, 97, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 112, 112, 108, 121, 32, 102, 111, 114, 109, 117, 108, 97, 32, 61, 32, 116, 101, 120, 116, 40, 34, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 50, 46, 50, 34, 41, 10, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 102, 111, 114, 109, 117, 108, 97, 58, 10, 50, 53, 54, 44, 49, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 120, 10, 45, 108, 111, 99, 97, 108, 91, 49, 93, 10, 36, 49, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 99, 114, 118, 48, 61, 64, 123, 49, 44, 48, 125, 10, 99, 114, 118, 49, 61, 64, 123, 49, 44, 49, 125, 10, 99, 114, 118, 50, 61, 64, 123, 49, 44, 50, 125, 10, 99, 114, 118, 51, 61, 64, 123, 49, 44, 51, 125, 10, 99, 114, 118, 52, 61, 64, 123, 49, 44, 52, 125, 10, 99, 114, 118, 53, 61, 64, 123, 49, 44, 53, 125, 10, 99, 114, 118, 54, 61, 64, 123, 49, 44, 54, 125, 10, 99, 114, 118, 55, 61, 64, 123, 49, 44, 55, 125, 10, 99, 114, 118, 56, 61, 64, 123, 49, 44, 56, 125, 10, 99, 114, 118, 57, 61, 64, 123, 49, 44, 57, 125, 10, 99, 114, 118, 49, 48, 61, 64, 123, 49, 44, 49, 48, 125, 10, 99, 114, 118, 49, 49, 61, 64, 123, 49, 44, 49, 49, 125, 10, 99, 114, 118, 49, 50, 61, 64, 123, 49, 44, 49, 50, 125, 10, 99, 114, 118, 49, 51, 61, 64, 123, 49, 44, 49, 51, 125, 10, 99, 114, 118, 49, 52, 61, 64, 123, 49, 44, 49, 52, 125, 10, 99, 114, 118, 49, 53, 61, 64, 123, 49, 44, 49, 53, 125, 10, 99, 114, 118, 49, 54, 61, 64, 123, 49, 44, 49, 54, 125, 10, 99, 114, 118, 49, 55, 61, 64, 123, 49, 44, 49, 55, 125, 10, 99, 114, 118, 49, 56, 61, 64, 123, 49, 44, 49, 56, 125, 10, 99, 114, 118, 49, 57, 61, 64, 123, 49, 44, 49, 57, 125, 10, 99, 114, 118, 50, 48, 61, 64, 123, 49, 44, 50, 48, 125, 10, 99, 114, 118, 50, 49, 61, 64, 123, 49, 44, 50, 49, 125, 10, 99, 114, 118, 50, 50, 61, 64, 123, 49, 44, 50, 50, 125, 10, 99, 114, 118, 50, 51, 61, 64, 123, 49, 44, 50, 51, 125, 10, 99, 114, 118, 50, 52, 61, 64, 123, 49, 44, 50, 52, 125, 10, 99, 114, 118, 50, 53, 61, 64, 123, 49, 44, 50, 53, 125, 10, 99, 114, 118, 50, 54, 61, 64, 123, 49, 44, 50, 54, 125, 10, 99, 114, 118, 50, 55, 61, 64, 123, 49, 44, 50, 55, 125, 10, 99, 114, 118, 50, 56, 61, 64, 123, 49, 44, 50, 56, 125, 10, 99, 114, 118, 50, 57, 61, 64, 123, 49, 44, 50, 57, 125, 10, 99, 114, 118, 51, 48, 61, 64, 123, 49, 44, 51, 48, 125, 10, 99, 114, 118, 51, 49, 61, 64, 123, 49, 44, 51, 49, 125, 10, 99, 114, 118, 51, 50, 61, 64, 123, 49, 44, 51, 50, 125, 10, 99, 114, 118, 51, 51, 61, 64, 123, 49, 44, 51, 51, 125, 10, 99, 114, 118, 51, 52, 61, 64, 123, 49, 44, 51, 52, 125, 10, 99, 114, 118, 51, 53, 61, 64, 123, 49, 44, 51, 53, 125, 10, 99, 114, 118, 51, 54, 61, 64, 123, 49, 44, 51, 54, 125, 10, 99, 114, 118, 51, 55, 61, 64, 123, 49, 44, 51, 55, 125, 10, 99, 114, 118, 51, 56, 61, 64, 123, 49, 44, 51, 56, 125, 10, 99, 114, 118, 51, 57, 61, 64, 123, 49, 44, 51, 57, 125, 10, 99, 114, 118, 52, 48, 61, 64, 123, 49, 44, 52, 48, 125, 10, 99, 114, 118, 52, 49, 61, 64, 123, 49, 44, 52, 49, 125, 10, 99, 114, 118, 52, 50, 61, 64, 123, 49, 44, 52, 50, 125, 10, 99, 114, 118, 52, 51, 61, 64, 123, 49, 44, 52, 51, 125, 10, 99, 114, 118, 52, 52, 61, 64, 123, 49, 44, 52, 52, 125, 10, 99, 114, 118, 52, 53, 61, 64, 123, 49, 44, 52, 53, 125, 10, 99, 114, 118, 52, 54, 61, 64, 123, 49, 44, 52, 54, 125, 10, 99, 114, 118, 52, 55, 61, 64, 123, 49, 44, 52, 55, 125, 10, 99, 114, 118, 52, 56, 61, 64, 123, 49, 44, 52, 56, 125, 10, 99, 114, 118, 52, 57, 61, 64, 123, 49, 44, 52, 57, 125, 10, 99, 114, 118, 53, 48, 61, 64, 123, 49, 44, 53, 48, 125, 10, 99, 114, 118, 53, 49, 61, 64, 123, 49, 44, 53, 49, 125, 10, 99, 114, 118, 53, 50, 61, 64, 123, 49, 44, 53, 50, 125, 10, 99, 114, 118, 53, 51, 61, 64, 123, 49, 44, 53, 51, 125, 10, 99, 114, 118, 53, 52, 61, 64, 123, 49, 44, 53, 52, 125, 10, 99, 114, 118, 53, 53, 61, 64, 123, 49, 44, 53, 53, 125, 10, 99, 114, 118, 53, 54, 61, 64, 123, 49, 44, 53, 54, 125, 10, 99, 114, 118, 53, 55, 61, 64, 123, 49, 44, 53, 55, 125, 10, 99, 114, 118, 53, 56, 61, 64, 123, 49, 44, 53, 56, 125, 10, 99, 114, 118, 53, 57, 61, 64, 123, 49, 44, 53, 57, 125, 10, 99, 114, 118, 54, 48, 61, 64, 123, 49, 44, 54, 48, 125, 10, 99, 114, 118, 54, 49, 61, 64, 123, 49, 44, 54, 49, 125, 10, 99, 114, 118, 54, 50, 61, 64, 123, 49, 44, 54, 50, 125, 10, 99, 114, 118, 54, 51, 61, 64, 123, 49, 44, 54, 51, 125, 10, 99, 114, 118, 54, 52, 61, 64, 123, 49, 44, 54, 52, 125, 10, 99, 114, 118, 54, 53, 61, 64, 123, 49, 44, 54, 53, 125, 10, 99, 114, 118, 54, 54, 61, 64, 123, 49, 44, 54, 54, 125, 10, 99, 114, 118, 54, 55, 61, 64, 123, 49, 44, 54, 55, 125, 10, 99, 114, 118, 54, 56, 61, 64, 123, 49, 44, 54, 56, 125, 10, 99, 114, 118, 54, 57, 61, 64, 123, 49, 44, 54, 57, 125, 10, 99, 114, 118, 55, 48, 61, 64, 123, 49, 44, 55, 48, 125, 10, 99, 114, 118, 55, 49, 61, 64, 123, 49, 44, 55, 49, 125, 10, 99, 114, 118, 55, 50, 61, 64, 123, 49, 44, 55, 50, 125, 10, 99, 114, 118, 55, 51, 61, 64, 123, 49, 44, 55, 51, 125, 10, 99, 114, 118, 55, 52, 61, 64, 123, 49, 44, 55, 52, 125, 10, 99, 114, 118, 55, 53, 61, 64, 123, 49, 44, 55, 53, 125, 10, 99, 114, 118, 55, 54, 61, 64, 123, 49, 44, 55, 54, 125, 10, 99, 114, 118, 55, 55, 61, 64, 123, 49, 44, 55, 55, 125, 10, 99, 114, 118, 55, 56, 61, 64, 123, 49, 44, 55, 56, 125, 10, 99, 114, 118, 55, 57, 61, 64, 123, 49, 44, 55, 57, 125, 10, 99, 114, 118, 56, 48, 61, 64, 123, 49, 44, 56, 48, 125, 10, 99, 114, 118, 56, 49, 61, 64, 123, 49, 44, 56, 49, 125, 10, 99, 114, 118, 56, 50, 61, 64, 123, 49, 44, 56, 50, 125, 10, 99, 114, 118, 56, 51, 61, 64, 123, 49, 44, 56, 51, 125, 10, 99, 114, 118, 56, 52, 61, 64, 123, 49, 44, 56, 52, 125, 10, 99, 114, 118, 56, 53, 61, 64, 123, 49, 44, 56, 53, 125, 10, 99, 114, 118, 56, 54, 61, 64, 123, 49, 44, 56, 54, 125, 10, 99, 114, 118, 56, 55, 61, 64, 123, 49, 44, 56, 55, 125, 10, 99, 114, 118, 56, 56, 61, 64, 123, 49, 44, 56, 56, 125, 10, 99, 114, 118, 56, 57, 61, 64, 123, 49, 44, 56, 57, 125, 10, 99, 114, 118, 57, 48, 61, 64, 123, 49, 44, 57, 48, 125, 10, 99, 114, 118, 57, 49, 61, 64, 123, 49, 44, 57, 49, 125, 10, 99, 114, 118, 57, 50, 61, 64, 123, 49, 44, 57, 50, 125, 10, 99, 114, 118, 57, 51, 61, 64, 123, 49, 44, 57, 51, 125, 10, 99, 114, 118, 57, 52, 61, 64, 123, 49, 44, 57, 52, 125, 10, 99, 114, 118, 57, 53, 61, 64, 123, 49, 44, 57, 53, 125, 10, 99, 114, 118, 57, 54, 61, 64, 123, 49, 44, 57, 54, 125, 10, 99, 114, 118, 57, 55, 61, 64, 123, 49, 44, 57, 55, 125, 10, 99, 114, 118, 57, 56, 61, 64, 123, 49, 44, 57, 56, 125, 10, 99, 114, 118, 57, 57, 61, 64, 123, 49, 44, 57, 57, 125, 10, 99, 114, 118, 49, 48, 48, 61, 64, 123, 49, 44, 49, 48, 48, 125, 10, 99, 114, 118, 49, 48, 49, 61, 64, 123, 49, 44, 49, 48, 49, 125, 10, 99, 114, 118, 49, 48, 50, 61, 64, 123, 49, 44, 49, 48, 50, 125, 10, 99, 114, 118, 49, 48, 51, 61, 64, 123, 49, 44, 49, 48, 51, 125, 10, 99, 114, 118, 49, 48, 52, 61, 64, 123, 49, 44, 49, 48, 52, 125, 10, 99, 114, 118, 49, 48, 53, 61, 64, 123, 49, 44, 49, 48, 53, 125, 10, 99, 114, 118, 49, 48, 54, 61, 64, 123, 49, 44, 49, 48, 54, 125, 10, 99, 114, 118, 49, 48, 55, 61, 64, 123, 49, 44, 49, 48, 55, 125, 10, 99, 114, 118, 49, 48, 56, 61, 64, 123, 49, 44, 49, 48, 56, 125, 10, 99, 114, 118, 49, 48, 57, 61, 64, 123, 49, 44, 49, 48, 57, 125, 10, 99, 114, 118, 49, 49, 48, 61, 64, 123, 49, 44, 49, 49, 48, 125, 10, 99, 114, 118, 49, 49, 49, 61, 64, 123, 49, 44, 49, 49, 49, 125, 10, 99, 114, 118, 49, 49, 50, 61, 64, 123, 49, 44, 49, 49, 50, 125, 10, 99, 114, 118, 49, 49, 51, 61, 64, 123, 49, 44, 49, 49, 51, 125, 10, 99, 114, 118, 49, 49, 52, 61, 64, 123, 49, 44, 49, 49, 52, 125, 10, 99, 114, 118, 49, 49, 53, 61, 64, 123, 49, 44, 49, 49, 53, 125, 10, 99, 114, 118, 49, 49, 54, 61, 64, 123, 49, 44, 49, 49, 54, 125, 10, 99, 114, 118, 49, 49, 55, 61, 64, 123, 49, 44, 49, 49, 55, 125, 10, 99, 114, 118, 49, 49, 56, 61, 64, 123, 49, 44, 49, 49, 56, 125, 10, 99, 114, 118, 49, 49, 57, 61, 64, 123, 49, 44, 49, 49, 57, 125, 10, 99, 114, 118, 49, 50, 48, 61, 64, 123, 49, 44, 49, 50, 48, 125, 10, 99, 114, 118, 49, 50, 49, 61, 64, 123, 49, 44, 49, 50, 49, 125, 10, 99, 114, 118, 49, 50, 50, 61, 64, 123, 49, 44, 49, 50, 50, 125, 10, 99, 114, 118, 49, 50, 51, 61, 64, 123, 49, 44, 49, 50, 51, 125, 10, 99, 114, 118, 49, 50, 52, 61, 64, 123, 49, 44, 49, 50, 52, 125, 10, 99, 114, 118, 49, 50, 53, 61, 64, 123, 49, 44, 49, 50, 53, 125, 10, 99, 114, 118, 49, 50, 54, 61, 64, 123, 49, 44, 49, 50, 54, 125, 10, 99, 114, 118, 49, 50, 55, 61, 64, 123, 49, 44, 49, 50, 55, 125, 10, 99, 114, 118, 49, 50, 56, 61, 64, 123, 49, 44, 49, 50, 56, 125, 10, 99, 114, 118, 49, 50, 57, 61, 64, 123, 49, 44, 49, 50, 57, 125, 10, 99, 114, 118, 49, 51, 48, 61, 64, 123, 49, 44, 49, 51, 48, 125, 10, 99, 114, 118, 49, 51, 49, 61, 64, 123, 49, 44, 49, 51, 49, 125, 10, 99, 114, 118, 49, 51, 50, 61, 64, 123, 49, 44, 49, 51, 50, 125, 10, 99, 114, 118, 49, 51, 51, 61, 64, 123, 49, 44, 49, 51, 51, 125, 10, 99, 114, 118, 49, 51, 52, 61, 64, 123, 49, 44, 49, 51, 52, 125, 10, 99, 114, 118, 49, 51, 53, 61, 64, 123, 49, 44, 49, 51, 53, 125, 10, 99, 114, 118, 49, 51, 54, 61, 64, 123, 49, 44, 49, 51, 54, 125, 10, 99, 114, 118, 49, 51, 55, 61, 64, 123, 49, 44, 49, 51, 55, 125, 10, 99, 114, 118, 49, 51, 56, 61, 64, 123, 49, 44, 49, 51, 56, 125, 10, 99, 114, 118, 49, 51, 57, 61, 64, 123, 49, 44, 49, 51, 57, 125, 10, 99, 114, 118, 49, 52, 48, 61, 64, 123, 49, 44, 49, 52, 48, 125, 10, 99, 114, 118, 49, 52, 49, 61, 64, 123, 49, 44, 49, 52, 49, 125, 10, 99, 114, 118, 49, 52, 50, 61, 64, 123, 49, 44, 49, 52, 50, 125, 10, 99, 114, 118, 49, 52, 51, 61, 64, 123, 49, 44, 49, 52, 51, 125, 10, 99, 114, 118, 49, 52, 52, 61, 64, 123, 49, 44, 49, 52, 52, 125, 10, 99, 114, 118, 49, 52, 53, 61, 64, 123, 49, 44, 49, 52, 53, 125, 10, 99, 114, 118, 49, 52, 54, 61, 64, 123, 49, 44, 49, 52, 54, 125, 10, 99, 114, 118, 49, 52, 55, 61, 64, 123, 49, 44, 49, 52, 55, 125, 10, 99, 114, 118, 49, 52, 56, 61, 64, 123, 49, 44, 49, 52, 56, 125, 10, 99, 114, 118, 49, 52, 57, 61, 64, 123, 49, 44, 49, 52, 57, 125, 10, 99, 114, 118, 49, 53, 48, 61, 64, 123, 49, 44, 49, 53, 48, 125, 10, 99, 114, 118, 49, 53, 49, 61, 64, 123, 49, 44, 49, 53, 49, 125, 10, 99, 114, 118, 49, 53, 50, 61, 64, 123, 49, 44, 49, 53, 50, 125, 10, 99, 114, 118, 49, 53, 51, 61, 64, 123, 49, 44, 49, 53, 51, 125, 10, 99, 114, 118, 49, 53, 52, 61, 64, 123, 49, 44, 49, 53, 52, 125, 10, 99, 114, 118, 49, 53, 53, 61, 64, 123, 49, 44, 49, 53, 53, 125, 10, 99, 114, 118, 49, 53, 54, 61, 64, 123, 49, 44, 49, 53, 54, 125, 10, 99, 114, 118, 49, 53, 55, 61, 64, 123, 49, 44, 49, 53, 55, 125, 10, 99, 114, 118, 49, 53, 56, 61, 64, 123, 49, 44, 49, 53, 56, 125, 10, 99, 114, 118, 49, 53, 57, 61, 64, 123, 49, 44, 49, 53, 57, 125, 10, 99, 114, 118, 49, 54, 48, 61, 64, 123, 49, 44, 49, 54, 48, 125, 10, 99, 114, 118, 49, 54, 49, 61, 64, 123, 49, 44, 49, 54, 49, 125, 10, 99, 114, 118, 49, 54, 50, 61, 64, 123, 49, 44, 49, 54, 50, 125, 10, 99, 114, 118, 49, 54, 51, 61, 64, 123, 49, 44, 49, 54, 51, 125, 10, 99, 114, 118, 49, 54, 52, 61, 64, 123, 49, 44, 49, 54, 52, 125, 10, 99, 114, 118, 49, 54, 53, 61, 64, 123, 49, 44, 49, 54, 53, 125, 10, 99, 114, 118, 49, 54, 54, 61, 64, 123, 49, 44, 49, 54, 54, 125, 10, 99, 114, 118, 49, 54, 55, 61, 64, 123, 49, 44, 49, 54, 55, 125, 10, 99, 114, 118, 49, 54, 56, 61, 64, 123, 49, 44, 49, 54, 56, 125, 10, 99, 114, 118, 49, 54, 57, 61, 64, 123, 49, 44, 49, 54, 57, 125, 10, 99, 114, 118, 49, 55, 48, 61, 64, 123, 49, 44, 49, 55, 48, 125, 10, 99, 114, 118, 49, 55, 49, 61, 64, 123, 49, 44, 49, 55, 49, 125, 10, 99, 114, 118, 49, 55, 50, 61, 64, 123, 49, 44, 49, 55, 50, 125, 10, 99, 114, 118, 49, 55, 51, 61, 64, 123, 49, 44, 49, 55, 51, 125, 10, 99, 114, 118, 49, 55, 52, 61, 64, 123, 49, 44, 49, 55, 52, 125, 10, 99, 114, 118, 49, 55, 53, 61, 64, 123, 49, 44, 49, 55, 53, 125, 10, 99, 114, 118, 49, 55, 54, 61, 64, 123, 49, 44, 49, 55, 54, 125, 10, 99, 114, 118, 49, 55, 55, 61, 64, 123, 49, 44, 49, 55, 55, 125, 10, 99, 114, 118, 49, 55, 56, 61, 64, 123, 49, 44, 49, 55, 56, 125, 10, 99, 114, 118, 49, 55, 57, 61, 64, 123, 49, 44, 49, 55, 57, 125, 10, 99, 114, 118, 49, 56, 48, 61, 64, 123, 49, 44, 49, 56, 48, 125, 10, 99, 114, 118, 49, 56, 49, 61, 64, 123, 49, 44, 49, 56, 49, 125, 10, 99, 114, 118, 49, 56, 50, 61, 64, 123, 49, 44, 49, 56, 50, 125, 10, 99, 114, 118, 49, 56, 51, 61, 64, 123, 49, 44, 49, 56, 51, 125, 10, 99, 114, 118, 49, 56, 52, 61, 64, 123, 49, 44, 49, 56, 52, 125, 10, 99, 114, 118, 49, 56, 53, 61, 64, 123, 49, 44, 49, 56, 53, 125, 10, 99, 114, 118, 49, 56, 54, 61, 64, 123, 49, 44, 49, 56, 54, 125, 10, 99, 114, 118, 49, 56, 55, 61, 64, 123, 49, 44, 49, 56, 55, 125, 10, 99, 114, 118, 49, 56, 56, 61, 64, 123, 49, 44, 49, 56, 56, 125, 10, 99, 114, 118, 49, 56, 57, 61, 64, 123, 49, 44, 49, 56, 57, 125, 10, 99, 114, 118, 49, 57, 48, 61, 64, 123, 49, 44, 49, 57, 48, 125, 10, 99, 114, 118, 49, 57, 49, 61, 64, 123, 49, 44, 49, 57, 49, 125, 10, 99, 114, 118, 49, 57, 50, 61, 64, 123, 49, 44, 49, 57, 50, 125, 10, 99, 114, 118, 49, 57, 51, 61, 64, 123, 49, 44, 49, 57, 51, 125, 10, 99, 114, 118, 49, 57, 52, 61, 64, 123, 49, 44, 49, 57, 52, 125, 10, 99, 114, 118, 49, 57, 53, 61, 64, 123, 49, 44, 49, 57, 53, 125, 10, 99, 114, 118, 49, 57, 54, 61, 64, 123, 49, 44, 49, 57, 54, 125, 10, 99, 114, 118, 49, 57, 55, 61, 64, 123, 49, 44, 49, 57, 55, 125, 10, 99, 114, 118, 49, 57, 56, 61, 64, 123, 49, 44, 49, 57, 56, 125, 10, 99, 114, 118, 49, 57, 57, 61, 64, 123, 49, 44, 49, 57, 57, 125, 10, 99, 114, 118, 50, 48, 48, 61, 64, 123, 49, 44, 50, 48, 48, 125, 10, 99, 114, 118, 50, 48, 49, 61, 64, 123, 49, 44, 50, 48, 49, 125, 10, 99, 114, 118, 50, 48, 50, 61, 64, 123, 49, 44, 50, 48, 50, 125, 10, 99, 114, 118, 50, 48, 51, 61, 64, 123, 49, 44, 50, 48, 51, 125, 10, 99, 114, 118, 50, 48, 52, 61, 64, 123, 49, 44, 50, 48, 52, 125, 10, 99, 114, 118, 50, 48, 53, 61, 64, 123, 49, 44, 50, 48, 53, 125, 10, 99, 114, 118, 50, 48, 54, 61, 64, 123, 49, 44, 50, 48, 54, 125, 10, 99, 114, 118, 50, 48, 55, 61, 64, 123, 49, 44, 50, 48, 55, 125, 10, 99, 114, 118, 50, 48, 56, 61, 64, 123, 49, 44, 50, 48, 56, 125, 10, 99, 114, 118, 50, 48, 57, 61, 64, 123, 49, 44, 50, 48, 57, 125, 10, 99, 114, 118, 50, 49, 48, 61, 64, 123, 49, 44, 50, 49, 48, 125, 10, 99, 114, 118, 50, 49, 49, 61, 64, 123, 49, 44, 50, 49, 49, 125, 10, 99, 114, 118, 50, 49, 50, 61, 64, 123, 49, 44, 50, 49, 50, 125, 10, 99, 114, 118, 50, 49, 51, 61, 64, 123, 49, 44, 50, 49, 51, 125, 10, 99, 114, 118, 50, 49, 52, 61, 64, 123, 49, 44, 50, 49, 52, 125, 10, 99, 114, 118, 50, 49, 53, 61, 64, 123, 49, 44, 50, 49, 53, 125, 10, 99, 114, 118, 50, 49, 54, 61, 64, 123, 49, 44, 50, 49, 54, 125, 10, 99, 114, 118, 50, 49, 55, 61, 64, 123, 49, 44, 50, 49, 55, 125, 10, 99, 114, 118, 50, 49, 56, 61, 64, 123, 49, 44, 50, 49, 56, 125, 10, 99, 114, 118, 50, 49, 57, 61, 64, 123, 49, 44, 50, 49, 57, 125, 10, 99, 114, 118, 50, 50, 48, 61, 64, 123, 49, 44, 50, 50, 48, 125, 10, 99, 114, 118, 50, 50, 49, 61, 64, 123, 49, 44, 50, 50, 49, 125, 10, 99, 114, 118, 50, 50, 50, 61, 64, 123, 49, 44, 50, 50, 50, 125, 10, 99, 114, 118, 50, 50, 51, 61, 64, 123, 49, 44, 50, 50, 51, 125, 10, 99, 114, 118, 50, 50, 52, 61, 64, 123, 49, 44, 50, 50, 52, 125, 10, 99, 114, 118, 50, 50, 53, 61, 64, 123, 49, 44, 50, 50, 53, 125, 10, 99, 114, 118, 50, 50, 54, 61, 64, 123, 49, 44, 50, 50, 54, 125, 10, 99, 114, 118, 50, 50, 55, 61, 64, 123, 49, 44, 50, 50, 55, 125, 10, 99, 114, 118, 50, 50, 56, 61, 64, 123, 49, 44, 50, 50, 56, 125, 10, 99, 114, 118, 50, 50, 57, 61, 64, 123, 49, 44, 50, 50, 57, 125, 10, 99, 114, 118, 50, 51, 48, 61, 64, 123, 49, 44, 50, 51, 48, 125, 10, 99, 114, 118, 50, 51, 49, 61, 64, 123, 49, 44, 50, 51, 49, 125, 10, 99, 114, 118, 50, 51, 50, 61, 64, 123, 49, 44, 50, 51, 50, 125, 10, 99, 114, 118, 50, 51, 51, 61, 64, 123, 49, 44, 50, 51, 51, 125, 10, 99, 114, 118, 50, 51, 52, 61, 64, 123, 49, 44, 50, 51, 52, 125, 10, 99, 114, 118, 50, 51, 53, 61, 64, 123, 49, 44, 50, 51, 53, 125, 10, 99, 114, 118, 50, 51, 54, 61, 64, 123, 49, 44, 50, 51, 54, 125, 10, 99, 114, 118, 50, 51, 55, 61, 64, 123, 49, 44, 50, 51, 55, 125, 10, 99, 114, 118, 50, 51, 56, 61, 64, 123, 49, 44, 50, 51, 56, 125, 10, 99, 114, 118, 50, 51, 57, 61, 64, 123, 49, 44, 50, 51, 57, 125, 10, 99, 114, 118, 50, 52, 48, 61, 64, 123, 49, 44, 50, 52, 48, 125, 10, 99, 114, 118, 50, 52, 49, 61, 64, 123, 49, 44, 50, 52, 49, 125, 10, 99, 114, 118, 50, 52, 50, 61, 64, 123, 49, 44, 50, 52, 50, 125, 10, 99, 114, 118, 50, 52, 51, 61, 64, 123, 49, 44, 50, 52, 51, 125, 10, 99, 114, 118, 50, 52, 52, 61, 64, 123, 49, 44, 50, 52, 52, 125, 10, 99, 114, 118, 50, 52, 53, 61, 64, 123, 49, 44, 50, 52, 53, 125, 10, 99, 114, 118, 50, 52, 54, 61, 64, 123, 49, 44, 50, 52, 54, 125, 10, 99, 114, 118, 50, 52, 55, 61, 64, 123, 49, 44, 50, 52, 55, 125, 10, 99, 114, 118, 50, 52, 56, 61, 64, 123, 49, 44, 50, 52, 56, 125, 10, 99, 114, 118, 50, 52, 57, 61, 64, 123, 49, 44, 50, 52, 57, 125, 10, 99, 114, 118, 50, 53, 48, 61, 64, 123, 49, 44, 50, 53, 48, 125, 10, 99, 114, 118, 50, 53, 49, 61, 64, 123, 49, 44, 50, 53, 49, 125, 10, 99, 114, 118, 50, 53, 50, 61, 64, 123, 49, 44, 50, 53, 50, 125, 10, 99, 114, 118, 50, 53, 51, 61, 64, 123, 49, 44, 50, 53, 51, 125, 10, 99, 114, 118, 50, 53, 52, 61, 64, 123, 49, 44, 50, 53, 52, 125, 10, 99, 114, 118, 50, 53, 53, 61, 64, 123, 49, 44, 50, 53, 53, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 36, 99, 114, 118, 48, 44, 49, 44, 36, 99, 114, 118, 49, 44, 50, 44, 36, 99, 114, 118, 50, 44, 51, 44, 36, 99, 114, 118, 51, 44, 52, 44, 36, 99, 114, 118, 52, 44, 53, 44, 36, 99, 114, 118, 53, 44, 54, 44, 36, 99, 114, 118, 54, 44, 55, 44, 36, 99, 114, 118, 55, 44, 56, 44, 36, 99, 114, 118, 56, 44, 57, 44, 36, 99, 114, 118, 57, 44, 49, 48, 44, 36, 99, 114, 118, 49, 48, 44, 49, 49, 44, 36, 99, 114, 118, 49, 49, 44, 49, 50, 44, 36, 99, 114, 118, 49, 50, 44, 49, 51, 44, 36, 99, 114, 118, 49, 51, 44, 49, 52, 44, 36, 99, 114, 118, 49, 52, 44, 49, 53, 44, 36, 99, 114, 118, 49, 53, 44, 49, 54, 44, 36, 99, 114, 118, 49, 54, 44, 49, 55, 44, 36, 99, 114, 118, 49, 55, 44, 49, 56, 44, 36, 99, 114, 118, 49, 56, 44, 49, 57, 44, 36, 99, 114, 118, 49, 57, 44, 50, 48, 44, 36, 99, 114, 118, 50, 48, 44, 50, 49, 44, 36, 99, 114, 118, 50, 49, 44, 50, 50, 44, 36, 99, 114, 118, 50, 50, 44, 50, 51, 44, 36, 99, 114, 118, 50, 51, 44, 50, 52, 44, 36, 99, 114, 118, 50, 52, 44, 50, 53, 44, 36, 99, 114, 118, 50, 53, 44, 50, 54, 44, 36, 99, 114, 118, 50, 54, 44, 50, 55, 44, 36, 99, 114, 118, 50, 55, 44, 50, 56, 44, 36, 99, 114, 118, 50, 56, 44, 50, 57, 44, 36, 99, 114, 118, 50, 57, 44, 51, 48, 44, 36, 99, 114, 118, 51, 48, 44, 51, 49, 44, 36, 99, 114, 118, 51, 49, 44, 51, 50, 44, 36, 99, 114, 118, 51, 50, 44, 51, 51, 44, 36, 99, 114, 118, 51, 51, 44, 51, 52, 44, 36, 99, 114, 118, 51, 52, 44, 51, 53, 44, 36, 99, 114, 118, 51, 53, 44, 51, 54, 44, 36, 99, 114, 118, 51, 54, 44, 51, 55, 44, 36, 99, 114, 118, 51, 55, 44, 51, 56, 44, 36, 99, 114, 118, 51, 56, 44, 51, 57, 44, 36, 99, 114, 118, 51, 57, 44, 52, 48, 44, 36, 99, 114, 118, 52, 48, 44, 52, 49, 44, 36, 99, 114, 118, 52, 49, 44, 52, 50, 44, 36, 99, 114, 118, 52, 50, 44, 52, 51, 44, 36, 99, 114, 118, 52, 51, 44, 52, 52, 44, 36, 99, 114, 118, 52, 52, 44, 52, 53, 44, 36, 99, 114, 118, 52, 53, 44, 52, 54, 44, 36, 99, 114, 118, 52, 54, 44, 52, 55, 44, 36, 99, 114, 118, 52, 55, 44, 52, 56, 44, 36, 99, 114, 118, 52, 56, 44, 52, 57, 44, 36, 99, 114, 118, 52, 57, 44, 53, 48, 44, 36, 99, 114, 118, 53, 48, 44, 53, 49, 44, 36, 99, 114, 118, 53, 49, 44, 53, 50, 44, 36, 99, 114, 118, 53, 50, 44, 53, 51, 44, 36, 99, 114, 118, 53, 51, 44, 53, 52, 44, 36, 99, 114, 118, 53, 52, 44, 53, 53, 44, 36, 99, 114, 118, 53, 53, 44, 53, 54, 44, 36, 99, 114, 118, 53, 54, 44, 53, 55, 44, 36, 99, 114, 118, 53, 55, 44, 53, 56, 44, 36, 99, 114, 118, 53, 56, 44, 53, 57, 44, 36, 99, 114, 118, 53, 57, 44, 54, 48, 44, 36, 99, 114, 118, 54, 48, 44, 54, 49, 44, 36, 99, 114, 118, 54, 49, 44, 54, 50, 44, 36, 99, 114, 118, 54, 50, 44, 54, 51, 44, 36, 99, 114, 118, 54, 51, 44, 54, 52, 44, 36, 99, 114, 118, 54, 52, 44, 54, 53, 44, 36, 99, 114, 118, 54, 53, 44, 54, 54, 44, 36, 99, 114, 118, 54, 54, 44, 54, 55, 44, 36, 99, 114, 118, 54, 55, 44, 54, 56, 44, 36, 99, 114, 118, 54, 56, 44, 54, 57, 44, 36, 99, 114, 118, 54, 57, 44, 55, 48, 44, 36, 99, 114, 118, 55, 48, 44, 55, 49, 44, 36, 99, 114, 118, 55, 49, 44, 55, 50, 44, 36, 99, 114, 118, 55, 50, 44, 55, 51, 44, 36, 99, 114, 118, 55, 51, 44, 55, 52, 44, 36, 99, 114, 118, 55, 52, 44, 55, 53, 44, 36, 99, 114, 118, 55, 53, 44, 55, 54, 44, 36, 99, 114, 118, 55, 54, 44, 55, 55, 44, 36, 99, 114, 118, 55, 55, 44, 55, 56, 44, 36, 99, 114, 118, 55, 56, 44, 55, 57, 44, 36, 99, 114, 118, 55, 57, 44, 56, 48, 44, 36, 99, 114, 118, 56, 48, 44, 56, 49, 44, 36, 99, 114, 118, 56, 49, 44, 56, 50, 44, 36, 99, 114, 118, 56, 50, 44, 56, 51, 44, 36, 99, 114, 118, 56, 51, 44, 56, 52, 44, 36, 99, 114, 118, 56, 52, 44, 56, 53, 44, 36, 99, 114, 118, 56, 53, 44, 56, 54, 44, 36, 99, 114, 118, 56, 54, 44, 56, 55, 44, 36, 99, 114, 118, 56, 55, 44, 56, 56, 44, 36, 99, 114, 118, 56, 56, 44, 56, 57, 44, 36, 99, 114, 118, 56, 57, 44, 57, 48, 44, 36, 99, 114, 118, 57, 48, 44, 57, 49, 44, 36, 99, 114, 118, 57, 49, 44, 57, 50, 44, 36, 99, 114, 118, 57, 50, 44, 57, 51, 44, 36, 99, 114, 118, 57, 51, 44, 57, 52, 44, 36, 99, 114, 118, 57, 52, 44, 57, 53, 44, 36, 99, 114, 118, 57, 53, 44, 57, 54, 44, 36, 99, 114, 118, 57, 54, 44, 57, 55, 44, 36, 99, 114, 118, 57, 55, 44, 57, 56, 44, 36, 99, 114, 118, 57, 56, 44, 57, 57, 44, 36, 99, 114, 118, 57, 57, 44, 49, 48, 48, 44, 36, 99, 114, 118, 49, 48, 48, 44, 49, 48, 49, 44, 36, 99, 114, 118, 49, 48, 49, 44, 49, 48, 50, 44, 36, 99, 114, 118, 49, 48, 50, 44, 49, 48, 51, 44, 36, 99, 114, 118, 49, 48, 51, 44, 49, 48, 52, 44, 36, 99, 114, 118, 49, 48, 52, 44, 49, 48, 53, 44, 36, 99, 114, 118, 49, 48, 53, 44, 49, 48, 54, 44, 36, 99, 114, 118, 49, 48, 54, 44, 49, 48, 55, 44, 36, 99, 114, 118, 49, 48, 55, 44, 49, 48, 56, 44, 36, 99, 114, 118, 49, 48, 56, 44, 49, 48, 57, 44, 36, 99, 114, 118, 49, 48, 57, 44, 49, 49, 48, 44, 36, 99, 114, 118, 49, 49, 48, 44, 49, 49, 49, 44, 36, 99, 114, 118, 49, 49, 49, 44, 49, 49, 50, 44, 36, 99, 114, 118, 49, 49, 50, 44, 49, 49, 51, 44, 36, 99, 114, 118, 49, 49, 51, 44, 49, 49, 52, 44, 36, 99, 114, 118, 49, 49, 52, 44, 49, 49, 53, 44, 36, 99, 114, 118, 49, 49, 53, 44, 49, 49, 54, 44, 36, 99, 114, 118, 49, 49, 54, 44, 49, 49, 55, 44, 36, 99, 114, 118, 49, 49, 55, 44, 49, 49, 56, 44, 36, 99, 114, 118, 49, 49, 56, 44, 49, 49, 57, 44, 36, 99, 114, 118, 49, 49, 57, 44, 49, 50, 48, 44, 36, 99, 114, 118, 49, 50, 48, 44, 49, 50, 49, 44, 36, 99, 114, 118, 49, 50, 49, 44, 49, 50, 50, 44, 36, 99, 114, 118, 49, 50, 50, 44, 49, 50, 51, 44, 36, 99, 114, 118, 49, 50, 51, 44, 49, 50, 52, 44, 36, 99, 114, 118, 49, 50, 52, 44, 49, 50, 53, 44, 36, 99, 114, 118, 49, 50, 53, 44, 49, 50, 54, 44, 36, 99, 114, 118, 49, 50, 54, 44, 49, 50, 55, 44, 36, 99, 114, 118, 49, 50, 55, 44, 49, 50, 56, 44, 36, 99, 114, 118, 49, 50, 56, 44, 49, 50, 57, 44, 36, 99, 114, 118, 49, 50, 57, 44, 49, 51, 48, 44, 36, 99, 114, 118, 49, 51, 48, 44, 49, 51, 49, 44, 36, 99, 114, 118, 49, 51, 49, 44, 49, 51, 50, 44, 36, 99, 114, 118, 49, 51, 50, 44, 49, 51, 51, 44, 36, 99, 114, 118, 49, 51, 51, 44, 49, 51, 52, 44, 36, 99, 114, 118, 49, 51, 52, 44, 49, 51, 53, 44, 36, 99, 114, 118, 49, 51, 53, 44, 49, 51, 54, 44, 36, 99, 114, 118, 49, 51, 54, 44, 49, 51, 55, 44, 36, 99, 114, 118, 49, 51, 55, 44, 49, 51, 56, 44, 36, 99, 114, 118, 49, 51, 56, 44, 49, 51, 57, 44, 36, 99, 114, 118, 49, 51, 57, 44, 49, 52, 48, 44, 36, 99, 114, 118, 49, 52, 48, 44, 49, 52, 49, 44, 36, 99, 114, 118, 49, 52, 49, 44, 49, 52, 50, 44, 36, 99, 114, 118, 49, 52, 50, 44, 49, 52, 51, 44, 36, 99, 114, 118, 49, 52, 51, 44, 49, 52, 52, 44, 36, 99, 114, 118, 49, 52, 52, 44, 49, 52, 53, 44, 36, 99, 114, 118, 49, 52, 53, 44, 49, 52, 54, 44, 36, 99, 114, 118, 49, 52, 54, 44, 49, 52, 55, 44, 36, 99, 114, 118, 49, 52, 55, 44, 49, 52, 56, 44, 36, 99, 114, 118, 49, 52, 56, 44, 49, 52, 57, 44, 36, 99, 114, 118, 49, 52, 57, 44, 49, 53, 48, 44, 36, 99, 114, 118, 49, 53, 48, 44, 49, 53, 49, 44, 36, 99, 114, 118, 49, 53, 49, 44, 49, 53, 50, 44, 36, 99, 114, 118, 49, 53, 50, 44, 49, 53, 51, 44, 36, 99, 114, 118, 49, 53, 51, 44, 49, 53, 52, 44, 36, 99, 114, 118, 49, 53, 52, 44, 49, 53, 53, 44, 36, 99, 114, 118, 49, 53, 53, 44, 49, 53, 54, 44, 36, 99, 114, 118, 49, 53, 54, 44, 49, 53, 55, 44, 36, 99, 114, 118, 49, 53, 55, 44, 49, 53, 56, 44, 36, 99, 114, 118, 49, 53, 56, 44, 49, 53, 57, 44, 36, 99, 114, 118, 49, 53, 57, 44, 49, 54, 48, 44, 36, 99, 114, 118, 49, 54, 48, 44, 49, 54, 49, 44, 36, 99, 114, 118, 49, 54, 49, 44, 49, 54, 50, 44, 36, 99, 114, 118, 49, 54, 50, 44, 49, 54, 51, 44, 36, 99, 114, 118, 49, 54, 51, 44, 49, 54, 52, 44, 36, 99, 114, 118, 49, 54, 52, 44, 49, 54, 53, 44, 36, 99, 114, 118, 49, 54, 53, 44, 49, 54, 54, 44, 36, 99, 114, 118, 49, 54, 54, 44, 49, 54, 55, 44, 36, 99, 114, 118, 49, 54, 55, 44, 49, 54, 56, 44, 36, 99, 114, 118, 49, 54, 56, 44, 49, 54, 57, 44, 36, 99, 114, 118, 49, 54, 57, 44, 49, 55, 48, 44, 36, 99, 114, 118, 49, 55, 48, 44, 49, 55, 49, 44, 36, 99, 114, 118, 49, 55, 49, 44, 49, 55, 50, 44, 36, 99, 114, 118, 49, 55, 50, 44, 49, 55, 51, 44, 36, 99, 114, 118, 49, 55, 51, 44, 49, 55, 52, 44, 36, 99, 114, 118, 49, 55, 52, 44, 49, 55, 53, 44, 36, 99, 114, 118, 49, 55, 53, 44, 49, 55, 54, 44, 36, 99, 114, 118, 49, 55, 54, 44, 49, 55, 55, 44, 36, 99, 114, 118, 49, 55, 55, 44, 49, 55, 56, 44, 36, 99, 114, 118, 49, 55, 56, 44, 49, 55, 57, 44, 36, 99, 114, 118, 49, 55, 57, 44, 49, 56, 48, 44, 36, 99, 114, 118, 49, 56, 48, 44, 49, 56, 49, 44, 36, 99, 114, 118, 49, 56, 49, 44, 49, 56, 50, 44, 36, 99, 114, 118, 49, 56, 50, 44, 49, 56, 51, 44, 36, 99, 114, 118, 49, 56, 51, 44, 49, 56, 52, 44, 36, 99, 114, 118, 49, 56, 52, 44, 49, 56, 53, 44, 36, 99, 114, 118, 49, 56, 53, 44, 49, 56, 54, 44, 36, 99, 114, 118, 49, 56, 54, 44, 49, 56, 55, 44, 36, 99, 114, 118, 49, 56, 55, 44, 49, 56, 56, 44, 36, 99, 114, 118, 49, 56, 56, 44, 49, 56, 57, 44, 36, 99, 114, 118, 49, 56, 57, 44, 49, 57, 48, 44, 36, 99, 114, 118, 49, 57, 48, 44, 49, 57, 49, 44, 36, 99, 114, 118, 49, 57, 49, 44, 49, 57, 50, 44, 36, 99, 114, 118, 49, 57, 50, 44, 49, 57, 51, 44, 36, 99, 114, 118, 49, 57, 51, 44, 49, 57, 52, 44, 36, 99, 114, 118, 49, 57, 52, 44, 49, 57, 53, 44, 36, 99, 114, 118, 49, 57, 53, 44, 49, 57, 54, 44, 36, 99, 114, 118, 49, 57, 54, 44, 49, 57, 55, 44, 36, 99, 114, 118, 49, 57, 55, 44, 49, 57, 56, 44, 36, 99, 114, 118, 49, 57, 56, 44, 49, 57, 57, 44, 36, 99, 114, 118, 49, 57, 57, 44, 50, 48, 48, 44, 36, 99, 114, 118, 50, 48, 48, 44, 50, 48, 49, 44, 36, 99, 114, 118, 50, 48, 49, 44, 50, 48, 50, 44, 36, 99, 114, 118, 50, 48, 50, 44, 50, 48, 51, 44, 36, 99, 114, 118, 50, 48, 51, 44, 50, 48, 52, 44, 36, 99, 114, 118, 50, 48, 52, 44, 50, 48, 53, 44, 36, 99, 114, 118, 50, 48, 53, 44, 50, 48, 54, 44, 36, 99, 114, 118, 50, 48, 54, 44, 50, 48, 55, 44, 36, 99, 114, 118, 50, 48, 55, 44, 50, 48, 56, 44, 36, 99, 114, 118, 50, 48, 56, 44, 50, 48, 57, 44, 36, 99, 114, 118, 50, 48, 57, 44, 50, 49, 48, 44, 36, 99, 114, 118, 50, 49, 48, 44, 50, 49, 49, 44, 36, 99, 114, 118, 50, 49, 49, 44, 50, 49, 50, 44, 36, 99, 114, 118, 50, 49, 50, 44, 50, 49, 51, 44, 36, 99, 114, 118, 50, 49, 51, 44, 50, 49, 52, 44, 36, 99, 114, 118, 50, 49, 52, 44, 50, 49, 53, 44, 36, 99, 114, 118, 50, 49, 53, 44, 50, 49, 54, 44, 36, 99, 114, 118, 50, 49, 54, 44, 50, 49, 55, 44, 36, 99, 114, 118, 50, 49, 55, 44, 50, 49, 56, 44, 36, 99, 114, 118, 50, 49, 56, 44, 50, 49, 57, 44, 36, 99, 114, 118, 50, 49, 57, 44, 50, 50, 48, 44, 36, 99, 114, 118, 50, 50, 48, 44, 50, 50, 49, 44, 36, 99, 114, 118, 50, 50, 49, 44, 50, 50, 50, 44, 36, 99, 114, 118, 50, 50, 50, 44, 50, 50, 51, 44, 36, 99, 114, 118, 50, 50, 51, 44, 50, 50, 52, 44, 36, 99, 114, 118, 50, 50, 52, 44, 50, 50, 53, 44, 36, 99, 114, 118, 50, 50, 53, 44, 50, 50, 54, 44, 36, 99, 114, 118, 50, 50, 54, 44, 50, 50, 55, 44, 36, 99, 114, 118, 50, 50, 55, 44, 50, 50, 56, 44, 36, 99, 114, 118, 50, 50, 56, 44, 50, 50, 57, 44, 36, 99, 114, 118, 50, 50, 57, 44, 50, 51, 48, 44, 36, 99, 114, 118, 50, 51, 48, 44, 50, 51, 49, 44, 36, 99, 114, 118, 50, 51, 49, 44, 50, 51, 50, 44, 36, 99, 114, 118, 50, 51, 50, 44, 50, 51, 51, 44, 36, 99, 114, 118, 50, 51, 51, 44, 50, 51, 52, 44, 36, 99, 114, 118, 50, 51, 52, 44, 50, 51, 53, 44, 36, 99, 114, 118, 50, 51, 53, 44, 50, 51, 54, 44, 36, 99, 114, 118, 50, 51, 54, 44, 50, 51, 55, 44, 36, 99, 114, 118, 50, 51, 55, 44, 50, 51, 56, 44, 36, 99, 114, 118, 50, 51, 56, 44, 50, 51, 57, 44, 36, 99, 114, 118, 50, 51, 57, 44, 50, 52, 48, 44, 36, 99, 114, 118, 50, 52, 48, 44, 50, 52, 49, 44, 36, 99, 114, 118, 50, 52, 49, 44, 50, 52, 50, 44, 36, 99, 114, 118, 50, 52, 50, 44, 50, 52, 51, 44, 36, 99, 114, 118, 50, 52, 51, 44, 50, 52, 52, 44, 36, 99, 114, 118, 50, 52, 52, 44, 50, 52, 53, 44, 36, 99, 114, 118, 50, 52, 53, 44, 50, 52, 54, 44, 36, 99, 114, 118, 50, 52, 54, 44, 50, 52, 55, 44, 36, 99, 114, 118, 50, 52, 55, 44, 50, 52, 56, 44, 36, 99, 114, 118, 50, 52, 56, 44, 50, 52, 57, 44, 36, 99, 114, 118, 50, 52, 57, 44, 50, 53, 48, 44, 36, 99, 114, 118, 50, 53, 48, 44, 50, 53, 49, 44, 36, 99, 114, 118, 50, 53, 49, 44, 50, 53, 50, 44, 36, 99, 114, 118, 50, 53, 50, 44, 50, 53, 51, 44, 36, 99, 114, 118, 50, 53, 51, 44, 50, 53, 52, 44, 36, 99, 114, 118, 50, 53, 52, 44, 50, 53, 53, 44, 36, 99, 114, 118, 50, 53, 53, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 70, 70, 84, 95, 116, 105, 108, 101, 58, 32, 102, 102, 116, 95, 116, 105, 108, 101, 44, 102, 102, 116, 95, 116, 105, 108, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 48, 44, 48, 44, 53, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 32, 40, 49, 50, 56, 44, 49, 54, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 48, 49, 50, 47, 48, 56, 47, 48, 56, 34, 41, 10, 102, 102, 116, 95, 116, 105, 108, 101, 95, 102, 102, 116, 58, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 49, 93, 32, 36, 49, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 58, 10, 116, 99, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 50, 41, 125, 32, 116, 114, 61, 123, 114, 111, 117, 110, 100, 40, 104, 47, 36, 50, 41, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 102, 102, 116, 91, 48, 45, 45, 49, 93, 32, 36, 49, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 102, 102, 116, 95, 116, 105, 108, 101, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 50, 45, 49, 125, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 112, 117, 115, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 49, 46, 53, 41, 125, 10, 112, 117, 108, 108, 61, 123, 36, 50, 45, 36, 112, 117, 115, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 112, 117, 115, 104, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 112, 117, 108, 108, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 112, 117, 115, 104, 125, 44, 123, 36, 50, 125, 44, 123, 119, 45, 36, 112, 117, 108, 108, 45, 49, 125, 44, 123, 104, 45, 40, 36, 50, 41, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 115, 104, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 108, 108, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 123, 36, 112, 117, 115, 104, 125, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 112, 117, 108, 108, 45, 49, 125, 10, 100, 105, 97, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 51, 41, 125, 10, 100, 105, 97, 50, 61, 123, 36, 50, 45, 36, 100, 105, 97, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 49, 125, 44, 123, 36, 100, 105, 97, 49, 125, 44, 123, 119, 45, 36, 100, 105, 97, 50, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 50, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 50, 125, 44, 123, 36, 100, 105, 97, 50, 125, 44, 123, 119, 45, 36, 100, 105, 97, 49, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 49, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 10, 45, 101, 110, 100, 105, 102, 10, 102, 102, 116, 95, 116, 105, 108, 101, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 70, 105, 108, 108, 32, 72, 111, 108, 101, 115, 58, 32, 102, 105, 108, 108, 95, 104, 111, 108, 101, 115, 44, 102, 105, 108, 108, 95, 104, 111, 108, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 114, 112, 104, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 32, 40, 49, 49, 44, 51, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 114, 97, 100, 105, 117, 115, 61, 32, 105, 110, 116, 32, 40, 50, 49, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 108, 111, 115, 101, 32, 114, 97, 100, 105, 117, 115, 61, 32, 105, 110, 116, 32, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 108, 32, 76, 105, 103, 104, 116, 32, 99, 111, 108, 111, 117, 114, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 101, 116, 32, 77, 111, 114, 112, 104, 32, 114, 97, 100, 105, 117, 115, 32, 116, 111, 32, 99, 108, 111, 115, 101, 32, 104, 111, 108, 101, 115, 44, 32, 115, 101, 116, 32, 69, 100, 103, 101, 32, 114, 97, 100, 105, 117, 115, 32, 116, 111, 32, 114, 101, 115, 116, 111, 114, 101, 32, 101, 100, 103, 101, 115, 44, 32, 115, 101, 116, 32, 67, 108, 111, 115, 101, 32, 114, 97, 100, 105, 117, 115, 32, 116, 111, 32, 102, 105, 108, 108, 32, 115, 109, 97, 108, 108, 32, 104, 111, 108, 101, 115, 32, 110, 101, 97, 114, 32, 116, 104, 101, 32, 101, 100, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 56, 32, 65, 117, 103, 117, 115, 116, 32, 50, 48, 49, 50, 32, 45, 32, 97, 100, 100, 101, 100, 32, 39, 102, 97, 115, 116, 39, 32, 111, 112, 116, 105, 111, 110, 34, 41, 10, 102, 105, 108, 108, 95, 104, 111, 108, 101, 115, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 48, 125, 10, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 9, 9, 45, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 9, 36, 50, 10, 9, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 51, 10, 9, 9, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 9, 36, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 10, 9, 9, 45, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 9, 36, 50, 10, 9, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 51, 10, 9, 9, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 9, 36, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 10, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 10, 9, 9, 45, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 9, 36, 50, 10, 9, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 10, 9, 9, 45, 101, 114, 111, 100, 101, 91, 45, 49, 93, 32, 36, 51, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 9, 36, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 10, 9, 9, 45, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 9, 36, 50, 10, 9, 9, 45, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 10, 9, 9, 45, 101, 114, 111, 100, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 51, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 9, 36, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 34, 44, 36, 52, 10, 102, 105, 108, 108, 95, 104, 111, 108, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 102, 105, 108, 108, 95, 104, 111, 108, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 35, 64, 103, 105, 109, 112, 32, 72, 97, 108, 102, 116, 111, 110, 101, 32, 83, 104, 97, 112, 101, 115, 58, 32, 105, 97, 105, 110, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 115, 104, 97, 112, 101, 115, 44, 32, 105, 97, 105, 110, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 115, 104, 97, 112, 101, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 49, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 61, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 105, 114, 99, 108, 101, 34, 44, 34, 83, 116, 97, 114, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 34, 44, 34, 72, 101, 97, 114, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 111, 118, 101, 114, 115, 97, 109, 112, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 111, 116, 97, 116, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 119, 105, 114, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 118, 101, 114, 115, 97, 109, 112, 108, 101, 32, 103, 105, 118, 101, 115, 32, 115, 109, 111, 111, 116, 104, 101, 114, 32, 114, 101, 115, 117, 108, 116, 115, 32, 98, 117, 116, 32, 116, 97, 107, 101, 115, 32, 109, 117, 99, 104, 32, 108, 111, 110, 103, 101, 114, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 119, 105, 114, 108, 32, 100, 105, 115, 116, 111, 114, 116, 115, 32, 116, 104, 101, 32, 104, 97, 102, 108, 116, 111, 110, 101, 32, 103, 114, 105, 100, 46, 32, 84, 104, 101, 32, 112, 114, 101, 118, 105, 101, 119, 32, 105, 115, 32, 110, 111, 116, 32, 97, 99, 99, 117, 114, 97, 116, 101, 46, 32, 70, 111, 114, 32, 98, 101, 115, 116, 32, 114, 101, 115, 117, 108, 116, 115, 32, 117, 115, 101, 32, 119, 105, 116, 104, 32, 111, 118, 101, 114, 115, 97, 109, 112, 108, 101, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 105, 97, 105, 110, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 115, 104, 97, 112, 101, 115, 58, 10, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 115, 99, 97, 108, 101, 61, 36, 49, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 32, 52, 48, 48, 37, 44, 52, 48, 48, 37, 44, 49, 44, 49, 44, 51, 10, 115, 99, 97, 108, 101, 61, 123, 36, 115, 99, 97, 108, 101, 42, 52, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 115, 120, 49, 61, 51, 53, 51, 10, 115, 120, 50, 61, 53, 49, 53, 10, 115, 120, 51, 61, 54, 55, 55, 10, 115, 120, 52, 61, 49, 48, 48, 48, 10, 115, 120, 53, 61, 49, 51, 50, 51, 10, 115, 120, 54, 61, 49, 52, 56, 53, 10, 115, 120, 55, 61, 49, 54, 52, 55, 10, 115, 120, 56, 61, 49, 52, 56, 53, 10, 115, 120, 57, 61, 49, 51, 50, 51, 10, 115, 120, 49, 48, 61, 49, 48, 48, 48, 10, 115, 120, 49, 49, 61, 54, 55, 55, 10, 115, 120, 49, 50, 61, 53, 49, 53, 10, 115, 121, 49, 61, 49, 48, 48, 48, 10, 115, 121, 50, 61, 49, 50, 56, 48, 10, 115, 121, 51, 61, 49, 53, 54, 48, 10, 115, 121, 52, 61, 49, 53, 54, 48, 10, 115, 121, 53, 61, 49, 53, 54, 48, 10, 115, 121, 54, 61, 49, 50, 56, 48, 10, 115, 121, 55, 61, 49, 48, 48, 48, 10, 115, 121, 56, 61, 55, 50, 48, 10, 115, 121, 57, 61, 52, 52, 48, 10, 115, 121, 49, 48, 61, 52, 52, 48, 10, 115, 121, 49, 49, 61, 52, 52, 48, 10, 115, 121, 49, 50, 61, 55, 50, 48, 10, 108, 101, 118, 101, 108, 61, 49, 57, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 50, 48, 48, 48, 44, 50, 48, 48, 48, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 57, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 49, 50, 44, 36, 115, 120, 49, 44, 36, 115, 121, 49, 44, 36, 115, 120, 50, 44, 36, 115, 121, 50, 44, 36, 115, 120, 51, 44, 36, 115, 121, 51, 44, 36, 115, 120, 52, 44, 36, 115, 121, 52, 44, 36, 115, 120, 53, 44, 36, 115, 121, 53, 44, 36, 115, 120, 54, 44, 36, 115, 121, 54, 44, 36, 115, 120, 55, 44, 36, 115, 121, 55, 44, 36, 115, 120, 56, 44, 36, 115, 121, 56, 44, 36, 115, 120, 57, 44, 36, 115, 121, 57, 44, 36, 115, 120, 49, 48, 44, 36, 115, 121, 49, 48, 44, 36, 115, 120, 49, 49, 44, 36, 115, 121, 49, 49, 44, 36, 115, 120, 49, 50, 44, 36, 115, 121, 49, 50, 44, 49, 44, 36, 108, 101, 118, 101, 108, 10, 115, 121, 51, 61, 123, 36, 115, 121, 51, 45, 40, 55, 56, 47, 49, 54, 41, 125, 10, 115, 121, 53, 61, 123, 36, 115, 121, 53, 45, 40, 55, 56, 47, 49, 54, 41, 125, 10, 115, 121, 57, 61, 123, 36, 115, 121, 57, 43, 40, 55, 56, 47, 49, 54, 41, 125, 10, 115, 121, 49, 49, 61, 123, 36, 115, 121, 49, 49, 43, 40, 55, 56, 47, 49, 54, 41, 125, 10, 115, 120, 49, 61, 123, 36, 115, 120, 49, 43, 40, 57, 48, 47, 49, 54, 41, 125, 10, 115, 120, 51, 61, 123, 36, 115, 120, 51, 43, 40, 52, 53, 47, 49, 54, 41, 125, 10, 115, 120, 53, 61, 123, 36, 115, 120, 53, 45, 40, 52, 53, 47, 49, 54, 41, 125, 10, 115, 120, 55, 61, 123, 36, 115, 120, 55, 45, 40, 57, 48, 47, 49, 54, 41, 125, 10, 115, 120, 57, 61, 123, 36, 115, 120, 57, 45, 40, 52, 53, 47, 49, 54, 41, 125, 10, 115, 120, 49, 49, 61, 123, 36, 115, 120, 49, 49, 43, 40, 52, 53, 47, 49, 54, 41, 125, 10, 108, 101, 118, 101, 108, 61, 123, 36, 108, 101, 118, 101, 108, 43, 49, 48, 125, 10, 45, 100, 111, 110, 101, 10, 114, 97, 100, 105, 117, 115, 61, 123, 53, 54, 48, 125, 10, 108, 101, 118, 101, 108, 61, 50, 48, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 53, 55, 10, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 36, 108, 101, 118, 101, 108, 10, 114, 97, 100, 105, 117, 115, 61, 123, 36, 114, 97, 100, 105, 117, 115, 45, 49, 48, 125, 10, 108, 101, 118, 101, 108, 61, 123, 36, 108, 101, 118, 101, 108, 43, 49, 48, 125, 10, 45, 100, 111, 110, 101, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 57, 55, 50, 44, 53, 54, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 57, 55, 50, 44, 45, 53, 54, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 57, 55, 50, 44, 53, 54, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 57, 55, 50, 44, 45, 53, 54, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 50, 57, 44, 52, 52, 48, 44, 49, 57, 55, 50, 44, 49, 53, 54, 48, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 49, 57, 52, 44, 49, 49, 50, 44, 49, 44, 49, 44, 50, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 49, 93, 32, 54, 53, 53, 53, 53, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 36, 115, 99, 97, 108, 101, 37, 44, 36, 115, 99, 97, 108, 101, 37, 44, 49, 44, 49, 44, 51, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 10, 9, 10, 9, 115, 120, 49, 61, 53, 48, 10, 115, 120, 50, 61, 49, 57, 52, 10, 115, 120, 51, 61, 50, 56, 49, 10, 115, 120, 52, 61, 53, 49, 49, 10, 115, 120, 53, 61, 55, 52, 50, 10, 115, 120, 54, 61, 56, 50, 57, 10, 115, 120, 55, 61, 57, 55, 50, 10, 115, 120, 56, 61, 56, 50, 57, 10, 115, 120, 57, 61, 55, 52, 50, 10, 115, 120, 49, 48, 61, 53, 49, 49, 10, 115, 120, 49, 49, 61, 50, 56, 49, 10, 115, 120, 49, 50, 61, 49, 57, 50, 10, 115, 121, 49, 61, 52, 53, 48, 10, 115, 121, 50, 61, 54, 51, 51, 10, 115, 121, 51, 61, 56, 52, 57, 10, 115, 121, 52, 61, 56, 49, 55, 10, 115, 121, 53, 61, 56, 52, 57, 10, 115, 121, 54, 61, 54, 51, 51, 10, 115, 121, 55, 61, 52, 53, 48, 10, 115, 121, 56, 61, 50, 54, 55, 10, 115, 121, 57, 61, 53, 48, 10, 115, 121, 49, 48, 61, 56, 51, 10, 115, 121, 49, 49, 61, 53, 48, 10, 115, 121, 49, 50, 61, 50, 54, 55, 10, 108, 101, 118, 101, 108, 61, 49, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 50, 48, 48, 48, 44, 50, 48, 48, 48, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 49, 50, 56, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 49, 50, 44, 36, 115, 120, 49, 44, 36, 115, 121, 49, 44, 36, 115, 120, 50, 44, 36, 115, 121, 50, 44, 36, 115, 120, 51, 44, 36, 115, 121, 51, 44, 36, 115, 120, 52, 44, 36, 115, 121, 52, 44, 36, 115, 120, 53, 44, 36, 115, 121, 53, 44, 36, 115, 120, 54, 44, 36, 115, 121, 54, 44, 36, 115, 120, 55, 44, 36, 115, 121, 55, 44, 36, 115, 120, 56, 44, 36, 115, 121, 56, 44, 36, 115, 120, 57, 44, 36, 115, 121, 57, 44, 36, 115, 120, 49, 48, 44, 36, 115, 121, 49, 48, 44, 36, 115, 120, 49, 49, 44, 36, 115, 121, 49, 49, 44, 36, 115, 120, 49, 50, 44, 36, 115, 121, 49, 50, 44, 49, 44, 36, 108, 101, 118, 101, 108, 10, 115, 120, 50, 61, 123, 36, 115, 120, 50, 43, 40, 52, 48, 47, 49, 54, 41, 125, 10, 115, 120, 54, 61, 123, 36, 115, 120, 54, 45, 40, 52, 48, 47, 49, 54, 41, 125, 10, 115, 120, 56, 61, 123, 36, 115, 120, 56, 45, 40, 52, 48, 47, 49, 54, 41, 125, 10, 115, 120, 49, 50, 61, 123, 36, 115, 120, 49, 50, 43, 40, 52, 48, 47, 49, 54, 41, 125, 10, 115, 121, 50, 61, 123, 36, 115, 121, 50, 45, 40, 50, 51, 47, 49, 54, 41, 125, 10, 115, 121, 52, 61, 123, 36, 115, 121, 52, 45, 40, 52, 55, 47, 49, 54, 41, 125, 10, 115, 121, 54, 61, 123, 36, 115, 121, 54, 45, 40, 50, 51, 47, 49, 54, 41, 125, 10, 115, 121, 56, 61, 123, 36, 115, 121, 56, 43, 40, 50, 51, 47, 49, 54, 41, 125, 10, 115, 121, 49, 48, 61, 123, 36, 115, 121, 49, 48, 43, 40, 52, 55, 47, 49, 54, 41, 125, 10, 115, 121, 49, 50, 61, 123, 36, 115, 121, 49, 50, 43, 40, 50, 51, 47, 49, 54, 41, 125, 10, 108, 101, 118, 101, 108, 61, 123, 36, 108, 101, 118, 101, 108, 43, 49, 50, 125, 10, 45, 100, 111, 110, 101, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 44, 50, 48, 48, 44, 49, 44, 49, 44, 51, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 54, 57, 44, 45, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 54, 57, 44, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 54, 57, 44, 45, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 54, 57, 44, 52, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 53, 44, 53, 44, 49, 52, 50, 44, 56, 52, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 49, 57, 52, 44, 49, 49, 50, 44, 49, 44, 49, 44, 50, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 49, 93, 32, 54, 53, 53, 53, 53, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 36, 115, 99, 97, 108, 101, 37, 44, 36, 115, 99, 97, 108, 101, 37, 44, 49, 44, 49, 44, 51, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 9, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 10, 115, 120, 49, 61, 49, 54, 49, 10, 115, 120, 50, 61, 49, 48, 48, 48, 10, 115, 120, 51, 61, 49, 56, 51, 57, 10, 115, 121, 49, 61, 50, 55, 51, 10, 115, 121, 50, 61, 49, 55, 50, 55, 10, 115, 121, 51, 61, 50, 55, 51, 10, 108, 101, 118, 101, 108, 61, 49, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 50, 48, 48, 48, 44, 50, 48, 48, 48, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 51, 55, 53, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 115, 120, 49, 44, 36, 115, 121, 49, 44, 36, 115, 120, 50, 44, 36, 115, 121, 50, 44, 36, 115, 120, 51, 44, 36, 115, 121, 51, 44, 49, 44, 36, 108, 101, 118, 101, 108, 10, 115, 120, 49, 61, 123, 36, 115, 120, 49, 43, 50, 46, 50, 49, 125, 10, 115, 120, 51, 61, 123, 36, 115, 120, 51, 45, 50, 46, 50, 49, 125, 10, 115, 121, 49, 61, 123, 36, 115, 121, 49, 43, 49, 46, 50, 56, 125, 10, 115, 121, 50, 61, 123, 36, 115, 121, 50, 45, 50, 46, 53, 54, 125, 10, 115, 121, 51, 61, 123, 36, 115, 121, 51, 43, 49, 46, 50, 56, 125, 10, 108, 101, 118, 101, 108, 61, 123, 36, 108, 101, 118, 101, 108, 43, 49, 125, 10, 45, 100, 111, 110, 101, 10, 45, 45, 114, 111, 116, 97, 116, 101, 91, 48, 93, 32, 49, 56, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 123, 56, 52, 48, 43, 50, 125, 10, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 56, 52, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 49, 54, 48, 44, 123, 50, 49, 54, 43, 53, 54, 125, 44, 49, 56, 52, 50, 44, 49, 55, 50, 55, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 49, 93, 32, 50, 53, 54, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 49, 54, 56, 44, 49, 52, 53, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 36, 115, 99, 97, 108, 101, 37, 44, 36, 115, 99, 97, 108, 101, 37, 44, 49, 44, 49, 44, 51, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 45, 108, 10, 49, 57, 48, 44, 49, 57, 48, 44, 49, 44, 49, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 44, 53, 48, 44, 53, 48, 44, 49, 44, 49, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 49, 52, 48, 44, 53, 48, 44, 53, 48, 44, 49, 44, 49, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 53, 44, 49, 48, 44, 56, 48, 44, 53, 48, 44, 53, 48, 44, 49, 52, 48, 44, 53, 48, 44, 49, 56, 48, 44, 56, 48, 44, 57, 53, 44, 49, 57, 48, 44, 49, 44, 49, 48, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 43, 50, 125, 44, 64, 123, 48, 44, 104, 43, 50, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 57, 53, 37, 44, 57, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 56, 53, 37, 44, 56, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 55, 53, 37, 44, 55, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 54, 53, 37, 44, 54, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 53, 37, 44, 53, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 52, 53, 37, 44, 52, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 52, 48, 37, 44, 52, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 51, 53, 37, 44, 51, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 51, 48, 37, 44, 51, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 48, 37, 44, 50, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 53, 37, 44, 49, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 37, 44, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 97, 100, 100, 10, 45, 101, 110, 100, 108, 10, 91, 48, 93, 10, 45, 97, 112, 112, 101, 110, 100, 32, 121, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 54, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 54, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 51, 48, 44, 49, 57, 48, 44, 51, 53, 48, 44, 49, 48, 48, 37, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 115, 99, 97, 108, 101, 44, 36, 115, 99, 97, 108, 101, 44, 49, 44, 49, 44, 50, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 119, 105, 100, 116, 104, 61, 64, 123, 45, 49, 44, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 104, 125, 10, 119, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 119, 125, 47, 36, 119, 105, 100, 116, 104, 41, 125, 10, 104, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 36, 104, 101, 105, 103, 104, 116, 41, 125, 10, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 61, 36, 104, 95, 116, 105, 108, 101, 115, 42, 36, 119, 95, 116, 105, 108, 101, 115, 10, 91, 45, 49, 93, 120, 123, 36, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 45, 49, 125, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 49, 45, 45, 49, 93, 32, 36, 119, 95, 116, 105, 108, 101, 115, 44, 36, 104, 95, 116, 105, 108, 101, 115, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 53, 44, 49, 44, 50, 44, 53, 48, 37, 44, 53, 48, 37, 44, 49, 10, 45, 116, 119, 105, 114, 108, 91, 45, 49, 93, 32, 36, 54, 44, 46, 53, 44, 46, 53, 44, 50, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 48, 46, 53, 44, 49, 10, 45, 103, 116, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 104, 101, 97, 114, 116, 116, 111, 110, 101, 58, 32, 105, 97, 105, 110, 95, 104, 101, 97, 114, 116, 116, 111, 110, 101, 44, 32, 105, 97, 105, 110, 95, 104, 101, 97, 114, 116, 116, 111, 110, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 49, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 101, 110, 104, 97, 110, 99, 101, 32, 100, 101, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 105, 97, 105, 110, 95, 104, 101, 97, 114, 116, 116, 111, 110, 101, 58, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 10, 45, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 91, 48, 93, 32, 36, 50, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 115, 117, 98, 91, 49, 93, 32, 91, 48, 93, 10, 45, 109, 117, 108, 91, 49, 93, 32, 45, 49, 10, 45, 97, 100, 100, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 45, 108, 10, 49, 57, 48, 44, 49, 57, 48, 44, 49, 44, 49, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 44, 53, 48, 44, 53, 48, 44, 49, 44, 49, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 49, 52, 48, 44, 53, 48, 44, 53, 48, 44, 49, 44, 49, 48, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 53, 44, 49, 48, 44, 56, 48, 44, 53, 48, 44, 53, 48, 44, 49, 52, 48, 44, 53, 48, 44, 49, 56, 48, 44, 56, 48, 44, 57, 53, 44, 49, 57, 48, 44, 49, 44, 49, 48, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 43, 50, 125, 44, 64, 123, 48, 44, 104, 43, 50, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 57, 53, 37, 44, 57, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 57, 48, 37, 44, 57, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 56, 53, 37, 44, 56, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 55, 53, 37, 44, 55, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 54, 53, 37, 44, 54, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 53, 37, 44, 53, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 52, 53, 37, 44, 52, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 52, 48, 37, 44, 52, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 51, 53, 37, 44, 51, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 51, 48, 37, 44, 51, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 48, 37, 44, 50, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 53, 37, 44, 49, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 48, 37, 44, 49, 48, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 37, 44, 53, 37, 44, 49, 44, 49, 44, 50, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 97, 100, 100, 10, 45, 101, 110, 100, 108, 10, 91, 48, 93, 10, 45, 97, 112, 112, 101, 110, 100, 32, 121, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 54, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 54, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 51, 48, 44, 49, 57, 48, 44, 51, 53, 48, 44, 49, 48, 48, 37, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 50, 10, 119, 105, 100, 116, 104, 61, 64, 123, 45, 49, 44, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 104, 125, 10, 119, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 119, 125, 47, 36, 119, 105, 100, 116, 104, 41, 125, 10, 104, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 36, 104, 101, 105, 103, 104, 116, 41, 125, 10, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 61, 36, 104, 95, 116, 105, 108, 101, 115, 42, 36, 119, 95, 116, 105, 108, 101, 115, 10, 91, 45, 49, 93, 120, 123, 36, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 45, 49, 125, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 49, 45, 45, 49, 93, 32, 36, 119, 95, 116, 105, 108, 101, 115, 44, 36, 104, 95, 116, 105, 108, 101, 115, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 48, 46, 53, 44, 49, 10, 45, 103, 116, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 32, 105, 97, 105, 110, 95, 50, 120, 58, 32, 105, 97, 105, 110, 95, 50, 120, 44, 32, 105, 97, 105, 110, 95, 50, 120, 40, 48, 41, 10, 105, 97, 105, 110, 95, 50, 120, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 48, 48, 37, 44, 50, 48, 48, 37, 44, 49, 44, 51, 44, 52, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 49, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 49, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 44, 48, 44, 48, 46, 53, 59, 48, 44, 45, 49, 44, 48, 59, 48, 46, 53, 44, 48, 44, 48, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 97, 98, 115, 10, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 49, 93, 10, 40, 48, 46, 53, 44, 48, 44, 48, 59, 48, 44, 45, 49, 44, 48, 59, 48, 44, 48, 44, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 97, 98, 115, 10, 45, 101, 110, 100, 108, 10, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 44, 45, 50, 93, 32, 51, 10, 45, 115, 117, 98, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 108, 91, 45, 49, 93, 10, 45, 45, 108, 116, 91, 48, 93, 32, 48, 10, 45, 45, 103, 116, 91, 48, 93, 32, 48, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 48, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 97, 100, 100, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 97, 100, 100, 91, 48, 93, 32, 49, 10, 45, 109, 117, 108, 91, 48, 93, 32, 49, 50, 55, 46, 53, 10, 45, 101, 110, 100, 108, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 93, 32, 99, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 48, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 46, 53, 44, 49, 44, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 46, 53, 59, 49, 59, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 45, 108, 91, 48, 93, 10, 40, 48, 46, 53, 44, 45, 49, 44, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 97, 98, 115, 10, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 49, 93, 10, 40, 48, 46, 53, 59, 45, 49, 59, 48, 46, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 97, 98, 115, 10, 45, 101, 110, 100, 108, 10, 45, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 93, 32, 51, 10, 45, 115, 117, 98, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 108, 91, 45, 49, 93, 10, 45, 45, 108, 116, 91, 48, 93, 32, 48, 10, 45, 45, 103, 116, 91, 48, 93, 32, 48, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 48, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 97, 100, 100, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 97, 100, 100, 91, 48, 93, 32, 49, 10, 45, 109, 117, 108, 91, 48, 93, 32, 49, 50, 55, 46, 53, 10, 45, 101, 110, 100, 108, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 93, 32, 99, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 48, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 58, 32, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 44, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 122, 111, 111, 109, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 122, 111, 111, 109, 32, 99, 101, 110, 116, 101, 114, 32, 72, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 122, 111, 111, 109, 32, 99, 101, 110, 116, 101, 114, 32, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 114, 101, 108, 101, 97, 115, 101, 100, 32, 49, 57, 32, 70, 101, 98, 32, 50, 48, 49, 51, 34, 41, 10, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 58, 10, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 49, 10, 115, 104, 97, 114, 112, 110, 101, 115, 115, 61, 46, 51, 10, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 49, 10, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 46, 54, 10, 116, 101, 110, 115, 111, 114, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 49, 10, 115, 112, 97, 116, 105, 97, 108, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 48, 46, 56, 10, 97, 110, 103, 117, 108, 97, 114, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 51, 48, 10, 118, 97, 108, 117, 101, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 61, 50, 10, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 61, 48, 10, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 61, 49, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 115, 104, 97, 114, 112, 110, 101, 115, 115, 44, 36, 97, 110, 105, 115, 111, 116, 114, 111, 112, 121, 44, 36, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 116, 101, 110, 115, 111, 114, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 115, 112, 97, 116, 105, 97, 108, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 44, 36, 97, 110, 103, 117, 108, 97, 114, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 44, 36, 118, 97, 108, 117, 101, 95, 112, 114, 101, 99, 105, 115, 105, 111, 110, 44, 36, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 36, 102, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 10, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 91, 45, 49, 93, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 50, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 45, 49, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 93, 32, 99, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 48, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 97, 105, 110, 95, 117, 110, 105, 110, 100, 101, 120, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 10, 116, 111, 112, 108, 101, 102, 116, 120, 61, 123, 36, 52, 45, 50, 53, 125, 10, 116, 111, 112, 108, 101, 102, 116, 121, 61, 123, 36, 53, 45, 50, 53, 125, 10, 98, 111, 116, 108, 101, 102, 116, 120, 61, 123, 36, 52, 43, 50, 53, 125, 10, 98, 111, 116, 108, 101, 102, 116, 121, 61, 123, 36, 53, 43, 50, 53, 125, 10, 45, 99, 114, 111, 112, 32, 36, 116, 111, 112, 108, 101, 102, 116, 120, 37, 44, 36, 116, 111, 112, 108, 101, 102, 116, 121, 37, 44, 36, 98, 111, 116, 108, 101, 102, 116, 120, 37, 44, 36, 98, 111, 116, 108, 101, 102, 116, 121, 37, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 73, 97, 105, 110, 32, 68, 101, 109, 111, 115, 105, 97, 99, 58, 32, 105, 97, 105, 110, 95, 100, 101, 109, 111, 115, 105, 97, 99, 44, 32, 105, 97, 105, 110, 95, 100, 101, 109, 111, 115, 105, 97, 99, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 112, 97, 116, 116, 101, 114, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 82, 101, 100, 45, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 45, 71, 114, 101, 101, 110, 34, 44, 34, 71, 114, 101, 101, 110, 45, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 45, 66, 108, 117, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 114, 101, 108, 101, 97, 115, 101, 100, 32, 54, 32, 74, 117, 110, 101, 32, 50, 48, 49, 51, 34, 41, 10, 105, 97, 105, 110, 95, 100, 101, 109, 111, 115, 105, 97, 99, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 97, 100, 100, 32, 49, 48, 48, 48, 10, 45, 114, 103, 98, 50, 98, 97, 121, 101, 114, 32, 36, 49, 44, 49, 10, 45, 114, 101, 112, 108, 97, 99, 101, 32, 48, 44, 48, 46, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 10, 45, 45, 108, 91, 48, 93, 10, 9, 45, 114, 101, 112, 108, 97, 99, 101, 32, 48, 44, 48, 46, 48, 48, 48, 48, 48, 48, 48, 48, 49, 10, 9, 45, 45, 108, 91, 48, 93, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 9, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 9, 9, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 9, 9, 45, 110, 97, 109, 101, 91, 48, 93, 32, 114, 101, 100, 10, 9, 9, 45, 110, 97, 109, 101, 91, 49, 93, 32, 103, 114, 101, 101, 110, 10, 9, 9, 45, 110, 97, 109, 101, 91, 50, 93, 32, 98, 108, 117, 101, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 51, 93, 32, 114, 101, 100, 98, 108, 117, 114, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 103, 114, 101, 101, 110, 98, 108, 117, 114, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 98, 108, 117, 114, 10, 9, 9, 40, 48, 46, 50, 53, 44, 46, 53, 44, 48, 46, 53, 44, 46, 53, 44, 48, 46, 50, 53, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 40, 49, 59, 49, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 40, 48, 46, 53, 44, 49, 44, 48, 46, 53, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 45, 45, 100, 105, 118, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 114, 101, 100, 98, 108, 117, 114, 93, 10, 9, 9, 45, 45, 100, 105, 118, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 109, 117, 108, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 114, 101, 100, 109, 117, 108, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 44, 103, 114, 101, 101, 110, 98, 108, 117, 114, 44, 98, 108, 117, 101, 98, 108, 117, 114, 93, 10, 9, 9, 45, 109, 117, 108, 91, 114, 101, 100, 93, 32, 91, 114, 101, 100, 109, 117, 108, 93, 10, 9, 9, 45, 109, 117, 108, 91, 98, 108, 117, 101, 93, 32, 91, 98, 108, 117, 101, 109, 117, 108, 93, 10, 9, 9, 45, 107, 101, 101, 112, 91, 114, 101, 100, 44, 103, 114, 101, 101, 110, 44, 98, 108, 117, 101, 93, 10, 9, 9, 45, 97, 100, 100, 10, 9, 9, 45, 99, 32, 45, 49, 48, 48, 48, 48, 48, 48, 48, 48, 44, 49, 48, 48, 48, 48, 48, 48, 48, 48, 10, 9, 45, 101, 110, 100, 108, 10, 9, 45, 108, 91, 48, 93, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 9, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 9, 9, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 9, 9, 45, 110, 97, 109, 101, 91, 48, 93, 32, 114, 101, 100, 10, 9, 9, 45, 110, 97, 109, 101, 91, 49, 93, 32, 103, 114, 101, 101, 110, 10, 9, 9, 45, 110, 97, 109, 101, 91, 50, 93, 32, 98, 108, 117, 101, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 51, 93, 32, 114, 101, 100, 98, 108, 117, 114, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 103, 114, 101, 101, 110, 98, 108, 117, 114, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 98, 108, 117, 114, 10, 9, 9, 40, 48, 46, 50, 53, 59, 46, 53, 59, 48, 46, 53, 59, 46, 53, 59, 48, 46, 50, 53, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 40, 49, 44, 49, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 40, 48, 46, 53, 59, 49, 59, 48, 46, 53, 41, 10, 9, 9, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 9, 45, 45, 100, 105, 118, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 114, 101, 100, 98, 108, 117, 114, 93, 10, 9, 9, 45, 45, 100, 105, 118, 91, 103, 114, 101, 101, 110, 98, 108, 117, 114, 93, 32, 91, 98, 108, 117, 101, 98, 108, 117, 114, 93, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 108, 117, 101, 109, 117, 108, 10, 9, 9, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 114, 101, 100, 109, 117, 108, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 91, 114, 101, 100, 98, 108, 117, 114, 44, 103, 114, 101, 101, 110, 98, 108, 117, 114, 44, 98, 108, 117, 101, 98, 108, 117, 114, 93, 10, 9, 9, 45, 109, 117, 108, 91, 114, 101, 100, 93, 32, 91, 114, 101, 100, 109, 117, 108, 93, 10, 9, 9, 45, 109, 117, 108, 91, 98, 108, 117, 101, 93, 32, 91, 98, 108, 117, 101, 109, 117, 108, 93, 10, 9, 9, 45, 107, 101, 101, 112, 91, 114, 101, 100, 44, 103, 114, 101, 101, 110, 44, 98, 108, 117, 101, 93, 10, 9, 9, 45, 97, 100, 100, 10, 9, 9, 45, 99, 32, 45, 49, 48, 48, 48, 48, 48, 48, 48, 48, 44, 49, 48, 48, 48, 48, 48, 48, 48, 48, 10, 9, 45, 101, 110, 100, 108, 10, 9, 35, 35, 32, 99, 104, 111, 111, 115, 101, 32, 111, 110, 101, 32, 119, 105, 116, 104, 111, 117, 116, 32, 122, 105, 112, 112, 101, 114, 115, 10, 9, 40, 49, 44, 45, 50, 44, 49, 41, 10, 9, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 49, 93, 32, 91, 45, 49, 93, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 9, 40, 49, 59, 45, 50, 59, 49, 41, 10, 9, 45, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 9, 45, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 9, 45, 100, 105, 118, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 51, 93, 10, 9, 45, 108, 116, 91, 45, 49, 93, 32, 48, 46, 53, 10, 9, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 53, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 10, 9, 45, 97, 112, 112, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 99, 10, 9, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 10, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 10, 40, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 59, 48, 46, 53, 44, 49, 44, 48, 46, 53, 59, 48, 46, 50, 53, 44, 48, 46, 53, 44, 48, 46, 50, 53, 41, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 100, 125, 44, 123, 115, 125, 44, 50, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 115, 117, 98, 91, 45, 51, 93, 32, 91, 45, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 51, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 50, 93, 10, 45, 97, 100, 100, 91, 49, 93, 32, 91, 48, 93, 10, 45, 97, 100, 100, 91, 50, 93, 32, 91, 48, 93, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 115, 117, 98, 32, 49, 48, 48, 48, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 95, 78, 82, 58, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 44, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 78, 111, 114, 109, 97, 108, 32, 80, 97, 116, 99, 104, 32, 98, 97, 115, 101, 100, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 40, 115, 99, 97, 108, 101, 32, 49, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 111, 102, 32, 97, 100, 100, 105, 116, 105, 111, 110, 32, 115, 99, 97, 108, 101, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 54, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 51, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 52, 61, 32, 102, 108, 111, 97, 116, 32, 40, 52, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 53, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 54, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 55, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 82, 101, 115, 116, 111, 114, 101, 32, 100, 101, 116, 97, 105, 108, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 48, 48, 48, 44, 48, 44, 53, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 32, 40, 54, 52, 44, 51, 50, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 51, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 60, 98, 62, 115, 108, 111, 119, 33, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 48, 49, 50, 47, 49, 57, 47, 48, 56, 34, 41, 10, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 36, 49, 50, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 49, 48, 44, 36, 49, 44, 51, 44, 51, 44, 48, 44, 36, 50, 44, 36, 51, 44, 48, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 49, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 91, 45, 49, 93, 32, 36, 49, 48, 44, 36, 49, 49, 44, 48, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 34, 44, 51, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 50, 10, 35, 64, 103, 105, 109, 112, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 95, 78, 82, 50, 58, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 95, 116, 119, 111, 44, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 95, 116, 119, 111, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 48, 44, 48, 46, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 100, 106, 117, 115, 116, 32, 78, 82, 32, 102, 111, 114, 32, 102, 111, 114, 32, 108, 97, 114, 103, 101, 114, 32, 115, 99, 97, 108, 101, 115, 32, 97, 115, 32, 37, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 51, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 52, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 53, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 54, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 55, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 97, 115, 116, 101, 114, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 50, 48, 48, 44, 48, 44, 49, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 32, 40, 54, 52, 44, 51, 50, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 104, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 100, 106, 117, 115, 116, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 102, 111, 114, 32, 100, 101, 116, 105, 97, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 117, 109, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 114, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 101, 99, 111, 118, 101, 114, 32, 100, 101, 116, 97, 105, 108, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 100, 106, 117, 115, 116, 32, 110, 111, 105, 115, 101, 32, 114, 101, 100, 117, 99, 116, 105, 111, 110, 32, 98, 121, 32, 116, 111, 110, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 98, 108, 97, 99, 107, 115, 32, 61, 32, 105, 110, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 100, 97, 114, 107, 115, 32, 61, 32, 105, 110, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 109, 105, 100, 116, 111, 110, 101, 115, 32, 61, 32, 105, 110, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 105, 103, 104, 116, 115, 32, 61, 32, 105, 110, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 119, 104, 105, 116, 101, 32, 61, 32, 105, 110, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 97, 110, 32, 112, 97, 115, 115, 32, 102, 105, 114, 115, 116, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 60, 98, 62, 115, 108, 111, 119, 33, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 53, 32, 65, 117, 103, 117, 115, 116, 32, 50, 48, 49, 50, 34, 41, 10, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 102, 102, 116, 58, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 36, 52, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 37, 44, 53, 37, 44, 48, 44, 49, 44, 36, 54, 10, 45, 98, 111, 120, 95, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 50, 42, 48, 46, 48, 49, 125, 10, 45, 45, 97, 100, 100, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 123, 36, 49, 47, 40, 49, 50, 56, 47, 36, 50, 41, 125, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 58, 10, 116, 99, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 50, 41, 125, 32, 116, 114, 61, 123, 114, 111, 117, 110, 100, 40, 104, 47, 36, 50, 41, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 102, 102, 116, 91, 48, 45, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 102, 102, 116, 95, 116, 105, 108, 101, 50, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 50, 45, 49, 125, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 112, 117, 115, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 49, 46, 53, 41, 125, 10, 112, 117, 108, 108, 61, 123, 36, 50, 45, 36, 112, 117, 115, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 112, 117, 115, 104, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 112, 117, 108, 108, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 112, 117, 115, 104, 125, 44, 123, 36, 50, 125, 44, 123, 119, 45, 36, 112, 117, 108, 108, 45, 49, 125, 44, 123, 104, 45, 40, 36, 50, 41, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 115, 104, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 108, 108, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 123, 36, 112, 117, 115, 104, 125, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 112, 117, 108, 108, 45, 49, 125, 10, 100, 105, 97, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 51, 41, 125, 10, 100, 105, 97, 50, 61, 123, 36, 50, 45, 36, 100, 105, 97, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 49, 125, 44, 123, 36, 100, 105, 97, 49, 125, 44, 123, 119, 45, 36, 100, 105, 97, 50, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 50, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 50, 125, 44, 123, 36, 100, 105, 97, 50, 125, 44, 123, 119, 45, 36, 100, 105, 97, 49, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 49, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 10, 45, 105, 97, 105, 110, 95, 109, 101, 100, 105, 97, 110, 95, 53, 95, 115, 116, 97, 99, 107, 10, 45, 101, 110, 100, 105, 102, 10, 108, 117, 109, 105, 110, 97, 110, 99, 101, 95, 110, 114, 95, 116, 119, 111, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 10, 45, 109, 117, 108, 32, 57, 46, 57, 57, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 48, 44, 48, 44, 48, 44, 53, 49, 48, 44, 123, 53, 49, 48, 45, 36, 49, 55, 125, 44, 49, 48, 50, 48, 44, 123, 49, 48, 50, 48, 45, 36, 49, 55, 45, 36, 49, 56, 125, 44, 49, 53, 51, 48, 44, 123, 49, 53, 51, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 125, 44, 50, 48, 52, 48, 44, 123, 50, 48, 52, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 45, 36, 50, 48, 125, 44, 50, 53, 53, 48, 44, 123, 50, 53, 53, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 45, 36, 50, 48, 45, 36, 50, 49, 125, 44, 50, 53, 53, 48, 44, 50, 53, 53, 48, 10, 45, 109, 117, 108, 32, 48, 46, 49, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 49, 125, 10, 45, 45, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 51, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 49, 48, 44, 36, 49, 44, 51, 44, 51, 44, 48, 44, 36, 50, 44, 36, 51, 44, 48, 44, 123, 36, 49, 42, 36, 52, 125, 44, 123, 36, 49, 42, 36, 53, 125, 44, 123, 36, 49, 42, 36, 54, 125, 44, 123, 36, 49, 42, 36, 55, 125, 44, 123, 36, 49, 42, 36, 56, 125, 44, 123, 36, 49, 42, 36, 57, 125, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 50, 61, 61, 48, 125, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 49, 48, 44, 36, 49, 44, 51, 44, 51, 44, 48, 44, 36, 50, 44, 36, 51, 44, 48, 44, 123, 36, 49, 42, 36, 52, 125, 44, 123, 36, 49, 42, 36, 53, 125, 44, 123, 36, 49, 42, 36, 54, 125, 44, 123, 36, 49, 42, 36, 55, 125, 44, 123, 36, 49, 42, 36, 56, 125, 44, 123, 36, 49, 42, 36, 57, 125, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 50, 91, 45, 49, 93, 32, 36, 49, 48, 44, 36, 49, 49, 44, 51, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 49, 44, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 109, 117, 108, 32, 57, 46, 57, 57, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 32, 48, 44, 48, 44, 48, 44, 123, 53, 49, 48, 45, 36, 49, 55, 125, 44, 53, 49, 48, 44, 123, 49, 48, 50, 48, 45, 36, 49, 55, 45, 36, 49, 56, 125, 44, 49, 48, 50, 48, 44, 123, 49, 53, 51, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 125, 44, 49, 53, 51, 48, 44, 123, 50, 48, 52, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 45, 36, 50, 48, 125, 44, 50, 48, 52, 48, 44, 123, 50, 53, 53, 48, 45, 36, 49, 55, 45, 36, 49, 56, 45, 36, 49, 57, 45, 36, 50, 48, 45, 36, 50, 49, 125, 44, 50, 53, 53, 48, 44, 50, 53, 53, 48, 44, 50, 53, 53, 48, 10, 45, 109, 117, 108, 32, 48, 46, 49, 10, 34, 44, 51, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 77, 83, 32, 80, 97, 116, 99, 104, 95, 67, 104, 114, 111, 109, 97, 58, 32, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 44, 32, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 77, 97, 115, 116, 101, 114, 32, 80, 97, 116, 99, 104, 32, 98, 97, 115, 101, 100, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 40, 115, 99, 97, 108, 101, 32, 49, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 46, 49, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 97, 110, 32, 112, 97, 115, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 108, 111, 98, 97, 108, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 51, 61, 32, 102, 108, 111, 97, 116, 32, 40, 52, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 52, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 53, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 54, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 55, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 110, 100, 111, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 51, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 67, 117, 115, 116, 111, 109, 105, 115, 101, 32, 76, 117, 109, 97, 32, 119, 101, 105, 103, 104, 116, 105, 110, 103, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 46, 51, 55, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 46, 49, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 104, 111, 119, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 49, 48, 32, 68, 101, 99, 101, 109, 98, 101, 114, 32, 50, 48, 49, 50, 32, 45, 32, 97, 100, 100, 101, 100, 32, 115, 104, 111, 119, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 112, 116, 105, 111, 110, 32, 97, 110, 100, 32, 99, 104, 97, 110, 103, 101, 100, 32, 105, 110, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 102, 114, 111, 109, 32, 108, 111, 99, 97, 108, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 116, 111, 32, 103, 108, 111, 98, 97, 108, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 46, 34, 41, 10, 99, 114, 101, 97, 116, 101, 95, 108, 117, 109, 97, 95, 109, 105, 120, 58, 10, 45, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 109, 117, 108, 91, 49, 93, 32, 123, 36, 49, 47, 40, 36, 49, 43, 36, 50, 43, 36, 51, 41, 125, 10, 45, 109, 117, 108, 91, 50, 93, 32, 123, 36, 50, 47, 40, 36, 49, 43, 36, 50, 43, 36, 51, 41, 125, 10, 45, 109, 117, 108, 91, 51, 93, 32, 123, 36, 51, 47, 40, 36, 49, 43, 36, 50, 43, 36, 51, 41, 125, 10, 45, 97, 100, 100, 91, 49, 45, 51, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 99, 114, 101, 97, 116, 101, 95, 108, 117, 109, 97, 95, 109, 105, 120, 91, 48, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 117, 109, 97, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 10, 45, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 51, 10, 45, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 91, 48, 93, 32, 49, 48, 44, 36, 49, 44, 51, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 10, 45, 100, 111, 110, 101, 10, 45, 45, 99, 114, 101, 97, 116, 101, 95, 108, 117, 109, 97, 95, 109, 105, 120, 91, 48, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 99, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 109, 117, 108, 32, 50, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 77, 117, 108, 116, 105, 32, 83, 99, 97, 108, 101, 32, 80, 97, 116, 99, 104, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 58, 32, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 44, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 78, 111, 114, 109, 97, 108, 32, 80, 97, 116, 99, 104, 32, 98, 97, 115, 101, 100, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 40, 115, 99, 97, 108, 101, 32, 49, 41, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 46, 49, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 32, 40, 51, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 111, 107, 117, 112, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 32, 40, 53, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 32, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 80, 97, 116, 99, 104, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 102, 111, 114, 32, 97, 100, 100, 105, 116, 105, 111, 110, 97, 108, 32, 115, 99, 97, 108, 101, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 51, 61, 32, 102, 108, 111, 97, 116, 32, 40, 52, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 52, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 53, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 54, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 55, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 110, 100, 111, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 51, 44, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 104, 111, 119, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 56, 32, 65, 117, 103, 117, 115, 116, 32, 50, 48, 49, 50, 32, 45, 32, 109, 105, 110, 111, 114, 32, 115, 112, 101, 101, 100, 32, 117, 112, 44, 32, 98, 117, 116, 32, 108, 101, 118, 101, 108, 32, 55, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 100, 111, 32, 97, 110, 121, 116, 104, 105, 110, 103, 32, 110, 111, 119, 46, 34, 41, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 100, 111, 110, 101, 34, 44, 36, 56, 44, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 58, 10, 108, 118, 108, 50, 61, 50, 10, 108, 118, 108, 51, 61, 51, 10, 108, 118, 108, 52, 61, 52, 10, 108, 118, 108, 53, 61, 53, 10, 108, 118, 108, 54, 61, 54, 10, 108, 118, 108, 55, 61, 56, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 36, 49, 53, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 102, 117, 108, 108, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 102, 117, 108, 108, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 50, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 49, 93, 32, 108, 101, 118, 101, 108, 50, 9, 9, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 50, 93, 32, 36, 49, 44, 36, 57, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 45, 110, 97, 109, 101, 91, 50, 93, 32, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 111, 119, 50, 9, 10, 45, 45, 115, 117, 98, 91, 102, 117, 108, 108, 93, 32, 91, 108, 111, 119, 50, 93, 9, 32, 45, 110, 97, 109, 101, 91, 52, 93, 32, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 50, 44, 108, 111, 119, 50, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 51, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 51, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 101, 118, 101, 108, 51, 9, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 51, 93, 32, 36, 49, 44, 36, 49, 48, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 45, 110, 97, 109, 101, 91, 52, 93, 32, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 93, 32, 64, 123, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 53, 93, 32, 108, 111, 119, 51, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 51, 93, 9, 32, 45, 110, 97, 109, 101, 91, 54, 93, 32, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 51, 44, 108, 111, 119, 51, 93, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 52, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 53, 93, 32, 108, 101, 118, 101, 108, 52, 9, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 52, 93, 32, 36, 49, 44, 36, 49, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 45, 110, 97, 109, 101, 91, 54, 93, 32, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 52, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 55, 93, 32, 108, 111, 119, 52, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 52, 93, 9, 32, 45, 110, 97, 109, 101, 91, 56, 93, 32, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 52, 44, 108, 111, 119, 52, 93, 10, 9, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 53, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 53, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 9, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 53, 93, 32, 36, 49, 44, 36, 49, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 53, 93, 32, 64, 123, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 53, 9, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 53, 93, 9, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 53, 44, 108, 111, 119, 53, 93, 9, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 54, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 9, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 54, 93, 32, 36, 49, 44, 36, 49, 51, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 54, 93, 32, 64, 123, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 54, 9, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 54, 93, 9, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 54, 44, 108, 111, 119, 54, 93, 9, 9, 10, 9, 10, 9, 10, 9, 10, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 98, 97, 115, 101, 9, 10, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 93, 9, 10, 9, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 93, 9, 9, 9, 10, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 93, 9, 9, 10, 9, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 93, 9, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 9, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 36, 49, 53, 125, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 32, 36, 123, 49, 45, 45, 50, 125, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 109, 117, 108, 32, 50, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 77, 117, 108, 116, 105, 32, 83, 99, 97, 108, 101, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 58, 32, 109, 115, 95, 115, 109, 111, 111, 116, 104, 44, 109, 115, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 51, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 52, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 53, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 32, 115, 99, 97, 108, 101, 32, 54, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 103, 32, 83, 99, 97, 108, 101, 115, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 108, 111, 98, 97, 108, 32, 114, 101, 112, 101, 97, 116, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 104, 111, 119, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 98, 111, 111, 108, 32, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 117, 112, 100, 97, 116, 101, 32, 55, 32, 68, 101, 99, 32, 50, 48, 49, 50, 34, 41, 10, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 58, 10, 45, 115, 109, 111, 111, 116, 104, 32, 123, 36, 49, 42, 53, 125, 44, 48, 46, 55, 44, 48, 46, 55, 44, 48, 46, 54, 44, 36, 50, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 10, 109, 115, 95, 115, 109, 111, 111, 116, 104, 58, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 10, 108, 118, 108, 50, 61, 50, 10, 108, 118, 108, 51, 61, 51, 10, 108, 118, 108, 52, 61, 52, 10, 108, 118, 108, 53, 61, 53, 10, 108, 118, 108, 54, 61, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 108, 118, 108, 50, 61, 50, 10, 108, 118, 108, 51, 61, 52, 10, 108, 118, 108, 52, 61, 56, 10, 108, 118, 108, 53, 61, 49, 54, 10, 108, 118, 108, 54, 61, 51, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 57, 10, 45, 105, 102, 32, 123, 36, 49, 62, 48, 125, 10, 9, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 55, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 102, 117, 108, 108, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 102, 117, 108, 108, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 50, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 49, 93, 32, 108, 101, 118, 101, 108, 50, 9, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 9, 10, 9, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 50, 93, 32, 32, 36, 50, 44, 36, 55, 10, 45, 101, 108, 115, 101, 32, 91, 108, 101, 118, 101, 108, 50, 93, 10, 45, 101, 110, 100, 105, 102, 10, 9, 45, 110, 97, 109, 101, 91, 50, 93, 32, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 111, 119, 50, 9, 10, 45, 45, 115, 117, 98, 91, 102, 117, 108, 108, 93, 32, 91, 108, 111, 119, 50, 93, 9, 32, 45, 110, 97, 109, 101, 91, 52, 93, 32, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 50, 44, 108, 111, 119, 50, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 51, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 51, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 51, 93, 32, 108, 101, 118, 101, 108, 51, 9, 10, 45, 105, 102, 32, 123, 36, 51, 62, 48, 125, 9, 10, 9, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 51, 93, 32, 36, 51, 44, 36, 55, 10, 9, 45, 101, 108, 115, 101, 32, 91, 108, 101, 118, 101, 108, 51, 93, 10, 45, 101, 110, 100, 105, 102, 10, 9, 45, 110, 97, 109, 101, 91, 52, 93, 32, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 93, 32, 64, 123, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 53, 93, 32, 108, 111, 119, 51, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 50, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 51, 93, 9, 32, 45, 110, 97, 109, 101, 91, 54, 93, 32, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 51, 44, 108, 111, 119, 51, 93, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 52, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 53, 93, 32, 108, 101, 118, 101, 108, 52, 9, 10, 45, 105, 102, 32, 123, 36, 52, 62, 48, 125, 10, 9, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 52, 93, 32, 36, 52, 44, 36, 55, 10, 9, 45, 101, 108, 115, 101, 32, 91, 108, 101, 118, 101, 108, 52, 93, 10, 45, 101, 110, 100, 105, 102, 10, 9, 45, 110, 97, 109, 101, 91, 54, 93, 32, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 52, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 55, 93, 32, 108, 111, 119, 52, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 51, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 52, 93, 9, 32, 45, 110, 97, 109, 101, 91, 56, 93, 32, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 52, 44, 108, 111, 119, 52, 93, 10, 9, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 53, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 53, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 9, 10, 45, 105, 102, 32, 123, 36, 53, 62, 48, 125, 10, 9, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 53, 93, 32, 36, 53, 44, 36, 55, 10, 9, 45, 101, 108, 115, 101, 32, 91, 108, 101, 118, 101, 108, 53, 93, 10, 45, 101, 110, 100, 105, 102, 10, 9, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 53, 93, 32, 64, 123, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 53, 9, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 52, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 53, 93, 9, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 53, 44, 108, 111, 119, 53, 93, 9, 10, 9, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 108, 118, 108, 54, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 108, 118, 108, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 10, 45, 105, 102, 32, 123, 36, 54, 62, 48, 125, 10, 9, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 108, 101, 118, 101, 108, 54, 93, 32, 32, 36, 54, 44, 36, 55, 9, 10, 45, 101, 108, 115, 101, 32, 91, 108, 101, 118, 101, 108, 54, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 99, 108, 101, 97, 110, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 54, 93, 32, 64, 123, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 54, 9, 10, 45, 45, 115, 117, 98, 91, 108, 101, 118, 101, 108, 53, 99, 108, 101, 97, 110, 93, 32, 91, 108, 111, 119, 54, 93, 9, 32, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 54, 44, 108, 111, 119, 54, 93, 9, 9, 10, 9, 10, 9, 10, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 98, 97, 115, 101, 9, 10, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 54, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 53, 104, 105, 103, 104, 93, 9, 10, 9, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 93, 9, 9, 9, 10, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 93, 9, 9, 10, 9, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 10, 45, 97, 100, 100, 91, 98, 97, 115, 101, 93, 32, 91, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 93, 9, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 93, 9, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 9, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 109, 115, 95, 115, 109, 111, 111, 116, 104, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 109, 117, 108, 32, 50, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 78, 111, 105, 115, 101, 32, 82, 101, 100, 117, 99, 116, 105, 111, 110, 32, 51, 58, 32, 110, 114, 51, 44, 110, 114, 51, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 46, 50, 53, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 46, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 32, 77, 97, 115, 116, 101, 114, 32, 68, 101, 116, 97, 105, 108, 32, 82, 101, 99, 111, 118, 101, 114, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 32, 65, 100, 106, 117, 115, 116, 32, 70, 105, 110, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 32, 65, 100, 106, 117, 115, 116, 32, 77, 101, 100, 105, 117, 109, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 32, 65, 100, 106, 117, 115, 116, 32, 76, 97, 114, 103, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 55, 32, 69, 110, 104, 97, 110, 99, 101, 32, 68, 101, 116, 105, 97, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 32, 115, 104, 97, 114, 112, 101, 110, 32, 101, 100, 103, 101, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 53, 44, 46, 50, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 57, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 48, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 32, 115, 104, 97, 114, 112, 101, 110, 32, 100, 101, 116, 97, 105, 108, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 49, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 53, 44, 46, 50, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 50, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 51, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 53, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 111, 110, 108, 121, 32, 105, 110, 116, 101, 110, 116, 101, 100, 32, 102, 111, 114, 32, 97, 110, 100, 32, 104, 97, 115, 32, 111, 110, 108, 121, 32, 98, 101, 101, 110, 32, 116, 101, 115, 116, 101, 100, 32, 111, 110, 32, 103, 114, 101, 121, 115, 99, 97, 108, 101, 32, 105, 109, 97, 103, 101, 115, 46, 34, 32, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 109, 101, 97, 115, 117, 114, 101, 115, 32, 110, 111, 105, 115, 101, 32, 105, 110, 32, 97, 116, 32, 102, 105, 118, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 116, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 101, 115, 44, 32, 105, 102, 32, 121, 111, 117, 114, 32, 112, 114, 101, 118, 105, 101, 119, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 104, 97, 118, 101, 32, 97, 32, 102, 117, 108, 108, 32, 114, 97, 110, 103, 101, 32, 111, 102, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 115, 104, 111, 119, 110, 32, 116, 104, 101, 32, 112, 114, 101, 118, 105, 101, 119, 32, 119, 105, 108, 108, 32, 110, 111, 116, 32, 103, 105, 118, 101, 32, 97, 110, 32, 97, 99, 99, 117, 114, 97, 116, 101, 32, 105, 110, 100, 105, 99, 97, 116, 105, 111, 110, 32, 111, 102, 32, 116, 104, 101, 32, 102, 105, 110, 97, 108, 32, 114, 101, 115, 117, 108, 116, 115, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 49, 49, 32, 78, 111, 118, 101, 109, 98, 101, 114, 32, 50, 48, 49, 50, 32, 45, 32, 109, 105, 110, 111, 114, 32, 113, 117, 97, 108, 105, 116, 121, 32, 105, 109, 112, 114, 111, 118, 101, 109, 101, 110, 116, 115, 46, 34, 41, 10, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 107, 101, 101, 112, 91, 50, 44, 51, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 50, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 51, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 52, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 99, 114, 111, 115, 115, 49, 54, 58, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 48, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 48, 44, 48, 44, 48, 44, 50, 10, 45, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 10, 101, 120, 49, 54, 58, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 49, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 45, 49, 44, 48, 44, 48, 44, 50, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 49, 44, 49, 44, 48, 44, 48, 44, 50, 10, 45, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 10, 104, 121, 98, 114, 105, 100, 49, 54, 58, 10, 45, 45, 99, 114, 111, 115, 115, 49, 54, 91, 48, 93, 10, 45, 45, 101, 120, 49, 54, 91, 48, 93, 10, 45, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 10, 97, 117, 116, 111, 110, 114, 50, 58, 10, 45, 45, 99, 114, 111, 112, 32, 51, 48, 37, 44, 51, 48, 37, 44, 55, 48, 37, 44, 55, 48, 37, 10, 110, 111, 105, 115, 101, 48, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 54, 52, 45, 119, 37, 54, 52, 41, 125, 44, 123, 104, 43, 40, 54, 52, 45, 104, 37, 54, 52, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 105, 102, 32, 123, 36, 110, 111, 105, 115, 101, 48, 62, 36, 50, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 110, 111, 105, 115, 101, 48, 42, 36, 49, 125, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 110, 111, 105, 115, 101, 48, 42, 36, 49, 125, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 110, 111, 105, 115, 101, 49, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 105, 102, 32, 123, 36, 110, 111, 105, 115, 101, 49, 62, 36, 50, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 110, 111, 105, 115, 101, 49, 42, 36, 49, 125, 44, 51, 44, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 115, 117, 98, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 110, 111, 105, 115, 101, 50, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 105, 102, 32, 123, 36, 110, 111, 105, 115, 101, 50, 62, 36, 50, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 110, 111, 105, 115, 101, 50, 42, 36, 49, 125, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 115, 117, 98, 91, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 110, 111, 105, 115, 101, 51, 61, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 10, 45, 105, 102, 32, 123, 36, 110, 111, 105, 115, 101, 51, 62, 36, 50, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 110, 111, 105, 115, 101, 51, 42, 36, 49, 125, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 97, 100, 100, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 58, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 36, 52, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 37, 44, 53, 37, 44, 48, 44, 49, 44, 36, 54, 10, 45, 45, 97, 100, 100, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 58, 10, 116, 99, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 50, 41, 125, 32, 116, 114, 61, 123, 114, 111, 117, 110, 100, 40, 104, 47, 36, 50, 41, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 91, 48, 45, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 50, 45, 49, 125, 10, 112, 117, 115, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 49, 46, 53, 41, 125, 10, 112, 117, 108, 108, 61, 123, 36, 50, 45, 36, 112, 117, 115, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 112, 117, 115, 104, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 112, 117, 108, 108, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 112, 117, 115, 104, 125, 44, 123, 36, 50, 125, 44, 123, 119, 45, 36, 112, 117, 108, 108, 45, 49, 125, 44, 123, 104, 45, 40, 36, 50, 41, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 115, 104, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 108, 108, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 123, 36, 112, 117, 115, 104, 125, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 112, 117, 108, 108, 45, 49, 125, 10, 100, 105, 97, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 51, 41, 125, 10, 100, 105, 97, 50, 61, 123, 36, 50, 45, 36, 100, 105, 97, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 49, 125, 44, 123, 36, 100, 105, 97, 49, 125, 44, 123, 119, 45, 36, 100, 105, 97, 50, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 50, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 50, 125, 44, 123, 36, 100, 105, 97, 50, 125, 44, 123, 119, 45, 36, 100, 105, 97, 49, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 49, 45, 49, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 10, 110, 114, 51, 58, 10, 45, 109, 117, 108, 32, 50, 53, 54, 10, 114, 97, 100, 105, 117, 115, 61, 123, 48, 46, 48, 53, 42, 40, 109, 105, 110, 40, 104, 44, 119, 41, 41, 125, 10, 91, 48, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 120, 109, 105, 110, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 121, 109, 105, 110, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 109, 105, 110, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 105, 110, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 109, 105, 110, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 105, 110, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 109, 105, 110, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 50, 53, 48, 42, 50, 53, 54, 125, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 120, 109, 97, 120, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 121, 109, 97, 120, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 109, 97, 120, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 97, 120, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 109, 97, 120, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 97, 120, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 109, 97, 120, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 120, 97, 118, 101, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 121, 97, 118, 101, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 97, 118, 101, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 97, 118, 101, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 97, 118, 101, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 97, 118, 101, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 109, 105, 100, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 36, 109, 105, 100, 110, 111, 105, 115, 101, 44, 48, 44, 48, 44, 50, 53, 44, 49, 44, 123, 105, 77, 125, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 54, 52, 42, 50, 53, 54, 125, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 120, 115, 104, 97, 100, 111, 119, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 121, 115, 104, 97, 100, 111, 119, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 115, 104, 97, 100, 111, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 115, 104, 97, 100, 111, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 115, 104, 97, 100, 111, 119, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 115, 104, 97, 100, 111, 119, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 115, 104, 97, 100, 111, 119, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 49, 57, 50, 42, 50, 53, 54, 125, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 120, 98, 114, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 121, 98, 114, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 98, 114, 105, 103, 104, 116, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 98, 114, 105, 103, 104, 116, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 98, 114, 105, 103, 104, 116, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 98, 114, 105, 103, 104, 116, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 98, 114, 105, 103, 104, 116, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 115, 104, 97, 100, 111, 119, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 115, 104, 97, 100, 111, 119, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 109, 105, 100, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 109, 105, 100, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 98, 114, 105, 103, 104, 116, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 98, 114, 105, 103, 104, 116, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 119, 104, 105, 116, 101, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 109, 97, 120, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 112, 111, 105, 110, 116, 49, 61, 123, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 112, 111, 105, 110, 116, 50, 61, 123, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 112, 111, 105, 110, 116, 51, 61, 123, 36, 98, 114, 105, 103, 104, 116, 115, 43, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 112, 111, 105, 110, 116, 52, 61, 123, 36, 119, 104, 105, 116, 101, 115, 43, 36, 98, 114, 105, 103, 104, 116, 115, 43, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 54, 52, 45, 119, 37, 54, 52, 41, 125, 44, 123, 104, 43, 40, 54, 52, 45, 104, 37, 54, 52, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 57, 54, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 49, 42, 50, 53, 54, 125, 44, 123, 49, 54, 48, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 50, 42, 50, 53, 54, 125, 44, 123, 50, 50, 51, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 51, 42, 50, 53, 54, 125, 44, 123, 50, 56, 55, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 52, 42, 50, 53, 54, 125, 10, 45, 115, 117, 98, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 32, 45, 109, 117, 108, 32, 46, 53, 32, 45, 97, 100, 100, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 45, 104, 121, 98, 114, 105, 100, 49, 54, 91, 48, 93, 10, 45, 97, 117, 116, 111, 110, 114, 50, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 97, 117, 116, 111, 110, 114, 50, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 100, 105, 118, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 50, 48, 48, 48, 45, 36, 51, 125, 44, 52, 56, 44, 48, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 49, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 55, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 117, 110, 115, 104, 97, 114, 112, 91, 48, 93, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 10, 45, 117, 110, 115, 104, 97, 114, 112, 91, 49, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 10, 45, 115, 117, 98, 91, 49, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 97, 100, 100, 91, 48, 93, 32, 91, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 115, 117, 98, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 32, 45, 109, 117, 108, 32, 50, 32, 45, 97, 100, 100, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 49, 42, 50, 53, 54, 125, 44, 123, 57, 54, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 50, 42, 50, 53, 54, 125, 44, 123, 49, 54, 48, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 51, 42, 50, 53, 54, 125, 44, 123, 50, 50, 51, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 52, 42, 50, 53, 54, 125, 44, 123, 50, 56, 55, 42, 50, 53, 54, 125, 10, 45, 100, 105, 118, 32, 50, 53, 54, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 78, 111, 105, 115, 101, 32, 82, 101, 100, 117, 99, 116, 105, 111, 110, 32, 53, 58, 32, 110, 114, 53, 44, 110, 114, 53, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 32, 76, 117, 109, 97, 32, 68, 101, 110, 111, 105, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 50, 32, 67, 111, 108, 111, 117, 114, 32, 68, 101, 110, 111, 105, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 51, 32, 82, 101, 99, 111, 118, 101, 114, 32, 100, 101, 116, 97, 105, 108, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 52, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 46, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 32, 115, 104, 97, 114, 112, 101, 110, 32, 100, 101, 116, 97, 105, 108, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 53, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 53, 44, 46, 50, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 54, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 55, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 32, 115, 104, 97, 114, 112, 101, 110, 32, 101, 100, 103, 101, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 56, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 55, 53, 44, 46, 50, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 57, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 48, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 65, 100, 118, 97, 110, 99, 101, 100, 32, 111, 112, 116, 105, 111, 110, 115, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 49, 32, 66, 97, 115, 101, 32, 76, 117, 109, 97, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 49, 44, 34, 87, 97, 118, 101, 108, 101, 116, 34, 44, 34, 77, 117, 108, 116, 105, 45, 115, 99, 97, 108, 101, 32, 112, 97, 116, 99, 104, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 34, 44, 34, 83, 101, 109, 105, 45, 97, 117, 116, 111, 32, 77, 83, 32, 112, 97, 116, 99, 104, 34, 44, 34, 77, 101, 100, 105, 97, 110, 32, 102, 105, 114, 115, 116, 32, 77, 83, 32, 112, 97, 116, 99, 104, 34, 44, 34, 77, 117, 108, 116, 105, 32, 83, 99, 97, 108, 101, 32, 77, 101, 100, 105, 97, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 50, 32, 67, 104, 114, 111, 109, 97, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 32, 40, 49, 44, 34, 87, 97, 118, 101, 108, 101, 116, 34, 44, 34, 77, 117, 108, 116, 105, 45, 115, 99, 97, 108, 101, 32, 112, 97, 116, 99, 104, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 51, 32, 65, 100, 106, 117, 115, 116, 32, 70, 105, 110, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 48, 48, 44, 45, 53, 48, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 52, 32, 65, 100, 106, 117, 115, 116, 32, 77, 101, 100, 105, 117, 109, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 45, 53, 48, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 53, 32, 65, 100, 106, 117, 115, 116, 32, 76, 97, 114, 103, 101, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 45, 49, 48, 48, 44, 45, 53, 48, 48, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 32, 99, 117, 114, 118, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 46, 51, 44, 46, 51, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 104, 111, 119, 32, 110, 111, 105, 115, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 50, 56, 32, 78, 111, 118, 101, 109, 98, 101, 114, 32, 50, 48, 49, 50, 32, 45, 32, 97, 100, 100, 101, 100, 32, 97, 98, 105, 108, 116, 105, 116, 121, 32, 116, 111, 32, 118, 105, 101, 119, 32, 110, 111, 105, 115, 101, 34, 41, 10, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 107, 101, 101, 112, 91, 50, 44, 51, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 50, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 51, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 58, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 49, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 48, 44, 52, 93, 10, 45, 45, 109, 97, 120, 91, 48, 44, 52, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 52, 93, 10, 45, 45, 109, 105, 110, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 109, 97, 120, 91, 49, 44, 52, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 58, 10, 45, 45, 102, 102, 116, 112, 111, 108, 97, 114, 91, 48, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 44, 36, 52, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 53, 37, 44, 49, 53, 37, 44, 48, 44, 49, 44, 36, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 53, 37, 44, 53, 37, 44, 48, 44, 49, 44, 36, 54, 10, 45, 45, 97, 100, 100, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 116, 91, 45, 49, 93, 32, 49, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 109, 117, 108, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 105, 102, 102, 116, 112, 111, 108, 97, 114, 91, 49, 44, 50, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 44, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 58, 10, 116, 99, 61, 123, 114, 111, 117, 110, 100, 40, 119, 47, 36, 50, 41, 125, 32, 116, 114, 61, 123, 114, 111, 117, 110, 100, 40, 104, 47, 36, 50, 41, 125, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 102, 102, 116, 91, 48, 45, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 116, 99, 44, 36, 116, 114, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 102, 102, 116, 95, 116, 105, 108, 101, 51, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 36, 50, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 50, 45, 49, 125, 10, 45, 105, 102, 32, 123, 36, 56, 62, 50, 125, 10, 112, 117, 115, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 42, 49, 46, 53, 41, 125, 10, 112, 117, 108, 108, 61, 123, 36, 50, 45, 36, 112, 117, 115, 104, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 112, 117, 115, 104, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 112, 117, 108, 108, 125, 44, 123, 104, 43, 36, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 112, 117, 115, 104, 125, 44, 123, 36, 50, 125, 44, 123, 119, 45, 36, 112, 117, 108, 108, 45, 49, 125, 44, 123, 104, 45, 40, 36, 50, 41, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 115, 104, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 50, 125, 44, 123, 104, 43, 36, 112, 117, 108, 108, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 50, 44, 123, 36, 112, 117, 115, 104, 125, 44, 123, 119, 45, 36, 50, 45, 49, 125, 44, 123, 104, 45, 36, 112, 117, 108, 108, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 62, 49, 125, 10, 100, 105, 97, 49, 61, 123, 114, 111, 117, 110, 100, 40, 36, 50, 47, 51, 41, 125, 10, 100, 105, 97, 50, 61, 123, 36, 50, 45, 36, 100, 105, 97, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 49, 125, 44, 123, 36, 100, 105, 97, 49, 125, 44, 123, 119, 45, 36, 100, 105, 97, 50, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 50, 45, 49, 125, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 36, 100, 105, 97, 50, 125, 44, 123, 104, 43, 36, 100, 105, 97, 50, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 49, 44, 49, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 36, 100, 105, 97, 49, 125, 44, 123, 104, 43, 36, 100, 105, 97, 49, 125, 44, 49, 44, 49, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 95, 99, 108, 101, 97, 110, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 100, 105, 97, 50, 125, 44, 123, 36, 100, 105, 97, 50, 125, 44, 123, 119, 45, 36, 100, 105, 97, 49, 45, 49, 125, 44, 123, 104, 45, 36, 100, 105, 97, 49, 45, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 51, 125, 10, 45, 109, 101, 100, 53, 115, 116, 97, 99, 107, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 50, 125, 10, 45, 109, 101, 100, 51, 115, 116, 97, 99, 107, 49, 54, 10, 45, 101, 110, 100, 105, 102, 10, 110, 114, 53, 58, 10, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 61, 36, 49, 10, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 61, 36, 50, 10, 114, 101, 99, 111, 118, 101, 114, 121, 61, 36, 51, 10, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 61, 123, 53, 48, 48, 48, 45, 40, 36, 52, 42, 53, 48, 48, 41, 125, 10, 102, 105, 110, 101, 95, 100, 101, 116, 105, 97, 108, 115, 61, 36, 49, 51, 10, 109, 101, 100, 105, 117, 109, 95, 100, 101, 116, 105, 97, 108, 115, 61, 36, 49, 52, 10, 108, 97, 114, 103, 101, 95, 100, 101, 116, 97, 105, 108, 115, 61, 36, 49, 53, 10, 100, 101, 116, 97, 105, 108, 95, 114, 97, 100, 105, 117, 115, 61, 36, 53, 10, 100, 101, 116, 97, 105, 108, 95, 97, 109, 111, 117, 110, 116, 61, 36, 54, 10, 100, 101, 116, 97, 105, 108, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 36, 55, 10, 101, 100, 103, 101, 95, 114, 97, 100, 105, 117, 115, 61, 36, 56, 10, 101, 100, 103, 101, 95, 97, 109, 111, 117, 110, 116, 61, 36, 57, 10, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 61, 36, 49, 48, 10, 113, 117, 97, 108, 105, 116, 121, 61, 51, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 10, 9, 45, 109, 117, 108, 91, 48, 93, 32, 50, 53, 54, 10, 9, 114, 97, 100, 105, 117, 115, 61, 123, 48, 46, 48, 53, 42, 40, 109, 105, 110, 40, 104, 44, 119, 41, 41, 125, 10, 9, 91, 48, 93, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 9, 120, 109, 105, 110, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 9, 121, 109, 105, 110, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 109, 105, 110, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 105, 110, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 109, 105, 110, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 105, 110, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 9, 109, 105, 110, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 50, 53, 48, 42, 50, 53, 54, 125, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 9, 120, 109, 97, 120, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 9, 121, 109, 97, 120, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 9, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 109, 97, 120, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 97, 120, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 109, 97, 120, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 109, 97, 120, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 9, 109, 97, 120, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 49, 50, 56, 42, 50, 53, 54, 125, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 9, 10, 9, 120, 97, 118, 101, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 9, 121, 97, 118, 101, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 97, 118, 101, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 97, 118, 101, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 97, 118, 101, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 97, 118, 101, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 9, 109, 105, 100, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 9, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 36, 109, 105, 100, 110, 111, 105, 115, 101, 44, 48, 44, 48, 44, 50, 53, 44, 49, 44, 123, 105, 77, 125, 10, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 54, 52, 42, 50, 53, 54, 125, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 9, 120, 115, 104, 97, 100, 111, 119, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 9, 121, 115, 104, 97, 100, 111, 119, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 115, 104, 97, 100, 111, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 115, 104, 97, 100, 111, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 115, 104, 97, 100, 111, 119, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 115, 104, 97, 100, 111, 119, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 9, 115, 104, 97, 100, 111, 119, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 9, 45, 45, 115, 117, 98, 91, 48, 93, 32, 123, 49, 57, 50, 42, 50, 53, 54, 125, 10, 9, 45, 97, 98, 115, 91, 45, 49, 93, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 114, 97, 100, 105, 117, 115, 44, 49, 48, 48, 37, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 123, 105, 97, 125, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 114, 97, 100, 105, 117, 115, 47, 50, 125, 10, 9, 120, 98, 114, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 120, 109, 125, 10, 9, 121, 98, 114, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 121, 109, 125, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 98, 114, 105, 103, 104, 116, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 98, 114, 105, 103, 104, 116, 45, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 120, 98, 114, 105, 103, 104, 116, 43, 36, 114, 97, 100, 105, 117, 115, 125, 44, 123, 36, 121, 98, 114, 105, 103, 104, 116, 43, 36, 114, 97, 100, 105, 117, 115, 125, 10, 9, 98, 114, 105, 103, 104, 116, 110, 111, 105, 115, 101, 61, 123, 40, 64, 123, 45, 118, 97, 114, 105, 97, 110, 99, 101, 95, 110, 111, 105, 115, 101, 125, 41, 125, 10, 9, 115, 104, 97, 100, 111, 119, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 115, 104, 97, 100, 111, 119, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 9, 109, 105, 100, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 109, 105, 100, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 9, 98, 114, 105, 103, 104, 116, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 98, 114, 105, 103, 104, 116, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 9, 119, 104, 105, 116, 101, 115, 61, 123, 40, 40, 36, 109, 105, 110, 110, 111, 105, 115, 101, 47, 36, 109, 97, 120, 110, 111, 105, 115, 101, 41, 42, 54, 52, 41, 125, 10, 9, 112, 111, 105, 110, 116, 49, 61, 123, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 9, 112, 111, 105, 110, 116, 50, 61, 123, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 9, 112, 111, 105, 110, 116, 51, 61, 123, 36, 98, 114, 105, 103, 104, 116, 115, 43, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 9, 112, 111, 105, 110, 116, 52, 61, 123, 36, 119, 104, 105, 116, 101, 115, 43, 36, 98, 114, 105, 103, 104, 116, 115, 43, 36, 109, 105, 100, 115, 43, 36, 115, 104, 97, 100, 111, 119, 115, 43, 51, 50, 125, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 9, 35, 35, 32, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 9, 35, 35, 32, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 9, 35, 35, 32, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 54, 52, 45, 119, 37, 54, 52, 41, 125, 44, 123, 104, 43, 40, 54, 52, 45, 104, 37, 54, 52, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 9, 35, 35, 32, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 9, 35, 35, 32, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 9, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 57, 54, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 49, 42, 50, 53, 54, 125, 44, 123, 49, 54, 48, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 50, 42, 50, 53, 54, 125, 44, 123, 50, 50, 51, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 51, 42, 50, 53, 54, 125, 44, 123, 50, 56, 55, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 52, 42, 50, 53, 54, 125, 10, 9, 45, 100, 105, 118, 91, 48, 93, 32, 50, 53, 54, 10, 45, 101, 108, 115, 101, 10, 9, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 36, 49, 55, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 105, 102, 32, 123, 36, 49, 62, 48, 125, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 48, 125, 10, 45, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 91, 48, 93, 32, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 44, 48, 44, 123, 36, 113, 117, 97, 108, 105, 116, 121, 42, 49, 48, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 91, 48, 93, 32, 49, 48, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 50, 46, 53, 125, 44, 51, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 55, 53, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 53, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 49, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 50, 125, 10, 45, 45, 97, 117, 116, 111, 110, 114, 50, 91, 48, 93, 32, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 51, 125, 10, 45, 45, 109, 101, 100, 105, 97, 110, 91, 48, 93, 32, 51, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 91, 45, 49, 93, 32, 49, 48, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 50, 46, 53, 125, 44, 51, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 55, 53, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 53, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 123, 36, 108, 117, 109, 97, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 49, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 52, 125, 10, 45, 45, 109, 115, 109, 101, 100, 50, 91, 48, 93, 32, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 109, 115, 109, 101, 100, 50, 91, 45, 49, 93, 32, 51, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 45, 49, 93, 10, 45, 97, 100, 100, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 114, 101, 99, 111, 118, 101, 114, 121, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 119, 43, 52, 56, 125, 44, 123, 104, 43, 52, 56, 125, 44, 123, 100, 125, 44, 123, 115, 125, 44, 48, 44, 48, 44, 49, 44, 49, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 52, 56, 44, 49, 44, 49, 50, 56, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 52, 56, 44, 49, 48, 48, 37, 44, 49, 44, 49, 50, 56, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 123, 104, 45, 52, 56, 125, 44, 49, 44, 49, 50, 56, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 49, 93, 32, 123, 119, 45, 52, 56, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 44, 49, 44, 49, 50, 56, 10, 45, 102, 102, 116, 95, 116, 105, 108, 101, 51, 91, 45, 49, 93, 32, 123, 36, 100, 101, 116, 97, 105, 108, 95, 114, 101, 99, 111, 118, 101, 114, 121, 125, 44, 52, 56, 44, 48, 44, 36, 102, 105, 110, 101, 95, 100, 101, 116, 105, 97, 108, 115, 44, 36, 109, 101, 100, 105, 117, 109, 95, 100, 101, 116, 105, 97, 108, 115, 44, 36, 108, 97, 114, 103, 101, 95, 100, 101, 116, 97, 105, 108, 115, 44, 49, 44, 36, 113, 117, 97, 108, 105, 116, 121, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 52, 56, 44, 52, 56, 44, 123, 119, 45, 52, 57, 125, 44, 123, 104, 45, 52, 57, 125, 10, 45, 101, 108, 115, 101, 10, 45, 102, 105, 108, 108, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 36, 100, 101, 116, 97, 105, 108, 95, 114, 97, 100, 105, 117, 115, 44, 36, 100, 101, 116, 97, 105, 108, 95, 97, 109, 111, 117, 110, 116, 44, 36, 100, 101, 116, 97, 105, 108, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 45, 117, 110, 115, 104, 97, 114, 112, 91, 50, 93, 32, 36, 101, 100, 103, 101, 95, 114, 97, 100, 105, 117, 115, 44, 36, 101, 100, 103, 101, 95, 97, 109, 111, 117, 110, 116, 44, 36, 101, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 123, 49, 50, 56, 125, 10, 45, 97, 100, 100, 91, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 109, 111, 118, 101, 91, 48, 93, 32, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 50, 62, 48, 125, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 48, 44, 49, 93, 32, 51, 10, 9, 45, 109, 101, 100, 105, 97, 110, 91, 48, 44, 49, 93, 32, 51, 10, 9, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 10, 9, 9, 45, 109, 115, 95, 112, 97, 116, 99, 104, 91, 48, 93, 32, 49, 48, 44, 49, 44, 51, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 49, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 53, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 50, 53, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 48, 44, 49, 44, 49, 44, 48, 10, 9, 9, 45, 109, 115, 95, 112, 97, 116, 99, 104, 91, 49, 93, 32, 49, 48, 44, 49, 44, 51, 44, 53, 44, 48, 44, 49, 44, 49, 44, 48, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 49, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 53, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 46, 50, 53, 125, 44, 123, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 42, 48, 125, 44, 48, 44, 49, 44, 49, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 48, 125, 10, 9, 9, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 91, 48, 93, 32, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 44, 48, 44, 123, 36, 113, 117, 97, 108, 105, 116, 121, 42, 51, 125, 10, 9, 9, 45, 100, 101, 110, 111, 105, 115, 101, 95, 104, 97, 97, 114, 91, 49, 93, 32, 36, 99, 111, 108, 111, 117, 114, 95, 115, 116, 114, 101, 110, 103, 116, 104, 44, 48, 44, 123, 36, 113, 117, 97, 108, 105, 116, 121, 42, 51, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 111, 118, 101, 91, 45, 49, 93, 32, 48, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 10, 45, 105, 102, 32, 123, 49, 54, 61, 61, 49, 125, 10, 9, 45, 109, 117, 108, 91, 48, 93, 32, 50, 53, 54, 10, 9, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 48, 44, 48, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 51, 50, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 49, 42, 50, 53, 54, 125, 44, 123, 57, 54, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 50, 42, 50, 53, 54, 125, 44, 123, 49, 54, 48, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 51, 42, 50, 53, 54, 125, 44, 123, 50, 50, 51, 42, 50, 53, 54, 125, 44, 123, 36, 112, 111, 105, 110, 116, 52, 42, 50, 53, 54, 125, 44, 123, 50, 56, 55, 42, 50, 53, 54, 125, 10, 9, 35, 35, 32, 45, 110, 32, 48, 44, 123, 50, 53, 54, 42, 50, 53, 54, 125, 10, 9, 45, 100, 105, 118, 91, 48, 93, 32, 50, 53, 54, 10, 9, 45, 101, 108, 115, 101, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 55, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 32, 45, 100, 101, 110, 111, 105, 115, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 32, 45, 100, 111, 110, 101, 34, 44, 36, 56, 44, 48, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 50, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 51, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 50, 53, 37, 44, 50, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 52, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 50, 46, 53, 37, 44, 49, 50, 46, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 95, 53, 58, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 54, 46, 49, 50, 53, 37, 44, 54, 46, 49, 50, 53, 37, 44, 49, 44, 123, 115, 125, 44, 50, 32, 9, 9, 35, 35, 32, 99, 114, 101, 97, 116, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 32, 32, 9, 9, 35, 35, 32, 99, 108, 101, 97, 110, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 32, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 115, 109, 97, 108, 108, 101, 114, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 115, 117, 98, 91, 48, 93, 32, 91, 51, 93, 9, 9, 9, 9, 9, 35, 35, 32, 71, 101, 116, 32, 72, 70, 10, 45, 114, 101, 115, 105, 122, 101, 91, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 53, 9, 9, 35, 35, 32, 82, 101, 115, 105, 122, 101, 32, 99, 108, 101, 97, 110, 32, 116, 111, 32, 105, 109, 97, 103, 101, 91, 48, 93, 32, 115, 105, 122, 101, 10, 45, 45, 97, 100, 100, 91, 50, 93, 32, 91, 52, 93, 9, 9, 9, 9, 9, 35, 35, 32, 77, 101, 114, 103, 101, 32, 72, 70, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 95, 112, 97, 116, 99, 104, 58, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 123, 49, 47, 36, 49, 52, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 53, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 57, 62, 48, 46, 49, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 50, 32, 36, 49, 44, 36, 57, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 48, 62, 48, 46, 49, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 51, 32, 36, 49, 44, 36, 49, 48, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 62, 48, 46, 49, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 52, 32, 36, 49, 44, 36, 49, 49, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 50, 62, 48, 46, 49, 125, 10, 45, 109, 115, 95, 112, 97, 116, 99, 104, 95, 53, 32, 36, 49, 44, 36, 49, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 49, 52, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 109, 115, 109, 101, 100, 50, 58, 10, 109, 101, 100, 108, 118, 108, 50, 61, 50, 10, 109, 101, 100, 108, 118, 108, 51, 61, 51, 10, 109, 101, 100, 108, 118, 108, 52, 61, 52, 10, 109, 101, 100, 108, 118, 108, 53, 61, 54, 10, 109, 101, 100, 108, 118, 108, 54, 61, 54, 10, 109, 101, 100, 108, 118, 108, 55, 61, 55, 10, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 10, 45, 109, 101, 100, 105, 97, 110, 32, 36, 49, 10, 45, 110, 97, 109, 101, 91, 48, 93, 32, 102, 117, 108, 108, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 102, 117, 108, 108, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 109, 101, 100, 108, 118, 108, 50, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 109, 101, 100, 108, 118, 108, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 50, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 102, 117, 108, 108, 44, 108, 111, 119, 50, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 50, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 108, 111, 119, 50, 93, 10, 45, 109, 101, 100, 105, 97, 110, 91, 108, 101, 118, 101, 108, 50, 93, 32, 36, 49, 10, 45, 109, 101, 100, 105, 97, 110, 91, 108, 101, 118, 101, 108, 50, 93, 32, 36, 49, 10, 45, 110, 97, 109, 101, 91, 49, 93, 32, 108, 101, 118, 101, 108, 50, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 50, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 109, 101, 100, 108, 118, 108, 51, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 109, 101, 100, 108, 118, 108, 51, 125, 44, 49, 44, 123, 115, 125, 44, 50, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 51, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 93, 32, 64, 123, 108, 101, 118, 101, 108, 50, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 50, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 51, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 108, 101, 118, 101, 108, 50, 44, 108, 111, 119, 51, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 108, 111, 119, 51, 93, 10, 45, 109, 101, 100, 105, 97, 110, 91, 50, 93, 32, 36, 49, 10, 45, 109, 101, 100, 105, 97, 110, 91, 50, 93, 32, 36, 49, 10, 45, 110, 97, 109, 101, 91, 50, 93, 32, 108, 101, 118, 101, 108, 51, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 51, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 47, 36, 109, 101, 100, 108, 118, 108, 52, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 47, 36, 109, 101, 100, 108, 118, 108, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 52, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 108, 101, 118, 101, 108, 52, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 111, 119, 52, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 108, 101, 118, 101, 108, 51, 44, 108, 111, 119, 52, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 10, 45, 114, 101, 109, 111, 118, 101, 91, 50, 44, 108, 111, 119, 52, 93, 10, 45, 109, 101, 100, 105, 97, 110, 91, 45, 50, 93, 32, 36, 49, 10, 45, 109, 101, 100, 105, 97, 110, 91, 45, 50, 93, 32, 36, 49, 10, 45, 110, 97, 109, 101, 91, 45, 50, 93, 32, 98, 97, 115, 101, 9, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 52, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 9, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 110, 97, 109, 101, 91, 45, 49, 93, 32, 98, 97, 115, 101, 10, 45, 114, 101, 115, 105, 122, 101, 91, 98, 97, 115, 101, 93, 32, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 119, 125, 44, 64, 123, 108, 101, 118, 101, 108, 51, 104, 105, 103, 104, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 9, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 102, 117, 108, 108, 44, 119, 125, 44, 64, 123, 102, 117, 108, 108, 44, 104, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 9, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 110, 114, 53, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 48, 125, 10, 45, 110, 114, 53, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 45, 49, 61, 61, 49, 125, 10, 45, 45, 110, 114, 53, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 48, 44, 36, 55, 44, 36, 56, 44, 48, 44, 36, 49, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 10, 45, 115, 117, 98, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 109, 117, 108, 32, 50, 10, 45, 97, 100, 100, 32, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 115, 105, 109, 112, 108, 101, 32, 108, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 58, 32, 115, 105, 109, 112, 108, 101, 108, 111, 99, 97, 108, 99, 111, 110, 116, 114, 97, 115, 116, 44, 115, 105, 109, 112, 108, 101, 108, 111, 99, 97, 108, 99, 111, 110, 116, 114, 97, 115, 116, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 83, 101, 110, 115, 105, 116, 105, 118, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 54, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 32, 40, 50, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 97, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 112, 114, 101, 45, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 112, 111, 115, 116, 45, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 117, 116, 104, 111, 114, 58, 32, 73, 97, 105, 110, 32, 70, 101, 114, 103, 117, 115, 115, 111, 110, 32, 45, 32, 117, 112, 100, 97, 116, 101, 32, 56, 32, 68, 101, 99, 32, 50, 48, 49, 50, 34, 41, 10, 115, 105, 109, 112, 108, 101, 108, 111, 99, 97, 108, 99, 111, 110, 116, 114, 97, 115, 116, 58, 10, 115, 116, 114, 49, 61, 36, 49, 10, 115, 116, 114, 50, 61, 123, 36, 115, 116, 114, 49, 42, 48, 46, 55, 125, 10, 115, 116, 114, 51, 61, 123, 36, 115, 116, 114, 50, 42, 48, 46, 55, 125, 10, 115, 116, 114, 52, 61, 123, 36, 115, 116, 114, 51, 42, 48, 46, 55, 125, 10, 115, 116, 114, 53, 61, 123, 36, 115, 116, 114, 52, 42, 48, 46, 55, 125, 10, 115, 116, 114, 54, 61, 123, 36, 115, 116, 114, 53, 42, 48, 46, 55, 125, 10, 115, 116, 114, 55, 61, 123, 36, 115, 116, 114, 54, 42, 48, 46, 55, 125, 10, 115, 116, 114, 56, 61, 123, 36, 115, 116, 114, 55, 42, 48, 46, 55, 125, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 53, 10, 45, 99, 111, 110, 116, 116, 101, 115, 116, 52, 32, 36, 52, 44, 36, 115, 116, 114, 49, 44, 36, 115, 116, 114, 50, 44, 36, 115, 116, 114, 51, 44, 36, 115, 116, 114, 52, 44, 36, 115, 116, 114, 53, 44, 36, 115, 116, 114, 54, 44, 36, 115, 116, 114, 55, 44, 36, 115, 116, 114, 56, 44, 36, 50, 44, 36, 51, 44, 36, 51, 44, 36, 51, 44, 36, 51, 44, 36, 51, 44, 36, 51, 44, 50, 44, 49, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 54, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 99, 111, 110, 116, 116, 101, 115, 116, 52, 58, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 115, 109, 111, 111, 116, 104, 98, 97, 115, 101, 52, 91, 45, 49, 93, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 10, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 44, 49, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 45, 115, 109, 111, 111, 116, 104, 98, 97, 115, 101, 52, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 10, 45, 109, 115, 95, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 44, 49, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 109, 117, 108, 91, 45, 49, 93, 32, 50, 32, 45, 97, 100, 100, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 114, 103, 98, 50, 104, 115, 118, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 44, 51, 93, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 115, 109, 111, 111, 116, 104, 98, 97, 115, 101, 52, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 57, 10, 99, 114, 111, 112, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 43, 40, 50, 53, 54, 45, 119, 37, 50, 53, 54, 41, 125, 44, 123, 104, 43, 40, 50, 53, 54, 45, 104, 37, 50, 53, 54, 41, 125, 44, 49, 44, 123, 115, 125, 44, 48, 44, 49, 10, 119, 105, 100, 116, 104, 61, 123, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 123, 104, 125, 10, 45, 105, 102, 32, 123, 36, 49, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 48, 93, 32, 49, 48, 44, 36, 49, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 119, 105, 100, 116, 104, 44, 36, 104, 101, 105, 103, 104, 116, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 50, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 50, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 49, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 51, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 52, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 52, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 51, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 53, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 52, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 54, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 54, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 53, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 55, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 55, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 54, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 56, 33, 61, 48, 125, 10, 45, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 44, 36, 56, 44, 51, 44, 53, 44, 48, 44, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 53, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 53, 54, 125, 44, 49, 44, 123, 115, 125, 44, 50, 44, 49, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 55, 44, 45, 49, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 50, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 50, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 54, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 54, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 51, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 51, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 54, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 54, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 56, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 56, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 52, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 52, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 50, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 50, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 119, 105, 100, 116, 104, 47, 49, 125, 44, 123, 36, 104, 101, 105, 103, 104, 116, 47, 49, 125, 44, 49, 44, 123, 115, 125, 44, 51, 44, 49, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 46, 53, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 123, 36, 99, 114, 111, 112, 119, 105, 100, 116, 104, 45, 49, 125, 44, 123, 36, 99, 114, 111, 112, 104, 101, 105, 103, 104, 116, 45, 49, 125, 10, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 115, 112, 111, 116, 95, 109, 97, 115, 107, 58, 32, 115, 112, 111, 116, 95, 109, 97, 115, 107, 44, 115, 112, 111, 116, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 111, 116, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 52, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 115, 107, 32, 68, 105, 108, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 32, 40, 53, 44, 48, 44, 49, 48, 41, 10, 115, 112, 111, 116, 95, 109, 97, 115, 107, 58, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 123, 119, 47, 36, 49, 125, 44, 123, 104, 47, 36, 49, 125, 44, 49, 44, 51, 44, 50, 32, 9, 9, 10, 45, 45, 105, 97, 105, 110, 95, 112, 105, 120, 101, 108, 95, 100, 101, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 44, 48, 10, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 97, 98, 115, 91, 45, 49, 93, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 93, 10, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 45, 49, 93, 32, 36, 50, 37, 10, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 51, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 51, 44, 51, 9, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 115, 112, 111, 116, 95, 109, 97, 115, 107, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 45, 115, 112, 111, 116, 95, 109, 97, 115, 107, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 100, 100, 91, 48, 93, 32, 91, 49, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 97, 114, 95, 116, 111, 110, 101, 58, 32, 115, 116, 97, 114, 95, 116, 111, 110, 101, 44, 32, 115, 116, 97, 114, 95, 116, 111, 110, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 49, 48, 44, 50, 48, 48, 41, 10, 115, 116, 97, 114, 95, 116, 111, 110, 101, 58, 10, 115, 120, 49, 61, 53, 48, 10, 115, 120, 50, 61, 49, 57, 52, 10, 115, 120, 51, 61, 50, 56, 49, 10, 115, 120, 52, 61, 53, 49, 49, 10, 115, 120, 53, 61, 55, 52, 50, 10, 115, 120, 54, 61, 56, 50, 57, 10, 115, 120, 55, 61, 57, 55, 50, 10, 115, 120, 56, 61, 56, 50, 57, 10, 115, 120, 57, 61, 55, 52, 50, 10, 115, 120, 49, 48, 61, 53, 49, 49, 10, 115, 120, 49, 49, 61, 50, 56, 49, 10, 115, 120, 49, 50, 61, 49, 57, 50, 10, 115, 121, 49, 61, 52, 53, 48, 10, 115, 121, 50, 61, 54, 51, 51, 10, 115, 121, 51, 61, 56, 52, 57, 10, 115, 121, 52, 61, 56, 49, 55, 10, 115, 121, 53, 61, 56, 52, 57, 10, 115, 121, 54, 61, 54, 51, 51, 10, 115, 121, 55, 61, 52, 53, 48, 10, 115, 121, 56, 61, 50, 54, 55, 10, 115, 121, 57, 61, 53, 48, 10, 115, 121, 49, 48, 61, 56, 51, 10, 115, 121, 49, 49, 61, 53, 48, 10, 115, 121, 49, 50, 61, 50, 54, 55, 10, 108, 101, 118, 101, 108, 61, 49, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 108, 10, 45, 114, 109, 10, 50, 48, 48, 48, 44, 50, 48, 48, 48, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 56, 10, 45, 112, 111, 108, 121, 103, 111, 110, 32, 49, 50, 44, 36, 115, 120, 49, 44, 36, 115, 121, 49, 44, 36, 115, 120, 50, 44, 36, 115, 121, 50, 44, 36, 115, 120, 51, 44, 36, 115, 121, 51, 44, 36, 115, 120, 52, 44, 36, 115, 121, 52, 44, 36, 115, 120, 53, 44, 36, 115, 121, 53, 44, 36, 115, 120, 54, 44, 36, 115, 121, 54, 44, 36, 115, 120, 55, 44, 36, 115, 121, 55, 44, 36, 115, 120, 56, 44, 36, 115, 121, 56, 44, 36, 115, 120, 57, 44, 36, 115, 121, 57, 44, 36, 115, 120, 49, 48, 44, 36, 115, 121, 49, 48, 44, 36, 115, 120, 49, 49, 44, 36, 115, 121, 49, 49, 44, 36, 115, 120, 49, 50, 44, 36, 115, 121, 49, 50, 44, 49, 44, 36, 108, 101, 118, 101, 108, 10, 115, 120, 50, 61, 123, 36, 115, 120, 50, 43, 52, 48, 125, 10, 115, 120, 54, 61, 123, 36, 115, 120, 54, 45, 52, 48, 125, 10, 115, 120, 56, 61, 123, 36, 115, 120, 56, 45, 52, 48, 125, 10, 115, 120, 49, 50, 61, 123, 36, 115, 120, 49, 50, 43, 52, 48, 125, 10, 115, 121, 50, 61, 123, 36, 115, 121, 50, 45, 50, 51, 125, 10, 115, 121, 52, 61, 123, 36, 115, 121, 52, 45, 52, 55, 125, 10, 115, 121, 54, 61, 123, 36, 115, 121, 54, 45, 50, 51, 125, 10, 115, 121, 56, 61, 123, 36, 115, 121, 56, 43, 50, 51, 125, 10, 115, 121, 49, 48, 61, 123, 36, 115, 121, 49, 48, 43, 52, 55, 125, 10, 115, 121, 49, 50, 61, 123, 36, 115, 121, 49, 50, 43, 50, 51, 125, 10, 108, 101, 118, 101, 108, 61, 123, 36, 108, 101, 118, 101, 108, 43, 50, 53, 125, 10, 45, 100, 111, 110, 101, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 48, 44, 50, 48, 48, 44, 49, 44, 49, 44, 51, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 54, 57, 44, 45, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 45, 54, 57, 44, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 54, 57, 44, 45, 52, 48, 44, 48, 44, 48, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 54, 57, 44, 52, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 10, 45, 99, 114, 111, 112, 32, 53, 44, 53, 44, 49, 52, 50, 44, 56, 52, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 49, 44, 36, 49, 44, 49, 44, 49, 44, 50, 10, 119, 105, 100, 116, 104, 61, 64, 123, 45, 49, 44, 119, 125, 10, 104, 101, 105, 103, 104, 116, 61, 64, 123, 45, 49, 44, 104, 125, 10, 119, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 119, 125, 47, 36, 119, 105, 100, 116, 104, 41, 125, 10, 104, 95, 116, 105, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 36, 104, 101, 105, 103, 104, 116, 41, 125, 10, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 61, 36, 104, 95, 116, 105, 108, 101, 115, 42, 36, 119, 95, 116, 105, 108, 101, 115, 10, 91, 45, 49, 93, 120, 123, 36, 116, 111, 116, 97, 108, 95, 116, 105, 108, 101, 115, 45, 49, 125, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 49, 45, 45, 49, 93, 32, 36, 119, 95, 116, 105, 108, 101, 115, 44, 36, 104, 95, 116, 105, 108, 101, 115, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 48, 46, 53, 44, 49, 10, 45, 103, 116, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 50, 53, 53, 10, 35, 64, 103, 105, 109, 112, 32, 116, 117, 114, 98, 117, 108, 101, 110, 116, 32, 72, 97, 108, 102, 116, 111, 110, 101, 58, 32, 105, 97, 105, 110, 95, 116, 117, 114, 98, 117, 108, 101, 110, 116, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 44, 32, 105, 97, 105, 110, 95, 116, 117, 114, 98, 117, 108, 101, 110, 116, 95, 104, 97, 108, 102, 116, 111, 110, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 118, 105, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 105, 108, 101, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 49, 50, 44, 49, 50, 56, 44, 50, 48, 52, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 98, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 99, 111, 108, 111, 117, 114, 32, 109, 111, 100, 101, 108, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 82, 71, 66, 34, 44, 34, 67, 77, 89, 75, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 101, 110, 104, 97, 110, 99, 101, 32, 100, 101, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 105, 97, 105, 110, 95, 116, 117, 114, 98, 117, 108, 101, 110, 116, 95, 104, 97, 108, 102, 116, 111, 110, 101, 58, 10, 45, 105, 102, 32, 123, 36, 56, 62, 48, 125, 10, 45, 45, 105, 97, 105, 110, 95, 102, 97, 115, 116, 95, 100, 101, 110, 111, 105, 115, 101, 32, 36, 56, 44, 48, 44, 49, 44, 48, 44, 48, 10, 45, 115, 117, 98, 91, 49, 93, 32, 91, 48, 93, 10, 45, 109, 117, 108, 91, 49, 93, 32, 45, 49, 10, 45, 97, 100, 100, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 10, 45, 114, 103, 98, 50, 99, 109, 121, 107, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 50, 125, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 115, 112, 108, 105, 116, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 45, 108, 91, 48, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 116, 115, 105, 122, 101, 61, 123, 109, 105, 110, 40, 36, 53, 44, 119, 44, 104, 41, 125, 10, 120, 116, 105, 108, 101, 61, 123, 40, 114, 111, 117, 110, 100, 40, 119, 47, 36, 116, 115, 105, 122, 101, 41, 41, 43, 49, 125, 10, 121, 116, 105, 108, 101, 61, 123, 40, 114, 111, 117, 110, 100, 40, 104, 47, 36, 116, 115, 105, 122, 101, 41, 41, 43, 49, 125, 10, 36, 116, 115, 105, 122, 101, 44, 36, 116, 115, 105, 122, 101, 10, 45, 103, 105, 109, 112, 95, 115, 101, 97, 109, 108, 101, 115, 115, 95, 116, 117, 114, 98, 117, 108, 101, 110, 99, 101, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 46, 50, 53, 44, 48, 10, 91, 45, 49, 93, 120, 123, 36, 120, 116, 105, 108, 101, 42, 36, 121, 116, 105, 108, 101, 125, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 91, 49, 45, 45, 49, 93, 32, 36, 120, 116, 105, 108, 101, 44, 36, 121, 116, 105, 108, 101, 10, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 44, 48, 44, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 54, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 48, 46, 53, 44, 49, 10, 45, 103, 116, 32, 49, 50, 56, 10, 45, 109, 117, 108, 32, 50, 53, 53, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 10, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 110, 100, 105, 102, 10, 105, 97, 105, 110, 95, 116, 117, 114, 98, 117, 108, 101, 110, 116, 95, 104, 97, 108, 102, 116, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 105, 97, 105, 110, 95, 116, 117, 114, 98, 117, 108, 101, 110, 116, 95, 104, 97, 108, 102, 116, 111, 110, 101, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 44, 64, 123, 48, 44, 119, 125, 44, 36, 54, 44, 36, 55, 44, 36, 56, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 74, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 51, 68, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 58, 32, 106, 101, 106, 101, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 32, 106, 101, 106, 101, 95, 114, 101, 110, 100, 101, 114, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 56, 44, 52, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 108, 105, 116, 121, 32, 61, 32, 105, 110, 116, 40, 54, 44, 50, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 88, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 52, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 89, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 90, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 111, 111, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 112, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 51, 50, 44, 51, 50, 44, 54, 52, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 116, 116, 111, 109, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 54, 52, 44, 49, 50, 56, 44, 57, 54, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 65, 100, 106, 117, 115, 116, 32, 116, 104, 101, 32, 51, 68, 32, 118, 105, 101, 119, 32, 102, 105, 114, 115, 116, 32, 97, 110, 100, 32, 116, 104, 101, 110, 32, 101, 110, 97, 98, 108, 101, 32, 114, 101, 110, 100, 101, 114, 32, 116, 111, 32, 99, 111, 109, 112, 117, 116, 101, 32, 116, 104, 101, 32, 118, 111, 108, 117, 109, 101, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 114, 101, 110, 100, 101, 114, 51, 100, 58, 10, 87, 61, 64, 123, 48, 44, 119, 125, 10, 49, 44, 50, 44, 49, 44, 52, 32, 45, 102, 91, 45, 49, 93, 32, 36, 57, 44, 36, 49, 51, 44, 36, 49, 48, 44, 36, 49, 52, 44, 36, 49, 49, 44, 36, 49, 53, 44, 36, 49, 50, 44, 36, 49, 54, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 52, 44, 53, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 10, 45, 105, 32, 36, 49, 32, 45, 97, 91, 49, 45, 45, 49, 93, 32, 122, 10, 45, 108, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 55, 32, 45, 100, 105, 115, 112, 108, 97, 121, 118, 111, 108, 117, 109, 101, 32, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 101, 108, 115, 101, 32, 32, 45, 98, 111, 117, 110, 100, 105, 110, 103, 98, 111, 120, 51, 100, 32, 50, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 48, 44, 48, 44, 49, 44, 36, 55, 10, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 48, 44, 49, 44, 48, 44, 36, 54, 10, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 53, 10, 45, 99, 51, 100, 32, 45, 110, 51, 100, 32, 45, 42, 51, 100, 32, 123, 51, 42, 36, 87, 42, 36, 56, 47, 52, 125, 10, 45, 101, 110, 100, 108, 10, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 48, 93, 32, 91, 49, 93, 44, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 49, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 114, 109, 91, 49, 93, 10, 106, 101, 106, 101, 95, 114, 101, 110, 100, 101, 114, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 106, 101, 106, 101, 95, 114, 101, 110, 100, 101, 114, 51, 100, 32, 36, 42, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 58, 32, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 44, 32, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 101, 112, 101, 97, 116, 32, 61, 32, 105, 110, 116, 32, 40, 49, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 10, 45, 45, 108, 111, 99, 97, 108, 118, 97, 114, 105, 97, 110, 99, 101, 32, 36, 49, 32, 45, 115, 113, 114, 116, 91, 45, 49, 93, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 36, 51, 10, 45, 45, 98, 108, 117, 114, 91, 48, 93, 32, 36, 49, 44, 49, 44, 49, 32, 45, 45, 45, 91, 48, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 91, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 107, 91, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 76, 111, 99, 97, 108, 32, 87, 105, 101, 110, 101, 114, 32, 58, 32, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 44, 32, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 46, 53, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 32, 58, 10, 45, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 32, 36, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 32, 36, 49, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 116, 114, 105, 112, 32, 58, 32, 106, 101, 106, 101, 95, 115, 116, 114, 105, 112, 44, 32, 106, 101, 106, 101, 95, 115, 116, 114, 105, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 32, 61, 32, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 115, 116, 114, 105, 112, 32, 58, 10, 116, 104, 101, 116, 97, 61, 123, 112, 105, 42, 36, 49, 47, 49, 56, 48, 125, 10, 45, 102, 32, 39, 48, 46, 53, 42, 105, 42, 40, 49, 43, 36, 52, 42, 115, 105, 110, 40, 50, 42, 112, 105, 42, 36, 50, 42, 40, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 42, 120, 47, 119, 43, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 42, 121, 47, 104, 41, 43, 50, 42, 112, 105, 42, 36, 51, 47, 49, 56, 48, 41, 41, 39, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 106, 101, 106, 101, 95, 115, 116, 114, 105, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 115, 116, 114, 105, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 105, 108, 116, 32, 83, 104, 105, 102, 116, 32, 58, 32, 106, 101, 106, 101, 95, 116, 105, 108, 116, 95, 115, 104, 105, 102, 116, 44, 32, 106, 101, 106, 101, 95, 116, 105, 108, 116, 95, 115, 104, 105, 102, 116, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 51, 44, 50, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 116, 105, 108, 116, 95, 115, 104, 105, 102, 116, 58, 10, 116, 104, 101, 116, 97, 61, 123, 112, 105, 42, 40, 57, 48, 45, 36, 49, 41, 47, 49, 56, 48, 125, 10, 115, 99, 97, 108, 101, 61, 123, 51, 42, 36, 51, 47, 109, 105, 110, 40, 119, 44, 104, 41, 42, 49, 48, 48, 125, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 10, 45, 102, 91, 45, 49, 93, 32, 39, 40, 49, 45, 101, 120, 112, 40, 45, 46, 53, 42, 40, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 42, 40, 120, 45, 119, 47, 50, 41, 43, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 42, 40, 121, 45, 104, 47, 50, 41, 43, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 49, 48, 48, 41, 94, 50, 47, 40, 36, 115, 99, 97, 108, 101, 42, 36, 115, 99, 97, 108, 101, 41, 41, 41, 39, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 52, 32, 45, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 32, 32, 45, 100, 111, 110, 101, 32, 32, 45, 97, 91, 49, 45, 45, 49, 93, 32, 122, 10, 45, 108, 91, 48, 93, 32, 45, 116, 111, 110, 101, 115, 32, 123, 36, 52, 43, 49, 125, 32, 45, 98, 108, 117, 114, 32, 49, 32, 45, 97, 32, 122, 32, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 42, 32, 32, 45, 115, 32, 122, 32, 45, 43, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 106, 101, 106, 101, 95, 116, 105, 108, 116, 95, 115, 104, 105, 102, 116, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 116, 105, 108, 116, 95, 115, 104, 105, 102, 116, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 85, 110, 115, 116, 114, 105, 112, 32, 58, 32, 106, 101, 106, 101, 95, 117, 110, 115, 116, 114, 105, 112, 44, 32, 106, 101, 106, 101, 95, 117, 110, 115, 116, 114, 105, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 70, 84, 32, 112, 114, 101, 118, 105, 101, 119, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 74, 38, 35, 50, 51, 51, 59, 114, 38, 35, 50, 52, 52, 59, 109, 101, 32, 66, 111, 117, 108, 97, 110, 103, 101, 114, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 54, 47, 49, 48, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 101, 106, 101, 95, 117, 110, 115, 116, 114, 105, 112, 32, 58, 10, 45, 117, 110, 115, 116, 114, 105, 112, 32, 36, 49, 44, 36, 50, 10, 45, 105, 102, 32, 36, 52, 32, 45, 116, 97, 112, 101, 32, 45, 112, 111, 119, 101, 114, 115, 112, 101, 99, 116, 114, 117, 109, 32, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 45, 36, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 106, 101, 106, 101, 95, 117, 110, 115, 116, 114, 105, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 106, 101, 106, 101, 95, 117, 110, 115, 116, 114, 105, 112, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 36, 52, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 111, 117, 116, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 106, 112, 114, 95, 97, 98, 111, 117, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 64, 106, 97, 121, 112, 114, 105, 99, 104, 32, 102, 105, 108, 116, 101, 114, 115, 32, 102, 111, 114, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 92, 110, 97, 114, 101, 32, 112, 114, 111, 112, 111, 115, 101, 100, 32, 116, 111, 32, 121, 111, 117, 32, 98, 121, 32, 74, 97, 109, 101, 115, 32, 80, 114, 105, 99, 104, 97, 114, 100, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 104, 45, 112, 115, 46, 100, 101, 109, 111, 110, 46, 99, 111, 46, 117, 107, 47, 71, 77, 73, 67, 47, 106, 97, 121, 112, 114, 105, 99, 104, 46, 103, 109, 105, 99, 34, 125, 10, 106, 112, 114, 95, 97, 98, 111, 117, 116, 32, 58, 32, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 64, 106, 97, 121, 112, 114, 105, 99, 104, 32, 102, 105, 108, 116, 101, 114, 115, 34, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 99, 111, 108, 111, 117, 114, 105, 108, 108, 117, 115, 105, 111, 110, 32, 58, 32, 106, 112, 114, 95, 99, 111, 108, 111, 117, 114, 105, 108, 108, 117, 115, 105, 111, 110, 44, 106, 112, 114, 95, 99, 111, 108, 111, 117, 114, 105, 108, 108, 117, 115, 105, 111, 110, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 114, 101, 99, 114, 101, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 97, 32, 74, 97, 118, 97, 32, 101, 120, 97, 109, 112, 108, 101, 32, 104, 116, 116, 112, 58, 47, 47, 102, 105, 106, 105, 46, 115, 99, 47, 119, 105, 107, 105, 47, 32, 115, 101, 101, 32, 83, 112, 105, 114, 97, 108, 115, 32, 77, 97, 99, 114, 111, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 114, 109, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 53, 44, 49, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 70, 101, 98, 45, 48, 54, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 99, 111, 108, 111, 117, 114, 105, 108, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 118, 32, 45, 10, 97, 114, 109, 61, 123, 36, 49, 42, 49, 46, 53, 45, 49, 125, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 65, 61, 49, 48, 43, 97, 116, 97, 110, 50, 40, 120, 45, 123, 119, 47, 50, 125, 44, 121, 45, 123, 104, 47, 50, 125, 41, 42, 36, 97, 114, 109, 47, 112, 105, 59, 82, 61, 115, 113, 114, 116, 40, 40, 120, 45, 123, 119, 47, 50, 125, 41, 94, 50, 43, 40, 121, 45, 123, 104, 47, 50, 125, 41, 94, 50, 41, 47, 36, 50, 43, 65, 59, 40, 105, 110, 116, 40, 65, 43, 82, 47, 36, 97, 114, 109, 41, 43, 105, 110, 116, 40, 82, 42, 54, 45, 65, 47, 36, 97, 114, 109, 41, 37, 50, 41, 37, 51, 10, 40, 50, 53, 48, 44, 50, 48, 48, 44, 48, 94, 50, 48, 44, 50, 48, 48, 44, 49, 57, 48, 94, 49, 54, 48, 44, 49, 48, 48, 44, 49, 53, 48, 41, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 107, 91, 45, 50, 93, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 99, 111, 108, 116, 101, 120, 105, 110, 100, 101, 120, 32, 58, 32, 106, 112, 114, 95, 99, 111, 108, 116, 101, 120, 105, 110, 100, 101, 120, 44, 106, 112, 114, 95, 99, 111, 108, 116, 101, 120, 105, 110, 100, 101, 120, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 73, 110, 100, 101, 120, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 117, 115, 105, 110, 103, 32, 105, 116, 115, 32, 99, 111, 108, 111, 117, 114, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 112, 108, 117, 115, 32, 116, 104, 101, 32, 108, 111, 99, 97, 108, 32, 97, 110, 97, 108, 121, 115, 105, 115, 32, 111, 102, 32, 105, 116, 115, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 99, 104, 97, 110, 110, 101, 108, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 73, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 113, 117, 101, 115, 116, 105, 111, 110, 115, 32, 111, 110, 32, 109, 97, 115, 107, 105, 110, 103, 32, 102, 111, 114, 32, 115, 105, 109, 105, 108, 97, 114, 32, 116, 101, 120, 116, 117, 114, 101, 115, 32, 97, 110, 100, 32, 104, 111, 119, 32, 116, 111, 32, 109, 97, 107, 101, 32, 112, 111, 115, 116, 101, 114, 32, 97, 114, 116, 32, 102, 114, 111, 109, 32, 97, 32, 112, 104, 111, 116, 111, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 87, 97, 116, 99, 104, 32, 111, 117, 116, 32, 102, 111, 114, 32, 74, 80, 69, 71, 32, 98, 108, 111, 99, 107, 45, 97, 114, 116, 105, 102, 97, 99, 116, 115, 32, 105, 110, 32, 99, 111, 108, 111, 117, 114, 32, 99, 104, 97, 110, 110, 101, 108, 115, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 84, 121, 112, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 51, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 40, 88, 49, 44, 89, 49, 41, 32, 118, 115, 32, 40, 88, 50, 44, 89, 50, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 112, 108, 97, 121, 32, 40, 88, 44, 89, 41, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 61, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 89, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 97, 99, 107, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 100, 116, 111, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 57, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 61, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 108, 111, 117, 114, 32, 38, 97, 109, 112, 59, 32, 84, 101, 120, 116, 117, 114, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 117, 114, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 61, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 76, 111, 99, 97, 108, 108, 121, 32, 65, 118, 101, 114, 97, 103, 101, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 78, 111, 114, 109, 32, 111, 114, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 102, 114, 111, 109, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 78, 111, 114, 109, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 49, 44, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 101, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 46, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 77, 97, 114, 45, 49, 55, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 99, 111, 108, 116, 101, 120, 105, 110, 100, 101, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 55, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 73, 110, 100, 101, 120, 32, 99, 111, 108, 111, 117, 114, 32, 97, 110, 100, 32, 116, 101, 120, 116, 117, 114, 101, 32, 111, 102, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 36, 49, 32, 116, 121, 112, 101, 115, 32, 40, 36, 50, 44, 36, 51, 41, 32, 118, 32, 40, 36, 52, 44, 36, 53, 41, 32, 120, 32, 36, 54, 32, 97, 110, 100, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 56, 32, 66, 108, 97, 99, 107, 32, 36, 57, 32, 77, 105, 100, 32, 36, 49, 48, 32, 87, 104, 105, 116, 101, 32, 36, 49, 49, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 60, 93, 10, 45, 114, 103, 98, 50, 121, 117, 118, 32, 45, 115, 32, 99, 10, 45, 45, 98, 91, 45, 51, 93, 32, 36, 56, 10, 45, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 48, 10, 45, 45, 108, 101, 91, 45, 50, 93, 32, 36, 49, 49, 10, 45, 103, 101, 91, 45, 51, 93, 32, 36, 57, 10, 45, 98, 91, 45, 53, 44, 45, 52, 93, 32, 36, 49, 50, 10, 45, 105, 102, 32, 36, 49, 51, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 54, 93, 32, 120, 121, 44, 52, 10, 45, 97, 91, 45, 55, 44, 45, 54, 93, 32, 99, 10, 45, 110, 111, 114, 109, 91, 45, 54, 93, 10, 45, 98, 91, 45, 54, 93, 32, 36, 49, 52, 10, 45, 101, 108, 115, 101, 10, 45, 45, 98, 91, 45, 54, 93, 32, 123, 36, 49, 52, 42, 48, 46, 53, 125, 10, 45, 45, 91, 45, 55, 44, 45, 49, 93, 10, 45, 115, 113, 114, 91, 45, 54, 93, 10, 45, 98, 91, 45, 54, 93, 32, 123, 36, 49, 52, 125, 10, 45, 115, 113, 114, 116, 91, 45, 54, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 54, 93, 32, 48, 44, 49, 10, 45, 42, 91, 45, 54, 93, 32, 36, 49, 53, 10, 45, 45, 45, 91, 45, 54, 93, 32, 123, 64, 123, 45, 54, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 50, 44, 48, 46, 48, 49, 42, 104, 42, 36, 51, 41, 125, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 49, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 52, 44, 48, 46, 48, 49, 42, 104, 42, 36, 53, 41, 125, 125, 10, 45, 45, 45, 91, 45, 54, 93, 32, 123, 64, 123, 45, 54, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 50, 44, 48, 46, 48, 49, 42, 104, 42, 36, 51, 41, 125, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 49, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 52, 44, 48, 46, 48, 49, 42, 104, 42, 36, 53, 41, 125, 125, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 45, 91, 45, 53, 93, 32, 123, 64, 123, 45, 53, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 50, 44, 48, 46, 48, 49, 42, 104, 42, 36, 51, 41, 125, 125, 10, 45, 42, 91, 45, 49, 93, 32, 123, 64, 123, 45, 49, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 52, 44, 48, 46, 48, 49, 42, 104, 42, 36, 53, 41, 125, 125, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 47, 91, 45, 49, 93, 32, 123, 64, 123, 45, 49, 44, 105, 40, 48, 46, 48, 49, 42, 119, 42, 36, 52, 44, 48, 46, 48, 49, 42, 104, 42, 36, 53, 41, 125, 43, 48, 46, 48, 48, 48, 48, 49, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 42, 91, 45, 49, 93, 32, 36, 54, 10, 45, 97, 91, 45, 55, 45, 45, 53, 44, 45, 49, 93, 32, 99, 10, 45, 45, 91, 45, 52, 93, 32, 50, 10, 45, 42, 91, 45, 52, 44, 45, 49, 93, 10, 45, 43, 91, 45, 51, 93, 32, 50, 10, 45, 42, 91, 45, 51, 44, 45, 50, 93, 10, 45, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 45, 50, 93, 32, 36, 49, 44, 49, 44, 49, 10, 45, 105, 110, 100, 101, 120, 91, 45, 51, 93, 32, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 42, 91, 45, 50, 93, 32, 50, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 105, 102, 32, 36, 55, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 50, 37, 44, 36, 51, 37, 44, 49, 37, 44, 49, 44, 44, 54, 52, 44, 49, 50, 56, 44, 50, 53, 53, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 52, 37, 44, 36, 53, 37, 44, 49, 37, 44, 49, 44, 44, 50, 53, 53, 44, 54, 52, 44, 49, 50, 56, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 100, 101, 99, 105, 109, 97, 116, 101, 32, 58, 32, 106, 112, 114, 95, 100, 101, 99, 105, 109, 97, 116, 101, 44, 106, 112, 114, 95, 100, 101, 99, 105, 109, 97, 116, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 82, 101, 115, 99, 97, 108, 101, 32, 105, 110, 32, 108, 105, 110, 101, 97, 114, 32, 82, 71, 66, 32, 115, 112, 97, 99, 101, 32, 98, 121, 32, 99, 114, 111, 112, 112, 105, 110, 103, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 100, 111, 109, 97, 105, 110, 32, 119, 101, 105, 103, 104, 116, 101, 100, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 116, 111, 32, 100, 101, 99, 114, 101, 97, 115, 101, 32, 104, 105, 103, 104, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 97, 107, 105, 110, 32, 116, 111, 32, 76, 97, 110, 99, 122, 111, 115, 32, 119, 105, 110, 100, 111, 119, 32, 111, 110, 32, 83, 105, 110, 99, 32, 108, 111, 98, 101, 115, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 109, 97, 121, 32, 99, 111, 114, 114, 117, 112, 116, 32, 116, 104, 101, 32, 97, 108, 112, 104, 97, 32, 99, 104, 97, 110, 110, 101, 108, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 72, 105, 103, 104, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 106, 117, 115, 116, 32, 99, 114, 111, 112, 115, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 97, 110, 100, 32, 103, 105, 118, 101, 115, 32, 98, 97, 100, 32, 104, 97, 108, 111, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 111, 119, 110, 115, 97, 109, 112, 108, 101, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 55, 53, 44, 48, 46, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 49, 46, 53, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 74, 117, 110, 45, 50, 52, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 100, 101, 99, 105, 109, 97, 116, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 48, 46, 51, 55, 53, 125, 44, 36, 123, 50, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 99, 105, 109, 97, 116, 101, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 115, 104, 97, 114, 112, 110, 101, 115, 115, 32, 36, 50, 34, 10, 45, 118, 32, 45, 10, 45, 115, 114, 103, 98, 50, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 60, 93, 10, 110, 119, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 119, 47, 50, 41, 125, 10, 110, 104, 61, 123, 114, 111, 117, 110, 100, 40, 36, 49, 42, 104, 47, 50, 41, 125, 10, 115, 99, 61, 123, 52, 42, 36, 110, 119, 47, 119, 42, 36, 110, 104, 47, 104, 125, 10, 109, 105, 100, 61, 123, 114, 111, 117, 110, 100, 40, 48, 46, 53, 47, 36, 49, 45, 48, 46, 53, 41, 125, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 109, 105, 100, 44, 45, 36, 109, 105, 100, 10, 45, 102, 102, 116, 10, 45, 115, 104, 105, 102, 116, 32, 36, 110, 119, 44, 36, 110, 104, 44, 48, 44, 48, 44, 50, 10, 45, 122, 32, 48, 44, 48, 44, 123, 50, 42, 36, 110, 119, 45, 49, 125, 44, 123, 50, 42, 36, 110, 104, 45, 49, 125, 10, 45, 115, 104, 105, 102, 116, 32, 45, 36, 110, 119, 44, 45, 36, 110, 104, 44, 48, 44, 48, 44, 50, 10, 45, 102, 32, 105, 42, 109, 105, 110, 40, 49, 44, 97, 98, 115, 40, 50, 42, 120, 47, 119, 45, 49, 41, 42, 36, 50, 41, 42, 109, 105, 110, 40, 49, 44, 97, 98, 115, 40, 50, 42, 121, 47, 104, 45, 49, 41, 42, 36, 50, 41, 10, 45, 105, 102, 102, 116, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 42, 32, 36, 115, 99, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 114, 103, 98, 50, 115, 114, 103, 98, 10, 45, 118, 32, 43, 10, 116, 105, 102, 102, 51, 100, 32, 58, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 97, 100, 32, 116, 104, 101, 32, 102, 105, 108, 101, 32, 36, 49, 32, 97, 115, 32, 97, 32, 51, 68, 32, 105, 109, 97, 103, 101, 34, 10, 45, 118, 32, 45, 32, 110, 61, 64, 35, 10, 45, 105, 32, 36, 49, 32, 45, 97, 91, 123, 36, 110, 125, 45, 45, 49, 93, 32, 122, 10, 45, 118, 32, 43, 10, 116, 111, 102, 102, 51, 100, 32, 58, 32, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 97, 118, 101, 32, 116, 104, 101, 32, 51, 68, 32, 105, 109, 97, 103, 101, 32, 97, 115, 32, 97, 32, 116, 105, 102, 102, 32, 102, 105, 108, 101, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 111, 91, 36, 62, 93, 32, 64, 123, 34, 45, 102, 105, 108, 101, 110, 97, 109, 101, 32, 92, 34, 36, 49, 92, 34, 44, 34, 36, 62, 125, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 98, 111, 117, 110, 100, 105, 110, 103, 98, 111, 120, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 51, 68, 32, 66, 111, 117, 110, 100, 105, 110, 103, 32, 98, 111, 120, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 98, 111, 120, 51, 100, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 64, 123, 48, 44, 100, 125, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 32, 45, 111, 112, 97, 99, 105, 116, 121, 51, 100, 91, 45, 49, 93, 32, 46, 50, 53, 10, 45, 105, 102, 32, 123, 36, 49, 62, 48, 125, 10, 45, 112, 108, 97, 110, 101, 51, 100, 32, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 36, 49, 44, 123, 114, 111, 117, 110, 100, 40, 64, 123, 48, 44, 104, 125, 47, 64, 123, 48, 44, 119, 125, 42, 36, 49, 41, 125, 32, 45, 112, 114, 105, 109, 105, 116, 105, 118, 101, 115, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 111, 112, 97, 99, 105, 116, 121, 51, 100, 91, 45, 49, 93, 32, 46, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 48, 93, 10, 45, 43, 51, 100, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 114, 101, 110, 100, 101, 114, 118, 111, 108, 117, 109, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 56, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 80, 115, 101, 117, 100, 111, 32, 118, 111, 108, 117, 109, 105, 99, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 111, 102, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 113, 117, 97, 108, 105, 116, 121, 32, 36, 50, 32, 97, 110, 100, 32, 111, 112, 97, 99, 116, 105, 121, 32, 36, 51, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 109, 105, 114, 114, 111, 114, 32, 120, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 45, 108, 91, 48, 93, 10, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 50, 32, 123, 40, 36, 62, 43, 49, 41, 47, 40, 36, 50, 43, 49, 41, 42, 40, 105, 77, 45, 105, 109, 41, 43, 105, 109, 125, 44, 123, 40, 36, 62, 43, 50, 41, 47, 40, 36, 50, 43, 49, 41, 42, 40, 105, 77, 45, 105, 109, 41, 43, 105, 109, 43, 49, 125, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 45, 103, 97, 117, 115, 115, 105, 97, 110, 115, 51, 100, 32, 36, 49, 44, 123, 36, 51, 42, 40, 36, 60, 43, 49, 41, 47, 36, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 32, 45, 43, 51, 100, 32, 45, 109, 100, 51, 100, 32, 45, 49, 32, 32, 45, 43, 51, 100, 32, 123, 46, 53, 125, 44, 123, 46, 53, 125, 44, 123, 46, 53, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 115, 112, 108, 97, 121, 118, 111, 108, 117, 109, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 56, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 100, 105, 115, 112, 108, 97, 121, 95, 118, 111, 108, 117, 109, 101, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 32, 113, 117, 97, 108, 105, 116, 121, 32, 36, 50, 32, 97, 110, 100, 32, 111, 112, 97, 99, 116, 105, 121, 32, 36, 51, 34, 10, 45, 118, 32, 45, 10, 45, 45, 98, 111, 117, 110, 100, 105, 110, 103, 98, 111, 120, 51, 100, 32, 50, 48, 10, 45, 114, 101, 110, 100, 101, 114, 118, 111, 108, 117, 109, 101, 91, 48, 93, 32, 36, 49, 44, 36, 50, 44, 36, 51, 10, 45, 43, 51, 100, 10, 45, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 51, 100, 32, 48, 44, 48, 44, 48, 10, 45, 118, 32, 43, 10, 118, 105, 101, 119, 51, 100, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 125, 44, 36, 123, 50, 61, 45, 49, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 51, 68, 32, 118, 105, 101, 119, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 48, 44, 48, 44, 49, 44, 36, 49, 32, 45, 114, 111, 116, 97, 116, 101, 51, 100, 32, 49, 44, 48, 44, 48, 44, 36, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 10, 45, 101, 32, 34, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 32, 99, 111, 100, 105, 110, 103, 32, 119, 105, 116, 104, 32, 108, 117, 116, 32, 36, 49, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 95, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 95, 118, 111, 108, 117, 109, 101, 32, 36, 49, 32, 45, 115, 32, 122, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 95, 118, 111, 108, 117, 109, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 32, 91, 48, 93, 32, 45, 102, 91, 45, 49, 93, 32, 39, 122, 47, 40, 100, 45, 49, 41, 42, 50, 53, 53, 39, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 44, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 95, 115, 99, 97, 108, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 10, 49, 48, 44, 64, 123, 48, 44, 104, 45, 49, 48, 125, 32, 45, 102, 91, 45, 49, 93, 32, 39, 40, 104, 45, 121, 41, 47, 40, 104, 45, 49, 41, 42, 50, 53, 53, 39, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 36, 49, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 53, 44, 53, 44, 48, 44, 48, 44, 48, 10, 100, 101, 116, 101, 99, 116, 101, 118, 101, 110, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 57, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 100, 101, 116, 101, 99, 116, 32, 101, 118, 101, 110, 116, 115, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 95, 120, 121, 32, 36, 49, 32, 115, 99, 97, 108, 101, 95, 122, 32, 36, 50, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 49, 32, 45, 98, 108, 117, 114, 95, 122, 32, 36, 50, 32, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 49, 32, 45, 98, 108, 117, 114, 95, 122, 32, 36, 50, 10, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 101, 105, 103, 101, 110, 32, 45, 107, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 107, 91, 50, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 122, 10, 116, 104, 114, 101, 115, 61, 123, 64, 123, 48, 44, 105, 97, 125, 43, 36, 51, 42, 115, 113, 114, 116, 40, 64, 123, 48, 44, 105, 118, 125, 41, 125, 10, 45, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 48, 93, 32, 56, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 48, 93, 32, 36, 116, 104, 114, 101, 115, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 101, 116, 101, 99, 116, 95, 115, 112, 111, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 52, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 100, 101, 116, 101, 99, 116, 32, 101, 118, 101, 110, 116, 115, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 45, 10, 116, 104, 114, 101, 115, 61, 123, 36, 50, 42, 64, 123, 45, 109, 97, 100, 91, 48, 93, 125, 125, 10, 45, 45, 109, 97, 120, 95, 112, 97, 116, 99, 104, 91, 48, 93, 32, 51, 32, 45, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 48, 93, 32, 36, 116, 104, 114, 101, 115, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 105, 110, 116, 115, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 114, 101, 116, 117, 114, 110, 32, 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 51, 100, 32, 45, 115, 51, 100, 32, 45, 107, 91, 50, 93, 32, 45, 115, 112, 108, 105, 116, 32, 121, 44, 123, 104, 47, 51, 125, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 105, 114, 99, 108, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 100, 114, 97, 119, 32, 64, 123, 49, 44, 119, 125, 32, 99, 105, 114, 99, 108, 101, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 91, 48, 93, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 49, 44, 119, 125, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 100, 125, 62, 49, 125, 10, 120, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 125, 32, 121, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 125, 32, 122, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 50, 41, 125, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 115, 104, 91, 48, 93, 32, 36, 122, 44, 36, 122, 44, 36, 62, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 120, 44, 36, 121, 44, 36, 49, 44, 36, 49, 44, 48, 44, 36, 50, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 51, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 120, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 48, 93, 32, 36, 120, 44, 36, 121, 44, 36, 49, 44, 36, 49, 44, 48, 44, 36, 50, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 97, 100, 100, 116, 101, 120, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 49, 125, 44, 36, 123, 50, 61, 49, 50, 56, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 97, 100, 100, 32, 116, 101, 120, 116, 32, 108, 97, 98, 101, 108, 115, 32, 102, 114, 111, 109, 32, 64, 123, 49, 44, 119, 125, 32, 112, 111, 105, 110, 116, 115, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 49, 44, 119, 125, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 100, 125, 62, 49, 125, 10, 120, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 125, 32, 121, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 125, 32, 122, 61, 123, 64, 123, 49, 44, 105, 40, 36, 62, 44, 50, 41, 125, 125, 32, 105, 100, 61, 123, 36, 62, 43, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 123, 48, 44, 115, 125, 32, 45, 115, 104, 91, 48, 93, 32, 36, 122, 44, 36, 122, 44, 36, 62, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 36, 105, 100, 44, 36, 120, 44, 36, 121, 44, 50, 49, 44, 46, 53, 44, 36, 50, 44, 36, 50, 44, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 101, 108, 115, 101, 10, 120, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 32, 105, 100, 61, 123, 36, 62, 43, 49, 125, 10, 45, 116, 101, 120, 116, 91, 48, 93, 32, 36, 105, 100, 44, 36, 120, 44, 36, 121, 44, 50, 49, 44, 46, 53, 44, 36, 50, 44, 36, 50, 44, 36, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 99, 114, 111, 112, 97, 114, 111, 117, 110, 100, 32, 58, 32, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 49, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 114, 111, 112, 32, 105, 109, 97, 103, 101, 32, 91, 48, 93, 32, 97, 114, 111, 117, 110, 100, 32, 34, 64, 123, 49, 44, 119, 125, 34, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 115, 32, 103, 105, 118, 101, 110, 32, 98, 121, 32, 105, 109, 97, 103, 101, 32, 91, 49, 93, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 123, 49, 44, 119, 125, 125, 10, 45, 105, 102, 32, 123, 64, 123, 48, 44, 100, 125, 62, 49, 125, 10, 120, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 32, 122, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 50, 41, 125, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 45, 36, 49, 125, 44, 123, 36, 121, 45, 36, 49, 125, 44, 123, 36, 122, 45, 36, 50, 125, 44, 123, 36, 120, 43, 36, 49, 125, 44, 123, 36, 121, 43, 36, 49, 125, 44, 123, 36, 122, 43, 36, 50, 125, 10, 45, 101, 108, 115, 101, 10, 120, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 48, 41, 125, 32, 121, 61, 64, 123, 49, 44, 105, 40, 36, 62, 44, 49, 41, 125, 10, 45, 45, 99, 114, 111, 112, 91, 48, 93, 32, 123, 36, 120, 45, 36, 49, 125, 44, 123, 36, 121, 45, 36, 49, 125, 44, 123, 36, 120, 43, 36, 49, 125, 44, 123, 36, 121, 43, 36, 49, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 44, 49, 93, 32, 45, 118, 32, 43, 10, 114, 97, 110, 100, 111, 109, 95, 119, 97, 108, 107, 115, 32, 58, 10, 110, 117, 109, 98, 101, 114, 61, 36, 52, 32, 119, 105, 100, 116, 104, 61, 36, 49, 32, 104, 101, 105, 103, 104, 116, 61, 36, 50, 32, 108, 101, 110, 103, 116, 104, 61, 36, 51, 32, 115, 112, 101, 101, 100, 61, 36, 53, 10, 36, 110, 117, 109, 98, 101, 114, 44, 51, 10, 45, 108, 91, 45, 49, 93, 10, 45, 110, 111, 105, 115, 101, 32, 49, 44, 49, 10, 45, 115, 104, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 123, 36, 119, 105, 100, 116, 104, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 123, 36, 104, 101, 105, 103, 104, 116, 45, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 108, 101, 110, 103, 116, 104, 45, 49, 125, 32, 45, 45, 108, 91, 45, 49, 93, 10, 45, 110, 111, 105, 115, 101, 32, 49, 10, 45, 115, 104, 32, 48, 44, 48, 44, 48, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 49, 44, 123, 36, 119, 105, 100, 116, 104, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 49, 44, 49, 44, 48, 44, 48, 32, 45, 99, 91, 45, 49, 93, 32, 49, 44, 123, 36, 104, 101, 105, 103, 104, 116, 45, 50, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 115, 104, 32, 50, 44, 50, 44, 48, 44, 48, 32, 45, 102, 91, 45, 49, 93, 32, 39, 36, 62, 43, 49, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 120, 10, 45, 101, 110, 100, 108, 10, 109, 111, 118, 97, 118, 103, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 49, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 109, 111, 118, 105, 110, 103, 32, 97, 118, 101, 114, 97, 103, 101, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 34, 36, 49, 32, 45, 118, 32, 45, 10, 110, 61, 123, 36, 49, 45, 49, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 123, 64, 35, 125, 45, 49, 125, 32, 45, 45, 43, 91, 123, 36, 62, 125, 44, 123, 36, 62, 43, 49, 125, 93, 32, 45, 42, 91, 45, 49, 93, 32, 46, 53, 32, 45, 114, 109, 91, 36, 62, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 36, 62, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 118, 101, 114, 115, 101, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 110, 37, 50, 33, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 43, 10, 102, 102, 116, 115, 104, 105, 102, 116, 32, 58, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 104, 105, 102, 116, 32, 123, 45, 105, 110, 116, 40, 119, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 104, 47, 50, 41, 125, 44, 123, 45, 105, 110, 116, 40, 100, 47, 50, 41, 125, 44, 48, 44, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 104, 105, 116, 101, 110, 95, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 46, 50, 53, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 87, 104, 105, 116, 101, 110, 32, 116, 104, 101, 32, 102, 114, 101, 113, 117, 101, 110, 99, 121, 32, 119, 105, 116, 104, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 34, 36, 49, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 102, 116, 32, 45, 45, 97, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 112, 111, 119, 91, 45, 49, 93, 32, 36, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 49, 50, 32, 45, 47, 91, 45, 49, 93, 32, 123, 105, 97, 125, 32, 45, 47, 91, 48, 45, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 32, 45, 105, 102, 102, 116, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 111, 99, 97, 108, 118, 97, 114, 105, 97, 110, 99, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 99, 97, 108, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 102, 105, 108, 116, 101, 114, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 98, 108, 117, 114, 32, 36, 49, 44, 49, 44, 49, 32, 45, 45, 32, 45, 115, 113, 114, 32, 45, 98, 108, 117, 114, 32, 36, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 108, 111, 99, 97, 108, 119, 105, 101, 110, 101, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 99, 97, 108, 32, 87, 105, 101, 110, 101, 114, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 105, 103, 109, 97, 61, 64, 123, 45, 110, 111, 105, 115, 101, 95, 115, 116, 100, 125, 10, 45, 45, 98, 108, 117, 114, 32, 36, 49, 44, 49, 44, 49, 10, 45, 45, 108, 111, 99, 97, 108, 118, 97, 114, 105, 97, 110, 99, 101, 91, 48, 93, 32, 36, 49, 32, 45, 45, 45, 91, 45, 49, 93, 32, 123, 36, 115, 105, 103, 109, 97, 42, 36, 115, 105, 103, 109, 97, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 47, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 45, 91, 48, 44, 49, 93, 10, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 45, 43, 91, 45, 49, 44, 45, 50, 93, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 101, 114, 105, 111, 100, 105, 122, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 112, 101, 114, 105, 111, 100, 105, 122, 101, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 62, 49, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 97, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 122, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 97, 112, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 97, 112, 112, 108, 121, 32, 97, 32, 72, 97, 110, 110, 32, 116, 97, 112, 101, 114, 105, 110, 103, 32, 119, 105, 110, 100, 111, 119, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 119, 62, 49, 125, 32, 45, 102, 32, 39, 105, 42, 115, 105, 110, 40, 112, 105, 42, 120, 47, 40, 119, 45, 49, 41, 41, 94, 50, 39, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 104, 62, 49, 125, 32, 45, 102, 32, 39, 105, 42, 115, 105, 110, 40, 112, 105, 42, 121, 47, 40, 104, 45, 49, 41, 41, 94, 50, 39, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 100, 62, 49, 125, 32, 45, 102, 32, 39, 105, 42, 115, 105, 110, 40, 112, 105, 42, 122, 47, 40, 100, 45, 49, 41, 41, 94, 50, 39, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 111, 119, 101, 114, 115, 112, 101, 99, 116, 114, 117, 109, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 112, 111, 119, 101, 114, 32, 115, 112, 101, 99, 116, 114, 117, 109, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 100, 105, 115, 112, 108, 97, 121, 95, 102, 102, 116, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 111, 117, 114, 105, 101, 114, 109, 105, 120, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 102, 111, 117, 114, 105, 101, 114, 32, 109, 105, 120, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 102, 102, 116, 91, 50, 93, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 49, 44, 49, 44, 49, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 48, 37, 44, 49, 44, 49, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 42, 91, 48, 44, 49, 93, 32, 91, 45, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 42, 91, 50, 44, 51, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 91, 48, 44, 50, 93, 32, 45, 43, 91, 49, 44, 50, 93, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 10, 45, 105, 102, 102, 116, 32, 32, 45, 107, 91, 48, 93, 10, 102, 111, 117, 114, 105, 101, 114, 99, 117, 116, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 70, 111, 117, 114, 105, 101, 114, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 34, 36, 49, 34, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 116, 97, 112, 101, 32, 45, 108, 91, 45, 49, 93, 32, 45, 112, 111, 119, 101, 114, 115, 112, 101, 99, 116, 114, 117, 109, 32, 45, 98, 108, 117, 114, 32, 53, 32, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 123, 105, 97, 43, 36, 49, 42, 115, 113, 114, 116, 40, 105, 118, 41, 125, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 32, 45, 101, 110, 100, 108, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 117, 110, 115, 116, 114, 105, 112, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 125, 44, 36, 123, 50, 61, 50, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 82, 101, 109, 111, 118, 101, 32, 115, 116, 114, 105, 112, 101, 115, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 116, 97, 112, 101, 32, 45, 108, 91, 45, 49, 93, 32, 45, 112, 111, 119, 101, 114, 115, 112, 101, 99, 116, 114, 117, 109, 32, 45, 110, 111, 114, 109, 32, 45, 100, 101, 116, 101, 99, 116, 95, 115, 112, 111, 116, 115, 32, 44, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 32, 36, 50, 32, 45, 103, 116, 32, 48, 32, 45, 110, 32, 48, 44, 49, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 99, 105, 114, 99, 108, 101, 32, 53, 48, 37, 44, 53, 48, 37, 44, 36, 50, 44, 49, 44, 49, 32, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 110, 32, 48, 44, 49, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 32, 45, 105, 102, 32, 123, 105, 77, 61, 61, 48, 125, 32, 45, 102, 32, 49, 32, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 10, 45, 102, 102, 116, 91, 48, 93, 32, 45, 42, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 49, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 105, 102, 102, 116, 32, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 117, 116, 111, 99, 111, 114, 114, 101, 108, 97, 116, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 117, 116, 111, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 102, 116, 32, 45, 115, 113, 114, 32, 45, 43, 32, 45, 115, 113, 114, 116, 32, 45, 105, 102, 102, 116, 32, 45, 107, 91, 48, 93, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 115, 102, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 46, 52, 48, 125, 44, 36, 123, 50, 61, 49, 46, 51, 51, 125, 44, 36, 123, 51, 61, 52, 56, 56, 125, 44, 36, 123, 52, 61, 49, 54, 48, 125, 44, 36, 123, 53, 61, 50, 48, 48, 125, 10, 67, 61, 123, 50, 42, 112, 105, 47, 36, 51, 42, 36, 49, 47, 36, 50, 42, 53, 48, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 32, 39, 100, 120, 61, 120, 45, 119, 47, 50, 59, 100, 121, 61, 121, 45, 104, 47, 50, 59, 100, 122, 61, 122, 45, 100, 47, 50, 59, 105, 102, 40, 36, 67, 42, 115, 113, 114, 116, 40, 100, 120, 42, 100, 120, 43, 100, 121, 42, 100, 121, 41, 60, 40, 100, 45, 97, 98, 115, 40, 100, 122, 41, 41, 44, 49, 44, 48, 41, 39, 10, 45, 98, 108, 117, 114, 32, 49, 10, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 102, 102, 116, 112, 111, 108, 97, 114, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 122, 10, 45, 115, 113, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 98, 101, 97, 100, 115, 50, 112, 115, 102, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 97, 32, 80, 83, 70, 32, 102, 114, 111, 109, 32, 97, 110, 32, 105, 109, 97, 103, 101, 32, 98, 101, 97, 100, 32, 117, 115, 105, 110, 103, 32, 97, 117, 116, 111, 99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 32, 109, 101, 116, 104, 111, 100, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 116, 97, 112, 101, 32, 49, 32, 32, 45, 97, 117, 116, 111, 99, 111, 114, 114, 101, 108, 97, 116, 101, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 123, 115, 113, 114, 116, 40, 64, 123, 48, 44, 105, 118, 125, 41, 125, 44, 49, 10, 45, 102, 32, 39, 100, 120, 61, 120, 45, 119, 47, 50, 59, 100, 121, 61, 121, 45, 104, 47, 50, 59, 100, 122, 61, 122, 45, 100, 47, 50, 59, 115, 105, 103, 109, 97, 61, 57, 43, 36, 49, 42, 100, 122, 42, 100, 122, 59, 105, 42, 101, 120, 112, 40, 45, 46, 53, 42, 40, 100, 120, 42, 100, 120, 43, 100, 121, 42, 100, 121, 41, 47, 40, 115, 105, 103, 109, 97, 41, 41, 47, 115, 113, 114, 116, 40, 50, 42, 112, 105, 42, 115, 105, 103, 109, 97, 41, 39, 10, 45, 115, 113, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 105, 109, 109, 111, 100, 32, 58, 10, 45, 45, 43, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 47, 40, 64, 35, 45, 49, 41, 125, 32, 45, 47, 91, 48, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 115, 112, 111, 116, 105, 102, 121, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 111, 116, 105, 102, 121, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 119, 105, 116, 104, 32, 36, 50, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 115, 61, 64, 123, 48, 44, 97, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 45, 98, 108, 117, 114, 32, 36, 49, 32, 45, 45, 98, 108, 117, 114, 32, 123, 50, 42, 36, 49, 125, 32, 45, 45, 32, 45, 99, 117, 116, 32, 48, 44, 49, 48, 48, 37, 32, 45, 102, 32, 39, 105, 42, 123, 36, 115, 125, 47, 105, 97, 39, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 116, 117, 98, 101, 110, 101, 115, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 84, 117, 98, 101, 110, 101, 115, 115, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 98, 108, 117, 114, 32, 36, 49, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 104, 101, 115, 115, 105, 97, 110, 32, 45, 97, 32, 99, 32, 45, 101, 105, 103, 101, 110, 32, 45, 107, 91, 48, 93, 32, 45, 115, 32, 99, 32, 45, 107, 91, 49, 93, 32, 45, 42, 32, 45, 49, 32, 45, 99, 117, 116, 32, 48, 44, 49, 48, 48, 37, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 99, 104, 105, 122, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 48, 125, 44, 36, 123, 50, 61, 45, 53, 48, 125, 44, 36, 123, 51, 61, 53, 125, 44, 36, 123, 52, 61, 46, 55, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 99, 104, 105, 122, 111, 32, 102, 105, 108, 116, 101, 114, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 119, 105, 116, 104, 32, 47, 47, 32, 36, 49, 32, 97, 110, 100, 32, 84, 32, 36, 50, 32, 97, 110, 100, 32, 36, 51, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 45, 108, 91, 45, 49, 93, 10, 45, 45, 105, 101, 101, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 49, 47, 40, 48, 46, 48, 48, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 41, 125, 10, 45, 45, 105, 110, 110, 91, 48, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 40, 48, 46, 48, 48, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 41, 125, 10, 45, 43, 10, 45, 101, 110, 100, 108, 10, 45, 42, 91, 45, 49, 93, 32, 36, 52, 32, 32, 45, 45, 42, 91, 48, 93, 32, 123, 49, 45, 36, 52, 125, 32, 45, 43, 91, 45, 49, 44, 45, 50, 93, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 98, 108, 117, 114, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 54, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 115, 61, 123, 50, 94, 40, 36, 62, 43, 50, 41, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 97, 61, 123, 36, 62, 47, 64, 35, 42, 49, 56, 48, 125, 10, 45, 101, 99, 104, 111, 95, 115, 116, 100, 111, 117, 116, 32, 36, 115, 34, 44, 32, 34, 36, 97, 10, 45, 45, 108, 91, 48, 93, 32, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 36, 115, 44, 49, 44, 36, 97, 32, 32, 45, 45, 98, 108, 117, 114, 32, 49, 32, 45, 45, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 51, 125, 32, 32, 45, 109, 97, 120, 91, 49, 44, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 111, 104, 101, 97, 116, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 125, 44, 36, 123, 50, 61, 54, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 32, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 32, 97, 61, 123, 36, 62, 47, 64, 35, 42, 49, 56, 48, 125, 10, 45, 45, 108, 91, 48, 93, 32, 45, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 32, 50, 44, 46, 53, 44, 36, 97, 32, 32, 45, 45, 98, 108, 117, 114, 32, 49, 32, 45, 45, 32, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 109, 97, 120, 91, 49, 45, 45, 49, 93, 32, 45, 43, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 119, 97, 114, 112, 95, 97, 102, 102, 105, 110, 101, 32, 58, 10, 45, 45, 108, 91, 48, 44, 49, 93, 10, 112, 97, 114, 97, 109, 115, 61, 40, 64, 123, 49, 44, 105, 40, 48, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 49, 44, 48, 41, 125, 44, 64, 123, 49, 44, 105, 40, 50, 44, 48, 41, 125, 59, 92, 10, 64, 123, 49, 44, 105, 40, 48, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 49, 44, 49, 41, 125, 44, 64, 123, 49, 44, 105, 40, 50, 44, 49, 41, 125, 59, 92, 10, 64, 123, 49, 44, 105, 40, 48, 44, 50, 41, 125, 44, 64, 123, 49, 44, 105, 40, 49, 44, 50, 41, 125, 44, 64, 123, 49, 44, 105, 40, 50, 44, 50, 41, 125, 41, 10, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 45, 102, 91, 45, 49, 93, 32, 120, 32, 45, 45, 102, 91, 45, 49, 93, 32, 121, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 10, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 36, 112, 97, 114, 97, 109, 115, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 44, 50, 10, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 48, 44, 49, 44, 48, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 101, 110, 100, 108, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 109, 105, 100, 119, 97, 121, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 91, 48, 93, 10, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 37, 44, 50, 48, 37, 10, 45, 115, 32, 99, 32, 45, 117, 110, 114, 111, 108, 108, 32, 121, 32, 45, 108, 91, 48, 93, 32, 49, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 44, 49, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 32, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 48, 93, 10, 45, 108, 91, 48, 93, 32, 45, 115, 118, 100, 32, 45, 102, 91, 45, 50, 93, 32, 39, 105, 102, 40, 105, 62, 49, 101, 45, 54, 44, 49, 47, 105, 44, 48, 41, 39, 32, 45, 100, 105, 97, 103, 111, 110, 97, 108, 91, 45, 50, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 109, 109, 117, 108, 32, 45, 101, 110, 100, 108, 32, 45, 109, 109, 117, 108, 10, 97, 61, 64, 123, 48, 44, 48, 125, 32, 98, 61, 64, 123, 48, 44, 49, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 10, 45, 115, 32, 99, 10, 45, 43, 91, 45, 49, 93, 32, 123, 36, 98, 125, 32, 45, 42, 91, 45, 49, 93, 32, 123, 49, 47, 36, 97, 125, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 118, 111, 98, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 49, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 51, 125, 62, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 77, 111, 116, 105, 111, 110, 32, 113, 117, 97, 110, 116, 105, 116, 121, 32, 119, 105, 116, 104, 32, 115, 99, 97, 108, 101, 32, 36, 49, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 45, 97, 91, 48, 44, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 48, 93, 32, 45, 97, 98, 115, 91, 49, 93, 32, 45, 42, 91, 49, 93, 32, 91, 48, 93, 32, 45, 115, 113, 114, 91, 48, 93, 32, 45, 98, 108, 117, 114, 32, 36, 49, 44, 49, 44, 49, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 109, 97, 120, 91, 49, 93, 32, 53, 37, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 100, 105, 115, 112, 108, 97, 121, 95, 118, 111, 98, 115, 32, 58, 10, 45, 45, 118, 111, 98, 115, 32, 49, 32, 65, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 109, 125, 44, 48, 46, 48, 48, 49, 41, 125, 32, 66, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 77, 125, 44, 48, 46, 48, 48, 49, 41, 125, 32, 45, 42, 91, 45, 49, 93, 32, 39, 123, 49, 50, 56, 47, 109, 97, 120, 40, 105, 109, 44, 105, 77, 41, 125, 39, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 53, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 44, 49, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 49, 46, 53, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 108, 91, 48, 93, 32, 45, 115, 32, 122, 32, 45, 102, 114, 97, 109, 101, 32, 53, 44, 49, 50, 44, 54, 52, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 53, 44, 48, 44, 48, 44, 50, 32, 45, 116, 101, 120, 116, 32, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 115, 101, 113, 117, 101, 110, 99, 101, 34, 44, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 39, 104, 45, 121, 39, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 53, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 53, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 51, 44, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 51, 44, 48, 44, 54, 52, 32, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 51, 44, 53, 32, 45, 97, 32, 120, 10, 45, 102, 114, 97, 109, 101, 32, 53, 44, 49, 50, 44, 54, 52, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 53, 44, 48, 44, 48, 44, 50, 10, 45, 116, 101, 120, 116, 32, 34, 86, 111, 98, 115, 32, 91, 34, 36, 65, 34, 58, 34, 36, 66, 34, 93, 34, 44, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 97, 32, 120, 10, 100, 105, 115, 112, 108, 97, 121, 95, 112, 115, 101, 117, 100, 111, 99, 111, 108, 111, 114, 32, 58, 10, 65, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 109, 125, 44, 48, 46, 48, 48, 48, 49, 41, 125, 32, 66, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 77, 125, 44, 48, 46, 48, 48, 48, 49, 41, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 53, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 123, 119, 45, 53, 48, 45, 53, 125, 44, 123, 104, 47, 52, 45, 53, 125, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 104, 47, 52, 43, 53, 125, 44, 46, 53, 44, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 95, 99, 111, 108, 111, 114, 98, 97, 114, 91, 45, 49, 93, 32, 123, 119, 45, 53, 48, 125, 44, 123, 104, 47, 52, 125, 44, 123, 119, 45, 52, 48, 125, 44, 123, 104, 45, 104, 47, 52, 125, 44, 36, 65, 44, 36, 66, 44, 54, 44, 50, 53, 53, 10, 100, 105, 115, 112, 108, 97, 121, 95, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 100, 105, 115, 112, 108, 97, 121, 32, 116, 104, 101, 32, 51, 68, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 32, 100, 101, 112, 116, 104, 32, 99, 111, 108, 111, 114, 32, 99, 111, 100, 101, 100, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 72, 61, 123, 100, 42, 36, 49, 125, 32, 45, 99, 111, 108, 111, 114, 100, 101, 112, 116, 104, 32, 44, 32, 45, 97, 32, 122, 32, 45, 109, 105, 110, 32, 123, 105, 97, 43, 49, 48, 42, 115, 113, 114, 116, 40, 105, 118, 41, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 115, 32, 122, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 123, 119, 45, 53, 48, 45, 53, 125, 44, 123, 104, 47, 52, 45, 53, 125, 44, 123, 119, 45, 53, 125, 44, 123, 104, 45, 104, 47, 52, 43, 53, 125, 44, 46, 53, 44, 48, 44, 48, 44, 48, 10, 45, 97, 100, 100, 95, 99, 111, 108, 111, 114, 98, 97, 114, 91, 45, 49, 93, 32, 123, 119, 45, 53, 48, 125, 44, 123, 104, 47, 52, 125, 44, 123, 119, 45, 52, 48, 125, 44, 123, 104, 45, 104, 47, 52, 125, 44, 48, 44, 36, 72, 44, 54, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 97, 100, 100, 95, 99, 111, 108, 111, 114, 98, 97, 114, 32, 58, 10, 123, 36, 51, 45, 36, 49, 125, 44, 123, 36, 52, 45, 36, 50, 125, 32, 45, 108, 91, 45, 49, 93, 32, 45, 102, 32, 39, 104, 45, 121, 39, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 109, 97, 112, 32, 53, 32, 45, 101, 110, 100, 108, 10, 45, 105, 109, 97, 103, 101, 91, 48, 93, 32, 91, 49, 93, 44, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 49, 32, 45, 107, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 55, 10, 118, 97, 108, 61, 123, 114, 111, 117, 110, 100, 40, 36, 53, 43, 36, 62, 47, 40, 36, 55, 45, 49, 41, 42, 40, 36, 54, 45, 36, 53, 41, 44, 46, 48, 48, 49, 41, 125, 10, 45, 116, 101, 120, 116, 32, 34, 45, 32, 34, 36, 118, 97, 108, 44, 123, 36, 51, 43, 49, 125, 44, 123, 36, 52, 45, 36, 62, 42, 40, 36, 52, 45, 36, 50, 45, 53, 41, 47, 40, 36, 55, 45, 49, 41, 45, 49, 48, 125, 44, 49, 51, 44, 49, 44, 36, 56, 10, 45, 100, 111, 110, 101, 10, 108, 111, 99, 97, 108, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 123, 49, 61, 50, 125, 62, 48, 32, 38, 38, 32, 36, 123, 50, 61, 46, 53, 125, 62, 61, 48, 34, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 111, 99, 97, 108, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 101, 115, 116, 105, 109, 97, 116, 105, 111, 110, 32, 117, 115, 105, 110, 103, 32, 115, 99, 97, 108, 101, 32, 36, 49, 32, 97, 110, 100, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 50, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 108, 91, 48, 93, 32, 45, 115, 32, 122, 32, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 45, 108, 91, 48, 93, 32, 45, 115, 32, 122, 32, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 97, 32, 122, 32, 45, 115, 113, 114, 32, 45, 101, 110, 100, 108, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 91, 48, 93, 32, 122, 44, 49, 10, 45, 108, 91, 48, 44, 49, 93, 10, 82, 61, 123, 64, 123, 49, 44, 105, 97, 125, 43, 36, 50, 42, 115, 113, 114, 116, 40, 64, 123, 49, 44, 118, 125, 41, 125, 10, 45, 97, 32, 99, 32, 45, 102, 32, 39, 98, 61, 105, 40, 120, 44, 121, 44, 122, 44, 48, 41, 59, 97, 61, 105, 40, 120, 44, 121, 44, 122, 44, 49, 41, 59, 105, 102, 40, 97, 98, 115, 40, 97, 41, 62, 97, 98, 115, 40, 98, 41, 44, 98, 47, 97, 44, 105, 102, 40, 97, 98, 115, 40, 98, 41, 62, 36, 82, 44, 49, 47, 40, 98, 47, 97, 41, 44, 48, 41, 41, 39, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 101, 110, 100, 108, 10, 45, 42, 91, 48, 93, 32, 91, 49, 93, 32, 45, 98, 108, 117, 114, 32, 36, 49, 44, 49, 44, 49, 32, 45, 109, 97, 120, 91, 49, 93, 32, 123, 64, 123, 49, 44, 105, 97, 125, 43, 36, 50, 42, 115, 113, 114, 116, 40, 64, 123, 49, 44, 118, 125, 41, 125, 32, 32, 45, 47, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 10, 45, 118, 32, 43, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 108, 100, 99, 32, 58, 10, 45, 108, 111, 99, 97, 108, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 36, 42, 10, 100, 105, 115, 112, 108, 97, 121, 95, 108, 100, 99, 32, 58, 10, 45, 45, 108, 100, 99, 32, 53, 44, 51, 32, 65, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 109, 125, 44, 48, 46, 48, 48, 49, 41, 125, 32, 66, 61, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 77, 125, 44, 48, 46, 48, 48, 49, 41, 125, 32, 45, 42, 91, 45, 49, 93, 32, 39, 123, 49, 50, 56, 47, 109, 97, 120, 40, 105, 109, 44, 105, 77, 41, 125, 39, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 53, 10, 45, 114, 101, 115, 105, 122, 101, 91, 48, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 51, 44, 49, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 48, 93, 32, 49, 46, 53, 32, 45, 110, 91, 48, 93, 32, 48, 44, 50, 53, 53, 10, 45, 108, 91, 48, 93, 32, 45, 115, 32, 122, 32, 45, 102, 114, 97, 109, 101, 32, 53, 44, 49, 50, 44, 54, 52, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 53, 44, 48, 44, 48, 44, 50, 32, 45, 116, 101, 120, 116, 32, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 115, 101, 113, 117, 101, 110, 99, 101, 34, 44, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 108, 91, 49, 93, 32, 45, 115, 32, 122, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 49, 44, 49, 48, 48, 37, 32, 45, 102, 91, 45, 49, 93, 32, 39, 104, 45, 121, 39, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 32, 45, 109, 97, 112, 91, 45, 49, 93, 32, 53, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 53, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 51, 44, 53, 32, 45, 102, 114, 97, 109, 101, 91, 45, 49, 93, 32, 51, 44, 48, 44, 54, 52, 32, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 51, 44, 53, 32, 45, 97, 32, 120, 10, 45, 102, 114, 97, 109, 101, 32, 53, 44, 49, 50, 44, 54, 52, 32, 45, 115, 104, 105, 102, 116, 32, 48, 44, 53, 44, 48, 44, 48, 44, 50, 10, 45, 116, 101, 120, 116, 32, 34, 76, 111, 99, 97, 108, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 91, 34, 36, 65, 34, 58, 34, 36, 66, 34, 93, 34, 44, 53, 44, 48, 44, 49, 51, 44, 49, 44, 50, 53, 53, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 122, 32, 45, 101, 110, 100, 108, 10, 45, 97, 32, 120, 10, 112, 114, 105, 110, 116, 95, 112, 115, 110, 114, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 80, 83, 78, 82, 32, 119, 105, 116, 104, 32, 105, 109, 97, 103, 101, 32, 48, 32, 97, 110, 100, 32, 112, 114, 105, 110, 116, 32, 105, 116, 32, 111, 110, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 105, 109, 97, 103, 101, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 112, 115, 110, 114, 32, 36, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 50, 125, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 123, 36, 62, 43, 49, 125, 93, 32, 34, 80, 83, 78, 82, 58, 34, 123, 114, 111, 117, 110, 100, 40, 64, 123, 45, 49, 44, 105, 40, 48, 44, 36, 62, 43, 49, 41, 125, 44, 46, 48, 49, 41, 125, 34, 100, 66, 34, 44, 53, 44, 53, 44, 51, 48, 44, 49, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 110, 111, 105, 115, 101, 95, 115, 116, 100, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 110, 111, 105, 115, 101, 32, 118, 97, 114, 105, 97, 110, 99, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 45, 108, 97, 112, 108, 97, 99, 105, 97, 110, 32, 45, 105, 102, 32, 123, 64, 123, 48, 44, 100, 125, 61, 61, 49, 125, 32, 32, 45, 117, 32, 123, 64, 123, 45, 109, 97, 100, 91, 45, 49, 93, 125, 47, 115, 113, 114, 116, 40, 50, 48, 46, 48, 41, 125, 32, 45, 101, 108, 115, 101, 32, 45, 117, 32, 123, 64, 123, 45, 109, 97, 100, 91, 45, 49, 93, 125, 47, 115, 113, 114, 116, 40, 52, 50, 46, 48, 41, 125, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 118, 32, 43, 10, 100, 101, 110, 111, 105, 115, 101, 95, 112, 97, 116, 99, 104, 95, 100, 105, 99, 116, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 56, 125, 44, 36, 123, 50, 61, 56, 125, 44, 36, 123, 51, 61, 49, 46, 49, 125, 44, 36, 123, 52, 61, 49, 46, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 101, 110, 111, 105, 115, 105, 110, 103, 32, 117, 115, 105, 110, 103, 32, 97, 32, 100, 105, 99, 116, 105, 111, 110, 110, 97, 114, 121, 32, 111, 102, 32, 34, 36, 49, 34, 120, 34, 36, 49, 34, 32, 112, 97, 116, 99, 104, 101, 115, 32, 119, 105, 116, 104, 32, 34, 36, 50, 34, 32, 115, 104, 105, 102, 116, 115, 44, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 120, 40, 110, 111, 105, 115, 101, 32, 115, 116, 100, 41, 32, 102, 111, 114, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 97, 110, 100, 32, 36, 52, 120, 40, 115, 116, 100, 41, 32, 102, 111, 114, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 115, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 83, 105, 103, 109, 97, 61, 64, 123, 45, 110, 111, 105, 115, 101, 95, 115, 116, 100, 91, 48, 93, 125, 10, 45, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 36, 49, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 119, 45, 36, 49, 45, 49, 125, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 97, 32, 120, 10, 45, 45, 99, 114, 111, 112, 32, 48, 44, 48, 44, 49, 48, 48, 37, 44, 36, 49, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 44, 123, 104, 45, 36, 49, 45, 49, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 97, 32, 121, 10, 111, 87, 61, 64, 123, 48, 44, 119, 125, 32, 111, 72, 61, 64, 123, 48, 44, 104, 125, 32, 111, 83, 61, 64, 123, 48, 44, 115, 125, 32, 110, 87, 61, 123, 36, 49, 42, 114, 111, 117, 110, 100, 40, 36, 111, 87, 47, 36, 49, 44, 49, 44, 49, 41, 125, 32, 110, 72, 61, 123, 36, 49, 42, 114, 111, 117, 110, 100, 40, 36, 111, 72, 47, 36, 49, 44, 49, 44, 49, 41, 125, 10, 45, 45, 99, 114, 111, 112, 32, 123, 50, 42, 36, 111, 87, 45, 36, 110, 87, 125, 44, 48, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 97, 32, 120, 10, 45, 45, 99, 114, 111, 112, 32, 48, 44, 123, 50, 42, 36, 111, 72, 45, 36, 110, 72, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 97, 32, 121, 10, 78, 116, 105, 108, 101, 88, 61, 123, 114, 111, 117, 110, 100, 40, 36, 110, 87, 47, 36, 49, 41, 125, 32, 32, 78, 116, 105, 108, 101, 89, 61, 123, 114, 111, 117, 110, 100, 40, 36, 110, 72, 47, 36, 49, 41, 125, 10, 45, 45, 108, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 50, 62, 49, 125, 32, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 49, 41, 41, 125, 32, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 49, 41, 41, 125, 32, 45, 101, 108, 115, 101, 32, 100, 120, 61, 48, 32, 100, 121, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 48, 44, 48, 44, 50, 10, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 91, 45, 49, 93, 32, 36, 78, 116, 105, 108, 101, 88, 44, 36, 78, 116, 105, 108, 101, 89, 32, 112, 87, 61, 64, 123, 49, 44, 119, 125, 32, 112, 72, 61, 64, 123, 49, 44, 104, 125, 10, 45, 100, 111, 110, 101, 32, 45, 114, 109, 91, 48, 93, 10, 45, 117, 110, 114, 111, 108, 108, 32, 121, 32, 45, 97, 32, 120, 32, 110, 61, 64, 123, 45, 49, 44, 119, 125, 32, 45, 45, 32, 39, 105, 97, 39, 32, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 32, 36, 110, 32, 45, 101, 105, 103, 101, 110, 10, 45, 108, 91, 45, 50, 93, 32, 45, 117, 110, 114, 111, 108, 108, 32, 120, 32, 45, 115, 113, 114, 116, 32, 45, 103, 116, 32, 123, 36, 51, 42, 36, 83, 105, 103, 109, 97, 125, 32, 45, 102, 32, 39, 97, 98, 115, 40, 105, 40, 120, 43, 49, 41, 45, 105, 40, 120, 41, 41, 39, 10, 84, 61, 64, 123, 45, 49, 44, 67, 125, 32, 52, 32, 45, 102, 91, 45, 49, 93, 32, 36, 84, 32, 84, 61, 64, 123, 45, 49, 44, 105, 40, 48, 41, 125, 32, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 36, 84, 61, 61, 48, 125, 32, 84, 61, 49, 48, 48, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 107, 91, 45, 49, 93, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 48, 44, 36, 84, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 45, 105, 102, 32, 123, 36, 50, 62, 49, 125, 32, 100, 120, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 49, 41, 41, 125, 32, 100, 121, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 49, 41, 41, 125, 32, 45, 101, 108, 115, 101, 32, 100, 120, 61, 48, 32, 100, 121, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 115, 104, 105, 102, 116, 91, 48, 93, 32, 36, 100, 120, 44, 36, 100, 121, 44, 48, 44, 48, 44, 50, 10, 45, 108, 91, 49, 44, 45, 49, 93, 10, 45, 108, 91, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 116, 105, 108, 101, 115, 32, 36, 78, 116, 105, 108, 101, 88, 44, 36, 78, 116, 105, 108, 101, 89, 32, 45, 117, 110, 114, 111, 108, 108, 32, 121, 32, 45, 97, 32, 120, 32, 45, 101, 110, 100, 108, 10, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 48, 93, 32, 45, 45, 42, 42, 10, 116, 61, 64, 123, 45, 109, 97, 100, 91, 45, 49, 93, 125, 10, 45, 102, 91, 45, 49, 93, 32, 39, 105, 102, 40, 97, 98, 115, 40, 105, 41, 60, 36, 52, 42, 36, 116, 44, 48, 44, 105, 41, 39, 10, 45, 114, 109, 91, 49, 93, 32, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 48, 93, 32, 45, 45, 42, 42, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 110, 100, 108, 10, 45, 108, 91, 45, 49, 93, 10, 45, 115, 32, 120, 32, 45, 114, 101, 115, 105, 122, 101, 32, 36, 112, 87, 44, 36, 112, 72, 44, 49, 44, 36, 111, 83, 44, 45, 49, 10, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 36, 78, 116, 105, 108, 101, 88, 44, 36, 78, 116, 105, 108, 101, 89, 10, 45, 115, 104, 105, 102, 116, 32, 123, 45, 36, 100, 120, 125, 44, 123, 45, 36, 100, 121, 125, 44, 48, 44, 48, 44, 50, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 93, 10, 45, 43, 32, 45, 47, 32, 36, 50, 10, 45, 99, 114, 111, 112, 32, 123, 36, 49, 43, 49, 125, 44, 123, 36, 49, 43, 49, 125, 44, 123, 36, 111, 87, 45, 36, 49, 45, 50, 125, 44, 123, 36, 111, 72, 45, 36, 49, 45, 50, 125, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 110, 116, 111, 117, 114, 50, 100, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 46, 49, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 102, 32, 39, 105, 102, 40, 97, 98, 115, 40, 105, 40, 120, 44, 121, 41, 45, 105, 40, 120, 43, 49, 44, 121, 43, 49, 41, 41, 62, 36, 49, 124, 124, 97, 98, 115, 40, 105, 40, 120, 44, 121, 41, 45, 105, 40, 120, 43, 49, 44, 121, 41, 41, 62, 36, 49, 44, 49, 44, 48, 41, 39, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 115, 101, 103, 109, 101, 110, 116, 95, 115, 110, 97, 107, 101, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 49, 48, 48, 125, 44, 36, 123, 52, 61, 53, 48, 37, 125, 44, 36, 123, 53, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 101, 103, 109, 101, 110, 116, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 117, 115, 105, 110, 103, 32, 97, 99, 116, 105, 118, 101, 32, 99, 111, 110, 116, 111, 117, 114, 115, 32, 119, 105, 116, 104, 111, 117, 116, 32, 101, 100, 103, 101, 115, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 116, 105, 109, 101, 32, 115, 116, 101, 112, 32, 36, 50, 44, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 51, 32, 97, 110, 100, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 32, 119, 105, 116, 104, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 111, 102, 32, 36, 52, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 45, 98, 108, 117, 114, 32, 36, 53, 32, 45, 103, 116, 91, 45, 49, 93, 32, 36, 52, 10, 45, 108, 91, 45, 49, 93, 32, 45, 45, 100, 105, 115, 116, 97, 110, 99, 101, 32, 48, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 48, 93, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 48, 93, 32, 48, 32, 45, 42, 91, 48, 93, 32, 45, 49, 32, 45, 43, 32, 45, 101, 110, 100, 108, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 45, 108, 116, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 53, 32, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 115, 119, 120, 61, 64, 123, 45, 49, 44, 105, 97, 125, 32, 115, 119, 61, 64, 123, 45, 50, 44, 105, 97, 125, 32, 77, 49, 61, 123, 36, 115, 119, 120, 47, 36, 115, 119, 125, 10, 45, 115, 113, 114, 91, 45, 49, 93, 32, 115, 119, 120, 50, 61, 64, 123, 45, 49, 44, 105, 97, 125, 32, 32, 83, 49, 61, 123, 109, 97, 120, 40, 49, 101, 45, 51, 44, 36, 115, 119, 120, 50, 47, 36, 115, 119, 94, 50, 45, 36, 77, 49, 94, 50, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 103, 116, 91, 45, 49, 93, 32, 48, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 53, 32, 45, 45, 42, 91, 48, 44, 45, 49, 93, 32, 115, 119, 120, 61, 64, 123, 45, 49, 44, 105, 97, 125, 32, 115, 119, 61, 64, 123, 45, 50, 44, 105, 97, 125, 32, 77, 50, 61, 123, 36, 115, 119, 120, 47, 36, 115, 119, 125, 10, 45, 115, 113, 114, 91, 45, 49, 93, 32, 115, 119, 120, 50, 61, 64, 123, 45, 49, 44, 105, 97, 125, 32, 32, 83, 50, 61, 123, 109, 97, 120, 40, 49, 101, 45, 51, 44, 36, 115, 119, 120, 50, 47, 36, 115, 119, 94, 50, 45, 36, 77, 50, 94, 50, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 45, 105, 101, 101, 91, 45, 49, 93, 10, 45, 45, 102, 91, 48, 93, 32, 39, 40, 49, 46, 48, 47, 36, 51, 41, 42, 40, 40, 40, 105, 40, 120, 44, 121, 41, 45, 36, 77, 49, 41, 94, 50, 41, 47, 36, 83, 49, 45, 40, 40, 105, 40, 120, 44, 121, 41, 45, 36, 77, 50, 41, 94, 50, 41, 47, 36, 83, 50, 41, 39, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 123, 36, 50, 47, 40, 48, 46, 48, 48, 48, 49, 43, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 41, 41, 125, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 100, 111, 110, 101, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 53, 32, 45, 103, 116, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 112, 101, 114, 105, 111, 100, 105, 99, 95, 100, 111, 116, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 54, 125, 44, 36, 123, 50, 61, 52, 125, 44, 36, 123, 51, 61, 46, 53, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 71, 101, 110, 101, 114, 97, 116, 101, 32, 97, 32, 112, 101, 114, 105, 111, 100, 105, 99, 32, 100, 111, 116, 32, 112, 97, 116, 116, 101, 114, 110, 32, 119, 105, 116, 104, 32, 34, 36, 49, 34, 32, 97, 110, 103, 108, 101, 115, 44, 32, 115, 99, 97, 108, 101, 32, 34, 36, 50, 34, 44, 32, 97, 110, 100, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 34, 36, 51, 34, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 115, 32, 99, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 114, 101, 115, 105, 122, 101, 32, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 44, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 48, 10, 45, 108, 91, 45, 49, 93, 10, 45, 102, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 45, 99, 105, 114, 99, 108, 101, 32, 123, 119, 42, 40, 46, 53, 43, 46, 53, 47, 36, 50, 42, 99, 111, 115, 40, 50, 42, 112, 105, 42, 40, 36, 62, 43, 36, 51, 47, 49, 56, 48, 42, 112, 105, 41, 47, 36, 49, 41, 41, 125, 44, 123, 119, 42, 40, 46, 53, 43, 46, 53, 47, 36, 50, 42, 115, 105, 110, 40, 50, 42, 112, 105, 42, 40, 36, 62, 43, 36, 51, 47, 49, 56, 48, 42, 112, 105, 41, 47, 36, 49, 41, 41, 125, 44, 48, 44, 49, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 45, 102, 102, 116, 32, 45, 97, 32, 99, 32, 45, 110, 111, 114, 109, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 10, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 102, 114, 97, 116, 105, 111, 110, 97, 108, 95, 98, 114, 111, 119, 110, 105, 97, 110, 95, 109, 111, 116, 105, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 48, 37, 125, 44, 36, 123, 50, 61, 46, 53, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 105, 115, 101, 32, 36, 49, 10, 45, 102, 102, 116, 32, 45, 102, 102, 116, 115, 104, 105, 102, 116, 10, 45, 102, 32, 39, 114, 120, 61, 120, 45, 119, 47, 50, 59, 114, 121, 61, 121, 45, 104, 47, 50, 59, 105, 42, 40, 36, 51, 43, 115, 113, 114, 116, 40, 114, 120, 42, 114, 120, 43, 114, 121, 42, 114, 121, 41, 41, 94, 40, 45, 50, 42, 36, 50, 45, 49, 41, 39, 10, 45, 102, 102, 116, 115, 104, 105, 102, 116, 32, 45, 105, 102, 102, 116, 10, 45, 107, 91, 48, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 108, 111, 117, 100, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 48, 37, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 46, 53, 125, 44, 36, 123, 52, 61, 49, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 48, 32, 45, 102, 32, 48, 10, 45, 102, 114, 97, 116, 105, 111, 110, 97, 108, 95, 98, 114, 111, 119, 110, 105, 97, 110, 95, 109, 111, 116, 105, 111, 110, 32, 36, 50, 44, 36, 51, 44, 36, 52, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 109, 105, 110, 32, 36, 49, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 114, 101, 115, 105, 122, 101, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 52, 10, 45, 115, 32, 99, 32, 45, 110, 91, 48, 45, 50, 93, 32, 49, 50, 56, 44, 50, 53, 53, 32, 45, 110, 91, 51, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 108, 101, 97, 114, 98, 108, 117, 101, 115, 107, 121, 32, 58, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 49, 44, 50, 44, 49, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 39, 54, 51, 44, 55, 48, 44, 49, 50, 48, 44, 49, 52, 52, 44, 49, 57, 48, 44, 50, 49, 53, 39, 32, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 48, 93, 44, 53, 32, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 32, 58, 32, 106, 112, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 44, 106, 112, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 105, 109, 97, 103, 101, 32, 97, 110, 100, 32, 105, 116, 115, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 105, 110, 32, 120, 32, 121, 32, 97, 114, 101, 32, 116, 114, 101, 97, 116, 101, 100, 32, 97, 115, 32, 115, 111, 108, 105, 100, 32, 97, 110, 103, 108, 101, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 116, 111, 112, 111, 108, 111, 103, 121, 32, 111, 102, 32, 116, 104, 101, 32, 115, 117, 114, 102, 97, 99, 101, 32, 111, 102, 32, 97, 32, 115, 112, 104, 101, 114, 101, 92, 110, 116, 104, 105, 115, 32, 109, 101, 97, 110, 115, 32, 97, 32, 108, 111, 111, 112, 32, 98, 114, 105, 103, 104, 116, 47, 100, 97, 114, 107, 47, 98, 114, 105, 103, 104, 116, 32, 99, 97, 110, 110, 111, 116, 32, 99, 111, 110, 116, 114, 97, 99, 116, 32, 116, 104, 114, 111, 117, 103, 104, 32, 116, 104, 101, 32, 99, 101, 110, 116, 114, 101, 32, 111, 102, 32, 116, 104, 101, 32, 115, 112, 104, 101, 114, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 102, 102, 115, 101, 116, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 48, 46, 57, 44, 48, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 46, 56, 44, 50, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 70, 101, 98, 45, 48, 51, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 114, 109, 10, 45, 45, 103, 32, 120, 121, 44, 48, 10, 45, 110, 91, 48, 93, 32, 123, 36, 49, 45, 49, 125, 44, 123, 36, 49, 43, 49, 125, 10, 45, 97, 32, 99, 10, 45, 114, 101, 112, 101, 97, 116, 32, 50, 53, 10, 45, 45, 110, 111, 114, 109, 10, 45, 47, 91, 48, 44, 49, 93, 10, 45, 98, 32, 123, 119, 42, 36, 50, 47, 53, 48, 48, 125, 10, 45, 100, 111, 110, 101, 10, 45, 102, 32, 97, 116, 97, 110, 50, 40, 105, 44, 97, 98, 115, 40, 105, 40, 120, 44, 121, 44, 48, 44, 48, 41, 41, 41, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 32, 49, 44, 50, 10, 45, 101, 110, 100, 108, 10, 45, 114, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 48, 44, 49, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 108, 105, 110, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 106, 112, 114, 95, 108, 105, 110, 101, 95, 101, 100, 103, 101, 115, 44, 106, 112, 114, 95, 108, 105, 110, 101, 95, 101, 100, 103, 101, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 99, 111, 109, 98, 105, 110, 101, 115, 32, 116, 104, 101, 32, 114, 101, 115, 117, 108, 116, 115, 32, 105, 110, 32, 115, 101, 118, 101, 114, 97, 108, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 115, 44, 32, 101, 97, 99, 104, 32, 111, 110, 101, 32, 98, 108, 117, 114, 115, 32, 111, 110, 101, 32, 119, 97, 121, 32, 97, 110, 100, 32, 108, 111, 111, 107, 115, 32, 102, 111, 114, 32, 112, 111, 105, 110, 116, 115, 32, 111, 102, 32, 109, 97, 120, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 97, 116, 32, 57, 48, 32, 100, 101, 103, 114, 101, 101, 115, 32, 116, 111, 32, 116, 104, 101, 32, 98, 108, 117, 114, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 119, 111, 114, 107, 115, 32, 98, 101, 115, 116, 32, 111, 110, 32, 112, 104, 111, 116, 111, 103, 114, 97, 112, 104, 115, 32, 110, 111, 116, 32, 108, 105, 110, 101, 45, 97, 114, 116, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 115, 32, 112, 101, 114, 32, 81, 117, 97, 100, 114, 97, 110, 116, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 114, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 116, 105, 32, 65, 108, 105, 97, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 74, 97, 110, 45, 50, 50, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 108, 105, 110, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 53, 125, 44, 36, 123, 51, 61, 49, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 70, 105, 110, 100, 32, 101, 100, 103, 101, 115, 32, 105, 110, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 36, 49, 32, 97, 110, 103, 108, 101, 115, 32, 112, 101, 114, 32, 113, 117, 97, 100, 114, 97, 110, 116, 32, 119, 105, 116, 104, 32, 36, 50, 32, 98, 108, 117, 114, 114, 105, 110, 103, 32, 97, 110, 100, 32, 36, 51, 32, 97, 110, 116, 105, 45, 97, 108, 105, 97, 115, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 114, 109, 10, 45, 102, 102, 116, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 120, 45, 119, 47, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 121, 45, 104, 47, 50, 10, 45, 115, 104, 105, 102, 116, 91, 50, 44, 51, 93, 32, 123, 45, 119, 47, 50, 125, 44, 123, 45, 104, 47, 50, 125, 44, 48, 44, 48, 44, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 125, 10, 97, 99, 61, 123, 51, 42, 99, 111, 115, 40, 40, 36, 62, 43, 48, 46, 53, 41, 42, 112, 105, 47, 36, 49, 47, 50, 41, 47, 115, 113, 114, 116, 40, 112, 105, 41, 42, 36, 50, 47, 119, 125, 10, 97, 115, 61, 123, 51, 42, 115, 105, 110, 40, 40, 36, 62, 43, 48, 46, 53, 41, 42, 112, 105, 47, 36, 49, 47, 50, 41, 47, 115, 113, 114, 116, 40, 112, 105, 41, 42, 36, 50, 47, 119, 125, 10, 45, 45, 42, 91, 50, 93, 32, 36, 97, 99, 10, 45, 45, 42, 91, 51, 93, 32, 36, 97, 115, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 115, 113, 114, 91, 45, 49, 93, 10, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 45, 101, 120, 112, 91, 45, 49, 93, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 10, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 91, 49, 93, 120, 49, 10, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 91, 48, 93, 120, 49, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 114, 109, 91, 45, 52, 93, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 10, 91, 49, 93, 120, 49, 10, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 91, 48, 93, 120, 49, 10, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 91, 45, 52, 93, 10, 45, 114, 109, 91, 45, 52, 93, 10, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 98, 115, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 32, 36, 51, 10, 97, 99, 61, 123, 49, 46, 52, 53, 42, 99, 111, 115, 40, 40, 36, 62, 43, 48, 46, 53, 41, 42, 112, 105, 47, 36, 49, 47, 50, 41, 125, 10, 97, 115, 61, 123, 49, 46, 52, 53, 42, 115, 105, 110, 40, 40, 36, 62, 43, 48, 46, 53, 41, 42, 112, 105, 47, 36, 49, 47, 50, 41, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 50, 93, 32, 123, 45, 36, 97, 99, 125, 44, 123, 45, 36, 97, 115, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 51, 93, 32, 123, 36, 97, 99, 125, 44, 123, 36, 97, 115, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 51, 93, 32, 123, 36, 97, 99, 125, 44, 123, 45, 36, 97, 115, 125, 10, 45, 45, 115, 104, 105, 102, 116, 91, 45, 52, 93, 32, 123, 45, 36, 97, 99, 125, 44, 123, 36, 97, 115, 125, 10, 45, 105, 102, 32, 36, 52, 10, 45, 45, 109, 97, 120, 91, 45, 54, 44, 45, 52, 44, 45, 51, 93, 10, 45, 45, 109, 105, 110, 91, 45, 55, 44, 45, 53, 44, 45, 52, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 53, 44, 45, 52, 93, 10, 45, 42, 91, 45, 52, 93, 32, 48, 46, 53, 10, 45, 45, 91, 45, 54, 44, 45, 52, 93, 10, 45, 47, 91, 45, 53, 44, 45, 49, 93, 10, 45, 45, 91, 45, 52, 93, 32, 48, 46, 49, 10, 45, 109, 97, 120, 91, 45, 52, 93, 32, 48, 10, 45, 42, 91, 45, 52, 93, 32, 50, 10, 45, 45, 91, 52, 44, 45, 52, 93, 10, 45, 45, 109, 97, 120, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 10, 45, 45, 109, 105, 110, 91, 45, 52, 44, 45, 51, 44, 45, 50, 93, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 51, 44, 45, 50, 93, 10, 45, 42, 91, 45, 50, 93, 32, 48, 46, 53, 10, 45, 45, 91, 45, 51, 44, 45, 50, 93, 10, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 91, 45, 49, 93, 32, 48, 46, 49, 10, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 10, 45, 42, 91, 45, 49, 93, 32, 50, 10, 45, 45, 91, 52, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 109, 97, 120, 91, 45, 52, 44, 45, 51, 93, 10, 45, 103, 116, 91, 45, 53, 44, 45, 51, 93, 10, 45, 45, 91, 52, 44, 45, 52, 93, 10, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 91, 52, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 44, 49, 44, 50, 44, 51, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 111, 114, 105, 101, 110, 116, 101, 100, 116, 104, 105, 110, 110, 105, 110, 103, 32, 58, 32, 106, 112, 114, 95, 111, 114, 105, 101, 110, 116, 101, 100, 116, 104, 105, 110, 110, 105, 110, 103, 44, 106, 112, 114, 95, 111, 114, 105, 101, 110, 116, 101, 100, 116, 104, 105, 110, 110, 105, 110, 103, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 83, 107, 101, 108, 101, 116, 111, 110, 32, 111, 102, 32, 97, 32, 115, 104, 97, 112, 101, 32, 97, 103, 97, 105, 110, 115, 116, 32, 97, 32, 122, 101, 114, 111, 45, 118, 97, 108, 117, 101, 32, 40, 112, 117, 114, 101, 45, 98, 108, 97, 99, 107, 41, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 117, 115, 105, 110, 103, 32, 108, 111, 99, 97, 108, 108, 121, 32, 111, 114, 105, 101, 110, 116, 101, 100, 32, 108, 111, 99, 97, 108, 32, 109, 97, 120, 105, 109, 97, 32, 116, 111, 32, 102, 105, 110, 100, 32, 111, 110, 108, 121, 32, 114, 101, 108, 101, 118, 97, 110, 116, 32, 114, 105, 100, 103, 101, 115, 32, 45, 32, 110, 111, 116, 32, 109, 105, 99, 114, 111, 32, 114, 105, 100, 103, 101, 115, 32, 102, 114, 111, 109, 32, 97, 32, 110, 111, 105, 115, 121, 32, 98, 111, 117, 110, 100, 97, 114, 121, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 32, 83, 109, 111, 111, 116, 104, 32, 66, 111, 114, 100, 101, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 111, 112, 97, 103, 97, 116, 101, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 51, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 79, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 116, 97, 110, 99, 101, 32, 77, 101, 116, 114, 105, 99, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 109, 97, 120, 32, 124, 120, 124, 32, 124, 121, 124, 32, 99, 104, 101, 98, 121, 115, 104, 101, 118, 44, 124, 120, 124, 43, 124, 121, 124, 32, 109, 97, 110, 104, 97, 116, 116, 97, 110, 44, 124, 120, 32, 121, 124, 32, 101, 117, 99, 108, 105, 100, 101, 97, 110, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 65, 112, 114, 45, 49, 52, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 111, 114, 105, 101, 110, 116, 101, 100, 116, 104, 105, 110, 110, 105, 110, 103, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 79, 114, 105, 101, 110, 116, 101, 100, 32, 84, 104, 105, 110, 110, 105, 110, 103, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 80, 114, 101, 45, 83, 109, 111, 111, 116, 104, 32, 36, 49, 44, 32, 80, 114, 111, 112, 97, 103, 97, 116, 101, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 36, 50, 44, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 87, 105, 100, 116, 104, 32, 36, 51, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 60, 93, 10, 45, 110, 111, 114, 109, 10, 45, 45, 98, 32, 36, 49, 10, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 91, 45, 49, 93, 32, 48, 10, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 40, 49, 44, 48, 44, 45, 49, 41, 10, 45, 98, 91, 45, 49, 93, 32, 36, 50, 10, 45, 108, 101, 91, 45, 49, 93, 32, 48, 10, 45, 105, 102, 32, 36, 52, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 42, 32, 50, 53, 53, 10, 45, 101, 108, 115, 101, 10, 40, 49, 46, 49, 44, 48, 94, 48, 44, 49, 46, 49, 41, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 50, 93, 32, 48, 44, 36, 53, 10, 45, 109, 97, 120, 91, 45, 50, 93, 32, 36, 51, 10, 45, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 10, 45, 42, 91, 45, 50, 93, 32, 45, 49, 10, 45, 45, 119, 97, 114, 112, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 49, 10, 45, 114, 109, 91, 45, 51, 93, 10, 45, 109, 97, 120, 91, 45, 50, 44, 45, 49, 93, 10, 45, 103, 116, 91, 45, 50, 44, 45, 49, 93, 10, 45, 42, 32, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 112, 104, 97, 115, 101, 99, 111, 110, 103, 114, 117, 101, 110, 99, 101, 32, 58, 32, 106, 112, 114, 95, 112, 104, 97, 115, 101, 99, 111, 110, 103, 114, 117, 101, 110, 99, 101, 44, 106, 112, 114, 95, 112, 104, 97, 115, 101, 99, 111, 110, 103, 114, 117, 101, 110, 99, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 69, 100, 103, 101, 32, 100, 101, 116, 101, 99, 116, 32, 119, 105, 116, 104, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 97, 108, 32, 80, 104, 97, 115, 101, 32, 67, 111, 110, 103, 114, 117, 101, 110, 99, 101, 32, 117, 115, 105, 110, 103, 32, 112, 114, 111, 112, 111, 114, 116, 105, 111, 110, 97, 108, 105, 116, 121, 32, 116, 111, 32, 76, 111, 99, 97, 108, 32, 69, 110, 101, 114, 103, 121, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 101, 114, 103, 121, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 77, 97, 120, 105, 109, 97, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 77, 97, 114, 45, 51, 49, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 112, 104, 97, 115, 101, 99, 111, 110, 103, 114, 117, 101, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 80, 104, 97, 115, 101, 32, 67, 111, 110, 103, 114, 117, 101, 110, 99, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 83, 116, 97, 114, 116, 65, 110, 103, 108, 101, 32, 36, 49, 44, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 115, 32, 36, 50, 44, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 36, 51, 44, 32, 73, 115, 76, 105, 110, 101, 115, 32, 36, 52, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 60, 93, 10, 45, 110, 111, 114, 109, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 50, 10, 91, 48, 93, 120, 49, 10, 116, 61, 123, 40, 36, 49, 47, 49, 56, 48, 43, 36, 60, 47, 36, 50, 41, 42, 112, 105, 125, 10, 97, 61, 123, 99, 111, 115, 40, 36, 116, 41, 125, 10, 98, 61, 123, 115, 105, 110, 40, 36, 116, 41, 125, 10, 45, 102, 102, 116, 91, 50, 93, 10, 45, 109, 118, 91, 51, 93, 32, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 115, 120, 61, 105, 102, 40, 120, 62, 119, 47, 50, 44, 120, 45, 119, 44, 120, 41, 59, 115, 121, 61, 105, 102, 40, 121, 62, 104, 47, 50, 44, 121, 45, 104, 44, 121, 41, 59, 105, 102, 40, 97, 98, 115, 40, 36, 97, 42, 115, 120, 43, 36, 98, 42, 115, 121, 41, 62, 48, 46, 55, 44, 115, 105, 103, 110, 40, 36, 97, 42, 115, 120, 43, 36, 98, 42, 115, 121, 41, 44, 48, 41, 10, 45, 42, 91, 51, 93, 32, 45, 49, 10, 45, 42, 91, 50, 44, 51, 93, 32, 91, 52, 93, 10, 45, 114, 109, 91, 52, 93, 10, 45, 105, 102, 102, 116, 91, 50, 44, 51, 93, 10, 45, 114, 109, 91, 51, 93, 10, 99, 61, 123, 109, 97, 120, 40, 97, 98, 115, 40, 36, 97, 41, 44, 97, 98, 115, 40, 36, 98, 41, 41, 42, 46, 56, 125, 10, 45, 97, 98, 115, 91, 50, 93, 10, 45, 109, 97, 120, 91, 50, 93, 32, 36, 51, 10, 45, 105, 102, 32, 36, 52, 10, 97, 61, 123, 36, 97, 47, 36, 99, 125, 10, 98, 61, 123, 36, 98, 47, 36, 99, 125, 10, 45, 102, 91, 50, 93, 32, 105, 62, 105, 40, 120, 43, 36, 97, 44, 121, 43, 36, 98, 41, 38, 105, 62, 105, 40, 120, 45, 36, 97, 44, 121, 45, 36, 98, 41, 10, 45, 101, 110, 100, 105, 102, 10, 45, 43, 91, 49, 44, 50, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 114, 101, 109, 111, 118, 101, 95, 98, 108, 111, 99, 107, 115, 49, 32, 58, 32, 106, 112, 114, 95, 114, 101, 109, 111, 118, 101, 95, 98, 108, 111, 99, 107, 115, 49, 44, 106, 112, 114, 95, 114, 101, 109, 111, 118, 101, 95, 98, 108, 111, 99, 107, 115, 49, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 115, 117, 98, 116, 114, 97, 99, 116, 115, 32, 115, 113, 117, 97, 114, 101, 32, 101, 100, 103, 101, 100, 32, 98, 108, 111, 99, 107, 115, 32, 119, 105, 116, 104, 32, 108, 105, 109, 105, 116, 101, 100, 45, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 119, 104, 105, 108, 101, 32, 109, 97, 115, 107, 105, 110, 103, 32, 108, 101, 115, 115, 45, 115, 109, 111, 111, 116, 104, 32, 97, 114, 101, 97, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 92, 110, 92, 110, 116, 104, 105, 115, 32, 99, 97, 110, 32, 114, 101, 100, 117, 99, 101, 32, 108, 111, 119, 32, 113, 117, 97, 108, 105, 116, 121, 32, 106, 112, 101, 103, 32, 97, 114, 116, 105, 102, 97, 99, 116, 115, 32, 105, 110, 32, 118, 101, 114, 121, 32, 115, 109, 111, 111, 116, 104, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 97, 110, 32, 105, 109, 97, 103, 101, 92, 110, 49, 46, 32, 99, 104, 111, 111, 115, 101, 32, 97, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 32, 105, 110, 32, 112, 105, 120, 101, 108, 115, 32, 116, 111, 32, 102, 105, 116, 92, 110, 50, 46, 32, 115, 101, 116, 32, 115, 109, 97, 108, 108, 101, 115, 116, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 116, 104, 97, 116, 32, 99, 97, 116, 99, 104, 101, 115, 32, 98, 108, 111, 99, 107, 32, 110, 111, 105, 115, 101, 32, 105, 110, 32, 115, 109, 111, 111, 116, 104, 32, 97, 114, 101, 97, 115, 32, 98, 117, 116, 32, 109, 97, 115, 107, 115, 32, 114, 101, 97, 108, 32, 101, 100, 103, 101, 115, 32, 105, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 92, 110, 51, 46, 32, 102, 105, 110, 101, 32, 116, 117, 110, 101, 32, 116, 104, 101, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 97, 114, 111, 117, 110, 100, 32, 55, 48, 44, 32, 116, 104, 101, 32, 97, 109, 111, 117, 110, 116, 32, 111, 102, 32, 101, 115, 116, 105, 109, 97, 116, 101, 100, 32, 98, 108, 111, 99, 107, 45, 110, 111, 105, 115, 101, 32, 116, 111, 32, 115, 117, 98, 116, 114, 97, 99, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 50, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 102, 105, 110, 101, 45, 116, 117, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 48, 44, 50, 48, 44, 51, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 50, 45, 78, 111, 118, 45, 51, 48, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 114, 101, 109, 111, 118, 101, 95, 98, 108, 111, 99, 107, 115, 49, 32, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 107, 101, 101, 112, 91, 48, 93, 10, 115, 112, 97, 116, 105, 97, 108, 61, 36, 49, 10, 97, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 50, 10, 115, 116, 114, 101, 110, 103, 116, 104, 61, 36, 51, 10, 45, 45, 98, 91, 48, 93, 32, 123, 36, 115, 112, 97, 116, 105, 97, 108, 42, 49, 46, 50, 125, 32, 45, 45, 98, 91, 48, 93, 32, 123, 36, 115, 112, 97, 116, 105, 97, 108, 42, 48, 46, 56, 125, 32, 45, 45, 91, 49, 44, 50, 93, 32, 91, 48, 93, 10, 45, 99, 91, 49, 44, 50, 93, 32, 123, 45, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 125, 44, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 125, 10, 45, 45, 61, 61, 91, 49, 44, 50, 93, 32, 123, 45, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 125, 10, 45, 45, 61, 61, 91, 49, 44, 50, 93, 32, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 125, 32, 45, 111, 114, 91, 51, 44, 52, 44, 53, 44, 54, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 10, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 50, 44, 50, 10, 45, 114, 91, 49, 44, 50, 93, 32, 123, 119, 47, 36, 115, 112, 97, 116, 105, 97, 108, 125, 44, 123, 104, 47, 36, 115, 112, 97, 116, 105, 97, 108, 125, 44, 49, 44, 51, 44, 50, 10, 45, 114, 91, 49, 44, 50, 93, 32, 36, 119, 104, 10, 45, 115, 104, 105, 102, 116, 91, 49, 93, 32, 45, 50, 44, 45, 50, 10, 45, 99, 91, 49, 44, 50, 93, 32, 123, 45, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 47, 50, 125, 44, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 47, 50, 125, 10, 45, 45, 61, 61, 91, 49, 44, 50, 93, 32, 123, 45, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 47, 50, 125, 10, 45, 45, 61, 61, 91, 49, 44, 50, 93, 32, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 47, 50, 125, 32, 45, 111, 114, 91, 51, 44, 52, 44, 53, 44, 54, 44, 55, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 51, 93, 32, 111, 114, 10, 45, 98, 108, 117, 114, 91, 51, 93, 32, 123, 50, 42, 36, 115, 112, 97, 116, 105, 97, 108, 125, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 51, 93, 32, 48, 46, 49, 10, 45, 98, 108, 117, 114, 91, 51, 93, 32, 123, 50, 42, 36, 115, 112, 97, 116, 105, 97, 108, 125, 10, 45, 45, 91, 51, 93, 32, 49, 10, 45, 43, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 10, 45, 42, 91, 49, 93, 32, 91, 50, 93, 32, 45, 114, 109, 91, 50, 93, 10, 45, 42, 91, 49, 93, 32, 123, 48, 46, 48, 49, 42, 36, 115, 116, 114, 101, 110, 103, 116, 104, 125, 10, 45, 45, 91, 48, 93, 32, 91, 49, 93, 32, 45, 114, 109, 91, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 115, 104, 97, 112, 101, 115, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 58, 32, 106, 112, 114, 95, 115, 104, 97, 112, 101, 115, 95, 103, 114, 97, 100, 105, 101, 110, 116, 44, 106, 112, 114, 95, 115, 104, 97, 112, 101, 115, 95, 103, 114, 97, 100, 105, 101, 110, 116, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 108, 111, 116, 115, 32, 111, 102, 32, 108, 111, 99, 97, 108, 32, 114, 101, 103, 114, 101, 115, 115, 105, 111, 110, 115, 32, 117, 115, 105, 110, 103, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 115, 117, 112, 112, 114, 101, 115, 115, 32, 110, 111, 105, 115, 101, 32, 105, 110, 32, 116, 104, 101, 32, 103, 114, 97, 100, 105, 101, 110, 116, 115, 32, 111, 102, 32, 115, 109, 97, 108, 108, 32, 97, 114, 101, 97, 115, 32, 114, 97, 110, 100, 111, 109, 32, 97, 114, 101, 97, 115, 32, 99, 104, 111, 115, 101, 110, 32, 98, 121, 32, 119, 97, 116, 101, 114, 115, 104, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 46, 53, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 97, 116, 101, 114, 115, 104, 101, 100, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 46, 48, 53, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 70, 108, 97, 116, 116, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 49, 44, 48, 46, 48, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 67, 97, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 46, 53, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 74, 97, 110, 45, 51, 49, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 115, 104, 97, 112, 101, 115, 95, 103, 114, 97, 100, 105, 101, 110, 116, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 48, 46, 49, 42, 40, 120, 45, 119, 47, 50, 41, 10, 45, 45, 110, 111, 114, 109, 91, 48, 93, 10, 45, 98, 91, 45, 49, 93, 32, 36, 49, 10, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 50, 44, 48, 10, 45, 103, 116, 91, 45, 49, 93, 32, 48, 10, 45, 42, 91, 49, 93, 32, 91, 45, 49, 93, 10, 45, 45, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 49, 44, 45, 49, 93, 10, 45, 45, 91, 49, 44, 45, 49, 93, 10, 45, 45, 115, 113, 114, 91, 49, 93, 10, 91, 45, 50, 93, 120, 49, 10, 45, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 49, 93, 32, 36, 51, 10, 45, 115, 113, 114, 116, 91, 45, 49, 93, 10, 45, 47, 91, 49, 44, 45, 49, 93, 10, 45, 45, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 48, 44, 45, 49, 93, 10, 45, 42, 91, 48, 93, 32, 91, 45, 51, 93, 10, 45, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 48, 44, 45, 50, 93, 10, 45, 99, 91, 48, 93, 32, 45, 36, 52, 44, 36, 52, 10, 45, 42, 91, 48, 44, 49, 93, 10, 45, 43, 91, 48, 44, 49, 93, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 115, 112, 101, 99, 117, 108, 97, 114, 98, 117, 109, 112, 115, 32, 58, 32, 106, 112, 114, 95, 115, 112, 101, 99, 117, 108, 97, 114, 98, 117, 109, 112, 115, 44, 106, 112, 114, 95, 115, 112, 101, 99, 117, 108, 97, 114, 98, 117, 109, 112, 115, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 65, 100, 100, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 117, 115, 105, 110, 103, 32, 98, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 103, 114, 97, 100, 105, 101, 110, 116, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 73, 108, 108, 117, 109, 105, 110, 97, 116, 101, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 55, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 32, 83, 109, 111, 111, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 82, 97, 110, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 51, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 108, 108, 117, 109, 105, 110, 97, 116, 105, 111, 110, 32, 65, 100, 106, 117, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 52, 53, 44, 52, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 108, 108, 117, 109, 105, 110, 97, 116, 105, 111, 110, 32, 79, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 48, 46, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 111, 117, 103, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 48, 53, 44, 48, 46, 51, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 98, 108, 97, 99, 107, 32, 97, 110, 100, 32, 119, 104, 105, 116, 101, 34, 44, 34, 119, 104, 105, 116, 101, 32, 119, 105, 116, 104, 32, 97, 108, 112, 104, 97, 34, 44, 34, 99, 111, 109, 112, 111, 115, 101, 32, 116, 111, 32, 105, 109, 97, 103, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 77, 97, 114, 45, 51, 49, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 115, 112, 101, 99, 117, 108, 97, 114, 98, 117, 109, 112, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 112, 101, 99, 117, 108, 97, 114, 32, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 32, 105, 109, 97, 103, 101, 36, 63, 32, 119, 105, 116, 104, 32, 71, 114, 97, 100, 105, 101, 110, 116, 65, 110, 103, 108, 101, 32, 36, 49, 44, 32, 80, 114, 101, 45, 83, 109, 111, 111, 116, 104, 32, 36, 50, 44, 32, 71, 114, 97, 100, 105, 101, 110, 116, 82, 97, 110, 103, 101, 32, 36, 51, 44, 32, 65, 100, 106, 117, 115, 116, 65, 110, 103, 108, 101, 32, 36, 52, 44, 32, 73, 108, 108, 117, 109, 105, 110, 97, 116, 105, 111, 110, 79, 102, 102, 115, 101, 116, 32, 36, 53, 44, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 83, 105, 122, 101, 32, 36, 54, 44, 32, 82, 111, 117, 103, 104, 110, 101, 115, 115, 32, 36, 55, 44, 32, 79, 117, 116, 112, 117, 116, 84, 121, 112, 101, 32, 36, 56, 34, 10, 45, 118, 32, 45, 10, 116, 61, 123, 36, 49, 42, 112, 105, 47, 49, 56, 48, 125, 10, 97, 61, 123, 99, 111, 115, 40, 36, 116, 41, 125, 10, 98, 61, 123, 115, 105, 110, 40, 36, 116, 41, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 60, 93, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 45, 98, 32, 36, 50, 10, 45, 108, 91, 45, 49, 93, 10, 45, 110, 111, 114, 109, 10, 45, 103, 114, 97, 100, 105, 101, 110, 116, 32, 120, 121, 10, 45, 97, 32, 99, 10, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 40, 36, 97, 44, 36, 98, 59, 123, 45, 36, 98, 125, 44, 36, 97, 41, 10, 45, 100, 105, 118, 32, 36, 51, 10, 45, 99, 32, 48, 44, 49, 10, 45, 45, 110, 111, 114, 109, 10, 45, 102, 91, 45, 49, 93, 32, 34, 48, 46, 49, 47, 40, 48, 46, 49, 43, 105, 41, 34, 10, 45, 97, 32, 99, 10, 45, 45, 110, 111, 114, 109, 10, 45, 100, 105, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 98, 32, 50, 10, 45, 45, 110, 111, 114, 109, 10, 45, 100, 105, 118, 91, 45, 50, 44, 45, 49, 93, 10, 119, 104, 61, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 40, 123, 99, 111, 115, 40, 40, 52, 53, 43, 36, 52, 41, 42, 112, 105, 47, 49, 56, 48, 41, 42, 115, 105, 110, 40, 36, 53, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 115, 105, 110, 40, 40, 52, 53, 43, 36, 52, 41, 42, 112, 105, 47, 49, 56, 48, 41, 42, 115, 105, 110, 40, 36, 53, 42, 112, 105, 47, 49, 56, 48, 41, 125, 94, 123, 99, 111, 115, 40, 36, 53, 42, 112, 105, 47, 49, 56, 48, 41, 125, 41, 10, 45, 114, 32, 36, 119, 104, 10, 45, 45, 10, 45, 110, 111, 114, 109, 10, 45, 99, 32, 36, 54, 44, 123, 36, 54, 43, 36, 55, 125, 10, 45, 42, 32, 45, 49, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 48, 125, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 101, 108, 115, 101, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 45, 114, 109, 91, 45, 50, 93, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 51, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 45, 50, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 108, 115, 101, 10, 45, 98, 108, 101, 110, 100, 32, 100, 111, 100, 103, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 106, 112, 114, 95, 119, 97, 114, 112, 102, 114, 111, 109, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 58, 32, 106, 112, 114, 95, 119, 97, 114, 112, 102, 114, 111, 109, 116, 104, 114, 101, 115, 104, 111, 108, 100, 44, 106, 112, 114, 95, 119, 97, 114, 112, 102, 114, 111, 109, 116, 104, 114, 101, 115, 104, 111, 108, 100, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 97, 32, 100, 117, 109, 109, 121, 32, 49, 48, 48, 120, 49, 48, 48, 32, 103, 114, 105, 100, 32, 105, 115, 32, 119, 97, 114, 112, 101, 100, 32, 117, 115, 105, 110, 103, 32, 115, 109, 111, 111, 116, 104, 101, 100, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 97, 115, 32, 97, 32, 109, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 55, 48, 44, 49, 48, 44, 50, 52, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 109, 112, 108, 105, 102, 121, 32, 82, 101, 103, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 38, 32, 82, 101, 110, 111, 114, 109, 97, 108, 105, 115, 101, 32, 76, 111, 111, 112, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 51, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 114, 32, 65, 109, 111, 117, 110, 116, 32, 112, 101, 114, 32, 83, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 117, 112, 100, 97, 116, 101, 97, 117, 116, 104, 111, 114, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 117, 112, 100, 97, 116, 101, 32, 50, 48, 49, 51, 45, 70, 101, 98, 45, 48, 51, 32, 97, 117, 116, 104, 111, 114, 32, 64, 106, 97, 121, 112, 114, 105, 99, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 106, 112, 114, 95, 119, 97, 114, 112, 102, 114, 111, 109, 116, 104, 114, 101, 115, 104, 111, 108, 100, 58, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 36, 62, 93, 10, 45, 110, 111, 114, 109, 10, 45, 45, 103, 32, 120, 121, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 103, 101, 91, 48, 93, 32, 36, 49, 10, 45, 98, 91, 48, 93, 32, 36, 50, 10, 45, 103, 101, 91, 48, 93, 32, 48, 46, 53, 10, 45, 102, 91, 48, 93, 32, 105, 33, 61, 105, 40, 120, 43, 49, 44, 121, 41, 124, 105, 33, 61, 105, 40, 120, 44, 121, 43, 49, 41, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 51, 10, 45, 45, 110, 111, 114, 109, 91, 49, 93, 10, 45, 42, 91, 50, 93, 32, 91, 48, 93, 10, 45, 97, 91, 49, 44, 50, 93, 32, 99, 10, 45, 102, 91, 49, 93, 32, 105, 102, 40, 105, 40, 120, 44, 121, 44, 48, 44, 50, 41, 61, 61, 48, 44, 105, 44, 105, 47, 105, 40, 120, 44, 121, 44, 48, 44, 50, 41, 41, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 49, 93, 32, 48, 44, 49, 10, 45, 98, 91, 49, 93, 32, 36, 52, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 10, 45, 115, 32, 99, 10, 45, 110, 32, 48, 44, 49, 48, 48, 10, 45, 97, 32, 99, 10, 49, 48, 48, 44, 49, 48, 48, 44, 49, 44, 51, 44, 40, 40, 120, 47, 50, 41, 37, 52, 41, 61, 61, 48, 124, 40, 99, 61, 61, 50, 38, 40, 40, 121, 47, 50, 41, 37, 52, 41, 61, 61, 48, 41, 10, 45, 119, 97, 114, 112, 91, 49, 93, 32, 91, 48, 93, 10, 45, 114, 109, 91, 48, 93, 10, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 10, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 75, 97, 82, 111, 39, 115, 32, 84, 101, 115, 116, 115, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 111, 117, 116, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 107, 97, 114, 111, 115, 95, 97, 98, 111, 117, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 75, 97, 82, 111, 39, 115, 32, 116, 101, 115, 116, 32, 102, 105, 108, 101, 115, 32, 102, 111, 114, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 92, 110, 92, 119, 114, 105, 116, 116, 101, 110, 32, 98, 121, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 75, 97, 114, 115, 116, 101, 110, 32, 82, 111, 100, 101, 110, 97, 99, 107, 101, 114, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 75, 46, 82, 111, 100, 101, 110, 97, 99, 107, 101, 114, 46, 100, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 105, 115, 32, 115, 101, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 107, 97, 114, 111, 48, 51, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 47, 103, 109, 105, 99, 47, 107, 97, 114, 111, 115, 46, 103, 109, 105, 99, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 83, 101, 118, 101, 114, 97, 108, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 32, 104, 101, 114, 101, 32, 114, 101, 108, 121, 32, 111, 110, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 115, 32, 101, 120, 105, 115, 116, 105, 110, 103, 32, 60, 105, 62, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 60, 47, 105, 62, 32, 40, 36, 80, 65, 84, 72, 32, 117, 110, 116, 101, 114, 32, 77, 97, 99, 47, 85, 110, 105, 120, 41, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 109, 101, 97, 110, 115, 32, 116, 104, 97, 116, 32, 116, 104, 101, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 105, 115, 32, 100, 111, 119, 110, 108, 111, 97, 100, 101, 100, 32, 111, 114, 32, 98, 117, 105, 108, 116, 32, 97, 110, 100, 32, 112, 114, 111, 112, 101, 114, 108, 121, 32, 108, 111, 99, 97, 116, 101, 100, 46, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 46, 32, 103, 46, 32, 67, 73, 109, 103, 32, 101, 120, 97, 109, 112, 108, 101, 115, 32, 104, 97, 118, 101, 32, 116, 111, 32, 98, 101, 32, 98, 117, 105, 108, 116, 32, 97, 110, 100, 32, 99, 111, 112, 105, 101, 100, 32, 116, 111, 32, 97, 32, 108, 111, 99, 97, 116, 105, 111, 110, 32, 105, 110, 32, 116, 104, 101, 32, 115, 101, 97, 114, 99, 104, 32, 112, 97, 116, 104, 44, 32, 101, 46, 103, 46, 32, 117, 110, 100, 101, 114, 32, 117, 110, 105, 120, 32, 60, 105, 62, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47, 98, 105, 110, 60, 47, 105, 62, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 109, 105, 108, 97, 114, 32, 119, 105, 116, 104, 32, 80, 73, 78, 75, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 115, 46, 32, 70, 111, 114, 32, 77, 97, 99, 32, 116, 104, 101, 121, 32, 104, 97, 118, 101, 32, 116, 111, 32, 98, 101, 32, 98, 117, 105, 108, 116, 32, 97, 99, 99, 111, 114, 100, 105, 110, 103, 32, 116, 104, 101, 32, 82, 69, 65, 68, 77, 69, 32, 119, 105, 116, 104, 32, 60, 105, 62, 46, 47, 109, 97, 107, 101, 108, 105, 110, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 97, 110, 100, 32, 80, 65, 84, 72, 32, 97, 115, 32, 116, 111, 32, 98, 101, 32, 101, 120, 116, 101, 110, 100, 101, 100, 32, 98, 121, 32, 60, 105, 62, 46, 46, 112, 105, 110, 107, 32, 108, 111, 99, 97, 116, 105, 111, 110, 46, 46, 47, 108, 105, 110, 117, 120, 47, 98, 105, 110, 60, 47, 105, 62, 46, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 32, 67, 73, 109, 103, 32, 83, 107, 101, 108, 101, 116, 111, 110, 58, 32, 60, 105, 62, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 60, 47, 105, 62, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 99, 118, 115, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 118, 105, 101, 119, 118, 99, 47, 99, 105, 109, 103, 47, 67, 73, 109, 103, 47, 101, 120, 97, 109, 112, 108, 101, 115, 47, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 46, 99, 112, 112, 63, 118, 105, 101, 119, 61, 108, 111, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 32, 67, 73, 109, 103, 32, 110, 108, 109, 101, 97, 110, 115, 58, 32, 60, 105, 62, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 60, 47, 105, 62, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 99, 105, 109, 103, 46, 99, 118, 115, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 118, 105, 101, 119, 118, 99, 47, 99, 105, 109, 103, 47, 67, 73, 109, 103, 47, 101, 120, 97, 109, 112, 108, 101, 115, 47, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 46, 99, 112, 112, 63, 118, 105, 101, 119, 61, 108, 111, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 32, 109, 77, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 58, 32, 92, 110, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 92, 110, 109, 77, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 115, 105, 122, 101, 32, 45, 32, 109, 77, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 115, 105, 122, 101, 50, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 32, 111, 67, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 58, 32, 92, 110, 109, 97, 116, 104, 101, 109, 97, 116, 105, 99, 97, 108, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 121, 32, 111, 112, 101, 110, 47, 99, 108, 111, 115, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 92, 110, 109, 77, 32, 111, 112, 101, 110, 32, 115, 105, 122, 101, 32, 45, 32, 109, 77, 32, 99, 108, 111, 115, 101, 32, 115, 105, 122, 101, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 32, 32, 80, 105, 110, 107, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 32, 98, 105, 110, 97, 114, 121, 58, 32, 60, 105, 62, 80, 105, 110, 107, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 115, 60, 47, 105, 62, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 84, 104, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 114, 101, 32, 113, 117, 105, 116, 101, 32, 60, 105, 62, 101, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 60, 47, 105, 62, 32, 97, 110, 100, 32, 115, 117, 98, 106, 101, 99, 116, 32, 116, 111, 32, 99, 104, 97, 110, 103, 101, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 108, 101, 97, 115, 101, 32, 100, 111, 32, 110, 111, 116, 32, 114, 101, 108, 121, 32, 111, 110, 32, 116, 104, 101, 32, 102, 97, 99, 116, 32, 116, 104, 97, 116, 32, 116, 104, 101, 121, 32, 119, 105, 108, 108, 32, 112, 101, 114, 102, 111, 114, 109, 32, 101, 113, 117, 97, 108, 108, 121, 32, 102, 111, 114, 101, 118, 101, 114, 46, 34, 125, 10, 107, 97, 114, 111, 115, 95, 97, 98, 111, 117, 116, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 32, 34, 32, 91, 48, 93, 32, 45, 42, 91, 45, 49, 93, 32, 48, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 75, 97, 82, 111, 39, 115, 34, 44, 49, 48, 37, 44, 50, 50, 37, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 116, 101, 120, 116, 91, 45, 49, 93, 32, 34, 84, 101, 115, 116, 115, 34, 44, 52, 48, 37, 44, 54, 48, 37, 44, 53, 55, 44, 49, 44, 50, 53, 53, 32, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 115, 107, 101, 108, 101, 116, 111, 110, 91, 45, 49, 93, 32, 44, 32, 45, 110, 91, 45, 49, 45, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 50, 93, 32, 50, 32, 45, 45, 91, 45, 49, 45, 45, 50, 93, 32, 45, 43, 10, 112, 115, 101, 117, 100, 111, 95, 99, 32, 58, 32, 45, 118, 32, 45, 32, 64, 123, 45, 49, 44, 77, 125, 44, 49, 44, 49, 44, 51, 44, 63, 40, 50, 53, 53, 41, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 10, 95, 117, 112, 95, 101, 115, 32, 58, 32, 45, 118, 32, 45, 32, 118, 101, 114, 61, 64, 46, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 36, 118, 101, 114, 125, 34, 44, 34, 36, 123, 50, 61, 48, 125, 34, 10, 45, 118, 32, 43, 32, 45, 101, 91, 94, 49, 93, 32, 34, 85, 112, 100, 97, 116, 101, 32, 101, 120, 116, 101, 114, 110, 97, 108, 32, 115, 111, 117, 114, 99, 101, 102, 105, 108, 101, 115, 32, 97, 110, 100, 32, 46, 103, 109, 105, 99, 95, 100, 101, 102, 46, 34, 36, 49, 32, 45, 118, 32, 45, 10, 45, 105, 32, 114, 97, 119, 58, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 103, 109, 105, 99, 95, 100, 101, 102, 46, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 123, 72, 79, 77, 69, 125, 47, 46, 103, 109, 105, 99, 95, 100, 101, 102, 46, 36, 49, 44, 117, 99, 104, 97, 114, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 50, 32, 45, 105, 32, 64, 123, 45, 112, 97, 116, 104, 95, 117, 115, 101, 114, 125, 64, 123, 45, 102, 105, 108, 101, 95, 115, 108, 97, 115, 104, 125, 46, 103, 109, 105, 99, 95, 115, 111, 117, 114, 99, 101, 115, 46, 99, 105, 109, 103, 122, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 45, 64, 123, 60, 44, 45, 49, 125, 93, 32, 45, 105, 102, 32, 123, 119, 62, 53, 125, 10, 102, 110, 61, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 118, 32, 43, 32, 45, 101, 32, 36, 123, 102, 110, 125, 32, 45, 118, 32, 45, 10, 45, 105, 32, 114, 97, 119, 58, 36, 123, 102, 110, 125, 44, 117, 99, 104, 97, 114, 32, 45, 111, 91, 45, 49, 93, 32, 114, 97, 119, 58, 36, 123, 72, 79, 77, 69, 125, 47, 46, 64, 123, 45, 49, 44, 98, 125, 46, 103, 109, 105, 99, 44, 117, 99, 104, 97, 114, 32, 45, 101, 110, 100, 105, 102, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 99, 108, 111, 115, 101, 32, 58, 10, 45, 101, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 99, 108, 111, 115, 105, 110, 103, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 51, 44, 36, 49, 44, 36, 51, 44, 36, 50, 44, 36, 53, 44, 36, 52, 10, 107, 97, 114, 111, 95, 111, 112, 101, 110, 32, 58, 10, 45, 101, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 111, 112, 101, 110, 105, 110, 103, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 48, 125, 44, 36, 123, 51, 61, 48, 125, 44, 36, 123, 52, 61, 48, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 50, 44, 36, 49, 44, 36, 51, 44, 36, 50, 44, 36, 53, 44, 36, 52, 10, 107, 97, 114, 111, 95, 100, 111, 99, 32, 58, 10, 45, 101, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 111, 112, 101, 110, 47, 99, 108, 111, 115, 101, 32, 97, 110, 100, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 119, 105, 110, 100, 111, 119, 32, 115, 105, 122, 101, 32, 36, 49, 46, 34, 32, 45, 118, 32, 45, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 49, 125, 44, 36, 123, 51, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 60, 44, 45, 49, 125, 93, 10, 45, 45, 107, 97, 114, 111, 95, 111, 112, 101, 110, 91, 48, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 36, 51, 32, 45, 45, 107, 97, 114, 111, 95, 99, 108, 111, 115, 101, 91, 48, 93, 32, 36, 49, 44, 36, 50, 44, 48, 44, 48, 44, 36, 51, 10, 45, 43, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 32, 45, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 100, 111, 111, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 53, 125, 44, 36, 123, 50, 61, 55, 125, 44, 36, 123, 51, 61, 50, 125, 44, 36, 123, 52, 61, 49, 125, 44, 36, 123, 53, 61, 48, 125, 44, 36, 123, 54, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 109, 109, 32, 111, 112, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 115, 105, 122, 101, 115, 32, 36, 49, 32, 97, 110, 100, 32, 36, 50, 46, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 60, 44, 45, 49, 125, 93, 10, 45, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 36, 51, 44, 36, 49, 44, 48, 44, 36, 52, 44, 36, 54, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 50, 93, 32, 36, 51, 44, 36, 50, 44, 48, 44, 36, 52, 44, 36, 54, 44, 48, 10, 45, 105, 102, 32, 123, 123, 36, 123, 51, 125, 38, 49, 125, 61, 61, 48, 125, 32, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 61, 61, 49, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 108, 97, 98, 101, 108, 95, 115, 111, 114, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 83, 111, 114, 116, 32, 108, 97, 98, 101, 108, 108, 101, 100, 32, 105, 109, 97, 103, 101, 32, 91, 49, 93, 32, 98, 121, 32, 114, 101, 103, 105, 111, 110, 32, 115, 105, 122, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 110, 98, 61, 123, 49, 43, 105, 77, 125, 32, 109, 110, 61, 64, 123, 45, 49, 44, 109, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 110, 98, 44, 48, 44, 123, 36, 110, 98, 45, 49, 125, 10, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 108, 97, 98, 101, 108, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 36, 49, 62, 61, 48, 34, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 51, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 76, 97, 98, 101, 108, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 111, 110, 32, 105, 109, 97, 103, 101, 32, 91, 49, 93, 44, 32, 119, 105, 116, 104, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 36, 49, 44, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 50, 44, 104, 105, 103, 104, 44, 108, 111, 119, 125, 34, 32, 99, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 97, 110, 100, 32, 34, 64, 123, 45, 97, 114, 103, 92, 32, 49, 43, 33, 36, 51, 44, 115, 111, 114, 116, 101, 100, 44, 117, 110, 115, 111, 114, 116, 101, 100, 125, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 108, 97, 98, 101, 108, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 10, 9, 45, 105, 102, 32, 123, 36, 51, 125, 10, 110, 98, 61, 123, 49, 43, 64, 123, 45, 49, 44, 77, 125, 125, 32, 45, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 36, 110, 98, 44, 48, 44, 64, 123, 45, 49, 44, 77, 125, 10, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 45, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 120, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 121, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 32, 45, 114, 111, 119, 115, 91, 45, 49, 93, 32, 49, 10, 45, 109, 97, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 120, 99, 105, 109, 103, 32, 58, 10, 102, 105, 108, 101, 110, 97, 109, 101, 61, 64, 123, 45, 102, 105, 108, 101, 95, 114, 97, 110, 100, 125, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 125, 10, 45, 120, 32, 34, 119, 104, 105, 99, 104, 32, 34, 36, 49, 34, 32, 62, 47, 100, 101, 118, 47, 110, 117, 108, 108, 32, 50, 62, 38, 49, 34, 10, 45, 105, 102, 32, 64, 123, 125, 32, 45, 118, 32, 43, 32, 45, 101, 32, 34, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 92, 34, 36, 49, 92, 34, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 80, 65, 84, 72, 44, 32, 115, 116, 97, 116, 117, 115, 32, 61, 32, 34, 64, 123, 125, 34, 33, 33, 32, 82, 101, 116, 117, 114, 110, 105, 110, 103, 33, 33, 92, 110, 34, 32, 45, 118, 32, 45, 10, 123, 119, 125, 44, 123, 104, 125, 32, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 101, 120, 101, 99, 32, 69, 114, 114, 111, 114, 32, 33, 33, 34, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 111, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 99, 105, 109, 103, 10, 45, 120, 32, 34, 36, 49, 32, 45, 105, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 99, 105, 109, 103, 32, 36, 50, 32, 45, 111, 32, 34, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 34, 46, 99, 105, 109, 103, 34, 10, 45, 105, 102, 32, 64, 123, 125, 32, 45, 118, 32, 43, 32, 45, 101, 32, 34, 83, 116, 97, 116, 117, 115, 32, 105, 115, 32, 34, 64, 123, 125, 34, 46, 34, 32, 45, 118, 32, 45, 32, 123, 119, 125, 44, 123, 104, 125, 32, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 101, 120, 101, 99, 32, 69, 114, 114, 111, 114, 32, 33, 33, 34, 10, 45, 101, 108, 115, 101, 32, 45, 105, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 99, 105, 109, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 102, 105, 108, 101, 95, 114, 109, 32, 36, 123, 102, 105, 108, 101, 110, 97, 109, 101, 125, 46, 99, 105, 109, 103, 10, 107, 97, 114, 111, 95, 108, 105, 50, 115, 116, 32, 58, 10, 45, 118, 32, 45, 32, 45, 117, 32, 34, 34, 32, 45, 105, 102, 32, 123, 36, 35, 62, 61, 49, 125, 32, 40, 123, 34, 39, 36, 123, 49, 45, 45, 49, 125, 39, 34, 125, 41, 32, 45, 114, 101, 112, 108, 97, 99, 101, 91, 45, 49, 93, 32, 123, 39, 44, 39, 125, 44, 123, 34, 39, 32, 39, 34, 125, 32, 45, 117, 32, 64, 123, 45, 49, 44, 116, 125, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 36, 35, 62, 48, 125, 32, 45, 107, 97, 114, 111, 95, 108, 105, 50, 115, 116, 32, 36, 123, 49, 45, 45, 49, 125, 32, 112, 61, 64, 123, 125, 32, 45, 101, 108, 115, 101, 32, 112, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 45, 101, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 111, 112, 116, 105, 111, 110, 115, 32, 34, 36, 112, 34, 32, 111, 110, 36, 63, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 107, 97, 114, 111, 95, 120, 99, 105, 109, 103, 32, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 44, 36, 123, 112, 125, 34, 32, 45, 118, 105, 115, 117, 32, 48, 34, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 107, 97, 114, 111, 95, 110, 108, 109, 101, 97, 110, 115, 32, 58, 32, 45, 118, 32, 45, 32, 45, 105, 102, 32, 123, 36, 35, 62, 48, 125, 32, 45, 107, 97, 114, 111, 95, 108, 105, 50, 115, 116, 32, 36, 123, 49, 45, 45, 49, 125, 32, 112, 61, 64, 123, 125, 32, 45, 101, 108, 115, 101, 32, 112, 61, 34, 34, 32, 45, 101, 110, 100, 105, 102, 32, 45, 118, 32, 43, 10, 45, 101, 32, 34, 67, 111, 109, 112, 117, 116, 101, 32, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 32, 101, 120, 101, 99, 32, 119, 105, 116, 104, 32, 111, 112, 116, 105, 111, 110, 115, 32, 34, 36, 123, 112, 125, 34, 32, 111, 110, 36, 63, 34, 32, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 115, 61, 64, 123, 45, 49, 44, 115, 125, 32, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 32, 45, 107, 97, 114, 111, 95, 120, 99, 105, 109, 103, 32, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 44, 36, 123, 112, 125, 34, 32, 45, 118, 105, 115, 117, 32, 48, 34, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 107, 91, 48, 93, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 115, 62, 49, 125, 32, 45, 97, 91, 45, 36, 115, 45, 45, 49, 93, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 67, 73, 109, 103, 32, 110, 108, 109, 101, 97, 110, 115, 32, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 110, 108, 109, 101, 97, 110, 115, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 110, 108, 109, 101, 97, 110, 115, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 71, 97, 117, 115, 115, 32, 110, 111, 105, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 44, 48, 46, 48, 44, 51, 48, 46, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 117, 110, 105, 102, 111, 114, 109, 32, 110, 111, 105, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 44, 48, 46, 48, 44, 51, 48, 46, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 83, 97, 108, 116, 32, 38, 32, 80, 101, 112, 112, 101, 114, 32, 110, 111, 105, 115, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 44, 48, 46, 48, 44, 51, 48, 46, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 97, 108, 102, 32, 115, 105, 122, 101, 32, 111, 102, 32, 112, 97, 116, 99, 104, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 110, 100, 32, 119, 105, 100, 116, 104, 32, 108, 97, 109, 98, 100, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 105, 115, 101, 32, 83, 68, 32, 115, 105, 103, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 44, 45, 49, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 105, 122, 101, 32, 97, 108, 112, 104, 97, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 109, 112, 108, 105, 110, 103, 32, 115, 116, 101, 112, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 117, 115, 105, 110, 103, 32, 67, 73, 109, 103, 32, 101, 120, 97, 109, 112, 108, 101, 32, 112, 108, 117, 103, 105, 110, 32, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 67, 73, 109, 103, 32, 110, 108, 109, 101, 97, 110, 115, 58, 32, 60, 105, 62, 117, 115, 101, 95, 110, 108, 109, 101, 97, 110, 115, 60, 47, 105, 62, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 110, 108, 109, 101, 97, 110, 115, 32, 58, 10, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 48, 125, 34, 44, 34, 36, 123, 50, 61, 48, 125, 34, 44, 34, 36, 123, 51, 61, 48, 125, 34, 44, 34, 36, 123, 52, 61, 49, 125, 34, 44, 34, 36, 123, 53, 61, 45, 49, 125, 34, 44, 34, 36, 123, 54, 61, 45, 49, 125, 34, 44, 34, 36, 123, 55, 61, 50, 125, 34, 10, 45, 107, 97, 114, 111, 95, 110, 108, 109, 101, 97, 110, 115, 32, 45, 110, 103, 44, 36, 49, 44, 45, 110, 117, 44, 36, 50, 44, 45, 110, 115, 44, 36, 51, 44, 45, 112, 44, 36, 52, 44, 45, 108, 97, 109, 98, 100, 97, 44, 36, 53, 44, 45, 115, 105, 103, 109, 97, 44, 36, 54, 44, 45, 97, 108, 112, 104, 97, 44, 36, 55, 44, 45, 115, 97, 109, 112, 108, 105, 110, 103, 44, 36, 56, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 110, 108, 109, 101, 97, 110, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 110, 108, 109, 101, 97, 110, 115, 32, 36, 123, 49, 45, 56, 125, 34, 44, 36, 57, 10, 35, 64, 103, 105, 109, 112, 32, 67, 73, 109, 103, 32, 83, 107, 101, 108, 101, 116, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 115, 107, 101, 108, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 115, 107, 101, 108, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 92, 37, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 77, 101, 100, 105, 97, 110, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 111, 110, 32, 102, 108, 117, 120, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 48, 46, 51, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 100, 105, 97, 108, 32, 99, 117, 114, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 114, 115, 101, 108, 108, 111, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 61, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 115, 99, 114, 101, 116, 101, 32, 115, 116, 101, 112, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 83, 107, 101, 108, 101, 116, 111, 110, 32, 117, 115, 105, 110, 103, 32, 67, 73, 109, 103, 32, 101, 120, 97, 109, 112, 108, 101, 32, 112, 108, 117, 103, 105, 110, 32, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 67, 73, 109, 103, 32, 83, 107, 101, 108, 101, 116, 111, 110, 58, 32, 60, 105, 62, 117, 115, 101, 95, 115, 107, 101, 108, 101, 116, 111, 110, 60, 47, 105, 62, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 115, 107, 101, 108, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 97, 114, 111, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 45, 109, 101, 100, 105, 97, 110, 44, 36, 51, 44, 45, 105, 110, 118, 44, 36, 52, 44, 45, 116, 44, 36, 53, 44, 45, 99, 117, 114, 118, 101, 44, 36, 54, 44, 45, 99, 111, 114, 114, 44, 36, 55, 44, 45, 100, 108, 116, 44, 36, 56, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 115, 107, 101, 108, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 99, 105, 109, 103, 95, 115, 107, 101, 108, 32, 36, 123, 49, 45, 56, 125, 34, 44, 36, 57, 10, 35, 64, 103, 105, 109, 112, 32, 109, 77, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 109, 109, 95, 100, 105, 102, 102, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 109, 109, 95, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 50, 32, 61, 32, 105, 110, 116, 40, 55, 44, 49, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 34, 44, 34, 67, 108, 111, 115, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 34, 44, 34, 67, 105, 114, 99, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 101, 115, 116, 32, 119, 105, 116, 104, 32, 111, 100, 100, 32, 115, 105, 122, 101, 115, 33, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 114, 105, 116, 104, 109, 101, 116, 105, 99, 97, 108, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 97, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 111, 102, 32, 60, 105, 62, 115, 105, 122, 101, 60, 47, 105, 62, 32, 97, 110, 100, 32, 60, 105, 62, 115, 105, 122, 101, 50, 60, 47, 105, 62, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 109, 109, 95, 100, 105, 102, 102, 32, 58, 10, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 53, 125, 34, 44, 34, 36, 123, 50, 61, 55, 125, 34, 44, 34, 36, 123, 51, 61, 50, 125, 34, 44, 34, 36, 123, 52, 61, 49, 125, 34, 44, 34, 36, 123, 53, 61, 48, 125, 34, 44, 34, 36, 123, 54, 61, 49, 125, 34, 10, 45, 105, 102, 32, 123, 36, 50, 60, 61, 36, 49, 125, 32, 115, 50, 61, 123, 36, 49, 43, 50, 125, 32, 45, 101, 108, 115, 101, 32, 115, 50, 61, 36, 50, 32, 45, 101, 110, 100, 105, 102, 10, 45, 107, 97, 114, 111, 95, 100, 111, 111, 32, 36, 49, 44, 36, 123, 115, 50, 125, 44, 36, 51, 44, 36, 52, 44, 36, 54, 44, 36, 53, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 109, 109, 95, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 109, 109, 95, 100, 105, 102, 102, 32, 36, 123, 49, 45, 54, 125, 34, 44, 36, 55, 10, 35, 64, 103, 105, 109, 112, 32, 111, 67, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 111, 99, 95, 100, 105, 102, 102, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 111, 99, 95, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 34, 44, 34, 67, 105, 114, 99, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 101, 115, 116, 32, 119, 105, 116, 104, 32, 111, 100, 100, 32, 115, 105, 122, 101, 115, 33, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 111, 102, 32, 109, 101, 97, 110, 32, 111, 102, 32, 109, 111, 114, 112, 104, 111, 108, 111, 103, 105, 99, 97, 108, 32, 111, 112, 101, 110, 105, 110, 103, 32, 97, 110, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 119, 105, 116, 104, 32, 111, 114, 105, 103, 105, 110, 97, 108, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 111, 99, 95, 100, 105, 102, 102, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 107, 97, 114, 111, 95, 100, 111, 99, 32, 36, 49, 44, 36, 50, 44, 48, 34, 44, 36, 51, 44, 36, 52, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 111, 99, 95, 100, 105, 102, 102, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 111, 99, 95, 100, 105, 102, 102, 32, 36, 123, 49, 45, 52, 125, 34, 44, 36, 53, 10, 35, 64, 103, 105, 109, 112, 32, 80, 105, 110, 107, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 112, 105, 110, 107, 44, 32, 103, 105, 109, 112, 95, 112, 105, 110, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 105, 110, 107, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 119, 115, 104, 101, 100, 116, 111, 112, 111, 34, 44, 34, 119, 115, 104, 101, 100, 116, 111, 112, 111, 32, 105, 110, 118, 34, 44, 34, 109, 105, 110, 105, 109, 97, 34, 44, 34, 109, 97, 120, 105, 109, 97, 34, 44, 34, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 34, 44, 34, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 34, 44, 34, 103, 114, 97, 121, 115, 107, 101, 108, 34, 44, 34, 104, 116, 107, 101, 114, 110, 34, 44, 34, 104, 116, 107, 101, 114, 110, 117, 34, 44, 34, 108, 118, 107, 101, 114, 110, 34, 44, 34, 108, 118, 107, 101, 114, 110, 117, 34, 44, 34, 97, 115, 102, 34, 44, 34, 97, 115, 102, 108, 105, 110, 34, 44, 34, 97, 115, 102, 114, 34, 44, 34, 97, 115, 102, 116, 34, 44, 34, 97, 115, 102, 116, 109, 101, 100, 34, 44, 34, 97, 115, 102, 116, 110, 100, 103, 34, 44, 34, 100, 105, 108, 97, 116, 98, 97, 108, 108, 110, 117, 109, 34, 44, 34, 101, 114, 111, 115, 98, 97, 108, 108, 110, 117, 109, 34, 44, 34, 108, 105, 110, 116, 111, 112, 104, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 47, 32, 68, 105, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 111, 117, 114, 47, 120, 34, 44, 34, 69, 105, 103, 104, 116, 47, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 47, 82, 101, 112, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 34, 41, 10, 103, 105, 109, 112, 95, 112, 105, 110, 107, 32, 58, 10, 45, 105, 102, 32, 32, 32, 123, 36, 49, 61, 61, 48, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 32, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 32, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 105, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 109, 105, 110, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 109, 97, 120, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 97, 120, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 103, 114, 97, 121, 115, 107, 101, 108, 44, 110, 117, 108, 108, 44, 52, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 116, 107, 101, 114, 110, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 56, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 116, 107, 101, 114, 110, 117, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 57, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 108, 118, 107, 101, 114, 110, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 48, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 108, 118, 107, 101, 114, 110, 117, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 49, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 50, 125, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 48, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 91, 48, 93, 120, 50, 32, 45, 97, 32, 122, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 108, 105, 110, 44, 120, 44, 36, 52, 32, 45, 115, 32, 122, 32, 45, 107, 91, 45, 49, 93, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 115, 101, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 91, 48, 93, 120, 50, 32, 45, 97, 32, 122, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 108, 105, 110, 44, 121, 44, 36, 52, 32, 45, 115, 32, 122, 32, 45, 107, 91, 45, 49, 93, 34, 44, 36, 53, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 51, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 114, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 52, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 116, 44, 110, 117, 108, 108, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 53, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 116, 109, 101, 100, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 54, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 97, 115, 102, 116, 110, 100, 103, 44, 110, 117, 108, 108, 44, 110, 117, 108, 108, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 55, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 100, 105, 108, 97, 116, 98, 97, 108, 108, 110, 117, 109, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 56, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 101, 114, 111, 115, 98, 97, 108, 108, 110, 117, 109, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 57, 125, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 108, 105, 110, 116, 111, 112, 104, 97, 116, 44, 36, 52, 34, 44, 36, 53, 44, 48, 10, 45, 101, 108, 115, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 98, 32, 36, 51, 32, 45, 112, 105, 110, 107, 32, 104, 101, 105, 103, 104, 116, 109, 105, 110, 105, 109, 97, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 44, 36, 52, 32, 45, 112, 105, 110, 107, 32, 119, 115, 104, 101, 100, 116, 111, 112, 111, 44, 123, 40, 36, 50, 43, 49, 41, 42, 52, 125, 34, 44, 36, 53, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 112, 105, 110, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 112, 105, 110, 107, 32, 36, 123, 49, 45, 53, 125, 34, 44, 36, 54, 10, 35, 64, 103, 105, 109, 112, 32, 80, 105, 110, 107, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 98, 105, 110, 97, 114, 121, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 110, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 110, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 92, 37, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 105, 110, 107, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 115, 107, 101, 108, 112, 97, 114, 34, 44, 34, 115, 107, 101, 108, 101, 110, 100, 34, 44, 34, 115, 107, 101, 108, 99, 117, 114, 118, 34, 44, 34, 115, 107, 101, 108, 101, 116, 111, 110, 34, 44, 34, 98, 97, 114, 121, 99, 101, 110, 116, 114, 101, 34, 44, 34, 98, 111, 114, 100, 101, 114, 34, 44, 34, 99, 108, 111, 115, 101, 98, 97, 108, 108, 34, 44, 34, 111, 112, 101, 110, 98, 97, 108, 108, 34, 44, 34, 99, 111, 110, 118, 101, 120, 104, 117, 108, 108, 34, 44, 34, 100, 105, 115, 116, 34, 44, 34, 100, 105, 115, 116, 99, 34, 44, 34, 108, 97, 98, 101, 108, 32, 112, 108, 97, 34, 44, 34, 76, 97, 110, 116, 117, 101, 106, 111, 117, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 110, 101, 99, 116, 105, 118, 105, 116, 121, 32, 47, 32, 68, 105, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 111, 117, 114, 47, 120, 34, 44, 34, 69, 105, 103, 104, 116, 47, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 105, 103, 104, 116, 47, 82, 101, 112, 32, 61, 32, 105, 110, 116, 40, 53, 44, 45, 49, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 103, 111, 114, 105, 116, 104, 109, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 50, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 66, 105, 110, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 115, 32, 119, 105, 116, 104, 32, 80, 105, 110, 107, 32, 101, 120, 116, 101, 114, 110, 97, 108, 115, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 68, 105, 118, 101, 114, 115, 101, 32, 80, 105, 110, 107, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 115, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 110, 32, 58, 10, 45, 105, 102, 32, 32, 32, 123, 36, 51, 61, 61, 48, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 112, 97, 114, 32, 36, 54, 44, 36, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 110, 100, 32, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 44, 36, 53, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 99, 117, 114, 118, 32, 36, 54, 44, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 95, 115, 107, 101, 108, 101, 116, 111, 110, 32, 36, 54, 44, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 98, 97, 114, 121, 99, 101, 110, 116, 114, 101, 44, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 53, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 98, 111, 114, 100, 101, 114, 44, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 54, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 99, 108, 111, 115, 101, 98, 97, 108, 108, 44, 36, 53, 44, 36, 54, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 55, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 111, 112, 101, 110, 98, 97, 108, 108, 44, 36, 53, 44, 36, 54, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 56, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 99, 111, 110, 118, 101, 120, 104, 117, 108, 108, 44, 51, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 57, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 100, 105, 115, 116, 44, 36, 54, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 48, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 100, 105, 115, 116, 99, 44, 36, 54, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 49, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 108, 97, 98, 101, 108, 44, 123, 40, 36, 52, 43, 49, 41, 42, 52, 125, 44, 112, 108, 97, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 49, 50, 125, 32, 32, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 105, 102, 32, 36, 49, 32, 45, 111, 116, 115, 117, 32, 50, 53, 54, 32, 45, 101, 108, 115, 101, 32, 45, 116, 32, 36, 123, 50, 125, 37, 32, 45, 101, 110, 100, 105, 102, 32, 45, 112, 105, 110, 107, 32, 108, 97, 110, 116, 117, 101, 106, 111, 117, 108, 44, 36, 54, 32, 45, 110, 32, 48, 44, 50, 53, 53, 34, 44, 36, 55, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 110, 32, 36, 123, 49, 45, 55, 125, 34, 44, 36, 56, 10, 35, 64, 103, 105, 109, 112, 32, 80, 105, 110, 107, 32, 116, 101, 115, 116, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 98, 105, 97, 110, 99, 97, 58, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 97, 110, 99, 97, 44, 32, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 97, 110, 99, 97, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 83, 70, 32, 115, 109, 111, 111, 116, 104, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 92, 37, 32, 61, 32, 105, 110, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 87, 97, 116, 101, 114, 115, 104, 101, 100, 32, 104, 101, 105, 103, 104, 116, 32, 109, 105, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 101, 110, 105, 110, 103, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 101, 32, 71, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 66, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 80, 105, 110, 107, 32, 116, 101, 115, 116, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 66, 105, 97, 110, 99, 97, 32, 102, 111, 114, 32, 82, 71, 66, 32, 105, 109, 97, 103, 101, 59, 32, 111, 110, 108, 121, 32, 66, 32, 117, 115, 101, 100, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 80, 105, 110, 107, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 115, 32, 105, 110, 32, 115, 101, 97, 114, 99, 104, 32, 80, 65, 84, 72, 32, 111, 114, 32, 67, 58, 92, 92, 80, 105, 110, 107, 92, 92, 98, 105, 110, 92, 92, 32, 102, 111, 114, 32, 87, 105, 110, 100, 111, 119, 115, 34, 125, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 75, 97, 82, 111, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 112, 105, 110, 107, 104, 113, 46, 99, 111, 109, 47, 34, 41, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 97, 110, 99, 97, 32, 58, 10, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 53, 125, 34, 44, 34, 36, 123, 50, 61, 54, 48, 125, 34, 44, 34, 36, 123, 51, 61, 53, 125, 34, 44, 34, 36, 123, 52, 61, 49, 125, 34, 44, 34, 36, 123, 53, 61, 48, 125, 34, 44, 34, 36, 123, 54, 61, 48, 125, 34, 10, 45, 105, 102, 32, 36, 53, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 33, 64, 123, 45, 105, 115, 95, 119, 105, 110, 100, 111, 119, 115, 125, 125, 32, 101, 120, 101, 61, 34, 108, 97, 98, 101, 108, 34, 32, 45, 101, 108, 115, 101, 32, 101, 120, 101, 61, 34, 67, 58, 92, 80, 105, 110, 107, 92, 98, 105, 110, 92, 108, 97, 98, 101, 108, 34, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 32, 99, 32, 45, 105, 102, 32, 36, 54, 32, 45, 107, 91, 45, 50, 93, 32, 45, 101, 108, 115, 101, 32, 45, 107, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 112, 105, 110, 107, 32, 97, 115, 102, 44, 36, 49, 32, 45, 45, 45, 32, 45, 107, 91, 45, 49, 44, 45, 51, 93, 32, 45, 116, 91, 45, 49, 93, 32, 36, 123, 50, 125, 37, 10, 45, 45, 112, 105, 110, 107, 95, 119, 115, 104, 101, 100, 91, 45, 50, 93, 32, 44, 49, 44, 36, 51, 10, 45, 112, 105, 110, 107, 91, 45, 49, 93, 32, 36, 101, 120, 101, 44, 52, 44, 109, 97, 120, 32, 45, 116, 91, 45, 49, 93, 32, 49, 10, 45, 101, 114, 111, 100, 101, 95, 111, 99, 116, 91, 45, 50, 93, 32, 123, 36, 52, 42, 50, 43, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 91, 45, 50, 93, 32, 123, 36, 52, 42, 50, 43, 49, 125, 10, 45, 45, 42, 91, 45, 49, 44, 45, 50, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 32, 45, 110, 91, 45, 49, 44, 45, 50, 93, 32, 48, 44, 50, 53, 53, 32, 45, 97, 91, 45, 49, 44, 45, 50, 44, 45, 52, 93, 32, 99, 32, 45, 107, 91, 48, 93, 10, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 97, 110, 99, 97, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 107, 97, 114, 111, 95, 112, 105, 110, 107, 95, 98, 105, 97, 110, 99, 97, 32, 36, 123, 49, 45, 54, 125, 34, 44, 36, 55, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 76, 121, 108, 101, 106, 107, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 101, 110, 100, 32, 91, 115, 104, 97, 112, 101, 32, 97, 118, 101, 114, 97, 103, 101, 93, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 44, 32, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 115, 101, 114, 118, 101, 32, 115, 104, 97, 100, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 48, 47, 49, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 51, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 45, 105, 102, 32, 36, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 109, 118, 91, 48, 93, 32, 64, 35, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 76, 121, 108, 101, 106, 107, 39, 115, 32, 115, 116, 101, 110, 99, 105, 108, 32, 58, 32, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 115, 116, 101, 110, 99, 105, 108, 44, 32, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 115, 116, 101, 110, 99, 105, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 76, 121, 108, 101, 32, 75, 114, 111, 108, 108, 44, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 115, 116, 101, 110, 99, 105, 108, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 32, 45, 98, 32, 36, 51, 32, 45, 117, 110, 115, 104, 97, 114, 112, 32, 36, 51, 44, 36, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 34, 44, 36, 52, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 78, 97, 103, 103, 111, 98, 111, 116, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 115, 116, 114, 97, 99, 116, 32, 70, 108, 111, 111, 100, 32, 58, 32, 103, 105, 109, 112, 95, 65, 98, 115, 116, 114, 97, 99, 116, 70, 108, 111, 111, 100, 44, 32, 103, 105, 109, 112, 95, 65, 98, 115, 116, 114, 97, 99, 116, 70, 108, 111, 111, 100, 95, 80, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 87, 97, 114, 110, 105, 110, 103, 58, 32, 82, 101, 97, 108, 108, 121, 32, 114, 101, 97, 108, 108, 121, 32, 115, 108, 111, 119, 32, 102, 105, 108, 116, 101, 114, 32, 101, 115, 112, 101, 99, 105, 97, 108, 108, 121, 32, 119, 105, 116, 104, 32, 67, 117, 98, 105, 115, 109, 32, 101, 110, 97, 98, 108, 101, 100, 46, 32, 85, 115, 101, 32, 97, 32, 109, 97, 120, 105, 109, 117, 109, 32, 111, 102, 32, 49, 32, 109, 101, 103, 97, 112, 105, 120, 101, 108, 32, 105, 109, 97, 103, 101, 46, 32, 82, 97, 110, 100, 111, 109, 32, 119, 97, 108, 107, 32, 97, 108, 103, 111, 114, 105, 104, 109, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 101, 108, 101, 99, 116, 32, 110, 101, 119, 32, 97, 114, 101, 97, 115, 32, 116, 111, 32, 102, 108, 111, 111, 100, 46, 32, 73, 102, 32, 67, 117, 98, 105, 115, 109, 32, 105, 115, 32, 101, 110, 97, 98, 108, 101, 100, 32, 116, 104, 101, 32, 102, 105, 108, 116, 101, 114, 32, 104, 97, 115, 32, 116, 111, 32, 114, 117, 110, 32, 99, 117, 98, 105, 109, 115, 32, 102, 111, 114, 32, 101, 118, 101, 114, 121, 32, 115, 117, 99, 99, 101, 115, 102, 117, 108, 32, 114, 101, 112, 101, 97, 116, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 102, 108, 111, 111, 100, 32, 115, 101, 116, 116, 105, 110, 103, 115, 32, 115, 101, 99, 116, 105, 111, 110, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 112, 114, 111, 99, 101, 115, 115, 32, 119, 105, 116, 104, 32, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 70, 108, 111, 111, 100, 32, 115, 101, 116, 116, 105, 110, 103, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 70, 108, 111, 111, 100, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 112, 101, 97, 116, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 111, 100, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 111, 100, 32, 98, 97, 115, 101, 32, 115, 116, 101, 112, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 118, 97, 115, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 115, 101, 116, 116, 105, 110, 103, 44, 32, 67, 111, 110, 115, 105, 100, 101, 114, 32, 100, 105, 115, 97, 98, 108, 105, 110, 103, 32, 112, 114, 101, 118, 105, 101, 119, 32, 105, 102, 32, 117, 115, 105, 110, 103, 32, 104, 105, 103, 104, 32, 102, 108, 111, 111, 100, 32, 114, 101, 112, 101, 97, 116, 115, 33, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 67, 117, 98, 105, 115, 109, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 98, 105, 115, 109, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 48, 48, 44, 49, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 111, 99, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 46, 48, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 112, 97, 99, 105, 116, 121, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 117, 115, 101, 100, 32, 116, 111, 32, 109, 97, 107, 101, 32, 100, 101, 99, 105, 115, 105, 111, 110, 32, 97, 98, 111, 117, 116, 32, 102, 108, 111, 111, 100, 105, 110, 103, 46, 32, 85, 115, 101, 32, 48, 32, 105, 102, 32, 67, 117, 98, 105, 115, 109, 32, 105, 115, 32, 110, 111, 116, 32, 101, 110, 97, 98, 108, 101, 100, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 54, 50, 52, 51, 55, 49, 53, 54, 54, 54, 34, 41, 10, 103, 105, 109, 112, 95, 65, 98, 115, 116, 114, 97, 99, 116, 70, 108, 111, 111, 100, 32, 58, 10, 80, 114, 101, 112, 61, 36, 49, 10, 83, 112, 97, 116, 105, 97, 108, 86, 97, 114, 105, 97, 110, 99, 101, 61, 36, 50, 10, 86, 97, 108, 117, 101, 86, 97, 114, 105, 97, 110, 99, 101, 61, 36, 51, 10, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 52, 10, 65, 99, 116, 105, 118, 97, 116, 101, 70, 108, 111, 111, 100, 61, 36, 53, 10, 82, 101, 112, 101, 97, 116, 115, 61, 36, 54, 10, 84, 111, 108, 101, 114, 97, 110, 99, 101, 61, 36, 55, 10, 70, 108, 111, 111, 100, 66, 97, 115, 101, 83, 116, 101, 112, 61, 36, 56, 10, 67, 97, 110, 118, 97, 115, 82, 61, 36, 57, 10, 67, 97, 110, 118, 97, 115, 71, 61, 36, 49, 48, 10, 67, 97, 110, 118, 97, 115, 66, 61, 36, 49, 49, 10, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 50, 10, 65, 99, 116, 105, 118, 97, 116, 101, 67, 117, 98, 105, 115, 109, 61, 36, 49, 51, 10, 67, 117, 98, 105, 115, 109, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 49, 52, 10, 66, 108, 111, 99, 115, 105, 122, 101, 61, 36, 49, 53, 10, 65, 110, 103, 108, 101, 61, 36, 49, 54, 10, 67, 117, 98, 105, 115, 109, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 55, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 49, 56, 10, 83, 116, 101, 112, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 123, 36, 49, 57, 43, 48, 46, 49, 125, 10, 83, 116, 101, 112, 61, 36, 70, 108, 111, 111, 100, 66, 97, 115, 101, 83, 116, 101, 112, 10, 68, 101, 108, 116, 97, 61, 49, 10, 68, 101, 108, 116, 97, 79, 114, 103, 61, 36, 68, 101, 108, 116, 97, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 80, 114, 101, 112, 61, 61, 49, 125, 10, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 48, 93, 32, 36, 83, 112, 97, 116, 105, 97, 108, 86, 97, 114, 105, 97, 110, 99, 101, 44, 36, 86, 97, 108, 117, 101, 86, 97, 114, 105, 97, 110, 99, 101, 44, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 40, 123, 36, 67, 97, 110, 118, 97, 115, 82, 125, 94, 123, 36, 67, 97, 110, 118, 97, 115, 71, 125, 94, 123, 36, 67, 97, 110, 118, 97, 115, 66, 125, 94, 48, 41, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 49, 93, 10, 45, 114, 91, 49, 93, 32, 91, 48, 93, 10, 88, 61, 123, 40, 119, 41, 47, 50, 125, 10, 89, 61, 123, 40, 104, 41, 47, 50, 125, 10, 73, 109, 97, 103, 101, 72, 61, 123, 40, 104, 41, 125, 10, 73, 109, 97, 103, 101, 87, 61, 123, 40, 119, 41, 125, 10, 68, 111, 76, 111, 111, 112, 61, 48, 10, 73, 115, 71, 111, 111, 100, 61, 48, 10, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 70, 108, 111, 111, 100, 61, 61, 49, 125, 10, 9, 35, 65, 32, 99, 111, 109, 109, 101, 110, 116, 32, 104, 101, 114, 101, 32, 105, 115, 32, 110, 101, 101, 100, 101, 100, 9, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 82, 101, 112, 101, 97, 116, 115, 10, 9, 10, 9, 9, 35, 84, 104, 101, 32, 97, 99, 116, 117, 97, 108, 32, 102, 108, 111, 111, 100, 32, 105, 115, 32, 100, 111, 110, 101, 32, 98, 121, 32, 116, 104, 105, 115, 10, 9, 9, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 49, 48, 48, 42, 36, 88, 47, 119, 125, 37, 44, 123, 49, 48, 48, 42, 36, 89, 47, 104, 125, 37, 44, 123, 49, 125, 44, 123, 49, 125, 44, 123, 48, 125, 44, 49, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 9, 9, 9, 10, 9, 9, 45, 102, 108, 111, 111, 100, 91, 48, 93, 32, 123, 49, 48, 48, 42, 36, 88, 47, 119, 125, 37, 44, 123, 49, 48, 48, 42, 36, 89, 47, 104, 125, 37, 44, 48, 44, 36, 84, 111, 108, 101, 114, 97, 110, 99, 101, 44, 48, 44, 49, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 49, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 50, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 51, 41, 125, 10, 9, 9, 10, 9, 9, 35, 83, 101, 108, 101, 99, 116, 32, 116, 104, 101, 32, 99, 111, 108, 111, 114, 32, 116, 104, 97, 116, 32, 119, 97, 115, 32, 102, 108, 111, 111, 100, 101, 100, 32, 43, 32, 111, 116, 104, 101, 114, 115, 32, 112, 105, 120, 101, 108, 115, 32, 111, 102, 32, 115, 97, 109, 101, 32, 99, 111, 108, 111, 114, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 91, 48, 93, 32, 48, 44, 49, 44, 48, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 49, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 50, 41, 125, 44, 64, 123, 48, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 51, 41, 125, 44, 48, 44, 48, 10, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 67, 117, 98, 105, 115, 109, 61, 61, 49, 125, 10, 9, 9, 9, 35, 84, 114, 101, 97, 116, 32, 99, 111, 108, 111, 114, 32, 119, 105, 116, 104, 32, 67, 117, 98, 105, 115, 109, 10, 9, 9, 9, 45, 99, 117, 98, 105, 115, 109, 91, 50, 93, 32, 36, 67, 117, 98, 105, 115, 109, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 36, 66, 108, 111, 99, 115, 105, 122, 101, 44, 36, 65, 110, 103, 108, 101, 44, 36, 67, 117, 98, 105, 115, 109, 79, 112, 97, 99, 105, 116, 121, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 67, 111, 109, 112, 111, 115, 101, 32, 119, 105, 116, 104, 32, 97, 108, 112, 104, 97, 32, 98, 108, 101, 110, 100, 105, 110, 103, 32, 109, 111, 100, 101, 10, 9, 9, 45, 98, 108, 101, 110, 100, 91, 49, 44, 50, 93, 32, 97, 108, 112, 104, 97, 10, 9, 9, 10, 9, 9, 35, 67, 97, 108, 99, 117, 108, 97, 116, 101, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 105, 110, 32, 100, 111, 32, 119, 104, 105, 108, 101, 32, 108, 111, 111, 112, 32, 117, 110, 116, 105, 108, 10, 9, 9, 35, 110, 101, 119, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 104, 97, 115, 32, 111, 112, 97, 99, 105, 116, 121, 32, 108, 111, 119, 101, 114, 32, 116, 104, 97, 110, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 10, 9, 9, 35, 97, 110, 100, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 105, 115, 32, 119, 104, 105, 116, 105, 110, 32, 105, 109, 97, 103, 101, 32, 98, 111, 117, 110, 100, 97, 114, 121, 10, 9, 9, 10, 9, 9, 45, 100, 111, 10, 9, 9, 9, 35, 82, 97, 110, 100, 111, 109, 32, 115, 116, 101, 112, 32, 108, 101, 110, 103, 116, 104, 32, 105, 115, 32, 109, 105, 110, 105, 109, 117, 109, 32, 115, 116, 101, 112, 32, 43, 32, 100, 101, 108, 116, 97, 32, 119, 104, 105, 99, 104, 32, 105, 115, 32, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 111, 110, 32, 104, 111, 119, 32, 109, 97, 110, 121, 32, 97, 116, 116, 101, 109, 112, 116, 115, 32, 104, 97, 118, 101, 32, 98, 101, 101, 110, 32, 109, 97, 100, 101, 10, 9, 9, 9, 82, 115, 116, 101, 112, 61, 123, 36, 83, 116, 101, 112, 43, 36, 68, 101, 108, 116, 97, 125, 10, 9, 9, 9, 35, 82, 97, 110, 100, 111, 109, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 103, 111, 32, 116, 111, 10, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 63, 40, 51, 54, 48, 41, 125, 10, 9, 9, 9, 35, 65, 100, 100, 32, 116, 111, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 116, 111, 32, 103, 101, 116, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 10, 9, 9, 9, 88, 110, 101, 119, 61, 123, 105, 110, 116, 40, 36, 88, 43, 36, 82, 115, 116, 101, 112, 42, 99, 111, 115, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 9, 9, 9, 89, 110, 101, 119, 61, 123, 105, 110, 116, 40, 36, 89, 43, 36, 82, 115, 116, 101, 112, 42, 115, 105, 110, 40, 36, 116, 104, 101, 116, 97, 41, 41, 125, 10, 9, 9, 9, 10, 9, 9, 9, 35, 67, 104, 101, 99, 107, 32, 105, 102, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 105, 115, 32, 103, 111, 111, 100, 32, 105, 101, 32, 119, 104, 105, 116, 105, 110, 32, 105, 109, 97, 103, 101, 32, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 88, 110, 101, 119, 62, 48, 125, 34, 32, 38, 38, 32, 34, 123, 36, 88, 110, 101, 119, 60, 36, 73, 109, 97, 103, 101, 87, 125, 34, 32, 38, 38, 32, 34, 123, 36, 89, 110, 101, 119, 62, 48, 125, 34, 32, 38, 38, 32, 34, 123, 36, 89, 110, 101, 119, 60, 36, 73, 109, 97, 103, 101, 72, 125, 125, 10, 9, 9, 9, 9, 35, 73, 102, 32, 99, 111, 111, 114, 100, 32, 119, 97, 115, 32, 103, 111, 111, 100, 32, 115, 101, 116, 32, 97, 115, 32, 110, 101, 119, 32, 39, 98, 117, 103, 39, 32, 108, 111, 99, 97, 116, 105, 111, 110, 10, 9, 9, 9, 9, 88, 61, 36, 88, 110, 101, 119, 10, 9, 9, 9, 9, 89, 61, 36, 89, 110, 101, 119, 10, 9, 9, 9, 9, 35, 67, 104, 101, 99, 107, 32, 116, 104, 101, 32, 97, 108, 112, 104, 97, 32, 111, 102, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 46, 32, 73, 102, 32, 97, 98, 111, 118, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 105, 110, 99, 114, 101, 97, 115, 101, 32, 100, 101, 108, 116, 97, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 51, 41, 125, 62, 36, 83, 116, 101, 112, 84, 104, 114, 101, 115, 104, 111, 108, 100, 125, 10, 9, 9, 9, 9, 9, 35, 73, 110, 99, 114, 101, 97, 115, 101, 32, 100, 101, 108, 116, 97, 32, 105, 102, 32, 110, 111, 32, 115, 117, 105, 116, 97, 98, 108, 101, 32, 112, 105, 120, 101, 108, 32, 99, 111, 117, 108, 100, 32, 98, 101, 32, 102, 111, 117, 110, 100, 32, 111, 110, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 115, 116, 101, 112, 10, 9, 9, 9, 9, 9, 35, 68, 101, 108, 116, 97, 32, 105, 115, 32, 115, 109, 97, 108, 108, 101, 114, 32, 111, 102, 32, 116, 104, 101, 32, 112, 114, 101, 118, 105, 111, 117, 115, 10, 9, 9, 9, 9, 9, 35, 66, 97, 115, 101, 32, 115, 116, 101, 112, 32, 115, 105, 122, 101, 32, 43, 32, 100, 111, 32, 119, 104, 105, 108, 101, 32, 108, 111, 111, 112, 32, 110, 117, 109, 98, 101, 114, 10, 9, 9, 9, 9, 9, 68, 101, 108, 116, 97, 61, 123, 109, 105, 110, 40, 123, 36, 68, 101, 108, 116, 97, 43, 36, 68, 101, 108, 116, 97, 42, 50, 125, 44, 123, 109, 97, 120, 40, 36, 73, 109, 97, 103, 101, 87, 44, 36, 73, 109, 97, 103, 101, 72, 41, 47, 53, 125, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 67, 104, 101, 99, 107, 32, 116, 104, 101, 32, 97, 108, 112, 104, 97, 32, 111, 102, 32, 110, 101, 119, 32, 99, 111, 111, 114, 100, 44, 10, 9, 9, 9, 9, 35, 105, 102, 32, 98, 101, 108, 111, 119, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 101, 120, 105, 116, 32, 100, 111, 45, 119, 104, 105, 108, 101, 32, 97, 110, 100, 32, 102, 108, 111, 111, 100, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 51, 41, 125, 60, 36, 83, 116, 101, 112, 84, 104, 114, 101, 115, 104, 111, 108, 100, 125, 10, 9, 9, 9, 9, 9, 73, 115, 71, 111, 111, 100, 61, 49, 48, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 109, 97, 107, 101, 32, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 108, 111, 111, 112, 32, 119, 105, 108, 108, 32, 98, 101, 32, 101, 118, 101, 110, 116, 117, 97, 108, 108, 32, 101, 120, 105, 116, 101, 100, 44, 32, 114, 117, 110, 32, 97, 32, 109, 97, 120, 32, 111, 102, 32, 49, 48, 48, 32, 100, 111, 45, 119, 104, 105, 108, 101, 32, 108, 111, 111, 112, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 111, 76, 111, 111, 112, 62, 49, 48, 48, 125, 10, 9, 9, 9, 9, 9, 73, 115, 71, 111, 111, 100, 61, 49, 48, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 35, 73, 110, 99, 114, 101, 97, 115, 101, 32, 100, 111, 32, 108, 111, 111, 112, 32, 99, 111, 117, 110, 116, 101, 114, 10, 9, 9, 9, 68, 111, 76, 111, 111, 112, 61, 36, 68, 111, 76, 111, 111, 112, 43, 49, 10, 9, 9, 35, 67, 111, 110, 116, 105, 110, 117, 101, 32, 117, 110, 116, 105, 108, 32, 73, 115, 71, 111, 111, 100, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 116, 32, 116, 111, 32, 49, 48, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 73, 115, 71, 111, 111, 100, 60, 49, 125, 10, 9, 9, 10, 9, 9, 35, 83, 101, 116, 32, 116, 114, 105, 103, 103, 101, 114, 32, 116, 111, 32, 98, 97, 100, 32, 105, 46, 101, 32, 48, 9, 9, 10, 9, 9, 73, 115, 71, 111, 111, 100, 61, 48, 9, 9, 10, 9, 9, 68, 111, 76, 111, 111, 112, 61, 48, 10, 9, 9, 68, 101, 108, 116, 97, 61, 36, 68, 101, 108, 116, 97, 79, 114, 103, 10, 9, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 105, 102, 10, 40, 123, 36, 67, 97, 110, 118, 97, 115, 82, 125, 94, 123, 36, 67, 97, 110, 118, 97, 115, 71, 125, 94, 123, 36, 67, 97, 110, 118, 97, 115, 66, 125, 94, 123, 36, 79, 112, 97, 99, 105, 116, 121, 125, 41, 10, 45, 114, 91, 50, 93, 32, 91, 48, 93, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 50, 93, 10, 45, 98, 108, 101, 110, 100, 91, 49, 44, 50, 93, 32, 97, 108, 112, 104, 97, 10, 9, 10, 45, 105, 102, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 70, 108, 111, 111, 100, 61, 61, 49, 125, 10, 9, 45, 107, 101, 101, 112, 91, 49, 93, 10, 45, 101, 108, 105, 102, 32, 32, 123, 36, 65, 99, 116, 105, 118, 97, 116, 101, 70, 108, 111, 111, 100, 61, 61, 48, 125, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 65, 98, 115, 116, 114, 97, 99, 116, 70, 108, 111, 111, 100, 95, 80, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 65, 98, 115, 116, 114, 97, 99, 116, 70, 108, 111, 111, 100, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 97, 99, 107, 32, 38, 97, 109, 112, 59, 32, 87, 104, 105, 116, 101, 32, 70, 105, 108, 109, 32, 58, 32, 103, 105, 109, 112, 95, 98, 119, 102, 105, 108, 109, 115, 105, 109, 117, 108, 97, 116, 101, 44, 32, 103, 105, 109, 112, 95, 98, 119, 102, 105, 108, 109, 115, 105, 109, 117, 108, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 109, 32, 116, 121, 112, 101, 32, 47, 32, 82, 71, 66, 32, 98, 97, 108, 97, 110, 99, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 77, 97, 110, 117, 97, 108, 34, 44, 34, 65, 103, 102, 97, 32, 50, 48, 48, 88, 34, 44, 34, 65, 103, 102, 97, 112, 97, 110, 32, 50, 53, 34, 44, 34, 65, 103, 102, 97, 112, 97, 110, 32, 49, 48, 48, 34, 44, 34, 65, 103, 102, 97, 112, 97, 110, 32, 52, 48, 48, 34, 44, 34, 73, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 49, 48, 48, 34, 44, 34, 73, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 52, 48, 48, 34, 44, 34, 73, 102, 111, 114, 100, 32, 68, 101, 108, 116, 97, 32, 52, 48, 48, 32, 112, 114, 111, 32, 38, 32, 51, 50, 48, 48, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 70, 80, 52, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 72, 80, 52, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 80, 97, 110, 32, 70, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 83, 70, 88, 34, 44, 34, 73, 108, 102, 111, 114, 100, 32, 88, 80, 50, 32, 83, 117, 112, 101, 114, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 109, 97, 120, 32, 49, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 109, 97, 120, 32, 52, 48, 48, 34, 44, 34, 75, 111, 100, 97, 107, 32, 84, 114, 105, 45, 88, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 82, 71, 66, 32, 115, 108, 105, 100, 101, 114, 115, 32, 119, 111, 114, 107, 32, 111, 110, 108, 121, 32, 119, 105, 116, 104, 32, 109, 97, 110, 117, 97, 108, 32, 115, 101, 108, 101, 99, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 57, 57, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 56, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 101, 101, 110, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 49, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 117, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 117, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 115, 104, 97, 100, 111, 119, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 109, 105, 100, 116, 111, 110, 101, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 40, 104, 105, 103, 104, 108, 105, 103, 104, 116, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 116, 111, 110, 101, 32, 102, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 105, 110, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 99, 111, 110, 116, 114, 97, 115, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 54, 44, 49, 44, 53, 49, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 114, 97, 115, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 119, 102, 105, 108, 109, 115, 105, 109, 117, 108, 97, 116, 101, 32, 58, 10, 67, 104, 111, 105, 99, 101, 61, 36, 49, 10, 80, 49, 61, 36, 50, 10, 80, 50, 61, 36, 51, 10, 80, 51, 61, 36, 52, 10, 80, 52, 61, 36, 53, 10, 80, 53, 61, 36, 54, 10, 80, 54, 61, 36, 55, 10, 80, 55, 61, 36, 56, 10, 80, 56, 61, 36, 57, 10, 80, 57, 61, 36, 49, 48, 10, 80, 49, 48, 61, 36, 49, 49, 10, 80, 49, 49, 61, 36, 49, 50, 10, 80, 49, 50, 61, 36, 49, 51, 10, 80, 49, 51, 61, 36, 49, 52, 10, 80, 49, 52, 61, 36, 49, 53, 10, 80, 49, 53, 61, 36, 49, 54, 10, 80, 49, 54, 61, 36, 49, 55, 10, 80, 49, 55, 61, 36, 49, 56, 10, 80, 49, 56, 61, 36, 49, 57, 10, 80, 49, 57, 61, 36, 50, 48, 10, 80, 50, 48, 61, 36, 50, 49, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 125, 32, 80, 49, 61, 123, 49, 56, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 49, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 52, 49, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 50, 125, 32, 80, 49, 61, 123, 50, 53, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 57, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 51, 125, 32, 80, 49, 61, 123, 50, 49, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 48, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 57, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 52, 125, 32, 80, 49, 61, 123, 50, 48, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 49, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 57, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 53, 125, 32, 80, 49, 61, 123, 50, 49, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 50, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 54, 125, 32, 80, 49, 61, 123, 50, 50, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 50, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 55, 125, 32, 80, 49, 61, 123, 51, 49, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 51, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 56, 125, 32, 80, 49, 61, 123, 50, 56, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 49, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 49, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 57, 125, 32, 80, 49, 61, 123, 50, 51, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 52, 48, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 48, 125, 32, 80, 49, 61, 123, 51, 51, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 49, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 49, 125, 32, 80, 49, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 49, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 51, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 50, 125, 32, 80, 49, 61, 123, 50, 49, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 52, 50, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 51, 125, 32, 80, 49, 61, 123, 50, 52, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 57, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 52, 125, 32, 80, 49, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 54, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 51, 55, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 67, 104, 111, 105, 99, 101, 61, 61, 49, 53, 125, 32, 80, 49, 61, 123, 50, 53, 47, 50, 53, 53, 125, 32, 80, 51, 61, 123, 51, 53, 47, 50, 53, 53, 125, 32, 80, 53, 61, 123, 52, 48, 47, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 108, 91, 45, 49, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 114, 118, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 10, 45, 42, 91, 45, 51, 93, 32, 36, 80, 49, 32, 45, 98, 91, 45, 51, 93, 32, 36, 80, 50, 37, 10, 45, 42, 91, 45, 50, 93, 32, 36, 80, 51, 32, 45, 98, 91, 45, 50, 93, 32, 36, 80, 52, 37, 10, 45, 42, 91, 45, 49, 93, 32, 36, 80, 53, 32, 45, 98, 91, 45, 49, 93, 32, 36, 80, 54, 37, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 123, 36, 80, 49, 43, 36, 80, 51, 43, 36, 80, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 80, 55, 10, 45, 45, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 42, 91, 45, 49, 93, 32, 36, 80, 56, 32, 45, 43, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 43, 91, 45, 49, 93, 32, 36, 80, 57, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 91, 45, 49, 93, 120, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 51, 93, 32, 49, 48, 48, 44, 36, 80, 49, 55, 32, 45, 98, 91, 45, 51, 93, 32, 36, 80, 49, 54, 37, 32, 45, 110, 91, 45, 51, 93, 32, 45, 36, 80, 49, 50, 44, 36, 80, 49, 50, 10, 45, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 49, 48, 48, 44, 36, 80, 49, 55, 32, 45, 98, 91, 45, 50, 93, 32, 36, 80, 49, 54, 37, 32, 45, 110, 91, 45, 50, 93, 32, 45, 36, 80, 49, 51, 44, 36, 80, 49, 51, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 49, 48, 48, 44, 36, 80, 49, 55, 32, 45, 98, 91, 45, 49, 93, 32, 36, 80, 49, 54, 37, 32, 45, 110, 91, 45, 49, 93, 32, 45, 36, 80, 49, 52, 44, 36, 80, 49, 52, 10, 45, 45, 116, 111, 110, 101, 115, 91, 45, 52, 93, 32, 51, 32, 45, 98, 91, 45, 51, 45, 45, 49, 93, 32, 36, 80, 49, 53, 37, 10, 45, 42, 91, 45, 54, 44, 45, 51, 93, 32, 45, 42, 91, 45, 52, 44, 45, 50, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 80, 49, 48, 124, 124, 36, 80, 49, 49, 125, 10, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 105, 91, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 80, 49, 49, 10, 45, 105, 91, 45, 51, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 36, 80, 49, 48, 10, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 80, 49, 56, 44, 36, 80, 49, 57, 44, 36, 80, 50, 48, 44, 50, 37, 44, 49, 44, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 98, 119, 102, 105, 108, 109, 115, 105, 109, 117, 108, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 119, 102, 105, 108, 109, 115, 105, 109, 117, 108, 97, 116, 101, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 66, 108, 111, 99, 107, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 98, 108, 111, 99, 107, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 98, 108, 111, 99, 107, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 82, 101, 110, 100, 101, 114, 115, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 115, 32, 111, 110, 32, 116, 111, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 80, 97, 114, 97, 109, 101, 116, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 108, 97, 116, 105, 118, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 116, 105, 111, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 54, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 86, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 108, 97, 116, 105, 118, 101, 32, 98, 108, 111, 99, 107, 32, 99, 111, 117, 110, 116, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 105, 112, 32, 116, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 105, 110, 116, 40, 54, 52, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 115, 101, 32, 102, 108, 105, 112, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 105, 99, 107, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 112, 104, 111, 116, 111, 115, 47, 110, 97, 103, 103, 111, 98, 111, 116, 47, 56, 48, 54, 51, 48, 53, 56, 55, 48, 53, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 32, 65, 117, 116, 104, 111, 114, 58, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 48, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 98, 108, 111, 99, 107, 105, 115, 109, 58, 10, 88, 83, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 49, 47, 49, 48, 48, 42, 64, 123, 45, 49, 44, 119, 125, 41, 125, 10, 45, 105, 102, 32, 123, 36, 88, 83, 105, 122, 101, 61, 61, 48, 125, 32, 88, 83, 105, 122, 101, 61, 49, 32, 45, 101, 110, 100, 105, 102, 10, 82, 97, 116, 105, 111, 61, 36, 50, 10, 86, 97, 114, 105, 97, 110, 99, 101, 61, 123, 105, 110, 116, 40, 36, 51, 42, 36, 88, 83, 105, 122, 101, 41, 125, 10, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 61, 45, 49, 44, 49, 10, 82, 101, 112, 101, 97, 116, 115, 61, 123, 105, 110, 116, 40, 36, 52, 47, 49, 48, 48, 42, 109, 97, 120, 40, 64, 123, 45, 49, 44, 119, 125, 44, 64, 123, 45, 49, 44, 104, 125, 41, 41, 125, 10, 79, 112, 97, 99, 105, 116, 121, 61, 36, 53, 10, 70, 108, 105, 112, 84, 111, 108, 61, 36, 54, 10, 82, 101, 118, 101, 114, 115, 101, 70, 108, 105, 112, 61, 36, 55, 10, 76, 65, 66, 61, 49, 45, 36, 56, 10, 89, 83, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 82, 97, 116, 105, 111, 42, 36, 88, 83, 105, 122, 101, 41, 125, 10, 77, 97, 120, 88, 83, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 88, 83, 105, 122, 101, 43, 36, 86, 97, 114, 105, 97, 110, 99, 101, 41, 125, 10, 77, 97, 120, 89, 83, 105, 122, 101, 61, 123, 105, 110, 116, 40, 36, 77, 97, 120, 88, 83, 105, 122, 101, 42, 36, 82, 97, 116, 105, 111, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 76, 65, 66, 125, 10, 9, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 10, 9, 45, 115, 112, 108, 105, 116, 91, 48, 93, 32, 99, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 9, 35, 84, 97, 107, 101, 32, 99, 111, 112, 121, 32, 111, 102, 32, 116, 104, 101, 32, 108, 97, 115, 116, 32, 105, 109, 97, 103, 101, 32, 105, 110, 32, 116, 104, 101, 32, 115, 116, 97, 99, 107, 32, 102, 111, 114, 32, 103, 114, 101, 121, 32, 118, 97, 108, 117, 101, 32, 99, 104, 101, 99, 107, 105, 110, 103, 10, 9, 91, 45, 49, 93, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 82, 101, 112, 101, 97, 116, 115, 10, 9, 9, 35, 82, 97, 110, 100, 111, 109, 32, 112, 111, 105, 110, 116, 32, 102, 114, 111, 109, 32, 99, 97, 110, 118, 97, 115, 32, 116, 111, 32, 100, 114, 97, 119, 32, 116, 104, 101, 32, 98, 108, 111, 99, 107, 32, 111, 110, 10, 9, 9, 88, 61, 123, 105, 110, 116, 40, 63, 40, 45, 49, 44, 119, 41, 41, 125, 10, 9, 9, 89, 61, 123, 105, 110, 116, 40, 63, 40, 45, 49, 44, 104, 41, 41, 125, 9, 9, 10, 9, 9, 35, 73, 102, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 105, 115, 32, 98, 101, 108, 111, 119, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 116, 104, 101, 110, 32, 105, 110, 118, 101, 114, 116, 32, 119, 105, 100, 116, 104, 32, 97, 110, 100, 32, 108, 101, 110, 103, 116, 104, 10, 9, 9, 35, 110, 111, 116, 101, 32, 116, 104, 97, 116, 32, 113, 117, 105, 99, 107, 32, 117, 115, 101, 115, 32, 111, 110, 108, 121, 32, 82, 101, 100, 32, 99, 104, 97, 110, 110, 101, 108, 32, 116, 111, 32, 102, 108, 105, 112, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 118, 101, 114, 115, 101, 70, 108, 105, 112, 61, 61, 48, 125, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 62, 36, 70, 108, 105, 112, 84, 111, 108, 125, 9, 9, 10, 9, 9, 9, 9, 35, 67, 97, 108, 99, 117, 108, 99, 97, 116, 101, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 46, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 101, 32, 108, 105, 110, 101, 97, 114, 108, 121, 32, 119, 105, 116, 104, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 10, 9, 9, 9, 9, 35, 76, 105, 110, 101, 97, 114, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 105, 115, 9, 10, 9, 9, 9, 9, 35, 121, 61, 121, 97, 43, 40, 121, 98, 45, 121, 97, 41, 40, 120, 45, 120, 97, 41, 47, 40, 120, 98, 45, 120, 97, 41, 10, 9, 9, 9, 9, 35, 120, 32, 105, 115, 32, 114, 97, 110, 100, 111, 109, 32, 118, 97, 108, 117, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 45, 49, 32, 97, 110, 100, 32, 49, 10, 9, 9, 9, 9, 35, 121, 97, 32, 105, 115, 32, 109, 105, 110, 105, 109, 117, 109, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 10, 9, 9, 9, 9, 35, 121, 98, 32, 105, 115, 32, 109, 97, 120, 105, 109, 117, 109, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 10, 9, 9, 9, 9, 35, 121, 32, 105, 115, 32, 98, 108, 111, 99, 107, 32, 115, 105, 122, 101, 10, 9, 9, 9, 9, 35, 97, 98, 115, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, 111, 32, 105, 110, 118, 101, 114, 116, 32, 110, 101, 103, 97, 116, 105, 118, 101, 32, 118, 97, 108, 117, 101, 115, 32, 116, 111, 32, 112, 111, 115, 105, 116, 105, 118, 101, 10, 9, 9, 9, 9, 66, 87, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 88, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 88, 83, 105, 122, 101, 45, 36, 88, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 9, 66, 72, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 89, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 89, 83, 105, 122, 101, 45, 36, 89, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 60, 61, 36, 70, 108, 105, 112, 84, 111, 108, 125, 9, 9, 10, 9, 9, 9, 9, 66, 72, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 88, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 88, 83, 105, 122, 101, 45, 36, 88, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 9, 66, 87, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 89, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 89, 83, 105, 122, 101, 45, 36, 89, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 118, 101, 114, 115, 101, 70, 108, 105, 112, 61, 61, 49, 125, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 60, 36, 70, 108, 105, 112, 84, 111, 108, 125, 9, 9, 10, 9, 9, 9, 9, 66, 87, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 88, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 88, 83, 105, 122, 101, 45, 36, 88, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 9, 66, 72, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 89, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 89, 83, 105, 122, 101, 45, 36, 89, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 62, 61, 36, 70, 108, 105, 112, 84, 111, 108, 125, 9, 9, 10, 9, 9, 9, 9, 66, 72, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 88, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 88, 83, 105, 122, 101, 45, 36, 88, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 9, 66, 87, 61, 123, 105, 110, 116, 40, 97, 98, 115, 40, 36, 89, 83, 105, 122, 101, 43, 40, 36, 77, 97, 120, 89, 83, 105, 122, 101, 45, 36, 89, 83, 105, 122, 101, 41, 42, 40, 63, 40, 36, 82, 97, 110, 100, 111, 109, 110, 101, 115, 115, 41, 41, 41, 41, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 35, 67, 97, 108, 99, 117, 97, 108, 116, 101, 32, 99, 111, 114, 110, 101, 114, 115, 9, 9, 10, 9, 9, 120, 48, 61, 123, 105, 110, 116, 40, 36, 88, 45, 36, 66, 87, 47, 50, 41, 125, 10, 9, 9, 121, 48, 61, 123, 105, 110, 116, 40, 36, 89, 45, 36, 66, 72, 47, 50, 41, 125, 10, 9, 9, 120, 49, 61, 123, 105, 110, 116, 40, 36, 120, 48, 43, 36, 66, 87, 41, 125, 10, 9, 9, 121, 49, 61, 123, 105, 110, 116, 40, 36, 121, 48, 43, 36, 66, 72, 41, 125, 10, 9, 9, 35, 68, 114, 97, 119, 32, 97, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 103, 114, 97, 121, 32, 111, 102, 32, 116, 104, 101, 32, 98, 108, 111, 99, 107, 32, 99, 101, 110, 116, 101, 114, 32, 118, 97, 108, 117, 101, 32, 32, 111, 102, 32, 116, 104, 101, 32, 76, 44, 32, 65, 32, 111, 114, 32, 66, 32, 99, 104, 97, 110, 110, 101, 108, 10, 9, 9, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 91, 45, 50, 93, 32, 36, 120, 48, 44, 36, 121, 48, 44, 36, 120, 49, 44, 36, 121, 49, 44, 36, 79, 112, 97, 99, 105, 116, 121, 44, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 48, 41, 125, 44, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 49, 41, 125, 44, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 50, 41, 125, 44, 64, 123, 45, 49, 44, 40, 36, 88, 44, 36, 89, 44, 48, 44, 51, 41, 10, 9, 45, 100, 111, 110, 101, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 93, 10, 9, 45, 109, 118, 91, 45, 49, 93, 32, 48, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 76, 65, 66, 125, 10, 9, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 9, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 98, 108, 111, 99, 107, 105, 115, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 98, 108, 111, 99, 107, 105, 115, 109, 32, 36, 49, 44, 36, 50, 44, 36, 51, 44, 123, 36, 52, 42, 49, 48, 125, 44, 36, 53, 44, 36, 54, 44, 36, 55, 44, 36, 56, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 109, 112, 111, 115, 105, 116, 111, 110, 32, 97, 110, 97, 108, 121, 115, 105, 115, 32, 58, 32, 103, 105, 109, 112, 95, 67, 111, 109, 112, 111, 115, 105, 116, 111, 110, 65, 110, 97, 108, 121, 115, 105, 115, 44, 32, 103, 105, 109, 112, 95, 67, 111, 109, 112, 111, 115, 105, 116, 111, 110, 65, 110, 97, 108, 121, 115, 105, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 32, 116, 111, 111, 108, 32, 116, 111, 32, 97, 98, 115, 116, 114, 97, 99, 116, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 32, 115, 117, 98, 106, 101, 99, 116, 105, 118, 101, 32, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 32, 97, 110, 97, 108, 121, 115, 105, 115, 46, 32, 66, 111, 116, 104, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 97, 110, 100, 32, 115, 104, 97, 112, 101, 32, 111, 102, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 97, 114, 101, 32, 97, 98, 115, 116, 114, 97, 99, 116, 101, 100, 46, 32, 70, 111, 114, 32, 97, 99, 116, 117, 97, 108, 32, 97, 110, 97, 108, 121, 115, 105, 115, 32, 116, 104, 101, 32, 97, 101, 115, 116, 104, 101, 116, 105, 99, 32, 115, 101, 110, 115, 101, 32, 111, 102, 32, 116, 104, 101, 32, 97, 114, 116, 105, 115, 116, 32, 105, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 67, 111, 109, 112, 111, 115, 105, 116, 111, 110, 65, 110, 97, 108, 121, 115, 105, 115, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 73, 87, 105, 100, 116, 104, 61, 64, 123, 48, 44, 119, 125, 10, 73, 72, 101, 105, 103, 104, 116, 61, 64, 123, 48, 44, 119, 125, 10, 45, 105, 102, 32, 123, 36, 73, 87, 105, 100, 116, 104, 62, 61, 36, 73, 72, 101, 105, 103, 104, 116, 125, 10, 9, 83, 99, 97, 108, 101, 66, 121, 87, 105, 100, 116, 104, 61, 49, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 99, 97, 108, 101, 66, 121, 87, 105, 100, 116, 104, 61, 61, 49, 125, 10, 9, 45, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 91, 48, 93, 32, 50, 48, 48, 44, 53, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 50, 10, 9, 35, 82, 101, 115, 105, 122, 101, 32, 116, 111, 32, 49, 48, 50, 52, 32, 112, 120, 10, 9, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 91, 45, 49, 93, 32, 49, 48, 50, 52, 44, 53, 10, 9, 35, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 10, 9, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 53, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 10, 9, 45, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 91, 48, 93, 32, 50, 48, 48, 44, 53, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 50, 10, 9, 35, 82, 101, 115, 105, 122, 101, 32, 116, 111, 32, 49, 48, 50, 52, 32, 112, 120, 10, 9, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 91, 45, 49, 93, 32, 49, 48, 50, 52, 44, 53, 10, 9, 35, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 10, 9, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 48, 46, 53, 44, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 48, 93, 10, 45, 45, 114, 103, 98, 50, 108, 97, 98, 91, 48, 93, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 48, 37, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 49, 44, 49, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 68, 111, 100, 103, 101, 32, 115, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 115, 107, 101, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 115, 107, 101, 116, 99, 104, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 105, 109, 112, 108, 101, 32, 66, 87, 32, 115, 107, 101, 116, 99, 104, 34, 41, 44, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 77, 101, 116, 104, 111, 100, 32, 105, 115, 32, 100, 101, 115, 99, 114, 105, 98, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 117, 115, 101, 114, 115, 46, 99, 111, 109, 47, 116, 117, 116, 111, 114, 105, 97, 108, 115, 47, 109, 97, 107, 105, 110, 103, 45, 97, 45, 112, 101, 110, 99, 105, 108, 45, 100, 114, 97, 119, 105, 110, 103, 45, 102, 114, 111, 109, 45, 97, 45, 112, 104, 111, 116, 111, 46, 104, 116, 109, 108, 34, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 105, 110, 32, 97, 100, 100, 105, 116, 105, 111, 110, 32, 97, 110, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 99, 111, 108, 111, 114, 32, 116, 104, 101, 32, 115, 107, 101, 116, 99, 104, 32, 105, 115, 32, 105, 110, 99, 108, 117, 100, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 111, 119, 101, 114, 32, 115, 101, 116, 116, 105, 110, 103, 32, 102, 111, 114, 32, 115, 107, 101, 116, 99, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 119, 101, 114, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 114, 101, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 115, 101, 116, 116, 105, 110, 115, 32, 111, 102, 32, 98, 105, 108, 97, 116, 101, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 101, 100, 63, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 115, 107, 101, 116, 99, 104, 58, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 80, 111, 119, 101, 114, 61, 36, 49, 10, 83, 112, 97, 116, 105, 97, 108, 86, 97, 114, 105, 97, 110, 99, 101, 61, 36, 50, 10, 86, 97, 108, 117, 101, 86, 97, 114, 105, 97, 110, 99, 101, 61, 36, 51, 10, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 52, 10, 67, 111, 108, 111, 114, 101, 100, 61, 36, 53, 10, 45, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 104, 115, 118, 91, 48, 93, 32, 49, 44, 48, 44, 48, 44, 48, 44, 45, 49, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 36, 83, 112, 97, 116, 105, 97, 108, 86, 97, 114, 105, 97, 110, 99, 101, 44, 36, 86, 97, 108, 117, 101, 86, 97, 114, 105, 97, 110, 99, 101, 44, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 48, 44, 48, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 97, 108, 112, 104, 97, 44, 48, 46, 53, 44, 48, 10, 91, 45, 49, 93, 10, 45, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 100, 111, 100, 103, 101, 44, 49, 44, 48, 10, 45, 107, 101, 101, 112, 91, 48, 44, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 80, 111, 119, 101, 114, 10, 9, 91, 45, 49, 93, 10, 9, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 36, 67, 111, 108, 111, 114, 101, 100, 61, 61, 49, 125, 10, 9, 45, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 9, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 93, 10, 9, 45, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 91, 45, 49, 44, 45, 50, 93, 32, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 115, 107, 101, 116, 99, 104, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 100, 111, 100, 103, 101, 115, 107, 101, 116, 99, 104, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 71, 77, 105, 99, 32, 83, 116, 114, 117, 99, 116, 117, 114, 101, 32, 84, 101, 110, 115, 111, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 83, 116, 114, 117, 99, 116, 117, 114, 101, 84, 101, 110, 115, 111, 114, 115, 44, 32, 103, 105, 109, 112, 95, 83, 116, 114, 117, 99, 116, 117, 114, 101, 84, 101, 110, 115, 111, 114, 115, 80, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 116, 114, 117, 99, 116, 117, 114, 101, 32, 116, 101, 110, 115, 111, 114, 115, 32, 99, 97, 108, 99, 117, 108, 97, 116, 105, 111, 110, 32, 102, 111, 114, 32, 71, 105, 109, 112, 32, 112, 108, 117, 103, 105, 110, 46, 32, 84, 104, 105, 115, 32, 105, 115, 32, 106, 117, 115, 116, 32, 97, 110, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 32, 116, 111, 32, 98, 117, 105, 108, 116, 32, 105, 110, 32, 71, 77, 105, 99, 32, 83, 116, 114, 117, 99, 116, 117, 114, 101, 32, 116, 101, 110, 115, 111, 114, 115, 32, 99, 111, 109, 109, 97, 110, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 119, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 50, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 115, 104, 116, 109, 108, 34, 41, 10, 103, 105, 109, 112, 95, 83, 116, 114, 117, 99, 116, 117, 114, 101, 84, 101, 110, 115, 111, 114, 115, 58, 10, 45, 115, 116, 114, 117, 99, 116, 117, 114, 101, 116, 101, 110, 115, 111, 114, 115, 32, 45, 97, 98, 115, 32, 45, 112, 111, 119, 32, 36, 49, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 32, 48, 44, 50, 53, 53, 10, 103, 105, 109, 112, 95, 83, 116, 114, 117, 99, 116, 117, 114, 101, 84, 101, 110, 115, 111, 114, 115, 80, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 83, 116, 114, 117, 99, 116, 117, 114, 101, 84, 101, 110, 115, 111, 114, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 107, 101, 32, 79, 108, 100, 32, 83, 113, 117, 105, 103, 103, 108, 121, 32, 58, 32, 103, 105, 109, 112, 95, 79, 108, 100, 83, 113, 117, 105, 103, 103, 108, 121, 44, 32, 103, 105, 109, 112, 95, 79, 108, 100, 83, 113, 117, 105, 103, 103, 108, 121, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 68, 101, 118, 101, 108, 111, 112, 109, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 46, 32, 84, 104, 105, 115, 32, 118, 101, 114, 115, 105, 111, 110, 32, 119, 105, 108, 108, 32, 98, 101, 32, 114, 101, 109, 111, 118, 101, 100, 32, 105, 110, 32, 102, 117, 116, 117, 114, 101, 32, 102, 114, 111, 109, 32, 115, 111, 117, 114, 99, 101, 115, 32, 115, 111, 32, 105, 102, 32, 121, 111, 117, 32, 112, 114, 101, 102, 101, 114, 32, 116, 104, 105, 115, 32, 116, 104, 101, 110, 32, 99, 111, 112, 121, 32, 97, 110, 100, 32, 115, 97, 118, 101, 32, 116, 104, 101, 32, 115, 111, 117, 114, 99, 101, 32, 116, 111, 32, 121, 111, 117, 114, 32, 108, 111, 99, 97, 108, 32, 46, 103, 109, 105, 99, 32, 102, 105, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 110, 111, 105, 115, 101, 32, 97, 109, 111, 117, 110, 116, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 50, 48, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 78, 111, 114, 109, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 78, 111, 114, 109, 76, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 97, 115, 101, 67, 104, 114, 111, 109, 97, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 110, 101, 32, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 112, 101, 114, 32, 71, 114, 97, 121, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 112, 101, 114, 32, 119, 104, 105, 116, 101, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 50, 52, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 113, 117, 105, 103, 103, 108, 101, 32, 71, 97, 109, 109, 97, 32, 61, 32, 105, 110, 116, 40, 52, 53, 44, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 113, 117, 105, 103, 103, 108, 101, 32, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 103, 105, 109, 112, 95, 79, 108, 100, 83, 113, 117, 105, 103, 103, 108, 121, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 91, 48, 93, 32, 36, 49, 44, 36, 49, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 49, 93, 32, 36, 50, 44, 36, 51, 44, 48, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 49, 93, 32, 36, 52, 44, 36, 53, 44, 48, 44, 49, 48, 48, 44, 48, 44, 48, 10, 45, 45, 98, 108, 101, 110, 100, 91, 50, 44, 49, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 121, 99, 98, 99, 114, 91, 51, 93, 32, 49, 44, 48, 44, 48, 44, 36, 54, 44, 48, 44, 48, 44, 36, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 103, 105, 109, 112, 95, 109, 97, 112, 95, 116, 111, 110, 101, 115, 91, 48, 93, 32, 36, 55, 44, 36, 56, 44, 48, 46, 49, 44, 51, 48, 44, 48, 44, 48, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 51, 93, 32, 100, 97, 114, 107, 101, 110, 10, 45, 114, 101, 109, 111, 118, 101, 91, 49, 44, 50, 93, 10, 45, 45, 103, 105, 109, 112, 95, 112, 108, 97, 115, 109, 97, 32, 48, 46, 53, 44, 49, 48, 44, 56, 44, 48, 10, 45, 103, 105, 109, 112, 95, 98, 108, 97, 99, 107, 97, 110, 100, 119, 104, 105, 116, 101, 91, 49, 93, 32, 48, 46, 50, 57, 57, 44, 48, 44, 48, 46, 53, 56, 55, 44, 48, 44, 48, 46, 49, 49, 52, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 44, 49, 54, 44, 52, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 36, 57, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 36, 49, 48, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 48, 93, 32, 48, 44, 36, 49, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 45, 109, 117, 108, 91, 48, 93, 32, 123, 48, 46, 53, 42, 40, 49, 43, 36, 49, 50, 41, 125, 10, 45, 109, 117, 108, 91, 49, 93, 32, 123, 48, 46, 53, 42, 40, 49, 45, 36, 49, 50, 41, 125, 10, 45, 45, 97, 100, 100, 91, 48, 93, 32, 91, 49, 93, 10, 45, 45, 98, 108, 101, 110, 100, 91, 48, 44, 50, 93, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 10, 45, 114, 101, 109, 111, 118, 101, 91, 48, 44, 49, 44, 50, 93, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 112, 112, 101, 100, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 77, 97, 112, 112, 101, 100, 83, 109, 111, 111, 116, 104, 44, 32, 103, 105, 109, 112, 95, 77, 97, 112, 112, 101, 100, 83, 109, 111, 111, 116, 104, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 84, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 105, 102, 32, 97, 117, 116, 111, 109, 97, 112, 32, 105, 115, 32, 110, 111, 116, 32, 117, 115, 101, 100, 46, 32, 60, 98, 62, 83, 101, 116, 32, 105, 110, 112, 117, 116, 32, 116, 111, 32, 97, 99, 116, 105, 118, 101, 32, 97, 110, 100, 32, 98, 101, 108, 111, 119, 60, 47, 98, 62, 46, 32, 70, 105, 108, 116, 101, 114, 32, 83, 109, 111, 111, 116, 104, 115, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 32, 109, 97, 112, 46, 32, 77, 97, 112, 32, 105, 115, 32, 99, 114, 101, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 82, 32, 97, 110, 100, 32, 71, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 115, 111, 32, 116, 104, 97, 116, 32, 82, 49, 50, 56, 44, 71, 49, 50, 56, 32, 98, 101, 99, 111, 109, 101, 115, 32, 91, 48, 32, 48, 93, 46, 32, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 32, 119, 105, 116, 104, 32, 115, 111, 108, 105, 100, 32, 49, 50, 56, 44, 49, 50, 56, 44, 48, 32, 99, 111, 108, 111, 114, 32, 108, 97, 121, 101, 114, 32, 97, 110, 100, 32, 97, 100, 100, 32, 104, 117, 101, 115, 32, 111, 102, 32, 114, 101, 100, 32, 97, 110, 100, 32, 103, 114, 101, 101, 110, 46, 32, 65, 110, 103, 108, 101, 32, 115, 104, 105, 102, 116, 32, 114, 111, 116, 97, 116, 101, 115, 32, 116, 104, 101, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 32, 97, 110, 100, 32, 90, 101, 114, 111, 32, 112, 111, 105, 110, 116, 32, 111, 102, 102, 115, 101, 116, 32, 109, 111, 118, 101, 115, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 48, 32, 48, 32, 112, 111, 105, 110, 116, 46, 32, 84, 104, 105, 115, 32, 105, 115, 32, 115, 111, 109, 101, 119, 104, 97, 116, 32, 97, 32, 100, 101, 118, 101, 108, 111, 112, 109, 101, 110, 116, 32, 118, 101, 114, 115, 105, 111, 110, 44, 32, 115, 97, 109, 112, 108, 101, 32, 97, 114, 116, 32, 105, 115, 32, 115, 116, 105, 108, 108, 32, 109, 105, 115, 115, 105, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 112, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 109, 97, 112, 34, 44, 34, 76, 97, 121, 101, 114, 32, 77, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 101, 114, 111, 32, 112, 111, 105, 110, 116, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 49, 48, 44, 49, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 32, 109, 117, 108, 116, 105, 112, 108, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 112, 116, 105, 111, 110, 97, 108, 32, 118, 105, 101, 119, 105, 110, 103, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 81, 117, 105, 118, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 50, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 77, 97, 112, 112, 101, 100, 83, 109, 111, 111, 116, 104, 32, 58, 10, 77, 97, 112, 84, 121, 112, 101, 61, 36, 49, 10, 102, 105, 61, 123, 36, 50, 42, 51, 46, 49, 52, 49, 53, 47, 49, 56, 48, 125, 10, 90, 101, 114, 111, 79, 102, 102, 115, 101, 116, 61, 36, 51, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 52, 10, 76, 77, 117, 108, 116, 61, 36, 53, 10, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 36, 54, 10, 45, 105, 102, 32, 123, 36, 77, 97, 112, 84, 121, 112, 101, 61, 61, 48, 125, 10, 9, 45, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 48, 46, 53, 44, 48, 44, 49, 48, 48, 44, 48, 44, 52, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 99, 111, 115, 102, 105, 61, 123, 99, 111, 115, 40, 36, 102, 105, 41, 125, 10, 115, 105, 110, 102, 105, 61, 123, 115, 105, 110, 40, 36, 102, 105, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 90, 101, 114, 111, 79, 102, 102, 115, 101, 116, 125, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 109, 117, 108, 91, 51, 93, 32, 48, 10, 45, 45, 109, 117, 108, 91, 49, 93, 32, 36, 99, 111, 115, 102, 105, 10, 45, 45, 109, 117, 108, 91, 50, 93, 32, 36, 115, 105, 110, 102, 105, 10, 45, 115, 117, 98, 91, 52, 93, 32, 91, 53, 93, 10, 45, 114, 109, 91, 53, 93, 10, 45, 45, 109, 117, 108, 91, 49, 93, 32, 36, 115, 105, 110, 102, 105, 10, 45, 45, 109, 117, 108, 91, 50, 93, 32, 36, 99, 111, 115, 102, 105, 10, 45, 97, 100, 100, 91, 53, 93, 32, 91, 54, 93, 10, 45, 114, 109, 91, 54, 93, 10, 45, 114, 109, 91, 49, 44, 50, 93, 10, 45, 114, 109, 91, 49, 93, 32, 9, 35, 73, 109, 97, 103, 101, 32, 49, 122, 32, 100, 101, 108, 101, 116, 101, 100, 44, 32, 50, 120, 39, 32, 98, 101, 99, 111, 109, 101, 115, 32, 49, 32, 97, 110, 100, 32, 51, 121, 39, 32, 98, 101, 99, 111, 109, 101, 115, 32, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 44, 51, 93, 32, 99, 10, 45, 47, 91, 45, 49, 93, 32, 123, 49, 50, 56, 47, 36, 76, 77, 117, 108, 116, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 123, 36, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 61, 48, 125, 10, 9, 45, 118, 101, 99, 116, 111, 114, 50, 116, 101, 110, 115, 111, 114, 91, 45, 49, 93, 10, 9, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 61, 49, 125, 10, 9, 45, 113, 117, 105, 118, 101, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 48, 44, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 47, 50, 48, 125, 44, 49, 44, 48, 46, 56, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 78, 105, 103, 104, 116, 32, 72, 68, 82, 32, 105, 109, 97, 103, 101, 32, 98, 108, 97, 99, 107, 32, 110, 111, 105, 115, 101, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 58, 32, 103, 105, 109, 112, 95, 102, 105, 120, 95, 72, 68, 82, 95, 98, 108, 97, 99, 107, 44, 32, 103, 105, 109, 112, 95, 102, 105, 120, 95, 72, 68, 82, 95, 98, 108, 97, 99, 107, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 112, 100, 97, 116, 101, 100, 32, 102, 111, 114, 32, 49, 46, 53, 46, 52, 46, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 70, 105, 108, 116, 101, 114, 32, 116, 111, 32, 114, 101, 109, 111, 118, 101, 32, 98, 108, 117, 101, 44, 32, 109, 97, 103, 101, 110, 116, 97, 32, 97, 110, 100, 32, 114, 101, 100, 32, 110, 111, 105, 115, 101, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 98, 108, 97, 99, 107, 32, 97, 114, 101, 97, 115, 32, 111, 102, 32, 72, 68, 82, 32, 105, 109, 97, 103, 101, 115, 46, 32, 70, 105, 108, 116, 101, 114, 32, 105, 115, 32, 100, 101, 115, 105, 103, 110, 101, 100, 32, 115, 112, 101, 99, 105, 102, 105, 99, 97, 108, 108, 121, 32, 102, 111, 114, 32, 72, 68, 82, 32, 110, 105, 103, 104, 116, 32, 115, 104, 111, 116, 115, 32, 98, 117, 116, 32, 109, 97, 121, 32, 119, 111, 114, 107, 32, 111, 110, 32, 111, 116, 104, 101, 114, 32, 105, 109, 97, 103, 101, 115, 32, 97, 115, 32, 119, 101, 108, 108, 46, 32, 66, 105, 108, 97, 116, 101, 114, 97, 108, 32, 102, 105, 108, 116, 101, 114, 105, 110, 103, 32, 97, 110, 100, 32, 72, 97, 97, 114, 32, 87, 97, 118, 101, 108, 101, 116, 115, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 102, 105, 108, 116, 101, 114, 32, 116, 104, 101, 32, 110, 111, 105, 115, 101, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 32, 97, 110, 100, 32, 109, 97, 115, 107, 32, 105, 115, 32, 117, 115, 101, 100, 32, 116, 111, 32, 97, 112, 112, 108, 121, 32, 116, 104, 101, 32, 110, 111, 105, 115, 101, 32, 114, 101, 109, 111, 118, 97, 108, 32, 111, 110, 108, 121, 32, 116, 111, 32, 100, 97, 114, 107, 32, 97, 114, 101, 97, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 77, 97, 115, 107, 32, 111, 112, 97, 99, 105, 116, 121, 32, 115, 101, 116, 116, 105, 110, 103, 115, 44, 32, 66, 108, 97, 99, 107, 32, 118, 97, 108, 117, 101, 115, 32, 109, 117, 115, 116, 32, 98, 101, 32, 108, 111, 119, 101, 114, 32, 116, 104, 97, 110, 32, 72, 105, 103, 104, 108, 105, 103, 104, 116, 32, 118, 97, 108, 117, 101, 115, 46, 32, 84, 105, 99, 107, 32, 83, 104, 111, 119, 32, 109, 97, 115, 107, 32, 116, 111, 32, 118, 105, 101, 119, 32, 109, 97, 115, 107, 32, 97, 110, 100, 32, 116, 111, 32, 115, 101, 101, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 102, 32, 116, 104, 101, 32, 115, 108, 105, 100, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 66, 108, 97, 99, 107, 32, 99, 117, 116, 111, 102, 102, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 49, 41, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 72, 105, 103, 104, 108, 105, 103, 104, 116, 32, 114, 97, 105, 115, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 40, 50, 41, 32, 61, 32, 105, 110, 116, 40, 50, 48, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 109, 97, 115, 107, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 32, 65, 117, 116, 104, 111, 114, 58, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 105, 120, 95, 72, 68, 82, 95, 98, 108, 97, 99, 107, 58, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 88, 49, 61, 36, 49, 10, 89, 49, 61, 36, 50, 10, 88, 50, 61, 36, 51, 10, 89, 50, 61, 36, 52, 10, 83, 104, 111, 119, 77, 97, 115, 107, 61, 36, 53, 10, 45, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 52, 44, 56, 44, 54, 44, 52, 44, 48, 10, 45, 103, 105, 109, 112, 95, 104, 97, 97, 114, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 48, 46, 54, 44, 53, 44, 50, 44, 51, 44, 48, 10, 45, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 36, 88, 49, 44, 36, 89, 49, 44, 36, 88, 50, 44, 36, 89, 50, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 48, 44, 48, 44, 50, 49, 44, 48, 10, 45, 105, 102, 32, 123, 36, 83, 104, 111, 119, 77, 97, 115, 107, 61, 61, 48, 125, 10, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 45, 97, 112, 112, 101, 110, 100, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 97, 108, 112, 104, 97, 10, 9, 45, 107, 101, 101, 112, 91, 48, 93, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 102, 105, 120, 95, 72, 68, 82, 95, 98, 108, 97, 99, 107, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 102, 105, 120, 95, 72, 68, 82, 95, 98, 108, 97, 99, 107, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 78, 111, 105, 115, 101, 32, 80, 97, 105, 110, 116, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 112, 97, 105, 110, 116, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 32, 112, 114, 101, 112, 114, 111, 99, 101, 115, 115, 32, 115, 117, 103, 103, 101, 115, 116, 105, 111, 110, 32, 102, 111, 114, 32, 116, 104, 101, 32, 112, 97, 105, 110, 116, 105, 110, 103, 32, 102, 105, 108, 116, 101, 114, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 114, 101, 32, 112, 114, 111, 99, 101, 115, 115, 32, 102, 111, 114, 32, 112, 97, 105, 110, 116, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 110, 111, 105, 115, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 105, 116, 105, 118, 101, 32, 110, 111, 105, 115, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 97, 105, 110, 116, 105, 110, 103, 32, 97, 98, 115, 116, 114, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 104, 97, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 32, 65, 117, 116, 104, 111, 114, 58, 32, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 55, 47, 49, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 112, 97, 105, 110, 116, 105, 110, 103, 32, 58, 10, 68, 101, 103, 114, 76, 97, 114, 103, 101, 61, 36, 49, 10, 68, 101, 103, 114, 83, 109, 97, 108, 108, 61, 36, 50, 10, 67, 104, 97, 110, 110, 101, 108, 61, 36, 51, 10, 65, 98, 115, 116, 114, 61, 36, 52, 10, 68, 101, 116, 97, 105, 108, 115, 61, 36, 53, 10, 67, 111, 108, 111, 114, 61, 36, 54, 10, 83, 109, 111, 111, 116, 104, 61, 36, 55, 10, 83, 104, 97, 114, 112, 61, 36, 56, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 67, 104, 97, 110, 110, 101, 108, 125, 32, 67, 104, 97, 110, 110, 101, 108, 61, 51, 32, 45, 101, 108, 105, 102, 32, 67, 104, 97, 110, 110, 101, 108, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 80, 114, 101, 80, 114, 111, 99, 101, 115, 115, 32, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 69, 100, 103, 101, 84, 104, 114, 101, 115, 104, 44, 36, 87, 97, 116, 101, 114, 83, 109, 111, 111, 116, 104, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 68, 101, 103, 114, 76, 97, 114, 103, 101, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 68, 101, 103, 114, 76, 97, 114, 103, 101, 44, 36, 68, 101, 103, 114, 76, 97, 114, 103, 101, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 68, 101, 103, 114, 83, 109, 97, 108, 108, 33, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 32, 36, 68, 101, 103, 114, 83, 109, 97, 108, 108, 44, 50, 44, 36, 67, 104, 97, 110, 110, 101, 108, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 65, 98, 115, 116, 114, 44, 36, 68, 101, 116, 97, 105, 108, 115, 44, 36, 67, 111, 108, 111, 114, 44, 36, 83, 109, 111, 111, 116, 104, 44, 36, 83, 104, 97, 114, 112, 44, 48, 10, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 112, 97, 105, 110, 116, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 83, 107, 101, 116, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 83, 109, 111, 111, 116, 104, 83, 107, 101, 116, 99, 104, 44, 32, 103, 105, 109, 112, 95, 83, 109, 111, 111, 116, 104, 83, 107, 101, 116, 99, 104, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 111, 110, 118, 101, 114, 116, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 98, 108, 97, 99, 107, 32, 97, 110, 100, 32, 119, 104, 105, 116, 101, 32, 115, 107, 101, 116, 99, 104, 46, 32, 66, 121, 32, 100, 101, 102, 97, 117, 108, 116, 32, 103, 114, 97, 100, 105, 101, 110, 116, 32, 101, 100, 103, 101, 115, 32, 97, 114, 101, 32, 117, 115, 101, 100, 32, 98, 117, 116, 32, 105, 102, 32, 102, 105, 108, 116, 101, 114, 32, 105, 110, 112, 117, 116, 32, 115, 101, 116, 32, 116, 111, 32, 65, 99, 116, 105, 118, 101, 32, 97, 110, 100, 32, 66, 101, 108, 111, 119, 32, 97, 32, 112, 114, 101, 109, 97, 100, 101, 32, 101, 100, 103, 101, 32, 108, 97, 121, 101, 114, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 108, 97, 121, 101, 114, 32, 98, 101, 108, 111, 119, 46, 32, 83, 107, 101, 116, 99, 104, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 115, 108, 105, 100, 101, 114, 32, 119, 105, 108, 108, 32, 110, 111, 116, 32, 104, 97, 118, 101, 32, 97, 110, 121, 32, 101, 102, 102, 101, 99, 116, 32, 105, 102, 32, 112, 114, 101, 109, 97, 100, 101, 32, 101, 100, 103, 101, 115, 32, 108, 97, 121, 101, 114, 32, 105, 115, 32, 117, 115, 101, 100, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 83, 107, 101, 116, 99, 104, 32, 97, 110, 100, 32, 101, 100, 103, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 101, 116, 99, 104, 32, 115, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 53, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 97, 99, 99, 117, 114, 97, 99, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 97, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 48, 44, 49, 44, 51, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 117, 100, 103, 101, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 69, 109, 112, 116, 121, 32, 97, 114, 101, 97, 32, 99, 111, 108, 111, 114, 105, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 110, 103, 32, 100, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 110, 103, 32, 115, 116, 114, 111, 107, 101, 32, 108, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 110, 103, 32, 115, 116, 121, 108, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 65, 110, 103, 117, 108, 97, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 32, 119, 97, 118, 121, 34, 44, 34, 65, 110, 103, 117, 108, 97, 114, 32, 119, 97, 118, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 110, 103, 32, 111, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 80, 111, 115, 116, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 116, 32, 103, 97, 109, 109, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 53, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 48, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 69, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 103, 114, 111, 117, 112, 115, 47, 103, 109, 105, 99, 47, 100, 105, 115, 99, 117, 115, 115, 47, 55, 50, 49, 53, 55, 54, 50, 56, 51, 48, 55, 50, 50, 53, 55, 52, 55, 34, 41, 10, 103, 105, 109, 112, 95, 83, 109, 111, 111, 116, 104, 83, 107, 101, 116, 99, 104, 32, 58, 10, 85, 115, 109, 82, 97, 100, 105, 117, 115, 61, 53, 10, 85, 115, 109, 65, 109, 111, 117, 110, 116, 61, 36, 49, 10, 83, 104, 97, 114, 112, 110, 101, 115, 115, 61, 36, 50, 10, 83, 109, 83, 99, 97, 108, 101, 61, 36, 51, 10, 83, 109, 65, 99, 99, 117, 114, 97, 99, 121, 61, 123, 49, 45, 36, 52, 125, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 53, 10, 102, 105, 61, 36, 54, 10, 68, 101, 110, 115, 105, 116, 121, 61, 36, 55, 10, 66, 108, 117, 114, 76, 101, 110, 103, 116, 104, 61, 36, 56, 10, 83, 116, 121, 108, 101, 61, 36, 57, 10, 66, 103, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 48, 10, 80, 111, 115, 116, 71, 97, 109, 109, 97, 61, 36, 49, 49, 10, 83, 116, 97, 99, 107, 83, 105, 122, 101, 61, 64, 35, 10, 45, 105, 102, 32, 123, 36, 83, 116, 97, 99, 107, 83, 105, 122, 101, 61, 61, 49, 125, 10, 9, 35, 85, 110, 115, 104, 97, 114, 112, 32, 116, 111, 32, 101, 110, 104, 97, 110, 99, 101, 32, 101, 100, 103, 101, 115, 32, 97, 110, 100, 32, 100, 101, 116, 97, 105, 108, 10, 9, 35, 45, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 36, 85, 115, 109, 82, 97, 100, 105, 117, 115, 44, 36, 85, 115, 109, 65, 109, 111, 117, 110, 116, 10, 9, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 45, 49, 93, 32, 48, 44, 36, 85, 115, 109, 82, 97, 100, 105, 117, 115, 44, 51, 48, 44, 36, 85, 115, 109, 65, 109, 111, 117, 110, 116, 44, 48, 44, 49, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 10, 9, 35, 71, 114, 97, 100, 105, 101, 110, 116, 32, 110, 111, 114, 109, 32, 102, 111, 114, 32, 108, 105, 110, 101, 115, 10, 9, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 10, 9, 35, 73, 110, 118, 101, 114, 116, 32, 102, 111, 114, 32, 119, 104, 105, 116, 101, 32, 98, 103, 10, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 35, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 102, 111, 114, 32, 109, 97, 120, 32, 114, 97, 110, 103, 101, 10, 9, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 40, 50, 53, 53, 59, 50, 53, 53, 59, 50, 53, 53, 41, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 68, 101, 110, 115, 105, 116, 121, 44, 48, 44, 51, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 83, 116, 121, 108, 101, 61, 61, 48, 125, 10, 9, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 36, 66, 108, 117, 114, 76, 101, 110, 103, 116, 104, 44, 48, 44, 49, 51, 53, 44, 53, 48, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 116, 121, 108, 101, 61, 61, 49, 125, 10, 9, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 91, 45, 49, 93, 32, 36, 66, 108, 117, 114, 76, 101, 110, 103, 116, 104, 44, 49, 46, 50, 44, 49, 46, 50, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 116, 121, 108, 101, 61, 61, 50, 125, 10, 9, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 36, 66, 108, 117, 114, 76, 101, 110, 103, 116, 104, 44, 48, 44, 49, 51, 53, 44, 53, 48, 48, 44, 49, 44, 51, 44, 48, 44, 48, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 36, 68, 101, 110, 115, 105, 116, 121, 47, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 116, 121, 108, 101, 61, 61, 51, 125, 10, 9, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 97, 110, 103, 117, 108, 97, 114, 91, 45, 49, 93, 32, 36, 66, 108, 117, 114, 76, 101, 110, 103, 116, 104, 44, 49, 46, 50, 44, 49, 46, 50, 44, 48, 44, 48, 44, 48, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 36, 68, 101, 110, 115, 105, 116, 121, 47, 53, 125, 10, 45, 101, 110, 100, 105, 102, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 36, 66, 103, 79, 112, 97, 99, 105, 116, 121, 44, 48, 10, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 48, 93, 32, 36, 83, 104, 97, 114, 112, 110, 101, 115, 115, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 10, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 48, 44, 48, 44, 49, 44, 123, 36, 102, 105, 125, 10, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 40, 64, 123, 45, 49, 44, 48, 45, 50, 125, 59, 64, 123, 45, 49, 44, 51, 45, 53, 125, 59, 64, 123, 45, 49, 44, 54, 45, 56, 125, 41, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 117, 108, 91, 45, 49, 93, 32, 123, 36, 83, 109, 83, 99, 97, 108, 101, 47, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 41, 125, 10, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 123, 36, 83, 109, 65, 99, 99, 117, 114, 97, 99, 121, 42, 109, 97, 120, 40, 97, 98, 115, 40, 64, 123, 45, 49, 44, 77, 125, 41, 44, 97, 98, 115, 40, 64, 123, 45, 49, 44, 109, 125, 41, 41, 125, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 10, 45, 115, 109, 111, 111, 116, 104, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 10, 45, 107, 101, 101, 112, 91, 45, 49, 93, 10, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 80, 111, 115, 116, 71, 97, 109, 109, 97, 10, 35, 64, 103, 105, 109, 112, 32, 86, 101, 99, 116, 111, 114, 32, 70, 105, 101, 108, 100, 32, 82, 111, 116, 97, 116, 105, 111, 110, 32, 68, 101, 109, 111, 32, 58, 32, 103, 105, 109, 112, 95, 68, 101, 109, 111, 86, 101, 99, 82, 111, 116, 44, 32, 103, 105, 109, 112, 95, 68, 101, 109, 111, 86, 101, 99, 82, 111, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 86, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 97, 110, 100, 32, 113, 117, 105, 118, 101, 114, 32, 115, 97, 109, 112, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 32, 119, 105, 116, 104, 32, 104, 101, 108, 112, 32, 102, 114, 111, 109, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 50, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 68, 101, 109, 111, 86, 101, 99, 82, 111, 116, 32, 58, 10, 97, 110, 103, 108, 101, 61, 36, 49, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 10, 91, 48, 93, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 45, 91, 45, 50, 93, 32, 49, 50, 56, 10, 45, 45, 91, 45, 51, 93, 32, 49, 50, 56, 10, 45, 97, 112, 112, 101, 110, 100, 91, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 47, 91, 45, 49, 93, 32, 49, 50, 56, 10, 9, 35, 50, 48, 48, 44, 50, 48, 48, 44, 49, 44, 50, 32, 50, 48, 48, 120, 50, 48, 48, 120, 49, 32, 112, 120, 32, 111, 110, 108, 121, 32, 116, 119, 111, 32, 99, 104, 97, 110, 110, 101, 108, 115, 10, 9, 45, 114, 111, 116, 97, 116, 105, 111, 110, 51, 100, 32, 48, 44, 48, 44, 49, 44, 36, 97, 110, 103, 108, 101, 10, 9, 45, 122, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 10, 9, 45, 109, 105, 120, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 40, 64, 123, 45, 49, 44, 48, 45, 49, 125, 59, 64, 123, 45, 49, 44, 50, 45, 51, 125, 41, 10, 9, 45, 114, 109, 91, 45, 49, 93, 10, 45, 113, 117, 105, 118, 101, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 48, 44, 49, 48, 44, 49, 44, 48, 46, 56, 44, 50, 53, 53, 10, 45, 107, 101, 101, 112, 91, 45, 50, 93, 10, 35, 64, 103, 105, 109, 112, 32, 87, 97, 114, 112, 32, 116, 101, 115, 116, 32, 58, 32, 103, 105, 109, 112, 95, 87, 97, 114, 112, 84, 101, 115, 116, 44, 32, 103, 105, 109, 112, 95, 87, 97, 114, 112, 84, 101, 115, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 61, 110, 111, 116, 101, 40, 34, 84, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 105, 102, 32, 97, 117, 116, 111, 109, 97, 112, 32, 105, 115, 32, 110, 111, 116, 32, 117, 115, 101, 100, 46, 32, 60, 98, 62, 83, 101, 116, 32, 105, 110, 112, 117, 116, 32, 116, 111, 32, 97, 99, 116, 105, 118, 101, 32, 97, 110, 100, 32, 98, 101, 108, 111, 119, 60, 47, 98, 62, 46, 32, 70, 105, 108, 116, 101, 114, 32, 111, 102, 102, 115, 101, 116, 116, 115, 32, 105, 109, 97, 103, 101, 32, 119, 105, 116, 104, 32, 97, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 32, 109, 97, 112, 46, 32, 77, 97, 112, 32, 105, 115, 32, 99, 114, 101, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 82, 32, 97, 110, 100, 32, 71, 32, 99, 104, 97, 110, 110, 101, 108, 115, 32, 115, 111, 32, 116, 104, 97, 116, 32, 82, 49, 50, 56, 44, 71, 49, 50, 56, 32, 98, 101, 99, 111, 109, 101, 115, 32, 91, 48, 32, 48, 93, 46, 32, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 32, 119, 105, 116, 104, 32, 115, 111, 108, 105, 100, 32, 49, 50, 56, 44, 49, 50, 56, 44, 48, 32, 99, 111, 108, 111, 114, 32, 108, 97, 121, 101, 114, 32, 97, 110, 100, 32, 97, 100, 100, 32, 104, 117, 101, 115, 32, 111, 102, 32, 114, 101, 100, 32, 97, 110, 100, 32, 103, 114, 101, 101, 110, 46, 32, 65, 110, 103, 108, 101, 32, 115, 104, 105, 102, 116, 32, 114, 111, 116, 97, 116, 101, 115, 32, 116, 104, 101, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 32, 97, 110, 100, 32, 90, 101, 114, 111, 32, 112, 111, 105, 110, 116, 32, 111, 102, 102, 115, 101, 116, 32, 109, 111, 118, 101, 115, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 48, 32, 48, 32, 112, 111, 105, 110, 116, 46, 32, 84, 104, 105, 115, 32, 105, 115, 32, 109, 97, 105, 110, 108, 121, 32, 102, 111, 114, 32, 102, 117, 110, 32, 97, 110, 100, 32, 116, 101, 115, 116, 105, 110, 103, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 112, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 117, 116, 111, 109, 97, 112, 34, 44, 34, 76, 97, 121, 101, 114, 32, 77, 97, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 115, 104, 105, 102, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 101, 114, 111, 32, 112, 111, 105, 110, 116, 32, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 50, 56, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 32, 109, 117, 108, 116, 105, 112, 108, 101, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 79, 112, 116, 105, 111, 110, 97, 108, 32, 118, 105, 101, 119, 105, 110, 103, 32, 111, 102, 32, 118, 101, 99, 116, 111, 114, 32, 102, 105, 101, 108, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 111, 119, 32, 81, 117, 105, 118, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 65, 114, 116, 111, 32, 72, 117, 111, 116, 97, 114, 105, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 50, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 87, 97, 114, 112, 84, 101, 115, 116, 32, 58, 10, 77, 97, 112, 84, 121, 112, 101, 61, 36, 49, 10, 102, 105, 61, 123, 36, 50, 42, 51, 46, 49, 52, 49, 53, 47, 49, 56, 48, 125, 10, 90, 101, 114, 111, 79, 102, 102, 115, 101, 116, 61, 36, 51, 10, 76, 77, 117, 108, 116, 61, 36, 52, 10, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 36, 53, 10, 45, 105, 102, 32, 123, 36, 77, 97, 112, 84, 121, 112, 101, 61, 61, 48, 125, 10, 9, 45, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 48, 46, 53, 44, 48, 44, 49, 48, 48, 44, 48, 44, 52, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 99, 111, 115, 102, 105, 61, 123, 99, 111, 115, 40, 36, 102, 105, 41, 125, 10, 115, 105, 110, 102, 105, 61, 123, 115, 105, 110, 40, 36, 102, 105, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 91, 45, 49, 93, 32, 123, 49, 50, 56, 43, 36, 90, 101, 114, 111, 79, 102, 102, 115, 101, 116, 125, 10, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 45, 109, 117, 108, 91, 51, 93, 32, 48, 10, 45, 45, 109, 117, 108, 91, 49, 93, 32, 36, 99, 111, 115, 102, 105, 10, 45, 45, 109, 117, 108, 91, 50, 93, 32, 36, 115, 105, 110, 102, 105, 10, 45, 115, 117, 98, 91, 52, 93, 32, 91, 53, 93, 10, 45, 114, 109, 91, 53, 93, 10, 45, 45, 109, 117, 108, 91, 49, 93, 32, 36, 115, 105, 110, 102, 105, 10, 45, 45, 109, 117, 108, 91, 50, 93, 32, 36, 99, 111, 115, 102, 105, 10, 45, 97, 100, 100, 91, 53, 93, 32, 91, 54, 93, 10, 45, 114, 109, 91, 54, 93, 10, 45, 114, 109, 91, 49, 44, 50, 93, 10, 45, 114, 109, 91, 49, 93, 32, 9, 35, 73, 109, 97, 103, 101, 32, 49, 122, 32, 100, 101, 108, 101, 116, 101, 100, 44, 32, 50, 120, 39, 32, 98, 101, 99, 111, 109, 101, 115, 32, 49, 32, 97, 110, 100, 32, 51, 121, 39, 32, 98, 101, 99, 111, 109, 101, 115, 32, 50, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 48, 10, 45, 97, 112, 112, 101, 110, 100, 91, 49, 44, 50, 44, 51, 93, 32, 99, 10, 45, 47, 91, 45, 49, 93, 32, 123, 49, 50, 56, 47, 36, 76, 77, 117, 108, 116, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 105, 102, 32, 123, 36, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 61, 48, 125, 10, 9, 45, 119, 97, 114, 112, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 44, 49, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 83, 104, 111, 119, 81, 117, 105, 118, 101, 114, 61, 61, 49, 125, 10, 9, 45, 113, 117, 105, 118, 101, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 49, 48, 44, 123, 36, 76, 77, 117, 108, 116, 47, 49, 48, 48, 125, 44, 49, 44, 48, 46, 56, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 66, 111, 111, 115, 116, 32, 83, 99, 114, 101, 101, 110, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 98, 111, 111, 115, 116, 115, 99, 114, 101, 101, 110, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 98, 111, 111, 115, 116, 115, 99, 114, 101, 101, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 98, 111, 111, 115, 116, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 32, 67, 111, 108, 111, 114, 32, 68, 111, 112, 105, 110, 103, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 100, 111, 112, 105, 110, 103, 32, 58, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 49, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 109, 105, 120, 32, 67, 111, 108, 111, 114, 115, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 109, 105, 120, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 68, 97, 114, 107, 32, 69, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 100, 103, 101, 115, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 52, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 68, 97, 114, 107, 32, 83, 99, 114, 101, 101, 110, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 115, 99, 114, 101, 101, 110, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 115, 99, 114, 101, 101, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 99, 32, 67, 111, 108, 111, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 36, 49, 44, 36, 50, 44, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 99, 32, 110, 111, 118, 101, 108, 45, 111, 108, 100, 32, 58, 32, 103, 105, 109, 112, 95, 110, 111, 118, 101, 108, 102, 120, 44, 32, 103, 105, 109, 112, 95, 110, 111, 118, 101, 108, 102, 120, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 65, 112, 112, 108, 121, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 116, 104, 105, 115, 32, 115, 116, 101, 112, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 109, 112, 108, 105, 116, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 78, 101, 105, 103, 104, 116, 98, 111, 114, 104, 111, 111, 100, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 78, 32, 65, 118, 101, 114, 97, 103, 101, 45, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 80, 101, 110, 99, 105, 108, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 50, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 34, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 34, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 57, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 75, 73, 80, 32, 97, 108, 108, 32, 111, 116, 104, 101, 114, 32, 115, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 66, 111, 111, 115, 116, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 79, 79, 83, 84, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 83, 111, 102, 116, 32, 108, 105, 103, 104, 116, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 46, 50, 56, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 52, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 49, 53, 56, 50, 34, 41, 10, 103, 105, 109, 112, 95, 110, 111, 118, 101, 108, 102, 120, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 32, 36, 50, 44, 36, 51, 44, 36, 52, 44, 36, 53, 44, 49, 44, 51, 44, 48, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 48, 125, 32, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 55, 44, 36, 56, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 48, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 54, 48, 44, 36, 49, 49, 44, 36, 49, 50, 44, 36, 49, 51, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 32, 32, 45, 105, 102, 32, 123, 36, 49, 52, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 9, 32, 32, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 10, 45, 105, 102, 32, 123, 36, 49, 54, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 55, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 49, 44, 48, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 10, 9, 32, 32, 45, 101, 108, 105, 102, 32, 123, 36, 49, 54, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 48, 93, 32, 36, 49, 55, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 56, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 49, 57, 44, 36, 50, 48, 44, 36, 50, 49, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 110, 111, 118, 101, 108, 102, 120, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 110, 111, 118, 101, 108, 102, 120, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 88, 32, 67, 111, 108, 111, 114, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 112, 104, 105, 120, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 49, 44, 36, 50, 32, 45, 107, 101, 101, 112, 91, 45, 49, 44, 45, 51, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 49, 44, 48, 10, 64, 103, 105, 109, 112, 32, 71, 114, 97, 112, 104, 105, 99, 32, 98, 111, 111, 115, 116, 45, 111, 108, 100, 32, 58, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 44, 32, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 110, 115, 104, 97, 114, 112, 32, 77, 97, 115, 107, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 104, 101, 99, 107, 32, 102, 111, 114, 32, 118, 105, 115, 117, 97, 108, 32, 99, 111, 110, 116, 114, 111, 108, 44, 32, 85, 78, 99, 104, 101, 99, 107, 32, 116, 111, 32, 114, 101, 97, 99, 116, 105, 118, 97, 116, 101, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 99, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 66, 87, 95, 80, 101, 110, 99, 105, 108, 32, 67, 111, 110, 116, 114, 111, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 53, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 52, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 118, 97, 116, 101, 32, 34, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 34, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 32, 83, 109, 111, 111, 116, 104, 101, 114, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 50, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 79, 116, 104, 101, 114, 115, 32, 83, 116, 101, 112, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 87, 65, 80, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 32, 40, 84, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 34, 83, 119, 97, 112, 34, 32, 99, 104, 97, 110, 103, 101, 32, 116, 104, 101, 32, 101, 102, 102, 101, 99, 116, 32, 111, 102, 32, 77, 101, 114, 103, 105, 110, 103, 32, 97, 110, 100, 32, 73, 110, 116, 101, 115, 105, 116, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 114, 103, 105, 110, 103, 32, 79, 112, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 32, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 32, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 32, 44, 34, 83, 116, 97, 109, 112, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 100, 100, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 102, 32, 117, 110, 99, 104, 101, 99, 107, 101, 100, 32, 116, 104, 101, 32, 51, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 32, 97, 114, 101, 32, 100, 105, 115, 97, 98, 108, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 32, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 84, 111, 117, 99, 104, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 69, 100, 103, 101, 32, 80, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 70, 108, 111, 119, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 105, 110, 116, 101, 114, 39, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 49, 47, 49, 48, 32, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 105, 109, 112, 99, 104, 97, 116, 46, 99, 111, 109, 47, 118, 105, 101, 119, 116, 111, 112, 105, 99, 46, 112, 104, 112, 63, 102, 61, 57, 38, 116, 61, 55, 55, 53, 34, 41, 10, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 49, 44, 36, 49, 44, 51, 48, 44, 51, 44, 48, 44, 36, 50, 44, 48, 46, 52, 48, 44, 49, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 45, 103, 105, 109, 112, 95, 112, 101, 110, 99, 105, 108, 98, 119, 32, 36, 52, 44, 36, 53, 44, 48, 44, 48, 44, 48, 10, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 49, 93, 32, 54, 48, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 49, 61, 61, 49, 125, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 98, 114, 101, 97, 107, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 50, 61, 61, 49, 125, 32, 32, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 51, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 36, 49, 52, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 36, 49, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 51, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 116, 97, 109, 112, 32, 36, 49, 52, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 49, 53, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 54, 48, 44, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 97, 32, 99, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 103, 114, 97, 112, 104, 105, 99, 95, 98, 111, 111, 115, 116, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 72, 101, 97, 118, 121, 32, 83, 99, 114, 101, 101, 110, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 101, 97, 118, 121, 115, 99, 114, 101, 101, 110, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 101, 97, 118, 121, 115, 99, 114, 101, 101, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 101, 97, 118, 121, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 77, 101, 116, 97, 108, 108, 105, 99, 32, 71, 114, 97, 105, 110, 32, 58, 32, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 103, 114, 97, 105, 110, 44, 32, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 103, 114, 97, 105, 110, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 97, 100, 100, 32, 97, 32, 109, 101, 116, 97, 108, 108, 105, 99, 32, 103, 114, 97, 105, 110, 32, 97, 100, 97, 112, 116, 32, 116, 111, 32, 112, 105, 99, 116, 111, 114, 105, 97, 108, 32, 97, 110, 100, 32, 115, 112, 101, 99, 105, 97, 108, 32, 101, 102, 102, 101, 99, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 100, 101, 112, 101, 110, 100, 101, 110, 116, 32, 102, 114, 111, 109, 32, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 34, 32, 98, 121, 32, 83, 97, 109, 106, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 46, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 119, 97, 112, 32, 108, 97, 121, 101, 114, 115, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 44, 97, 32, 104, 97, 99, 107, 32, 111, 102, 32, 97, 32, 83, 97, 109, 106, 32, 102, 105, 108, 116, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 103, 114, 97, 105, 110, 32, 58, 10, 45, 45, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 32, 49, 44, 49, 44, 49, 57, 46, 56, 54, 44, 48, 44, 48, 44, 48, 44, 55, 46, 52, 44, 49, 49, 44, 51, 46, 57, 54, 44, 50, 48, 44, 49, 44, 48, 44, 48, 44, 49, 44, 49, 46, 57, 44, 49, 48, 46, 50, 44, 49, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 32, 36, 49, 44, 36, 50, 10, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 103, 114, 97, 105, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 103, 114, 97, 105, 110, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 32, 77, 101, 116, 97, 108, 108, 105, 99, 32, 83, 116, 101, 110, 99, 105, 108, 115, 32, 58, 32, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 108, 105, 99, 115, 116, 101, 110, 99, 105, 108, 115, 32, 44, 32, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 108, 105, 99, 115, 116, 101, 110, 99, 105, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 116, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 44, 97, 32, 104, 97, 99, 107, 32, 111, 102, 32, 97, 32, 83, 97, 109, 106, 32, 102, 105, 108, 116, 101, 114, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 48, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 108, 105, 99, 115, 116, 101, 110, 99, 105, 108, 115, 32, 58, 10, 45, 45, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 32, 48, 44, 49, 44, 50, 50, 44, 48, 44, 48, 44, 49, 44, 55, 46, 56, 44, 57, 44, 55, 46, 54, 44, 49, 54, 46, 54, 44, 49, 44, 48, 44, 48, 44, 49, 44, 50, 46, 52, 44, 56, 46, 50, 44, 49, 44, 48, 10, 45, 45, 103, 105, 109, 112, 95, 108, 121, 108, 101, 106, 107, 95, 115, 116, 101, 110, 99, 105, 108, 91, 48, 93, 32, 52, 44, 50, 54, 46, 55, 48, 52, 53, 44, 50, 46, 52, 49, 52, 55, 55, 44, 48, 10, 45, 114, 109, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 32, 49, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 108, 105, 99, 115, 116, 101, 110, 99, 105, 108, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 109, 101, 116, 97, 108, 108, 105, 99, 115, 116, 101, 110, 99, 105, 108, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 10, 35, 64, 103, 105, 109, 112, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 54, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 51, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 117, 108, 97, 114, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 82, 117, 110, 103, 101, 45, 75, 117, 116, 116, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 32, 38, 32, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 32, 58, 32, 60, 47, 98, 62, 84, 104, 105, 115, 32, 115, 101, 116, 32, 111, 102, 32, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 117, 103, 103, 101, 115, 116, 101, 100, 32, 98, 121, 32, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 83, 99, 97, 108, 101, 32, 68, 111, 119, 110, 32, 78, 101, 97, 116, 32, 32, 58, 32, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 100, 111, 119, 110, 51, 44, 32, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 100, 111, 119, 110, 51, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 40, 34, 32, 84, 111, 32, 115, 99, 97, 108, 101, 32, 100, 111, 119, 110, 32, 112, 114, 101, 115, 101, 114, 118, 105, 110, 103, 32, 99, 108, 101, 97, 110, 32, 101, 100, 103, 101, 115, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 108, 121, 32, 115, 104, 97, 114, 112, 101, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 112, 114, 101, 45, 98, 108, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 32, 32, 34, 65, 117, 116, 111, 109, 97, 116, 105, 99, 32, 112, 114, 101, 45, 98, 108, 117, 114, 34, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 101, 32, 50, 32, 115, 108, 105, 100, 101, 114, 115, 32, 98, 101, 108, 111, 119, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 98, 108, 117, 114, 32, 88, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 46, 50, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 98, 108, 117, 114, 32, 89, 32, 61, 32, 102, 108, 111, 97, 116, 32, 40, 49, 44, 48, 46, 50, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 100, 111, 119, 110, 32, 116, 111, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 32, 78, 101, 119, 32, 87, 105, 100, 116, 104, 32, 97, 110, 100, 32, 72, 101, 105, 103, 104, 116, 32, 32, 34, 44, 32, 34, 32, 112, 114, 101, 115, 101, 114, 118, 101, 95, 105, 109, 97, 103, 101, 95, 114, 97, 116, 105, 111, 32, 83, 101, 116, 32, 110, 101, 119, 32, 87, 105, 100, 116, 104, 32, 34, 32, 44, 32, 34, 112, 114, 101, 115, 101, 114, 118, 101, 95, 105, 109, 97, 103, 101, 95, 114, 97, 116, 105, 111, 32, 83, 101, 116, 32, 110, 101, 119, 32, 72, 101, 105, 103, 104, 116, 34, 44, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 119, 32, 87, 105, 100, 116, 104, 32, 61, 32, 105, 110, 116, 40, 49, 54, 48, 48, 44, 49, 54, 44, 51, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 119, 32, 72, 101, 105, 103, 104, 116, 32, 61, 32, 105, 110, 116, 40, 49, 54, 48, 48, 44, 49, 54, 44, 51, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 107, 105, 112, 32, 80, 111, 115, 116, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 32, 34, 34, 83, 107, 105, 112, 32, 80, 111, 115, 116, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 34, 58, 32, 105, 102, 32, 99, 104, 111, 115, 101, 110, 32, 119, 105, 108, 108, 32, 100, 101, 97, 99, 116, 105, 118, 97, 116, 101, 32, 97, 108, 108, 32, 99, 111, 110, 116, 114, 111, 108, 115, 32, 98, 101, 108, 111, 119, 32, 34, 32, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 47, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 57, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 100, 111, 119, 110, 51, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 32, 38, 38, 32, 36, 52, 61, 61, 48, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 123, 119, 47, 36, 53, 125, 44, 123, 104, 47, 36, 54, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 48, 32, 38, 38, 32, 36, 52, 61, 61, 49, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 123, 119, 47, 36, 53, 125, 44, 123, 119, 47, 36, 54, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 48, 32, 38, 38, 32, 36, 52, 61, 61, 50, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 123, 104, 47, 36, 53, 125, 44, 123, 119, 47, 36, 54, 125, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 32, 38, 38, 32, 36, 52, 61, 61, 48, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 50, 32, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 32, 38, 38, 32, 36, 52, 61, 61, 49, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 50, 32, 44, 36, 51, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 32, 38, 38, 32, 36, 52, 61, 61, 50, 125, 32, 45, 98, 108, 117, 114, 95, 120, 121, 32, 36, 50, 32, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 61, 61, 48, 125, 10, 45, 114, 101, 115, 105, 122, 101, 32, 36, 53, 44, 36, 54, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 53, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 52, 61, 61, 50, 125, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 36, 54, 44, 50, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 55, 61, 61, 48, 125, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 48, 44, 49, 46, 50, 53, 44, 51, 48, 44, 36, 56, 44, 48, 44, 36, 57, 44, 123, 36, 57, 47, 51, 125, 44, 49, 44, 48, 44, 36, 49, 48, 10, 45, 101, 110, 100, 105, 102, 10, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 100, 111, 119, 110, 51, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 115, 99, 97, 108, 101, 100, 111, 119, 110, 51, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 118, 105, 100, 32, 67, 111, 108, 111, 114, 115, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 95, 99, 111, 108, 111, 114, 44, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 95, 99, 111, 108, 111, 114, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 95, 99, 111, 108, 111, 114, 32, 58, 10, 45, 114, 101, 118, 101, 114, 115, 101, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 118, 105, 100, 32, 69, 100, 103, 101, 115, 32, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 115, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 101, 100, 103, 101, 115, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 32, 36, 49, 44, 36, 50, 44, 36, 51, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 52, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 86, 105, 118, 105, 100, 32, 83, 99, 114, 101, 101, 110, 58, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 115, 99, 114, 101, 101, 110, 32, 44, 32, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 115, 99, 114, 101, 101, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 118, 101, 114, 116, 32, 76, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 32, 40, 34, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 83, 101, 116, 32, 116, 104, 101, 32, 60, 105, 62, 73, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 60, 47, 105, 62, 32, 111, 112, 116, 105, 111, 110, 32, 116, 111, 32, 104, 97, 110, 100, 108, 101, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 105, 110, 112, 117, 116, 32, 108, 97, 121, 101, 114, 115, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 88, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 49, 47, 49, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 105, 118, 105, 100, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 36, 49, 44, 36, 50, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 36, 51, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 82, 76, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 80, 108, 97, 115, 109, 97, 32, 84, 114, 97, 110, 115, 105, 116, 105, 111, 110, 32, 58, 32, 112, 108, 97, 115, 109, 97, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 44, 32, 112, 108, 97, 115, 109, 97, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 108, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 110, 100, 111, 109, 32, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 50, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 74, 101, 97, 110, 45, 66, 97, 112, 116, 105, 115, 116, 101, 32, 82, 111, 108, 108, 97, 110, 100, 44, 32, 74, 117, 108, 105, 101, 110, 32, 76, 101, 118, 105, 108, 108, 97, 105, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 112, 108, 97, 115, 109, 97, 95, 116, 114, 97, 110, 115, 105, 116, 105, 111, 110, 58, 32, 45, 99, 104, 101, 99, 107, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 52, 50, 125, 41, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 50, 61, 53, 125, 41, 32, 38, 38, 32, 36, 123, 49, 61, 48, 46, 53, 125, 62, 61, 48, 32, 32, 38, 38, 32, 36, 49, 60, 61, 49, 32, 38, 38, 32, 36, 50, 62, 61, 48, 32, 38, 38, 32, 36, 123, 51, 61, 49, 125, 62, 61, 48, 34, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 46, 48, 41, 125, 10, 45, 108, 111, 99, 97, 108, 91, 123, 36, 62, 125, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 105, 102, 32, 123, 64, 35, 60, 50, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 115, 125, 44, 51, 10, 49, 48, 48, 37, 44, 49, 48, 48, 37, 32, 45, 115, 114, 97, 110, 100, 32, 36, 52, 32, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 44, 48, 44, 36, 50, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 10, 45, 45, 108, 101, 91, 45, 49, 93, 32, 36, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 51, 10, 45, 114, 109, 91, 45, 50, 93, 10, 45, 106, 91, 45, 51, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 45, 107, 101, 101, 112, 91, 45, 51, 93, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 10, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 82, 97, 110, 100, 111, 109, 87, 97, 118, 101, 115, 32, 58, 32, 114, 97, 110, 100, 111, 109, 119, 97, 118, 101, 115, 44, 32, 114, 97, 110, 100, 111, 109, 119, 97, 118, 101, 115, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 101, 112, 115, 32, 78, 117, 109, 98, 101, 114, 32, 61, 32, 105, 110, 116, 40, 56, 52, 44, 49, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 111, 98, 97, 98, 105, 108, 105, 116, 121, 32, 111, 102, 32, 105, 109, 112, 117, 108, 115, 101, 32, 40, 37, 32, 47, 32, 115, 116, 101, 112, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 46, 44, 49, 46, 44, 49, 48, 48, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 115, 115, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 44, 48, 46, 48, 49, 44, 49, 48, 46, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 110, 100, 111, 109, 32, 73, 110, 105, 116, 105, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 52, 50, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 58, 32, 60, 105, 62, 74, 101, 97, 110, 45, 66, 97, 112, 116, 105, 115, 116, 101, 32, 82, 111, 108, 108, 97, 110, 100, 44, 32, 74, 117, 108, 105, 101, 110, 32, 76, 101, 118, 105, 108, 108, 97, 105, 110, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 50, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 114, 97, 110, 100, 111, 109, 119, 97, 118, 101, 115, 58, 32, 32, 45, 99, 104, 101, 99, 107, 32, 32, 34, 105, 115, 105, 110, 116, 40, 36, 123, 49, 61, 56, 52, 125, 41, 32, 32, 38, 38, 32, 32, 36, 123, 50, 61, 56, 48, 125, 62, 61, 48, 32, 32, 38, 38, 32, 32, 36, 50, 60, 61, 49, 48, 48, 32, 32, 38, 38, 32, 36, 123, 51, 61, 49, 46, 50, 125, 62, 48, 46, 32, 38, 38, 32, 105, 115, 105, 110, 116, 40, 36, 123, 52, 61, 52, 50, 125, 41, 34, 10, 45, 115, 114, 97, 110, 100, 32, 36, 52, 10, 40, 48, 44, 49, 44, 48, 59, 49, 44, 48, 44, 49, 59, 48, 44, 49, 44, 48, 41, 32, 45, 47, 91, 45, 49, 93, 32, 50, 10, 45, 110, 109, 91, 45, 49, 93, 32, 109, 97, 116, 99, 111, 110, 118, 10, 64, 123, 48, 44, 119, 125, 44, 64, 123, 48, 44, 104, 125, 44, 49, 44, 49, 32, 45, 115, 101, 116, 91, 45, 49, 93, 32, 50, 53, 53, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 10, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 123, 50, 125, 62, 61, 63, 40, 49, 48, 48, 41, 125, 10, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 49, 48, 48, 41, 125, 37, 44, 123, 63, 40, 51, 41, 125, 44, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 110, 118, 111, 108, 118, 101, 91, 45, 49, 93, 32, 91, 109, 97, 116, 99, 111, 110, 118, 93, 32, 45, 100, 105, 118, 91, 45, 49, 93, 32, 36, 51, 32, 45, 115, 117, 98, 91, 45, 49, 93, 32, 91, 45, 51, 93, 10, 45, 114, 109, 91, 45, 51, 93, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 50, 44, 109, 97, 116, 99, 111, 110, 118, 93, 10, 45, 103, 91, 45, 49, 93, 32, 45, 97, 91, 45, 49, 44, 45, 50, 93, 32, 99, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 45, 49, 93, 44, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 51, 100, 32, 115, 104, 97, 100, 111, 119, 32, 58, 32, 103, 105, 109, 112, 95, 51, 100, 95, 115, 104, 97, 100, 111, 119, 44, 32, 103, 105, 109, 112, 95, 51, 100, 95, 115, 104, 97, 100, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 45, 53, 48, 44, 49, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 99, 111, 111, 114, 100, 105, 110, 97, 116, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 45, 53, 48, 44, 49, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 57, 48, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 48, 44, 51, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 114, 114, 111, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 55, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 51, 100, 95, 115, 104, 97, 100, 111, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 49, 48, 48, 37, 32, 45, 98, 91, 45, 49, 93, 32, 36, 55, 37, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 50, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 121, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 109, 97, 103, 101, 112, 108, 97, 110, 101, 51, 100, 91, 45, 49, 93, 32, 45, 99, 51, 100, 91, 45, 49, 93, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 36, 53, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 48, 44, 49, 44, 48, 44, 36, 52, 10, 45, 114, 51, 100, 91, 45, 49, 93, 32, 49, 44, 48, 44, 48, 44, 36, 51, 10, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 32, 45, 111, 98, 106, 101, 99, 116, 51, 100, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 36, 49, 37, 44, 36, 50, 37, 44, 48, 44, 49, 44, 50, 44, 49, 44, 48, 44, 36, 54, 32, 45, 114, 109, 91, 45, 50, 93, 10, 45, 105, 91, 45, 50, 93, 32, 40, 36, 56, 94, 36, 57, 94, 36, 49, 48, 41, 32, 45, 114, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 91, 45, 49, 93, 44, 49, 44, 51, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 49, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 51, 100, 95, 115, 104, 97, 100, 111, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 105, 109, 112, 95, 51, 100, 95, 115, 104, 97, 100, 111, 119, 32, 36, 42, 10, 45, 98, 108, 101, 110, 100, 32, 97, 108, 112, 104, 97, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 65, 117, 116, 111, 45, 97, 100, 106, 117, 115, 116, 32, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 103, 105, 109, 112, 95, 97, 100, 106, 117, 115, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 44, 32, 103, 105, 109, 112, 95, 97, 100, 106, 117, 115, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 103, 105, 109, 112, 95, 97, 100, 106, 117, 115, 116, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 77, 61, 123, 109, 97, 120, 40, 119, 44, 104, 41, 125, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 36, 49, 37, 10, 45, 45, 42, 91, 45, 49, 93, 32, 39, 49, 43, 121, 39, 32, 45, 42, 91, 45, 50, 93, 32, 39, 49, 43, 120, 39, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 114, 91, 45, 49, 93, 32, 123, 119, 42, 104, 125, 44, 50, 44, 49, 44, 49, 44, 45, 49, 32, 45, 115, 111, 114, 116, 91, 45, 49, 93, 32, 43, 44, 120, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 45, 47, 91, 45, 49, 93, 32, 36, 77, 32, 45, 45, 114, 91, 45, 49, 93, 32, 49, 44, 50, 44, 49, 44, 49, 44, 50, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 45, 116, 114, 97, 110, 115, 112, 111, 115, 101, 91, 45, 49, 93, 32, 45, 42, 42, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 105, 103, 101, 110, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 122, 91, 45, 49, 93, 32, 48, 44, 48, 10, 45, 105, 102, 32, 123, 105, 60, 48, 125, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 101, 110, 100, 105, 102, 10, 116, 104, 101, 116, 97, 61, 123, 49, 56, 48, 42, 97, 116, 97, 110, 50, 40, 105, 40, 48, 44, 49, 41, 44, 105, 41, 47, 112, 105, 125, 10, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 123, 45, 36, 116, 104, 101, 116, 97, 125, 44, 49, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 123, 45, 36, 116, 104, 101, 116, 97, 43, 57, 48, 125, 44, 49, 44, 48, 44, 53, 48, 37, 44, 53, 48, 37, 10, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 67, 105, 114, 99, 108, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 105, 110, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 116, 105, 111, 110, 32, 108, 105, 110, 101, 97, 114, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 46, 48, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 68, 105, 97, 109, 111, 110, 100, 115, 34, 44, 34, 83, 113, 117, 97, 114, 101, 115, 34, 44, 34, 67, 105, 114, 99, 108, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 49, 48, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 105, 114, 99, 108, 105, 115, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 99, 105, 114, 99, 108, 105, 115, 109, 32, 36, 123, 49, 45, 54, 125, 10, 45, 105, 102, 32, 36, 55, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 70, 97, 100, 101, 100, 32, 109, 105, 114, 114, 111, 114, 32, 58, 32, 103, 105, 109, 112, 95, 102, 97, 100, 101, 100, 95, 109, 105, 114, 114, 111, 114, 44, 32, 103, 105, 109, 112, 95, 102, 97, 100, 101, 100, 95, 109, 105, 114, 114, 111, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 120, 105, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 120, 45, 97, 120, 105, 115, 34, 44, 34, 121, 45, 97, 120, 105, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 118, 101, 114, 108, 97, 112, 112, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 53, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 102, 97, 100, 101, 100, 95, 109, 105, 114, 114, 111, 114, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 49, 48, 48, 37, 44, 49, 44, 49, 44, 49, 44, 34, 97, 61, 49, 47, 40, 49, 45, 119, 42, 36, 50, 37, 41, 59, 98, 61, 45, 97, 42, 40, 119, 45, 49, 41, 59, 97, 42, 120, 43, 98, 34, 32, 45, 99, 91, 45, 49, 93, 32, 48, 46, 48, 49, 44, 49, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 114, 91, 45, 49, 93, 32, 49, 48, 48, 37, 44, 91, 45, 50, 93, 32, 45, 97, 32, 99, 32, 45, 114, 32, 123, 50, 42, 119, 45, 119, 42, 36, 51, 37, 125, 44, 49, 48, 48, 37, 44, 49, 44, 49, 48, 48, 37, 44, 48, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 120, 10, 45, 101, 108, 115, 101, 10, 49, 44, 49, 48, 48, 37, 44, 49, 44, 49, 44, 34, 97, 61, 49, 47, 40, 49, 45, 104, 42, 36, 50, 37, 41, 59, 98, 61, 45, 97, 42, 40, 104, 45, 49, 41, 59, 97, 42, 121, 43, 98, 34, 32, 45, 99, 91, 45, 49, 93, 32, 48, 46, 48, 49, 44, 49, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 49, 48, 48, 37, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 45, 97, 32, 99, 32, 45, 114, 32, 49, 48, 48, 37, 44, 123, 50, 42, 104, 45, 104, 42, 36, 51, 37, 125, 44, 49, 44, 49, 48, 48, 37, 44, 48, 32, 45, 45, 109, 105, 114, 114, 111, 114, 32, 121, 10, 45, 101, 110, 100, 105, 102, 10, 45, 43, 32, 45, 115, 91, 45, 49, 93, 32, 99, 44, 45, 123, 115, 45, 49, 125, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 79, 108, 100, 32, 99, 117, 98, 105, 115, 109, 32, 58, 32, 103, 105, 109, 112, 95, 111, 108, 100, 95, 99, 117, 98, 105, 115, 109, 44, 32, 103, 105, 109, 112, 95, 111, 108, 100, 95, 99, 117, 98, 105, 115, 109, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 48, 48, 44, 49, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 111, 99, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 46, 48, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 111, 108, 100, 95, 99, 117, 98, 105, 115, 109, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 54, 48, 125, 44, 36, 123, 50, 61, 49, 48, 125, 44, 36, 123, 51, 61, 55, 53, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 44, 36, 123, 53, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 65, 112, 112, 108, 121, 32, 99, 117, 98, 105, 115, 109, 32, 101, 102, 102, 101, 99, 116, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 36, 49, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 32, 98, 108, 111, 99, 32, 115, 105, 122, 101, 32, 36, 50, 37, 44, 32, 109, 97, 120, 105, 109, 117, 109, 32, 97, 110, 103, 108, 101, 32, 36, 51, -62, -80, 44, 32, 111, 112, 97, 99, 105, 116, 121, 32, 36, 52, 32, 97, 110, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 53, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 77, 61, 123, 36, 50, 42, 109, 97, 120, 40, 119, 44, 104, 41, 47, 50, 48, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 49, 10, 40, 123, 63, 40, 48, 44, 119, 41, 125, 44, 123, 63, 40, 48, 44, 104, 41, 125, 41, 10, 45, 45, 122, 91, 45, 50, 93, 32, 123, 64, 123, 45, 49, 44, 48, 125, 45, 36, 77, 125, 44, 123, 64, 123, 45, 49, 44, 49, 125, 45, 36, 77, 125, 44, 123, 64, 123, 45, 49, 44, 48, 125, 43, 36, 77, 125, 44, 123, 64, 123, 45, 49, 44, 49, 125, 43, 36, 77, 125, 44, 49, 10, 45, 98, 91, 45, 49, 93, 32, 36, 53, 32, 45, 45, 102, 91, 45, 49, 93, 32, 49, 32, 45, 114, 111, 116, 97, 116, 101, 91, 45, 50, 44, 45, 49, 93, 32, 123, 63, 40, 45, 36, 51, 44, 36, 51, 41, 125, 44, 48, 44, 48, 10, 45, 106, 91, 45, 52, 93, 32, 91, 45, 50, 93, 44, 123, 64, 123, 45, 51, 44, 48, 125, 45, 36, 77, 125, 44, 123, 64, 123, 45, 51, 44, 49, 125, 45, 36, 77, 125, 44, 48, 44, 48, 44, 36, 52, 44, 91, 45, 49, 93, 32, 45, 107, 91, 48, 93, 10, 45, 100, 111, 110, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 80, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 32, 115, 99, 97, 108, 101, 32, 58, 32, 103, 105, 109, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 95, 115, 99, 97, 108, 101, 44, 32, 103, 105, 109, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 95, 115, 99, 97, 108, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 99, 116, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 111, 102, 102, 115, 101, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 109, 111, 100, 101, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 40, 34, 83, 105, 110, 103, 108, 101, 32, 108, 97, 121, 101, 114, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 101, 32, 108, 97, 121, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 95, 115, 99, 97, 108, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 60, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 10, 102, 61, 49, 48, 48, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 36, 49, 45, 49, 125, 32, 102, 61, 123, 36, 102, 42, 36, 50, 37, 125, 32, 45, 45, 114, 91, 48, 93, 32, 36, 102, 37, 44, 36, 102, 37, 44, 49, 44, 52, 44, 50, 32, 45, 100, 111, 110, 101, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 108, 91, 123, 36, 62, 43, 49, 125, 93, 10, 115, 120, 61, 123, 40, 36, 62, 43, 49, 41, 42, 36, 119, 42, 36, 51, 37, 47, 40, 36, 49, 45, 49, 41, 125, 10, 115, 121, 61, 123, 40, 36, 62, 43, 49, 41, 42, 36, 104, 42, 36, 52, 37, 47, 40, 36, 49, 45, 49, 41, 125, 10, 45, 114, 32, 36, 119, 44, 36, 104, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 104, 105, 102, 116, 91, 45, 49, 93, 32, 36, 115, 120, 44, 36, 115, 121, 44, 48, 44, 48, 44, 48, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 45, 105, 102, 32, 123, 33, 36, 53, 125, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 97, 108, 112, 104, 97, 44, 49, 44, 49, 32, 45, 100, 111, 110, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 95, 115, 99, 97, 108, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 112, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 95, 115, 99, 97, 108, 101, 32, 36, 123, 49, 45, 52, 125, 44, 48, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 100, 101, 100, 32, 115, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 58, 32, 100, 116, 95, 115, 101, 103, 109, 101, 110, 116, 95, 115, 104, 97, 100, 101, 100, 44, 100, 116, 95, 115, 101, 103, 109, 101, 110, 116, 95, 115, 104, 97, 100, 101, 100, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 100, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 50, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 100, 116, 95, 115, 101, 103, 109, 101, 110, 116, 95, 115, 104, 97, 100, 101, 100, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 98, 32, 36, 51, 32, 45, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 36, 49, 44, 49, 10, 45, 45, 103, 32, 120, 121, 44, 49, 32, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 32, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 49, 93, 32, 49, 32, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 49, 48, 48, 48, 10, 45, 110, 91, 45, 49, 93, 32, 48, 44, 49, 32, 45, 94, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 49, 101, 45, 53, 44, 36, 50, 41, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 98, 108, 101, 110, 100, 32, 118, 97, 108, 117, 101, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 83, 104, 97, 114, 112, 101, 110, 32, 91, 117, 110, 115, 104, 97, 114, 112, 32, 109, 97, 115, 107, 44, 32, 49, 54, 98, 105, 116, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 49, 54, 44, 32, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 116, 101, 120, 116, 40, 34, 103, 109, 105, 99, 95, 117, 110, 115, 104, 97, 114, 112, 49, 54, 46, 112, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 98, 62, 70, 105, 108, 116, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 66, 105, 108, 97, 116, 101, 114, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 50, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 105, 108, 97, 116, 101, 114, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 97, 114, 107, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 110, 101, 115, 115, 32, 108, 101, 118, 101, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 101, 102, 102, 101, 99, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 105, 115, 32, 105, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 60, 105, 62, 85, 110, 115, 104, 97, 114, 112, 32, 77, 97, 115, 107, 60, 47, 105, 62, 32, 102, 105, 108, 116, 101, 114, 32, 105, 110, 32, 71, 73, 77, 80, 44, 32, 119, 105, 116, 104, 32, 97, 100, 100, 105, 116, 105, 111, 110, 97, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 49, 54, 32, 58, 10, 45, 114, 109, 32, 45, 105, 32, 36, 49, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 123, 51, 45, 45, 49, 125, 10, 45, 42, 32, 50, 53, 54, 32, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 50, 41, 125, 32, 45, 111, 32, 36, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 47, 32, 50, 53, 54, 10, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 32, 36, 49, 32, 45, 122, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 44, 40, 119, 45, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 97, 120, 40, 48, 44, 40, 104, 45, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 119, 45, 49, 44, 40, 119, 43, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 104, 45, 49, 44, 40, 104, 43, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 32, 36, 123, 51, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 44, 32, 49, 54, 98, 105, 116, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 44, 32, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 116, 101, 120, 116, 40, 34, 103, 109, 105, 99, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 49, 54, 46, 112, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 98, 62, 70, 105, 108, 116, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 46, 49, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 117, 108, 97, 114, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 112, 114, 101, 99, 105, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 46, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 101, 97, 114, 101, 115, 116, 32, 110, 101, 105, 103, 104, 98, 111, 114, 34, 44, 34, 76, 105, 110, 101, 97, 114, 34, 44, 34, 82, 117, 110, 103, 101, 45, 75, 117, 116, 116, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 32, 58, 10, 45, 114, 109, 32, 45, 105, 32, 36, 49, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 123, 51, 45, 45, 49, 125, 10, 45, 42, 32, 50, 53, 54, 32, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 50, 41, 125, 32, 45, 111, 32, 36, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 47, 32, 50, 53, 54, 10, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 32, 36, 49, 32, 45, 122, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 44, 40, 119, 45, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 97, 120, 40, 48, 44, 40, 104, 45, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 119, 45, 49, 44, 40, 119, 43, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 104, 45, 49, 44, 40, 104, 43, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 123, 51, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 83, 109, 111, 111, 116, 104, 32, 91, 112, 97, 116, 99, 104, 45, 98, 97, 115, 101, 100, 44, 32, 49, 54, 98, 105, 116, 115, 93, 32, 58, 32, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 44, 32, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 105, 109, 97, 103, 101, 32, 61, 32, 116, 101, 120, 116, 40, 34, 103, 109, 105, 99, 95, 112, 97, 116, 99, 104, 49, 54, 46, 112, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 92, 110, 60, 98, 62, 70, 105, 108, 116, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 97, 116, 105, 97, 108, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 46, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 118, 97, 114, 105, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 46, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 51, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 111, 107, 117, 112, 32, 115, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 50, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 116, 99, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 32, 58, 10, 45, 114, 109, 32, 45, 105, 32, 36, 49, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 123, 51, 45, 45, 49, 125, 10, 45, 42, 32, 50, 53, 54, 32, 45, 105, 102, 32, 123, 110, 97, 114, 103, 40, 36, 50, 41, 125, 32, 45, 111, 32, 36, 50, 32, 45, 101, 110, 100, 105, 102, 32, 45, 47, 32, 50, 53, 54, 10, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 49, 54, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 105, 32, 36, 49, 32, 45, 122, 91, 45, 49, 93, 32, 123, 109, 97, 120, 40, 48, 44, 40, 119, 45, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 97, 120, 40, 48, 44, 40, 104, 45, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 119, 45, 49, 44, 40, 119, 43, 64, 123, 45, 50, 44, 119, 125, 41, 47, 50, 41, 125, 44, 123, 109, 105, 110, 40, 104, 45, 49, 44, 40, 104, 43, 64, 123, 45, 50, 44, 104, 125, 41, 47, 50, 41, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 47, 32, 50, 53, 54, 10, 45, 103, 105, 109, 112, 95, 112, 97, 116, 99, 104, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 123, 51, 45, 45, 49, 125, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 111, 117, 116, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 115, 97, 109, 106, 95, 97, 98, 111, 117, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 60, 98, 62, 73, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 115, 32, 45, 32, 67, 111, 109, 112, 105, 108, 97, 116, 105, 111, 110, 115, 32, 58, 60, 47, 98, 62, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 108, 106, 97, 99, 111, 109, 46, 99, 111, 109, 47, 126, 103, 109, 105, 99, 47, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 97, 108, 106, 97, 99, 111, 109, 46, 99, 111, 109, 47, 126, 103, 109, 105, 99, 47, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 60, 98, 62, 70, 105, 108, 116, 114, 101, 115, 32, 45, 32, 70, 105, 108, 116, 101, 114, 115, 32, 58, 60, 47, 98, 62, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 76, 101, 115, 32, 102, 105, 108, 116, 114, 101, 115, 32, 99, 111, 110, 116, 101, 110, 117, 115, 32, 100, 97, 110, 115, 32, 99, 101, 32, 114, 92, 51, 48, 51, 92, 50, 53, 49, 112, 101, 114, 116, 111, 105, 114, 101, 32, 115, 111, 110, 116, 32, 101, 110, 32, 99, 111, 117, 114, 115, 32, 100, 101, 32, 100, 92, 51, 48, 51, 92, 50, 53, 49, 118, 101, 108, 111, 112, 112, 101, 109, 101, 110, 116, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 104, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104, 105, 115, 32, 102, 111, 108, 100, 101, 114, 32, 97, 114, 101, 32, 113, 117, 105, 116, 101, 32, 60, 105, 62, 101, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 60, 47, 105, 62, 32, 97, 110, 100, 32, 115, 117, 98, 106, 101, 99, 116, 32, 116, 111, 32, 104, 105, 103, 104, 32, 99, 104, 97, 110, 103, 101, 115, 46, 34, 41, 10, 115, 97, 109, 106, 95, 97, 98, 111, 117, 116, 32, 58, 10, 45, 116, 101, 120, 116, 32, 66, 111, 110, 106, 111, 117, 114, 33, 44, 50, 48, 44, 57, 48, 44, 49, 48, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 48, 48, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, -23, 98, 117, 116, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 32, 58, 32, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 44, 32, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 97, 114, 114, 101, 108, 97, 103, 101, 32, 47, 32, 84, 105, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 40, 80, 105, 120, 101, 108, 115, 41, 32, 61, 32, 105, 110, 116, 40, 56, 44, 54, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 112, 112, 111, 114, 116, 32, 40, 37, 41, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 50, 53, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 32, 83, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 47, 71, 32, 83, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 32, 83, 101, 108, 101, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 104, 97, 114, 112, 101, 110, 32, 91, 111, 99, 116, 97, 118, 101, 32, 115, 104, 97, 114, 112, 101, 110, 105, 110, 103, 93, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 52, 44, 51, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 120, 105, 109, 97, 108, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 50, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 117, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 50, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 117, 109, 105, 110, 111, 115, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 32, 58, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 61, 36, 49, 10, 9, 82, 97, 112, 112, 111, 114, 116, 61, 36, 50, 10, 9, 82, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 36, 51, 10, 9, 86, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 36, 52, 10, 9, 66, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 61, 36, 53, 10, 9, 83, 79, 95, 83, 99, 97, 108, 101, 115, 61, 36, 54, 10, 9, 83, 79, 95, 77, 97, 120, 105, 109, 97, 108, 95, 114, 97, 100, 105, 117, 115, 61, 36, 55, 10, 9, 83, 79, 95, 65, 109, 111, 117, 110, 116, 61, 36, 56, 10, 9, 83, 79, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 57, 10, 9, 82, 101, 110, 100, 117, 61, 36, 49, 48, 10, 9, 76, 117, 109, 105, 110, 111, 115, 105, 116, 101, 61, 36, 49, 49, 10, 9, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 49, 50, 10, 9, 83, 79, 95, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 48, 10, 9, 83, 79, 95, 67, 104, 97, 110, 110, 101, 108, 61, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 61, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 107, 95, 119, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 10, 9, 9, 107, 95, 104, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 42, 36, 82, 97, 112, 112, 111, 114, 116, 47, 49, 48, 48, 125, 41, 125, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 123, 119, 125, 47, 36, 107, 95, 119, 125, 44, 123, 123, 104, 125, 47, 36, 107, 95, 104, 125, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 123, 119, 125, 42, 36, 107, 95, 119, 125, 44, 123, 123, 104, 125, 42, 36, 107, 95, 104, 125, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 45, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 82, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 44, 50, 53, 53, 44, 48, 44, 36, 86, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 44, 50, 53, 53, 44, 48, 44, 36, 66, 95, 115, 101, 108, 101, 99, 116, 105, 111, 110, 44, 50, 53, 53, 44, 48, 44, 55, 54, 53, 44, 50, 53, 53, 44, 48, 10, 9, 9, 10, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 83, 79, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 91, 45, 49, 93, 32, 36, 83, 79, 95, 83, 99, 97, 108, 101, 115, 44, 36, 83, 79, 95, 77, 97, 120, 105, 109, 97, 108, 95, 114, 97, 100, 105, 117, 115, 44, 36, 83, 79, 95, 65, 109, 111, 117, 110, 116, 44, 36, 83, 79, 95, 84, 104, 114, 101, 115, 104, 111, 108, 100, 44, 36, 83, 79, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 76, 117, 109, 105, 110, 111, 115, 105, 116, 101, 62, 49, 125, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 76, 117, 109, 105, 110, 111, 115, 105, 116, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 62, 48, 125, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 50, 53, 53, 125, 44, 36, 123, 50, 61, 36, 49, 125, 44, 36, 123, 51, 61, 36, 50, 125, 44, 36, 123, 52, 61, 48, 46, 55, 125, 44, 36, 123, 53, 61, 48, 46, 51, 125, 44, 36, 123, 54, 61, 48, 46, 48, 56, 125, 44, 36, 123, 55, 61, 48, 46, 48, 56, 125, 44, 36, 123, 56, 61, 50, 53, 53, 125, 44, 36, 123, 57, 61, 36, 56, 125, 44, 36, 123, 49, 48, 61, 36, 56, 125, 10, 9, 45, 101, 91, 94, 45, 49, 93, 32, 34, 68, 114, 97, 119, 32, 98, 97, 108, 108, 32, 115, 112, 114, 105, 116, 101, 32, 111, 110, 32, 105, 109, 97, 103, 101, 36, 63, 44, 32, 119, 105, 116, 104, 32, 99, 111, 108, 111, 114, 32, 40, 36, 49, 44, 36, 50, 44, 36, 51, 41, 32, 108, 105, 103, 104, 116, 32, 88, 89, 32, 40, 36, 52, 44, 36, 53, 41, 32, 114, 97, 100, 105, 117, 115, 32, 40, 36, 54, 44, 36, 55, 41, 99, 111, 108, 111, 114, 32, 40, 36, 56, 44, 36, 57, 44, 36, 49, 48, 41, 32, 46, 34, 10, 9, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 109, 119, 104, 61, 123, 109, 105, 110, 40, 119, 44, 104, 41, 125, 10, 9, 9, 45, 115, 104, 32, 51, 44, 51, 32, 45, 102, 91, 45, 49, 93, 32, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 123, 48, 46, 53, 42, 36, 109, 119, 104, 45, 52, 125, 44, 49, 44, 49, 44, 36, 49, 44, 36, 50, 44, 36, 51, 44, 50, 53, 53, 10, 9, 9, 45, 115, 104, 32, 48, 44, 50, 32, 45, 42, 91, 45, 49, 93, 32, 39, 40, 36, 109, 119, 104, 43, 121, 45, 120, 41, 47, 40, 50, 42, 119, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 123, 36, 109, 119, 104, 42, 36, 52, 125, 44, 123, 36, 109, 119, 104, 42, 36, 53, 125, 44, 123, 36, 109, 119, 104, 42, 36, 54, 125, 44, 123, 36, 109, 119, 104, 42, 36, 55, 125, 44, 49, 44, 123, 109, 105, 110, 40, 36, 109, 119, 104, 47, 54, 52, 44, 49, 41, 125, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 44, 50, 53, 53, 10, 9, 9, 45, 115, 104, 32, 48, 44, 50, 32, 45, 98, 91, 45, 49, 93, 32, 123, 48, 46, 48, 50, 42, 36, 109, 119, 104, 125, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 115, 104, 32, 51, 44, 51, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 51, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 115, 104, 32, 48, 44, 50, 32, 45, 43, 91, 45, 49, 93, 32, 39, 105, 102, 40, 105, 38, 38, 40, 33, 105, 40, 120, 45, 49, 41, 124, 124, 33, 105, 40, 120, 43, 49, 41, 124, 124, 33, 105, 40, 120, 44, 121, 45, 49, 41, 124, 124, 33, 105, 40, 120, 44, 121, 43, 49, 41, 41, 44, 105, 102, 40, 99, 61, 61, 48, 44, 36, 49, 44, 105, 102, 40, 99, 61, 61, 49, 44, 36, 50, 44, 36, 51, 41, 41, 47, 54, 44, 48, 41, 39, 32, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 69, 83, 84, 32, 100, 101, 32, 108, 97, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 32, 34, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 34, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 67, 104, 97, 108, 107, 32, 105, 116, 32, 117, 112, 32, 58, 32, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 44, 32, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 116, 117, 116, 111, 114, 105, 97, 108, 32, 112, 114, 111, 112, 111, 115, 101, 100, 32, 98, 121, 32, 76, 121, 108, 101, 106, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 106, 117, 115, 116, 112, 97, 115, 116, 101, 46, 105, 116, 47, 99, 104, 97, 108, 107, 95, 105, 116, 95, 117, 112, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 106, 117, 115, 116, 112, 97, 115, 116, 101, 46, 105, 116, 47, 99, 104, 97, 108, 107, 95, 105, 116, 95, 117, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 105, 110, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 104, 97, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 77, 111, 114, 112, 104, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 53, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 114, 101, 97, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 57, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 47, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 32, 58, 10, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 36, 49, 10, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 61, 36, 50, 10, 67, 111, 108, 111, 114, 61, 36, 51, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 52, 10, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 61, 36, 53, 10, 65, 99, 116, 105, 111, 110, 61, 36, 54, 10, 83, 105, 122, 101, 61, 36, 55, 10, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 61, 36, 56, 10, 83, 104, 97, 112, 101, 61, 36, 57, 10, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 61, 36, 49, 48, 10, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 49, 10, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 50, 10, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 51, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 36, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 44, 36, 67, 111, 108, 111, 114, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 67, 104, 97, 108, 107, 32, 105, 116, 32, 117, 112, 32, 83, 101, 113, 117, 101, 110, 99, 101, 115, 32, 58, 32, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 44, 32, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 115, 112, 105, 114, 101, 100, 32, 98, 121, 32, 116, 104, 101, 32, 116, 117, 116, 111, 114, 105, 97, 108, 32, 112, 114, 111, 112, 111, 115, 101, 100, 32, 98, 121, 32, 76, 121, 108, 101, 106, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 106, 117, 115, 116, 112, 97, 115, 116, 101, 46, 105, 116, 47, 99, 104, 97, 108, 107, 95, 105, 116, 95, 117, 112, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 106, 117, 115, 116, 112, 97, 115, 116, 101, 46, 105, 116, 47, 99, 104, 97, 108, 107, 95, 105, 116, 95, 117, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 110, 105, 109, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 58, 32, 65, 115, 32, 102, 114, 97, 109, 101, 115, 32, 49, 32, 47, 32, 65, 115, 32, 102, 114, 97, 109, 101, 115, 32, 97, 110, 100, 32, 102, 105, 108, 101, 115, 32, 48, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 77, 111, 114, 112, 104, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 53, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 114, 101, 97, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 57, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 49, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 58, 10, 65, 99, 116, 105, 111, 110, 61, 36, 52, 10, 83, 105, 122, 101, 61, 36, 53, 10, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 61, 36, 54, 10, 83, 104, 97, 112, 101, 61, 36, 55, 10, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 61, 36, 56, 10, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 57, 10, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 48, 10, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 49, 10, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 9, 45, 105, 102, 32, 36, 50, 10, 9, 9, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 44, 34, 49, 44, 48, 44, 49, 44, 48, 44, 49, 34, 44, 34, 49, 48, 44, 49, 48, 44, 53, 44, 50, 48, 48, 44, 49, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 51, 47, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 46, 112, 110, 103, 34, 10, 9, 9, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 44, 34, 49, 44, 48, 44, 49, 44, 48, 44, 49, 34, 44, 34, 49, 48, 44, 49, 48, 44, 53, 44, 50, 48, 48, 44, 49, 34, 44, 36, 49, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 32, 45, 111, 32, 36, 102, 105, 108, 101, 110, 97, 109, 101, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 49, 10, 9, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 61, 48, 10, 9, 67, 111, 108, 111, 114, 61, 49, 10, 9, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 48, 10, 9, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 61, 49, 10, 9, 35, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 10, 9, 65, 99, 116, 105, 111, 110, 61, 36, 52, 10, 9, 83, 105, 122, 101, 61, 36, 53, 10, 9, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 61, 36, 54, 10, 9, 83, 104, 97, 112, 101, 61, 36, 55, 10, 9, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 61, 36, 56, 10, 9, 35, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 10, 9, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 57, 10, 9, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 48, 10, 9, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 49, 10, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 36, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 44, 36, 67, 111, 108, 111, 114, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 10, 9, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 34, 83, 116, 97, 114, 116, 34, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 105, 110, 32, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, 67, 104, 97, 108, 107, 32, 105, 116, 32, 117, 112, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, -23, 98, 117, 116, 32, 67, 114, 97, 105, 101, 32, 115, 117, 114, 32, 116, 97, 98, 108, 101, 97, 117, 32, 110, 111, 105, 114, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 44, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 47, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 67, 111, 110, 115, 101, 114, 118, 101, 114, 32, 47, 32, 80, 114, 101, 115, 101, 114, 118, 101, 34, 44, 34, 83, 117, 112, 112, 114, 105, 109, 101, 114, 32, 47, 32, 82, 101, 109, 111, 118, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 84, 121, 112, 101, 32, 49, 34, 44, 34, 84, 121, 112, 101, 32, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 78, 111, 105, 115, 101, 32, 45, 32, 78, 111, 105, 115, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 50, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 98, 114, 117, 105, 116, 32, 47, 32, 78, 111, 105, 115, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 76, 111, 99, 97, 108, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 45, 32, 76, 111, 99, 97, 108, 32, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 111, 117, 98, 108, 101, 32, 101, 102, 102, 101, 116, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 118, 101, 114, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 115, 116, 114, 97, 105, 110, 32, 118, 97, 108, 117, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 97, 117, 120, 32, 47, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 66, 111, 111, 115, 116, 45, 70, 97, 100, 101, 32, 45, 32, 66, 111, 111, 115, 116, 45, 70, 97, 100, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 58, 32, 83, 105, 45, 73, 102, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 83, 117, 112, 46, 32, 48, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 104, 111, 116, 111, 67, 111, 109, 105, 120, 32, 79, 112, 116, 105, 111, 110, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 116, 105, 108, 105, 115, 101, 114, 32, 47, 32, 85, 115, 101, 32, 80, 67, 32, 79, 112, 116, 105, 111, 110, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 98, 119, 32, 83, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 101, 110, 99, 105, 108, 98, 119, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 82, 101, 118, 101, 114, 116, 32, 108, 97, 121, 101, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 32, 58, 10, 9, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 36, 49, 10, 9, 82, 101, 110, 100, 117, 61, 36, 50, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 51, 10, 9, 78, 111, 105, 115, 101, 95, 116, 121, 112, 101, 61, 36, 52, 10, 9, 78, 111, 105, 115, 101, 95, 67, 104, 97, 110, 110, 101, 108, 61, 55, 10, 9, 86, 97, 108, 117, 101, 95, 114, 97, 110, 103, 101, 61, 36, 53, 10, 9, 68, 111, 117, 98, 108, 101, 95, 101, 102, 102, 101, 116, 61, 36, 54, 10, 9, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 55, 10, 9, 82, 97, 100, 105, 117, 115, 61, 36, 56, 10, 9, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 57, 10, 9, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 49, 48, 10, 9, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 61, 36, 49, 49, 10, 9, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 67, 104, 97, 110, 110, 101, 108, 61, 36, 49, 50, 10, 9, 10, 9, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 49, 51, 10, 9, 85, 116, 105, 108, 105, 115, 101, 114, 95, 80, 104, 111, 116, 111, 99, 111, 109, 105, 120, 95, 79, 112, 116, 105, 111, 110, 115, 61, 36, 49, 52, 10, 9, 80, 101, 110, 99, 105, 108, 98, 119, 95, 83, 105, 122, 101, 61, 36, 49, 53, 10, 9, 80, 101, 110, 99, 105, 108, 98, 119, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 49, 54, 10, 9, 66, 108, 101, 110, 100, 95, 115, 111, 102, 116, 95, 108, 105, 103, 104, 116, 95, 79, 112, 97, 99, 105, 116, 121, 61, 36, 49, 55, 10, 9, 66, 108, 101, 110, 100, 95, 115, 111, 102, 116, 95, 108, 105, 103, 104, 116, 95, 82, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 61, 36, 49, 56, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 45, 105, 102, 32, 123, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 61, 49, 125, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 85, 116, 105, 108, 105, 115, 101, 114, 95, 80, 104, 111, 116, 111, 99, 111, 109, 105, 120, 95, 79, 112, 116, 105, 111, 110, 115, 61, 61, 49, 125, 10, 9, 9, 9, 45, 45, 112, 101, 110, 99, 105, 108, 98, 119, 91, 45, 49, 93, 32, 36, 80, 101, 110, 99, 105, 108, 98, 119, 95, 83, 105, 122, 101, 44, 36, 80, 101, 110, 99, 105, 108, 98, 119, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 10, 9, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 111, 117, 98, 108, 101, 95, 101, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 50, 93, 32, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 97, 100, 105, 117, 115, 44, 36, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 44, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 50, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 78, 111, 105, 115, 101, 95, 116, 121, 112, 101, 44, 36, 78, 111, 105, 115, 101, 95, 67, 104, 97, 110, 110, 101, 108, 44, 36, 86, 97, 108, 117, 101, 95, 114, 97, 110, 103, 101, 10, 9, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 32, 48, 44, 48, 44, 49, 48, 48, 44, 48, 44, 55, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 50, 93, 32, 48, 44, 48, 44, 49, 48, 48, 44, 48, 44, 49, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 50, 93, 32, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 97, 100, 105, 117, 115, 44, 36, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 44, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 62, 48, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 91, 45, 50, 93, 32, 36, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 66, 108, 101, 110, 100, 95, 115, 111, 102, 116, 95, 108, 105, 103, 104, 116, 95, 79, 112, 97, 99, 105, 116, 121, 44, 36, 66, 108, 101, 110, 100, 95, 115, 111, 102, 116, 95, 108, 105, 103, 104, 116, 95, 82, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 10, 9, 9, 10, 9, 9, 9, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 111, 117, 98, 108, 101, 95, 101, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 97, 100, 105, 117, 115, 44, 36, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 44, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 78, 111, 105, 115, 101, 95, 116, 121, 112, 101, 44, 36, 78, 111, 105, 115, 101, 95, 67, 104, 97, 110, 110, 101, 108, 44, 36, 86, 97, 108, 117, 101, 95, 114, 97, 110, 103, 101, 10, 9, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 44, 48, 44, 55, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 108, 111, 99, 97, 108, 95, 111, 114, 105, 101, 110, 116, 97, 116, 105, 111, 110, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 48, 48, 44, 48, 44, 49, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 82, 97, 100, 105, 117, 115, 44, 36, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 44, 36, 76, 111, 99, 97, 108, 95, 110, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 62, 48, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 91, 45, 49, 93, 32, 36, 98, 111, 111, 115, 116, 95, 102, 97, 100, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 9, 10, 9, 10, 9, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 44, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 80, 97, 105, 110, 116, 105, 110, 103, 32, 45, 32, 80, 97, 105, 110, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 104, 97, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 77, 111, 114, 112, 104, 111, 32, 45, 32, 77, 111, 114, 112, 104, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 53, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 83, 113, 117, 97, 114, 101, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 97, 108, 34, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 97, 110, 97, 117, 120, 32, 47, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 67, 97, 114, 116, 111, 111, 110, 32, 45, 32, 67, 97, 114, 116, 111, 111, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 110, 118, 101, 114, 115, 101, 114, 32, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 45, 32, 78, 101, 103, 97, 116, 105, 118, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 114, 32, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 105, 120, 92, 51, 48, 51, 92, 50, 53, 49, 108, 105, 115, 101, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 105, 120, 101, 108, 105, 115, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 47, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 32, 58, 10, 9, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 36, 49, 10, 9, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 61, 36, 50, 10, 9, 67, 111, 108, 111, 114, 61, 36, 51, 10, 9, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 52, 10, 9, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 61, 36, 53, 10, 9, 65, 99, 116, 105, 111, 110, 61, 36, 54, 10, 9, 83, 105, 122, 101, 61, 36, 55, 10, 9, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 61, 36, 56, 10, 9, 83, 104, 97, 112, 101, 61, 36, 57, 10, 9, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 61, 36, 49, 48, 10, 9, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 49, 10, 9, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 50, 10, 9, 84, 104, 114, 101, 115, 104, 111, 108, 100, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 51, 10, 9, 84, 104, 105, 99, 107, 110, 101, 115, 115, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 52, 10, 9, 67, 111, 108, 111, 114, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 53, 10, 9, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 95, 99, 97, 114, 116, 111, 111, 110, 61, 36, 49, 54, 10, 9, 78, 101, 103, 97, 116, 105, 102, 61, 36, 49, 55, 10, 9, 80, 105, 120, 101, 108, 105, 115, 101, 114, 61, 36, 49, 56, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 45, 105, 102, 32, 123, 36, 80, 105, 120, 101, 108, 105, 115, 101, 114, 61, 61, 49, 125, 10, 9, 9, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 9, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 9, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 32, 50, 48, 37, 44, 50, 48, 37, 10, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 105, 109, 60, 48, 125, 10, 9, 9, 9, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 9, 9, 9, 45, 101, 108, 105, 102, 32, 123, 105, 77, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 32, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 105, 109, 60, 48, 125, 10, 9, 9, 9, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 9, 9, 9, 45, 101, 108, 105, 102, 32, 123, 105, 77, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 45, 99, 32, 48, 44, 50, 53, 53, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 10, 45, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 9, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 36, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 44, 36, 67, 111, 108, 111, 114, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 10, 9, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 91, 45, 49, 93, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 10, 45, 45, 99, 97, 114, 116, 111, 111, 110, 91, 45, 49, 93, 32, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 99, 97, 114, 116, 111, 111, 110, 44, 36, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 95, 99, 97, 114, 116, 111, 111, 110, 44, 36, 84, 104, 114, 101, 115, 104, 111, 108, 100, 95, 99, 97, 114, 116, 111, 111, 110, 44, 36, 84, 104, 105, 99, 107, 110, 101, 115, 115, 95, 99, 97, 114, 116, 111, 111, 110, 44, 36, 67, 111, 108, 111, 114, 95, 99, 97, 114, 116, 111, 111, 110, 44, 36, 81, 117, 97, 110, 116, 105, 122, 97, 116, 105, 111, 110, 95, 99, 97, 114, 116, 111, 111, 110, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 50, 44, 45, 49, 93, 10, 45, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 48, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 78, 101, 103, 97, 116, 105, 102, 61, 61, 49, 125, 10, 9, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 77, 101, 116, 97, 108, 108, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 9, 10, 9, 10, 9, 10, 35, 64, 103, 105, 109, 112, 32, 67, 111, 117, 114, 98, 101, 115, 32, 102, 101, 114, 109, 101, 101, 115, 32, 32, 47, 32, 67, 108, 111, 115, 101, 100, 32, 99, 117, 114, 118, 101, 115, 32, 40, 86, 49, 41, 58, 32, 115, 97, 109, 106, 95, 99, 111, 117, 114, 98, 101, 115, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 44, 32, 115, 97, 109, 106, 95, 99, 111, 117, 114, 98, 101, 115, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 114, 98, 101, 115, 32, 102, 101, 114, 109, 92, 51, 48, 51, 92, 50, 53, 49, 101, 115, 32, 47, 32, 67, 108, 111, 115, 101, 100, 32, 99, 117, 114, 118, 101, 115, 92, 114, 92, 110, 88, 45, 89, 32, 123, 80, 97, 114, 97, 109, 101, 116, 114, 101, 49, 43, 123, 99, 111, 115, 45, 115, 105, 110, 84, 42, 80, 97, 114, 97, 109, 101, 116, 114, 101, 50, 125, 42, 123, 80, 97, 114, 97, 109, 101, 116, 114, 101, 52, 43, 123, 99, 111, 115, 45, 115, 105, 110, 84, 42, 80, 97, 114, 97, 109, 101, 116, 114, 101, 51, 125, 125, 125, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 48, 44, 48, 46, 48, 49, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 54, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 32, 49, 32, 47, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 32, 50, 32, 47, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 32, 51, 32, 47, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 32, 51, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 32, 52, 32, 47, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 32, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 105, 111, 110, 32, 40, 115, 105, 110, 47, 99, 111, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 83, 97, 110, 115, 32, 47, 32, 87, 105, 116, 104, 111, 117, 116, 32, 45, 32, 84, 121, 112, 101, 32, 49, 34, 44, 34, 65, 118, 101, 99, 32, 47, 32, 87, 105, 116, 104, 32, 45, 32, 84, 121, 112, 101, 32, 49, 34, 44, 34, 83, 97, 110, 115, 32, 47, 32, 87, 105, 116, 104, 111, 117, 116, 32, 45, 32, 84, 121, 112, 101, 32, 50, 34, 44, 34, 65, 118, 101, 99, 32, 47, 32, 87, 105, 116, 104, 32, 45, 32, 84, 121, 112, 101, 32, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 114, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 111, 105, 110, 116, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 34, 44, 34, 76, 105, 103, 110, 101, 115, 32, 47, 32, 76, 105, 110, 101, 115, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 101, 114, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 43, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 61, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 101, 114, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 43, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 32, 50, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 43, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 101, 114, 32, 50, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 43, 32, 76, 105, 103, 110, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 43, 32, 76, 105, 110, 101, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 43, 32, 76, 105, 103, 110, 101, 115, 32, 50, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 43, 32, 76, 105, 110, 101, 115, 32, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 101, 114, 109, 101, 114, 32, 99, 111, 117, 114, 98, 101, 32, 47, 32, 67, 108, 111, 115, 101, 32, 99, 117, 114, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 32, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 49, 32, 47, 32, 67, 111, 108, 111, 114, 32, 49, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 55, 50, 44, 56, 48, 44, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 50, 32, 47, 32, 67, 111, 108, 111, 114, 32, 50, 32, 61, 32, 99, 111, 108, 111, 114, 40, 56, 48, 44, 56, 48, 44, 49, 55, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 100, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 111, 116, 97, 116, 105, 111, 110, 32, 40, 100, 101, 103, 46, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 48, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 99, 111, 117, 114, 98, 101, 115, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 97, 110, 103, 108, 101, 61, 36, 51, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 36, 52, 10, 9, 100, 105, 109, 101, 110, 115, 105, 111, 110, 61, 36, 53, 10, 9, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 61, 36, 54, 10, 9, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 61, 36, 55, 10, 9, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 61, 36, 56, 10, 9, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 61, 36, 57, 10, 9, 73, 110, 118, 101, 114, 115, 105, 111, 110, 61, 36, 49, 48, 10, 9, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 36, 49, 49, 10, 9, 70, 101, 114, 109, 101, 114, 95, 99, 111, 117, 114, 98, 101, 61, 36, 49, 50, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 61, 36, 49, 51, 10, 9, 35, 35, 32, 65, 84, 84, 69, 78, 84, 73, 79, 78, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 36, 49, 52, 44, 36, 49, 53, 44, 36, 49, 54, 32, 117, 116, 105, 108, 105, 115, -23, 101, 115, 32, 43, 32, 108, 111, 105, 110, 32, 100, 97, 110, 115, 32, 108, 101, 32, 115, 99, 114, 105, 112, 116, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 52, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 53, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 54, 9, 10, 9, 35, 35, 32, 65, 84, 84, 69, 78, 84, 73, 79, 78, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 36, 49, 55, 44, 36, 49, 56, 44, 36, 49, 57, 32, 117, 116, 105, 108, 105, 115, -23, 101, 115, 32, 43, 32, 108, 111, 105, 110, 32, 100, 97, 110, 115, 32, 108, 101, 32, 115, 99, 114, 105, 112, 116, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 55, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 56, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 57, 10, 9, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 50, 48, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 50, 49, 10, 9, 82, 111, 116, 97, 116, 105, 111, 110, 61, 36, 50, 50, 10, 9, 97, 108, 112, 104, 97, 61, 36, 50, 51, 10, 9, 115, 112, 114, 101, 97, 100, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 61, 36, 50, 52, 10, 9, 102, 108, 111, 117, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 61, 36, 50, 53, 10, 9, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 61, 36, 50, 54, 10, 9, 116, 104, 101, 116, 97, 61, 48, 10, 9, 88, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 89, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 9, 10, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 10, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 45, 105, 102, 32, 123, 36, 97, 108, 112, 104, 97, 61, 61, 49, 125, 32, 9, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 9, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 105, 111, 110, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 105, 111, 110, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 49, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 50, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 42, 123, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 52, 43, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 80, 97, 114, 97, 109, 101, 116, 114, 101, 95, 51, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 125, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 52, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 52, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 52, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 53, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 53, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 53, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 54, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 55, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 56, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 57, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 109, -23, 109, 111, 114, 105, 115, 101, 114, 32, 108, 39, 111, 114, 105, 103, 105, 110, 101, 32, 112, 111, 117, 114, 32, 98, 111, 117, 99, 108, 101, 114, 32, 40, 79, 112, 116, 105, 111, 110, 32, 112, 111, 117, 114, 32, 102, 101, 114, 109, 101, 114, 32, 99, 111, 117, 114, 98, 101, 41, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 88, 10, 9, 9, 9, 9, 9, 9, 89, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 89, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 98, 111, 117, 99, 108, 101, 95, 49, 61, 36, 88, 10, 9, 9, 9, 9, 9, 9, 89, 95, 98, 111, 117, 99, 108, 101, 95, 49, 61, 36, 89, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 105, 110, 116, 32, 36, 88, 44, 36, 89, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 50, 125, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 32, 43, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 32, 43, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 101, 110, 116, 114, 101, 32, 50, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 53, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 32, 43, 32, 99, 101, 114, 99, 108, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 54, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 32, 43, 32, 99, 101, 114, 99, 108, 101, 115, 32, 50, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 55, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 10, 9, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 88, 10, 9, 9, 9, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 89, 10, 9, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 116, 104, 101, 116, 97, 60, 123, 36, 97, 110, 103, 108, 101, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 70, 101, 114, 109, 101, 114, 95, 99, 111, 117, 114, 98, 101, 61, 61, 49, 125, 9, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 52, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 52, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 52, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 53, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 53, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 53, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 54, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 55, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 56, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 57, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 61, 36, 49, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 50, 125, 9, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 44, 36, 89, 44, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 32, 43, 32, 99, 101, 114, 99, 108, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 54, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 44, 36, 89, 44, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 108, 105, 103, 110, 101, 115, 32, 43, 32, 99, 101, 114, 99, 108, 101, 115, 32, 50, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 55, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 115, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 49, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 44, 36, 89, 44, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 98, 111, 117, 99, 108, 101, 95, 49, 44, 36, 89, 95, 98, 111, 117, 99, 108, 101, 95, 49, 44, 36, 88, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 89, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 50, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 111, 116, 97, 116, 101, 32, 36, 82, 111, 116, 97, 116, 105, 111, 110, 10, 9, 45, 98, 108, 117, 114, 32, 36, 102, 108, 111, 117, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 10, 9, 45, 115, 112, 114, 101, 97, 100, 32, 36, 115, 112, 114, 101, 97, 100, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 10, 9, 45, 100, 101, 102, 111, 114, 109, 32, 36, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 99, 111, 117, 114, 98, 101, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 9, 10, 115, 97, 109, 106, 95, 99, 111, 117, 114, 98, 101, 115, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 99, 111, 117, 114, 98, 101, 115, 95, 102, 101, 114, 109, 101, 101, 115, 95, 86, 49, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 67, 111, 117, 114, 98, 101, 115, 32, 102, 101, 114, 109, -23, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 111, 117, 108, 101, 117, 114, 115, 95, 80, 115, 121, 99, 104, 101, 100, 101, 108, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 10, 9, 10, 35, 64, 103, 105, 109, 112, 32, 67, 114, 97, 105, 101, 32, 115, 117, 114, 32, 116, 97, 98, 108, 101, 97, 117, 32, 110, 111, 105, 114, 32, 47, 32, 67, 104, 97, 108, 107, 32, 111, 110, 32, 98, 108, 97, 99, 107, 98, 111, 97, 114, 100, 32, 32, 58, 32, 115, 97, 109, 106, 95, 99, 114, 97, 105, 101, 95, 115, 117, 114, 95, 116, 97, 98, 108, 101, 97, 117, 95, 110, 111, 105, 114, 44, 32, 115, 97, 109, 106, 95, 99, 114, 97, 105, 101, 95, 115, 117, 114, 95, 116, 97, 98, 108, 101, 97, 117, 95, 110, 111, 105, 114, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 82, 101, 103, 114, 111, 117, 112, 101, 109, 101, 110, 116, 32, 100, 101, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 32, 101, 116, 32, 115, 97, 109, 106, 95, 99, 104, 97, 108, 107, 105, 116, 117, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 105, 110, 116, 40, 49, 55, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 49, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 105, 110, 116, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 32, 115, 104, 97, 100, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 77, 111, 114, 112, 104, 111, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 99, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 53, 44, 34, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 69, 114, 111, 115, 105, 111, 110, 34, 44, 34, 68, 105, 108, 97, 116, 105, 111, 110, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 44, 34, 79, 114, 105, 103, 105, 110, 97, 108, 32, 45, 32, 79, 112, 101, 110, 105, 110, 103, 34, 44, 34, 67, 108, 111, 115, 105, 110, 103, 32, 45, 32, 79, 114, 105, 103, 105, 110, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 116, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 112, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 114, 101, 97, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 57, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 50, 50, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 99, 114, 97, 105, 101, 95, 115, 117, 114, 95, 116, 97, 98, 108, 101, 97, 117, 95, 110, 111, 105, 114, 32, 58, 10, 110, 101, 116, 116, 101, 116, 101, 61, 36, 49, 10, 100, 101, 116, 97, 105, 108, 61, 36, 50, 10, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 61, 36, 51, 10, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 61, 36, 52, 10, 67, 111, 108, 111, 114, 61, 36, 53, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 54, 10, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 61, 36, 55, 10, 65, 99, 116, 105, 111, 110, 61, 36, 56, 10, 83, 105, 122, 101, 61, 36, 57, 10, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 61, 36, 49, 48, 10, 83, 104, 97, 112, 101, 61, 36, 49, 49, 10, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 61, 36, 49, 50, 10, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 51, 10, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 52, 10, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 53, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 10, 9, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 43, 49, 48, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 49, 48, 48, 48, 125, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 49, 43, 48, 46, 56, 125, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 50, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 50, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 52, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 51, 43, 49, 48, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 56, 48, 44, 36, 110, 101, 116, 116, 101, 116, 101, 49, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 53, 44, 49, 44, 49, 10, 9, 9, 45, 110, 32, 49, 50, 55, 44, 50, 53, 53, 10, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 50, 10, 9, 9, 45, 99, 97, 114, 116, 111, 111, 110, 32, 36, 100, 101, 116, 97, 105, 108, 44, 36, 110, 101, 116, 116, 101, 116, 101, 51, 44, 51, 48, 44, 48, 46, 49, 56, 44, 48, 46, 55, 53, 44, 50, 53, 54, 10, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 9, 9, 10, 9, 9, 10, 9, 9, 45, 103, 105, 109, 112, 95, 112, 97, 105, 110, 116, 105, 110, 103, 32, 36, 65, 98, 115, 116, 114, 97, 99, 116, 105, 111, 110, 44, 36, 68, 101, 116, 97, 105, 108, 115, 95, 115, 99, 97, 108, 101, 44, 36, 67, 111, 108, 111, 114, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 104, 97, 114, 112, 101, 110, 95, 115, 104, 97, 100, 101, 115, 32, 45, 103, 105, 109, 112, 95, 109, 111, 114, 112, 104, 111, 32, 36, 65, 99, 116, 105, 111, 110, 44, 36, 83, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 116, 95, 99, 111, 108, 111, 114, 115, 44, 36, 83, 104, 97, 112, 101, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 109, 111, 114, 112, 104, 111, 44, 48, 32, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 115, 97, 109, 106, 95, 99, 114, 97, 105, 101, 95, 115, 117, 114, 95, 116, 97, 98, 108, 101, 97, 117, 95, 110, 111, 105, 114, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 99, 114, 97, 105, 101, 95, 115, 117, 114, 95, 116, 97, 98, 108, 101, 97, 117, 95, 110, 111, 105, 114, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 10, 9, 10, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 105, 110, 32, 67, 114, 97, 105, 101, 32, 115, 117, 114, 32, 116, 97, 98, 108, 101, 97, 117, 32, 110, 111, 105, 114, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 83, 112, 105, 114, 97, 108, 101, 115, 32, 112, 108, 101, 105, 110, 101, 115, 32, 32, 115, 97, 109, 106, 95, 115, 112, 105, 40, 120, 41, 95, 103, 105, 109, 112, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 110, 105, 109, 32, 84, 101, 120, 116, 117, 114, 101, 32, 58, 32, 68, 101, 110, 105, 109, 95, 115, 97, 109, 106, 44, 32, 68, 101, 110, 105, 109, 95, 115, 97, 109, 106, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 84, 101, 120, 116, 117, 114, 101, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 109, 111, 116, 105, 102, 32, 98, 97, 115, 101, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 108, 97, 116, 97, 116, 105, 111, 110, 32, 109, 111, 116, 105, 102, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 116, 111, 117, 114, 110, 101, 114, 32, 109, 111, 116, 105, 102, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 49, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 50, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 105, 109, 32, 91, 98, 114, 117, 105, 116, 93, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 115, 117, 114, 101, 32, 91, 98, 114, 117, 105, 116, 93, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 108, 101, 117, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 68, 101, 110, 105, 109, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 52, 51, 44, 49, 48, 56, 44, 49, 50, 54, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 85, 115, 117, 114, 101, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 77, 111, 100, 101, 32, 100, 101, 32, 115, 111, 114, 116, 105, 101, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 114, 92, 51, 48, 51, 92, 50, 53, 49, 101, 114, 32, 117, 110, 32, 110, 111, 117, 118, 101, 97, 117, 32, 99, 97, 108, 113, 117, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 68, 101, 110, 105, 109, 95, 115, 97, 109, 106, 32, 58, 10, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 61, 36, 49, 10, 68, 105, 108, 97, 116, 97, 116, 105, 111, 110, 61, 36, 50, 10, 82, 101, 116, 111, 117, 114, 110, 101, 114, 95, 109, 111, 116, 105, 102, 61, 36, 51, 10, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 49, 61, 36, 52, 10, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 50, 61, 36, 53, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 114, 117, 105, 116, 61, 36, 54, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 114, 117, 105, 116, 95, 50, 61, 36, 55, 10, 78, 101, 116, 116, 101, 116, 101, 61, 36, 56, 10, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 61, 36, 57, 10, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 61, 36, 49, 48, 10, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 61, 36, 49, 49, 10, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 61, 36, 49, 50, 10, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 61, 36, 49, 51, 10, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 61, 36, 49, 52, 10, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 61, 36, 49, 53, 10, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 61, 36, 49, 54, 10, 67, 114, 101, 101, 114, 95, 117, 110, 95, 110, 111, 117, 118, 101, 97, 117, 95, 99, 97, 108, 113, 117, 101, 61, 36, 49, 55, 10, 9, 76, 97, 114, 103, 101, 117, 114, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 61, 123, 104, 125, 10, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 68, 101, 110, 105, 109, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 114, 117, 105, 116, 44, 48, 44, 55, 44, 48, 10, 9, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 49, 44, 52, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 116, 111, 117, 114, 110, 101, 114, 95, 109, 111, 116, 105, 102, 61, 61, 48, 125, 10, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 111, 116, 105, 102, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 10, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 68, 105, 108, 97, 116, 97, 116, 105, 111, 110, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 45, 119, 97, 116, 101, 114, 91, 45, 49, 93, 32, 123, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 49, 47, 49, 48, 48, 48, 125, 44, 123, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 50, 47, 49, 48, 48, 125, 10, 9, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 114, 117, 105, 116, 95, 50, 44, 48, 44, 50, 50, 44, 48, 10, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 85, 115, 117, 114, 101, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 78, 101, 116, 116, 101, 116, 101, 10, 9, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 50, 44, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 67, 114, 101, 101, 114, 95, 117, 110, 95, 110, 111, 117, 118, 101, 97, 117, 95, 99, 97, 108, 113, 117, 101, 61, 61, 48, 125, 10, 9, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 68, 101, 110, 105, 109, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 78, 67, 73, 69, 78, 78, 69, 83, 32, 70, 79, 78, 67, 84, 73, 79, 78, 83, 32, 86, 69, 82, 83, 73, 79, 78, 32, 49, 53, 51, 48, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 66, 121, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 32, 77, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 115, 97, 109, 106, 32, 40, 97, 106, 111, 117, 116, 32, 95, 49, 53, 51, 48, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 108, 112, 104, 97, 32, 98, 108, 101, 110, 100, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 93, 32, 123, 97, 49, 61, 33, 40, 64, 123, 45, 50, 44, 115, 125, 37, 50, 41, 59, 97, 50, 61, 33, 40, 115, 37, 50, 41, 59, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 45, 97, 49, 44, 115, 45, 97, 50, 41, 43, 97, 49, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 123, 97, 61, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 59, 97, 43, 40, 97, 37, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 61, 61, 50, 124, 124, 64, 123, 45, 50, 44, 115, 125, 61, 61, 52, 125, 10, 45, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 93, 32, 45, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 123, 115, 45, 49, 125, 44, 123, 115, 45, 49, 125, 32, 45, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 10, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 118, 101, 114, 97, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 54, 32, 45, 43, 32, 50, 53, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 97, 114, 107, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 105, 110, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 98, 115, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 105, 118, 105, 100, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 111, 100, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 50, 53, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 123, 36, 49, 62, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 101, 100, 103, 101, 32, 109, 111, 100, 101, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 48, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 47, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 118, 32, 43, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 45, 49, 50, 56, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 102, 97, 100, 105, 110, 103, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 51, 10, 45, 114, 91, 49, 45, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 45, 45, 91, 45, 49, 93, 32, 36, 62, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 102, 114, 101, 101, 122, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 103, 114, 97, 105, 110, 32, 101, 120, 116, 114, 97, 99, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 32, 49, 50, 56, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 103, 114, 97, 105, 110, 32, 109, 101, 114, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 49, 50, 56, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 104, 97, 114, 100, 32, 108, 105, 103, 104, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 103, 101, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 50, 56, 32, 45, 45, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 104, 117, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 32, 48, 46, 48, 49, 50, 50, 55, 49, 56, 52, 54, 32, 45, 99, 111, 115, 32, 45, 47, 32, 45, 52, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 32, 48, 46, 53, 32, 45, 42, 32, 50, 53, 54, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 105, 103, 104, 116, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 97, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 109, 101, 100, 105, 97, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 122, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 122, 120, 121, 99, 32, 45, 115, 32, 121, 44, 45, 54, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 49, 48, 48, 37, 44, 123, 119, 42, 49, 48, 48, 125, 37, 10, 45, 115, 32, 122, 32, 45, 109, 101, 100, 105, 97, 110, 32, 123, 119, 125, 32, 119, 61, 123, 119, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 45, 114, 32, 49, 44, 123, 104, 47, 36, 119, 125, 32, 45, 97, 32, 122, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 121, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 121, 122, 120, 99, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 110, 101, 103, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 97, 98, 115, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 111, 118, 101, 114, 108, 97, 121, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 103, 101, 91, 45, 50, 93, 32, 49, 50, 56, 10, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 50, 56, 32, 45, 45, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 114, 101, 102, 108, 101, 99, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 108, 112, 104, 97, 32, 98, 108, 101, 110, 100, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 45, 45, 49, 58, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 53, 54, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 104, 97, 112, 101, 32, 97, 118, 101, 114, 97, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 45, 49, 93, 32, 48, 32, 110, 98, 61, 123, 105, 77, 43, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 94, 48, 93, 32, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 110, 98, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 110, 98, 42, 50, 53, 54, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 110, 98, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 10, 45, 47, 91, 48, 93, 32, 50, 53, 54, 32, 45, 97, 91, 94, 48, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 36, 109, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 111, 102, 116, 32, 108, 105, 103, 104, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 47, 32, 50, 53, 54, 32, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 50, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 54, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 116, 97, 109, 112, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 50, 44, 50, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 120, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 120, 111, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 36, 49, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 114, 118, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 97, 118, 101, 114, 97, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 99, 111, 108, 111, 114, 98, 117, 114, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 100, 97, 114, 107, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 100, 105, 118, 105, 100, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 100, 111, 100, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 51, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 52, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 36, 49, 48, 34, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 36, 49, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 123, 45, 40, 64, 35, 45, 50, 41, 42, 36, 51, 125, 44, 123, 40, 64, 35, 45, 50, 41, 42, 40, 49, 43, 36, 51, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 123, 36, 50, 42, 40, 49, 43, 36, 51, 41, 42, 40, 64, 35, 45, 50, 41, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 118, 91, 94, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 49, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 97, 61, 36, 49, 42, 112, 105, 47, 50, 59, 32, 120, 42, 99, 111, 115, 40, 97, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 97, 41, 34, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 50, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 51, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 48, 46, 48, 49, 43, 36, 51, 47, 50, 125, 32, 45, 99, 111, 115, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 97, 100, 101, 52, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 40, 40, 120, 45, 119, 42, 40, 36, 49, 43, 48, 46, 53, 41, 41, 42, 40, 121, 45, 104, 42, 40, 36, 50, 43, 48, 46, 53, 41, 41, 41, 37, 40, 48, 46, 50, 42, 119, 42, 104, 42, 40, 49, 46, 48, 48, 49, 43, 36, 51, 41, 41, 34, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 102, 114, 101, 101, 122, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 104, 117, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 108, 105, 103, 104, 116, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 110, 101, 103, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 111, 118, 101, 114, 108, 97, 121, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 114, 101, 102, 108, 101, 99, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 115, 99, 114, 101, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 51, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 109, 118, 91, 48, 93, 32, 64, 35, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 115, 116, 97, 109, 112, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 118, 97, 108, 117, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 32, 120, 111, 114, 44, 36, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 65, 78, 67, 73, 69, 78, 78, 69, 83, 32, 70, 79, 78, 67, 84, 73, 79, 78, 83, 32, 86, 69, 82, 83, 73, 79, 78, 32, 49, 53, 51, 48, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 66, 121, 32, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 101, 32, 77, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 115, 97, 109, 106, 32, 40, 97, 106, 111, 117, 116, 32, 95, 49, 53, 51, 48, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 78, 111, 105, 115, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 115, 115, 105, 110, 101, 114, 32, 117, 110, 101, 32, 101, 116, 111, 105, 108, 101, 32, 47, 32, 68, 114, 97, 119, 32, 97, 32, 115, 116, 97, 114, 32, 58, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 101, 116, 111, 105, 108, 101, 44, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 101, 116, 111, 105, 108, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 92, 51, 48, 51, 92, 50, 53, 49, 116, 111, 105, 108, 101, 115, 32, 47, 32, 115, 116, 97, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 115, 111, 109, 109, 101, 116, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 55, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 79, 117, 116, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 53, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 73, 110, 110, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 57, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 112, 111, 105, 110, 116, 101, 115, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 111, 105, 110, 116, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 111, 105, 110, 116, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 112, 111, 105, 110, 116, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 99, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 47, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 100, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 101, 116, 111, 105, 108, 101, 58, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 123, 36, 50, 47, 49, 48, 48, 42, 123, 119, 43, 36, 53, 125, 125, 45, 36, 53, 125, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 123, 36, 51, 47, 49, 48, 48, 42, 123, 104, 43, 36, 53, 125, 125, 45, 36, 53, 125, 10, 9, 97, 108, 112, 104, 97, 61, 36, 51, 52, 10, 9, 70, 108, 111, 117, 95, 101, 116, 111, 105, 108, 101, 61, 36, 51, 54, 10, 9, 83, 112, 114, 101, 97, 100, 95, 101, 116, 111, 105, 108, 101, 61, 36, 51, 55, 10, 9, 68, 101, 102, 111, 114, 109, 95, 101, 116, 111, 105, 108, 101, 61, 36, 51, 56, 10, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 51, 57, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 48, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 9, 9, 10, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 36, 53, 32, 9, 9, 9, 35, 35, 32, 101, 120, 32, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 61, 36, 49, 10, 9, 9, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 54, 9, 35, 35, 32, 101, 120, 32, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 52, 10, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 36, 55, 10, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 36, 56, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 36, 57, 10, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 49, 48, 10, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 49, 49, 10, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 49, 50, 10, 9, 9, 9, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 36, 49, 51, 10, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 52, 10, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 53, 10, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 54, 10, 9, 9, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 53, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 56, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 49, 57, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 48, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 49, 10, 9, 9, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 9, 9, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 50, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 51, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 52, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 53, 10, 9, 9, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 53, 9, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 54, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 50, 55, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 50, 56, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 50, 57, 10, 9, 9, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 9, 9, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 48, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 50, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 51, 10, 9, 9, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 53, 9, 9, 9, 9, 35, 35, 32, 101, 120, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 49, 55, 9, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 45, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 44, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 44, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 44, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 9, 9, 35, 35, 32, 105, 110, 99, 108, 117, 114, 101, 32, 108, 39, -23, 116, 111, 105, 108, 101, 32, 100, 97, 110, 115, 32, 108, 39, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 10, 9, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, -55, 116, 111, 105, 108, 101, 115, 32, 47, 32, 83, 116, 97, 114, 115, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 47, 32, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 115, 115, 105, 110, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 32, 50, 32, 47, 32, 68, 114, 97, 119, 32, 97, 32, 102, 108, 111, 119, 101, 114, 32, 50, 58, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 95, 50, 44, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 95, 50, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 105, 114, 97, 108, 101, 32, 47, 32, 83, 112, 105, 114, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 54, 46, 48, 56, 44, 49, 44, 51, 53, 57, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 110, 115, 32, 100, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 47, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 111, 102, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 49, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 49, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 50, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 50, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 51, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 51, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 52, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 52, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 101, 117, 114, 32, 45, 32, 80, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 45, 32, 80, 101, 116, 97, 108, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 49, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 112, 101, 116, 97, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 49, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 51, 48, 44, 50, 51, 54, 44, 50, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 99, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 50, 48, 56, 44, 51, 54, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 50, 48, 56, 44, 51, 54, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 50, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 50, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 95, 50, 32, 58, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 9, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 10, 9, 9, 35, 32, 115, 112, 105, 114, 97, 108, 101, 10, 9, 116, 111, 117, 114, 115, 61, 36, 51, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 36, 52, 10, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 36, 53, 10, 9, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 54, 10, 9, 9, 35, 32, 112, -23, 116, 97, 108, 101, 115, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 55, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 56, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 57, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 36, 49, 48, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 49, 49, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 36, 49, 50, 10, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 51, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 52, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 53, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 54, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 55, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 56, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 57, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 48, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 49, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 50, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 51, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 52, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 53, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 55, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 56, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 57, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 48, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 50, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 51, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 52, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 54, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 55, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 56, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 57, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 49, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 50, 10, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 51, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 36, 52, 52, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 36, 52, 53, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 52, 54, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 100, 105, 118, 101, 114, 115, 9, 10, 9, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 95, 50, 61, 36, 52, 55, 9, 10, 9, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 95, 50, 61, 36, 52, 56, 9, 10, 9, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 95, 50, 61, 36, 52, 57, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 53, 48, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 53, 49, 10, 9, 35, 35, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 45, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 116, 111, 117, 114, 115, 44, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 44, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 44, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 45, 123, 119, 47, 50, 125, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 45, 123, 104, 47, 50, 125, 125, 10, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 9, 9, 35, 35, 32, 105, 110, 99, 108, 117, 114, 101, 32, 108, 97, 32, 102, 108, 101, 117, 114, 32, 100, 97, 110, 115, 32, 108, 39, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 10, 9, 45, 114, 109, 91, 45, 49, 93, 9, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 95, 50, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 95, 50, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 95, 50, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 70, 108, 101, 117, 114, 115, 32, 47, 32, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 67, 111, 117, 114, 98, 101, 115, 32, 102, 101, 114, 109, -23, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 9, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 115, 115, 105, 110, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 32, 47, 32, 68, 114, 97, 119, 32, 97, 32, 102, 108, 111, 119, 101, 114, 32, 58, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 44, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 101, 117, 114, 32, 45, 32, 80, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 45, 32, 80, 101, 116, 97, 108, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 101, 116, 97, 108, 115, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 50, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 39, 82, 97, 121, 111, 110, 39, 32, 100, 101, 32, 108, 97, 32, 102, 108, 101, 117, 114, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 39, 114, 97, 100, 105, 117, 115, 39, 32, 61, 32, 105, 110, 116, 40, 52, 48, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 50, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 50, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 99, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 48, 48, 44, 49, 48, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 48, 48, 44, 49, 48, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 47, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 100, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 9, 9, 9, 9, 9, 9, 10, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 101, 95, 102, 108, 101, 117, 114, 58, 10, 9, 10, 9, 35, 35, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 36, 50, 47, 49, 48, 48, 42, 119, 125, 10, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 36, 51, 47, 49, 48, 48, 42, 104, 125, 9, 10, 9, 97, 108, 112, 104, 97, 61, 36, 51, 57, 10, 9, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 61, 36, 52, 49, 10, 9, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 61, 36, 52, 50, 10, 9, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 61, 36, 52, 51, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 52, 52, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 53, 9, 10, 9, 9, 10, 9, 35, 35, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 123, 50, 42, 36, 53, 125, 10, 9, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 52, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 36, 54, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 36, 55, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 56, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 57, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 49, 48, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 36, 49, 49, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 49, 50, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 36, 49, 51, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 52, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 53, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 54, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 55, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 52, 48, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 57, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 48, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 49, 9, 9, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 50, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 52, 48, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 51, 9, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 52, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 53, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 52, 48, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 55, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 56, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 57, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 48, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 49, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 50, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 51, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 52, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 52, 48, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 53, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 54, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 55, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 56, 10, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 49, 56, 10, 9, 35, 35, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 45, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 45, 123, 119, 47, 50, 125, 125, 10, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 45, 123, 104, 47, 50, 125, 125, 9, 10, 9, 10, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 9, 9, 35, 35, 32, 105, 110, 99, 108, 117, 114, 101, 32, 108, 97, 32, 102, 108, 101, 117, 114, 32, 100, 97, 110, 115, 32, 108, 39, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 10, 9, 10, 9, 45, 114, 109, 91, 45, 49, 93, 9, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 68, 101, 115, 115, 105, 110, 101, 114, 32, 117, 110, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 47, 32, 68, 114, 97, 119, 32, 97, 32, 112, 111, 108, 121, 103, 111, 110, 32, 58, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 95, 112, 111, 108, 121, 103, 111, 110, 101, 44, 32, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 111, 108, 121, 103, 111, 110, 101, 32, 47, 32, 80, 111, 108, 121, 103, 111, 110, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 99, 92, 51, 48, 51, 92, 50, 54, 52, 116, 92, 51, 48, 51, 92, 50, 53, 49, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 105, 100, 101, 115, 32, 61, 32, 105, 110, 116, 40, 53, 44, 51, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 32, 47, 32, 67, 105, 114, 99, 117, 109, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 53, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 73, 110, 110, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 99, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 47, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 100, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 57, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 95, 112, 111, 108, 121, 103, 111, 110, 101, 58, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 61, 36, 49, 10, 9, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 123, 36, 50, 47, 49, 48, 48, 42, 119, 125, 10, 9, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 123, 36, 51, 47, 49, 48, 48, 42, 104, 125, 10, 9, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 52, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 53, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 47, 49, 48, 48, 42, 36, 54, 125, 41, 125, 10, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 55, 10, 9, 9, 35, 35, 32, 65, 84, 84, 69, 78, 84, 73, 79, 78, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 117, 116, 105, 108, 105, 115, -23, 101, 115, 32, 43, 32, 108, 111, 105, 110, 32, 100, 97, 110, 115, 32, 108, 101, 32, 115, 99, 114, 105, 112, 116, 9, 10, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 56, 10, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 57, 10, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 48, 10, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 49, 10, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 50, 10, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 51, 10, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 52, 10, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 53, 10, 9, 9, 35, 35, 32, 65, 84, 84, 69, 78, 84, 73, 79, 78, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 36, 49, 54, 44, 36, 49, 55, 44, 36, 49, 56, 32, 117, 116, 105, 108, 105, 115, -23, 101, 115, 32, 43, 32, 108, 111, 105, 110, 32, 100, 97, 110, 115, 32, 108, 101, 32, 115, 99, 114, 105, 112, 116, 9, 10, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 54, 10, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 55, 10, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 56, 10, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 57, 10, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 48, 10, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 49, 10, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 50, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 50, 51, 9, 9, 10, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 52, 10, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 53, 10, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 55, 10, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 56, 10, 9, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 57, 10, 9, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 48, 10, 9, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 50, 10, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 51, 10, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 52, 10, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 10, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 54, 10, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 55, 10, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 56, 10, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 57, 10, 9, 9, 97, 108, 112, 104, 97, 61, 36, 52, 48, 10, 9, 9, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 52, 49, 10, 9, 9, 70, 108, 111, 117, 95, 112, 111, 108, 121, 103, 111, 110, 101, 61, 36, 52, 50, 10, 9, 9, 83, 112, 114, 101, 97, 100, 95, 112, 111, 108, 121, 103, 111, 110, 101, 61, 36, 52, 51, 10, 9, 9, 68, 101, 102, 111, 114, 109, 95, 112, 111, 108, 121, 103, 111, 110, 101, 61, 36, 52, 52, 10, 9, 9, 45, 105, 102, 32, 123, 36, 97, 108, 112, 104, 97, 61, 61, 48, 125, 32, 9, 10, 9, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 9, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 48, 44, 49, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 35, 35, 32, 80, 111, 108, 121, 103, 111, 110, 101, 115, 10, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 10, 9, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 10, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 32, 117, 110, 105, 101, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 111, 105, 110, 116, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 111, 105, 110, 116, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 105, 110, 99, 114, -23, 109, 101, 110, 116, 101, 114, 32, 108, 101, 115, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 32, 100, 101, 32, 112, 111, 115, 105, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 32, 100, 101, 115, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 112, 111, 108, 121, 103, 111, 110, 101, 32, -32, 32, 108, 97, 32, 102, 105, 110, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 84, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 108, 121, 103, 111, 110, 101, 115, 32, 43, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 44, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 44, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 44, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 44, 36, 80, 111, 105, 110, 116, 115, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 68, -23, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 32, 101, 110, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 50, 32, 112, 111, 105, 110, 116, 115, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 50, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, -32, 32, 108, 97, 32, 102, 105, 110, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 68, -23, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 32, 101, 110, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 10, 9, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 56, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 57, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 57, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 48, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 48, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 48, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 54, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 54, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 55, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 49, 56, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 56, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 50, 32, 112, 111, 105, 110, 116, 115, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 50, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 53, 44, 53, 44, 48, 44, 49, 44, 49, 50, 55, 44, 49, 50, 55, 44, 49, 50, 55, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, -32, 32, 108, 97, 32, 102, 105, 110, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 116, 101, 115, 125, 125, 10, 9, 9, 9, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 45, 49, 125, 10, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 45, 98, 108, 117, 114, 32, 36, 70, 108, 111, 117, 95, 112, 111, 108, 121, 103, 111, 110, 101, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 32, 36, 83, 112, 114, 101, 97, 100, 95, 112, 111, 108, 121, 103, 111, 110, 101, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 32, 36, 68, 101, 102, 111, 114, 109, 95, 112, 111, 108, 121, 103, 111, 110, 101, 9, 9, 9, 9, 9, 9, 9, 10, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 95, 112, 111, 108, 121, 103, 111, 110, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 100, 101, 115, 115, 105, 110, 101, 114, 95, 117, 110, 95, 112, 111, 108, 121, 103, 111, 110, 101, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 47, 32, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, 70, 108, 101, 117, 114, 115, 32, 47, 32, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 69, 116, 111, 105, 108, 101, 32, 100, 101, 32, 80, 111, 109, 112, 101, 105, 32, 58, 32, 101, 116, 111, 105, 108, 101, 95, 100, 101, 95, 112, 111, 109, 112, 101, 105, 95, 115, 97, 109, 106, 44, 32, 101, 116, 111, 105, 108, 101, 95, 100, 101, 95, 112, 111, 109, 112, 101, 105, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 54, 52, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 32, 49, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 51, 53, 44, 49, 49, 56, 44, 49, 48, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 32, 50, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 56, 49, 44, 49, 51, 53, 44, 57, 57, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 32, 51, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 56, 51, 44, 49, 52, 48, 44, 49, 48, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 32, 52, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 52, 52, 44, 49, 50, 52, 44, 49, 48, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 82, 86, 66, 32, 47, 32, 82, 71, 66, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 99, 101, 114, 99, 108, 101, 32, 47, 32, 70, 105, 108, 108, 32, 99, 105, 114, 99, 108, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 105, 108, 116, 114, 101, 115, 32, 45, 32, 70, 105, 108, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 105, 111, 110, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 101, 116, 111, 105, 108, 101, 95, 100, 101, 95, 112, 111, 109, 112, 101, 105, 95, 115, 97, 109, 106, 32, 58, 10, 9, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 119, 125, 42, 123, 36, 49, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 104, 125, 42, 123, 36, 50, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 51, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 61, 36, 52, 10, 9, 35, 99, 97, 114, 114, -23, 115, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 36, 53, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 36, 54, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 36, 55, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 36, 56, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 36, 57, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 36, 49, 48, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 36, 49, 49, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 36, 49, 50, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 36, 49, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 36, 49, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 36, 49, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 36, 49, 54, 10, 9, 35, 99, 101, 114, 99, 108, 101, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 36, 49, 55, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 36, 49, 56, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 36, 49, 57, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 36, 50, 48, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 50, 49, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 61, 36, 50, 50, 10, 9, 118, 97, 108, 101, 117, 114, 95, 115, 112, 114, 101, 97, 100, 61, 36, 50, 51, 10, 9, 102, 108, 111, 117, 61, 36, 50, 52, 10, 9, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 50, 53, 9, 10, 9, 35, 35, 66, 108, 101, 110, 100, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 54, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 55, 10, 9, 105, 110, 118, 101, 114, 116, 61, 36, 50, 56, 10, 9, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 9, 10, 9, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 10, 9, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 50, 61, 123, 123, 123, 50, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 125, 45, 123, 50, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 49, 53, 48, 41, 125, 125, 125, 94, 48, 46, 53, 125, 10, 9, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 61, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 42, 123, 51, 94, 48, 46, 53, 125, 125, 125, 10, 9, 35, 97, 110, 103, 108, 101, 115, 32, 100, 101, 103, 114, -23, 115, 10, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 61, 123, 48, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 10, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 61, 123, 54, 48, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 10, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 51, 95, 99, 97, 114, 114, 101, 61, 123, 52, 53, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 9, 9, 10, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 52, 95, 99, 97, 114, 114, 101, 61, 123, 49, 53, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 10, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 53, 95, 116, 114, 105, 97, 110, 103, 108, 101, 61, 123, 51, 48, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 35, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 52, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 44, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 52, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 52, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 52, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 52, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 44, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 44, 48, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 51, 10, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 54, 10, 9, 9, 9, 9, 35, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 51, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 51, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 52, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 52, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 49, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 49, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 49, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 49, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 53, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 53, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 53, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 53, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 53, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 53, 95, 89, 125, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 50, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 50, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 50, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 50, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 54, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 54, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 54, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 54, 95, 89, 125, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 51, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 55, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 112, 111, 105, 110, 116, 55, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 55, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 55, 95, 89, 125, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 51, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 51, 10, 9, 9, 10, 9, 9, 9, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 61, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 49, 95, 99, 97, 114, 114, 101, 43, 54, 48, 125, 10, 9, 9, 9, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 61, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 50, 95, 99, 97, 114, 114, 101, 43, 54, 48, 125, 10, 9, 9, 9, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 51, 95, 99, 97, 114, 114, 101, 61, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 51, 95, 99, 97, 114, 114, 101, 43, 54, 48, 125, 10, 9, 9, 9, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 52, 95, 99, 97, 114, 114, 101, 61, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 52, 95, 99, 97, 114, 114, 101, 43, 54, 48, 125, 10, 9, 9, 9, 9, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 53, 95, 116, 114, 105, 97, 110, 103, 108, 101, 61, 123, 36, 100, 101, 112, 104, 97, 115, 97, 103, 101, 95, 112, 111, 105, 110, 116, 53, 95, 116, 114, 105, 97, 110, 103, 108, 101, 43, 54, 48, 125, 10, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 118, 97, 108, 101, 117, 114, 95, 115, 112, 114, 101, 97, 100, 10, 9, 9, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 102, 108, 111, 117, 10, 9, 9, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 9, 10, 9, 9, 35, 35, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 35, 35, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 82, 97, 121, 111, 110, 95, 67, 101, 114, 99, 108, 101, 95, 51, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, -55, 116, 111, 105, 108, 101, 32, 100, 101, 32, 80, 111, 109, 112, -23, -17, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 114, 97, 109, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 32, 58, 32, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 44, 32, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 67, 111, 108, 111, 114, 98, 117, 114, 110, 34, 44, 34, 83, 111, 102, 116, 108, 105, 103, 104, 116, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 101, 116, 101, 99, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 111, 114, 105, 103, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 46, 53, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 55, 53, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 71, 114, 105, 122, 111, 117, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 111, 117, 103, 101, 47, 82, 101, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 86, 101, 114, 116, 47, 71, 114, 101, 101, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 117, 47, 66, 108, 117, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 43, 86, 43, 66, 32, 47, 32, 82, 43, 71, 43, 66, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 55, 54, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 55, 54, 53, 44, 48, 44, 55, 54, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 110, 118, 101, 114, 115, 101, 114, 32, 47, 32, 73, 110, 118, 101, 114, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 114, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 32, 58, 10, 9, 82, 101, 110, 100, 117, 61, 36, 49, 10, 9, 10, 9, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 50, 10, 9, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 61, 36, 51, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 10, 9, 35, 35, 32, 71, 114, 105, 122, 111, 117, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 65, 61, 36, 53, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 66, 61, 36, 54, 10, 9, 9, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 55, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 67, 61, 36, 56, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 68, 61, 36, 57, 10, 9, 9, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 69, 61, 36, 49, 49, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 70, 61, 36, 49, 50, 10, 9, 9, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 51, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 71, 61, 36, 49, 52, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 72, 61, 36, 49, 53, 9, 10, 9, 9, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 54, 9, 10, 9, 73, 110, 118, 101, 114, 115, 101, 114, 61, 36, 49, 55, 10, 9, 70, 108, 111, 117, 61, 36, 49, 56, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 125, 32, 9, 9, 35, 35, 32, 109, 111, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 44, 32, 99, 111, 117, 112, 101, 114, 32, 112, 111, 117, 114, 32, -23, 118, 105, 116, 101, 114, 32, 108, 101, 115, 32, 97, 114, 116, 101, 102, 97, 99, 116, 115, 32, 108, 111, 114, 115, 32, 100, 101, 32, 108, 97, 32, 114, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 32, 72, 83, 76, 32, 45, 62, 32, 82, 71, 66, 9, 10, 9, 9, 9, 75, 95, 105, 109, 95, 73, 77, 61, 49, 54, 10, 9, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 73, 77, 65, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 77, 125, 45, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 73, 77, 73, 78, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 109, 125, 43, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 73, 77, 65, 88, 62, 50, 53, 53, 125, 32, 73, 77, 65, 88, 61, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 73, 77, 73, 78, 60, 48, 125, 32, 73, 77, 73, 78, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 36, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 125, 10, 9, 9, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 48, 10, 9, 9, 45, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 48, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 69, 44, 36, 86, 97, 108, 101, 117, 114, 95, 70, 44, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 71, 44, 36, 86, 97, 108, 101, 117, 114, 95, 72, 44, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 101, 114, 61, 61, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 125, 32, 45, 99, 91, 45, 49, 44, 45, 50, 93, 32, 36, 73, 77, 73, 78, 44, 36, 73, 77, 65, 88, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 49, 44, 49, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 32, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 123, 36, 73, 77, 73, 78, 125, 45, 123, 36, 73, 77, 65, 88, 125, 44, 49, 44, 48, 44, 49, 51, 44, 49, 44, 49, 44, 50, 53, 53, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 105, 115, 32, 71, 114, 101, 121, 32, 67, 97, 110, 97, 108, 32, 89, 32, 58, 32, 71, 114, 105, 115, 95, 89, 95, 115, 97, 109, 106, 44, 32, 71, 114, 105, 115, 95, 89, 95, 115, 97, 109, 106, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 67, 97, 110, 97, 108, 32, 89, 32, 100, 101, 32, 89, 85, 86, 32, 32, 45, 32, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 102, 114, 46, 119, 105, 107, 105, 112, 101, 100, 105, 97, 46, 111, 114, 103, 47, 119, 105, 107, 105, 47, 89, 85, 86, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 101, 110, 46, 119, 105, 107, 105, 112, 101, 100, 105, 97, 46, 111, 114, 103, 47, 119, 105, 107, 105, 47, 89, 85, 86, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 56, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 71, 114, 105, 115, 95, 89, 95, 115, 97, 109, 106, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 52, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 71, 114, 105, 115, 95, 89, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 88, 89, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 71, 114, 105, 122, 111, 117, 32, 58, 32, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 44, 32, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 92, 51, 48, 51, 92, 50, 53, 49, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 47, 100, 101, 99, 111, 109, 112, 111, 115, 101, 32, 99, 104, 97, 110, 110, 101, 108, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 82, 86, 66, 47, 82, 71, 66, 34, 44, 34, 88, 89, 90, 32, 56, 34, 44, 34, 72, 83, 86, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 86, 34, 44, 34, 72, 83, 76, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 76, 34, 44, 34, 72, 83, 73, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 73, 34, 44, 34, 89, 85, 86, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 89, 34, 44, 34, 89, 67, 98, 67, 114, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 89, 34, 44, 34, 76, 97, 98, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 76, 34, 44, 34, 76, 67, 72, 32, 56, 32, 58, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 76, 34, 44, 34, 67, 77, 89, 75, 32, 58, 32, 78, 101, 103, 97, 116, 105, 102, 32, 67, 97, 110, 97, 108, 47, 67, 104, 97, 110, 110, 101, 108, 32, 75, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 97, 110, 97, 108, 45, 67, 104, 97, 110, 110, 101, 108, 32, 58, 32, 82, 111, 117, 103, 101, 47, 82, 101, 100, 32, 45, 32, 88, 32, 45, 32, 86, 32, 45, 32, 76, 32, 45, 32, 73, 32, 45, 32, 89, 32, 45, 32, 75, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 97, 110, 97, 108, 45, 67, 104, 97, 110, 110, 101, 108, 32, 58, 32, 86, 101, 114, 116, 47, 71, 114, 101, 101, 110, 32, 45, 32, 89, 91, 120, 121, 122, 93, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 97, 110, 97, 108, 45, 67, 104, 97, 110, 110, 101, 108, 32, 58, 32, 66, 108, 101, 117, 47, 66, 108, 117, 101, 32, 45, 32, 90, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 43, 86, 43, 66, 47, 82, 43, 71, 43, 66, 32, 45, 32, 88, 43, 89, 43, 90, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 55, 54, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 86, 97, 108, 101, 117, 114, 32, 50, 32, 61, 32, 105, 110, 116, 40, 55, 54, 53, 44, 48, 44, 55, 54, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 50, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 32, 58, 10, 9, 9, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 36, 49, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 65, 61, 36, 50, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 66, 61, 36, 51, 10, 9, 9, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 52, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 67, 61, 36, 53, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 68, 61, 36, 54, 10, 9, 9, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 55, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 69, 61, 36, 56, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 70, 61, 36, 57, 10, 9, 9, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 71, 61, 36, 49, 49, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 72, 61, 36, 49, 50, 9, 10, 9, 9, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 51, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 35, 32, 82, 86, 66, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 51, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 51, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 51, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 118, 101, 114, 116, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 67, 62, 36, 86, 97, 108, 101, 117, 114, 95, 68, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 50, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 50, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 98, 108, 101, 117, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 69, 62, 36, 86, 97, 108, 101, 117, 114, 95, 70, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 70, 44, 36, 86, 97, 108, 101, 117, 114, 95, 69, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 69, 44, 36, 86, 97, 108, 101, 117, 114, 95, 70, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 116, 101, 115, 116, 32, 9, 9, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 9, 9, 9, 9, 35, 82, 43, 86, 43, 66, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 71, 62, 36, 86, 97, 108, 101, 117, 114, 95, 72, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 72, 44, 36, 86, 97, 108, 101, 117, 114, 95, 71, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 71, 44, 36, 86, 97, 108, 101, 117, 114, 95, 72, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 88, 89, 90, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 120, 121, 122, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 88, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 51, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 51, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 51, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 118, 101, 114, 116, 32, 89, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 67, 62, 36, 86, 97, 108, 101, 117, 114, 95, 68, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 50, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 50, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 50, 93, 32, 48, 44, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 98, 108, 101, 117, 32, 90, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 69, 62, 36, 86, 97, 108, 101, 117, 114, 95, 70, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 70, 44, 36, 86, 97, 108, 101, 117, 114, 95, 69, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 69, 44, 36, 86, 97, 108, 101, 117, 114, 95, 70, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 116, 101, 115, 116, 32, 9, 9, 45, 97, 112, 112, 101, 110, 100, 32, 99, 10, 9, 9, 9, 9, 35, 82, 43, 86, 43, 66, 32, 88, 43, 89, 43, 90, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 71, 62, 36, 86, 97, 108, 101, 117, 114, 95, 72, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 72, 44, 36, 86, 97, 108, 101, 117, 114, 95, 71, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 71, 44, 36, 86, 97, 108, 101, 117, 114, 95, 72, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 86, 32, 40, 72, 83, 86, 32, 56, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 50, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 104, 115, 118, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 86, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 76, 32, 40, 72, 83, 76, 32, 56, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 51, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 104, 115, 108, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 76, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 73, 32, 40, 72, 83, 73, 32, 56, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 52, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 104, 115, 105, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 50, 44, 45, 51, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 73, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 89, 32, 40, 89, 85, 86, 32, 56, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 53, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 121, 117, 118, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 89, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 89, 32, 40, 89, 67, 98, 67, 114, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 54, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 89, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 76, 32, 40, 76, 97, 98, 41, 32, 32, 32, 91, 32, 61, 32, 32, 32, 67, 97, 110, 97, 108, 32, 76, 32, 40, 76, 67, 72, 41, 32, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 55, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 76, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 76, 32, 40, 76, 67, 72, 41, 32, 32, 32, 91, 32, 61, 32, 32, 32, 67, 97, 110, 97, 108, 32, 76, 32, 40, 76, 97, 98, 41, 32, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 56, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 114, 103, 98, 50, 108, 99, 104, 56, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 76, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 35, 32, 67, 97, 110, 97, 108, 32, 75, 32, 40, 67, 77, 89, 75, 41, 10, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 68, 101, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 61, 61, 57, 125, 10, 9, 9, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 115, 112, 108, 105, 116, 91, 45, 49, 93, 32, 99, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 50, 44, 45, 51, 44, 45, 52, 44, 45, 53, 93, 10, 9, 9, 9, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 9, 9, 9, 35, 114, 111, 117, 103, 101, 32, 99, 97, 110, 97, 108, 32, 75, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 10, 35, 64, 103, 105, 109, 112, 32, 72, 97, 114, 100, 32, 115, 107, 101, 116, 99, 104, 32, 88, 89, 32, 58, 32, 88, 89, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 115, 97, 109, 106, 44, 32, 88, 89, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 115, 97, 109, 106, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 72, 97, 114, 100, 32, 83, 107, 101, 116, 99, 104, 32, 66, 87, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 89, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 48, 44, 48, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 97, 115, 116, 32, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 97, 108, 113, 117, 101, 115, 32, 47, 32, 76, 97, 121, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 98, 46, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 49, 32, 58, 32, 88, 89, 34, 44, 34, 50, 32, 58, 32, 88, 89, 32, 43, 32, 72, 97, 114, 100, 32, 83, 107, 101, 116, 99, 104, 32, 66, 87, 32, 78, 111, 114, 109, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 104, 97, 114, 112, 101, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 99, 116, 97, 118, 101, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 32, 47, 32, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 47, 32, 70, 105, 108, 108, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 88, 89, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 115, 97, 109, 106, 32, 58, 10, 88, 89, 61, 36, 49, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 50, 10, 68, 101, 110, 115, 105, 116, 121, 61, 36, 51, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 52, 10, 79, 112, 97, 99, 105, 116, 121, 61, 36, 53, 10, 69, 100, 103, 101, 61, 36, 54, 10, 70, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 61, 36, 55, 10, 78, 101, 103, 97, 116, 105, 118, 101, 61, 36, 56, 10, 67, 97, 108, 113, 117, 101, 115, 61, 36, 57, 10, 79, 99, 116, 97, 118, 101, 95, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 61, 36, 49, 48, 10, 82, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 36, 49, 49, 10, 86, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 36, 49, 50, 10, 66, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 36, 49, 51, 10, 65, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 61, 36, 49, 52, 10, 82, 101, 109, 112, 108, 105, 114, 61, 36, 49, 53, 10, 9, 76, 97, 114, 103, 101, 117, 114, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 61, 123, 104, 125, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 61, 61, 49, 125, 9, 9, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 44, 36, 86, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 44, 36, 66, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 44, 36, 65, 95, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 67, 97, 108, 113, 117, 101, 115, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 62, 36, 72, 97, 117, 116, 101, 117, 114, 125, 10, 9, 9, 71, 114, 97, 110, 100, 101, 95, 100, 105, 109, 101, 110, 115, 105, 111, 110, 61, 123, 36, 76, 97, 114, 103, 101, 117, 114, 42, 49, 46, 53, 125, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 71, 114, 97, 110, 100, 101, 95, 100, 105, 109, 101, 110, 115, 105, 111, 110, 61, 123, 36, 72, 97, 117, 116, 101, 117, 114, 42, 49, 46, 53, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 79, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 36, 71, 114, 97, 110, 100, 101, 95, 100, 105, 109, 101, 110, 115, 105, 111, 110, 125, 45, 36, 76, 97, 114, 103, 101, 117, 114, 125, 47, 50, 125, 41, 125, 10, 9, 79, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 36, 71, 114, 97, 110, 100, 101, 95, 100, 105, 109, 101, 110, 115, 105, 111, 110, 125, 45, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 50, 125, 41, 125, 10, 9, 45, 101, 120, 112, 97, 110, 100, 95, 120, 91, 45, 49, 93, 32, 36, 79, 114, 105, 103, 105, 110, 101, 95, 88, 44, 50, 10, 9, 45, 101, 120, 112, 97, 110, 100, 95, 121, 91, 45, 49, 93, 32, 36, 79, 114, 105, 103, 105, 110, 101, 95, 89, 44, 50, 10, 9, 45, 116, 119, 105, 114, 108, 91, 45, 49, 93, 32, 36, 88, 89, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 10, 9, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 68, 101, 110, 115, 105, 116, 121, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 79, 112, 97, 99, 105, 116, 121, 44, 36, 69, 100, 103, 101, 44, 36, 70, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 44, 36, 78, 101, 103, 97, 116, 105, 118, 101, 10, 9, 45, 116, 119, 105, 114, 108, 91, 45, 49, 93, 32, 45, 36, 88, 89, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 10, 9, 45, 101, 120, 112, 97, 110, 100, 95, 120, 91, 45, 50, 93, 32, 36, 79, 114, 105, 103, 105, 110, 101, 95, 88, 44, 50, 10, 9, 45, 101, 120, 112, 97, 110, 100, 95, 121, 91, 45, 50, 93, 32, 36, 79, 114, 105, 103, 105, 110, 101, 95, 89, 44, 50, 10, 9, 45, 116, 119, 105, 114, 108, 91, 45, 50, 93, 32, 45, 36, 88, 89, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 10, 9, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 50, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 68, 101, 110, 115, 105, 116, 121, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 79, 112, 97, 99, 105, 116, 121, 44, 36, 69, 100, 103, 101, 44, 36, 70, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 44, 36, 78, 101, 103, 97, 116, 105, 118, 101, 10, 9, 45, 116, 119, 105, 114, 108, 91, 45, 50, 93, 32, 36, 88, 89, 44, 48, 46, 53, 44, 48, 46, 53, 44, 49, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 36, 79, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 79, 114, 105, 103, 105, 110, 101, 95, 89, 44, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 79, 114, 105, 103, 105, 110, 101, 95, 88, 45, 49, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 43, 36, 79, 114, 105, 103, 105, 110, 101, 95, 89, 45, 49, 125, 10, 9, 45, 105, 102, 32, 123, 36, 79, 99, 116, 97, 118, 101, 95, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 61, 61, 49, 125, 9, 10, 9, 9, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 95, 111, 99, 116, 97, 118, 101, 32, 52, 44, 53, 44, 51, 44, 48, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 97, 108, 113, 117, 101, 115, 61, 61, 49, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 91, 45, 50, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 68, 101, 110, 115, 105, 116, 121, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 79, 112, 97, 99, 105, 116, 121, 44, 36, 69, 100, 103, 101, 44, 36, 70, 97, 115, 116, 95, 97, 112, 112, 114, 111, 120, 105, 109, 97, 116, 105, 111, 110, 44, 36, 78, 101, 103, 97, 116, 105, 118, 101, 10, 9, 9, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 88, 89, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 32, 58, 32, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 44, 32, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 101, 110, 46, 119, 105, 107, 105, 112, 101, 100, 105, 97, 46, 111, 114, 103, 47, 119, 105, 107, 105, 47, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 67, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 68, 105, 108, 97, 116, 101, 32, 80, 105, 120, 101, 108, 115, 41, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 48, 44, 50, 44, 51, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 49, 34, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 53, 32, 76, 69, 78, 84, 32, 47, 32, 83, 76, 79, 87, 34, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 49, 48, 32, 84, 82, 69, 83, 32, 76, 69, 78, 84, 32, 47, 32, 86, 69, 82, 89, 32, 83, 76, 79, 87, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 84, 101, 109, 112, 115, 32, 47, 32, 84, 105, 109, 101, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 91, 42, 49, 48, 48, 48, 48, 93, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 48, 44, 49, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 109, 112, 108, 105, 116, 117, 100, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 114, 92, 51, 48, 51, 92, 50, 53, 49, 113, 117, 101, 110, 99, 101, 32, 47, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 104, 97, 115, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 55, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 109, 111, 114, 116, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 68, 97, 109, 112, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 114, 116, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 114, 116, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 114, 116, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 111, 114, 116, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 54, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 55, 10, 9, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 61, 36, 56, 10, 9, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 57, 10, 9, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 49, 48, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 61, 36, 49, 49, 10, 9, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 61, 36, 49, 50, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 61, 36, 49, 51, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 61, 36, 49, 52, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 61, 36, 49, 53, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 61, 36, 49, 54, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 61, 36, 49, 55, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 61, 36, 49, 56, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 61, 36, 49, 57, 10, 9, 80, 104, 97, 115, 101, 49, 61, 36, 50, 48, 10, 9, 80, 104, 97, 115, 101, 50, 61, 36, 50, 49, 10, 9, 80, 104, 97, 115, 101, 51, 61, 36, 50, 50, 10, 9, 80, 104, 97, 115, 101, 52, 61, 36, 50, 51, 10, 9, 65, 109, 111, 114, 116, 49, 61, 36, 50, 52, 10, 9, 65, 109, 111, 114, 116, 50, 61, 36, 50, 53, 10, 9, 65, 109, 111, 114, 116, 51, 61, 36, 50, 54, 10, 9, 65, 109, 111, 114, 116, 52, 61, 36, 50, 55, 10, 9, 10, 9, 9, 9, 35, 35, 32, 100, 105, 118, 101, 114, 115, 10, 9, 70, 108, 111, 117, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 61, 36, 50, 56, 10, 9, 83, 112, 114, 101, 97, 100, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 61, 36, 50, 57, 10, 9, 68, 101, 102, 111, 114, 109, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 61, 36, 51, 48, 10, 9, 98, 108, 101, 110, 100, 61, 36, 51, 49, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 51, 50, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 116, 101, 109, 112, 115, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 47, 49, 48, 48, 48, 48, 125, 10, 9, 80, 104, 97, 115, 101, 49, 61, 123, 36, 80, 104, 97, 115, 101, 49, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 50, 61, 123, 36, 80, 104, 97, 115, 101, 50, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 51, 61, 123, 36, 80, 104, 97, 115, 101, 51, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 52, 61, 123, 36, 80, 104, 97, 115, 101, 52, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 45, 105, 102, 32, 123, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 48, 125, 10, 9, 9, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 123, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 53, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 49, 125, 41, 125, 42, 123, 101, 120, 112, 40, 123, 45, 36, 65, 109, 111, 114, 116, 49, 42, 36, 116, 101, 109, 112, 115, 125, 41, 125, 125, 43, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 50, 125, 41, 125, 42, 123, 101, 120, 112, 40, 123, 45, 36, 65, 109, 111, 114, 116, 50, 42, 36, 116, 101, 109, 112, 115, 125, 41, 125, 125, 125, 125, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 51, 125, 41, 125, 42, 123, 101, 120, 112, 40, 123, 45, 36, 65, 109, 111, 114, 116, 51, 42, 36, 116, 101, 109, 112, 115, 125, 41, 125, 125, 43, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 52, 125, 41, 125, 42, 123, 101, 120, 112, 40, 123, 45, 36, 65, 109, 111, 114, 116, 52, 42, 36, 116, 101, 109, 112, 115, 125, 41, 125, 125, 125, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 62, 49, 125, 10, 9, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 10, 9, 9, 116, 101, 109, 112, 115, 61, 123, 36, 116, 101, 109, 112, 115, 43, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 125, 10, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 45, 100, 111, 110, 101, 10, 9, 45, 105, 102, 32, 123, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 62, 48, 125, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 35, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 44, 49, 48, 44, 49, 48, 44, 54, 52, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 32, 58, 32, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 44, 32, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 101, 108, 101, 99, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 108, 101, 114, 97, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 61, 32, 105, 110, 116, 40, 49, 50, 55, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 32, 47, 32, 71, 61, 32, 105, 110, 116, 40, 49, 50, 55, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 61, 32, 105, 110, 116, 40, 49, 50, 55, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 73, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 73, 73, 32, 67, 111, 108, 111, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 49, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 50, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 114, 32, 47, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 50, 47, 49, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 32, 58, 10, 9, 9, 84, 111, 108, 101, 114, 97, 110, 99, 101, 95, 83, 67, 61, 36, 49, 10, 9, 9, 82, 95, 83, 67, 61, 36, 50, 10, 9, 9, 86, 95, 83, 67, 61, 36, 51, 10, 9, 9, 66, 95, 83, 67, 61, 36, 52, 10, 9, 9, 82, 95, 67, 49, 61, 36, 53, 10, 9, 9, 86, 95, 67, 49, 61, 36, 54, 10, 9, 9, 66, 95, 67, 49, 61, 36, 55, 10, 9, 9, 82, 95, 67, 50, 61, 36, 56, 10, 9, 9, 86, 95, 67, 50, 61, 36, 57, 10, 9, 9, 66, 95, 67, 50, 61, 36, 49, 48, 10, 9, 9, 73, 110, 118, 101, 114, 115, 101, 114, 61, 36, 49, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 9, 45, 115, 101, 108, 101, 99, 116, 95, 99, 111, 108, 111, 114, 32, 36, 84, 111, 108, 101, 114, 97, 110, 99, 101, 95, 83, 67, 44, 36, 82, 95, 83, 67, 44, 36, 86, 95, 83, 67, 44, 36, 66, 95, 83, 67, 10, 9, 9, 45, 110, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 101, 114, 61, 61, 49, 125, 10, 9, 9, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 9, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 36, 82, 95, 67, 49, 44, 36, 86, 95, 67, 49, 44, 36, 66, 95, 67, 49, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 32, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 36, 82, 95, 67, 50, 44, 36, 86, 95, 67, 50, 44, 36, 66, 95, 67, 50, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 112, 111, 117, 114, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, -23, 116, 111, 105, 108, 101, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 10, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 58, 10, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 45, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 36, 49, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 61, 36, 50, 9, 9, 9, 35, 35, 32, 105, 110, 116, 40, 53, 44, 50, 44, 55, 50, 48, 41, 10, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 9, 35, 35, 32, 102, 108, 111, 97, 116, 40, 51, 57, 44, 48, 44, 49, 48, 48, 41, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 52, 9, 9, 9, 35, 35, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 36, 53, 9, 9, 35, 35, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 36, 54, 9, 9, 9, 35, 35, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 36, 55, 9, 9, 9, 9, 35, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 56, 9, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 57, 10, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 49, 48, 10, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 49, 49, 10, 9, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 36, 49, 50, 9, 9, 9, 9, 35, 35, 32, 98, 111, 111, 108, 40, 48, 41, 10, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 51, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 52, 10, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 53, 10, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 49, 54, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 49, 55, 9, 35, 35, 32, 98, 111, 111, 108, 40, 49, 41, 9, 9, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 49, 56, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 49, 57, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 48, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 49, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 50, 9, 35, 35, 32, 98, 111, 111, 108, 40, 48, 41, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 51, 9, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 52, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 53, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 54, 10, 9, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 55, 9, 35, 35, 32, 98, 111, 111, 108, 40, 48, 41, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 50, 56, 9, 9, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 50, 57, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 48, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 49, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 50, 9, 35, 35, 32, 98, 111, 111, 108, 40, 48, 41, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 51, 9, 9, 9, 9, 35, 35, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 52, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 53, 10, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 54, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 51, 55, 9, 9, 35, 35, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 123, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 57, 48, 125, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 45, 50, 46, 53, 125, 47, 50, 125, 41, 125, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 47, 49, 48, 48, 42, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 125, 41, 125, 10, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 49, 44, 52, 10, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 119, 47, 50, 125, 41, 125, 10, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 104, 47, 50, 125, 41, 125, 9, 10, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 115, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 32, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 115, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 123, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 47, 49, 48, 48, 42, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 45, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 125, 125, 10, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 41, 125, 125, 41, 125, 10, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 41, 125, 125, 41, 125, 10, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 125, 10, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 125, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, -55, 116, 111, 105, 108, 101, 115, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 9, 9, 10, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 10, 9, 9, 45, 100, 111, 10, 9, 9, 9, 35, 35, 32, -55, 116, 111, 105, 108, 101, 115, 32, 112, 111, 105, 110, 116, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 35, 35, 32, -55, 116, 111, 105, 108, 101, 115, 32, 112, 111, 105, 110, 116, 115, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 115, 10, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 43, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 99, 111, 115, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 43, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 42, 123, 115, 105, 110, 40, 123, 112, 105, 47, 49, 56, 48, 42, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 45, 123, 49, 56, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 125, 125, 41, 125, 125, 41, 125, 125, 10, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 32, 117, 110, 105, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 48, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 61, 49, 125, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 108, 101, 115, 32, 112, 111, 105, 110, 116, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 49, 44, 36, 88, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 36, 89, 95, 112, 111, 105, 110, 116, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 50, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 125, 125, 10, 9, 9, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 45, 49, 125, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 43, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 70, 73, 78, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 112, 111, 117, 114, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, -23, 116, 111, 105, 108, 101, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 39, -23, 116, 111, 105, 108, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 75, 97, 114, 80, 97, 105, 110, 116, 32, 58, 32, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 44, 32, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 67, 117, 116, 32, 45, 32, 67, 117, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 95, 65, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 95, 66, 32, 61, 32, 105, 110, 116, 40, 49, 55, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 45, 32, 75, 117, 119, 97, 104, 97, 114, 97, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 97, 105, 108, 108, 101, 32, 47, 32, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 71, 105, 109, 112, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 45, 32, 71, 105, 109, 112, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 48, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 32, 58, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 65, 61, 36, 49, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 66, 61, 36, 50, 10, 9, 9, 75, 95, 115, 105, 122, 101, 61, 36, 51, 10, 9, 9, 10, 9, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 36, 75, 95, 115, 105, 122, 101, 32, 45, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 36, 75, 95, 115, 105, 122, 101, 32, 45, 100, 114, 97, 119, 105, 110, 103, 91, 45, 49, 93, 32, 50, 48, 48, 48, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 84, 119, 105, 114, 108, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 77, 97, 115, 113, 117, 101, 115, 32, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 32, 58, 32, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 44, 32, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 70, 111, 114, 109, 101, 32, 49, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 70, 111, 114, 109, 101, 32, 50, 32, 61, 32, 105, 110, 116, 40, 52, 44, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 32, 47, 32, 79, 102, 102, 115, 101, 116, 32, 88, 32, 61, 32, 105, 110, 116, 40, 49, 44, 45, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 32, 47, 32, 79, 102, 102, 115, 101, 116, 32, 89, 32, 61, 32, 105, 110, 116, 40, 49, 44, 45, 49, 44, 49, 50, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 70, 111, 114, 109, 101, 32, 49, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 70, 111, 114, 109, 101, 32, 50, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 114, 109, 101, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 34, 44, 34, 67, 97, 114, 114, 101, 115, 32, 47, 32, 83, 113, 117, 97, 114, 101, 115, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 115, 32, 45, 32, 82, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 32, 38, 32, 114, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 45, 32, 77, 111, 100, 101, 32, 50, 32, 45, 32, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 62, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 45, 32, 77, 111, 100, 101, 32, 50, 32, 45, 32, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 62, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 44, 34, 67, 97, 114, 114, 101, 115, 32, 47, 32, 83, 113, 117, 97, 114, 101, 115, 32, 45, 32, 77, 111, 100, 101, 32, 50, 32, 45, 32, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 62, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 45, 32, 77, 111, 100, 101, 32, 51, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 115, 32, 77, 111, 100, 101, 32, 50, 32, 45, 32, 82, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 32, 38, 32, 114, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 115, 32, 77, 111, 100, 101, 32, 51, 32, 45, 32, 82, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 49, 32, 38, 32, 114, 61, 68, 105, 109, 46, 70, 111, 114, 109, 101, 50, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 82, 86, 66, 32, 47, 32, 82, 71, 66, 34, 44, 34, 82, 86, 66, 65, 32, 47, 82, 71, 66, 65, 34, 44, 34, 78, 105, 118, 101, 97, 117, 120, 32, 100, 101, 32, 71, 114, 105, 115, 32, 47, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 34, 44, 34, 78, 105, 118, 101, 97, 117, 120, 32, 100, 101, 32, 71, 114, 105, 115, 32, 47, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 32, 38, 32, 65, 108, 112, 104, 97, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 47, 32, 65, 108, 116, 101, 114, 110, 97, 116, 101, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 45, 32, 78, 111, 34, 44, 34, 77, 111, 100, 101, 32, 49, 34, 44, 34, 77, 111, 100, 101, 32, 50, 32, 38, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 69, 102, 102, 101, 116, 34, 44, 34, 77, 111, 100, 101, 32, 51, 32, 38, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 69, 102, 102, 101, 116, 34, 44, 34, 86, 32, 67, 111, 117, 108, 101, 117, 114, 115, 47, 67, 111, 108, 111, 114, 115, 32, 38, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 69, 102, 102, 101, 116, 34, 44, 34, 72, 32, 67, 111, 117, 108, 101, 117, 114, 115, 47, 67, 111, 108, 111, 114, 115, 32, 38, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 69, 102, 102, 101, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 116, 101, 114, 110, 101, 114, 32, 69, 102, 102, 101, 116, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 68, 101, 102, 111, 114, 109, 32, 45, 32, 68, 101, 102, 111, 114, 109, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 9, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 83, 109, 111, 111, 116, 104, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 45, 32, 83, 109, 111, 111, 116, 104, 32, 100, 105, 102, 102, 117, 115, 105, 111, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 85, 116, 105, 108, 105, 115, 101, 114, 32, 47, 32, 85, 115, 101, 32, 83, 109, 111, 111, 116, 104, 32, 68, 105, 102, 102, 117, 115, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 110, 115, 111, 114, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 105, 109, 101, 32, 115, 116, 101, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 53, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 92, 51, 48, 51, 92, 50, 53, 49, 115, 117, 108, 116, 97, 116, 32, 45, 32, 82, 101, 115, 117, 108, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 111, 105, 120, 32, 47, 32, 67, 104, 111, 105, 99, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 49, 32, 67, 97, 108, 113, 117, 101, 32, 47, 32, 49, 32, 76, 97, 121, 101, 114, 34, 44, 34, 50, 32, 67, 97, 108, 113, 117, 101, 115, 32, 47, 32, 50, 32, 76, 97, 121, 101, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 61, 36, 49, 10, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 61, 36, 50, 10, 9, 9, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 61, 36, 51, 10, 9, 9, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 89, 61, 36, 52, 10, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 53, 10, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 54, 10, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 55, 10, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 56, 10, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 57, 10, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 49, 48, 10, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 49, 49, 10, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 49, 50, 10, 9, 9, 10, 9, 9, 70, 111, 114, 109, 101, 115, 61, 36, 49, 51, 10, 9, 9, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 52, 9, 9, 10, 9, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 49, 53, 10, 9, 9, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 36, 49, 54, 10, 9, 9, 65, 108, 116, 101, 114, 110, 101, 114, 95, 69, 102, 102, 101, 116, 61, 36, 49, 55, 10, 9, 9, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 49, 56, 10, 9, 9, 10, 9, 9, 85, 116, 105, 108, 105, 115, 101, 114, 95, 83, 109, 111, 111, 116, 104, 95, 68, 105, 102, 102, 117, 115, 105, 111, 110, 61, 36, 49, 57, 10, 9, 9, 83, 68, 95, 83, 104, 97, 114, 112, 110, 101, 115, 115, 61, 36, 50, 48, 10, 9, 9, 83, 68, 95, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 61, 36, 50, 49, 10, 9, 9, 83, 68, 95, 71, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 50, 50, 10, 9, 9, 83, 68, 95, 84, 101, 110, 115, 111, 114, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 50, 51, 10, 9, 9, 83, 68, 95, 84, 105, 109, 101, 95, 115, 116, 101, 112, 61, 36, 50, 52, 10, 9, 9, 83, 68, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 50, 53, 10, 9, 9, 83, 68, 95, 67, 104, 97, 110, 110, 101, 108, 115, 61, 36, 50, 54, 9, 10, 9, 9, 82, 101, 115, 117, 108, 116, 97, 116, 61, 36, 50, 55, 10, 9, 9, 10, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 9, 10, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 61, 123, 119, 125, 10, 9, 9, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 61, 123, 104, 125, 10, 9, 9, 36, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 44, 49, 44, 52, 10, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 68, 101, 112, 97, 115, 115, 101, 109, 101, 110, 116, 61, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 68, 101, 112, 97, 115, 115, 101, 109, 101, 110, 116, 61, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 88, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 89, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 88, 61, 48, 10, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 89, 61, 48, 10, 9, 9, 45, 100, 111, 9, 9, 10, 9, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 89, 37, 36, 65, 108, 116, 101, 114, 110, 101, 114, 95, 69, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 61, 52, 125, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 89, 37, 36, 65, 108, 116, 101, 114, 110, 101, 114, 95, 69, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 9, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 9, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 48, 125, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 44, 48, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 44, 48, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 99, 97, 114, 114, -23, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 32, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 115, 117, 112, 101, 114, 112, 111, 115, -23, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 44, 48, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 44, 48, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 115, 117, 112, 101, 114, 112, 111, 115, -23, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 53, 125, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 99, 97, 114, 114, -23, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 115, 117, 112, 101, 114, 112, 111, 115, -23, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 54, 125, 10, 9, 9, 9, 9, 9, 9, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 52, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 100, 101, 109, 105, 95, 100, 105, 97, 103, 111, 110, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 55, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 52, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 52, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 105, 110, 118, 101, 114, 115, -23, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 115, 117, 112, 101, 114, 112, 111, 115, -23, 115, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 55, 125, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 50, 52, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 56, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 51, 48, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 51, 48, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 54, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 51, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 114, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 99, 105, 114, 99, 111, 110, 115, 99, 114, 105, 116, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 54, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 49, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 49, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 50, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 50, 95, 89, 125, 44, 123, 36, 88, 43, 36, 112, 111, 105, 110, 116, 51, 95, 88, 125, 44, 123, 36, 89, 43, 36, 112, 111, 105, 110, 116, 51, 95, 89, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 32, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 56, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 32, 45, 105, 102, 32, 123, 36, 70, 111, 114, 109, 101, 115, 61, 61, 57, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 54, 48, 125, 44, 49, 44, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 44, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 9, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 49, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 112, 111, 105, 110, 116, 50, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 57, 48, 125, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 123, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 43, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 125, 42, 48, 46, 53, 125, 32, 45, 105, 102, 32, 123, 36, 82, 95, 101, 108, 108, 105, 112, 115, 101, 51, 62, 50, 53, 53, 125, 32, 82, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 36, 82, 95, 101, 108, 108, 105, 112, 115, 101, 51, 45, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 86, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 123, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 43, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 125, 42, 48, 46, 53, 125, 32, 45, 105, 102, 32, 123, 36, 86, 95, 101, 108, 108, 105, 112, 115, 101, 51, 62, 50, 53, 53, 125, 32, 86, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 36, 86, 95, 101, 108, 108, 105, 112, 115, 101, 51, 45, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 66, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 123, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 43, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 125, 42, 48, 46, 53, 125, 32, 45, 105, 102, 32, 123, 36, 66, 95, 101, 108, 108, 105, 112, 115, 101, 51, 62, 50, 53, 53, 125, 32, 66, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 36, 66, 95, 101, 108, 108, 105, 112, 115, 101, 51, 45, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 123, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 43, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 125, 42, 48, 46, 53, 125, 32, 45, 105, 102, 32, 123, 36, 65, 108, 112, 104, 97, 95, 101, 108, 108, 105, 112, 115, 101, 51, 62, 50, 53, 53, 125, 32, 65, 108, 112, 104, 97, 95, 101, 108, 108, 105, 112, 115, 101, 51, 61, 123, 36, 65, 108, 112, 104, 97, 95, 101, 108, 108, 105, 112, 115, 101, 51, 45, 50, 53, 53, 125, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 44, 36, 89, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 44, 123, 36, 97, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 43, 49, 50, 48, 125, 44, 49, 44, 36, 82, 95, 101, 108, 108, 105, 112, 115, 101, 51, 44, 36, 86, 95, 101, 108, 108, 105, 112, 115, 101, 51, 44, 36, 66, 95, 101, 108, 108, 105, 112, 115, 101, 51, 44, 36, 65, 108, 112, 104, 97, 95, 101, 108, 108, 105, 112, 115, 101, 51, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 88, 125, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 88, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 88, 43, 49, 125, 10, 9, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 88, 60, 123, 36, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 43, 36, 68, 101, 112, 97, 115, 115, 101, 109, 101, 110, 116, 125, 125, 10, 9, 9, 9, 88, 61, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 10, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 88, 61, 48, 10, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 89, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 89, 43, 49, 125, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 89, 37, 36, 65, 108, 116, 101, 114, 110, 101, 114, 95, 69, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 89, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 89, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 89, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 89, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 65, 108, 116, 101, 114, 110, 101, 114, 61, 61, 53, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 89, 43, 49, 125, 37, 36, 65, 108, 116, 101, 114, 110, 101, 114, 95, 69, 102, 102, 101, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 82, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 82, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 86, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 86, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 66, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 66, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 50, 61, 36, 65, 108, 112, 104, 97, 95, 70, 105, 103, 117, 114, 101, 95, 49, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 62, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 125, 10, 9, 9, 9, 9, 89, 61, 123, 36, 89, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 49, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 89, 125, 10, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 89, 61, 123, 36, 89, 43, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 102, 111, 114, 109, 101, 95, 50, 42, 50, 125, 43, 36, 67, 111, 109, 112, 101, 110, 115, 97, 116, 105, 111, 110, 95, 89, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 89, 60, 123, 36, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 43, 36, 68, 101, 112, 97, 115, 115, 101, 109, 101, 110, 116, 125, 125, 10, 9, 45, 105, 102, 32, 123, 36, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 62, 48, 125, 9, 9, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 85, 116, 105, 108, 105, 115, 101, 114, 95, 83, 109, 111, 111, 116, 104, 95, 68, 105, 102, 102, 117, 115, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 105, 102, 102, 117, 115, 105, 111, 110, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 83, 68, 95, 83, 104, 97, 114, 112, 110, 101, 115, 115, 44, 36, 83, 68, 95, 65, 110, 105, 115, 111, 116, 114, 111, 112, 121, 44, 36, 83, 68, 95, 71, 114, 97, 100, 105, 101, 110, 116, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 68, 95, 84, 101, 110, 115, 111, 114, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 83, 68, 95, 84, 105, 109, 101, 95, 115, 116, 101, 112, 44, 36, 83, 68, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 44, 36, 83, 68, 95, 67, 104, 97, 110, 110, 101, 108, 115, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 115, 117, 108, 116, 97, 116, 61, 61, 48, 125, 10, 9, 9, 35, 32, 114, -23, 115, 117, 108, 116, 97, 116, 32, 102, 105, 110, 97, 108, 32, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 75, 97, 114, 80, 97, 105, 110, 116, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 77, 111, 115, 97, 105, 113, 117, 101, 32, 49, 32, 58, 32, 109, 111, 115, 97, 105, 113, 117, 101, 95, 49, 95, 98, 97, 108, 108, 101, 115, 95, 115, 97, 109, 106, 44, 32, 109, 111, 115, 97, 105, 113, 117, 101, 95, 49, 95, 98, 97, 108, 108, 101, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 49, 50, 48, 44, 56, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 49, 50, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 49, 48, 44, 50, 49, 48, 44, 50, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 32, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 48, 44, 48, 46, 50, 48, 44, 48, 46, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 32, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 55, 44, 48, 46, 50, 48, 44, 48, 46, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 48, 44, 48, 46, 48, 49, 44, 48, 46, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 56, 44, 48, 46, 48, 49, 44, 48, 46, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 56, 48, 44, 49, 56, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 56, 48, 46, 48, 48, 44, 48, 46, 48, 48, 44, 51, 54, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 99, 97, 108, 97, 103, 101, 32, 88, 32, 67, 111, 110, 116, 111, 117, 114, 32, 61, 32, 105, 110, 116, 40, 45, 49, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 99, 97, 108, 97, 103, 101, 32, 89, 32, 67, 111, 110, 116, 111, 117, 114, 32, 61, 32, 105, 110, 116, 40, 48, 44, 45, 53, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 42, 42, 32, 80, 114, 92, 51, 48, 51, 92, 50, 53, 49, 118, 105, 115, 117, 97, 108, 105, 115, 97, 116, 105, 111, 110, 32, 65, 106, 117, 115, 116, 101, 114, 32, 82, 92, 51, 48, 51, 92, 50, 53, 49, 103, 108, 97, 103, 101, 115, 32, 47, 32, 80, 114, 101, 118, 105, 101, 119, 32, 65, 100, 106, 117, 115, 116, 32, 83, 101, 116, 116, 105, 110, 103, 115, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 110, 100, 32, 47, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 76, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 76, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 92, 51, 48, 51, 92, 50, 53, 49, 115, 117, 108, 116, 97, 116, 32, 102, 105, 110, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 83, 104, 97, 114, 112, 101, 110, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 76, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 76, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 97, 116, 105, 111, 110, 115, 32, 65, 99, 99, 101, 110, 116, 117, 97, 116, 105, 111, 110, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 50, 32, 67, 97, 108, 113, 117, 101, 115, 32, 47, 32, 50, 32, 76, 97, 121, 101, 114, 115, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 77, 111, 100, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 109, 111, 115, 97, 105, 113, 117, 101, 95, 49, 95, 98, 97, 108, 108, 101, 115, 95, 115, 97, 109, 106, 58, 10, 9, 35, 35, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 36, 49, 10, 9, 9, 35, 32, 98, 97, 108, 108, 101, 115, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 61, 36, 50, 10, 9, 82, 95, 66, 97, 108, 108, 101, 61, 36, 51, 10, 9, 86, 95, 66, 97, 108, 108, 101, 61, 36, 52, 10, 9, 66, 95, 66, 97, 108, 108, 101, 61, 36, 53, 10, 9, 88, 95, 108, 105, 103, 104, 116, 61, 36, 54, 10, 9, 89, 95, 108, 105, 103, 104, 116, 61, 36, 55, 10, 9, 88, 95, 114, 97, 100, 105, 117, 115, 61, 36, 56, 10, 9, 89, 95, 114, 97, 100, 105, 117, 115, 61, 36, 57, 10, 9, 82, 95, 108, 105, 103, 104, 116, 61, 36, 49, 48, 10, 9, 71, 95, 108, 105, 103, 104, 116, 61, 36, 49, 49, 10, 9, 66, 95, 108, 105, 103, 104, 116, 61, 36, 49, 50, 10, 9, 70, 108, 111, 117, 95, 98, 97, 108, 108, 101, 61, 36, 49, 51, 10, 9, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 52, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 61, 36, 49, 53, 10, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 67, 111, 110, 116, 111, 117, 114, 61, 36, 49, 54, 10, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 67, 111, 110, 116, 111, 117, 114, 61, 36, 49, 55, 10, 9, 65, 106, 117, 115, 116, 101, 114, 95, 114, 101, 103, 108, 97, 103, 101, 115, 61, 36, 49, 56, 10, 9, 9, 35, 32, 102, 111, 110, 100, 10, 9, 82, 95, 102, 111, 110, 100, 61, 36, 49, 57, 10, 9, 86, 95, 102, 111, 110, 100, 61, 36, 50, 48, 10, 9, 66, 95, 102, 111, 110, 100, 61, 36, 50, 49, 10, 9, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 98, 97, 108, 108, 101, 115, 61, 36, 50, 50, 10, 9, 99, 117, 116, 95, 76, 95, 98, 97, 108, 108, 101, 115, 61, 36, 50, 51, 10, 9, 9, 35, 32, 102, 105, 110, 97, 108, 10, 9, 110, 101, 116, 116, 101, 116, 101, 61, 36, 50, 52, 10, 9, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 102, 105, 110, 97, 108, 61, 36, 50, 53, 10, 9, 99, 117, 116, 95, 76, 95, 102, 105, 110, 97, 108, 61, 36, 50, 54, 10, 9, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 95, 65, 99, 99, 101, 110, 116, 117, 97, 116, 105, 111, 110, 61, 36, 50, 55, 10, 9, 82, 101, 110, 100, 117, 61, 36, 50, 56, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 57, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 62, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 42, 48, 46, 51, 125, 125, 10, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 42, 48, 46, 51, 125, 41, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 123, 36, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 62, 52, 56, 48, 48, 125, 10, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 52, 56, 48, 48, 47, 36, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 125, 41, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 115, 117, 108, 116, 97, 116, 61, 123, 36, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 49, 125, 10, 9, 9, 75, 95, 105, 109, 95, 73, 77, 61, 49, 54, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 73, 77, 65, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 77, 125, 45, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 73, 77, 73, 78, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 109, 125, 43, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 73, 77, 65, 88, 62, 50, 53, 53, 125, 32, 73, 77, 65, 88, 61, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 73, 77, 73, 78, 60, 48, 125, 32, 73, 77, 73, 78, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 65, 106, 117, 115, 116, 101, 114, 95, 114, 101, 103, 108, 97, 103, 101, 115, 61, 61, 48, 125, 10, 9, 9, 45, 105, 102, 32, 123, 123, 119, 125, 62, 123, 104, 125, 125, 9, 10, 9, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 115, 117, 108, 116, 97, 116, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 44, 123, 123, 123, 104, 125, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 115, 117, 108, 116, 97, 116, 47, 123, 119, 125, 125, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 44, 49, 44, 51, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 123, 123, 119, 125, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 115, 117, 108, 116, 97, 116, 47, 123, 104, 125, 125, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 115, 117, 108, 116, 97, 116, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 44, 49, 44, 51, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 105, 109, 60, 48, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 105, 102, 32, 123, 105, 77, 62, 50, 53, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 123, 119, 125, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 44, 123, 123, 104, 125, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 125, 10, 9, 9, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 44, 49, 44, 52, 10, 9, 9, 45, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 36, 82, 95, 66, 97, 108, 108, 101, 44, 36, 86, 95, 66, 97, 108, 108, 101, 44, 36, 66, 95, 66, 97, 108, 108, 101, 44, 36, 88, 95, 108, 105, 103, 104, 116, 44, 36, 89, 95, 108, 105, 103, 104, 116, 44, 36, 88, 95, 114, 97, 100, 105, 117, 115, 44, 36, 89, 95, 114, 97, 100, 105, 117, 115, 44, 36, 82, 95, 108, 105, 103, 104, 116, 44, 36, 71, 95, 108, 105, 103, 104, 116, 44, 36, 66, 95, 108, 105, 103, 104, 116, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 62, 48, 125, 10, 9, 9, 9, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 67, 111, 110, 116, 111, 117, 114, 125, 44, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 67, 111, 110, 116, 111, 117, 114, 125, 44, 123, 123, 119, 125, 45, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 67, 111, 110, 116, 111, 117, 114, 125, 125, 44, 123, 123, 104, 125, 45, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 67, 111, 110, 116, 111, 117, 114, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 62, 48, 125, 10, 9, 9, 9, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 48, 44, 50, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 123, 104, 125, 47, 50, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 49, 44, 51, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 44, 50, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 62, 48, 125, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 82, 95, 102, 111, 110, 100, 43, 36, 86, 95, 102, 111, 110, 100, 43, 36, 66, 95, 102, 111, 110, 100, 125, 62, 48, 125, 10, 9, 9, 9, 9, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 52, 48, 44, 51, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 36, 82, 95, 102, 111, 110, 100, 44, 36, 86, 95, 102, 111, 110, 100, 44, 36, 66, 95, 102, 111, 110, 100, 44, 50, 53, 53, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 98, 97, 108, 108, 101, 115, 33, 61, 49, 50, 56, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 44, 36, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 98, 97, 108, 108, 101, 115, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 49, 44, 48, 44, 48, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 117, 116, 95, 76, 95, 98, 97, 108, 108, 101, 115, 33, 61, 49, 50, 56, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 44, 36, 99, 117, 116, 95, 76, 95, 98, 97, 108, 108, 101, 115, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 98, 97, 108, 108, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 51, 49, 125, 10, 9, 9, 9, 9, 45, 99, 91, 45, 49, 44, 45, 50, 93, 32, 36, 73, 77, 73, 78, 44, 36, 73, 77, 65, 88, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 110, 101, 116, 116, 101, 116, 101, 62, 48, 125, 10, 9, 9, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 110, 101, 116, 116, 101, 116, 101, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 95, 65, 99, 99, 101, 110, 116, 117, 97, 116, 105, 111, 110, 10, 9, 9, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 102, 105, 110, 97, 108, 33, 61, 49, 50, 56, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 44, 36, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 76, 95, 102, 105, 110, 97, 108, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 49, 44, 48, 44, 48, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 117, 116, 95, 76, 95, 102, 105, 110, 97, 108, 33, 61, 49, 50, 56, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 49, 50, 56, 44, 36, 99, 117, 116, 95, 76, 95, 102, 105, 110, 97, 108, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 42, 49, 46, 53, 125, 44, 123, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 42, 49, 46, 53, 125, 44, 49, 44, 51, 10, 9, 9, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 50, 53, 53, 10, 9, 9, 10, 9, 9, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 43, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 125, 44, 49, 44, 52, 10, 9, 9, 45, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 36, 82, 95, 66, 97, 108, 108, 101, 44, 36, 86, 95, 66, 97, 108, 108, 101, 44, 36, 66, 95, 66, 97, 108, 108, 101, 44, 36, 88, 95, 108, 105, 103, 104, 116, 44, 36, 89, 95, 108, 105, 103, 104, 116, 44, 36, 88, 95, 114, 97, 100, 105, 117, 115, 44, 36, 89, 95, 114, 97, 100, 105, 117, 115, 44, 36, 82, 95, 108, 105, 103, 104, 116, 44, 36, 71, 95, 108, 105, 103, 104, 116, 44, 36, 66, 95, 108, 105, 103, 104, 116, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 62, 48, 125, 10, 9, 9, 9, 45, 99, 114, 111, 112, 91, 45, 49, 93, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 67, 111, 110, 116, 111, 117, 114, 125, 44, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 67, 111, 110, 116, 111, 117, 114, 125, 44, 123, 123, 119, 125, 45, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 67, 111, 110, 116, 111, 117, 114, 125, 125, 44, 123, 123, 104, 125, 45, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 98, 97, 108, 108, 101, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 67, 111, 110, 116, 111, 117, 114, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 62, 48, 125, 10, 9, 9, 9, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 48, 44, 50, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 123, 104, 125, 47, 50, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 49, 44, 51, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 40, 32, 77, 111, 115, 97, 105, 113, 117, 101, 32, 49, 32, 41, 32, 32, 109, 111, 115, 97, 105, 113, 117, 101, 95, 49, 95, 98, 97, 108, 108, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 32, 58, 32, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 44, 32, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 101, 110, 46, 119, 105, 107, 105, 112, 101, 100, 105, 97, 46, 111, 114, 103, 47, 119, 105, 107, 105, 47, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 67, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 68, 105, 108, 97, 116, 101, 32, 80, 105, 120, 101, 108, 115, 41, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 48, 44, 50, 44, 51, 48, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 49, 34, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 53, 32, 76, 69, 78, 84, 32, 47, 32, 83, 76, 79, 87, 34, 44, 34, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 42, 32, 49, 48, 32, 84, 82, 69, 83, 32, 76, 69, 78, 84, 32, 47, 32, 86, 69, 82, 89, 32, 83, 76, 79, 87, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 84, 101, 109, 112, 115, 32, 47, 32, 84, 105, 109, 101, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 91, 42, 49, 48, 48, 48, 48, 93, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 48, 44, 49, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 109, 112, 108, 105, 116, 117, 100, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 114, 92, 51, 48, 51, 92, 50, 53, 49, 113, 117, 101, 110, 99, 101, 32, 47, 32, 70, 114, 101, 113, 117, 101, 110, 99, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 46, 48, 48, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 46, 48, 53, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 46, 49, 54, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 46, 51, 50, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 104, 97, 115, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 51, 32, 61, 32, 102, 108, 111, 97, 116, 40, 55, 53, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 104, 97, 115, 101, 52, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 54, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 55, 10, 9, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 61, 36, 56, 10, 9, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 57, 10, 9, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 49, 48, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 61, 36, 49, 49, 10, 9, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 61, 36, 49, 50, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 61, 36, 49, 51, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 61, 36, 49, 52, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 61, 36, 49, 53, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 61, 36, 49, 54, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 61, 36, 49, 55, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 61, 36, 49, 56, 10, 9, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 61, 36, 49, 57, 10, 9, 80, 104, 97, 115, 101, 49, 61, 36, 50, 48, 10, 9, 80, 104, 97, 115, 101, 50, 61, 36, 50, 49, 10, 9, 80, 104, 97, 115, 101, 51, 61, 36, 50, 50, 10, 9, 80, 104, 97, 115, 101, 52, 61, 36, 50, 51, 10, 9, 10, 9, 9, 9, 35, 35, 32, 100, 105, 118, 101, 114, 115, 10, 9, 70, 108, 111, 117, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 61, 36, 50, 52, 10, 9, 83, 112, 114, 101, 97, 100, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 61, 36, 50, 53, 10, 9, 68, 101, 102, 111, 114, 109, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 61, 36, 50, 54, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 55, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 56, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 116, 101, 109, 112, 115, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 47, 49, 48, 48, 48, 48, 125, 10, 9, 80, 104, 97, 115, 101, 49, 61, 123, 36, 80, 104, 97, 115, 101, 49, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 50, 61, 123, 36, 80, 104, 97, 115, 101, 50, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 51, 61, 123, 36, 80, 104, 97, 115, 101, 51, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 80, 104, 97, 115, 101, 52, 61, 123, 36, 80, 104, 97, 115, 101, 52, 47, 49, 56, 48, 42, 123, 112, 105, 125, 125, 10, 9, 45, 105, 102, 32, 123, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 62, 48, 125, 10, 9, 9, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 123, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 53, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 49, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 49, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 49, 125, 41, 125, 125, 43, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 50, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 50, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 50, 125, 41, 125, 125, 125, 125, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 51, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 51, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 51, 125, 41, 125, 125, 43, 123, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 52, 42, 123, 115, 105, 110, 40, 123, 123, 36, 70, 114, 101, 113, 117, 101, 110, 99, 101, 52, 42, 36, 116, 101, 109, 112, 115, 125, 43, 36, 80, 104, 97, 115, 101, 52, 125, 41, 125, 125, 125, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 62, 49, 125, 10, 9, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 10, 9, 9, 116, 101, 109, 112, 115, 61, 123, 36, 116, 101, 109, 112, 115, 43, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 101, 109, 112, 115, 125, 10, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 45, 100, 111, 110, 101, 10, 9, 45, 105, 102, 32, 123, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 62, 48, 125, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 80, 105, 110, 116, 111, 103, 114, 97, 112, 104, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 32, 58, 32, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 95, 115, 97, 109, 106, 44, 32, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 111, 105, 110, 116, 32, 68, 111, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 40, 80, 105, 120, 101, 108, 41, 32, 61, 32, 105, 110, 116, 40, 52, 44, 50, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 69, 99, 104, 101, 108, 108, 101, 32, 45, 32, 83, 99, 97, 108, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 99, 104, 101, 108, 108, 101, 32, 47, 32, 83, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 46, 53, 44, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 77, 97, 115, 113, 117, 101, 32, 45, 32, 77, 97, 115, 107, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 110, 100, 32, 47, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 105, 110, 116, 115, 32, 47, 32, 68, 111, 116, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 105, 111, 110, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 79, 114, 105, 103, 105, 110, 101, 34, 44, 34, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 86, 111, 105, 114, 32, 101, 120, 101, 109, 112, 108, 101, 32, 100, 101, 32, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 32, 100, 97, 110, 115, 32, 99, 111, 100, 101, 32, 115, 111, 117, 114, 99, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 47, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 95, 115, 97, 109, 106, 32, 58, 10, 9, 114, 97, 121, 111, 110, 61, 36, 49, 10, 9, 101, 99, 104, 101, 108, 108, 101, 61, 36, 50, 10, 9, 82, 95, 102, 111, 110, 100, 61, 36, 51, 10, 9, 86, 95, 102, 111, 110, 100, 61, 36, 52, 10, 9, 66, 95, 102, 111, 110, 100, 61, 36, 53, 10, 9, 65, 95, 102, 111, 110, 100, 61, 36, 54, 10, 9, 82, 95, 112, 111, 105, 110, 116, 61, 36, 55, 10, 9, 86, 95, 112, 111, 105, 110, 116, 61, 36, 56, 10, 9, 66, 95, 112, 111, 105, 110, 116, 61, 36, 57, 10, 9, 65, 95, 112, 111, 105, 110, 116, 61, 36, 49, 48, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 49, 49, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 49, 50, 10, 9, 105, 110, 118, 101, 114, 116, 61, 36, 49, 51, 10, 9, 70, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 61, 36, 49, 52, 10, 9, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 123, 36, 114, 97, 121, 111, 110, 42, 50, 125, 10, 9, 100, 101, 108, 116, 97, 49, 61, 49, 10, 9, 100, 101, 108, 116, 97, 50, 61, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 32, 123, 123, 119, 125, 42, 36, 101, 99, 104, 101, 108, 108, 101, 125, 44, 123, 123, 104, 125, 42, 36, 101, 99, 104, 101, 108, 108, 101, 125, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 32, 123, 123, 119, 125, 47, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 44, 123, 123, 104, 125, 47, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 32, 123, 123, 119, 125, 42, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 44, 123, 123, 104, 125, 42, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 61, 123, 119, 125, 10, 9, 9, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 61, 123, 104, 125, 10, 9, 9, 35, 35, 32, 102, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 32, 111, 114, 105, 103, 105, 110, 101, 32, 97, 118, 101, 99, 32, 98, 111, 117, 99, 108, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 61, 61, 48, 125, 10, 9, 9, 10, 9, 9, 9, 9, 9, 36, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 44, 49, 44, 52, 10, 9, 9, 9, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 102, 111, 110, 100, 44, 36, 86, 95, 102, 111, 110, 100, 44, 36, 66, 95, 102, 111, 110, 100, 44, 36, 65, 95, 102, 111, 110, 100, 10, 9, 9, 9, 9, 9, 88, 61, 123, 36, 114, 97, 121, 111, 110, 125, 10, 9, 9, 9, 9, 9, 89, 61, 123, 36, 114, 97, 121, 111, 110, 125, 10, 9, 9, 9, 9, 9, 45, 100, 111, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 36, 88, 45, 36, 100, 101, 108, 116, 97, 49, 125, 44, 123, 36, 89, 45, 36, 100, 101, 108, 116, 97, 49, 125, 44, 123, 36, 114, 97, 121, 111, 110, 45, 36, 100, 101, 108, 116, 97, 50, 125, 44, 123, 36, 114, 97, 121, 111, 110, 45, 36, 100, 101, 108, 116, 97, 50, 125, 44, 48, 44, 49, 44, 36, 82, 95, 112, 111, 105, 110, 116, 44, 36, 86, 95, 112, 111, 105, 110, 116, 44, 36, 66, 95, 112, 111, 105, 110, 116, 44, 36, 65, 95, 112, 111, 105, 110, 116, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 89, 43, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 89, 60, 36, 104, 97, 117, 116, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 125, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 88, 43, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 36, 114, 97, 121, 111, 110, 10, 9, 9, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 88, 60, 36, 108, 97, 114, 103, 101, 117, 114, 95, 105, 109, 97, 103, 101, 95, 116, 101, 109, 112, 111, 114, 97, 105, 114, 101, 125, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 102, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 32, 115, 97, 110, 115, 32, 98, 111, 117, 99, 108, 101, 32, 112, 114, 111, 112, 111, 115, -23, 32, 112, 97, 114, 32, 82, 111, 110, 111, 117, 110, 111, 117, 114, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 70, 111, 110, 99, 116, 105, 111, 110, 110, 101, 109, 101, 110, 116, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 100, 105, 97, 109, 101, 116, 114, 101, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 49, 44, 52, 10, 9, 9, 9, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 102, 111, 110, 100, 44, 36, 86, 95, 102, 111, 110, 100, 44, 36, 66, 95, 102, 111, 110, 100, 44, 36, 65, 95, 102, 111, 110, 100, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 123, 36, 114, 97, 121, 111, 110, 45, 36, 100, 101, 108, 116, 97, 50, 125, 44, 123, 36, 114, 97, 121, 111, 110, 45, 36, 100, 101, 108, 116, 97, 50, 125, 44, 48, 44, 49, 44, 36, 82, 95, 112, 111, 105, 110, 116, 44, 36, 86, 95, 112, 111, 105, 110, 116, 44, 36, 66, 95, 112, 111, 105, 110, 116, 44, 36, 65, 95, 112, 111, 105, 110, 116, 10, 9, 9, 9, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 48, 48, 37, 44, 48, 44, 50, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 80, 111, 105, 110, 116, 115, 95, 68, 111, 116, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 50, 48, 49, 51, 48, 49, 49, 53, 32, 58, 32, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 50, 48, 49, 51, 48, 49, 49, 53, 95, 109, 111, 100, 105, 102, 105, 101, 44, 32, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 50, 48, 49, 51, 48, 49, 49, 53, 95, 109, 111, 100, 105, 102, 105, 101, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 117, 97, 110, 99, 101, 115, 47, 100, 101, 99, 111, 109, 112, 111, 115, 101, 32, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 79, 114, 105, 103, 105, 110, 101, 34, 44, 34, 67, 97, 110, 97, 108, 32, 89, 32, 100, 101, 32, 89, 85, 86, 34, 44, 34, 67, 97, 110, 97, 108, 32, 76, 32, 100, 101, 32, 72, 83, 76, 32, 56, 34, 44, 34, 67, 97, 110, 97, 108, 32, 76, 32, 100, 101, 32, 76, 67, 72, 34, 44, 34, 67, 97, 110, 97, 108, 32, 75, 32, 100, 101, 32, 67, 77, 89, 75, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 103, 111, 117, 108, 105, 110, 97, 100, 101, 32, 65, 32, 47, 32, 69, 120, 116, 101, 110, 115, 105, 111, 110, 32, 67, 111, 108, 111, 114, 115, 32, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 103, 111, 117, 108, 105, 110, 97, 100, 101, 32, 66, 32, 47, 32, 69, 120, 116, 101, 110, 115, 105, 111, 110, 32, 67, 111, 108, 111, 114, 115, 32, 66, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 92, 51, 48, 51, 92, 50, 53, 49, 99, 105, 115, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 78, 111, 116, 101, 32, 58, 60, 47, 98, 62, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 110, 101, 101, 100, 115, 32, 116, 119, 111, 32, 108, 97, 121, 101, 114, 115, 32, 116, 111, 32, 119, 111, 114, 107, 32, 112, 114, 111, 112, 101, 114, 108, 121, 46, 32, 84, 104, 101, 32, 98, 111, 116, 116, 111, 109, 32, 108, 97, 121, 101, 114, 32, 99, 97, 110, 32, 98, 101, 32, 97, 32, 66, 38, 97, 109, 112, 59, 87, 32, 111, 114, 32, 97, 32, 99, 111, 108, 111, 114, 101, 100, 32, 105, 109, 97, 103, 101, 44, 32, 119, 104, 105, 108, 101, 32, 116, 104, 101, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 111, 112, 32, 108, 97, 121, 101, 114, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 99, 111, 108, 111, 114, 32, 112, 97, 116, 99, 104, 101, 115, 32, 116, 104, 97, 116, 32, 119, 105, 108, 108, 32, 98, 101, 32, 101, 120, 116, 114, 97, 112, 111, 108, 97, 116, 101, 100, 32, 105, 110, 32, 97, 32, 115, 109, 97, 114, 116, 32, 119, 97, 121, 32, 40, 101, 100, 103, 101, 45, 100, 105, 114, 101, 99, 116, 101, 100, 41, 32, 116, 111, 32, 102, 105, 108, 108, 32, 116, 104, 101, 32, 101, 110, 116, 105, 114, 101, 32, 105, 109, 97, 103, 101, 46, 32, 65, 116, 32, 116, 104, 101, 32, 101, 110, 100, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 121, 111, 117, 32, 103, 101, 116, 32, 97, 32, 99, 111, 109, 112, 108, 101, 116, 101, 108, 121, 32, 114, 101, 99, 111, 108, 111, 114, 101, 100, 32, 105, 109, 97, 103, 101, 46, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 49, 56, 32, 115, 97, 109, 106, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 114, 101, 99, 111, 108, 111, 114, 105, 122, 101, 95, 50, 48, 49, 51, 48, 49, 49, 53, 95, 109, 111, 100, 105, 102, 105, 101, 32, 58, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 49, 10, 78, 117, 97, 110, 99, 101, 115, 61, 36, 50, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 61, 36, 51, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 61, 36, 52, 10, 68, 101, 103, 111, 117, 108, 105, 110, 97, 100, 101, 95, 65, 61, 36, 53, 10, 68, 101, 103, 111, 117, 108, 105, 110, 97, 100, 101, 95, 66, 61, 36, 54, 10, 80, 114, 101, 99, 105, 115, 105, 111, 110, 61, 36, 55, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 68, 101, 103, 111, 117, 108, 105, 110, 97, 100, 101, 95, 65, 10, 9, 45, 105, 102, 32, 123, 36, 78, 117, 97, 110, 99, 101, 115, 61, 61, 48, 125, 10, 9, 9, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 48, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 78, 117, 97, 110, 99, 101, 115, 61, 61, 49, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 52, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 93, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 78, 117, 97, 110, 99, 101, 115, 61, 61, 50, 125, 9, 9, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 114, 103, 98, 50, 104, 115, 108, 56, 91, 45, 50, 93, 32, 45, 115, 112, 108, 105, 116, 91, 45, 50, 93, 32, 99, 32, 45, 114, 109, 91, 45, 51, 44, 45, 52, 93, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 78, 117, 97, 110, 99, 101, 115, 61, 61, 51, 125, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 50, 93, 32, 45, 115, 112, 108, 105, 116, 91, 45, 50, 93, 32, 99, 32, 45, 114, 109, 91, 45, 50, 44, 45, 51, 93, 10, 9, 45, 101, 108, 105, 102, 32, 123, 36, 78, 117, 97, 110, 99, 101, 115, 61, 61, 52, 125, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 91, 45, 50, 93, 32, 45, 115, 112, 108, 105, 116, 91, 45, 50, 93, 32, 99, 32, 45, 114, 109, 91, 45, 51, 44, 45, 52, 44, 45, 53, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 50, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 10, 9, 45, 110, 91, 45, 50, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 10, 9, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 9, 45, 110, 101, 113, 91, 45, 49, 93, 32, 48, 10, 9, 35, 32, 105, 108, 32, 121, 32, 97, 32, 51, 32, 105, 109, 97, 103, 101, 115, 32, 58, 32, 45, 51, 61, 108, 39, 105, 109, 97, 103, 101, 32, 103, 101, 105, 115, 101, 32, 32, 45, 50, 61, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 32, 45, 49, 61, 108, 101, 32, 109, 97, 115, 113, 117, 101, 10, 45, 115, 114, 103, 98, 50, 114, 103, 98, 91, 45, 51, 44, 45, 50, 93, 10, 9, 45, 114, 103, 98, 50, 108, 97, 98, 56, 91, 45, 51, 44, 45, 50, 93, 10, 9, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 51, 93, 32, 48, 10, 9, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 50, 93, 32, 49, 44, 50, 10, 45, 43, 91, 45, 50, 93, 32, 49, 10, 9, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 10, 9, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 91, 45, 51, 93, 10, 9, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 68, 101, 103, 111, 117, 108, 105, 110, 97, 100, 101, 95, 66, 10, 9, 45, 42, 91, 45, 49, 93, 32, 45, 49, 10, 9, 45, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 51, 93, 32, 91, 45, 49, 93, 10, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 45, 45, 91, 45, 50, 93, 32, 49, 10, 9, 35, 32, 71, 101, 116, 32, 102, 105, 114, 115, 116, 32, 101, 115, 116, 105, 109, 97, 116, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 99, 111, 108, 111, 114, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 46, 10, 9, 45, 105, 102, 32, 123, 36, 80, 114, 101, 99, 105, 115, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 35, 35, 35, 32, 112, 101, 114, 109, 101, 116, 32, 100, 101, 32, 98, 105, 101, 110, 32, 100, -23, 102, 105, 110, 105, 114, 32, 108, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 115, 9, 10, 9, 9, 9, 45, 45, 100, 105, 102, 102, 117, 115, 105, 111, 110, 116, 101, 110, 115, 111, 114, 115, 91, 45, 51, 93, 32, 48, 44, 49, 44, 49, 44, 49, 10, 9, 9, 9, 45, 101, 113, 91, 45, 50, 93, 32, 48, 10, 9, 9, 9, 10, 9, 9, 9, 45, 42, 91, 45, 49, 93, 32, 91, 45, 50, 93, 10, 9, 9, 9, 45, 114, 109, 91, 45, 50, 93, 10, 9, 9, 9, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 48, 46, 56, 44, 52, 53, 44, 50, 44, 48, 10, 9, 9, 35, 35, 35, 32, 70, 73, 78, 32, 112, 101, 114, 109, 101, 116, 32, 100, 101, 32, 98, 105, 101, 110, 32, 100, -23, 102, 105, 110, 105, 114, 32, 108, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 115, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 109, 91, 45, 49, 93, 10, 45, 97, 91, 45, 50, 44, 45, 49, 93, 32, 99, 10, 9, 45, 108, 97, 98, 56, 50, 114, 103, 98, 91, 45, 49, 93, 10, 9, 10, 9, 45, 114, 103, 98, 50, 115, 114, 103, 98, 91, 45, 49, 93, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 82, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 50, 48, 49, 51, 32, 48, 49, 32, 49, 53, 32, 109, 111, 100, 105, 102, 105, -23, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, 101, 110, 105, 109, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 109, 112, 108, 105, 114, 95, 69, 116, 111, 105, 108, 101, 115, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 95, 69, 116, 111, 105, 108, 101, 115, 95, 115, 97, 109, 106, 44, 32, 82, 101, 109, 112, 108, 105, 114, 95, 69, 116, 111, 105, 108, 101, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 92, 51, 48, 51, 92, 50, 53, 49, 116, 111, 105, 108, 101, 115, 32, 47, 32, 115, 116, 97, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 115, 111, 109, 109, 101, 116, 115, 32, 47, 32, 66, 114, 97, 110, 99, 104, 101, 115, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 53, 44, 50, 44, 55, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 115, 111, 109, 109, 101, 116, 115, 32, 47, 32, 66, 114, 97, 110, 99, 104, 101, 115, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 56, 44, 50, 44, 55, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 79, 117, 116, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 79, 117, 116, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 73, 110, 110, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 47, 32, 73, 110, 110, 101, 114, 32, 99, 105, 114, 99, 108, 101, 32, 114, 97, 100, 105, 117, 115, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 57, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 97, 110, 103, 108, 101, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 69, 99, 99, 101, 110, 116, 114, 105, 99, 105, 116, 121, 32, 97, 110, 103, 108, 101, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 114, 97, 110, 99, 104, 101, 115, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 115, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 82, 101, 109, 112, 108, 105, 114, 95, 69, 116, 111, 105, 108, 101, 115, 95, 115, 97, 109, 106, 58, 10, 9, 78, 111, 109, 98, 114, 101, 95, 101, 116, 111, 105, 108, 101, 115, 61, 36, 49, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 61, 36, 50, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 97, 120, 61, 36, 51, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 61, 36, 52, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 61, 36, 53, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 61, 36, 54, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 61, 36, 55, 10, 9, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 61, 36, 56, 10, 9, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 61, 36, 57, 10, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 61, 36, 49, 48, 10, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 61, 36, 49, 49, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 50, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 51, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 52, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 53, 10, 9, 86, 95, 68, 95, 67, 61, 36, 49, 54, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 49, 55, 10, 9, 70, 108, 111, 117, 95, 101, 116, 111, 105, 108, 101, 61, 36, 49, 56, 10, 9, 83, 112, 114, 101, 97, 100, 95, 101, 116, 111, 105, 108, 101, 61, 36, 49, 57, 10, 9, 68, 101, 102, 111, 114, 109, 95, 101, 116, 111, 105, 108, 101, 61, 36, 50, 48, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 49, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 50, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 45, 105, 102, 32, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 62, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 97, 120, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 97, 120, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 62, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 10, 9, 9, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 61, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 10, 9, 9, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 62, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 10, 9, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 61, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 10, 9, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 101, 116, 111, 105, 108, 101, 115, 10, 9, 9, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 9, 9, 10, 9, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 123, 50, 42, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 125, 10, 9, 9, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 61, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 97, 120, 45, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 61, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 95, 109, 105, 110, 125, 41, 41, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 123, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 45, 36, 69, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 61, 123, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 97, 120, 45, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 49, 10, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 61, 48, 10, 9, 9, 9, 9, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 68, 95, 67, 9, 10, 9, 9, 9, 9, 45, 115, 116, 97, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 44, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 82, 97, 121, 111, 110, 95, 73, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 44, 36, 80, 111, 117, 114, 99, 101, 110, 116, 97, 103, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 44, 36, 65, 110, 103, 108, 101, 95, 101, 120, 99, 101, 110, 116, 114, 105, 99, 105, 116, 101, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 111, 105, 110, 116, 101, 115, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 111, 105, 110, 116, 101, 115, 44, 36, 82, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 112, 111, 105, 110, 116, 101, 115, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 41, 41, 125, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 41, 41, 125, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 9, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 10, 9, 9, 9, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 101, 116, 111, 105, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 9, 35, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 115, 111, 109, 109, 101, 116, 115, 44, 49, 48, 44, 49, 48, 44, 54, 52, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 39, -23, 116, 111, 105, 108, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 112, 111, 117, 114, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 58, 10, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 45, 10, 9, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 36, 49, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 51, 48, 44, 50, 44, 51, 54, 48, 41, 10, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 36, 51, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 36, 52, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 36, 53, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 51, 54, 44, 48, 44, 49, 48, 48, 41, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 54, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 55, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 56, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 36, 57, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 49, 48, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 36, 49, 49, 9, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 41, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 50, 9, 9, 9, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 51, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 54, 9, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 55, 9, 9, 9, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 56, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 57, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 48, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 49, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 50, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 9, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 51, 9, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 49, 48, 48, 44, 49, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 52, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 53, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 55, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 56, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 57, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 48, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 50, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 51, 9, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 52, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 54, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 55, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 56, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 49, 48, 48, 44, 49, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 57, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 49, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 52, 50, 9, 9, 9, 35, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 47, 50, 125, 41, 125, 10, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 47, 50, 125, 41, 125, 10, 9, 82, 97, 121, 111, 110, 95, 100, 101, 95, 108, 97, 95, 102, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 47, 56, 125, 41, 125, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 100, 101, 95, 108, 97, 95, 102, 108, 101, 117, 114, 47, 49, 48, 48, 42, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 125, 41, 125, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 100, 101, 95, 108, 97, 95, 102, 108, 101, 117, 114, 47, 49, 48, 48, 42, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 125, 41, 125, 9, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 100, 101, 95, 108, 97, 95, 102, 108, 101, 117, 114, 47, 49, 48, 48, 42, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 125, 41, 125, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 125, 41, 125, 9, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 9, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 43, 49, 125, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 43, 49, 125, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 43, 49, 125, 9, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 125, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 125, 10, 9, 35, 35, 35, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 49, 44, 52, 10, 9, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 73, 110, 100, 101, 120, 61, 48, 10, 9, 9, 45, 100, 111, 10, 9, 9, 9, 35, 35, 32, 99, 97, 108, 99, 117, 108, 32, 100, 101, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 112, 111, 117, 114, 32, 111, 98, 116, 101, 110, 105, 114, 32, 100, 101, 115, 32, 102, 108, 111, 97, 116, 35, 35, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 41, 125, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 41, 125, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 41, 125, 10, 9, 9, 9, 35, 35, 32, 99, 97, 108, 99, 117, 108, 32, 100, 101, 115, 32, 118, 97, 108, 101, 117, 114, 115, 32, 115, 117, 105, 116, 101, 32, 97, 117, 120, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 10, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 41, 125, 10, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 41, 125, 9, 9, 9, 10, 9, 9, 9, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 42, 36, 73, 110, 100, 101, 120, 125, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 98, 111, 117, 99, 108, 101, 43, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 125, 10, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 43, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 10, 9, 9, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 41, 125, 125, 41, 125, 10, 9, 9, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 41, 125, 125, 41, 125, 10, 9, 9, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 125, 10, 9, 9, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 125, 10, 9, 9, 9, 35, 35, 32, 80, -23, 116, 97, 108, 101, 10, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 32, 117, 110, 105, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 48, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 108, 101, 43, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 125, 125, 10, 9, 9, 9, 78, 98, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 45, 49, 125, 10, 9, 9, 9, 73, 110, 100, 101, 120, 61, 123, 36, 73, 110, 100, 101, 120, 43, 49, 125, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 78, 98, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 35, 35, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 115, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 43, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 70, 73, 78, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 112, 111, 117, 114, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 44, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 101, 117, 114, 115, 32, 47, 32, 70, 108, 111, 119, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 32, 61, 32, 105, 110, 116, 40, 51, 51, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 39, 82, 97, 121, 111, 110, 39, 32, 100, 101, 32, 108, 97, 32, 102, 108, 101, 117, 114, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 39, 114, 97, 100, 105, 117, 115, 39, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 52, 48, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 39, 82, 97, 121, 111, 110, 39, 32, 100, 101, 32, 108, 97, 32, 102, 108, 101, 117, 114, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 39, 114, 97, 100, 105, 117, 115, 39, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 56, 48, 48, 44, 49, 54, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 101, 116, 97, 108, 115, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 50, 53, 44, 50, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 101, 116, 97, 108, 115, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 53, 48, 44, 50, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 50, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 50, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 50, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 50, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 49, 48, 48, 44, 49, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 101, 120, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 101, 117, 114, 115, 47, 70, 108, 111, 119, 101, 114, 115, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 58, 10, 9, 78, 111, 109, 98, 114, 101, 95, 70, 108, 101, 117, 114, 115, 61, 36, 49, 10, 9, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 61, 36, 50, 10, 9, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 97, 120, 61, 36, 51, 9, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 52, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 53, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 61, 36, 54, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 97, 120, 61, 36, 55, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 61, 36, 56, 10, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 97, 120, 61, 36, 57, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 49, 48, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 49, 49, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 49, 50, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 49, 51, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 61, 36, 49, 52, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 61, 36, 49, 53, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 61, 36, 49, 54, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 61, 36, 49, 55, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 61, 36, 49, 56, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 61, 36, 49, 57, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 61, 36, 50, 48, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 61, 36, 50, 49, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 50, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 51, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 52, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 53, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 55, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 56, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 57, 9, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 48, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 49, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 50, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 51, 10, 9, 86, 95, 68, 95, 67, 61, 36, 51, 52, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 51, 53, 10, 9, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 61, 36, 51, 54, 10, 9, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 61, 36, 51, 55, 10, 9, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 61, 36, 51, 56, 10, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 51, 57, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 48, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 62, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 10, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 61, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 10, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 70, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 9, 9, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 123, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 102, 108, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 123, 51, 54, 48, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 41, 125, 10, 9, 9, 9, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 49, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 99, 101, 114, 99, 108, 101, 95, 50, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 45, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 49, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 48, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 48, 9, 9, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 48, 10, 9, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 50, 53, 53, 9, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 50, 53, 53, 9, 10, 9, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 50, 53, 53, 10, 9, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 68, 95, 67, 9, 9, 10, 9, 9, 9, 9, 45, 102, 108, 111, 119, 101, 114, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 110, 103, 108, 101, 95, 105, 110, 99, 108, 105, 110, 97, 105, 115, 111, 110, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 9, 9, 9, 35, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 41, 41, 125, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 35, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 41, 41, 125, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 125, 10, 9, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 119, 125, 125, 41, 41, 125, 45, 123, 119, 125, 125, 10, 9, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 104, 125, 125, 41, 41, 125, 45, 123, 104, 125, 125, 10, 9, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 9, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 10, 9, 9, 9, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 10, 9, 9, 9, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 9, 35, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 112, 101, 116, 97, 108, 101, 115, 44, 49, 48, 44, 49, 48, 44, 54, 52, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 58, 10, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 45, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 9, 35, 32, 115, 112, 105, 114, 97, 108, 101, 10, 9, 116, 111, 117, 114, 115, 61, 36, 49, 9, 9, 9, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 36, 50, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 49, 54, 46, 48, 56, 44, 48, 46, 49, 44, 51, 53, 57, 46, 57, 41, 10, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 36, 51, 9, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 9, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 52, 9, 9, 9, 9, 9, 35, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 49, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 49, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 50, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 50, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 51, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 51, 34, 44, 34, 73, 110, 116, 46, 32, 77, 111, 100, 101, 32, 52, 34, 44, 34, 69, 120, 116, 46, 32, 77, 111, 100, 101, 32, 52, 34, 41, 10, 9, 9, 35, 32, 112, -23, 116, 97, 108, 101, 115, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 53, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 49, 44, 49, 48, 48, 41, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 54, 9, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 49, 44, 49, 48, 48, 41, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 55, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 49, 53, 44, 49, 44, 49, 48, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 36, 56, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 57, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 36, 49, 48, 9, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 49, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 49, 44, 48, 46, 53, 41, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 50, 9, 9, 9, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 51, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 50, 48, 56, 44, 51, 54, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 54, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 55, 9, 9, 9, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 56, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 53, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 49, 57, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 48, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 49, 9, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 50, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 51, 9, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 50, 48, 56, 44, 49, 51, 54, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 52, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 53, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 54, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 36, 50, 55, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 56, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 49, 53, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 50, 57, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 48, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 50, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 51, 9, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 50, 52, 44, 50, 48, 56, 44, 50, 51, 54, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 52, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 53, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 51, 54, 10, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 36, 51, 55, 9, 9, 35, 32, 98, 111, 111, 108, 40, 49, 41, 10, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 56, 9, 9, 9, 9, 9, 35, 32, 99, 111, 108, 111, 114, 40, 50, 48, 48, 44, 49, 48, 48, 44, 50, 53, 48, 44, 50, 53, 53, 41, 10, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 57, 10, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 52, 49, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 36, 52, 50, 9, 9, 9, 9, 35, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 36, 52, 51, 9, 9, 9, 9, 35, 32, 102, 108, 111, 97, 116, 40, 51, 54, 44, 48, 44, 49, 48, 48, 41, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 52, 52, 9, 9, 9, 35, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 9, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 9, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 116, 111, 117, 114, 115, 42, 123, 49, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 49, 48, 125, 125, 42, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 42, 123, 49, 43, 123, 52, 42, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 125, 125, 125, 43, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 43, 49, 125, 125, 125, 125, 43, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 9, 9, 35, 32, -32, 32, 111, 112, 116, 105, 109, 105, 115, 101, 114, 32, 115, 105, 32, 98, 101, 115, 111, 105, 110, 10, 9, 45, 105, 102, 32, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 62, 53, 48, 48, 48, 125, 9, 9, 35, 32, 108, 105, 109, 105, 116, 101, 114, 32, 108, 101, 115, 32, 105, 109, 97, 103, 101, 115, 32, -32, 32, 49, 48, 48, 48, 48, 42, 49, 48, 48, 48, 48, 9, 10, 9, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 53, 48, 48, 48, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 42, 50, 125, 10, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 49, 48, 48, 125, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 43, 49, 125, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 43, 49, 125, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 43, 49, 125, 9, 10, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 10, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 109, 111, 100, 117, 108, 111, 95, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 37, 50, 125, 9, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 47, 49, 48, 48, 42, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 125, 41, 125, 10, 9, 35, 35, 32, 98, 111, 117, 99, 108, 101, 32, 111, 114, 100, 114, 101, 32, 100, -23, 99, 114, 111, 105, 115, 115, 97, 110, 116, 32, 111, 117, 32, 99, 114, 111, 105, 115, 115, 97, 110, 116, 10, 9, 45, 105, 102, 32, 123, 36, 109, 111, 100, 117, 108, 111, 95, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 48, 125, 32, 9, 10, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 111, 117, 114, 115, 42, 51, 54, 48, 125, 10, 9, 9, 116, 104, 101, 116, 97, 95, 102, 105, 110, 61, 48, 10, 9, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 123, 45, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 97, 114, 114, 101, 116, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 116, 104, 101, 116, 97, 61, 48, 10, 9, 9, 116, 104, 101, 116, 97, 95, 102, 105, 110, 61, 123, 123, 36, 116, 111, 117, 114, 115, 42, 51, 54, 48, 125, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 97, 114, 114, 101, 116, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 10, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 101, 110, 95, 112, 105, 120, 101, 108, 115, 44, 49, 44, 52, 10, 9, 45, 100, 111, 10, 9, 9, 35, 35, 32, 115, 112, 105, 114, 97, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 48, 125, 124, 124, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 49, 125, 125, 10, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 50, 125, 124, 124, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 51, 125, 125, 10, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 52, 125, 124, 124, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 53, 125, 125, 10, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 54, 125, 124, 124, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 55, 125, 125, 10, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 97, 108, 99, 117, 108, 32, 100, 101, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 112, 111, 117, 114, 32, 111, 98, 116, 101, 110, 105, 114, 32, 100, 101, 115, 32, 102, 108, 111, 97, 116, 35, 35, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 41, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 41, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 63, 40, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 41, 125, 10, 9, 9, 35, 35, 32, 99, 97, 108, 99, 117, 108, 32, 100, 101, 115, 32, 118, 97, 108, 101, 117, 114, 115, 32, 115, 117, 105, 116, 101, 32, 97, 117, 120, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 41, 125, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 42, 123, 36, 116, 111, 117, 114, 115, 47, 51, 125, 42, 123, 49, 45, 123, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 49, 48, 48, 125, 42, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 125, 9, 9, 9, 35, 32, 50, 48, 49, 50, 49, 50, 50, 50, 32, 97, 106, 111, 117, 116, -23, 32, 112, 111, 117, 114, 32, 97, 118, 111, 105, 114, 32, 117, 110, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 108, 97, 32, 108, 111, 110, 103, 117, 101, 117, 114, 10, 9, 9, 35, 35, 32, 99, 111, 114, 114, 101, 99, 116, 105, 111, 110, 32, 100, 101, 32, 108, 97, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 32, 101, 110, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 100, 101, 32, 108, 39, 97, 110, 103, 108, 101, 32, 116, 104, 101, 116, 97, 32, 44, 32, 99, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 112, -23, 116, 97, 108, 101, 32, 61, 32, 123, 36, 116, 104, 101, 116, 97, 42, 50, 48, 42, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 51, 54, 48, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 62, 48, 125, 10, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 42, 123, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 42, 36, 116, 104, 101, 116, 97, 42, 50, 48, 42, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 51, 54, 48, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 125, 43, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 47, 49, 48, 48, 42, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 125, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 41, 125, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 42, 123, 49, 43, 123, 36, 116, 111, 117, 114, 115, 47, 51, 48, 125, 125, 42, 123, 49, 45, 123, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 47, 49, 48, 125, 42, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 125, 125, 9, 9, 9, 35, 32, 50, 48, 49, 50, 49, 50, 50, 50, 32, 97, 106, 111, 117, 116, -23, 32, 112, 111, 117, 114, 32, 97, 118, 111, 105, 114, 32, 117, 110, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 108, 97, 32, 108, 97, 114, 103, 101, 117, 114, 10, 9, 9, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 123, 123, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 42, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 125, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 98, 111, 117, 99, 108, 101, 125, 43, 48, 125, 10, 9, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 41, 125, 125, 41, 125, 10, 9, 9, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 41, 125, 125, 41, 125, 10, 9, 9, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 36, 88, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 88, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 125, 10, 9, 9, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 61, 123, 36, 89, 43, 36, 68, 101, 99, 97, 108, 97, 103, 101, 95, 89, 95, 99, 101, 110, 116, 114, 101, 95, 112, 101, 116, 97, 108, 101, 125, 10, 9, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 112, -23, 116, 97, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 88, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 89, 95, 99, 101, 110, 116, 114, 101, 95, 99, 101, 114, 99, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 98, 111, 117, 99, 108, 101, 44, 36, 97, 110, 103, 108, 101, 95, 112, 101, 116, 97, 108, 101, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 88, 10, 9, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 89, 10, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 35, 35, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 97, 114, 114, -22, 116, 32, 98, 111, 117, 99, 108, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 109, 111, 100, 117, 108, 111, 95, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 116, 104, 101, 116, 97, 60, 36, 116, 104, 101, 116, 97, 95, 102, 105, 110, 125, 10, 9, 9, 9, 9, 97, 114, 114, 101, 116, 95, 98, 111, 117, 99, 108, 101, 61, 49, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 116, 104, 101, 116, 97, 62, 36, 116, 104, 101, 116, 97, 95, 102, 105, 110, 125, 10, 9, 9, 9, 9, 97, 114, 114, 101, 116, 95, 98, 111, 117, 99, 108, 101, 61, 49, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 97, 114, 114, 101, 116, 95, 98, 111, 117, 99, 108, 101, 61, 61, 48, 125, 9, 10, 9, 35, 35, 32, 114, 101, 109, 112, 108, 105, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 9, 10, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 35, 35, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 101, 120, 116, -23, 114, 105, 101, 117, 114, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 71, 114, 97, 110, 100, 32, 99, 101, 114, 99, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 32, 112, 108, 101, 105, 110, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 67, 101, 114, 99, 108, 101, 32, 105, 110, 116, -23, 114, 105, 101, 117, 114, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 61, 49, 125, 32, 9, 9, 10, 9, 9, 35, 35, 32, 116, 114, 97, 99, 101, 114, 32, 80, 101, 116, 105, 116, 32, 99, 101, 114, 99, 108, 101, 32, 99, 111, 110, 116, 111, 117, 114, 9, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 48, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 43, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 70, 73, 78, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 40, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 102, 108, 101, 117, 114, 41, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 32, 73, 73, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 50, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 50, 95, 115, 97, 109, 106, 44, 32, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 50, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 101, 117, 114, 115, 32, 47, 32, 70, 108, 111, 119, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 32, 61, 32, 105, 110, 116, 40, 57, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 105, 114, 97, 108, 101, 32, 47, 32, 83, 112, 105, 114, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 50, 44, 49, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 49, 44, 51, 53, 57, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 51, 53, 57, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 110, 115, 32, 100, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 47, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 111, 102, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 48, 34, 44, 34, 82, 97, 110, 100, 111, 109, 32, 49, 34, 44, 34, 82, 97, 110, 100, 111, 109, 32, 50, 34, 44, 34, 82, 97, 110, 100, 111, 109, 32, 51, 34, 44, 34, 82, 97, 110, 100, 111, 109, 32, 52, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 101, 117, 114, 32, 45, 32, 80, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 70, 108, 111, 119, 101, 114, 32, 45, 32, 80, 101, 116, 97, 108, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 97, 114, 103, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 87, 105, 100, 116, 104, 32, 112, 101, 116, 97, 108, 115, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 49, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 115, 112, 97, 99, 105, 110, 103, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 108, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 97, 110, 103, 108, 101, 32, 40, 68, 101, 103, 46, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 51, 44, 48, 44, 49, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 112, 101, 116, 97, 108, 115, 32, 109, 105, 110, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 46, 49, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 112, 101, 116, 97, 108, 115, 32, 109, 97, 120, 46, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 53, 44, 48, 46, 49, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 112, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 108, 101, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 52, 56, 44, 50, 52, 56, 44, 49, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 99, 101, 114, 99, 108, 101, 115, 32, 47, 32, 99, 105, 114, 99, 108, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 99, 101, 114, 99, 108, 101, 32, 105, 110, 116, 92, 51, 48, 51, 92, 50, 53, 49, 114, 105, 101, 117, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 115, 32, 61, 32, 99, 111, 108, 111, 114, 40, 55, 53, 44, 55, 53, 44, 49, 55, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 40, 37, 41, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 49, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 49, 32, 40, 37, 41, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 49, 53, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 32, 99, 101, 114, 99, 108, 101, 32, 50, 32, 47, 32, 82, 97, 100, 105, 117, 115, 32, 99, 105, 114, 99, 108, 101, 32, 50, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 56, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 101, 117, 114, 115, 47, 70, 108, 111, 119, 101, 114, 115, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 9, 9, 9, 9, 9, 9, 10, 82, 101, 109, 112, 108, 105, 114, 95, 70, 108, 101, 117, 114, 115, 95, 50, 95, 115, 97, 109, 106, 58, 10, 9, 78, 111, 109, 98, 114, 101, 95, 70, 108, 101, 117, 114, 115, 61, 36, 49, 10, 9, 84, 111, 117, 114, 115, 95, 109, 105, 110, 61, 36, 50, 10, 9, 84, 111, 117, 114, 115, 95, 109, 97, 120, 61, 36, 51, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 61, 36, 52, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 97, 120, 61, 36, 53, 10, 9, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 61, 36, 54, 10, 9, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 97, 120, 61, 36, 55, 10, 9, 83, 101, 110, 115, 95, 100, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 56, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 57, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 49, 48, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 49, 49, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 49, 50, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 61, 36, 49, 51, 10, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 61, 36, 49, 52, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 61, 36, 49, 53, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 61, 36, 49, 54, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 61, 36, 49, 55, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 61, 36, 49, 56, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 61, 36, 49, 57, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 61, 36, 50, 48, 10, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 50, 49, 10, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 50, 50, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 50, 54, 10, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 55, 10, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 56, 10, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 50, 57, 10, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 36, 51, 48, 10, 9, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 49, 10, 9, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 50, 10, 9, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 51, 10, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 36, 51, 52, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 61, 123, 36, 51, 53, 42, 36, 57, 47, 49, 48, 48, 125, 10, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 97, 120, 61, 123, 36, 51, 54, 42, 36, 57, 47, 49, 48, 48, 125, 10, 9, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 61, 36, 51, 55, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 51, 56, 9, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 51, 57, 10, 9, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 61, 36, 52, 48, 10, 9, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 61, 36, 52, 49, 10, 9, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 61, 36, 52, 50, 10, 9, 98, 108, 101, 110, 100, 61, 36, 52, 51, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 52, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 99, 97, 108, 99, 117, 108, -23, 101, 115, 10, 9, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 45, 105, 102, 32, 123, 36, 84, 111, 117, 114, 115, 95, 109, 105, 110, 62, 36, 84, 111, 117, 114, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 84, 111, 117, 114, 115, 95, 109, 97, 120, 10, 9, 9, 84, 111, 117, 114, 115, 95, 109, 97, 120, 61, 36, 84, 111, 117, 114, 115, 95, 109, 105, 110, 10, 9, 9, 84, 111, 117, 114, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 62, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 97, 120, 10, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 97, 120, 61, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 10, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 62, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 97, 120, 10, 9, 9, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 97, 120, 61, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 10, 9, 9, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 62, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 10, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 61, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 10, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 62, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 61, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 62, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 10, 9, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 61, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 10, 9, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 62, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 97, 120, 125, 10, 9, 9, 109, 105, 110, 61, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 97, 120, 10, 9, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 97, 120, 61, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 10, 9, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 61, 36, 109, 105, 110, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 70, 108, 101, 117, 114, 115, 10, 9, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 9, 35, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 35, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 35, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 9, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 9, 9, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 32, 115, 112, 105, 114, 97, 108, 101, 10, 9, 9, 9, 116, 111, 117, 114, 115, 61, 123, 36, 84, 111, 117, 114, 115, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 84, 111, 117, 114, 115, 95, 109, 97, 120, 45, 36, 84, 111, 117, 114, 115, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 43, 123, 63, 40, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 97, 120, 45, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 95, 109, 105, 110, 125, 41, 125, 125, 10, 9, 9, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 123, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 43, 123, 63, 40, 123, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 97, 120, 45, 36, 67, 111, 101, 102, 102, 95, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 109, 105, 110, 125, 41, 125, 125, 10, 9, 9, 9, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 36, 83, 101, 110, 115, 95, 100, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 35, 32, 112, -23, 116, 97, 108, 101, 115, 10, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 63, 40, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 125, 125, 10, 9, 9, 9, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 125, 125, 10, 9, 9, 9, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 97, 120, 45, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 61, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 97, 120, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 61, 123, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 43, 123, 63, 40, 123, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 97, 120, 45, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 95, 109, 105, 110, 125, 41, 125, 125, 10, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 49, 10, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 49, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 61, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 10, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 49, 10, 9, 9, 9, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 61, 48, 10, 9, 9, 9, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 48, 10, 9, 9, 9, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 61, 50, 53, 53, 10, 9, 9, 9, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 61, 123, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 43, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 97, 120, 45, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 95, 109, 105, 110, 125, 41, 41, 125, 125, 10, 9, 9, 9, 45, 102, 108, 111, 119, 101, 114, 95, 115, 112, 105, 114, 97, 108, 95, 112, 97, 116, 116, 101, 114, 110, 95, 115, 97, 109, 106, 32, 36, 116, 111, 117, 114, 115, 44, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 44, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 44, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 76, 97, 114, 103, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 69, 115, 112, 97, 99, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 108, 111, 110, 103, 117, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 97, 110, 103, 108, 101, 44, 36, 65, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 99, 111, 110, 116, 111, 117, 114, 95, 112, 101, 116, 97, 108, 101, 115, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 73, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 105, 110, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 73, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 101, 109, 112, 108, 105, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 86, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 66, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 65, 95, 67, 69, 95, 112, 108, 101, 105, 110, 44, 36, 67, 111, 110, 116, 111, 117, 114, 95, 99, 101, 114, 99, 108, 101, 95, 101, 120, 116, 101, 114, 105, 101, 117, 114, 44, 36, 82, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 86, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 66, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 65, 95, 67, 69, 95, 99, 111, 110, 116, 111, 117, 114, 44, 36, 82, 97, 121, 111, 110, 95, 103, 114, 97, 110, 100, 95, 99, 101, 114, 99, 108, 101, 44, 36, 82, 97, 121, 111, 110, 95, 112, 101, 116, 105, 116, 95, 99, 101, 114, 99, 108, 101, 44, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 10, 9, 9, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 10, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 76, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 119, 125, 125, 41, 41, 125, 45, 123, 119, 125, 125, 10, 9, 9, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 123, 114, 111, 117, 110, 100, 40, 63, 40, 123, 36, 72, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 104, 125, 125, 41, 41, 125, 45, 123, 104, 125, 125, 10, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 44, 91, 45, 49, 93, 10, 9, 9, 9, 35, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 44, 48, 44, 48, 44, 49, 10, 9, 9, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 44, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 10, 9, 9, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 9, 9, 45, 100, 111, 110, 101, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 102, 108, 101, 117, 114, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 102, 108, 101, 117, 114, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 102, 108, 101, 117, 114, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 35, 35, 32, 118, -23, 114, 105, 102, 105, 99, 97, 116, 105, 111, 110, 10, 9, 35, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 48, 93, 32, 36, 78, 111, 109, 98, 114, 101, 95, 70, 108, 101, 117, 114, 115, 44, 49, 48, 44, 49, 48, 44, 54, 52, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 82, 101, 109, 112, 108, 105, 114, 32, 100, 101, 32, 102, 108, 101, 117, 114, 115, 32, 73, 73, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 114, 97, 99, 101, 114, 32, 100, 101, 115, 32, 116, 114, 97, 105, 116, 115, 32, 97, 117, 116, 111, 117, 114, 32, 100, 39, 117, 110, 32, 112, 111, 105, 110, 116, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 32, 58, 32, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 44, 32, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 67, 111, 108, 111, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 101, 116, 101, 99, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 111, 114, 105, 103, 105, 110, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 50, 44, 48, 46, 53, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 71, 114, 105, 122, 111, 117, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 73, 110, 118, 101, 114, 115, 101, 114, 32, 47, 32, 73, 110, 118, 101, 114, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 101, 114, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 117, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 95, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 95, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 32, 58, 10, 9, 82, 101, 110, 100, 117, 61, 48, 10, 9, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 49, 10, 9, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 61, 36, 50, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 49, 10, 9, 35, 35, 32, 71, 114, 105, 122, 111, 117, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 65, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 66, 61, 50, 53, 53, 10, 9, 9, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 67, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 68, 61, 50, 53, 53, 10, 9, 9, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 69, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 70, 61, 50, 53, 53, 10, 9, 9, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 71, 61, 48, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 72, 61, 55, 54, 52, 9, 10, 9, 9, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 51, 10, 9, 73, 110, 118, 101, 114, 115, 101, 114, 61, 36, 52, 10, 9, 70, 108, 111, 117, 61, 36, 53, 10, 9, 67, 117, 116, 95, 65, 61, 36, 54, 10, 9, 67, 117, 116, 95, 66, 61, 36, 55, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 10, 9, 9, 45, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 91, 45, 50, 93, 32, 36, 82, 101, 110, 100, 117, 44, 36, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 69, 44, 36, 86, 97, 108, 101, 117, 114, 95, 70, 44, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 71, 44, 36, 86, 97, 108, 101, 117, 114, 95, 72, 44, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 115, 101, 114, 44, 36, 70, 108, 111, 117, 44, 36, 67, 117, 116, 95, 65, 44, 36, 67, 117, 116, 95, 66, 10, 9, 9, 82, 101, 110, 100, 117, 61, 51, 10, 9, 9, 45, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 36, 82, 101, 110, 100, 117, 44, 36, 86, 97, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 82, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 69, 44, 36, 86, 97, 108, 101, 117, 114, 95, 70, 44, 36, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 86, 97, 108, 101, 117, 114, 95, 71, 44, 36, 86, 97, 108, 101, 117, 114, 95, 72, 44, 36, 82, 86, 66, 95, 82, 71, 66, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 44, 36, 73, 110, 118, 101, 114, 115, 101, 114, 44, 36, 70, 108, 111, 117, 44, 36, 67, 117, 116, 95, 65, 44, 36, 67, 117, 116, 95, 66, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 83, 105, 109, 112, 108, 101, 95, 70, 105, 108, 116, 114, 101, 95, 78, 111, 101, 108, 95, 50, 48, 49, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 73, 95, 67, 111, 117, 108, 101, 117, 114, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 97, 114, 107, 108, 121, 32, 58, 32, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 44, 32, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 92, 51, 48, 51, 92, 50, 53, 49, 98, 108, 111, 117, 105, 115, 115, 101, 109, 101, 110, 116, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 102, 108, 97, 115, 104, 101, 115, 61, 32, 105, 110, 116, 40, 49, 48, 48, 44, 49, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 40, 112, 105, 120, 101, 108, 115, 41, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 82, 86, 66, 32, 47, 32, 82, 71, 66, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 109, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 77, 111, 100, 101, 32, 49, 34, 44, 34, 77, 111, 100, 101, 32, 50, 34, 41, 32, 32, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 87, 105, 110, 100, 32, 45, 32, 87, 105, 110, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 56, 48, 44, 48, 44, 53, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 66, 108, 117, 114, 32, 45, 32, 66, 108, 117, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 83, 112, 114, 101, 97, 100, 32, 45, 32, 83, 112, 114, 101, 97, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 45, 53, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 56, 32, 114, 97, 121, 111, 110, 115, 32, 45, 32, 56, 32, 114, 97, 121, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 56, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 49, 48, 37, 34, 44, 34, 50, 48, 37, 34, 44, 34, 51, 48, 37, 34, 44, 34, 52, 48, 37, 34, 44, 34, 53, 48, 37, 34, 44, 34, 54, 48, 37, 34, 44, 34, 55, 48, 37, 34, 44, 34, 56, 48, 37, 34, 44, 34, 57, 48, 37, 34, 44, 34, 49, 48, 48, 37, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 32, 45, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 51, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 78, 111, 105, 115, 101, 32, 72, 117, 114, 108, 32, 45, 32, 78, 111, 105, 115, 101, 32, 72, 117, 114, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 46, 48, 48, 44, 49, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 32, 58, 10, 9, 110, 111, 109, 98, 114, 101, 95, 101, 98, 108, 111, 117, 105, 115, 115, 101, 109, 101, 110, 116, 115, 61, 36, 49, 10, 9, 100, 105, 109, 95, 99, 101, 110, 116, 114, 101, 61, 36, 50, 10, 9, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 53, 10, 9, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 54, 10, 9, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 55, 10, 9, 10, 9, 77, 111, 100, 101, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 61, 36, 56, 32, 32, 9, 9, 35, 35, 35, 32, 109, 111, 100, 101, 32, 50, 32, 112, 111, 117, 114, 32, 97, 118, 111, 105, 114, 32, 112, 101, 117, 32, 100, 101, 32, 100, 105, 102, 102, -23, 114, 101, 110, 99, 101, 32, 101, 110, 116, 114, 101, 32, 112, 108, 117, 115, 105, 101, 117, 114, 115, 32, 97, 112, 112, 101, 108, 115, 32, 100, 101, 32, 71, 39, 77, 73, 67, 10, 9, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 61, 36, 57, 10, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 36, 49, 48, 32, 32, 9, 9, 9, 35, 32, 100, 101, 32, 48, 32, -32, 32, 57, 48, 10, 9, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 61, 36, 49, 49, 10, 9, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 61, 36, 49, 50, 10, 9, 10, 9, 118, 97, 108, 101, 117, 114, 95, 98, 108, 117, 114, 61, 36, 49, 51, 32, 9, 9, 35, 32, 100, 101, 32, 48, 32, -32, 32, 49, 10, 9, 10, 9, 35, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 10, 9, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 52, 10, 9, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 49, 53, 10, 9, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 54, 10, 9, 10, 9, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 61, 36, 49, 55, 10, 9, 10, 9, 76, 101, 118, 101, 108, 115, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 61, 36, 49, 56, 10, 9, 10, 9, 78, 111, 105, 115, 101, 95, 72, 117, 114, 108, 61, 36, 49, 57, 10, 9, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 116, 101, 109, 112, 115, 49, 61, 64, 124, 10, 9, 9, 10, 9, 9, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 44, 49, 44, 52, 10, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 110, 111, 109, 98, 114, 101, 95, 101, 98, 108, 111, 117, 105, 115, 115, 101, 109, 101, 110, 116, 115, 10, 9, 9, 10, 9, 9, 10, 9, 9, 9, 9, 35, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 61, 61, 49, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 41, 41, 125, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 41, 41, 125, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 35, 35, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 61, 61, 48, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 116, 101, 109, 112, 115, 50, 61, 64, 124, 10, 9, 9, 9, 9, 9, 9, 97, 108, 101, 97, 61, 123, 123, 97, 98, 115, 40, 103, 41, 125, 43, 49, 43, 123, 123, 123, 36, 116, 101, 109, 112, 115, 50, 45, 36, 116, 101, 109, 112, 115, 49, 125, 43, 63, 40, 48, 44, 49, 41, 125, 42, 49, 48, 125, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 9, 9, 9, 9, 97, 108, 101, 97, 61, 123, 36, 97, 108, 101, 97, 45, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 97, 108, 101, 97, 62, 49, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 88, 95, 112, 111, 105, 110, 116, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 42, 36, 97, 108, 101, 97, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 116, 101, 109, 112, 115, 51, 61, 64, 124, 10, 9, 9, 9, 9, 9, 9, 97, 108, 101, 97, 61, 123, 123, 97, 98, 115, 40, 103, 41, 125, 43, 49, 43, 123, 123, 123, 36, 116, 101, 109, 112, 115, 51, 45, 36, 116, 101, 109, 112, 115, 49, 125, 43, 63, 40, 48, 44, 49, 41, 125, 42, 49, 48, 125, 125, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 9, 9, 9, 9, 97, 108, 101, 97, 61, 123, 36, 97, 108, 101, 97, 45, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 97, 108, 101, 97, 62, 49, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 89, 95, 112, 111, 105, 110, 116, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 42, 36, 97, 108, 101, 97, 125, 41, 125, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 35, 35, 35, 35, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 88, 95, 112, 111, 105, 110, 116, 44, 36, 89, 95, 112, 111, 105, 110, 116, 44, 36, 88, 95, 112, 111, 105, 110, 116, 44, 123, 36, 89, 95, 112, 111, 105, 110, 116, 43, 36, 100, 105, 109, 95, 99, 101, 110, 116, 114, 101, 125, 44, 123, 36, 88, 95, 112, 111, 105, 110, 116, 43, 36, 100, 105, 109, 95, 99, 101, 110, 116, 114, 101, 125, 44, 123, 36, 89, 95, 112, 111, 105, 110, 116, 43, 36, 100, 105, 109, 95, 99, 101, 110, 116, 114, 101, 125, 44, 123, 36, 88, 95, 112, 111, 105, 110, 116, 43, 36, 100, 105, 109, 95, 99, 101, 110, 116, 114, 101, 125, 44, 36, 89, 95, 112, 111, 105, 110, 116, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 84, 114, 97, 110, 115, 112, 97, 114, 101, 110, 99, 101, 95, 100, 101, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 9, 9, 9, 10, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 9, 10, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 49, 93, 32, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 10, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 10, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 10, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 10, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 10, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 10, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 9, 9, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 62, 48, 125, 10, 9, 9, 10, 9, 9, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 52, 53, 125, 10, 9, 9, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 42, 36, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 125, 47, 49, 48, 125, 41, 125, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 42, 36, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 125, 47, 49, 48, 125, 41, 125, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 42, 36, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 125, 47, 49, 48, 125, 41, 125, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 9, 9, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 61, 123, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 43, 57, 48, 125, 10, 9, 9, 9, 9, 45, 45, 119, 105, 110, 100, 91, 45, 50, 93, 32, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 97, 109, 112, 108, 105, 116, 117, 100, 101, 95, 119, 105, 110, 100, 42, 36, 84, 121, 112, 101, 95, 104, 117, 105, 116, 95, 98, 114, 97, 115, 125, 47, 49, 48, 125, 41, 125, 44, 36, 97, 110, 103, 108, 101, 95, 119, 105, 110, 100, 44, 36, 97, 116, 116, 101, 110, 117, 97, 116, 105, 111, 110, 95, 119, 105, 110, 100, 44, 36, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 119, 105, 110, 100, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 9, 9, 10, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 35, 32, 115, 112, 114, 101, 97, 100, 32, 99, 101, 110, 116, 114, 101, 10, 9, 9, 45, 103, 105, 109, 112, 95, 115, 112, 114, 101, 97, 100, 91, 45, 50, 93, 32, 36, 88, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 89, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 44, 36, 67, 104, 97, 110, 110, 101, 108, 95, 115, 112, 114, 101, 97, 100, 10, 9, 9, 10, 9, 9, 35, 32, 109, -23, 108, 97, 110, 103, 101, 32, -23, 116, 111, 105, 108, 101, 115, 32, 101, 116, 32, 99, 101, 110, 116, 114, 101, 9, 10, 9, 9, 35, 35, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 10, 9, 9, 35, 32, 101, 102, 102, 101, 116, 115, 9, 9, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 118, 97, 108, 101, 117, 114, 95, 98, 108, 117, 114, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 76, 101, 118, 101, 108, 115, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 62, 51, 125, 10, 9, 9, 9, 45, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 45, 49, 93, 32, 36, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 78, 111, 105, 115, 101, 95, 72, 117, 114, 108, 62, 48, 125, 10, 9, 9, 9, 45, 110, 111, 105, 115, 101, 95, 104, 117, 114, 108, 91, 45, 49, 93, 32, 36, 78, 111, 105, 115, 101, 95, 72, 117, 114, 108, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 10, 9, 9, 10, 9, 9, 35, 32, 114, -23, 115, 117, 108, 116, 97, 116, 32, 102, 105, 110, 97, 108, 32, 99, 111, 109, 112, 111, 115, 105, 116, 105, 111, 110, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 10, 9, 10, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 83, 112, 97, 114, 107, 108, 121, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, -23, 98, 117, 116, 32, 32, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 105, 114, 97, 108, 101, 32, 49, 32, 47, 32, 83, 112, 105, 114, 97, 108, 32, 49, 58, 32, 115, 97, 109, 106, 95, 115, 112, 105, 95, 103, 105, 109, 112, 44, 32, 115, 97, 109, 106, 95, 115, 112, 105, 95, 103, 105, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 105, 114, 97, 108, 101, 32, 47, 32, 83, 112, 105, 114, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 46, 53, 44, 51, 53, 57, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 46, 48, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 114, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 111, 105, 110, 116, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 34, 44, 34, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 80, 111, 108, 121, 103, 111, 110, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 76, 105, 103, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 76, 105, 110, 101, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 76, 105, 103, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 76, 105, 110, 101, 115, 32, 99, 111, 108, 111, 114, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 108, 111, 114, 34, 44, 34, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 80, 111, 108, 121, 103, 111, 110, 115, 32, 50, 32, 99, 111, 108, 111, 114, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 114, 101, 110, 100, 117, 32, 47, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 97, 108, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 110, 115, 32, 100, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 47, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 111, 102, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 115, 112, 105, 95, 103, 105, 109, 112, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 116, 111, 117, 114, 115, 61, 36, 51, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 36, 52, 10, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 36, 53, 10, 9, 114, 101, 110, 100, 117, 61, 36, 54, 10, 9, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 61, 36, 55, 10, 9, 114, 95, 114, 101, 110, 100, 117, 61, 36, 56, 10, 9, 118, 95, 114, 101, 110, 100, 117, 61, 36, 57, 10, 9, 98, 95, 114, 101, 110, 100, 117, 61, 36, 49, 48, 10, 9, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 49, 10, 9, 97, 108, 112, 104, 97, 61, 36, 49, 50, 10, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 111, 117, 114, 115, 42, 51, 54, 48, 125, 10, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 10, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 10, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 97, 108, 112, 104, 97, 61, 61, 48, 125, 32, 9, 10, 9, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 9, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 45, 112, 111, 105, 110, 116, 32, 36, 88, 44, 36, 89, 44, 48, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 48, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 52, 125, 32, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 53, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 54, 125, 32, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 55, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 50, 53, 53, 45, 36, 114, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 118, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 98, 95, 114, 101, 110, 100, 117, 125, 10, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 10, 9, 9, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 88, 10, 9, 9, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 89, 9, 9, 10, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 9, 10, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 116, 104, 101, 116, 97, 62, 48, 125, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 115, 97, 109, 106, 95, 115, 112, 105, 95, 103, 105, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 115, 112, 105, 95, 103, 105, 109, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 9, 9, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 105, 114, 97, 108, 101, 32, 50, 32, 47, 32, 83, 112, 105, 114, 97, 108, 32, 50, 58, 32, 115, 97, 109, 106, 95, 115, 112, 105, 50, 95, 103, 105, 109, 112, 44, 32, 115, 97, 109, 106, 95, 115, 112, 105, 50, 95, 103, 105, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 105, 114, 97, 108, 101, 32, 47, 32, 83, 112, 105, 114, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 49, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 44, 48, 46, 53, 44, 51, 53, 57, 46, 57, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 101, 102, 102, 46, 32, 97, 103, 114, 97, 110, 100, 105, 115, 115, 101, 109, 101, 110, 116, 32, 47, 32, 69, 120, 112, 97, 110, 115, 105, 111, 110, 32, 99, 111, 101, 102, 102, 105, 99, 105, 101, 110, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 46, 48, 50, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 114, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 111, 105, 110, 116, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 34, 44, 34, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 80, 111, 108, 121, 103, 111, 110, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 76, 105, 103, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 76, 105, 110, 101, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 67, 101, 114, 99, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 67, 105, 114, 99, 108, 101, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 80, 111, 105, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 80, 111, 105, 110, 116, 115, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 82, 101, 99, 116, 97, 110, 103, 108, 101, 115, 34, 44, 34, 82, 101, 99, 116, 97, 110, 103, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 83, 112, 108, 105, 110, 101, 115, 34, 44, 34, 83, 112, 108, 105, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 114, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 76, 105, 103, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 76, 105, 110, 101, 115, 32, 99, 111, 108, 111, 114, 34, 44, 34, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 83, 101, 103, 109, 101, 110, 116, 115, 32, 99, 111, 108, 111, 114, 34, 44, 34, 80, 111, 108, 121, 103, 111, 110, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 80, 111, 108, 121, 103, 111, 110, 115, 32, 50, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 32, 98, 105, 115, 34, 44, 34, 84, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 98, 105, 115, 34, 44, 34, 82, 101, 99, 116, 97, 110, 103, 108, 101, 115, 32, 98, 105, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 114, 101, 110, 100, 117, 32, 47, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 97, 108, 32, 114, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 110, 115, 32, 100, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 47, 32, 68, 105, 114, 101, 99, 116, 105, 111, 110, 32, 111, 102, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 50, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 115, 97, 109, 106, 95, 115, 112, 105, 50, 95, 103, 105, 109, 112, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 116, 111, 117, 114, 115, 61, 36, 51, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 36, 52, 10, 9, 99, 111, 101, 102, 102, 95, 100, 105, 109, 61, 36, 53, 10, 9, 114, 101, 110, 100, 117, 61, 36, 54, 10, 9, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 61, 36, 55, 10, 9, 114, 95, 114, 101, 110, 100, 117, 61, 36, 56, 10, 9, 118, 95, 114, 101, 110, 100, 117, 61, 36, 57, 10, 9, 98, 95, 114, 101, 110, 100, 117, 61, 36, 49, 48, 10, 9, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 49, 10, 9, 97, 108, 112, 104, 97, 61, 36, 49, 50, 10, 9, 118, 97, 108, 101, 117, 114, 95, 115, 112, 114, 101, 97, 100, 61, 36, 49, 51, 10, 9, 102, 108, 111, 117, 61, 36, 49, 52, 10, 9, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 49, 53, 10, 9, 10, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 111, 117, 114, 115, 42, 51, 54, 48, 125, 10, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 10, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 10, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 48, 10, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 97, 108, 112, 104, 97, 61, 61, 48, 125, 32, 9, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 32, 9, 9, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 100, 111, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 115, 101, 110, 115, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 9, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 36, 99, 111, 101, 102, 102, 95, 100, 105, 109, 42, 45, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 43, 123, 36, 116, 104, 101, 116, 97, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 112, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 9, 9, 45, 112, 111, 105, 110, 116, 32, 36, 88, 44, 36, 89, 44, 48, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 48, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 109, 111, 115, 97, 105, 113, 117, 101, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 50, 125, 10, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 115, 101, 103, 109, 101, 110, 116, 115, 32, 118, 101, 114, 115, 32, 108, 101, 32, 99, 101, 110, 116, 114, 101, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 115, 101, 103, 109, 101, 110, 116, 115, 32, 115, 117, 99, 99, 101, 115, 115, 105, 102, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 101, 114, 99, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 53, 125, 10, 9, 9, 9, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 88, 44, 36, 89, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 44, 48, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 112, 111, 105, 110, 116, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 54, 125, 10, 9, 9, 9, 9, 9, 45, 112, 111, 105, 110, 116, 32, 36, 88, 44, 36, 89, 44, 48, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 55, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 56, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 57, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 48, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 49, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 50, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 35, 35, 32, 115, 112, 108, 105, 110, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 51, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 115, 112, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 36, 88, 44, 36, 89, 44, 123, 45, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 45, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 115, 112, 108, 105, 110, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 52, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 115, 112, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 36, 88, 44, 36, 89, 44, 123, 45, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 123, 45, 36, 100, 105, 109, 101, 110, 115, 105, 111, 110, 95, 114, 101, 110, 100, 117, 42, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 44, 49, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 44, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 53, 125, 10, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 54, 125, 32, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 32, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 55, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 44, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 50, 53, 53, 45, 36, 114, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 118, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 98, 95, 114, 101, 110, 100, 117, 125, 10, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 49, 32, 98, 105, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 56, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 50, 53, 53, 45, 36, 114, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 118, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 98, 95, 114, 101, 110, 100, 117, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 10, 9, 9, 9, 9, 35, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 115, 32, 50, 32, 98, 105, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 49, 57, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 51, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 49, 44, 123, 50, 53, 53, 45, 36, 114, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 118, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 98, 95, 114, 101, 110, 100, 117, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 115, 32, 98, 105, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 114, 101, 110, 100, 117, 61, 61, 50, 48, 125, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 49, 44, 36, 114, 95, 114, 101, 110, 100, 117, 44, 36, 118, 95, 114, 101, 110, 100, 117, 44, 36, 98, 95, 114, 101, 110, 100, 117, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 48, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 32, 52, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 88, 44, 36, 89, 44, 36, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 44, 36, 89, 44, 49, 44, 123, 50, 53, 53, 45, 36, 114, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 118, 95, 114, 101, 110, 100, 117, 125, 44, 123, 50, 53, 53, 45, 36, 98, 95, 114, 101, 110, 100, 117, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 99, 104, 97, 110, 103, 101, 109, 101, 110, 116, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 32, 9, 9, 9, 9, 10, 9, 9, 9, 9, 88, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 88, 10, 9, 9, 9, 9, 89, 95, 112, 114, 101, 99, 101, 100, 101, 110, 116, 61, 36, 89, 10, 9, 9, 9, 9, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 61, 123, 36, 99, 111, 109, 112, 116, 101, 117, 114, 95, 98, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 45, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 9, 45, 119, 104, 105, 108, 101, 32, 123, 36, 116, 104, 101, 116, 97, 62, 48, 125, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 32, 36, 118, 97, 108, 101, 117, 114, 95, 115, 112, 114, 101, 97, 100, 10, 9, 9, 45, 98, 108, 117, 114, 32, 36, 102, 108, 111, 117, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 32, 36, 100, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 115, 97, 109, 106, 95, 115, 112, 105, 50, 95, 103, 105, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 115, 97, 109, 106, 95, 115, 112, 105, 50, 95, 103, 105, 109, 112, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, 83, 112, 105, 114, 97, 108, 101, 115, 32, 112, 108, 101, 105, 110, 101, 115, 32, 32, 115, 97, 109, 106, 95, 115, 112, 105, 40, 120, 41, 95, 103, 105, 109, 112, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 69, 110, 115, 101, 109, 98, 108, 101, 32, -55, 116, 111, 105, 108, 101, 115, 32, 47, 32, 83, 116, 97, 114, 115, 32, 70, 105, 103, 117, 114, 101, 115, 32, 103, -23, 111, 109, -23, 116, 114, 105, 113, 117, 101, 115, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 95, 115, 97, 109, 106, 32, 58, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 95, 115, 97, 109, 106, 44, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 101, 110, 116, 114, 101, 32, 47, 32, 67, 101, 110, 116, 101, 114, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 47, 82, 97, 100, 105, 117, 115, 32, 82, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 47, 82, 97, 100, 105, 117, 115, 32, 114, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 80, 111, 115, 105, 116, 105, 111, 110, 41, 32, 32, 61, 32, 105, 110, 116, 40, 49, 53, 44, 45, 49, 48, 48, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 67, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 121, 108, 111, 32, 47, 32, 80, 101, 110, 32, 40, 68, 105, 108, 97, 116, 101, 32, 80, 105, 120, 101, 108, 115, 41, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 116, 111, 117, 114, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 116, 117, 114, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 32, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 42, 32, 49, 34, 44, 34, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 42, 32, 49, 48, 32, 76, 69, 78, 84, 32, 47, 32, 83, 76, 79, 87, 34, 44, 34, 84, 111, 117, 114, 115, 32, 47, 32, 84, 117, 114, 110, 115, 32, 42, 32, 49, 48, 48, 32, 84, 82, 69, 83, 32, 76, 69, 78, 84, 32, 47, 32, 86, 69, 82, 89, 32, 83, 76, 79, 87, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 32, 47, 32, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 40, 68, 101, 103, 114, 92, 51, 48, 51, 92, 50, 53, 49, 115, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 118, 105, 115, 101, 114, 32, 47, 32, 68, 105, 118, 105, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 45, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 47, 32, 49, 34, 44, 34, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 45, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 47, 49, 48, 32, 76, 69, 78, 84, 32, 47, 32, 83, 76, 79, 87, 34, 44, 34, 73, 110, 99, 114, 101, 109, 101, 110, 116, 32, 97, 110, 103, 117, 108, 97, 105, 114, 101, 45, 65, 110, 103, 117, 108, 97, 114, 32, 105, 110, 99, 114, 101, 109, 101, 110, 116, 32, 47, 49, 48, 48, 32, 84, 82, 69, 83, 32, 76, 69, 78, 84, 32, 47, 32, 86, 69, 82, 89, 32, 83, 76, 79, 87, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 114, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 49, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 50, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 51, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 52, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 53, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 54, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 55, 34, 44, 34, 70, 111, 114, 109, 117, 108, 101, 47, 70, 111, 114, 109, 117, 108, 97, 32, 56, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 105, 110, 116, 115, 32, 40, 82, 97, 121, 111, 110, 47, 82, 97, 100, 105, 117, 115, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 105, 110, 116, 115, 32, 40, 67, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 110, 101, 115, 32, 40, 69, 112, 97, 105, 115, 115, 101, 117, 114, 47, 84, 104, 105, 99, 107, 110, 101, 115, 115, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 110, 101, 115, 32, 40, 67, 111, 117, 108, 101, 117, 114, 47, 67, 111, 108, 111, 114, 41, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 95, 115, 97, 109, 106, 32, 58, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 61, 123, 36, 49, 47, 49, 48, 48, 42, 119, 125, 10, 9, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 61, 123, 36, 50, 47, 49, 48, 48, 42, 104, 125, 10, 9, 9, 9, 35, 35, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 82, 97, 121, 111, 110, 95, 49, 61, 36, 51, 10, 9, 82, 97, 121, 111, 110, 95, 50, 61, 36, 52, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 61, 36, 53, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 54, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 55, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 56, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 57, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 49, 48, 10, 9, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 61, 36, 49, 49, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 61, 36, 49, 50, 10, 9, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 116, 111, 117, 114, 115, 61, 36, 49, 51, 10, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 36, 49, 52, 10, 9, 68, 105, 118, 105, 115, 101, 114, 95, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 36, 49, 53, 10, 9, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 36, 49, 54, 10, 9, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 61, 36, 49, 55, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 36, 49, 56, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 36, 49, 57, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 36, 50, 48, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 36, 50, 49, 10, 9, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 50, 50, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 61, 36, 50, 51, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 61, 36, 50, 52, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 61, 36, 50, 53, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 61, 36, 50, 54, 10, 9, 10, 9, 9, 9, 35, 35, 32, 100, 105, 118, 101, 114, 115, 10, 9, 70, 108, 111, 117, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 61, 36, 50, 55, 10, 9, 83, 112, 114, 101, 97, 100, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 61, 36, 50, 56, 10, 9, 68, 101, 102, 111, 114, 109, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 61, 36, 50, 57, 10, 9, 98, 108, 101, 110, 100, 61, 36, 51, 48, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 51, 49, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 116, 104, 101, 116, 97, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 82, 97, 121, 111, 110, 95, 50, 61, 61, 48, 125, 10, 9, 9, 82, 97, 121, 111, 110, 95, 50, 61, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 116, 111, 117, 114, 115, 61, 61, 49, 125, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 61, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 42, 49, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 95, 116, 111, 117, 114, 115, 61, 61, 50, 125, 10, 9, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 61, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 42, 49, 48, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 68, 105, 118, 105, 115, 101, 114, 95, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 61, 49, 125, 10, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 47, 49, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 68, 105, 118, 105, 115, 101, 114, 95, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 61, 50, 125, 10, 9, 9, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 61, 123, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 47, 49, 48, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 61, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 47, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 42, 51, 54, 48, 125, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 45, 105, 102, 32, 123, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 62, 48, 125, 9, 35, 32, 50, 32, -23, 116, 97, 112, 101, 115, 32, 34, 108, 105, 103, 110, 101, 115, 43, 100, 105, 108, 97, 116, 101, 34, 32, 112, 117, 105, 115, 32, 34, 116, 114, 97, 105, 116, 115, 45, 112, 111, 105, 110, 116, 115, 34, 10, 9, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 77, 111, 100, 101, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 48, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 50, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 51, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 52, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 53, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 54, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 55, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 84, 114, 97, 99, 101, 114, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 62, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 10, 9, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 43, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 125, 10, 9, 9, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 45, 100, 111, 110, 101, 9, 10, 9, 10, 9, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 68, 105, 108, 97, 116, 101, 95, 83, 116, 121, 108, 111, 10, 9, 9, 10, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 9, 116, 104, 101, 116, 97, 61, 48, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 48, 10, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 48, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 62, 48, 125, 124, 124, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 125, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 10, 9, 9, 9, 9, 9, 35, 35, 32, 77, 111, 100, 101, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 48, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 50, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 51, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 52, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 53, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 54, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 55, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 84, 114, 97, 99, 101, 114, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 62, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 45, 116, 114, 97, 105, 116, 95, 101, 112, 97, 105, 115, 95, 115, 97, 109, 106, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 10, 9, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 43, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 125, 10, 9, 9, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 45, 100, 111, 110, 101, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 111, 117, 114, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 35, 35, 32, 77, 111, 100, 101, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 48, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 50, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 51, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 52, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 53, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 54, 125, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 123, 36, 82, 97, 121, 111, 110, 95, 50, 43, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 125, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 55, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 88, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 99, 111, 115, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 10, 9, 9, 9, 9, 9, 9, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 61, 123, 36, 99, 101, 110, 116, 114, 101, 95, 111, 114, 105, 103, 105, 110, 101, 95, 89, 43, 123, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 45, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 41, 125, 125, 45, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 83, 116, 121, 108, 111, 42, 123, 115, 105, 110, 40, 123, 123, 36, 82, 97, 121, 111, 110, 95, 49, 43, 36, 82, 97, 121, 111, 110, 95, 50, 125, 47, 36, 82, 97, 121, 111, 110, 95, 50, 125, 42, 123, 112, 105, 47, 49, 56, 48, 42, 36, 116, 104, 101, 116, 97, 125, 41, 125, 125, 125, 125, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 35, 35, 32, 84, 114, 97, 99, 101, 114, 10, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 62, 49, 125, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 45, 116, 114, 97, 105, 116, 95, 101, 112, 97, 105, 115, 95, 115, 97, 109, 106, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 76, 105, 103, 110, 101, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 76, 105, 103, 110, 101, 115, 95, 101, 112, 97, 105, 115, 115, 101, 117, 114, 60, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 83, 116, 121, 108, 111, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 62, 48, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 35, 35, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 9, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 44, 36, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 44, 36, 80, 111, 105, 110, 116, 115, 95, 82, 97, 121, 111, 110, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 80, 111, 105, 110, 116, 115, 10, 9, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 88, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 88, 10, 9, 9, 9, 9, 65, 110, 99, 105, 101, 110, 95, 112, 111, 105, 110, 116, 95, 89, 61, 36, 78, 111, 117, 118, 101, 97, 117, 95, 112, 111, 105, 110, 116, 95, 89, 10, 9, 9, 9, 9, 116, 104, 101, 116, 97, 61, 123, 36, 116, 104, 101, 116, 97, 43, 36, 73, 110, 99, 114, 101, 109, 101, 110, 116, 95, 97, 110, 103, 117, 108, 97, 105, 114, 101, 125, 10, 9, 9, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 9, 9, 45, 100, 111, 110, 101, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 116, 114, 97, 105, 116, 95, 101, 112, 97, 105, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 116, 114, 97, 105, 116, 95, 101, 112, 97, 105, 115, 95, 115, 97, 109, 106, 32, 58, 10, 9, 35, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 9, 9, 35, 32, 116, 114, 105, 97, 110, 103, 108, 101, 32, 100, 101, 32, 98, 97, 115, 101, 10, 9, 9, 9, 35, 32, 100, -23, 116, 101, 114, 109, 105, 110, 101, 114, 32, 52, 32, 112, 111, 105, 110, 116, 115, 32, 112, 111, 117, 114, 32, 116, 114, 97, 99, 101, 114, 32, 117, 110, 32, 114, 101, 99, 116, 97, 110, 103, 108, 101, 9, 10, 9, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 45, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 51, 45, 36, 49, 125, 61, 61, 48, 125, 32, 88, 49, 61, 123, 36, 49, 45, 123, 36, 53, 47, 50, 125, 125, 32, 89, 49, 61, 36, 50, 32, 88, 50, 61, 123, 36, 51, 45, 123, 36, 53, 47, 50, 125, 125, 32, 89, 50, 61, 36, 52, 32, 88, 51, 61, 123, 36, 51, 43, 123, 36, 53, 47, 50, 125, 125, 32, 89, 51, 61, 36, 52, 32, 88, 52, 61, 123, 36, 49, 43, 123, 36, 53, 47, 50, 125, 125, 32, 89, 52, 61, 36, 50, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 32, 32, 32, 45, 105, 102, 32, 123, 123, 36, 52, 45, 36, 50, 125, 61, 61, 48, 125, 32, 88, 49, 61, 36, 49, 32, 89, 49, 61, 123, 36, 50, 43, 123, 36, 53, 47, 50, 125, 125, 32, 88, 50, 61, 36, 51, 32, 89, 50, 61, 123, 36, 52, 43, 123, 36, 53, 47, 50, 125, 125, 32, 88, 51, 61, 36, 51, 32, 89, 51, 61, 123, 36, 52, 45, 123, 36, 53, 47, 50, 125, 125, 32, 88, 52, 61, 36, 49, 32, 89, 52, 61, 123, 36, 50, 45, 123, 36, 53, 47, 50, 125, 125, 10, 9, 9, 32, 32, 32, 45, 101, 108, 115, 101, 32, 97, 110, 103, 108, 101, 95, 116, 114, 105, 97, 110, 103, 108, 101, 61, 123, 123, 123, 112, 105, 125, 47, 50, 125, 45, 123, 97, 116, 97, 110, 40, 123, 123, 36, 52, 45, 36, 50, 125, 47, 123, 36, 51, 45, 36, 49, 125, 125, 41, 125, 125, 32, 88, 95, 116, 114, 105, 97, 110, 103, 108, 101, 61, 123, 123, 36, 53, 47, 50, 125, 42, 123, 99, 111, 115, 40, 36, 97, 110, 103, 108, 101, 95, 116, 114, 105, 97, 110, 103, 108, 101, 41, 125, 125, 32, 89, 95, 116, 114, 105, 97, 110, 103, 108, 101, 61, 123, 123, 36, 53, 47, 50, 125, 42, 123, 115, 105, 110, 40, 36, 97, 110, 103, 108, 101, 95, 116, 114, 105, 97, 110, 103, 108, 101, 41, 125, 125, 10, 9, 9, 9, 32, 88, 49, 61, 123, 36, 49, 45, 36, 88, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 89, 49, 61, 123, 36, 50, 43, 36, 89, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 88, 50, 61, 123, 36, 51, 45, 36, 88, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 89, 50, 61, 123, 36, 52, 43, 36, 89, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 88, 51, 61, 123, 36, 51, 43, 36, 88, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 89, 51, 61, 123, 36, 52, 45, 36, 89, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 88, 52, 61, 123, 36, 49, 43, 36, 88, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 32, 89, 52, 61, 123, 36, 50, 45, 36, 89, 95, 116, 114, 105, 97, 110, 103, 108, 101, 125, 10, 9, 9, 32, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 36, 88, 49, 44, 36, 89, 49, 44, 36, 88, 50, 44, 36, 89, 50, 44, 36, 88, 51, 44, 36, 89, 51, 44, 36, 88, 52, 44, 36, 89, 52, 44, 49, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 10, 9, 9, 45, 105, 102, 32, 123, 36, 54, 61, 61, 49, 125, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 49, 44, 36, 50, 44, 123, 36, 53, 47, 50, 125, 44, 49, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 99, 105, 114, 99, 108, 101, 91, 45, 49, 93, 32, 36, 51, 44, 36, 52, 44, 123, 36, 53, 47, 50, 125, 44, 49, 44, 36, 55, 44, 36, 56, 44, 36, 57, 44, 36, 49, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 118, 101, 114, 98, 111, 115, 101, 32, 43, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 70, 111, 110, 99, 116, 105, 111, 110, 32, 116, 114, 97, 105, 116, 95, 101, 112, 97, 105, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 97, 114, 114, 101, 108, 97, 103, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 115, 32, 67, 111, 110, 116, 111, 117, 114, 115, 32, 58, 32, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 69, 100, 103, 101, 32, 79, 102, 102, 115, 101, 116, 115, 34, 44, 34, 69, 100, 103, 101, 32, 79, 102, 102, 115, 101, 116, 115, 32, 38, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 34, 44, 34, 73, 115, 111, 112, 104, 111, 116, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 69, 100, 103, 101, 115, 32, 79, 102, 102, 115, 101, 116, 115, 32, 45, 32, 69, 100, 103, 101, 115, 32, 79, 102, 102, 115, 101, 116, 115, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 52, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 32, 45, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 101, 118, 101, 108, 115, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 71, 105, 109, 112, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 45, 32, 71, 105, 109, 112, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 48, 44, 48, 44, 51, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 105, 111, 110, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 32, 58, 10, 9, 9, 9, 9, 82, 101, 110, 100, 117, 61, 36, 49, 10, 9, 35, 35, 70, 105, 108, 116, 114, 101, 32, 69, 100, 103, 101, 115, 32, 79, 102, 102, 115, 101, 116, 115, 10, 9, 9, 9, 9, 69, 79, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 50, 10, 9, 9, 9, 9, 69, 79, 95, 84, 104, 114, 101, 115, 104, 111, 108, 100, 61, 36, 51, 10, 9, 9, 9, 9, 69, 79, 95, 83, 99, 97, 108, 101, 61, 36, 52, 10, 9, 9, 9, 9, 69, 79, 95, 84, 104, 105, 99, 107, 110, 101, 115, 115, 61, 36, 53, 10, 9, 69, 79, 95, 78, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 115, 61, 48, 10, 9, 35, 35, 70, 105, 108, 116, 114, 101, 32, 73, 115, 111, 112, 104, 111, 116, 101, 115, 10, 9, 9, 9, 9, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 76, 101, 118, 101, 108, 115, 61, 36, 54, 10, 9, 9, 9, 9, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 55, 10, 9, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 70, 105, 108, 108, 105, 110, 103, 61, 48, 10, 9, 35, 35, 70, 105, 108, 116, 114, 101, 32, 71, 105, 109, 112, 32, 65, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 10, 9, 9, 9, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 56, 10, 9, 9, 9, 9, 10, 9, 35, 35, 66, 108, 101, 110, 100, 10, 9, 9, 9, 9, 98, 108, 101, 110, 100, 61, 36, 57, 10, 9, 9, 9, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 49, 48, 10, 9, 9, 9, 9, 105, 110, 118, 101, 114, 116, 61, 36, 49, 49, 10, 9, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 48, 125, 10, 9, 9, 9, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 36, 69, 79, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 69, 79, 95, 84, 104, 114, 101, 115, 104, 111, 108, 100, 44, 36, 69, 79, 95, 83, 99, 97, 108, 101, 44, 36, 69, 79, 95, 84, 104, 105, 99, 107, 110, 101, 115, 115, 44, 36, 69, 79, 95, 78, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 115, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 95, 111, 102, 102, 115, 101, 116, 115, 32, 36, 69, 79, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 69, 79, 95, 84, 104, 114, 101, 115, 104, 111, 108, 100, 44, 36, 69, 79, 95, 83, 99, 97, 108, 101, 44, 36, 69, 79, 95, 84, 104, 105, 99, 107, 110, 101, 115, 115, 44, 36, 69, 79, 95, 78, 101, 103, 97, 116, 105, 118, 101, 95, 99, 111, 108, 111, 114, 115, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 9, 9, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 48, 93, 32, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 76, 101, 118, 101, 108, 115, 44, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 70, 105, 108, 108, 105, 110, 103, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 82, 101, 110, 100, 117, 61, 61, 50, 125, 10, 9, 9, 9, 45, 45, 103, 105, 109, 112, 95, 105, 115, 111, 112, 104, 111, 116, 101, 115, 91, 48, 93, 32, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 76, 101, 118, 101, 108, 115, 44, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 73, 115, 111, 112, 104, 111, 116, 101, 115, 95, 70, 105, 108, 108, 105, 110, 103, 10, 9, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 49, 44, 49, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 10, 9, 9, 35, 35, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 32, 45, 105, 102, 32, 123, 36, 57, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -55, 116, 111, 105, 108, 101, 32, 100, 101, 32, 80, 111, 109, 112, -23, -17, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 50, 32, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 32, 58, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 110, 100, 32, 47, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 116, 105, 102, 32, 47, 32, 80, 97, 116, 116, 101, 114, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 77, 111, 116, 105, 102, 32, 49, 34, 44, 34, 77, 111, 116, 105, 102, 32, 50, 32, 68, 101, 110, 115, 101, 34, 44, 34, 77, 111, 116, 105, 102, 32, 51, 32, 76, 105, 103, 110, 101, 115, 34, 44, 34, 77, 111, 116, 105, 102, 32, 52, 32, 66, 117, 108, 108, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 117, 105, 108, 32, 47, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 65, 32, 70, 111, 110, 100, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 66, 32, 70, 111, 110, 100, 32, 61, 32, 105, 110, 116, 40, 49, 57, 50, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 40, 54, 52, 44, 50, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 49, 34, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 50, 34, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 51, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 114, 109, 101, 115, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 84, 121, 112, 101, 32, 49, 34, 44, 34, 84, 121, 112, 101, 32, 50, 32, 97, 118, 101, 99, 32, 66, 108, 101, 110, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 32, 84, 121, 112, 101, 32, 50, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 50, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 32, 84, 121, 112, 101, 32, 50, 32, 58, 32, 66, 108, 101, 110, 100, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 50, 32, 47, 32, 66, 108, 117, 114, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 114, 98, 101, 32, 47, 32, 67, 117, 114, 118, 101, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 101, 120, 116, 117, 114, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 109, 98, 111, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 32, 58, 10, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 36, 49, 10, 70, 108, 111, 117, 95, 49, 61, 36, 50, 9, 35, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 10, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 61, 36, 51, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 61, 36, 52, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 61, 36, 53, 10, 73, 110, 118, 101, 114, 115, 101, 114, 95, 67, 111, 117, 108, 101, 117, 114, 115, 61, 36, 54, 10, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 55, 10, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 56, 10, 70, 111, 114, 109, 101, 115, 61, 36, 57, 10, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 36, 49, 48, 10, 98, 108, 101, 110, 100, 61, 36, 49, 49, 10, 111, 112, 97, 99, 105, 116, 101, 61, 36, 49, 50, 10, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 49, 51, 10, 70, 108, 111, 117, 95, 50, 61, 36, 49, 52, 10, 83, 112, 114, 101, 97, 100, 95, 99, 97, 109, 111, 117, 102, 108, 97, 103, 101, 61, 36, 49, 53, 10, 67, 117, 116, 95, 65, 61, 36, 49, 54, 9, 10, 67, 117, 116, 95, 66, 61, 36, 49, 55, 10, 67, 111, 117, 114, 98, 101, 61, 36, 49, 56, 10, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 49, 57, 10, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 50, 48, 10, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 50, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 76, 97, 114, 103, 101, 117, 114, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 61, 123, 104, 125, 10, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 10, 9, 45, 99, 111, 108, 111, 114, 109, 97, 112, 91, 45, 49, 93, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 115, 44, 48, 10, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 10, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 48, 125, 124, 124, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 49, 125, 124, 124, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 51, 125, 125, 10, 9, 9, 45, 116, 97, 113, 117, 105, 110, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 48, 125, 44, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 48, 125, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 70, 111, 114, 109, 101, 115, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 114, 111, 117, 110, 100, 40, 123, 36, 70, 111, 114, 109, 101, 115, 42, 48, 46, 55, 53, 125, 41, 125, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 50, 10, 9, 75, 95, 105, 109, 95, 73, 77, 61, 49, 54, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 73, 77, 65, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 77, 125, 45, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 73, 77, 73, 78, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 109, 125, 43, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 45, 105, 102, 32, 123, 36, 73, 77, 65, 88, 62, 50, 53, 53, 125, 32, 73, 77, 65, 88, 61, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 73, 77, 73, 78, 60, 48, 125, 32, 73, 77, 73, 78, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 49, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 50, 125, 32, 45, 99, 91, 45, 49, 93, 32, 36, 73, 77, 73, 78, 44, 36, 73, 77, 65, 88, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 51, 125, 32, 45, 110, 91, 45, 49, 93, 32, 36, 73, 77, 73, 78, 44, 36, 73, 77, 65, 88, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 48, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 49, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 48, 44, 50, 53, 53, 10, 9, 9, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 45, 48, 46, 50, 53, 44, 48, 46, 55, 53, 10, 9, 9, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 50, 125, 10, 9, 9, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 48, 44, 51, 10, 9, 9, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 45, 48, 46, 56, 44, 49, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 45, 48, 46, 50, 53, 44, 48, 46, 55, 53, 10, 9, 9, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 51, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 123, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 42, 52, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 123, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 42, 49, 48, 125, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 48, 125, 41, 125, 43, 48, 46, 49, 125, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 125, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 123, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 45, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 125, 61, 61, 48, 125, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 62, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 125, 10, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 101, 114, 95, 67, 111, 117, 108, 101, 117, 114, 115, 61, 61, 49, 125, 9, 10, 9, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 35, 32, 111, 98, 116, 101, 110, 105, 114, 32, 117, 110, 32, 102, 111, 110, 100, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 100, 105, 102, 102, -23, 114, 101, 110, 116, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 55, 44, 55, 44, 49, 44, 51, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 49, 50, 55, 44, 49, 50, 55, 44, 49, 44, 51, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 49, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 51, 10, 9, 9, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 53, 48, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 42, 42, 42, 32, 97, 112, 112, 108, 105, 113, 117, 101, 114, 32, 115, 117, 114, 32, 116, 111, 117, 115, 32, 108, 101, 115, 32, 99, 97, 108, 113, 117, 101, 115, 10, 9, 45, 100, 101, 102, 111, 114, 109, 32, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 9, 45, 98, 108, 117, 114, 32, 36, 70, 108, 111, 117, 95, 50, 10, 9, 45, 115, 112, 114, 101, 97, 100, 32, 36, 83, 112, 114, 101, 97, 100, 95, 99, 97, 109, 111, 117, 102, 108, 97, 103, 101, 10, 9, 45, 105, 102, 32, 123, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 62, 48, 125, 10, 9, 9, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 42, 42, 42, 32, 70, 73, 78, 32, 97, 112, 112, 108, 105, 113, 117, 101, 114, 32, 115, 117, 114, 32, 116, 111, 117, 115, 32, 108, 101, 115, 32, 99, 97, 108, 113, 117, 101, 115, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 67, 117, 116, 95, 65, 62, 36, 67, 117, 116, 95, 66, 125, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 36, 67, 117, 116, 95, 66, 44, 36, 67, 117, 116, 95, 65, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 36, 67, 117, 116, 95, 65, 44, 36, 67, 117, 116, 95, 66, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 114, 98, 101, 33, 61, 49, 50, 56, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 36, 67, 111, 117, 114, 98, 101, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 114, 105, 115, 95, 89, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 66, 97, 108, 108, 101, 32, 51, 68, 32, 58, 32, 98, 97, 108, 108, 101, 95, 51, 68, 95, 115, 97, 109, 106, 44, 32, 98, 97, 108, 108, 101, 95, 51, 68, 95, 115, 97, 109, 106, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 66, 97, 108, 108, 101, 32, 97, 118, 101, 99, 32, 115, 112, 104, 101, 114, 101, 51, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 111, 115, 105, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 97, 108, 108, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 98, 97, 108, 108, 101, 32, 61, 32, 105, 110, 116, 40, 51, 48, 48, 44, 49, 48, 44, 54, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 108, 108, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 98, 32, 82, 101, 99, 117, 114, 115, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 51, 68, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 98, 106, 101, 99, 116, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 49, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 79, 86, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 53, 44, 49, 44, 57, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 53, 48, 44, 45, 49, 48, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 45, 49, 48, 48, 44, 45, 49, 48, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 48, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 101, 99, 117, 108, 97, 114, 32, 115, 104, 105, 110, 105, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 52, 44, 34, 68, 111, 116, 115, 34, 44, 34, 87, 105, 114, 101, 102, 114, 97, 109, 101, 34, 44, 34, 70, 108, 97, 116, 34, 44, 34, 70, 108, 97, 116, 32, 115, 104, 97, 100, 101, 100, 34, 44, 34, 71, 111, 117, 114, 97, 117, 100, 34, 44, 34, 80, 104, 111, 110, 103, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 98, 97, 108, 108, 101, 95, 51, 68, 95, 115, 97, 109, 106, 32, 58, 10, 9, 88, 95, 112, 111, 115, 105, 116, 105, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 119, 125, 42, 123, 36, 49, 47, 49, 48, 48, 125, 125, 45, 123, 36, 51, 47, 50, 125, 125, 41, 125, 10, 9, 89, 95, 112, 111, 115, 105, 116, 105, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 104, 125, 42, 123, 36, 50, 47, 49, 48, 48, 125, 125, 45, 123, 36, 51, 47, 50, 125, 125, 41, 125, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 61, 36, 51, 10, 9, 82, 95, 66, 97, 108, 108, 101, 61, 36, 52, 10, 9, 86, 95, 66, 97, 108, 108, 101, 61, 36, 53, 10, 9, 66, 95, 66, 97, 108, 108, 101, 61, 36, 54, 10, 9, 78, 98, 95, 82, 101, 99, 117, 114, 115, 105, 111, 110, 115, 61, 36, 55, 10, 9, 82, 51, 68, 95, 79, 98, 106, 101, 99, 116, 95, 115, 105, 122, 101, 61, 36, 56, 10, 9, 82, 51, 68, 95, 70, 79, 86, 61, 36, 57, 10, 9, 82, 51, 68, 95, 88, 95, 108, 105, 103, 104, 116, 61, 36, 49, 48, 10, 9, 82, 51, 68, 95, 89, 95, 108, 105, 103, 104, 116, 61, 36, 49, 49, 10, 9, 82, 51, 68, 95, 90, 95, 108, 105, 103, 104, 116, 61, 36, 49, 50, 10, 9, 82, 51, 68, 95, 83, 112, 101, 99, 117, 108, 97, 114, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 61, 36, 49, 51, 10, 9, 82, 51, 68, 95, 83, 112, 101, 99, 117, 108, 97, 114, 95, 115, 104, 105, 110, 105, 110, 101, 115, 115, 61, 36, 49, 52, 10, 9, 82, 51, 68, 95, 82, 101, 110, 100, 101, 114, 105, 110, 103, 95, 109, 111, 100, 101, 61, 36, 49, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 9, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 10, 9, 45, 114, 109, 91, 45, 50, 93, 10, 9, 45, 115, 112, 104, 101, 114, 101, 51, 100, 32, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 36, 78, 98, 95, 82, 101, 99, 117, 114, 115, 105, 111, 110, 115, 10, 9, 45, 99, 111, 108, 111, 114, 51, 100, 91, 45, 49, 93, 32, 36, 82, 95, 66, 97, 108, 108, 101, 44, 36, 86, 95, 66, 97, 108, 108, 101, 44, 36, 66, 95, 66, 97, 108, 108, 101, 10, 9, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 42, 54, 125, 44, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 42, 54, 125, 44, 36, 82, 51, 68, 95, 79, 98, 106, 101, 99, 116, 95, 115, 105, 122, 101, 44, 48, 44, 48, 44, 48, 44, 36, 82, 51, 68, 95, 70, 79, 86, 44, 36, 82, 51, 68, 95, 88, 95, 108, 105, 103, 104, 116, 44, 36, 82, 51, 68, 95, 89, 95, 108, 105, 103, 104, 116, 44, 36, 82, 51, 68, 95, 90, 95, 108, 105, 103, 104, 116, 44, 36, 82, 51, 68, 95, 83, 112, 101, 99, 117, 108, 97, 114, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 36, 82, 51, 68, 95, 83, 112, 101, 99, 117, 108, 97, 114, 95, 115, 104, 105, 110, 105, 110, 101, 115, 115, 44, 36, 82, 51, 68, 95, 82, 101, 110, 100, 101, 114, 105, 110, 103, 95, 109, 111, 100, 101, 10, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 49, 44, 51, 10, 9, 45, 105, 102, 32, 123, 105, 109, 60, 48, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 105, 102, 32, 123, 105, 77, 62, 50, 53, 53, 125, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 69, 83, 84, 32, 32, 98, 97, 108, 108, 101, 95, 51, 68, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72, 97, 114, 109, 111, 110, 111, 103, 114, 97, 112, 104, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 32, 58, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 110, 100, 32, 47, 32, 66, 97, 99, 107, 103, 114, 111, 117, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 116, 105, 102, 32, 47, 32, 80, 97, 116, 116, 101, 114, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 77, 111, 116, 105, 102, 32, 49, 34, 44, 34, 77, 111, 116, 105, 102, 32, 50, 32, 68, 101, 110, 115, 101, 32, 67, 108, 97, 105, 114, 34, 44, 34, 77, 111, 116, 105, 102, 32, 51, 32, 76, 105, 103, 110, 101, 115, 34, 44, 34, 77, 111, 116, 105, 102, 32, 52, 32, 66, 117, 108, 108, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 117, 105, 108, 32, 47, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 65, 32, 70, 111, 110, 100, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 66, 32, 70, 111, 110, 100, 32, 61, 32, 105, 110, 116, 40, 49, 57, 50, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 103, 97, 116, 105, 118, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 49, 34, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 50, 34, 44, 34, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 51, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 84, 121, 112, 101, 32, 49, 34, 44, 34, 84, 121, 112, 101, 32, 50, 32, 97, 118, 101, 99, 32, 66, 108, 101, 110, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 32, 84, 121, 112, 101, 32, 50, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 50, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 42, 32, 84, 121, 112, 101, 32, 50, 32, 58, 32, 66, 108, 101, 110, 100, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 32, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 50, 32, 47, 32, 66, 108, 117, 114, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 117, 116, 32, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 114, 98, 101, 32, 61, 32, 105, 110, 116, 40, 49, 50, 56, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 101, 120, 116, 117, 114, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 109, 98, 111, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 54, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 32, 58, 10, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 36, 49, 10, 70, 108, 111, 117, 95, 49, 61, 36, 50, 9, 35, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 10, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 61, 36, 51, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 61, 36, 52, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 61, 36, 53, 10, 73, 110, 118, 101, 114, 115, 101, 114, 95, 67, 111, 117, 108, 101, 117, 114, 115, 61, 36, 54, 10, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 36, 55, 10, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 36, 56, 10, 98, 108, 101, 110, 100, 61, 36, 57, 10, 111, 112, 97, 99, 105, 116, 101, 61, 36, 49, 48, 10, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 49, 49, 10, 70, 108, 111, 117, 95, 50, 61, 36, 49, 50, 10, 83, 112, 114, 101, 97, 100, 95, 99, 97, 109, 111, 117, 102, 108, 97, 103, 101, 61, 36, 49, 51, 10, 67, 117, 116, 95, 65, 61, 36, 49, 52, 9, 10, 67, 117, 116, 95, 66, 61, 36, 49, 53, 10, 67, 111, 117, 114, 98, 101, 61, 36, 49, 54, 10, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 49, 55, 10, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 49, 56, 10, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 49, 57, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 76, 97, 114, 103, 101, 117, 114, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 61, 123, 104, 125, 10, 9, 45, 116, 111, 95, 114, 103, 98, 10, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 48, 125, 124, 124, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 49, 125, 124, 124, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 51, 125, 125, 10, 9, 9, 45, 116, 97, 113, 117, 105, 110, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 48, 125, 44, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 48, 125, 10, 9, 9, 45, 97, 114, 114, 97, 121, 95, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 49, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 49, 48, 10, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 50, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 114, 97, 100, 105, 97, 108, 91, 45, 49, 93, 32, 50, 48, 44, 48, 46, 53, 44, 49, 44, 49, 48, 48, 44, 48, 44, 49, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 123, 114, 111, 117, 110, 100, 40, 123, 49, 43, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 50, 53, 48, 125, 125, 41, 125, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 52, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 48, 125, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 51, 50, 44, 50, 50, 51, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 49, 125, 10, 9, 9, 75, 95, 105, 109, 95, 73, 77, 61, 49, 10, 9, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 73, 77, 65, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 77, 125, 45, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 73, 77, 73, 78, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 105, 109, 125, 43, 36, 75, 95, 105, 109, 95, 73, 77, 125, 41, 125, 32, 45, 114, 109, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 73, 77, 65, 88, 62, 50, 53, 53, 125, 32, 73, 77, 65, 88, 61, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 32, 45, 105, 102, 32, 123, 36, 73, 77, 73, 78, 60, 48, 125, 32, 73, 77, 73, 78, 61, 48, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 36, 73, 77, 73, 78, 44, 36, 73, 77, 65, 88, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 99, 111, 117, 108, 101, 117, 114, 115, 61, 61, 51, 125, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 48, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 49, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 45, 48, 44, 50, 53, 53, 10, 9, 9, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 45, 49, 44, 49, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 45, 48, 46, 50, 53, 44, 48, 46, 55, 53, 10, 9, 9, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 50, 125, 10, 9, 9, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 48, 44, 51, 10, 9, 9, 45, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 45, 48, 46, 56, 44, 49, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 45, 48, 46, 50, 53, 44, 48, 46, 55, 53, 10, 9, 9, 45, 110, 111, 114, 109, 91, 45, 49, 93, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 116, 105, 102, 95, 70, 111, 110, 100, 61, 61, 51, 125, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 123, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 42, 52, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 49, 10, 9, 9, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 123, 36, 83, 101, 117, 105, 108, 95, 111, 116, 115, 117, 42, 49, 48, 125, 10, 9, 9, 45, 42, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 48, 125, 41, 125, 43, 48, 46, 49, 125, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 49, 125, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 123, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 45, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 125, 61, 61, 48, 125, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 105, 102, 32, 123, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 62, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 125, 10, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 65, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 111, 116, 115, 117, 95, 66, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 73, 110, 118, 101, 114, 115, 101, 114, 95, 67, 111, 117, 108, 101, 117, 114, 115, 61, 61, 49, 125, 9, 10, 9, 9, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 9, 35, 32, 111, 98, 116, 101, 110, 105, 114, 32, 117, 110, 32, 102, 111, 110, 100, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 100, 105, 102, 102, -23, 114, 101, 110, 116, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 55, 44, 55, 44, 49, 44, 51, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 49, 50, 55, 44, 49, 50, 55, 44, 49, 44, 51, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 49, 48, 10, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 50, 93, 32, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 51, 10, 9, 9, 45, 99, 91, 45, 50, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 50, 93, 32, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 53, 48, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 42, 42, 42, 32, 97, 112, 112, 108, 105, 113, 117, 101, 114, 32, 115, 117, 114, 32, 116, 111, 117, 115, 32, 108, 101, 115, 32, 99, 97, 108, 113, 117, 101, 115, 10, 9, 45, 100, 101, 102, 111, 114, 109, 32, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 9, 45, 98, 108, 117, 114, 32, 36, 70, 108, 111, 117, 95, 50, 10, 9, 45, 115, 112, 114, 101, 97, 100, 32, 36, 83, 112, 114, 101, 97, 100, 95, 99, 97, 109, 111, 117, 102, 108, 97, 103, 101, 10, 9, 45, 105, 102, 32, 123, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 62, 48, 125, 10, 9, 9, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 32, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 42, 42, 42, 32, 70, 73, 78, 32, 97, 112, 112, 108, 105, 113, 117, 101, 114, 32, 115, 117, 114, 32, 116, 111, 117, 115, 32, 108, 101, 115, 32, 99, 97, 108, 113, 117, 101, 115, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 67, 117, 116, 95, 65, 62, 36, 67, 117, 116, 95, 66, 125, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 36, 67, 117, 116, 95, 66, 44, 36, 67, 117, 116, 95, 65, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 36, 67, 117, 116, 95, 65, 44, 36, 67, 117, 116, 95, 66, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 114, 98, 101, 33, 61, 49, 50, 56, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 36, 67, 111, 117, 114, 98, 101, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 45, 49, 44, 49, 50, 56, 44, 50, 53, 53, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 67, 97, 109, 111, 117, 102, 108, 97, 103, 101, 95, 50, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 68, 101, 115, 115, 105, 110, 32, 80, 101, 105, 110, 116, 117, 114, 101, 32, 58, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 44, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 105, 110, 116, 40, 49, 55, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 49, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 32, 58, 10, 110, 101, 116, 116, 101, 116, 101, 61, 36, 49, 10, 100, 101, 116, 97, 105, 108, 61, 36, 50, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 9, 9, 10, 9, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 43, 49, 48, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 49, 48, 48, 48, 125, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 49, 43, 48, 46, 56, 125, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 50, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 50, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 52, 125, 9, 10, 9, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 51, 43, 49, 48, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 56, 48, 44, 36, 110, 101, 116, 116, 101, 116, 101, 49, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 53, 44, 49, 44, 49, 10, 9, 9, 45, 110, 32, 49, 50, 55, 44, 50, 53, 53, 10, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 50, 10, 9, 9, 45, 99, 97, 114, 116, 111, 111, 110, 32, 36, 100, 101, 116, 97, 105, 108, 44, 36, 110, 101, 116, 116, 101, 116, 101, 51, 44, 51, 48, 44, 48, 46, 49, 56, 44, 48, 46, 55, 53, 44, 50, 53, 54, 10, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 9, 9, 9, 10, 9, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 68, 101, 115, 115, 105, 110, 32, 80, 101, 105, 110, 116, 117, 114, 101, 32, 83, 101, 113, 117, 101, 110, 99, 101, 115, 32, 58, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 44, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 110, 105, 109, 97, 116, 105, 111, 110, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 98, 117, 116, 32, 47, 32, 83, 116, 97, 114, 116, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 105, 110, 116, 40, 52, 48, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 110, 105, 109, 97, 116, 105, 111, 110, 32, 70, 105, 110, 32, 47, 32, 69, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 116, 116, 101, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 52, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 92, 51, 48, 51, 92, 50, 53, 49, 116, 97, 105, 108, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 110, 105, 109, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 114, 97, 109, 101, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 50, 44, 51, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 58, 32, 65, 115, 32, 102, 114, 97, 109, 101, 115, 32, 49, 32, 47, 32, 65, 115, 32, 102, 114, 97, 109, 101, 115, 32, 97, 110, 100, 32, 102, 105, 108, 101, 115, 32, 48, 32, 61, 32, 95, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 117, 116, 112, 117, 116, 32, 102, 111, 108, 100, 101, 114, 32, 61, 32, 95, 102, 111, 108, 100, 101, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 48, 56, 47, 50, 51, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 58, 10, 110, 101, 116, 116, 101, 116, 101, 61, 36, 49, 10, 100, 101, 116, 97, 105, 108, 61, 36, 50, 10, 110, 101, 116, 116, 101, 116, 101, 95, 102, 105, 110, 61, 36, 51, 10, 100, 101, 116, 97, 105, 108, 95, 102, 105, 110, 61, 36, 52, 10, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 9, 9, 10, 9, 9, 10, 9, 45, 105, 102, 32, 36, 54, 10, 9, 9, 45, 97, 110, 105, 109, 97, 116, 101, 32, 102, 111, 110, 99, 116, 105, 111, 110, 95, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 44, 34, 36, 49, 44, 36, 50, 34, 44, 34, 36, 51, 44, 36, 52, 34, 44, 36, 53, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 102, 105, 108, 101, 110, 97, 109, 101, 61, 34, 36, 55, 47, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 46, 112, 110, 103, 34, 10, 9, 9, 45, 97, 110, 105, 109, 97, 116, 101, 32, 102, 111, 110, 99, 116, 105, 111, 110, 95, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 44, 34, 36, 49, 44, 36, 50, 34, 44, 34, 36, 51, 44, 36, 52, 34, 44, 36, 53, 44, 49, 44, 36, 102, 105, 108, 101, 110, 97, 109, 101, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 35, 32, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 95, 99, 111, 109, 109, 97, 110, 100, 44, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 49, 44, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 50, 44, 95, 99, 111, 109, 112, 117, 116, 101, 95, 104, 97, 108, 102, 61, 123, 32, 48, 32, 124, 32, 49, 32, 125, 44, 95, 119, 105, 100, 116, 104, 62, 61, 48, 44, 95, 104, 101, 105, 103, 104, 116, 62, 61, 48, 10, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 102, 111, 110, 99, 116, 105, 111, 110, 95, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 44, 34, 36, 49, 44, 36, 50, 34, 44, 34, 36, 51, 44, 36, 52, 34, 44, 48, 44, 36, 119, 44, 36, 104, 10, 102, 111, 110, 99, 116, 105, 111, 110, 95, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 95, 115, 101, 113, 117, 101, 110, 99, 101, 115, 32, 58, 10, 9, 110, 101, 116, 116, 101, 116, 101, 61, 36, 49, 10, 9, 100, 101, 116, 97, 105, 108, 61, 36, 50, 10, 9, 110, 101, 116, 116, 101, 116, 101, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 43, 49, 48, 125, 9, 10, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 49, 48, 48, 48, 125, 10, 9, 110, 101, 116, 116, 101, 116, 101, 49, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 49, 43, 48, 46, 56, 125, 10, 9, 110, 101, 116, 116, 101, 116, 101, 50, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 50, 125, 9, 10, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 47, 52, 125, 9, 10, 9, 110, 101, 116, 116, 101, 116, 101, 51, 61, 123, 36, 110, 101, 116, 116, 101, 116, 101, 51, 43, 49, 48, 125, 10, 9, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 56, 48, 44, 36, 110, 101, 116, 116, 101, 116, 101, 49, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 53, 44, 49, 44, 49, 10, 9, 45, 110, 32, 49, 50, 55, 44, 50, 53, 53, 10, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 50, 10, 9, 45, 99, 97, 114, 116, 111, 111, 110, 32, 36, 100, 101, 116, 97, 105, 108, 44, 36, 110, 101, 116, 116, 101, 116, 101, 51, 44, 51, 48, 44, 48, 46, 49, 56, 44, 48, 46, 55, 53, 44, 50, 53, 54, 10, 9, 45, 115, 104, 97, 114, 112, 101, 110, 32, 36, 110, 101, 116, 116, 101, 116, 101, 10, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 105, 110, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, 116, 101, 115, 116, 95, 100, 101, 115, 115, 105, 110, 95, 112, 101, 105, 110, 116, 117, 114, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 68, -23, 98, 117, 116, 32, 101, 110, 115, 101, 109, 98, 108, 101, 32, 67, 104, 97, 108, 107, 32, 105, 116, 32, 117, 112, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 68, 105, 108, 97, 116, 101, 32, 58, 32, 84, 101, 115, 116, 95, 68, 105, 108, 97, 116, 101, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 68, 105, 108, 97, 116, 101, 95, 115, 97, 109, 106, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 116, 105, 108, 105, 115, 101, 114, 32, 99, 101, 32, 102, 105, 108, 116, 114, 101, 32, 115, 117, 114, 32, 100, 101, 115, 32, 116, 114, 97, 105, 116, 115, 44, 32, 100, 101, 115, 32, 108, 105, 103, 110, 101, 115, 46, 46, 46, 32, 115, 117, 114, 32, 105, 109, 97, 103, 101, 115, 32, 97, 118, 101, 99, 32, 102, 111, 110, 100, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 115, 101, 32, 116, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 115, 116, 114, 111, 107, 101, 115, 44, 32, 108, 105, 110, 101, 115, 46, 46, 46, 32, 111, 110, 32, 105, 109, 97, 103, 101, 115, 32, 119, 105, 116, 104, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 32, 98, 97, 99, 107, 103, 114, 111, 117, 110, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 68, 105, 108, 97, 116, 101, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 97, 105, 108, 108, 101, 47, 83, 105, 122, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 67, 105, 114, 99, 117, 108, 97, 114, 32, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 79, 99, 116, 97, 103, 111, 110, 97, 108, 32, 68, 105, 108, 97, 116, 105, 111, 110, 34, 44, 34, 82, 101, 99, 116, 97, 110, 103, 117, 108, 97, 114, 32, 68, 105, 108, 97, 116, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 111, 115, 116, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 70, 108, 111, 117, 47, 66, 108, 117, 114, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 83, 112, 114, 101, 97, 100, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 76, 111, 99, 97, 108, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 76, 111, 99, 97, 108, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 121, 111, 110, 47, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 51, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 68, 105, 108, 97, 116, 101, 95, 115, 97, 109, 106, 32, 58, 10, 84, 97, 105, 108, 108, 101, 95, 83, 105, 122, 101, 61, 36, 49, 10, 84, 121, 112, 101, 95, 68, 105, 108, 97, 116, 101, 61, 36, 50, 10, 66, 111, 111, 115, 116, 61, 36, 51, 10, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 52, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 61, 36, 53, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 108, 117, 114, 61, 36, 54, 10, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 83, 112, 114, 101, 97, 100, 61, 36, 55, 10, 86, 97, 108, 105, 100, 101, 114, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 56, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 57, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 82, 97, 121, 111, 110, 61, 36, 49, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 45, 105, 102, 32, 123, 36, 66, 111, 111, 115, 116, 62, 48, 125, 10, 9, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 66, 111, 111, 115, 116, 10, 9, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 49, 10, 9, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 49, 10, 9, 9, 45, 100, 111, 110, 101, 10, 9, 9, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 123, 36, 66, 111, 111, 115, 116, 42, 49, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 97, 105, 108, 108, 101, 95, 83, 105, 122, 101, 62, 48, 125, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 68, 105, 108, 97, 116, 101, 61, 61, 48, 125, 32, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 84, 97, 105, 108, 108, 101, 95, 83, 105, 122, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 68, 105, 108, 97, 116, 101, 61, 61, 49, 125, 32, 45, 100, 105, 108, 97, 116, 101, 95, 111, 99, 116, 91, 45, 49, 93, 32, 36, 84, 97, 105, 108, 108, 101, 95, 83, 105, 122, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 68, 105, 108, 97, 116, 101, 61, 61, 50, 125, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 84, 97, 105, 108, 108, 101, 95, 83, 105, 122, 101, 32, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 101, 110, 100, 105, 102, 10, 45, 100, 111, 110, 101, 10, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 10, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 66, 108, 117, 114, 10, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 95, 83, 112, 114, 101, 97, 100, 10, 45, 105, 102, 32, 123, 36, 86, 97, 108, 105, 100, 101, 114, 95, 78, 111, 114, 109, 97, 108, 105, 122, 101, 61, 61, 49, 125, 10, 9, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 82, 97, 121, 111, 110, 10, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 66, 111, 111, 115, 116, 62, 48, 125, 10, 9, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 49, 48, 48, 10, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 68, 105, 108, 97, 116, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 82, 97, 112, 105, 100, 105, 116, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 98, 97, 108, 108, 101, 32, 58, 32, 116, 101, 115, 116, 95, 98, 97, 108, 108, 101, 95, 115, 97, 109, 106, 44, 32, 116, 101, 115, 116, 95, 98, 97, 108, 108, 101, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 69, 83, 84, 32, 100, 101, 32, 108, 97, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 45, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 111, 115, 105, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 97, 108, 108, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 32, 98, 97, 108, 108, 101, 32, 61, 32, 105, 110, 116, 40, 51, 48, 48, 44, 49, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 97, 108, 108, 101, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 49, 50, 56, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 32, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 48, 44, 48, 46, 50, 48, 44, 48, 46, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 32, 108, 105, 103, 104, 116, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 48, 44, 48, 46, 50, 48, 44, 48, 46, 56, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 50, 44, 48, 46, 48, 49, 44, 48, 46, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 32, 114, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 50, 44, 48, 46, 48, 49, 44, 48, 46, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 105, 103, 104, 116, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 51, 52, 44, 50, 50, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 78, 111, 114, 109, 97, 108, 105, 115, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 32, 109, 105, 110, 46, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 32, 109, 97, 120, 46, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 111, 116, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 48, 44, 48, 46, 48, 48, 44, 51, 54, 48, 46, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 117, 110, 100, 97, 114, 121, 32, 114, 111, 116, 97, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 70, 111, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 109, 112, 108, 105, 114, 32, 67, 111, 117, 108, 101, 117, 114, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 111, 110, 100, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 9, 9, 9, 9, 9, 9, 10, 116, 101, 115, 116, 95, 98, 97, 108, 108, 101, 95, 115, 97, 109, 106, 58, 10, 9, 35, 35, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 9, 88, 95, 112, 111, 115, 105, 116, 105, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 119, 125, 42, 123, 36, 49, 47, 49, 48, 48, 125, 125, 45, 123, 36, 51, 47, 50, 125, 125, 41, 125, 10, 9, 89, 95, 112, 111, 115, 105, 116, 105, 111, 110, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 123, 104, 125, 42, 123, 36, 50, 47, 49, 48, 48, 125, 125, 45, 123, 36, 51, 47, 50, 125, 125, 41, 125, 10, 9, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 61, 36, 51, 9, 35, 32, 109, 105, 110, 105, 32, 99, 111, 114, 114, 101, 99, 116, 32, 49, 54, 10, 9, 82, 95, 66, 97, 108, 108, 101, 61, 36, 52, 10, 9, 86, 95, 66, 97, 108, 108, 101, 61, 36, 53, 10, 9, 66, 95, 66, 97, 108, 108, 101, 61, 36, 54, 10, 9, 88, 95, 108, 105, 103, 104, 116, 61, 36, 55, 10, 9, 89, 95, 108, 105, 103, 104, 116, 61, 36, 56, 10, 9, 88, 95, 114, 97, 100, 105, 117, 115, 61, 36, 57, 10, 9, 89, 95, 114, 97, 100, 105, 117, 115, 61, 36, 49, 48, 10, 9, 82, 95, 108, 105, 103, 104, 116, 61, 36, 49, 49, 10, 9, 71, 95, 108, 105, 103, 104, 116, 61, 36, 49, 50, 10, 9, 66, 95, 108, 105, 103, 104, 116, 61, 36, 49, 51, 10, 9, 78, 95, 109, 105, 110, 61, 36, 49, 52, 10, 9, 78, 95, 109, 97, 120, 61, 36, 49, 53, 10, 9, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 54, 10, 9, 66, 111, 117, 110, 100, 97, 114, 121, 95, 114, 111, 116, 97, 116, 105, 111, 110, 61, 36, 49, 55, 10, 9, 82, 101, 109, 112, 108, 105, 114, 95, 70, 111, 110, 100, 61, 36, 49, 56, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 61, 36, 49, 57, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 61, 36, 50, 48, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 61, 36, 50, 49, 10, 9, 10, 9, 35, 32, 86, 97, 114, 105, 97, 98, 108, 101, 115, 32, 100, 105, 118, 101, 114, 115, 9, 10, 9, 70, 108, 111, 117, 95, 98, 97, 108, 108, 101, 61, 36, 50, 50, 10, 9, 83, 112, 114, 101, 97, 100, 95, 98, 97, 108, 108, 101, 61, 36, 50, 51, 9, 10, 9, 68, 101, 102, 111, 114, 109, 95, 98, 97, 108, 108, 101, 61, 36, 50, 52, 9, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 53, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 54, 10, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 10, 9, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 98, 97, 108, 108, 101, 44, 49, 44, 52, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 82, 101, 109, 112, 108, 105, 114, 95, 70, 111, 110, 100, 62, 48, 125, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 70, 111, 110, 100, 44, 50, 53, 53, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 36, 82, 95, 66, 97, 108, 108, 101, 44, 36, 86, 95, 66, 97, 108, 108, 101, 44, 36, 66, 95, 66, 97, 108, 108, 101, 44, 36, 88, 95, 108, 105, 103, 104, 116, 44, 36, 89, 95, 108, 105, 103, 104, 116, 44, 36, 88, 95, 114, 97, 100, 105, 117, 115, 44, 36, 89, 95, 114, 97, 100, 105, 117, 115, 44, 36, 82, 95, 108, 105, 103, 104, 116, 44, 36, 71, 95, 108, 105, 103, 104, 116, 44, 36, 66, 95, 108, 105, 103, 104, 116, 10, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 95, 109, 105, 110, 44, 36, 78, 95, 109, 97, 120, 10, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 62, 48, 125, 10, 9, 9, 45, 114, 111, 116, 97, 116, 101, 91, 45, 49, 93, 32, 36, 65, 110, 103, 108, 101, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 36, 66, 111, 117, 110, 100, 97, 114, 121, 95, 114, 111, 116, 97, 116, 105, 111, 110, 44, 50, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 123, 104, 125, 47, 50, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 109, 97, 103, 101, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 36, 88, 95, 112, 111, 115, 105, 116, 105, 111, 110, 44, 36, 89, 95, 112, 111, 115, 105, 116, 105, 111, 110, 10, 9, 45, 114, 109, 91, 45, 49, 93, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 98, 97, 108, 108, 101, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 98, 97, 108, 108, 101, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 98, 97, 108, 108, 101, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 69, 83, 84, 32, 100, 101, 32, 108, 97, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 32, 34, 98, 97, 108, 108, 95, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 95, 115, 97, 109, 106, 34, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 32, 77, 111, 115, 97, 105, 113, 117, 101, 32, 49, 32, 41, 32, 32, 109, 111, 115, 97, 105, 113, 117, 101, 95, 49, 95, 98, 97, 108, 108, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 73, 115, 111, 76, 105, 110, 101, 51, 68, 32, 58, 32, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 45, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 45, 32, 80, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 99, 97, 108, 32, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 105, 110, 116, 40, 54, 44, 49, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 118, 101, 114, 97, 103, 101, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 52, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 115, 116, 114, 97, 105, 110, 32, 118, 97, 108, 117, 101, 115, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 73, 115, 111, 76, 105, 110, 101, 51, 100, 32, 45, 32, 73, 115, 111, 76, 105, 110, 101, 51, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 115, 111, 76, 105, 110, 101, 51, 100, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 50, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 67, 111, 117, 108, 101, 117, 114, 32, 45, 32, 67, 111, 108, 111, 114, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 32, 97, 108, 92, 51, 48, 51, 92, 50, 53, 49, 97, 116, 111, 105, 114, 101, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 82, 86, 66, 32, 47, 32, 82, 71, 66, 34, 44, 34, 78, 105, 118, 101, 97, 117, 120, 32, 100, 101, 32, 71, 114, 105, 115, 32, 47, 32, 71, 114, 97, 121, 115, 99, 97, 108, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 51, 68, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 51, 68, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 40, 53, 49, 50, 42, 88, 41, 32, 61, 32, 105, 110, 116, 40, 50, 44, 49, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 88, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 89, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 90, 45, 97, 110, 103, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 82, 101, 110, 100, 117, 32, 45, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 106, 117, 115, 116, 101, 109, 101, 110, 116, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 45, 32, 65, 117, 116, 111, 99, 114, 111, 112, 32, 61, 32, 98, 111, 111, 108, 40, 116, 114, 117, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 100, 101, 32, 114, 101, 110, 100, 117, 32, 47, 32, 82, 101, 110, 100, 101, 114, 105, 110, 103, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 111, 110, 116, 111, 117, 114, 34, 44, 34, 67, 114, 97, 105, 101, 32, 45, 32, 67, 104, 97, 108, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 50, 47, 49, 48, 47, 50, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 32, 58, 10, 9, 85, 116, 105, 108, 105, 115, 101, 114, 95, 76, 111, 99, 97, 108, 95, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 61, 36, 49, 10, 9, 76, 95, 78, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 50, 10, 9, 76, 95, 78, 95, 82, 97, 100, 105, 117, 115, 61, 36, 51, 10, 9, 76, 95, 78, 95, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 52, 10, 9, 76, 95, 78, 95, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 61, 36, 53, 10, 9, 76, 95, 78, 95, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 61, 36, 54, 10, 9, 76, 95, 78, 95, 67, 104, 97, 110, 110, 101, 108, 61, 36, 55, 10, 9, 73, 115, 111, 76, 105, 110, 101, 51, 100, 95, 80, 111, 117, 114, 99, 101, 110, 116, 61, 36, 56, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 57, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 48, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 49, 10, 9, 65, 108, 112, 104, 97, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 50, 10, 9, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 36, 49, 51, 10, 9, 10, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 61, 36, 49, 52, 10, 9, 88, 95, 97, 110, 103, 108, 101, 61, 36, 49, 53, 10, 9, 89, 95, 97, 110, 103, 108, 101, 61, 36, 49, 54, 10, 9, 90, 95, 97, 110, 103, 108, 101, 61, 36, 49, 55, 10, 9, 65, 106, 117, 115, 116, 101, 109, 101, 110, 116, 95, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 61, 36, 49, 56, 10, 9, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 36, 49, 57, 10, 9, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 62, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 125, 10, 9, 9, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 97, 120, 61, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 97, 120, 62, 50, 48, 48, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 50, 53, 48, 48, 44, 123, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 47, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 42, 50, 53, 48, 48, 125, 44, 49, 44, 49, 44, 51, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 97, 120, 61, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 77, 97, 120, 62, 50, 48, 48, 48, 125, 10, 9, 9, 9, 9, 9, 9, 45, 114, 101, 115, 105, 122, 101, 91, 45, 49, 93, 32, 123, 36, 108, 97, 114, 103, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 47, 36, 104, 97, 117, 116, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 42, 50, 53, 48, 48, 125, 44, 50, 53, 48, 48, 44, 49, 44, 49, 44, 51, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 35, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, -23, 97, 116, 111, 105, 114, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 67, 111, 117, 108, 101, 117, 114, 115, 95, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 61, 61, 50, 125, 10, 9, 9, 9, 9, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 61, 123, 114, 111, 117, 110, 100, 40, 63, 40, 48, 44, 50, 53, 53, 41, 41, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 78, 105, 118, 101, 97, 117, 95, 100, 101, 95, 103, 114, 105, 115, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 85, 116, 105, 108, 105, 115, 101, 114, 95, 76, 111, 99, 97, 108, 95, 78, 111, 114, 109, 97, 108, 105, 122, 97, 116, 105, 111, 110, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 103, 105, 109, 112, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 95, 108, 111, 99, 97, 108, 91, 45, 49, 93, 32, 36, 76, 95, 78, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 76, 95, 78, 95, 82, 97, 100, 105, 117, 115, 44, 36, 76, 95, 78, 95, 78, 101, 105, 103, 104, 98, 111, 114, 104, 111, 111, 100, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 76, 95, 78, 95, 65, 118, 101, 114, 97, 103, 101, 95, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 44, 36, 76, 95, 78, 95, 67, 111, 110, 115, 116, 114, 97, 105, 110, 95, 118, 97, 108, 117, 101, 115, 44, 36, 76, 95, 78, 95, 67, 104, 97, 110, 110, 101, 108, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 10, 9, 9, 45, 105, 115, 111, 108, 105, 110, 101, 51, 100, 91, 45, 49, 93, 32, 36, 73, 115, 111, 76, 105, 110, 101, 51, 100, 95, 80, 111, 117, 114, 99, 101, 110, 116, 10, 9, 9, 10, 9, 9, 45, 99, 111, 108, 51, 100, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 65, 108, 112, 104, 97, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 10, 9, 9, 45, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 91, 45, 49, 93, 32, 123, 53, 49, 50, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 125, 44, 123, 53, 49, 50, 42, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 125, 44, 48, 46, 53, 44, 36, 88, 95, 97, 110, 103, 108, 101, 44, 36, 89, 95, 97, 110, 103, 108, 101, 44, 36, 90, 95, 97, 110, 103, 108, 101, 44, 57, 48, 44, 45, 49, 48, 48, 44, 48, 44, 45, 49, 48, 48, 44, 49, 44, 48, 44, 52, 10, 9, 9, 10, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 65, 106, 117, 115, 116, 101, 109, 101, 110, 116, 95, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 93, 32, 48, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 10, 9, 9, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 10, 9, 9, 10, 9, 9, 45, 97, 100, 100, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 100, 101, 95, 114, 101, 110, 100, 117, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 114, 101, 109, 111, 118, 101, 95, 111, 112, 97, 99, 105, 116, 121, 91, 45, 49, 93, 10, 9, 9, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 48, 46, 50, 53, 42, 123, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 125, 125, 10, 9, 9, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 123, 48, 46, 53, 42, 123, 49, 43, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 125, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 32, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 71, 114, 105, 122, 111, 117, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 78, 111, 105, 115, 101, 32, 58, 32, 84, 101, 115, 116, 95, 78, 111, 105, 115, 101, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 78, 111, 105, 115, 101, 95, 115, 97, 109, 106, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 60, 47, 98, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 116, 105, 108, 105, 115, 101, 114, 32, 99, 101, 32, 102, 105, 108, 116, 114, 101, 32, 115, 117, 114, 32, 100, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 117, 110, 105, 101, 115, 32, 111, 117, 32, 100, 101, 115, 32, 116, 101, 120, 116, 101, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 85, 115, 101, 32, 116, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 111, 110, 32, 112, 97, 116, 116, 101, 114, 110, 115, 32, 119, 105, 116, 104, 32, 115, 111, 108, 105, 100, 32, 99, 111, 108, 111, 114, 115, 32, 111, 114, 32, 116, 101, 120, 116, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 80, 108, 97, 115, 109, 97, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 108, 112, 104, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 101, 116, 97, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 97, 108, 101, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 56, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 66, 114, 117, 105, 116, 32, 47, 32, 78, 111, 105, 115, 101, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 48, 44, 48, 44, 50, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 105, 115, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 71, 97, 117, 115, 115, 105, 97, 110, 34, 44, 34, 85, 110, 105, 102, 111, 114, 109, 34, 44, 34, 83, 97, 108, 116, 32, 97, 110, 100, 32, 112, 101, 112, 112, 101, 114, 34, 44, 34, 80, 111, 105, 115, 115, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 44, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 83, 104, 97, 114, 112, 101, 110, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 54, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 78, 111, 114, 109, 97, 108, 105, 122, 101, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 86, 101, 114, 115, 105, 111, 110, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 54, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 78, 111, 105, 115, 101, 95, 115, 97, 109, 106, 32, 58, 10, 80, 108, 97, 115, 109, 97, 95, 65, 108, 112, 104, 97, 61, 36, 49, 10, 80, 108, 97, 115, 109, 97, 95, 66, 101, 116, 97, 61, 36, 50, 10, 80, 108, 97, 115, 109, 97, 95, 83, 99, 97, 108, 101, 61, 36, 51, 10, 78, 111, 105, 115, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 52, 10, 78, 111, 105, 115, 101, 95, 84, 121, 112, 101, 61, 36, 53, 10, 78, 111, 105, 115, 101, 95, 67, 104, 97, 110, 110, 101, 108, 61, 36, 54, 10, 78, 111, 105, 115, 101, 95, 82, 97, 110, 103, 101, 61, 36, 55, 10, 83, 104, 97, 114, 112, 101, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 56, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 61, 36, 57, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 61, 36, 49, 48, 10, 78, 98, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 61, 36, 49, 49, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 98, 95, 73, 116, 101, 114, 97, 116, 105, 111, 110, 115, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 45, 116, 111, 95, 114, 103, 98, 91, 45, 49, 93, 10, 9, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 36, 80, 108, 97, 115, 109, 97, 95, 65, 108, 112, 104, 97, 44, 36, 80, 108, 97, 115, 109, 97, 95, 66, 101, 116, 97, 44, 36, 80, 108, 97, 115, 109, 97, 95, 83, 99, 97, 108, 101, 10, 9, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 78, 111, 105, 115, 101, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 36, 78, 111, 105, 115, 101, 95, 84, 121, 112, 101, 44, 36, 78, 111, 105, 115, 101, 95, 67, 104, 97, 110, 110, 101, 108, 44, 36, 78, 111, 105, 115, 101, 95, 82, 97, 110, 103, 101, 10, 9, 45, 105, 102, 32, 123, 36, 83, 104, 97, 114, 112, 101, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 62, 48, 125, 32, 45, 115, 104, 97, 114, 112, 101, 110, 91, 45, 49, 93, 32, 36, 83, 104, 97, 114, 112, 101, 110, 95, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 45, 105, 102, 32, 123, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 62, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 125, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 65, 44, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 66, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 49, 10, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 78, 111, 105, 115, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 68, 105, 108, 97, 116, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 114, 97, 112, 105, 100, 105, 116, 101, 32, 99, 111, 109, 112, 105, 108, 97, 116, 105, 111, 110, 32, 58, 32, 84, 101, 115, 116, 95, 82, 97, 112, 105, 100, 105, 116, 101, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 82, 97, 112, 105, 100, 105, 116, 101, 95, 115, 97, 109, 106, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 101, 115, 116, 32, 99, 111, 109, 112, 105, 108, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 51, 47, 49, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 82, 97, 112, 105, 100, 105, 116, 101, 95, 115, 97, 109, 106, 32, 58, 10, 116, 101, 109, 112, 115, 95, 111, 114, 105, 103, 105, 110, 101, 61, 64, 124, 10, 100, 101, 109, 111, 61, 48, 10, 116, 101, 109, 112, 115, 95, 100, 101, 109, 111, 61, 48, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 103, 105, 109, 112, 95, 99, 104, 101, 115, 115, 98, 111, 97, 114, 100, 91, 45, 49, 93, 32, 51, 50, 44, 51, 50, 44, 48, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 107, 117, 119, 97, 104, 97, 114, 97, 91, 45, 49, 93, 32, 53, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 115, 111, 116, 114, 111, 112, 105, 99, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 32, 54, 48, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 48, 46, 56, 44, 51, 48, 44, 50, 44, 48, 44, 49, 44, 49, 44, 48, 44, 49, 10, 45, 103, 105, 109, 112, 95, 98, 108, 117, 114, 95, 108, 105, 110, 101, 97, 114, 91, 45, 49, 93, 32, 49, 48, 44, 48, 46, 53, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 10, 116, 101, 109, 112, 115, 95, 102, 105, 110, 61, 64, 124, 10, 116, 101, 109, 112, 115, 95, 100, 101, 109, 111, 61, 123, 36, 116, 101, 109, 112, 115, 95, 102, 105, 110, 45, 36, 116, 101, 109, 112, 115, 95, 111, 114, 105, 103, 105, 110, 101, 125, 10, 45, 116, 101, 120, 116, 95, 111, 117, 116, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 116, 101, 109, 112, 115, 95, 100, 101, 109, 111, 44, 49, 48, 44, 49, 48, 44, 54, 52, 44, 49, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 82, 97, 112, 105, 100, 105, 116, 101, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 84, 119, 105, 114, 108, 32, 49, 32, 58, 32, 84, 101, 115, 116, 95, 84, 119, 105, 114, 108, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 84, 119, 105, 114, 108, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 79, 114, 105, 103, 105, 110, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 70, 105, 108, 116, 114, 101, 32, 84, 119, 105, 114, 108, 32, 45, 32, 84, 119, 105, 114, 108, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 55, 53, 44, 45, 50, 53, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 111, 114, 100, 101, 114, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 66, 108, 97, 99, 107, 34, 44, 34, 78, 101, 97, 114, 101, 115, 116, 34, 44, 34, 82, 101, 112, 101, 97, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 105, 116, 115, 32, 47, 32, 83, 116, 114, 111, 107, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 40, 80, 105, 120, 101, 108, 115, 41, 32, 61, 32, 105, 110, 116, 40, 49, 53, 48, 44, 49, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 37, 32, 40, 76, 111, 110, 103, 117, 101, 117, 114, 47, 76, 101, 110, 103, 116, 104, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 80, 108, 117, 115, 32, 47, 32, 77, 111, 114, 101, 34, 44, 34, 77, 111, 105, 110, 115, 32, 47, 32, 76, 101, 115, 115, 34, 44, 34, 80, 108, 117, 115, 32, 47, 32, 77, 111, 114, 101, 32, 91, 109, 105, 108, 105, 101, 117, 45, 109, 105, 100, 100, 108, 101, 93, 34, 44, 34, 77, 111, 105, 110, 115, 32, 47, 32, 76, 101, 115, 115, 32, 91, 109, 105, 108, 105, 101, 117, 45, 109, 105, 100, 100, 108, 101, 93, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 40, 80, 105, 120, 101, 108, 115, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 109, 98, 114, 101, 32, 100, 101, 32, 116, 114, 97, 105, 116, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 116, 114, 111, 107, 101, 115, 32, 61, 32, 105, 110, 116, 40, 49, 54, 44, 49, 44, 50, 49, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 40, 68, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 114, 116, 32, 47, 32, 83, 116, 97, 114, 116, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 40, 70, 105, 110, 32, 47, 32, 69, 110, 100, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 54, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 47, 32, 67, 111, 108, 111, 114, 61, 32, 99, 111, 108, 111, 114, 40, 50, 52, 48, 44, 54, 48, 44, 49, 50, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 32, 61, 32, 105, 110, 116, 40, 50, 48, 44, 48, 44, 54, 52, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 84, 119, 105, 114, 108, 95, 115, 97, 109, 106, 32, 58, 10, 9, 75, 95, 88, 61, 36, 49, 10, 9, 75, 95, 89, 61, 36, 50, 10, 9, 35, 35, 32, 102, 105, 108, 116, 114, 101, 32, 84, 119, 105, 114, 108, 10, 9, 65, 109, 112, 108, 105, 116, 117, 100, 101, 61, 36, 51, 10, 9, 66, 111, 114, 100, 101, 114, 115, 61, 36, 52, 10, 9, 9, 35, 84, 114, 97, 105, 116, 115, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 61, 36, 53, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 61, 36, 54, 10, 9, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 55, 10, 9, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 56, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 61, 36, 57, 10, 9, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 61, 36, 49, 48, 10, 9, 65, 110, 103, 108, 101, 95, 70, 105, 110, 61, 36, 49, 49, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 50, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 51, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 52, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 53, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 49, 54, 10, 9, 69, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 49, 55, 10, 9, 9, 35, 68, 105, 118, 101, 114, 115, 10, 9, 70, 108, 111, 117, 95, 116, 114, 97, 105, 116, 115, 61, 36, 49, 56, 10, 9, 83, 112, 114, 101, 97, 100, 95, 116, 114, 97, 105, 116, 115, 61, 36, 49, 57, 10, 9, 68, 101, 102, 111, 114, 109, 95, 116, 114, 97, 105, 116, 115, 61, 36, 50, 48, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 49, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 50, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 119, 125, 42, 123, 36, 75, 95, 88, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 104, 125, 42, 123, 36, 75, 95, 89, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 65, 110, 103, 108, 101, 61, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 10, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 62, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 125, 10, 9, 9, 65, 110, 103, 108, 101, 95, 70, 105, 110, 61, 123, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 43, 51, 54, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 123, 123, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 45, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 49, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 50, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 51, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 52, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 10, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 68, 101, 98, 117, 116, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 68, 101, 98, 117, 116, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 68, 101, 98, 117, 116, 95, 88, 44, 36, 68, 101, 98, 117, 116, 95, 89, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 65, 110, 103, 108, 101, 61, 123, 36, 65, 110, 103, 108, 101, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 49, 125, 124, 124, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 50, 125, 125, 10, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 51, 125, 124, 124, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 52, 125, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 60, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 45, 100, 111, 110, 101, 10, 9, 45, 105, 102, 32, 123, 36, 69, 112, 97, 105, 115, 115, 101, 117, 114, 62, 48, 125, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 69, 112, 97, 105, 115, 115, 101, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 119, 105, 114, 108, 91, 45, 49, 93, 32, 36, 65, 109, 112, 108, 105, 116, 117, 100, 101, 44, 123, 36, 75, 95, 88, 47, 49, 48, 48, 125, 44, 123, 36, 75, 95, 89, 47, 49, 48, 48, 125, 44, 36, 66, 111, 114, 100, 101, 114, 115, 9, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 84, 119, 105, 114, 108, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 115, 95, 67, 111, 110, 116, 111, 117, 114, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 87, 97, 114, 112, 32, 58, 32, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 101, 115, 116, 115, 32, 100, 101, 32, 108, 97, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 87, 97, 114, 112, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 101, 115, 116, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 84, 101, 115, 116, 32, 49, 34, 44, 34, 84, 101, 115, 116, 32, 50, 34, 44, 34, 84, 101, 115, 116, 32, 51, 34, 44, 34, 84, 101, 115, 116, 32, 52, 34, 44, 34, 84, 101, 115, 116, 32, 53, 34, 44, 34, 84, 101, 115, 116, 32, 54, 34, 44, 34, 84, 101, 115, 116, 32, 55, 34, 44, 34, 84, 101, 115, 116, 32, 56, 34, 44, 34, 84, 101, 115, 116, 32, 57, 34, 44, 34, 84, 101, 115, 116, 32, 49, 48, 34, 44, 34, 84, 101, 115, 116, 32, 49, 49, 34, 44, 34, 84, 101, 115, 116, 32, 49, 50, 34, 44, 34, 84, 101, 115, 116, 32, 49, 51, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 49, 32, 67, 97, 108, 113, 117, 101, 32, 47, 32, 49, 32, 76, 97, 121, 101, 114, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 32, 58, 10, 84, 101, 115, 116, 61, 36, 49, 10, 85, 110, 95, 67, 97, 108, 113, 117, 101, 61, 36, 50, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 48, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 123, 119, 125, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 44, 48, 44, 123, 104, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 49, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 123, 119, 125, 47, 50, 125, 44, 48, 44, 123, 119, 125, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 104, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 50, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 52, 44, 123, 123, 119, 125, 47, 50, 125, 44, 48, 44, 123, 119, 125, 44, 48, 44, 123, 119, 125, 44, 123, 104, 125, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 123, 104, 125, 47, 50, 125, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 51, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 123, 104, 125, 47, 50, 125, 44, 123, 123, 119, 125, 47, 50, 125, 44, 123, 123, 104, 125, 47, 50, 125, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 52, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 44, 123, 119, 125, 44, 48, 44, 48, 44, 123, 104, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 53, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 112, 111, 108, 121, 103, 111, 110, 91, 45, 49, 93, 32, 51, 44, 48, 44, 48, 44, 123, 119, 125, 44, 48, 44, 48, 44, 123, 104, 125, 44, 49, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 54, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 50, 53, 53, 32, 45, 77, 97, 115, 113, 117, 101, 115, 95, 103, 101, 111, 109, 101, 116, 114, 105, 113, 117, 101, 115, 95, 115, 97, 109, 106, 91, 45, 49, 93, 32, 49, 54, 44, 56, 44, 49, 44, 49, 44, 54, 48, 44, 54, 48, 44, 54, 48, 44, 50, 53, 53, 44, 54, 48, 44, 54, 48, 44, 54, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 44, 48, 44, 48, 44, 48, 46, 55, 44, 48, 46, 51, 44, 48, 46, 54, 44, 49, 46, 49, 44, 49, 53, 44, 56, 44, 48, 44, 48, 44, 48, 32, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 55, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 56, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 57, 125, 10, 9, 9, 69, 120, 112, 61, 123, 123, 123, 119, 125, 43, 123, 104, 125, 125, 47, 56, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 69, 120, 112, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 49, 48, 125, 10, 9, 9, 87, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 119, 125, 10, 9, 9, 72, 95, 111, 114, 105, 103, 105, 110, 101, 61, 123, 104, 125, 10, 9, 9, 69, 120, 112, 61, 123, 123, 123, 119, 125, 43, 123, 104, 125, 125, 47, 56, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 69, 120, 112, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 99, 114, 111, 112, 32, 36, 69, 120, 112, 44, 36, 69, 120, 112, 44, 123, 36, 69, 120, 112, 43, 36, 87, 95, 111, 114, 105, 103, 105, 110, 101, 125, 44, 123, 36, 69, 120, 112, 43, 36, 72, 95, 111, 114, 105, 103, 105, 110, 101, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 49, 49, 125, 10, 9, 9, 69, 120, 112, 61, 123, 123, 123, 119, 125, 43, 123, 104, 125, 125, 47, 56, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 69, 120, 112, 44, 48, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 91, 45, 49, 44, 45, 50, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 101, 115, 116, 61, 61, 49, 50, 125, 10, 9, 9, 69, 120, 112, 61, 123, 123, 123, 119, 125, 43, 123, 104, 125, 125, 47, 56, 125, 10, 9, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 32, 45, 103, 105, 109, 112, 95, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 50, 48, 48, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 101, 120, 112, 97, 110, 100, 95, 120, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 69, 120, 112, 44, 50, 32, 45, 119, 97, 114, 112, 91, 48, 93, 32, 91, 49, 93, 44, 49, 44, 49, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 85, 110, 95, 67, 97, 108, 113, 117, 101, 61, 61, 49, 125, 32, 45, 114, 109, 91, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 9, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 32, 84, 101, 115, 116, 115, 95, 87, 97, 114, 112, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 69, 83, 84, 32, 32, 98, 97, 108, 108, 101, 95, 51, 68, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 101, 115, 116, 32, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 32, 58, 32, 84, 101, 115, 116, 95, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 115, 97, 109, 106, 44, 32, 84, 101, 115, 116, 95, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 115, 97, 109, 106, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 73, 110, 115, 112, 105, 114, 97, 116, 105, 111, 110, 32, 58, 32, 67, 114, 101, 97, 116, 101, 32, 97, 32, 99, 111, 108, 111, 114, 102, 117, 108, 32, 119, 97, 116, 101, 114, 99, 111, 108, 111, 114, 32, 112, 111, 114, 116, 114, 97, 105, 116, 32, 119, 105, 116, 104, 32, 71, 73, 77, 80, 32, 71, 77, 73, 67, 32, 66, 121, 32, 67, 104, 114, 105, 115, 32, 70, 105, 101, 100, 108, 101, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 121, 111, 117, 116, 117, 98, 101, 46, 99, 111, 109, 47, 119, 97, 116, 99, 104, 63, 118, 61, 122, 120, 68, 72, 82, 45, 99, 119, 121, 53, 107, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 67, 111, 117, 108, 101, 117, 114, 115, 32, 65, 106, 111, 117, 116, 92, 51, 48, 51, 92, 50, 53, 49, 101, 115, 32, 47, 32, 65, 100, 100, 101, 100, 32, 67, 111, 108, 111, 114, 115, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 67, 111, 108, 111, 114, 105, 115, 97, 116, 105, 111, 110, 32, 47, 32, 67, 111, 108, 111, 114, 105, 122, 97, 116, 105, 111, 110, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 83, 97, 110, 115, 47, 87, 105, 116, 104, 111, 117, 116, 32, 67, 111, 108, 111, 114, 105, 115, 97, 116, 105, 111, 110, 34, 44, 34, 65, 118, 101, 99, 47, 87, 105, 116, 104, 32, 67, 111, 108, 111, 114, 105, 115, 97, 116, 105, 111, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 105, 115, 97, 116, 105, 111, 110, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 51, 54, 44, 50, 51, 54, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 105, 118, 101, 97, 117, 47, 73, 110, 116, 101, 110, 115, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 80, 108, 97, 115, 109, 97, 32, 118, 115, 32, 71, 114, 97, 100, 105, 101, 110, 116, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 111, 105, 120, 47, 67, 104, 111, 105, 99, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 83, 97, 110, 115, 47, 87, 105, 116, 104, 111, 117, 116, 34, 44, 34, 80, 108, 97, 115, 109, 97, 34, 44, 34, 52, 32, 67, 111, 108, 111, 114, 115, 32, 45, 32, 71, 114, 97, 100, 105, 101, 110, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 80, 108, 97, 115, 109, 97, 32, 61, 32, 105, 110, 116, 40, 51, 50, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 105, 110, 47, 67, 111, 114, 110, 101, 114, 32, 49, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 105, 110, 47, 67, 111, 114, 110, 101, 114, 32, 50, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 105, 110, 47, 67, 111, 114, 110, 101, 114, 32, 51, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 105, 110, 47, 67, 111, 114, 110, 101, 114, 32, 52, 32, 71, 114, 97, 100, 105, 101, 110, 116, 32, 32, 61, 32, 99, 111, 108, 111, 114, 40, 48, 44, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 84, 97, 99, 104, 101, 115, 32, 102, 111, 110, 99, 92, 51, 48, 51, 92, 50, 53, 49, 101, 115, 32, 47, 32, 68, 97, 114, 107, 32, 83, 112, 111, 116, 115, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 106, 111, 117, 116, 101, 114, 47, 65, 100, 100, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 55, 53, 44, 48, 44, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 101, 117, 105, 108, 32, 47, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 48, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 117, 114, 102, 97, 99, 101, 32, 65, 118, 101, 99, 32, 84, 97, 99, 104, 101, 115, 47, 87, 105, 116, 104, 32, 83, 112, 111, 116, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 52, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 47, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 54, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 55, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 111, 114, 97, 110, 103, 101, 114, 101, 100, 34, 62, 60, 115, 109, 97, 108, 108, 62, 83, 97, 110, 115, 32, 67, 111, 117, 108, 101, 117, 114, 115, 32, 79, 114, 105, 103, 105, 110, 101, 32, 47, 32, 87, 105, 116, 104, 111, 117, 116, 32, 67, 111, 108, 111, 114, 115, 32, 111, 102, 32, 79, 114, 105, 103, 105, 110, 60, 47, 115, 109, 97, 108, 108, 62, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 117, 112, 112, 114, 105, 109, 101, 114, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 111, 114, 105, 103, 105, 110, 101, 47, 68, 101, 108, 101, 116, 101, 32, 111, 114, 105, 103, 105, 110, 97, 108, 32, 99, 111, 108, 111, 114, 115, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 91, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 48, 48, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 91, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 46, 56, 48, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 116, 104, 114, 101, 115, 104, 111, 108, 100, 32, 91, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 46, 51, 55, 44, 48, 44, 49, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 91, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 50, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 56, 57, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 49, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 69, 100, 103, 101, 115, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 91, 69, 100, 103, 101, 115, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 48, 46, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 91, 69, 100, 103, 101, 115, 93, 32, 61, 32, 102, 108, 111, 97, 116, 40, 54, 46, 54, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 50, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 45, 49, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 67, 111, 110, 116, 111, 117, 114, 115, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 121, 112, 101, 32, 67, 111, 110, 116, 111, 117, 114, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 51, 44, 34, 83, 97, 110, 115, 47, 87, 105, 116, 104, 111, 117, 116, 32, 67, 111, 110, 116, 111, 117, 114, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 43, 68, 101, 102, 111, 114, 109, 34, 44, 34, 69, 108, 108, 105, 112, 115, 101, 43, 68, 101, 102, 111, 114, 109, 43, 83, 112, 114, 101, 97, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 110, 116, 111, 117, 114, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 48, 48, 44, 48, 44, 51, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 84, 101, 120, 116, 117, 114, 101, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 109, 112, 108, 105, 116, 117, 100, 101, 32, 61, 32, 105, 110, 116, 40, 49, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 50, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 109, 98, 111, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 51, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 114, 101, 100, 34, 62, 77, 92, 51, 48, 51, 92, 50, 53, 49, 108, 97, 110, 103, 101, 32, 47, 32, 66, 108, 101, 110, 100, 60, 47, 115, 112, 97, 110, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 50, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 101, 115, 116, 95, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 115, 97, 109, 106, 32, 58, 10, 84, 121, 112, 101, 61, 36, 49, 10, 82, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 61, 36, 50, 10, 86, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 61, 36, 51, 10, 66, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 61, 36, 52, 10, 67, 111, 108, 111, 114, 95, 73, 110, 116, 101, 110, 115, 105, 116, 121, 61, 36, 53, 10, 80, 108, 97, 115, 109, 97, 95, 71, 114, 97, 100, 105, 101, 110, 116, 61, 36, 54, 10, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 80, 108, 97, 115, 109, 97, 61, 36, 55, 10, 82, 95, 67, 111, 105, 110, 95, 49, 61, 36, 56, 10, 86, 95, 67, 111, 105, 110, 95, 49, 61, 36, 57, 10, 66, 95, 67, 111, 105, 110, 95, 49, 61, 36, 49, 48, 10, 65, 95, 67, 111, 105, 110, 95, 49, 61, 36, 49, 49, 10, 82, 95, 67, 111, 105, 110, 95, 50, 61, 36, 49, 50, 10, 86, 95, 67, 111, 105, 110, 95, 50, 61, 36, 49, 51, 10, 66, 95, 67, 111, 105, 110, 95, 50, 61, 36, 49, 52, 10, 65, 95, 67, 111, 105, 110, 95, 50, 61, 36, 49, 53, 10, 82, 95, 67, 111, 105, 110, 95, 51, 61, 36, 49, 54, 10, 86, 95, 67, 111, 105, 110, 95, 51, 61, 36, 49, 55, 10, 66, 95, 67, 111, 105, 110, 95, 51, 61, 36, 49, 56, 10, 65, 95, 67, 111, 105, 110, 95, 51, 61, 36, 49, 57, 10, 82, 95, 67, 111, 105, 110, 95, 52, 61, 36, 50, 48, 10, 86, 95, 67, 111, 105, 110, 95, 52, 61, 36, 50, 49, 10, 66, 95, 67, 111, 105, 110, 95, 52, 61, 36, 50, 50, 10, 65, 95, 67, 111, 105, 110, 95, 52, 61, 36, 50, 51, 10, 65, 106, 111, 117, 116, 101, 114, 95, 84, 97, 99, 104, 101, 115, 61, 36, 50, 52, 10, 70, 108, 111, 117, 95, 84, 97, 99, 104, 101, 115, 61, 36, 50, 53, 10, 79, 116, 115, 117, 95, 116, 97, 99, 104, 101, 115, 61, 36, 50, 54, 10, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 84, 97, 99, 104, 101, 115, 61, 36, 50, 55, 10, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 83, 97, 110, 115, 95, 84, 97, 99, 104, 101, 61, 36, 50, 56, 10, 70, 108, 111, 117, 95, 116, 97, 99, 104, 101, 61, 36, 50, 57, 10, 77, 95, 66, 108, 101, 110, 100, 95, 79, 112, 97, 99, 105, 116, 101, 61, 36, 51, 48, 10, 83, 117, 112, 112, 114, 105, 109, 101, 114, 95, 99, 111, 117, 108, 101, 117, 114, 115, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 51, 49, 10, 69, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 61, 36, 51, 50, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 61, 36, 51, 51, 10, 66, 95, 69, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 61, 36, 51, 52, 10, 66, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 61, 36, 51, 53, 10, 66, 108, 101, 110, 100, 95, 65, 61, 36, 51, 54, 10, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 69, 100, 103, 101, 115, 61, 36, 51, 55, 10, 84, 104, 114, 101, 115, 104, 111, 108, 100, 95, 69, 100, 103, 101, 115, 61, 36, 51, 56, 10, 66, 108, 101, 110, 100, 95, 66, 61, 36, 51, 57, 10, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 36, 52, 48, 10, 67, 111, 110, 116, 111, 117, 114, 115, 61, 36, 52, 49, 10, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 52, 50, 10, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 52, 51, 10, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 61, 36, 52, 52, 10, 98, 108, 101, 110, 100, 61, 36, 52, 53, 10, 111, 112, 97, 99, 105, 116, 101, 61, 36, 52, 54, 10, 9, 76, 97, 114, 103, 101, 117, 114, 61, 123, 119, 125, 10, 9, 72, 97, 117, 116, 101, 117, 114, 61, 123, 104, 125, 10, 9, 45, 105, 102, 32, 123, 36, 83, 117, 112, 112, 114, 105, 109, 101, 114, 95, 99, 111, 117, 108, 101, 117, 114, 115, 95, 111, 114, 105, 103, 105, 110, 101, 61, 61, 49, 125, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 52, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 49, 44, 45, 50, 93, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 61, 61, 49, 125, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 51, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 44, 36, 86, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 44, 36, 66, 95, 67, 111, 108, 111, 114, 95, 84, 121, 112, 101, 95, 50, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 67, 111, 108, 111, 114, 95, 73, 110, 116, 101, 110, 115, 105, 116, 121, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 32, 97, 100, 111, 117, 99, 105, 114, 10, 9, 45, 103, 105, 109, 112, 95, 98, 105, 108, 97, 116, 101, 114, 97, 108, 91, 45, 49, 93, 32, 49, 48, 44, 55, 44, 50, 44, 48, 10, 9, 35, 32, 109, -23, 108, 97, 110, 103, 101, 114, 32, 50, 32, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 32, 101, 116, 32, 111, 98, 116, 101, 110, 105, 114, 32, 50, 32, 105, 109, 97, 103, 101, 115, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 49, 93, 32, 36, 69, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 48, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 49, 10, 9, 45, 103, 105, 109, 112, 95, 115, 101, 103, 109, 101, 110, 116, 95, 119, 97, 116, 101, 114, 115, 104, 101, 100, 91, 45, 50, 93, 32, 36, 66, 95, 69, 100, 103, 101, 95, 116, 104, 114, 101, 115, 104, 111, 108, 100, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 36, 66, 95, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 83, 101, 103, 109, 101, 110, 116, 97, 116, 105, 111, 110, 44, 48, 10, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 66, 108, 101, 110, 100, 95, 65, 44, 49, 9, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 35, 32, 99, 114, -23, 101, 114, 32, 100, 101, 115, 32, 99, 111, 110, 116, 111, 117, 114, 115, 32, 98, 108, 97, 110, 99, 115, 32, 111, 117, 32, 110, 111, 105, 114, 115, 10, 9, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 45, 49, 93, 32, 36, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 95, 69, 100, 103, 101, 115, 44, 36, 84, 104, 114, 101, 115, 104, 111, 108, 100, 95, 69, 100, 103, 101, 115, 44, 48, 10, 9, 45, 105, 102, 32, 123, 36, 66, 108, 101, 110, 100, 95, 66, 62, 48, 125, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 66, 108, 101, 110, 100, 95, 66, 44, 48, 10, 9, 45, 101, 108, 115, 101, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 123, 49, 43, 36, 66, 108, 101, 110, 100, 95, 66, 125, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 32, 109, 97, 115, 113, 117, 101, 32, 112, 111, 117, 114, 32, 103, 97, 114, 100, 101, 114, 32, 108, 101, 32, 99, 101, 110, 116, 114, 101, 32, 101, 116, 32, 100, 111, 110, 110, 101, 114, 32, 117, 110, 101, 32, 116, 101, 120, 116, 117, 114, 101, 10, 9, 45, 105, 102, 32, 123, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 49, 125, 124, 124, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 50, 125, 124, 124, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 51, 125, 125, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 47, 50, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 50, 125, 44, 123, 36, 76, 97, 114, 103, 101, 117, 114, 47, 50, 46, 50, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 50, 46, 50, 125, 44, 48, 44, 49, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 45, 105, 102, 32, 123, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 50, 125, 124, 124, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 51, 125, 125, 10, 9, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 53, 48, 125, 41, 125, 42, 36, 67, 111, 110, 116, 111, 117, 114, 115, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 84, 121, 112, 101, 95, 67, 111, 110, 116, 111, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 42, 36, 67, 111, 110, 116, 111, 117, 114, 115, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 102, 105, 115, 104, 101, 121, 101, 91, 45, 49, 93, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 47, 50, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 50, 125, 44, 49, 48, 48, 44, 50, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 49, 44, 48, 10, 9, 9, 35, 32, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 91, 45, 49, 93, 32, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 116, 101, 120, 116, 117, 114, 105, 122, 101, 95, 99, 97, 110, 118, 97, 115, 91, 45, 49, 93, 32, 36, 78, 105, 118, 101, 97, 117, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 70, 105, 98, 114, 111, 117, 115, 110, 101, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 44, 36, 69, 109, 98, 111, 115, 115, 95, 116, 101, 120, 116, 117, 114, 101, 10, 9, 45, 45, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 91, 45, 49, 93, 10, 9, 35, 32, 99, 114, -23, 101, 114, 32, 100, 101, 115, 32, 102, 97, 117, 115, 115, 101, 115, 32, 99, 111, 117, 108, 101, 117, 114, 115, 10, 9, 45, 105, 102, 32, 123, 36, 80, 108, 97, 115, 109, 97, 95, 71, 114, 97, 100, 105, 101, 110, 116, 61, 61, 49, 125, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 48, 44, 51, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 112, 108, 97, 115, 109, 97, 91, 45, 49, 93, 32, 49, 48, 44, 51, 9, 10, 9, 9, 45, 43, 91, 45, 49, 44, 45, 50, 93, 9, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 49, 48, 48, 125, 41, 125, 43, 50, 125, 10, 9, 9, 45, 110, 91, 45, 49, 93, 32, 36, 78, 111, 114, 109, 97, 108, 105, 122, 101, 95, 80, 108, 97, 115, 109, 97, 44, 50, 53, 53, 10, 9, 9, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 80, 108, 97, 115, 109, 97, 95, 71, 114, 97, 100, 105, 101, 110, 116, 61, 61, 50, 125, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 102, 105, 108, 108, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 91, 45, 49, 93, 32, 36, 82, 95, 67, 111, 105, 110, 95, 49, 44, 36, 86, 95, 67, 111, 105, 110, 95, 49, 44, 36, 66, 95, 67, 111, 105, 110, 95, 49, 44, 36, 65, 95, 67, 111, 105, 110, 95, 49, 44, 36, 82, 95, 67, 111, 105, 110, 95, 50, 44, 36, 86, 95, 67, 111, 105, 110, 95, 50, 44, 36, 66, 95, 67, 111, 105, 110, 95, 50, 44, 36, 65, 95, 67, 111, 105, 110, 95, 50, 44, 36, 82, 95, 67, 111, 105, 110, 95, 51, 44, 36, 86, 95, 67, 111, 105, 110, 95, 51, 44, 36, 66, 95, 67, 111, 105, 110, 95, 51, 44, 36, 65, 95, 67, 111, 105, 110, 95, 51, 44, 36, 82, 95, 67, 111, 105, 110, 95, 52, 44, 36, 86, 95, 67, 111, 105, 110, 95, 52, 44, 36, 66, 95, 67, 111, 105, 110, 95, 52, 44, 36, 65, 95, 67, 111, 105, 110, 95, 52, 10, 9, 9, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 10, 9, 9, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 93, 32, 50, 44, 48, 44, 49, 44, 48, 32, 45, 114, 101, 109, 111, 118, 101, 91, 45, 50, 44, 45, 51, 44, 45, 52, 93, 32, 45, 103, 105, 109, 112, 95, 100, 101, 99, 111, 109, 112, 111, 115, 101, 95, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 44, 45, 50, 44, 45, 51, 93, 32, 50, 44, 49, 44, 49, 44, 48, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 65, 106, 111, 117, 116, 101, 114, 95, 84, 97, 99, 104, 101, 115, 61, 61, 49, 125, 10, 9, 9, 36, 76, 97, 114, 103, 101, 117, 114, 44, 36, 72, 97, 117, 116, 101, 117, 114, 44, 49, 44, 52, 10, 9, 9, 45, 114, 97, 110, 100, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 84, 97, 99, 104, 101, 115, 32, 45, 111, 116, 115, 117, 91, 45, 49, 93, 32, 36, 79, 116, 115, 117, 95, 116, 97, 99, 104, 101, 115, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 123, 36, 76, 97, 114, 103, 101, 117, 114, 47, 50, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 50, 125, 44, 123, 36, 76, 97, 114, 103, 101, 117, 114, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 83, 97, 110, 115, 95, 84, 97, 99, 104, 101, 125, 44, 123, 36, 72, 97, 117, 116, 101, 117, 114, 47, 36, 68, 105, 109, 101, 110, 115, 105, 111, 110, 95, 83, 97, 110, 115, 95, 84, 97, 99, 104, 101, 125, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 48, 10, 9, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 123, 123, 114, 111, 117, 110, 100, 40, 123, 123, 36, 76, 97, 114, 103, 101, 117, 114, 43, 36, 72, 97, 117, 116, 101, 117, 114, 125, 47, 53, 48, 125, 41, 125, 42, 36, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 95, 84, 97, 99, 104, 101, 115, 125, 10, 9, 9, 45, 116, 111, 95, 103, 114, 97, 121, 97, 91, 45, 49, 93, 10, 9, 9, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 9, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 116, 97, 99, 104, 101, 10, 9, 9, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 51, 93, 32, 36, 77, 95, 66, 108, 101, 110, 100, 95, 79, 112, 97, 99, 105, 116, 101, 44, 49, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 84, 101, 115, 116, 95, 87, 97, 116, 101, 114, 99, 111, 108, 111, 114, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82, 101, 99, 111, 108, 111, 114, 105, 122, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 50, 48, 49, 51, 32, 48, 49, 32, 49, 53, 32, 109, 111, 100, 105, 102, 105, -23, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 114, 97, 105, 116, 115, 95, 83, 116, 114, 111, 107, 101, 115, 32, 58, 32, 84, 114, 97, 105, 116, 115, 95, 83, 116, 114, 111, 107, 101, 115, 95, 115, 97, 109, 106, 44, 32, 84, 114, 97, 105, 116, 115, 95, 83, 116, 114, 111, 107, 101, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 79, 114, 105, 103, 105, 110, 101, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 88, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 111, 115, 105, 116, 105, 111, 110, 32, 89, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 84, 114, 97, 105, 116, 115, 32, 47, 32, 83, 116, 114, 111, 107, 101, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 95, 76, 95, 111, 95, 110, 95, 103, 95, 117, 95, 101, 95, 117, 95, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 40, 80, 105, 120, 101, 108, 115, 41, 32, 61, 32, 105, 110, 116, 40, 49, 53, 48, 44, 49, 44, 52, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 37, 32, 40, 76, 111, 110, 103, 117, 101, 117, 114, 47, 76, 101, 110, 103, 116, 104, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 48, 48, 44, 48, 44, 49, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 80, 108, 117, 115, 32, 47, 32, 77, 111, 114, 101, 34, 44, 34, 77, 111, 105, 110, 115, 32, 47, 32, 76, 101, 115, 115, 34, 44, 34, 80, 108, 117, 115, 32, 47, 32, 77, 111, 114, 101, 32, 91, 109, 105, 108, 105, 101, 117, 45, 109, 105, 100, 100, 108, 101, 93, 34, 44, 34, 77, 111, 105, 110, 115, 32, 47, 32, 76, 101, 115, 115, 32, 91, 109, 105, 108, 105, 101, 117, 45, 109, 105, 100, 100, 108, 101, 93, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 32, 100, 117, 32, 99, 101, 110, 116, 114, 101, 32, 40, 80, 105, 120, 101, 108, 115, 41, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 50, 48, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 95, 78, 95, 111, 95, 109, 95, 98, 95, 114, 95, 101, 95, 32, 95, 100, 95, 101, 95, 32, 95, 116, 95, 114, 95, 97, 95, 105, 95, 116, 95, 115, 32, 47, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 116, 114, 111, 107, 101, 115, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 49, 44, 50, 49, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 40, 68, 92, 51, 48, 51, 92, 50, 53, 49, 112, 97, 114, 116, 32, 47, 32, 83, 116, 97, 114, 116, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 65, 110, 103, 108, 101, 32, 40, 70, 105, 110, 32, 47, 32, 69, 110, 100, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 48, 44, 48, 44, 51, 54, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 117, 108, 101, 117, 114, 47, 32, 67, 111, 108, 111, 114, 61, 32, 99, 111, 108, 111, 114, 40, 50, 52, 48, 44, 54, 48, 44, 49, 50, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 114, 105, 97, 116, 105, 111, 110, 32, 100, 101, 32, 99, 111, 117, 108, 101, 117, 114, 32, 47, 32, 67, 111, 108, 111, 114, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 80, 97, 115, 32, 100, 101, 32, 118, 97, 114, 105, 97, 116, 105, 111, 110, 32, 47, 32, 78, 111, 32, 99, 104, 97, 110, 103, 101, 34, 44, 34, 67, 111, 117, 108, 101, 117, 114, 115, 32, 97, 108, 101, 97, 116, 111, 105, 114, 101, 115, 32, 47, 32, 82, 97, 110, 100, 111, 109, 32, 99, 111, 108, 111, 114, 115, 34, 44, 34, 70, 97, 105, 98, 108, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 80, 111, 111, 114, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 77, 111, 121, 101, 110, 110, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 77, 111, 100, 101, 114, 97, 116, 101, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 44, 34, 70, 111, 114, 116, 101, 109, 101, 110, 116, 32, 110, 117, 97, 110, 99, 101, 101, 32, 47, 32, 72, 105, 103, 104, 108, 121, 32, 110, 117, 97, 110, 99, 101, 100, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 112, 97, 105, 115, 115, 101, 117, 114, 32, 47, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 32, 61, 32, 105, 110, 116, 40, 48, 44, 48, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 83, 121, 109, 92, 51, 48, 51, 92, 50, 53, 49, 116, 114, 105, 101, 32, 47, 32, 83, 121, 109, 109, 101, 116, 114, 121, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 121, 109, 92, 51, 48, 51, 92, 50, 53, 49, 116, 114, 105, 101, 32, 47, 32, 83, 121, 109, 109, 101, 116, 114, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 76, 111, 110, 103, 117, 101, 117, 114, 32, 47, 32, 76, 101, 110, 103, 116, 104, 32, 40, 37, 41, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 68, 105, 118, 101, 114, 115, 32, 47, 32, 70, 111, 111, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 108, 111, 117, 32, 47, 32, 66, 108, 117, 114, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 112, 114, 101, 97, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 50, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 50, 55, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 114, 97, 105, 116, 115, 95, 83, 116, 114, 111, 107, 101, 115, 95, 115, 97, 109, 106, 58, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 119, 125, 42, 123, 36, 49, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 61, 123, 114, 111, 117, 110, 100, 40, 123, 123, 104, 125, 42, 123, 36, 50, 47, 49, 48, 48, 125, 125, 41, 125, 10, 9, 9, 35, 84, 114, 97, 105, 116, 115, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 61, 36, 51, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 61, 36, 52, 10, 9, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 36, 53, 10, 9, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 61, 36, 54, 10, 9, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 61, 36, 55, 10, 9, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 61, 36, 56, 10, 9, 65, 110, 103, 108, 101, 95, 70, 105, 110, 61, 36, 57, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 48, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 49, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 50, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 49, 51, 10, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 36, 49, 52, 10, 9, 69, 112, 97, 105, 115, 115, 101, 117, 114, 61, 36, 49, 53, 10, 9, 9, 35, 83, 121, 109, -23, 116, 114, 105, 101, 10, 9, 83, 121, 109, 101, 116, 114, 105, 101, 61, 36, 49, 54, 10, 9, 80, 111, 117, 114, 99, 101, 110, 116, 95, 76, 111, 110, 103, 117, 101, 117, 114, 95, 83, 121, 109, 61, 36, 49, 55, 10, 9, 9, 35, 68, 105, 118, 101, 114, 115, 10, 9, 70, 108, 111, 117, 95, 116, 114, 97, 105, 116, 115, 61, 36, 49, 56, 10, 9, 83, 112, 114, 101, 97, 100, 95, 116, 114, 97, 105, 116, 115, 61, 36, 49, 57, 10, 9, 68, 101, 102, 111, 114, 109, 95, 116, 114, 97, 105, 116, 115, 61, 36, 50, 48, 10, 9, 98, 108, 101, 110, 100, 61, 36, 50, 49, 10, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 50, 50, 10, 9, 45, 116, 111, 95, 114, 103, 98, 97, 10, 9, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 52, 9, 9, 35, 35, 32, 99, 114, -23, 101, 114, 32, 117, 110, 101, 32, 105, 109, 97, 103, 101, 32, 116, 114, 97, 110, 115, 112, 97, 114, 101, 110, 116, 101, 32, 97, 117, 120, 32, 109, -22, 109, 101, 115, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 115, 32, 113, 117, 101, 32, 108, 39, 105, 109, 97, 103, 101, 32, 100, 39, 111, 114, 105, 103, 105, 110, 101, 10, 9, 65, 110, 103, 108, 101, 61, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 10, 9, 45, 105, 102, 32, 123, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 62, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 125, 10, 9, 9, 65, 110, 103, 108, 101, 95, 70, 105, 110, 61, 123, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 43, 51, 54, 48, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 61, 123, 123, 36, 65, 110, 103, 108, 101, 95, 70, 105, 110, 45, 36, 65, 110, 103, 108, 101, 95, 68, 101, 112, 97, 114, 116, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 49, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 50, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 51, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 45, 105, 102, 32, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 52, 125, 10, 9, 9, 86, 97, 114, 105, 97, 116, 105, 111, 110, 61, 123, 123, 45, 36, 76, 111, 110, 103, 117, 101, 117, 114, 47, 49, 48, 48, 48, 42, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 115, 95, 76, 111, 110, 103, 117, 101, 117, 114, 125, 47, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 36, 76, 111, 110, 103, 117, 101, 117, 114, 10, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 49, 10, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 61, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 45, 114, 101, 112, 101, 97, 116, 32, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 49, 125, 10, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 53, 53, 41, 41, 125, 41, 125, 10, 9, 9, 9, 9, 65, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 123, 114, 111, 117, 110, 100, 40, 123, 40, 63, 40, 50, 48, 48, 41, 41, 125, 41, 125, 43, 53, 53, 125, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 35, 35, 32, 99, 111, 117, 108, 101, 117, 114, 115, 32, 110, 117, 97, 110, 99, -23, 101, 115, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 62, 49, 125, 10, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 49, 54, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 51, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 51, 50, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 95, 100, 101, 95, 99, 111, 117, 108, 101, 117, 114, 61, 61, 52, 125, 10, 9, 9, 9, 9, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 61, 54, 52, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 9, 9, 9, 9, 9, 10, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 82, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 86, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 123, 114, 111, 117, 110, 100, 40, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 43, 123, 63, 40, 45, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 44, 36, 86, 97, 108, 101, 117, 114, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 95, 99, 111, 117, 108, 101, 117, 114, 41, 125, 125, 41, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 62, 50, 53, 53, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 60, 48, 125, 10, 9, 9, 9, 9, 9, 9, 66, 95, 67, 111, 117, 108, 101, 117, 114, 61, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 95, 111, 114, 105, 103, 105, 110, 101, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 68, 101, 98, 117, 116, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 68, 101, 98, 117, 116, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 36, 65, 110, 103, 108, 101, 41, 42, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 68, 101, 98, 117, 116, 95, 88, 44, 36, 68, 101, 98, 117, 116, 95, 89, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 10, 9, 9, 45, 105, 102, 32, 123, 36, 83, 121, 109, 101, 116, 114, 105, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 68, 101, 98, 117, 116, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 65, 110, 103, 108, 101, 43, 49, 56, 48, 125, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 9, 9, 68, 101, 98, 117, 116, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 65, 110, 103, 108, 101, 43, 49, 56, 48, 125, 41, 42, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 41, 125, 125, 10, 9, 9, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 88, 43, 123, 114, 111, 117, 110, 100, 40, 99, 111, 115, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 65, 110, 103, 108, 101, 43, 49, 56, 48, 125, 41, 42, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 47, 49, 48, 48, 42, 36, 80, 111, 117, 114, 99, 101, 110, 116, 95, 76, 111, 110, 103, 117, 101, 117, 114, 95, 83, 121, 109, 125, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 9, 9, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 61, 123, 36, 80, 111, 115, 105, 116, 105, 111, 110, 95, 89, 43, 123, 114, 111, 117, 110, 100, 40, 115, 105, 110, 40, 112, 105, 47, 49, 56, 48, 42, 123, 36, 65, 110, 103, 108, 101, 43, 49, 56, 48, 125, 41, 42, 123, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 47, 49, 48, 48, 42, 36, 80, 111, 117, 114, 99, 101, 110, 116, 95, 76, 111, 110, 103, 117, 101, 117, 114, 95, 83, 121, 109, 125, 43, 36, 69, 108, 111, 105, 103, 110, 101, 109, 101, 110, 116, 95, 100, 117, 95, 99, 101, 110, 116, 114, 101, 125, 41, 125, 125, 10, 9, 9, 9, 9, 45, 108, 105, 110, 101, 91, 45, 49, 93, 32, 36, 68, 101, 98, 117, 116, 95, 88, 44, 36, 68, 101, 98, 117, 116, 95, 89, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 88, 44, 36, 69, 120, 116, 114, 101, 109, 105, 116, 101, 95, 89, 44, 49, 44, 36, 82, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 86, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 66, 95, 67, 111, 117, 108, 101, 117, 114, 44, 36, 65, 95, 67, 111, 117, 108, 101, 117, 114, 9, 9, 9, 9, 10, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 65, 110, 103, 108, 101, 61, 123, 36, 65, 110, 103, 108, 101, 43, 36, 105, 110, 99, 114, 101, 109, 101, 110, 116, 95, 116, 104, 101, 116, 97, 125, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 49, 125, 124, 124, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 50, 125, 125, 10, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 105, 102, 32, 123, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 51, 125, 124, 124, 123, 36, 77, 111, 100, 101, 95, 118, 97, 114, 105, 97, 116, 105, 111, 110, 115, 61, 61, 52, 125, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 60, 123, 36, 78, 111, 109, 98, 114, 101, 95, 100, 101, 95, 116, 114, 97, 105, 116, 115, 47, 50, 125, 125, 10, 9, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 43, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 61, 123, 36, 76, 111, 110, 103, 117, 101, 117, 114, 95, 99, 97, 108, 99, 117, 108, 101, 101, 45, 36, 86, 97, 114, 105, 97, 116, 105, 111, 110, 125, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 78, 98, 95, 66, 111, 117, 99, 108, 101, 61, 123, 36, 78, 98, 95, 66, 111, 117, 99, 108, 101, 43, 49, 125, 10, 9, 45, 100, 111, 110, 101, 10, 9, 45, 105, 102, 32, 123, 36, 69, 112, 97, 105, 115, 115, 101, 117, 114, 62, 48, 125, 10, 9, 9, 45, 100, 105, 108, 97, 116, 101, 95, 99, 105, 114, 99, 91, 45, 49, 93, 32, 36, 69, 112, 97, 105, 115, 115, 101, 117, 114, 10, 9, 45, 101, 110, 100, 105, 102, 10, 9, 45, 98, 108, 117, 114, 91, 45, 49, 93, 32, 36, 70, 108, 111, 117, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 115, 112, 114, 101, 97, 100, 91, 45, 49, 93, 32, 36, 83, 112, 114, 101, 97, 100, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 100, 101, 102, 111, 114, 109, 91, 45, 49, 93, 32, 36, 68, 101, 102, 111, 114, 109, 95, 116, 114, 97, 105, 116, 115, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 49, 44, 45, 50, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 49, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 32, 32, 84, 114, 97, 99, 101, 114, 32, 100, 101, 115, 32, 116, 114, 97, 105, 116, 115, 32, 97, 117, 116, 111, 117, 114, 32, 100, 39, 117, 110, 32, 112, 111, 105, 110, 116, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, 112, 105, 114, 111, 103, 114, 97, 112, 104, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 84, 114, 97, 109, 101, 115, 32, 58, 32, 84, 114, 97, 109, 101, 115, 95, 115, 97, 109, 106, 44, 32, 84, 114, 97, 109, 101, 115, 95, 115, 97, 109, 106, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 67, 117, 116, 32, 45, 32, 67, 117, 116, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 65, 32, 61, 32, 105, 110, 116, 40, 54, 51, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 66, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 68, 111, 116, 115, 66, 87, 32, 45, 32, 68, 111, 116, 115, 66, 87, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 98, 46, 32, 83, 99, 97, 108, 101, 115, 32, 61, 32, 105, 110, 116, 40, 56, 44, 49, 44, 51, 50, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 101, 115, 111, 108, 117, 116, 105, 111, 110, 32, 61, 32, 105, 110, 116, 40, 51, 48, 44, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 77, 117, 108, 116, 105, 112, 108, 121, 32, 45, 32, 77, 117, 108, 116, 105, 112, 108, 121, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 117, 108, 116, 105, 112, 108, 121, 32, 61, 32, 105, 110, 116, 40, 50, 53, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 65, 117, 116, 111, 73, 110, 100, 101, 120, 32, 45, 32, 65, 117, 116, 111, 73, 110, 100, 101, 120, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 98, 32, 67, 111, 108, 111, 114, 115, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 49, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 105, 116, 104, 101, 114, 105, 110, 103, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 101, 116, 104, 111, 100, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 109, 101, 100, 105, 97, 110, 45, 99, 117, 116, 34, 44, 34, 107, 45, 109, 101, 97, 110, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 66, 108, 101, 110, 100, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 66, 108, 101, 110, 100, 32, 77, 111, 100, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 49, 44, 34, 78, 111, 110, 32, 47, 32, 78, 111, 34, 44, 34, 65, 108, 112, 104, 97, 34, 44, 34, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 67, 111, 108, 111, 114, 32, 66, 117, 114, 110, 34, 44, 34, 68, 97, 114, 107, 101, 110, 34, 44, 34, 68, 105, 102, 102, 101, 114, 101, 110, 99, 101, 34, 44, 34, 68, 105, 118, 105, 100, 101, 34, 44, 34, 68, 111, 100, 103, 101, 34, 44, 34, 69, 100, 103, 101, 115, 34, 44, 34, 69, 120, 99, 108, 117, 115, 105, 111, 110, 34, 44, 34, 70, 114, 101, 101, 122, 101, 34, 44, 34, 71, 114, 97, 105, 110, 32, 69, 120, 116, 114, 97, 99, 116, 34, 44, 34, 71, 114, 97, 105, 110, 32, 77, 101, 114, 103, 101, 34, 44, 34, 72, 97, 114, 100, 32, 76, 105, 103, 104, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 73, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 34, 44, 34, 76, 105, 103, 104, 116, 101, 110, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 77, 101, 100, 105, 97, 110, 34, 44, 34, 77, 117, 108, 116, 105, 112, 108, 121, 34, 44, 34, 78, 101, 103, 97, 116, 105, 111, 110, 34, 44, 34, 79, 118, 101, 114, 108, 97, 121, 34, 44, 34, 82, 101, 102, 108, 101, 99, 116, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 83, 99, 114, 101, 101, 110, 34, 44, 34, 83, 104, 97, 112, 101, 32, 65, 118, 101, 114, 97, 103, 101, 34, 44, 34, 83, 111, 102, 116, 32, 76, 105, 103, 104, 116, 34, 44, 34, 83, 116, 97, 109, 112, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 88, 111, 114, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 79, 112, 97, 99, 105, 116, 92, 51, 48, 51, 92, 50, 53, 49, 32, 47, 32, 79, 112, 97, 99, 105, 116, 121, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 52, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 110, 118, 101, 114, 115, 105, 111, 110, 32, 45, 32, 73, 110, 118, 101, 114, 116, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 80, 97, 114, 97, 109, 92, 51, 48, 51, 92, 50, 53, 48, 116, 114, 101, 115, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 45, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 102, 97, 108, 115, 101, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 67, 32, 61, 32, 105, 110, 116, 40, 52, 48, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 101, 117, 114, 32, 68, 32, 61, 32, 105, 110, 116, 40, 50, 49, 53, 44, 48, 44, 50, 53, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 101, 117, 114, 115, 32, 47, 32, 65, 117, 116, 104, 111, 114, 115, 32, 58, 32, 60, 105, 62, 83, 97, 109, 106, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 32, 58, 32, 60, 105, 62, 50, 48, 49, 51, 47, 48, 49, 47, 50, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 84, 114, 97, 109, 101, 115, 95, 115, 97, 109, 106, 32, 58, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 65, 61, 36, 49, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 66, 61, 36, 50, 10, 9, 9, 100, 111, 116, 115, 98, 119, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 61, 36, 51, 10, 9, 9, 100, 111, 116, 115, 98, 119, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 61, 36, 52, 10, 9, 9, 100, 111, 116, 115, 98, 119, 95, 114, 97, 100, 105, 117, 115, 61, 36, 53, 10, 9, 9, 77, 117, 108, 116, 105, 112, 108, 121, 61, 36, 54, 10, 9, 9, 10, 9, 9, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 110, 98, 95, 99, 111, 108, 111, 114, 115, 61, 36, 55, 10, 9, 9, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 100, 105, 116, 104, 101, 114, 105, 110, 103, 61, 36, 56, 10, 9, 9, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 109, 101, 116, 104, 111, 100, 61, 36, 57, 10, 9, 9, 10, 9, 9, 98, 108, 101, 110, 100, 61, 36, 49, 48, 10, 9, 9, 111, 112, 97, 99, 105, 116, 101, 61, 36, 49, 49, 10, 9, 9, 105, 110, 118, 101, 114, 116, 61, 36, 49, 50, 9, 10, 9, 9, 85, 116, 105, 108, 105, 115, 101, 114, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 61, 36, 49, 51, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 67, 61, 36, 49, 52, 10, 9, 9, 86, 97, 108, 101, 117, 114, 95, 68, 61, 36, 49, 53, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 65, 62, 36, 86, 97, 108, 101, 117, 114, 95, 66, 125, 10, 9, 9, 9, 45, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 66, 44, 36, 86, 97, 108, 101, 117, 114, 95, 65, 10, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 45, 45, 99, 117, 116, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 65, 44, 36, 86, 97, 108, 101, 117, 114, 95, 66, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 100, 111, 116, 115, 98, 119, 91, 45, 49, 93, 32, 36, 100, 111, 116, 115, 98, 119, 95, 110, 98, 95, 115, 99, 97, 108, 101, 115, 44, 36, 100, 111, 116, 115, 98, 119, 95, 114, 101, 115, 111, 108, 117, 116, 105, 111, 110, 44, 36, 100, 111, 116, 115, 98, 119, 95, 114, 97, 100, 105, 117, 115, 10, 9, 9, 45, 109, 117, 108, 91, 45, 49, 93, 32, 36, 77, 117, 108, 116, 105, 112, 108, 121, 10, 9, 9, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 9, 9, 45, 97, 117, 116, 111, 105, 110, 100, 101, 120, 91, 45, 50, 93, 32, 36, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 110, 98, 95, 99, 111, 108, 111, 114, 115, 44, 36, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 100, 105, 116, 104, 101, 114, 105, 110, 103, 44, 36, 97, 117, 116, 111, 105, 110, 100, 101, 120, 95, 109, 101, 116, 104, 111, 100, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 48, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 97, 114, 107, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 105, 118, 105, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 100, 111, 100, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 102, 114, 101, 101, 122, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 104, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 49, 57, 125, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 101, 100, 105, 97, 110, 91, 45, 50, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 49, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 110, 101, 103, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 50, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 111, 118, 101, 114, 108, 97, 121, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 51, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 114, 101, 102, 108, 101, 99, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 52, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 53, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 99, 114, 101, 101, 110, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 54, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 55, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 56, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 115, 116, 97, 109, 112, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 50, 57, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 118, 97, 108, 117, 101, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 105, 102, 32, 123, 36, 98, 108, 101, 110, 100, 61, 61, 51, 48, 125, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 49, 53, 51, 48, 95, 120, 111, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 111, 112, 97, 99, 105, 116, 101, 44, 36, 105, 110, 118, 101, 114, 116, 32, 45, 101, 110, 100, 105, 102, 9, 10, 9, 9, 45, 105, 102, 32, 123, 36, 85, 116, 105, 108, 105, 115, 101, 114, 95, 110, 111, 114, 109, 97, 108, 105, 122, 101, 61, 61, 49, 125, 10, 9, 9, 9, 9, 45, 105, 102, 32, 123, 36, 86, 97, 108, 101, 117, 114, 95, 67, 62, 36, 86, 97, 108, 101, 117, 114, 95, 68, 125, 10, 9, 9, 9, 9, 9, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 68, 44, 36, 86, 97, 108, 101, 117, 114, 95, 67, 10, 9, 9, 9, 9, 45, 101, 108, 115, 101, 10, 9, 9, 9, 9, 9, 45, 110, 111, 114, 109, 97, 108, 105, 122, 101, 91, 45, 49, 93, 32, 36, 86, 97, 108, 101, 117, 114, 95, 67, 44, 36, 86, 97, 108, 101, 117, 114, 95, 68, 10, 9, 9, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 45, 101, 110, 100, 105, 102, 10, 9, 9, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, 73, 78, 32, 32, 32, 84, 114, 97, 109, 101, 115, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 101, 115, 116, 95, 73, 115, 111, 76, 105, 110, 101, 51, 68, 95, 115, 97, 109, 106, 10, 9, 9, 9, 9, 9, 9, 35, 35, 10, 9, 9, 9, 9, 9, 9, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 65, 98, 111, 117, 116, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 97, 98, 111, 117, 116, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 115, 112, 97, 110, 32, 102, 111, 114, 101, 103, 114, 111, 117, 110, 100, 61, 34, 112, 117, 114, 112, 108, 101, 34, 62, 40, 32, 60, 98, 62, 84, 60, 47, 98, 62, 111, 109, 32, 75, 101, 105, 108, -76, 115, 32, 60, 98, 62, 70, 60, 47, 98, 62, 105, 108, 116, 101, 114, 32, 60, 98, 62, 83, 60, 47, 98, 62, 101, 116, 32, 102, 111, 114, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 41, 60, 47, 115, 112, 97, 110, 62, 92, 110, 92, 110, 105, 115, 32, 112, 114, 111, 112, 111, 115, 101, 100, 32, 116, 111, 32, 121, 111, 117, 32, 98, 121, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 84, 111, 109, 32, 75, 101, 105, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 111, 102, 32, 116, 104, 105, 115, 32, 115, 101, 116, 32, 111, 102, 32, 102, 105, 108, 116, 101, 114, 115, 32, 97, 110, 100, 32, 97, 100, 100, 105, 116, 105, 111, 110, 97, 108, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 115, 32, 97, 110, 100, 32, 116, 117, 116, 111, 114, 105, 97, 108, 115, 32, 97, 114, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 32, 58, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 116, 107, 102, 105, 108, 116, 101, 114, 46, 98, 112, 108, 97, 99, 101, 100, 46, 110, 101, 116, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 84, 104, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 105, 110, 32, 116, 104, 105, 115, 32, 102, 111, 108, 100, 101, 114, 32, 97, 114, 101, 32, 115, 116, 105, 108, 108, 32, 117, 110, 100, 101, 114, 32, 100, 101, 118, 101, 108, 111, 112, 109, 101, 110, 116, 32, 97, 110, 100, 32, 109, 97, 121, 32, 98, 101, 32, 115, 117, 98, 106, 101, 99, 116, 32, 116, 111, 32, 99, 104, 97, 110, 103, 101, 115, 46, 32, 83, 111, 109, 101, 32, 102, 105, 108, 116, 101, 114, 115, 32, 97, 112, 112, 101, 97, 114, 105, 110, 103, 32, 104, 101, 114, 101, 32, 97, 114, 101, 32, 97, 108, 115, 111, 32, 112, 97, 114, 116, 32, 111, 102, 32, 116, 104, 101, 32, 109, 97, 105, 110, 32, 102, 105, 108, 116, 101, 114, 32, 116, 114, 101, 101, 32, 111, 102, 32, 71, -76, 77, 73, 67, 46, 32, 73, 102, 32, 116, 104, 101, 121, 32, 97, 112, 112, 101, 97, 114, 32, 104, 101, 114, 101, 32, 116, 111, 111, 32, 105, 116, 32, 109, 101, 97, 110, 115, 32, 116, 104, 101, 114, 101, 32, 97, 114, 101, 32, 99, 104, 97, 110, 103, 101, 115, 32, 97, 110, 100, 32, 117, 112, 100, 97, 116, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 105, 110, 32, 116, 104, 101, 32, 109, 97, 105, 110, 32, 102, 105, 108, 116, 101, 114, 32, 116, 114, 101, 101, 46, 34, 125, 10, 103, 105, 109, 112, 95, 116, 107, 95, 97, 98, 111, 117, 116, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 84, 111, 109, 32, 75, 101, 105, 108, -76, 115, 32, 70, 105, 108, 116, 101, 114, 115, 34, 10, 35, 64, 103, 105, 109, 112, 32, 66, 101, 97, 117, 116, 121, 32, 82, 101, 116, 111, 117, 99, 104, 32, 58, 32, 103, 105, 109, 112, 95, 116, 107, 95, 114, 101, 116, 111, 117, 99, 104, 44, 32, 103, 105, 109, 112, 95, 116, 107, 95, 114, 101, 116, 111, 117, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 48, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 68, 101, 116, 97, 105, 108, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 51, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 105, 110, 103, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 84, 104, 114, 101, 115, 104, 111, 108, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 48, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 100, 103, 101, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 46, 53, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 82, 97, 100, 105, 117, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 104, 97, 114, 112, 101, 110, 105, 110, 103, 32, 83, 116, 114, 101, 110, 103, 116, 104, 32, 61, 32, 102, 108, 111, 97, 116, 40, 50, 46, 53, 44, 48, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 105, 101, 119, 32, 69, 100, 103, 101, 32, 77, 97, 115, 107, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 101, 110, 32, 115, 107, 105, 110, 32, 116, 111, 110, 101, 115, 32, 111, 110, 108, 121, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 84, 111, 109, 32, 75, 101, 105, 108, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 49, 47, 48, 53, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 70, 105, 108, 116, 101, 114, 32, 101, 120, 112, 108, 97, 105, 110, 101, 100, 32, 104, 101, 114, 101, 34, 44, 34, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 102, 108, 105, 99, 107, 114, 46, 99, 111, 109, 47, 103, 114, 111, 117, 112, 115, 47, 103, 109, 105, 99, 47, 100, 105, 115, 99, 117, 115, 115, 47, 55, 50, 49, 53, 55, 54, 50, 53, 53, 51, 56, 54, 54, 57, 48, 52, 49, 47, 34, 41, 10, 103, 105, 109, 112, 95, 116, 107, 95, 114, 101, 116, 111, 117, 99, 104, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 105, 102, 32, 123, 36, 56, 61, 61, 49, 125, 10, 45, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 32, 36, 53, 44, 36, 52, 44, 48, 44, 48, 32, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 123, 36, 53, 42, 53, 125, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 32, 45, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 32, 45, 103, 105, 109, 112, 95, 101, 100, 103, 101, 115, 91, 50, 93, 32, 36, 53, 44, 36, 52, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 50, 93, 32, 123, 36, 53, 42, 53, 125, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 50, 93, 32, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 50, 93, 10, 45, 103, 105, 109, 112, 95, 104, 105, 103, 104, 112, 97, 115, 115, 91, 49, 93, 32, 123, 36, 49, 125, 44, 50, 44, 49, 44, 49, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 49, 93, 32, 36, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 32, 45, 45, 116, 111, 95, 114, 103, 98, 97, 91, 48, 93, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 53, 93, 32, 48, 10, 45, 103, 105, 109, 112, 95, 99, 104, 97, 110, 110, 101, 108, 95, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 91, 53, 93, 32, 49, 44, 49, 44, 52, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 44, 50, 53, 54, 44, 48, 44, 48, 44, 48, 44, 50, 44, 55, 44, 48, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 91, 53, 93, 32, 123, 123, 119, 43, 104, 125, 47, 49, 48, 48, 48, 125, 44, 48, 44, 48, 44, 49, 44, 48, 44, 48, 44, 48, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 53, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 115, 112, 108, 105, 116, 91, 49, 93, 32, 99, 32, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 52, 44, 53, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 53, 93, 10, 45, 105, 102, 32, 123, 36, 57, 61, 61, 49, 125, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 52, 44, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 52, 44, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 97, 112, 112, 101, 110, 100, 91, 45, 54, 44, 45, 53, 44, 45, 52, 44, 45, 51, 93, 32, 99, 10, 45, 114, 101, 118, 101, 114, 115, 101, 91, 48, 44, 49, 93, 32, 45, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 91, 48, 44, 49, 93, 32, 123, 36, 51, 47, 53, 125, 10, 45, 103, 105, 109, 112, 95, 117, 110, 115, 104, 97, 114, 112, 91, 45, 50, 93, 32, 48, 44, 36, 54, 44, 51, 48, 44, 36, 55, 44, 48, 46, 48, 48, 44, 49, 46, 48, 48, 44, 48, 46, 53, 44, 49, 44, 48, 44, 55, 44, 48, 10, 45, 115, 112, 108, 105, 116, 91, 45, 50, 93, 32, 99, 32, 32, 45, 114, 101, 118, 101, 114, 115, 101, 91, 45, 49, 44, 45, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 91, 45, 49, 44, 45, 50, 93, 32, 45, 97, 112, 112, 101, 110, 100, 91, 45, 52, 44, 45, 51, 44, 45, 50, 44, 45, 49, 93, 32, 99, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 48, 44, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 116, 107, 95, 114, 101, 116, 111, 117, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 116, 107, 95, 114, 101, 116, 111, 117, 99, 104, 32, 36, 123, 49, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 35, 64, 103, 105, 109, 112, 32, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 105, 62, 90, 111, 110, 100, 101, 114, 114, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 100, 101, 109, 111, 32, 109, 97, 116, 104, 109, 97, 112, 32, 114, 97, 58, 32, 100, 101, 109, 111, 95, 114, 97, 44, 32, 100, 101, 109, 111, 95, 114, 97, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 109, 97, 116, 104, 109, 97, 112, 32, 114, 97, 58, 32, 100, 101, 109, 111, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 97, 100, 105, 117, 115, 95, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 97, 110, 103, 108, 101, 95, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 100, 101, 109, 111, 95, 114, 97, 58, 10, 45, 109, 97, 116, 104, 109, 97, 112, 95, 114, 97, 32, 34, 114, 109, 97, 116, 104, 42, 36, 49, 34, 44, 34, 97, 109, 97, 116, 104, 42, 36, 50, 34, 10, 35, 64, 103, 105, 109, 112, 32, 100, 101, 109, 111, 32, 109, 97, 116, 104, 109, 97, 112, 32, 88, 89, 58, 32, 100, 101, 109, 111, 95, 120, 121, 44, 32, 100, 101, 109, 111, 95, 120, 121, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 109, 97, 116, 104, 109, 97, 112, 32, 120, 121, 58, 32, 100, 101, 109, 111, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 120, 95, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 121, 95, 115, 99, 97, 108, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 49, 44, 48, 44, 49, 48, 41, 10, 100, 101, 109, 111, 95, 120, 121, 58, 10, 45, 109, 97, 116, 104, 109, 97, 112, 95, 120, 121, 32, 34, 120, 109, 97, 116, 104, 42, 36, 49, 34, 44, 34, 121, 109, 97, 116, 104, 42, 36, 50, 34, 10, 35, 64, 103, 105, 109, 112, 32, 70, 111, 117, 114, 105, 101, 114, 32, 112, 105, 99, 116, 117, 114, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 58, 32, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 95, 112, 105, 99, 116, 117, 114, 101, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 44, 32, 95, 110, 111, 110, 101, 95, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 101, 108, 97, 116, 105, 118, 101, 32, 115, 105, 122, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 50, 44, 48, 46, 49, 44, 48, 46, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 78, 111, 116, 101, 32, 58, 32, 84, 111, 32, 109, 97, 107, 101, 32, 116, 104, 101, 32, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 118, 105, 115, 105, 98, 108, 101, 32, 97, 102, 116, 101, 114, 119, 97, 114, 100, 115, 44, 32, 117, 115, 101, 32, 116, 104, 101, 32, 39, 70, 111, 117, 114, 105, 101, 114, 32, 65, 110, 97, 108, 121, 115, 105, 115, 39, 32, 102, 105, 108, 116, 101, 114, 46, 32, 34, 41, 10, 103, 105, 109, 112, 95, 102, 111, 117, 114, 105, 101, 114, 95, 112, 105, 99, 116, 117, 114, 101, 95, 119, 97, 116, 101, 114, 109, 97, 114, 107, 32, 58, 10, 45, 114, 101, 115, 105, 122, 101, 95, 114, 97, 116, 105, 111, 50, 100, 91, 48, 93, 32, 123, 64, 123, 49, 44, 119, 125, 42, 36, 49, 125, 44, 123, 64, 123, 49, 44, 104, 125, 42, 36, 49, 125, 32, 45, 116, 111, 95, 103, 114, 97, 121, 91, 48, 93, 32, 45, 116, 104, 114, 101, 115, 104, 111, 108, 100, 91, 48, 93, 32, 49, 50, 55, 10, 45, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 50, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 119, 97, 116, 101, 114, 109, 97, 114, 107, 95, 102, 111, 117, 114, 105, 101, 114, 50, 32, 58, 10, 45, 102, 102, 116, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 53, 48, 37, 44, 53, 48, 37, 44, 48, 44, 48, 44, 50, 10, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 123, 115, 125, 10, 45, 105, 109, 97, 103, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 105, 109, 97, 103, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 51, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 105, 109, 97, 103, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 123, 64, 123, 45, 50, 44, 119, 125, 45, 50, 45, 64, 123, 48, 44, 119, 125, 125, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 120, 10, 45, 105, 109, 97, 103, 101, 91, 45, 51, 44, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 44, 123, 64, 123, 45, 50, 44, 104, 125, 45, 50, 45, 64, 123, 48, 44, 104, 125, 125, 44, 48, 44, 48, 44, 49, 44, 91, 48, 93, 10, 45, 109, 105, 114, 114, 111, 114, 91, 48, 93, 32, 121, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 115, 104, 105, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 53, 48, 37, 44, 45, 53, 48, 37, 44, 48, 44, 48, 44, 50, 32, 45, 105, 102, 102, 116, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 10, 45, 114, 109, 91, 48, 93, 10, 35, 64, 103, 105, 109, 112, 32, 109, 97, 116, 104, 109, 97, 112, 32, 102, 108, 97, 103, 58, 32, 109, 97, 116, 104, 109, 97, 112, 95, 102, 108, 97, 103, 44, 32, 109, 97, 116, 104, 109, 97, 112, 95, 102, 108, 97, 103, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 97, 109, 112, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 48, 53, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 108, 101, 110, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 112, 101, 101, 100, 32, 61, 32, 105, 110, 116, 40, 49, 44, 49, 44, 53, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 105, 109, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 53, 48, 41, 10, 109, 97, 116, 104, 109, 97, 112, 95, 102, 108, 97, 103, 58, 10, 45, 109, 97, 116, 104, 109, 97, 112, 95, 120, 121, 32, 34, 120, 109, 97, 116, 104, 34, 44, 34, 121, 109, 97, 116, 104, 43, 36, 49, 42, 115, 105, 110, 40, 112, 105, 42, 36, 50, 47, 49, 42, 40, 45, 120, 109, 97, 116, 104, 43, 36, 52, 42, 50, 42, 36, 51, 47, 36, 50, 41, 41, 34, 10, 35, 64, 103, 105, 109, 112, 32, 114, 101, 108, 50, 101, 108, 108, 118, 51, 58, 32, 109, 97, 116, 104, 109, 97, 112, 95, 114, 101, 108, 50, 101, 108, 108, 118, 51, 44, 109, 97, 116, 104, 109, 97, 112, 95, 114, 101, 108, 50, 101, 108, 108, 118, 51, 10, 109, 97, 116, 104, 109, 97, 112, 95, 114, 101, 108, 50, 101, 108, 108, 118, 51, 58, 10, 45, 109, 97, 116, 104, 109, 97, 112, 95, 120, 121, 32, 34, 120, 109, 97, 116, 104, 47, 115, 113, 114, 116, 40, 49, 45, 52, 42, 40, 121, 109, 97, 116, 104, 47, 72, 41, 42, 40, 121, 109, 97, 116, 104, 47, 72, 41, 41, 34, 44, 34, 121, 109, 97, 116, 104, 47, 115, 113, 114, 116, 40, 49, 45, 52, 42, 40, 120, 109, 97, 116, 104, 47, 87, 41, 42, 40, 120, 109, 97, 116, 104, 47, 87, 41, 41, 34, 10, 35, 64, 103, 105, 109, 112, 32, 115, 112, 105, 114, 97, 108, 58, 32, 109, 97, 116, 104, 109, 97, 112, 95, 115, 112, 105, 114, 97, 108, 44, 32, 109, 97, 116, 104, 109, 97, 112, 95, 115, 112, 105, 114, 97, 108, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 114, 111, 116, 97, 116, 105, 111, 110, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 50, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 105, 109, 101, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 44, 48, 44, 49, 41, 10, 109, 97, 116, 104, 109, 97, 112, 95, 115, 112, 105, 114, 97, 108, 58, 10, 113, 61, 34, 115, 105, 110, 40, 114, 109, 97, 116, 104, 42, 36, 49, 42, 112, 105, 42, 50, 45, 97, 109, 97, 116, 104, 43, 36, 50, 42, 50, 42, 112, 105, 41, 42, 48, 46, 53, 43, 48, 46, 53, 34, 10, 45, 109, 97, 116, 104, 109, 97, 112, 95, 103, 114, 97, 121, 67, 111, 108, 111, 114, 32, 36, 113, 10, 109, 97, 116, 104, 109, 97, 112, 95, 120, 121, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 109, 97, 116, 104, 109, 97, 112, 32, 120, 121, 58, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 102, 111, 114, 109, 117, 108, 97, 115, 32, 58, 32, 34, 36, 49, 34, 32, 97, 110, 100, 32, 34, 36, 50, 34, 46, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 32, 91, 45, 49, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 34, 72, 61, 50, 42, 104, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 87, 61, 50, 42, 119, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 120, 48, 61, 40, 119, 45, 49, 41, 47, 50, 43, 49, 101, 45, 49, 48, 59, 32, 121, 48, 61, 40, 104, 45, 49, 41, 47, 50, 59, 32, 120, 109, 97, 116, 104, 61, 40, 120, 45, 120, 48, 41, 42, 87, 47, 119, 59, 32, 32, 121, 109, 97, 116, 104, 61, 45, 40, 121, 45, 121, 48, 41, 42, 72, 47, 104, 59, 32, 40, 36, 49, 41, 42, 119, 47, 87, 43, 120, 48, 34, 10, 45, 102, 105, 108, 108, 91, 49, 93, 32, 34, 72, 61, 50, 42, 104, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 87, 61, 50, 42, 119, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 120, 48, 61, 40, 119, 45, 49, 41, 47, 50, 43, 49, 101, 45, 49, 48, 59, 32, 121, 48, 61, 40, 104, 45, 49, 41, 47, 50, 59, 32, 120, 109, 97, 116, 104, 61, 40, 120, 45, 120, 48, 41, 42, 87, 47, 119, 59, 32, 32, 121, 109, 97, 116, 104, 61, 45, 40, 121, 45, 121, 48, 41, 42, 72, 47, 104, 59, 32, 45, 40, 36, 50, 41, 42, 104, 47, 72, 43, 121, 48, 34, 10, 45, 97, 91, 48, 44, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 49, 44, 48, 10, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 109, 97, 116, 104, 109, 97, 112, 95, 114, 97, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 109, 97, 116, 104, 109, 97, 112, 32, 114, 97, 58, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 102, 111, 114, 109, 117, 108, 97, 115, 32, 58, 32, 34, 36, 49, 34, 32, 97, 110, 100, 32, 34, 36, 50, 34, 46, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 32, 91, 45, 49, 93, 32, 45, 114, 101, 118, 101, 114, 115, 101, 10, 45, 102, 105, 108, 108, 91, 48, 93, 32, 34, 120, 48, 61, 40, 119, 45, 49, 41, 47, 50, 43, 49, 101, 45, 49, 48, 59, 32, 121, 48, 61, 40, 104, 45, 49, 41, 47, 50, 59, 32, 114, 109, 97, 116, 104, 61, 40, 40, 120, 45, 120, 48, 41, 94, 50, 43, 40, 121, 45, 121, 48, 41, 94, 50, 41, 94, 48, 46, 53, 42, 50, 47, 119, 59, 32, 97, 109, 97, 116, 104, 61, 40, 97, 116, 97, 110, 40, 45, 40, 121, 45, 121, 48, 41, 47, 40, 120, 45, 120, 48, 41, 41, 43, 112, 105, 47, 50, 42, 40, 115, 105, 103, 110, 40, 120, 45, 120, 48, 41, 45, 49, 41, 41, 37, 40, 50, 42, 112, 105, 41, 59, 32, 120, 48, 43, 40, 36, 49, 41, 42, 120, 48, 42, 99, 111, 115, 40, 36, 50, 41, 34, 10, 45, 102, 105, 108, 108, 91, 49, 93, 32, 34, 120, 48, 61, 40, 119, 45, 49, 41, 47, 50, 43, 49, 101, 45, 49, 48, 59, 32, 121, 48, 61, 40, 104, 45, 49, 41, 47, 50, 59, 32, 114, 109, 97, 116, 104, 61, 40, 40, 120, 45, 120, 48, 41, 94, 50, 43, 40, 121, 45, 121, 48, 41, 94, 50, 41, 94, 48, 46, 53, 42, 50, 47, 119, 59, 32, 97, 109, 97, 116, 104, 61, 40, 97, 116, 97, 110, 40, 45, 40, 121, 45, 121, 48, 41, 47, 40, 120, 45, 120, 48, 41, 41, 43, 112, 105, 47, 50, 42, 40, 115, 105, 103, 110, 40, 120, 45, 120, 48, 41, 45, 49, 41, 41, 37, 40, 50, 42, 112, 105, 41, 59, 32, 121, 48, 45, 40, 36, 49, 41, 42, 120, 48, 42, 115, 105, 110, 40, 36, 50, 41, 34, 10, 45, 97, 91, 48, 44, 49, 93, 32, 99, 10, 45, 119, 97, 114, 112, 91, 45, 49, 93, 32, 91, 48, 93, 44, 48, 44, 49, 44, 48, 10, 45, 107, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 109, 97, 116, 104, 109, 97, 112, 95, 103, 114, 97, 121, 67, 111, 108, 111, 114, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 109, 97, 116, 104, 109, 97, 112, 32, 103, 114, 97, 121, 67, 111, 108, 111, 114, 58, 32, 102, 111, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 102, 111, 114, 109, 117, 108, 97, 115, 32, 58, 32, 34, 36, 49, 34, 46, 34, 10, 45, 118, 32, 45, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 111, 99, 97, 108, 91, 64, 123, 62, 44, 45, 49, 125, 93, 10, 45, 114, 101, 115, 105, 122, 101, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 44, 49, 10, 45, 102, 105, 108, 108, 32, 34, 72, 61, 50, 42, 104, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 87, 61, 50, 42, 119, 47, 109, 97, 120, 40, 119, 44, 104, 41, 59, 120, 48, 61, 40, 119, 45, 49, 41, 47, 50, 43, 49, 101, 45, 49, 48, 59, 32, 121, 48, 61, 40, 104, 45, 49, 41, 47, 50, 59, 32, 114, 109, 97, 116, 104, 61, 40, 40, 120, 45, 120, 48, 41, 94, 50, 43, 40, 121, 45, 121, 48, 41, 94, 50, 41, 94, 48, 46, 53, 42, 50, 47, 119, 59, 32, 97, 109, 97, 116, 104, 61, 40, 97, 116, 97, 110, 40, 45, 40, 121, 45, 121, 48, 41, 47, 40, 120, 45, 120, 48, 41, 41, 43, 112, 105, 47, 50, 42, 40, 115, 105, 103, 110, 40, 120, 45, 120, 48, 41, 45, 49, 41, 41, 37, 40, 50, 42, 112, 105, 41, 59, 32, 40, 36, 49, 41, 34, 10, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 10, 45, 101, 110, 100, 108, 111, 99, 97, 108, 32, 45, 100, 111, 110, 101, 10, 45, 118, 32, 43, 10, 35, 64, 103, 105, 109, 112, 32, 95, 95, 10, 35, 64, 103, 105, 109, 112, 32, 60, 98, 62, 86, 97, 114, 105, 111, 117, 115, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 100, 101, 32, 40, 103, 108, 111, 98, 97, 108, 41, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 44, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 100, 101, 32, 61, 32, 116, 101, 120, 116, 40, 49, 44, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 92, 110, 92, 110, 32, 32, 45, 116, 111, 95, 114, 103, 98, 92, 110, 32, 32, 45, 45, 100, 101, 102, 111, 114, 109, 32, 50, 48, 92, 110, 32, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 51, 92, 110, 92, 110, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 92, 110, 92, 110, 92, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 99, 97, 110, 32, 101, 120, 101, 99, 117, 116, 101, 32, 97, 110, 121, 32, 115, 101, 116, 32, 111, 102, 32, 105, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 115, 32, 117, 110, 100, 101, 114, 115, 116, 111, 111, 100, 32, 98, 121, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 114, 101, 44, 32, 121, 111, 117, 32, 99, 97, 110, 32, 116, 104, 101, 110, 32, 116, 101, 115, 116, 32, 115, 111, 109, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 98, 101, 102, 111, 114, 101, 32, 99, 114, 101, 97, 116, 105, 110, 103, 32, 121, 111, 117, 114, 32, 111, 119, 110, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 110, 100, 32, 71, 73, 77, 80, 32, 109, 101, 110, 117, 32, 101, 110, 116, 114, 105, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 108, 101, 97, 115, 101, 32, 108, 111, 111, 107, 32, 97, 116, 32, 116, 104, 101, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 119, 101, 98, 32, 112, 97, 103, 101, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 115, 104, 116, 109, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 111, 32, 108, 101, 97, 114, 110, 32, 109, 111, 114, 101, 32, 97, 98, 111, 117, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 54, 47, 49, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 45, 115, 107, 105, 112, 32, 44, 125, 34, 10, 45, 109, 32, 34, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 32, 58, 32, 36, 49, 34, 10, 45, 105, 102, 32, 123, 36, 51, 62, 48, 125, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 34, 44, 36, 51, 44, 36, 50, 10, 45, 101, 108, 115, 101, 10, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 10, 45, 105, 102, 32, 36, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 105, 102, 10, 45, 117, 110, 99, 111, 109, 109, 97, 110, 100, 32, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 10, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 32, 45, 115, 107, 105, 112, 32, 34, 36, 123, 49, 61, 45, 115, 107, 105, 112, 32, 44, 125, 34, 10, 95, 103, 99, 112, 95, 97, 114, 103, 61, 34, 36, 49, 34, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 36, 95, 103, 99, 112, 95, 97, 114, 103, 44, 36, 123, 50, 45, 45, 50, 125, 34, 44, 36, 45, 49, 10, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 115, 116, 97, 114, 116, 10, 35, 64, 103, 105, 109, 112, 32, 67, 117, 115, 116, 111, 109, 32, 99, 111, 100, 101, 32, 40, 108, 111, 99, 97, 108, 41, 32, 58, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 44, 32, 103, 105, 109, 112, 95, 99, 117, 115, 116, 111, 109, 95, 99, 111, 100, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 100, 101, 32, 61, 32, 116, 101, 120, 116, 40, 49, 44, 34, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 92, 110, 92, 110, 32, 32, 45, 116, 111, 95, 114, 103, 98, 92, 110, 32, 32, 45, 45, 100, 101, 102, 111, 114, 109, 32, 50, 48, 92, 110, 32, 32, 45, 98, 108, 101, 110, 100, 95, 101, 100, 103, 101, 115, 32, 51, 92, 110, 92, 110, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 92, 110, 92, 110, 92, 110, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 86, 97, 108, 117, 101, 32, 114, 97, 110, 103, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 67, 117, 116, 34, 44, 34, 78, 111, 114, 109, 97, 108, 105, 122, 101, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 104, 97, 110, 110, 101, 108, 40, 115, 41, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 65, 108, 108, 34, 44, 34, 82, 71, 66, 65, 34, 44, 34, 82, 71, 66, 34, 44, 34, 76, 117, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 66, 108, 117, 101, 47, 114, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 115, 34, 44, 34, 66, 108, 117, 101, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 82, 101, 100, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 76, 105, 103, 104, 116, 110, 101, 115, 115, 34, 44, 34, 97, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 97, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 98, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 72, 117, 101, 34, 44, 34, 83, 97, 116, 117, 114, 97, 116, 105, 111, 110, 34, 44, 34, 86, 97, 108, 117, 101, 34, 44, 34, 75, 101, 121, 34, 44, 34, 71, 114, 101, 101, 110, 32, 99, 104, 114, 111, 109, 105, 110, 97, 110, 99, 101, 34, 44, 34, 99, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 34, 44, 34, 99, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 104, 45, 99, 111, 109, 112, 111, 110, 101, 110, 116, 34, 44, 34, 82, 101, 100, 34, 44, 34, 71, 114, 101, 101, 110, 34, 44, 34, 66, 108, 117, 101, 34, 44, 34, 65, 108, 112, 104, 97, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 114, 101, 118, 105, 101, 119, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 70, 117, 108, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 70, 111, 114, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 104, 111, 114, 105, 122, 111, 110, 116, 97, 108, 34, 44, 34, 66, 97, 99, 107, 119, 97, 114, 100, 32, 118, 101, 114, 116, 105, 99, 97, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 99, 97, 110, 32, 101, 120, 101, 99, 117, 116, 101, 32, 97, 110, 121, 32, 115, 101, 116, 32, 111, 102, 32, 105, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 115, 32, 117, 110, 100, 101, 114, 115, 116, 111, 111, 100, 32, 98, 121, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 72, 101, 114, 101, 44, 32, 121, 111, 117, 32, 99, 97, 110, 32, 116, 104, 101, 110, 32, 116, 101, 115, 116, 32, 115, 111, 109, 101, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 98, 101, 102, 111, 114, 101, 32, 99, 114, 101, 97, 116, 105, 110, 103, 32, 121, 111, 117, 114, 32, 111, 119, 110, 32, 71, 39, 77, 73, 67, 32, 99, 117, 115, 116, 111, 109, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 97, 110, 100, 32, 71, 73, 77, 80, 32, 109, 101, 110, 117, 32, 101, 110, 116, 114, 105, 101, 115, 46, 92, 110, 92, 110, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 80, 108, 101, 97, 115, 101, 32, 108, 111, 111, 107, 32, 97, 116, 32, 116, 104, 101, 32, 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 119, 101, 98, 32, 112, 97, 103, 101, 32, 58, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 108, 105, 110, 107, 40, 34, 104, 116, 116, 112, 58, 47, 47, 103, 109, 105, 99, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 114, 101, 102, 101, 114, 101, 110, 99, 101, 46, 115, 104, 116, 109, 108, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 115, 109, 97, 108, 108, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 116, 111, 32, 108, 101, 97, 114, 110, 32, 109, 111, 114, 101, 32, 97, 98, 111, 117, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 99, 111, 109, 109, 97, 110, 100, 115, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 54, 47, 49, 52, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 68, 111, 32, 110, 111, 116, 104, 105, 110, 103, 32, 58, 32, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 44, 32, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 98, 62, 78, 111, 116, 101, 60, 47, 98, 62, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 115, 32, 100, 111, 101, 115, 32, 110, 111, 116, 104, 105, 110, 103, 32, 111, 110, 32, 116, 104, 101, 32, 105, 109, 97, 103, 101, 46, 32, 85, 115, 101, 32, 105, 116, 32, 116, 111, 32, 109, 97, 110, 105, 112, 117, 108, 97, 116, 101, 32, 108, 97, 121, 101, 114, 115, 32, 105, 110, 32, 99, 111, 110, 106, 117, 110, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 105, 110, 112, 117, 116, 47, 111, 117, 116, 112, 117, 116, 32, 111, 112, 116, 105, 111, 110, 115, 32, 111, 102, 32, 116, 104, 101, 32, 71, 39, 77, 73, 67, 32, 112, 108, 117, 103, 45, 105, 110, 46, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 111, 95, 110, 111, 116, 104, 105, 110, 103, 32, 58, 10, 35, 64, 103, 105, 109, 112, 32, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 32, 58, 32, 103, 105, 109, 112, 95, 103, 112, 116, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 99, 111, 114, 101, 32, 116, 121, 112, 101, 32, 61, 32, 95, 99, 104, 111, 105, 99, 101, 40, 48, 44, 34, 65, 108, 108, 45, 116, 105, 109, 101, 115, 34, 44, 34, 76, 97, 115, 116, 32, 53, 48, 32, 115, 101, 115, 115, 105, 111, 110, 115, 34, 44, 34, 76, 97, 115, 116, 32, 50, 53, 32, 115, 101, 115, 115, 105, 111, 110, 115, 34, 44, 34, 76, 97, 115, 116, 32, 49, 48, 32, 115, 101, 115, 115, 105, 111, 110, 115, 34, 44, 34, 76, 97, 115, 116, 32, 116, 111, 117, 114, 110, 97, 109, 101, 110, 116, 32, 53, 48, 34, 44, 34, 76, 97, 115, 116, 32, 116, 111, 117, 114, 110, 97, 109, 101, 110, 116, 32, 50, 53, 34, 44, 34, 76, 97, 115, 116, 32, 116, 111, 117, 114, 110, 97, 109, 101, 110, 116, 32, 49, 48, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 60, 98, 62, 78, 111, 116, 101, 60, 47, 98, 62, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 115, 32, 114, 101, 110, 100, 101, 114, 115, 32, 97, 110, 100, 32, 100, 105, 115, 112, 108, 97, 121, 115, 32, 116, 104, 101, 32, 99, 117, 114, 114, 101, 110, 116, 32, 115, 99, 111, 114, 101, 32, 98, 111, 97, 114, 100, 32, 102, 111, 114, 32, 116, 104, 101, 32, 60, 98, 62, 71, 80, 84, 32, 40, 71, 82, 69, 89, 67, 32, 80, 111, 107, 101, 114, 32, 84, 111, 117, 114, 41, 60, 47, 98, 62, 44, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 97, 32, 115, 109, 97, 108, 108, 32, 97, 110, 100, 32, 108, 111, 99, 97, 108, 32, 112, 111, 107, 101, 114, 32, 116, 111, 117, 114, 110, 97, 109, 101, 110, 116, 32, 111, 114, 103, 97, 110, 105, 122, 101, 100, 32, 105, 110, 32, 111, 117, 114, 32, 114, 101, 115, 101, 97, 114, 99, 104, 32, 108, 97, 98, 46, 34, 125, 59, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 51, 47, 50, 55, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 103, 112, 116, 32, 58, 10, 45, 103, 112, 116, 32, 44, 64, 123, 45, 95, 103, 105, 109, 112, 95, 103, 112, 116, 36, 49, 125, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 48, 32, 58, 32, 45, 117, 32, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 49, 32, 58, 32, 45, 117, 32, 53, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 50, 32, 58, 32, 45, 117, 32, 50, 53, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 51, 32, 58, 32, 45, 117, 32, 49, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 52, 32, 58, 32, 45, 117, 32, 45, 53, 48, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 53, 32, 58, 32, 45, 117, 32, 45, 50, 53, 10, 95, 103, 105, 109, 112, 95, 103, 112, 116, 54, 32, 58, 32, 45, 117, 32, 45, 49, 48, 10, 35, 64, 103, 105, 109, 112, 32, 72, 105, 115, 116, 111, 103, 114, 97, 109, 32, 97, 110, 97, 108, 121, 115, 105, 115, 32, 58, 32, 95, 110, 111, 110, 101, 95, 44, 32, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 108, 117, 115, 116, 101, 114, 115, 32, 61, 32, 105, 110, 116, 40, 50, 53, 54, 44, 50, 44, 50, 53, 54, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 111, 110, 111, 99, 104, 114, 111, 109, 101, 32, 61, 32, 98, 111, 111, 108, 40, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 105, 102, 32, 36, 50, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 100, 105, 115, 112, 108, 97, 121, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 119, 125, 44, 123, 104, 125, 44, 36, 49, 44, 48, 44, 50, 53, 53, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 35, 64, 103, 105, 109, 112, 32, 73, 109, 112, 111, 114, 116, 32, 100, 97, 116, 97, 32, 58, 32, 103, 105, 109, 112, 95, 105, 109, 112, 111, 114, 116, 95, 105, 109, 97, 103, 101, 44, 32, 103, 105, 109, 112, 95, 110, 111, 95, 112, 114, 101, 118, 105, 101, 119, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 70, 105, 108, 101, 110, 97, 109, 101, 32, 61, 32, 102, 105, 108, 101, 40, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 78, 111, 114, 109, 97, 108, 105, 122, 101, 32, 61, 32, 98, 111, 111, 108, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 123, 34, 92, 110, 60, 115, 109, 97, 108, 108, 62, 60, 98, 62, 78, 111, 116, 101, 58, 32, 60, 47, 98, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 115, 32, 102, 105, 108, 116, 101, 114, 32, 99, 97, 110, 32, 105, 109, 112, 111, 114, 116, 32, 97, 110, 121, 32, 105, 109, 97, 103, 101, 32, 100, 97, 116, 97, 32, 114, 101, 97, 100, 32, 98, 121, 32, 116, 104, 101, 32, 60, 98, 62, 71, 39, 77, 73, 67, 60, 47, 98, 62, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 46, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 73, 116, 32, 105, 110, 99, 108, 117, 100, 101, 115, 32, 101, 120, 111, 116, 105, 99, 32, 102, 111, 114, 109, 97, 116, 115, 32, 97, 115, 32, 58, 32, 60, 105, 62, 80, 97, 110, 100, 111, 114, 101, 44, 32, 67, 73, 109, 103, 44, 32, 73, 110, 114, 105, 109, 97, 103, 101, 44, 32, 65, 86, 73, 47, 77, 80, 69, 71, 32, 40, 114, 101, 113, 117, 105, 114, 101, 115, 32, 70, 70, 77, 80, 69, 71, 32, 105, 110, 115, 116, 97, 108, 108, 101, 100, 41, 44, 32, 46, 46, 46, 60, 47, 105, 62, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 60, 47, 115, 109, 97, 108, 108, 62, 34, 125, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 48, 47, 49, 50, 47, 50, 57, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 105, 109, 112, 111, 114, 116, 95, 105, 109, 97, 103, 101, 32, 58, 10, 45, 114, 109, 32, 45, 105, 32, 34, 36, 49, 34, 32, 45, 115, 32, 122, 32, 45, 105, 102, 32, 36, 50, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 35, 64, 103, 105, 109, 112, 32, 83, 111, 108, 118, 101, 32, 109, 97, 122, 101, 32, 58, 32, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 44, 32, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 40, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 116, 97, 114, 116, 105, 110, 103, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 103, 32, 88, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 69, 110, 100, 105, 110, 100, 32, 89, 45, 99, 111, 111, 114, 100, 32, 61, 32, 102, 108, 111, 97, 116, 40, 57, 53, 44, 48, 44, 49, 48, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 83, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 61, 32, 102, 108, 111, 97, 116, 40, 48, 46, 49, 44, 48, 44, 49, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 61, 32, 105, 110, 116, 40, 51, 44, 49, 44, 49, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 67, 111, 108, 111, 114, 32, 61, 32, 99, 111, 108, 111, 114, 40, 50, 53, 53, 44, 48, 44, 48, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 77, 97, 122, 101, 32, 116, 121, 112, 101, 32, 61, 32, 99, 104, 111, 105, 99, 101, 40, 34, 68, 97, 114, 107, 32, 119, 97, 108, 108, 115, 34, 44, 34, 87, 104, 105, 116, 101, 32, 119, 97, 108, 108, 115, 34, 41, 10, 35, 64, 103, 105, 109, 112, 32, 58, 32, 115, 101, 112, 32, 61, 32, 115, 101, 112, 97, 114, 97, 116, 111, 114, 40, 41, 44, 32, 110, 111, 116, 101, 32, 61, 32, 110, 111, 116, 101, 40, 34, 60, 115, 109, 97, 108, 108, 62, 65, 117, 116, 104, 111, 114, 58, 32, 60, 105, 62, 68, 97, 118, 105, 100, 32, 84, 115, 99, 104, 117, 109, 112, 101, 114, 108, 38, 35, 50, 51, 51, 59, 60, 47, 105, 62, 46, 32, 32, 32, 32, 32, 32, 76, 97, 116, 101, 115, 116, 32, 117, 112, 100, 97, 116, 101, 58, 32, 60, 105, 62, 50, 48, 49, 49, 47, 48, 57, 47, 48, 49, 60, 47, 105, 62, 46, 60, 47, 115, 109, 97, 108, 108, 62, 34, 41, 10, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 10, 45, 45, 110, 111, 114, 109, 91, 45, 49, 93, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 10, 45, 105, 102, 32, 123, 33, 36, 49, 48, 125, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 45, 98, 91, 45, 49, 93, 32, 36, 53, 37, 32, 45, 42, 91, 45, 50, 93, 32, 49, 101, 49, 48, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 105, 110, 105, 109, 97, 108, 95, 112, 97, 116, 104, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 44, 48, 44, 36, 51, 37, 44, 36, 52, 37, 44, 48, 10, 45, 112, 111, 105, 110, 116, 99, 108, 111, 117, 100, 91, 45, 49, 93, 32, 48, 32, 45, 100, 105, 108, 97, 116, 101, 91, 45, 49, 93, 32, 36, 54, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 44, 49, 44, 48, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 49, 44, 49, 44, 49, 44, 50, 53, 53, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 49, 37, 44, 36, 50, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 101, 108, 108, 105, 112, 115, 101, 91, 45, 49, 93, 32, 36, 51, 37, 44, 36, 52, 37, 44, 53, 44, 53, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 44, 50, 53, 53, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 115, 111, 108, 118, 101, 95, 109, 97, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 100, 114, 103, 98, 97, 10, 45, 108, 105, 110, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 49, 44, 48, 120, 67, 67, 67, 67, 67, 67, 67, 67, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 49, 44, 48, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 36, 123, 55, 45, 57, 125, 10, 45, 101, 108, 108, 105, 112, 115, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 51, 44, 48, 44, 49, 44, 48, 120, 49, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 108, 111, 103, 111, 95, 101, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 108, 111, 103, 111, 32, 34, 32, 32, 32, 32, 45, 32, 79, 110, 108, 105, 110, 101, 32, 45, 34, 10, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 97, 118, 103, 61, 123, 105, 97, 125, 32, 45, 45, 32, 36, 97, 118, 103, 32, 45, 42, 32, 36, 49, 32, 45, 43, 32, 36, 97, 118, 103, 10, 45, 43, 32, 123, 36, 50, 42, 50, 53, 54, 125, 10, 45, 105, 102, 32, 123, 36, 51, 33, 61, 49, 125, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 32, 36, 51, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 123, 36, 52, 37, 51, 54, 48, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 123, 109, 97, 120, 40, 51, 44, 115, 41, 43, 49, 45, 115, 37, 50, 125, 32, 45, 115, 112, 108, 105, 116, 95, 111, 112, 97, 99, 105, 116, 121, 32, 45, 108, 91, 48, 93, 10, 45, 114, 103, 98, 50, 104, 115, 118, 32, 45, 115, 104, 32, 48, 44, 48, 32, 45, 43, 91, 45, 49, 93, 32, 36, 52, 32, 45, 37, 91, 45, 49, 93, 32, 51, 54, 48, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 10, 45, 101, 110, 100, 108, 10, 45, 97, 32, 99, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 97, 100, 106, 117, 115, 116, 95, 99, 111, 108, 111, 114, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 99, 114, 111, 112, 32, 58, 10, 45, 99, 114, 111, 112, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 10, 103, 109, 105, 99, 111, 108, 95, 99, 114, 111, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 48, 46, 53, 44, 49, 50, 56, 10, 45, 114, 101, 99, 116, 97, 110, 103, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 36, 51, 37, 44, 36, 52, 37, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 50, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 51, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 44, 50, 53, 53, 44, 48, 32, 45, 99, 105, 114, 99, 108, 101, 32, 36, 49, 37, 44, 36, 52, 37, 44, 51, 44, 49, 44, 48, 120, 70, 70, 70, 70, 70, 70, 70, 70, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 32, 58, 10, 45, 97, 112, 112, 108, 121, 95, 99, 104, 97, 110, 110, 101, 108, 115, 32, 34, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 54, 44, 48, 44, 50, 53, 53, 34, 44, 36, 49, 44, 49, 10, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 101, 113, 117, 97, 108, 105, 122, 101, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 102, 108, 105, 112, 32, 58, 10, 45, 105, 102, 32, 36, 49, 32, 45, 109, 105, 114, 114, 111, 114, 32, 121, 32, 45, 101, 108, 115, 101, 32, 45, 109, 105, 114, 114, 111, 114, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 104, 32, 54, 52, 48, 44, 52, 56, 48, 44, 36, 49, 10, 103, 109, 105, 99, 111, 108, 95, 104, 105, 115, 116, 111, 103, 114, 97, 109, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 100, 104, 32, 51, 50, 48, 44, 50, 52, 48, 44, 36, 49, 10, 103, 109, 105, 99, 111, 108, 95, 114, 101, 115, 105, 122, 101, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 10, 45, 114, 101, 115, 105, 122, 101, 32, 36, 50, 37, 44, 36, 50, 37, 44, 49, 44, 49, 48, 48, 37, 44, 54, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 120, 32, 36, 51, 44, 54, 10, 45, 101, 108, 115, 101, 10, 45, 114, 101, 115, 105, 122, 101, 50, 100, 121, 32, 36, 52, 44, 54, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 103, 109, 105, 99, 111, 108, 95, 114, 111, 116, 97, 116, 101, 32, 58, 10, 45, 105, 102, 32, 36, 50, 10, 45, 114, 111, 116, 97, 116, 101, 32, 123, 57, 48, 42, 114, 111, 117, 110, 100, 40, 36, 49, 47, 57, 48, 41, 125, 44, 48, 44, 48, 10, 45, 101, 108, 115, 101, 10, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 114, 111, 116, 97, 116, 101, 32, 36, 49, 44, 49, 44, 36, 51, 10, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 32, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 116, 111, 95, 114, 103, 98, 91, 45, 50, 93, 10, 45, 115, 91, 45, 50, 93, 32, 99, 32, 32, 97, 118, 98, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 50, 44, 97, 125, 125, 32, 97, 118, 103, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 51, 44, 97, 125, 125, 32, 97, 118, 114, 61, 123, 49, 50, 55, 46, 53, 45, 64, 123, 45, 52, 44, 97, 125, 125, 10, 45, 43, 91, 45, 52, 93, 32, 36, 97, 118, 114, 32, 45, 43, 91, 45, 51, 93, 32, 36, 97, 118, 103, 32, 45, 43, 91, 45, 50, 93, 32, 36, 97, 118, 98, 32, 45, 97, 91, 45, 52, 44, 45, 51, 44, 45, 50, 93, 32, 99, 32, 45, 114, 118, 32, 45, 98, 108, 101, 110, 100, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 101, 110, 100, 105, 102, 10, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 108, 97, 98, 32, 49, 44, 48, 44, 48, 44, 49, 44, 123, 105, 102, 40, 123, 36, 49, 62, 61, 48, 125, 44, 123, 36, 49, 47, 52, 125, 44, 123, 36, 49, 42, 48, 46, 55, 53, 125, 41, 125, 44, 48, 44, 49, 44, 36, 49, 44, 48, 44, 48, 44, 50, 44, 48, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 99, 111, 108, 111, 114, 116, 101, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 32, 58, 10, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 53, 10, 45, 105, 102, 32, 123, 36, 50, 61, 61, 49, 125, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 50, 53, 53, 44, 50, 52, 54, 44, 50, 49, 57, 44, 50, 53, 53, 44, 50, 53, 53, 44, 49, 52, 52, 44, 49, 48, 48, 44, 50, 53, 53, 44, 53, 52, 44, 49, 54, 52, 44, 53, 52, 44, 50, 53, 53, 44, 48, 44, 48, 44, 50, 53, 53, 44, 50, 53, 53, 10, 45, 101, 108, 115, 101, 32, 45, 45, 103, 105, 109, 112, 95, 99, 111, 114, 110, 101, 114, 95, 103, 114, 97, 100, 105, 101, 110, 116, 32, 50, 53, 53, 44, 50, 53, 48, 44, 50, 51, 55, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 48, 48, 44, 49, 55, 56, 44, 50, 53, 53, 44, 50, 44, 49, 48, 52, 44, 50, 44, 50, 53, 53, 44, 48, 44, 48, 44, 49, 52, 51, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 45, 114, 118, 32, 45, 103, 105, 109, 112, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 99, 111, 108, 111, 114, 115, 32, 49, 32, 45, 98, 108, 101, 110, 100, 32, 118, 97, 108, 117, 101, 32, 45, 101, 113, 117, 97, 108, 105, 122, 101, 32, 50, 53, 53, 32, 45, 103, 105, 109, 112, 95, 103, 108, 111, 119, 32, 36, 49, 44, 48, 44, 48, 10, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 103, 98, 95, 109, 112, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 103, 105, 109, 112, 95, 103, 97, 117, 115, 115, 105, 97, 110, 95, 98, 108, 117, 114, 32, 36, 50, 44, 48, 44, 48, 44, 49, 44, 49, 44, 48, 44, 48, 10, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 103, 105, 109, 112, 95, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 51, 49, 44, 49, 49, 49, 44, 54, 52, 44, 49, 55, 44, 49, 49, 48, 44, 49, 55, 54, 44, 49, 52, 56, 44, 55, 53, 44, 49, 55, 55, 44, 50, 51, 53, 44, 49, 56, 54, 44, 49, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 118, 97, 108, 117, 101, 44, 36, 49, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 49, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 53, 48, 44, 48, 44, 49, 44, 53, 48, 44, 48, 44, 49, 44, 45, 53, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 50, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 53, 44, 48, 44, 49, 44, 53, 44, 48, 44, 49, 44, 45, 50, 53, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 51, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 55, 48, 44, 48, 44, 49, 44, 52, 48, 44, 48, 44, 49, 44, 45, 50, 48, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 61, 61, 52, 125, 32, 45, 103, 105, 109, 112, 95, 109, 105, 120, 95, 114, 103, 98, 32, 49, 44, 45, 53, 44, 48, 44, 49, 44, 48, 44, 48, 44, 49, 46, 49, 44, 49, 50, 44, 48, 44, 48, 44, 50, 44, 48, 10, 45, 101, 110, 100, 105, 102, 32, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 107, 95, 109, 101, 116, 97, 108, 108, 105, 99, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 32, 58, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 45, 45, 114, 103, 98, 95, 116, 111, 110, 101, 32, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 49, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 56, 44, 45, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 52, 57, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 53, 44, 45, 50, 53, 44, 49, 55, 44, 56, 44, 50, 54, 44, 51, 49, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 48, 48, 44, 45, 57, 44, 45, 51, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 44, 45, 57, 44, 49, 56, 56, 44, 50, 53, 53, 44, 49, 56, 49, 44, 49, 51, 51, 44, 55, 50, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 50, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 44, 45, 51, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 54, 52, 44, 56, 56, 44, 50, 53, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 54, 53, 44, 51, 51, 44, 45, 49, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 49, 50, 56, 44, 57, 50, 44, 54, 50, 44, 52, 53, 44, 51, 56, 44, 49, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 51, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 45, 50, 53, 44, 53, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 50, 53, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 51, 54, 44, 49, 55, 56, 44, 50, 53, 53, 44, 49, 54, 57, 44, 57, 52, 44, 50, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 52, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 50, 53, 44, 45, 53, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 45, 50, 53, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 48, 50, 53, 44, 48, 48, 44, 48, 48, 44, 45, 50, 53, 44, 48, 48, 44, 48, 48, 44, 53, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 55, 44, 49, 50, 48, 44, 50, 52, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 52, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 53, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 54, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 50, 44, 52, 48, 44, 49, 54, 49, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 50, 56, 44, 51, 51, 44, 51, 51, 44, 49, 54, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 55, 55, 44, 45, 56, 44, 45, 56, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 54, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 55, 44, 45, 50, 48, 44, 45, 51, 51, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 56, 44, 45, 54, 53, 44, 45, 55, 55, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 52, 53, 44, 52, 53, 44, 48, 48, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 108, 105, 102, 32, 123, 36, 49, 61, 61, 55, 125, 32, 45, 45, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 48, 48, 48, 44, 50, 48, 44, 48, 48, 44, 48, 48, 44, 48, 56, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 50, 51, 44, 48, 48, 44, 48, 48, 48, 44, 45, 49, 51, 44, 48, 48, 44, 48, 44, 49, 55, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 44, 50, 57, 44, 48, 48, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 49, 50, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 49, 57, 44, 54, 56, 44, 49, 56, 44, 48, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 48, 48, 44, 45, 53, 44, 53, 53, 44, 45, 49, 53, 44, 49, 50, 56, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 50, 53, 53, 44, 48, 44, 48, 10, 45, 101, 110, 100, 105, 102, 10, 45, 45, 45, 91, 48, 44, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 123, 123, 36, 50, 47, 49, 48, 48, 125, 42, 45, 49, 125, 32, 45, 43, 91, 48, 44, 45, 49, 93, 32, 45, 107, 91, 48, 93, 10, 45, 105, 102, 32, 123, 36, 51, 61, 61, 48, 125, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 101, 108, 115, 101, 32, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 105, 103, 110, 101, 116, 116, 101, 32, 36, 123, 52, 45, 54, 125, 10, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 116, 111, 110, 101, 95, 112, 114, 101, 115, 101, 116, 115, 32, 36, 42, 34, 44, 36, 45, 49, 10, 114, 103, 98, 95, 116, 111, 110, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 45, 115, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 43, 91, 45, 51, 45, 45, 49, 93, 32, 45, 43, 91, 49, 44, 52, 93, 32, 45, 43, 91, 50, 44, 52, 93, 32, 45, 43, 91, 51, 44, 52, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 45, 45, 91, 48, 44, 49, 93, 10, 45, 45, 114, 103, 98, 50, 104, 115, 118, 91, 48, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 51, 44, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 54, 52, 44, 36, 50, 57, 44, 49, 50, 56, 44, 36, 51, 48, 44, 49, 57, 50, 44, 36, 51, 49, 44, 50, 53, 53, 44, 36, 51, 50, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 45, 45, 45, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 51, 51, 61, 61, 48, 125, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 45, 107, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 51, 61, 61, 49, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 51, 51, 61, 61, 50, 125, 32, 45, 107, 91, 45, 49, 93, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 99, 109, 121, 107, 95, 116, 111, 110, 101, 32, 58, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 103, 98, 50, 99, 109, 121, 107, 32, 45, 45, 115, 32, 99, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 44, 49, 50, 56, 44, 36, 50, 44, 50, 53, 53, 44, 36, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 44, 49, 50, 56, 44, 36, 53, 44, 50, 53, 53, 44, 36, 54, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 55, 44, 49, 50, 56, 44, 36, 56, 44, 50, 53, 53, 44, 36, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 49, 48, 44, 49, 50, 56, 44, 36, 49, 49, 44, 50, 53, 53, 44, 36, 49, 50, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 49, 51, 44, 49, 50, 56, 44, 36, 49, 52, 44, 50, 53, 53, 44, 36, 49, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 49, 54, 44, 49, 50, 56, 44, 36, 49, 55, 44, 50, 53, 53, 44, 36, 49, 56, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 49, 57, 44, 49, 50, 56, 44, 36, 50, 48, 44, 50, 53, 53, 44, 36, 50, 49, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 50, 50, 44, 49, 50, 56, 44, 36, 50, 51, 44, 50, 53, 53, 44, 36, 50, 52, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 50, 53, 44, 49, 50, 56, 44, 36, 50, 54, 44, 50, 53, 53, 44, 36, 50, 55, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 50, 56, 44, 49, 50, 56, 44, 36, 50, 57, 44, 50, 53, 53, 44, 36, 51, 48, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 51, 49, 44, 49, 50, 56, 44, 36, 51, 50, 44, 50, 53, 53, 44, 36, 51, 51, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 51, 52, 44, 49, 50, 56, 44, 36, 51, 53, 44, 50, 53, 53, 44, 36, 51, 54, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 49, 93, 32, 48, 44, 48, 44, 36, 51, 55, 44, 49, 50, 56, 44, 36, 51, 56, 44, 50, 53, 53, 44, 36, 51, 57, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 50, 93, 32, 48, 44, 48, 44, 36, 52, 48, 44, 49, 50, 56, 44, 36, 52, 49, 44, 50, 53, 53, 44, 36, 52, 50, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 51, 93, 32, 48, 44, 48, 44, 36, 52, 51, 44, 49, 50, 56, 44, 36, 52, 52, 44, 50, 53, 53, 44, 36, 52, 53, 10, 45, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 52, 93, 32, 48, 44, 48, 44, 36, 52, 54, 44, 49, 50, 56, 44, 36, 52, 55, 44, 50, 53, 53, 44, 36, 52, 56, 10, 45, 43, 91, 45, 52, 45, 45, 49, 93, 32, 45, 43, 91, 49, 44, 53, 93, 32, 45, 43, 91, 50, 44, 53, 93, 32, 45, 43, 91, 51, 44, 53, 93, 32, 45, 43, 91, 52, 44, 53, 93, 10, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 32, 45, 45, 45, 91, 48, 44, 49, 93, 10, 45, 45, 99, 109, 121, 107, 50, 114, 103, 98, 91, 48, 93, 32, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 49, 93, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 114, 109, 91, 45, 49, 44, 45, 51, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 10, 45, 97, 112, 112, 108, 121, 95, 99, 117, 114, 118, 101, 91, 45, 49, 93, 32, 48, 44, 48, 44, 36, 52, 57, 44, 54, 52, 44, 36, 53, 48, 44, 49, 50, 56, 44, 36, 53, 49, 44, 49, 57, 50, 44, 36, 53, 50, 44, 50, 53, 53, 44, 36, 53, 51, 10, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 109, 117, 108, 116, 105, 112, 108, 121, 10, 45, 45, 45, 91, 48, 44, 45, 49, 93, 10, 45, 105, 102, 32, 123, 36, 53, 52, 61, 61, 48, 125, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 48, 93, 32, 45, 45, 108, 117, 109, 105, 110, 97, 110, 99, 101, 91, 45, 49, 93, 32, 45, 98, 108, 101, 110, 100, 91, 45, 49, 44, 45, 50, 93, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 45, 49, 93, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 45, 107, 91, 48, 93, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 49, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 50, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 99, 32, 48, 44, 50, 53, 53, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 51, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 110, 32, 48, 44, 50, 53, 53, 32, 45, 99, 109, 121, 107, 50, 114, 103, 98, 10, 45, 101, 108, 105, 102, 32, 123, 36, 53, 52, 61, 61, 52, 125, 32, 45, 107, 91, 45, 49, 93, 9, 45, 99, 109, 121, 107, 50, 114, 103, 98, 32, 45, 110, 32, 48, 44, 50, 53, 53, 10, 45, 101, 110, 100, 105, 102, 10, 103, 109, 105, 99, 111, 108, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 32, 36, 49, 44, 49, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 102, 114, 97, 109, 101, 95, 112, 97, 116, 116, 101, 114, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 36, 123, 50, 45, 45, 49, 125, 10, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 10, 45, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 51, 100, 32, 45, 99, 111, 108, 111, 114, 99, 117, 98, 101, 51, 100, 32, 45, 112, 51, 100, 91, 45, 49, 93, 32, 49, 32, 45, 43, 51, 100, 10, 45, 114, 101, 112, 101, 97, 116, 32, 52, 10, 45, 45, 115, 110, 97, 112, 115, 104, 111, 116, 51, 100, 91, 48, 93, 32, 36, 49, 44, 48, 46, 57, 44, 50, 53, 53, 10, 45, 114, 51, 100, 91, 48, 93, 32, 48, 44, 49, 44, 48, 46, 50, 44, 57, 48, 10, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 48, 93, 32, 45, 97, 117, 116, 111, 99, 114, 111, 112, 32, 45, 45, 32, 50, 53, 53, 10, 45, 114, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 125, 44, 49, 44, 51, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 32, 53, 44, 53, 44, 50, 53, 53, 32, 45, 102, 114, 97, 109, 101, 32, 49, 44, 49, 44, 48, 32, 45, 97, 112, 112, 101, 110, 100, 95, 116, 105, 108, 101, 115, 32, 44, 10, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 58, 10, 45, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 53, 49, 50, 10, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 95, 103, 109, 105, 99, 111, 108, 95, 114, 103, 98, 95, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 51, 50, 48, 10, 103, 109, 105, 99, 111, 108, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 10, 103, 109, 105, 99, 111, 108, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 109, 101, 97, 110, 99, 117, 114, 118, 97, 116, 117, 114, 101, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 44, 36, 52, 10, 103, 109, 105, 99, 111, 108, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 10, 103, 109, 105, 99, 111, 108, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 116, 118, 95, 115, 109, 111, 111, 116, 104, 105, 110, 103, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 36, 50, 44, 48, 44, 36, 51, 44, 36, 52, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 58, 10, 45, 95, 103, 105, 109, 112, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 32, 36, 123, 50, 45, 51, 125, 10, 45, 97, 110, 105, 109, 97, 116, 101, 32, 103, 105, 109, 112, 95, 114, 101, 110, 100, 101, 114, 51, 100, 44, 34, 36, 123, 52, 45, 53, 125, 44, 36, 123, 55, 45, 49, 54, 125, 44, 36, 54, 34, 44, 92, 10, 34, 36, 123, 52, 45, 53, 125, 44, 36, 123, 49, 55, 45, 50, 54, 125, 44, 36, 54, 34, 44, 36, 49, 10, 45, 111, 32, 36, 95, 111, 117, 116, 112, 117, 116, 46, 103, 105, 102, 44, 49, 48, 10, 45, 114, 109, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 108, 101, 118, 97, 116, 105, 111, 110, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 101, 120, 116, 114, 117, 100, 101, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 97, 110, 105, 109, 97, 116, 101, 95, 105, 109, 97, 103, 101, 111, 98, 106, 101, 99, 116, 51, 100, 95, 112, 114, 101, 118, 105, 101, 119, 32, 36, 49, 44, 49, 44, 48, 44, 92, 34, 92, 34, 44, 36, 123, 50, 45, 45, 49, 125, 10, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 104, 97, 114, 100, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 104, 111, 117, 103, 104, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 58, 10, 45, 45, 103, 105, 109, 112, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 32, 45, 98, 108, 101, 110, 100, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 10, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 115, 107, 101, 116, 99, 104, 98, 119, 32, 36, 42, 34, 44, 36, 45, 49, 10, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 58, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 61, 49, 50, 53, 125, 44, 36, 123, 50, 61, 49, 53, 51, 125, 44, 36, 123, 51, 61, 49, 55, 49, 125, 44, 36, 123, 52, 61, 49, 56, 53, 125, 44, 36, 123, 53, 61, 48, 46, 49, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 54, 61, 53, 48, 125, 44, 36, 123, 55, 61, 56, 48, 125, 44, 36, 123, 56, 61, 53, 48, 125, 44, 36, 123, 57, 61, 49, 48, 125, 10, 45, 115, 107, 105, 112, 32, 36, 123, 49, 48, 61, 49, 53, 125, 44, 36, 123, 49, 49, 61, 49, 50, 125, 44, 36, 123, 49, 50, 61, 50, 48, 125, 44, 36, 123, 49, 51, 61, 48, 125, 32, 45, 115, 107, 105, 112, 32, 36, 123, 49, 52, 61, 49, 125, 44, 36, 123, 49, 53, 61, 48, 46, 51, 125, 44, 36, 123, 49, 54, 61, 49, 125, 44, 36, 123, 49, 55, 61, 48, 125, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 119, 61, 123, 119, 125, 32, 104, 61, 123, 104, 125, 32, 115, 99, 61, 56, 48, 48, 32, 109, 108, 61, 52, 10, 45, 105, 102, 32, 123, 119, 62, 104, 125, 32, 110, 119, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 119, 41, 125, 32, 110, 104, 61, 123, 36, 110, 119, 47, 119, 42, 104, 125, 32, 45, 101, 108, 115, 101, 32, 110, 104, 61, 123, 109, 105, 110, 40, 36, 115, 99, 44, 104, 41, 125, 32, 110, 119, 61, 123, 36, 110, 104, 47, 104, 42, 119, 125, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 91, 48, 93, 32, 91, 48, 93, 32, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 49, 93, 32, 36, 110, 119, 44, 36, 110, 104, 32, 45, 101, 110, 100, 105, 102, 10, 45, 98, 91, 49, 93, 32, 36, 53, 37, 32, 45, 110, 111, 114, 109, 91, 49, 93, 32, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 49, 93, 32, 45, 110, 91, 49, 93, 32, 48, 44, 50, 53, 53, 10, 45, 45, 99, 91, 49, 93, 32, 48, 44, 123, 50, 53, 53, 45, 36, 52, 125, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 51, 125, 44, 49, 50, 56, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 50, 125, 44, 49, 57, 50, 32, 45, 45, 99, 91, 49, 93, 32, 123, 50, 53, 53, 45, 36, 49, 125, 44, 50, 53, 53, 32, 45, 110, 91, 45, 51, 45, 45, 49, 93, 32, 48, 44, 50, 53, 53, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 54, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 48, 44, 48, 44, 120, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 55, 44, 50, 32, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 51, 44, 48, 32, 45, 102, 99, 91, 45, 49, 93, 32, 48, 44, 45, 49, 44, 48, 32, 45, 115, 109, 111, 111, 116, 104, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 51, 48, 44, 51, 48, 44, 48, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 51, 32, 45, 109, 105, 114, 114, 111, 114, 91, 45, 49, 93, 32, 120, 32, 45, 101, 110, 100, 105, 102, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 56, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 49, 44, 48, 44, 121, 44, 48, 10, 123, 119, 125, 44, 123, 104, 125, 44, 49, 44, 49, 44, 48, 32, 45, 110, 111, 105, 115, 101, 91, 45, 49, 93, 32, 36, 57, 44, 50, 32, 45, 100, 101, 114, 105, 99, 104, 101, 91, 45, 49, 93, 32, 36, 49, 50, 44, 48, 44, 121, 44, 48, 10, 45, 113, 117, 97, 110, 116, 105, 122, 101, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 50, 44, 48, 32, 45, 100, 101, 102, 111, 114, 109, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 36, 49, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 36, 109, 108, 32, 45, 109, 117, 108, 91, 123, 50, 43, 36, 62, 125, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 97, 100, 100, 91, 45, 36, 109, 108, 45, 45, 49, 93, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 114, 109, 91, 49, 93, 10, 45, 110, 101, 103, 97, 116, 105, 118, 101, 91, 45, 49, 93, 32, 45, 97, 112, 112, 108, 121, 95, 103, 97, 109, 109, 97, 91, 45, 49, 93, 32, 36, 49, 53, 10, 45, 105, 102, 32, 36, 49, 54, 32, 45, 114, 91, 45, 49, 93, 32, 36, 119, 44, 36, 104, 44, 49, 44, 51, 44, 53, 32, 45, 99, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 49, 55, 32, 45, 98, 108, 101, 110, 100, 91, 48, 44, 49, 93, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 32, 45, 101, 108, 115, 101, 32, 45, 107, 101, 101, 112, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 10, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 95, 112, 114, 101, 118, 105, 101, 119, 32, 58, 10, 45, 103, 105, 109, 112, 95, 115, 112, 108, 105, 116, 95, 112, 114, 101, 118, 105, 101, 119, 32, 34, 45, 103, 109, 105, 99, 111, 108, 95, 103, 99, 100, 95, 101, 116, 99, 104, 32, 36, 42, 34, 44, 36, 45, 49, 10, 98, 108, 101, 110, 100, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 32, 45, 98, 108, 101, 110, 100, 32, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 48, 10, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 108, 112, 104, 97, 32, 98, 108, 101, 110, 100, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 91, 45, 50, 93, 44, 49, 48, 48, 37, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 93, 32, 123, 97, 49, 61, 33, 40, 64, 123, 45, 50, 44, 115, 125, 37, 50, 41, 59, 97, 50, 61, 33, 40, 115, 37, 50, 41, 59, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 45, 97, 49, 44, 115, 45, 97, 50, 41, 43, 97, 49, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 49, 93, 32, 123, 97, 61, 109, 97, 120, 40, 64, 123, 45, 50, 44, 115, 125, 44, 115, 41, 59, 97, 43, 40, 97, 37, 50, 41, 125, 10, 45, 105, 102, 32, 123, 64, 123, 45, 50, 44, 115, 125, 61, 61, 50, 124, 124, 64, 123, 45, 50, 44, 115, 125, 61, 61, 52, 125, 10, 45, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 50, 93, 32, 45, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 123, 115, 45, 49, 125, 44, 123, 115, 45, 49, 125, 32, 45, 45, 42, 91, 45, 51, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 50, 93, 32, 45, 43, 91, 45, 51, 44, 45, 50, 93, 32, 45, 45, 91, 45, 50, 44, 45, 49, 93, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 10, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 108, 115, 101, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 45, 91, 45, 50, 93, 32, 91, 45, 52, 93, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 91, 45, 50, 44, 45, 49, 93, 10, 45, 101, 110, 100, 105, 102, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 115, 104, 91, 45, 49, 93, 32, 48, 44, 123, 115, 45, 50, 125, 32, 45, 115, 104, 91, 45, 50, 93, 32, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 44, 123, 64, 123, 45, 50, 44, 115, 125, 45, 49, 125, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 101, 45, 49, 48, 32, 45, 47, 91, 45, 49, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 118, 101, 114, 97, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 54, 32, 45, 43, 32, 50, 53, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 97, 114, 107, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 105, 110, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 98, 115, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 105, 118, 105, 100, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 91, 45, 50, 93, 32, 50, 53, 54, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 100, 111, 100, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 50, 53, 54, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 32, 58, 32, 45, 99, 104, 101, 99, 107, 32, 123, 36, 49, 62, 61, 48, 125, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 101, 100, 103, 101, 32, 109, 111, 100, 101, 44, 32, 119, 105, 116, 104, 32, 115, 109, 111, 111, 116, 104, 110, 101, 115, 115, 32, 36, 49, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 62, 49, 125, 32, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 45, 103, 114, 97, 100, 105, 101, 110, 116, 95, 110, 111, 114, 109, 32, 45, 43, 91, 45, 49, 93, 32, 49, 32, 45, 98, 91, 45, 49, 93, 32, 36, 49, 32, 45, 110, 91, 45, 49, 93, 32, 49, 44, 49, 48, 32, 45, 115, 113, 114, 91, 45, 49, 93, 32, 45, 115, 91, 45, 50, 93, 32, 99, 32, 45, 42, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 97, 91, 45, 52, 45, 45, 49, 93, 32, 99, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 47, 91, 45, 52, 45, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 97, 91, 45, 51, 45, 45, 49, 93, 32, 99, 32, 45, 118, 32, 43, 32, 45, 101, 110, 100, 105, 102, 10, 99, 111, 109, 112, 111, 115, 101, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 47, 91, 45, 49, 93, 32, 45, 49, 50, 56, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 102, 97, 100, 105, 110, 103, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 64, 123, 45, 109, 97, 120, 95, 119, 104, 100, 125, 44, 49, 48, 48, 37, 44, 51, 10, 45, 114, 91, 49, 45, 45, 50, 93, 32, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 49, 48, 48, 37, 44, 64, 123, 45, 109, 97, 120, 95, 115, 125, 32, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 32, 45, 45, 45, 91, 45, 49, 93, 32, 36, 62, 32, 45, 97, 98, 115, 91, 45, 49, 93, 32, 45, 45, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 45, 49, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 48, 32, 45, 42, 91, 36, 62, 44, 45, 49, 93, 32, 45, 100, 111, 110, 101, 10, 45, 114, 109, 91, 45, 49, 93, 32, 45, 43, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 102, 114, 101, 101, 122, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 91, 45, 50, 93, 32, 50, 53, 53, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 43, 91, 45, 49, 93, 32, 48, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 103, 114, 97, 105, 110, 32, 101, 120, 116, 114, 97, 99, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 32, 49, 50, 56, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 103, 114, 97, 105, 110, 32, 109, 101, 114, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 49, 50, 56, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 104, 97, 114, 100, 32, 108, 105, 103, 104, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 103, 101, 91, 45, 49, 93, 32, 49, 50, 56, 32, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 50, 56, 32, 45, 45, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 104, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 104, 117, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 32, 48, 46, 48, 49, 50, 50, 55, 49, 56, 52, 54, 32, 45, 99, 111, 115, 32, 45, 47, 32, 45, 52, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 43, 32, 48, 46, 53, 32, 45, 42, 32, 50, 53, 54, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 105, 103, 104, 116, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 109, 97, 120, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 108, 97, 98, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 108, 97, 98, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 91, 45, 50, 44, 45, 49, 93, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 44, 45, 49, 93, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 121, 99, 98, 99, 114, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 48, 44, 48, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 121, 99, 98, 99, 114, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 109, 101, 100, 105, 97, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 117, 115, 105, 110, 103, 32, 109, 101, 100, 105, 97, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 118, 32, 45, 32, 45, 114, 91, 94, 48, 93, 32, 91, 48, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 97, 32, 122, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 122, 120, 121, 99, 32, 45, 115, 32, 121, 44, 45, 54, 52, 10, 45, 114, 101, 112, 101, 97, 116, 32, 64, 35, 32, 45, 108, 91, 36, 62, 93, 10, 45, 114, 32, 49, 48, 48, 37, 44, 123, 119, 42, 49, 48, 48, 125, 37, 10, 45, 115, 32, 122, 32, 45, 109, 101, 100, 105, 97, 110, 32, 123, 119, 125, 32, 119, 61, 123, 119, 125, 32, 45, 99, 111, 108, 117, 109, 110, 115, 32, 123, 105, 110, 116, 40, 119, 47, 50, 41, 125, 32, 45, 114, 32, 49, 44, 123, 104, 47, 36, 119, 125, 32, 45, 97, 32, 122, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 97, 32, 121, 32, 45, 112, 101, 114, 109, 117, 116, 101, 32, 121, 122, 120, 99, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 109, 117, 108, 116, 105, 112, 108, 121, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 110, 101, 103, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 97, 98, 115, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 111, 118, 101, 114, 108, 97, 121, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 10, 45, 45, 103, 101, 91, 45, 50, 93, 32, 49, 50, 56, 10, 45, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 47, 91, 45, 49, 93, 32, 49, 50, 56, 10, 45, 45, 91, 45, 52, 44, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 52, 44, 45, 51, 93, 32, 45, 47, 91, 45, 51, 93, 32, 49, 50, 56, 32, 45, 45, 91, 45, 51, 93, 32, 50, 53, 53, 32, 45, 42, 91, 45, 51, 93, 32, 45, 49, 10, 45, 42, 91, 45, 51, 93, 32, 91, 45, 50, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 49, 32, 45, 43, 91, 45, 50, 93, 32, 49, 32, 45, 42, 91, 45, 50, 44, 45, 49, 93, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 114, 101, 102, 108, 101, 99, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 115, 113, 114, 91, 45, 50, 93, 32, 45, 45, 91, 45, 49, 93, 32, 50, 53, 53, 46, 49, 32, 45, 47, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 45, 49, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 114, 103, 98, 97, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 97, 108, 112, 104, 97, 32, 98, 108, 101, 110, 100, 105, 110, 103, 46, 34, 10, 45, 118, 32, 45, 32, 45, 116, 111, 95, 114, 103, 98, 91, 48, 45, 45, 49, 58, 50, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 49, 44, 49, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 49, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 99, 114, 101, 101, 110, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 47, 32, 50, 53, 54, 32, 45, 45, 32, 50, 53, 53, 32, 45, 42, 32, 45, 49, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 104, 97, 112, 101, 32, 97, 118, 101, 114, 97, 103, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 45, 50, 44, 45, 49, 93, 32, 110, 109, 61, 64, 123, 48, 44, 110, 125, 10, 45, 99, 104, 97, 110, 110, 101, 108, 115, 91, 45, 49, 93, 32, 48, 32, 45, 103, 101, 91, 45, 49, 93, 32, 53, 48, 37, 32, 45, 108, 97, 98, 101, 108, 95, 102, 103, 91, 45, 49, 93, 32, 48, 32, 110, 98, 61, 123, 105, 77, 43, 49, 125, 32, 45, 42, 91, 45, 49, 93, 32, 50, 53, 54, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 32, 109, 61, 123, 105, 109, 125, 32, 77, 61, 123, 105, 77, 125, 32, 45, 110, 91, 45, 49, 93, 32, 48, 44, 50, 53, 53, 32, 45, 115, 91, 45, 49, 93, 32, 99, 32, 45, 43, 91, 94, 48, 93, 32, 91, 48, 93, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 64, 35, 45, 49, 125, 10, 45, 104, 105, 115, 116, 111, 103, 114, 97, 109, 91, 45, 49, 93, 32, 123, 36, 110, 98, 42, 50, 53, 54, 125, 44, 48, 44, 123, 36, 110, 98, 42, 50, 53, 54, 45, 49, 125, 10, 45, 105, 91, 45, 50, 93, 32, 50, 53, 54, 44, 49, 44, 49, 44, 49, 44, 39, 120, 39, 32, 45, 114, 91, 45, 50, 93, 32, 123, 119, 125, 44, 49, 44, 49, 44, 49, 44, 48, 44, 50, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 114, 91, 45, 50, 44, 45, 49, 93, 32, 36, 110, 98, 44, 49, 44, 49, 44, 49, 44, 50, 32, 45, 109, 97, 120, 91, 45, 49, 93, 32, 49, 32, 45, 47, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 49, 32, 45, 100, 111, 110, 101, 10, 45, 47, 91, 48, 93, 32, 50, 53, 54, 32, 45, 97, 91, 94, 48, 93, 32, 99, 32, 45, 42, 91, 45, 49, 93, 32, 123, 40, 36, 77, 45, 36, 109, 41, 47, 50, 53, 54, 125, 32, 45, 43, 91, 45, 49, 93, 32, 36, 109, 32, 45, 112, 111, 105, 110, 116, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 49, 44, 48, 32, 45, 109, 97, 112, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 110, 109, 32, 36, 110, 109, 44, 49, 32, 45, 101, 110, 100, 108, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 111, 102, 116, 32, 108, 105, 103, 104, 116, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 47, 32, 50, 53, 54, 32, 45, 45, 42, 91, 45, 50, 93, 32, 91, 45, 49, 93, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 115, 113, 114, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 91, 45, 51, 93, 32, 45, 42, 91, 45, 50, 93, 32, 45, 50, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 42, 32, 50, 53, 54, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 115, 116, 97, 109, 112, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 42, 91, 45, 49, 93, 32, 50, 32, 45, 43, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 45, 32, 50, 53, 53, 32, 45, 99, 32, 48, 44, 50, 53, 53, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 118, 97, 108, 117, 101, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 116, 111, 95, 114, 103, 98, 97, 32, 45, 115, 104, 32, 48, 44, 50, 10, 45, 114, 103, 98, 50, 104, 115, 118, 91, 45, 50, 44, 45, 49, 93, 32, 45, 115, 104, 91, 45, 50, 93, 32, 50, 44, 50, 32, 45, 106, 91, 45, 50, 93, 32, 91, 45, 49, 93, 44, 48, 44, 48, 44, 48, 44, 50, 32, 45, 114, 109, 91, 45, 53, 44, 45, 51, 44, 45, 49, 93, 32, 45, 104, 115, 118, 50, 114, 103, 98, 91, 45, 49, 93, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 99, 111, 109, 112, 111, 115, 101, 95, 120, 111, 114, 32, 58, 10, 45, 101, 91, 94, 45, 49, 93, 32, 34, 67, 111, 109, 112, 111, 115, 101, 32, 105, 109, 97, 103, 101, 36, 63, 32, 116, 119, 111, 45, 98, 121, 45, 116, 119, 111, 44, 32, 117, 115, 105, 110, 103, 32, 120, 111, 114, 32, 109, 111, 100, 101, 46, 34, 10, 45, 118, 32, 45, 32, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 108, 91, 36, 62, 44, 123, 36, 62, 43, 49, 125, 93, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 48, 32, 45, 114, 91, 45, 49, 93, 32, 91, 45, 50, 93, 44, 48, 44, 48, 44, 48, 46, 53, 44, 48, 46, 53, 32, 45, 120, 111, 114, 10, 45, 101, 110, 100, 108, 32, 45, 100, 111, 110, 101, 32, 45, 118, 32, 43, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 36, 49, 91, 45, 50, 44, 45, 49, 93, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 58, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 114, 118, 91, 123, 50, 42, 36, 62, 125, 44, 123, 50, 42, 36, 62, 43, 49, 125, 93, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 97, 118, 101, 114, 97, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 99, 111, 108, 111, 114, 98, 117, 114, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 99, 111, 108, 111, 114, 98, 117, 114, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 97, 114, 107, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 100, 97, 114, 107, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 100, 105, 102, 102, 101, 114, 101, 110, 99, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 105, 118, 105, 100, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 100, 105, 118, 105, 100, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 100, 111, 100, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 100, 111, 100, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 32, 58, 10, 45, 105, 102, 32, 36, 123, 51, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 32, 45, 45, 99, 111, 109, 112, 111, 115, 101, 95, 101, 100, 103, 101, 115, 91, 45, 50, 44, 45, 49, 93, 32, 36, 50, 32, 45, 114, 109, 91, 45, 51, 93, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 115, 104, 91, 45, 49, 93, 32, 51, 44, 51, 32, 45, 42, 91, 45, 49, 93, 32, 36, 49, 32, 45, 114, 109, 91, 45, 49, 93, 32, 45, 99, 111, 109, 112, 111, 115, 101, 95, 97, 108, 112, 104, 97, 91, 45, 50, 44, 45, 49, 93, 32, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 101, 120, 99, 108, 117, 115, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 101, 120, 99, 108, 117, 115, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 32, 58, 10, 45, 105, 102, 32, 123, 64, 35, 61, 61, 49, 125, 32, 45, 114, 101, 116, 117, 114, 110, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 99, 111, 108, 111, 114, 109, 111, 100, 101, 32, 52, 10, 45, 105, 102, 32, 123, 36, 49, 61, 61, 48, 125, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 36, 49, 48, 34, 10, 45, 101, 108, 115, 101, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 36, 49, 32, 36, 55, 44, 36, 56, 44, 36, 57, 32, 45, 114, 91, 45, 49, 93, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 51, 10, 45, 101, 110, 100, 105, 102, 10, 45, 110, 91, 45, 49, 93, 32, 123, 45, 40, 64, 35, 45, 50, 41, 42, 36, 51, 125, 44, 123, 40, 64, 35, 45, 50, 41, 42, 40, 49, 43, 36, 51, 41, 125, 10, 45, 45, 91, 45, 49, 93, 32, 123, 36, 50, 42, 40, 49, 43, 36, 51, 41, 42, 40, 64, 35, 45, 50, 41, 125, 10, 45, 99, 91, 45, 49, 93, 32, 48, 44, 123, 64, 35, 45, 50, 125, 10, 45, 105, 102, 32, 36, 54, 32, 45, 114, 118, 91, 94, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 53, 32, 45, 114, 111, 117, 110, 100, 91, 45, 49, 93, 32, 49, 10, 45, 101, 108, 115, 101, 32, 45, 114, 111, 117, 110, 100, 105, 102, 121, 91, 45, 49, 93, 32, 36, 52, 10, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 10, 45, 99, 32, 48, 44, 50, 53, 53, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 49, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 97, 61, 36, 49, 42, 112, 105, 47, 50, 59, 32, 120, 42, 99, 111, 115, 40, 97, 41, 32, 43, 32, 121, 42, 115, 105, 110, 40, 97, 41, 34, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 50, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 51, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 48, 32, 45, 61, 91, 45, 49, 93, 32, 49, 44, 123, 40, 36, 49, 43, 49, 41, 42, 53, 48, 125, 37, 44, 123, 40, 36, 50, 43, 49, 41, 42, 53, 48, 125, 37, 32, 45, 100, 105, 115, 116, 97, 110, 99, 101, 91, 45, 49, 93, 32, 49, 32, 45, 42, 91, 45, 49, 93, 32, 123, 48, 46, 48, 49, 43, 36, 51, 47, 50, 125, 32, 45, 99, 111, 115, 91, 45, 49, 93, 10, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 97, 100, 101, 52, 32, 58, 32, 91, 48, 93, 44, 91, 48, 93, 44, 49, 44, 49, 44, 34, 40, 40, 120, 45, 119, 42, 40, 36, 49, 43, 48, 46, 53, 41, 41, 42, 40, 121, 45, 104, 42, 40, 36, 50, 43, 48, 46, 53, 41, 41, 41, 37, 40, 48, 46, 50, 42, 119, 42, 104, 42, 40, 49, 46, 48, 48, 49, 43, 36, 51, 41, 41, 34, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 102, 114, 101, 101, 122, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 102, 114, 101, 101, 122, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 103, 114, 97, 105, 110, 101, 120, 116, 114, 97, 99, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 103, 114, 97, 105, 110, 109, 101, 114, 103, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 97, 114, 100, 108, 105, 103, 104, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 104, 97, 114, 100, 108, 105, 103, 104, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 104, 117, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 104, 117, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 105, 110, 116, 101, 114, 112, 111, 108, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 108, 105, 103, 104, 116, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 105, 103, 104, 116, 110, 101, 115, 115, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 108, 105, 103, 104, 116, 110, 101, 115, 115, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 108, 117, 109, 105, 110, 97, 110, 99, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 108, 117, 109, 105, 110, 97, 110, 99, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 109, 117, 108, 116, 105, 112, 108, 121, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 109, 117, 108, 116, 105, 112, 108, 121, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 110, 101, 103, 97, 116, 105, 111, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 110, 101, 103, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 111, 118, 101, 114, 108, 97, 121, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 111, 118, 101, 114, 108, 97, 121, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 114, 101, 102, 108, 101, 99, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 114, 101, 102, 108, 101, 99, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 115, 97, 116, 117, 114, 97, 116, 105, 111, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 99, 114, 101, 101, 110, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 115, 99, 114, 101, 101, 110, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 32, 58, 10, 45, 105, 102, 32, 36, 123, 51, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 10, 45, 114, 101, 112, 101, 97, 116, 32, 123, 105, 110, 116, 40, 64, 35, 47, 50, 41, 125, 10, 45, 114, 118, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 105, 91, 48, 93, 32, 91, 45, 49, 93, 32, 45, 101, 110, 100, 105, 102, 10, 45, 99, 111, 109, 112, 111, 115, 101, 95, 115, 104, 97, 112, 101, 97, 118, 101, 114, 97, 103, 101, 91, 45, 50, 44, 45, 49, 93, 10, 45, 105, 102, 32, 36, 49, 32, 45, 42, 91, 48, 44, 45, 49, 93, 32, 45, 47, 91, 48, 93, 32, 50, 53, 53, 32, 45, 109, 118, 91, 48, 93, 32, 64, 35, 32, 45, 101, 110, 100, 105, 102, 10, 45, 105, 102, 32, 36, 50, 32, 45, 116, 111, 95, 114, 103, 98, 97, 91, 45, 49, 93, 32, 45, 114, 101, 112, 108, 97, 99, 101, 95, 99, 111, 108, 111, 114, 91, 45, 49, 93, 32, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 50, 53, 53, 44, 48, 44, 48, 44, 48, 44, 48, 32, 45, 101, 110, 100, 105, 102, 10, 45, 109, 118, 91, 45, 49, 93, 32, 48, 32, 45, 100, 111, 110, 101, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 111, 102, 116, 108, 105, 103, 104, 116, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 115, 111, 102, 116, 108, 105, 103, 104, 116, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 115, 116, 97, 109, 112, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 115, 116, 97, 109, 112, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 118, 97, 108, 117, 101, 32, 58, 32, 45, 115, 107, 105, 112, 32, 36, 123, 50, 61, 48, 125, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 118, 97, 108, 117, 101, 44, 36, 49, 10, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 95, 120, 111, 114, 32, 58, 10, 45, 105, 102, 32, 36, 123, 50, 61, 48, 125, 32, 45, 95, 103, 105, 109, 112, 95, 114, 101, 118, 101, 114, 116, 95, 108, 97, 121, 101, 114, 115, 32, 45, 101, 110, 100, 105, 102, 10, 45, 116, 111, 95, 114, 103, 98, 32, 45, 95, 103, 105, 109, 112, 95, 99, 111, 109, 112, 111, 115, 101, 32, 120, 111, 114, 44, 36, 49, 10, 114, 101, 115, 105, 122, 101, 50, 120, 32, 58, 10, 45, 115, 99, 97, 108, 101, 50, 120, 10, 114, 101, 115, 105, 122, 101, 51, 120, 32, 58, 10, 45, 115, 99, 97, 108, 101, 51, 120, 0 }; unsigned int size_data_gmic_def = sizeof(data_gmic_def); /* Define image 'gmic_logo' of size 3x102x22x1 and type 'unsigned char' */ unsigned char data_gmic_logo[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 244, 247, 248, 203, 211, 218, 176, 189, 201, 182, 194, 205, 210, 217, 224, 247, 248, 249, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 183, 127, 176, 124, 22, 110, 111, 0, 97, 121, 17, 108, 119, 13, 105, 119, 13, 105, 135, 43, 123, 252, 250, 252, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 238, 248, 252, 201, 233, 247, 169, 220, 242, 141, 206, 236, 119, 193, 230, 101, 182, 223, 87, 171, 217, 78, 162, 210, 73, 153, 204, 72, 147, 199, 76, 143, 194, 85, 142, 192, 160, 188, 217, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 118, 119, 123, 124, 125, 129, 121, 122, 126, 135, 136, 140, 174, 174, 177, 143, 144, 147, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 253, 243, 245, 246, 139, 158, 175, 42, 75, 107, 20, 58, 93, 19, 58, 94, 21, 60, 97, 28, 66, 102, 54, 88, 120, 130, 151, 171, 227, 232, 235, 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 197, 152, 191, 255, 255, 255, 254, 254, 254, 255, 255, 255, 112, 1, 98, 118, 12, 104, 119, 13, 105, 119, 13, 105, 119, 13, 105, 119, 14, 105, 105, 0, 90, 247, 241, 246, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 252, 253, 254, 225, 243, 251, 177, 226, 245, 91, 205, 238, 26, 181, 231, 3, 162, 225, 27, 166, 225, 54, 173, 226, 77, 179, 226, 96, 184, 226, 111, 187, 225, 121, 188, 225, 128, 188, 223, 130, 185, 219, 129, 180, 216, 123, 172, 210, 113, 161, 202, 161, 189, 217, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 133, 134, 137, 136, 137, 140, 173, 174, 176, 231, 231, 231, 166, 166, 169, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 254, 254, 254, 254, 225, 229, 234, 64, 94, 122, 14, 53, 89, 19, 58, 94, 24, 62, 98, 26, 65, 101, 28, 68, 104, 31, 69, 105, 31, 70, 106, 30, 69, 105, 45, 81, 114, 151, 169, 185, 247, 249, 249, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 218, 190, 214, 149, 67, 138, 110, 0, 95, 118, 12, 104, 113, 3, 99, 255, 255, 255, 255, 255, 255, 254, 254, 254, 134, 41, 122, 119, 13, 105, 119, 13, 105, 115, 7, 101, 193, 147, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 254, 254, 241, 249, 252, 215, 238, 249, 178, 224, 245, 169, 221, 244, 172, 224, 245, 155, 224, 244, 144, 219, 243, 141, 213, 241, 117, 200, 236, 89, 187, 231, 65, 174, 224, 46, 161, 217, 31, 149, 210, 21, 138, 202, 14, 127, 194, 12, 119, 187, 13, 112, 181, 19, 107, 175, 29, 104, 172, 124, 163, 203, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 146, 147, 149, 173, 174, 176, 254, 254, 254, 223, 223, 224, 129, 130, 134, 123, 124, 127, 119, 120, 124, 0, 0, 0, 0, 0, 0, 254, 254, 254, 254, 254, 254, 230, 234, 238, 55, 87, 116, 15, 52, 88, 19, 58, 93, 23, 61, 98, 27, 65, 102, 30, 69, 105, 34, 73, 109, 37, 75, 111, 38, 76, 112, 38, 75, 112, 35, 74, 110, 33, 71, 107, 92, 120, 145, 237, 241, 243, 254, 254, 254, 254, 255, 255, 232, 215, 230, 117, 10, 103, 119, 14, 106, 119, 13, 105, 118, 12, 104, 119, 13, 105, 119, 14, 106, 255, 255, 255, 252, 249, 251, 206, 169, 201, 157, 81, 147, 117, 10, 103, 119, 13, 105, 118, 13, 105, 252, 250, 252, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 253, 254, 240, 248, 252, 235, 246, 251, 230, 244, 251, 214, 238, 249, 174, 223, 244, 112, 203, 238, 38, 189, 233, 51, 189, 234, 83, 192, 234, 111, 198, 236, 134, 205, 237, 143, 207, 236, 143, 204, 234, 143, 202, 232, 143, 199, 229, 143, 195, 226, 143, 192, 223, 143, 189, 220, 143, 184, 216, 143, 180, 213, 184, 205, 226, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 147, 148, 151, 251, 251, 251, 254, 254, 254, 201, 202, 203, 130, 130, 134, 128, 129, 133, 124, 125, 129, 119, 120, 124, 0, 0, 0, 0, 0, 0, 254, 254, 254, 250, 251, 251, 86, 111, 135, 10, 49, 84, 20, 59, 93, 25, 63, 98, 26, 64, 101, 31, 69, 105, 36, 75, 111, 40, 79, 114, 43, 80, 117, 46, 82, 118, 48, 84, 119, 41, 79, 115, 38, 77, 113, 32, 70, 106, 84, 113, 139, 243, 244, 246, 254, 254, 254, 236, 221, 234, 119, 14, 105, 118, 12, 104, 120, 15, 106, 119, 13, 105, 119, 13, 105, 119, 13, 105, 203, 163, 198, 252, 255, 255, 209, 229, 231, 161, 193, 202, 157, 77, 145, 119, 13, 105, 114, 4, 99, 255, 255, 255, 255, 255, 255, 254, 253, 253, 255, 255, 255, 252, 250, 252, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 254, 244, 250, 253, 224, 241, 250, 211, 236, 249, 212, 237, 249, 205, 235, 248, 186, 230, 246, 140, 220, 243, 92, 202, 238, 60, 183, 232, 32, 168, 226, 9, 154, 219, 0, 146, 214, 0, 140, 209, 0, 134, 203, 1, 128, 198, 3, 122, 191, 0, 112, 184, 0, 104, 177, 0, 94, 169, 0, 85, 161, 94, 143, 191, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 127, 128, 132, 214, 215, 216, 180, 180, 182, 192, 192, 194, 198, 198, 200, 132, 132, 136, 131, 132, 136, 129, 129, 133, 119, 120, 124, 0, 0, 0, 0, 0, 0, 253, 254, 253, 177, 189, 200, 8, 47, 82, 79, 107, 133, 201, 210, 218, 199, 208, 216, 80, 114, 142, 78, 159, 187, 82, 166, 193, 81, 160, 189, 95, 128, 156, 199, 209, 217, 199, 209, 219, 95, 152, 179, 83, 166, 194, 77, 156, 185, 31, 71, 106, 139, 158, 177, 253, 254, 253, 237, 223, 235, 108, 0, 93, 140, 51, 128, 210, 175, 205, 165, 95, 156, 119, 13, 105, 118, 12, 104, 219, 243, 241, 161, 196, 204, 161, 196, 204, 160, 195, 203, 234, 233, 239, 120, 14, 106, 118, 11, 104, 179, 120, 171, 253, 253, 253, 180, 122, 172, 114, 4, 99, 116, 9, 102, 213, 180, 209, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 253, 254, 247, 251, 253, 238, 247, 252, 215, 238, 249, 178, 223, 245, 156, 216, 242, 146, 215, 242, 128, 216, 242, 140, 218, 243, 143, 214, 241, 143, 211, 240, 143, 209, 238, 143, 207, 236, 143, 204, 234, 143, 202, 232, 142, 198, 229, 140, 194, 226, 143, 192, 223, 143, 188, 220, 143, 184, 217, 143, 180, 213, 183, 205, 226, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 126, 127, 130, 151, 152, 155, 120, 121, 125, 193, 193, 195, 171, 171, 173, 119, 120, 124, 119, 120, 124, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 254, 253, 253, 87, 114, 136, 13, 51, 86, 199, 207, 215, 73, 103, 130, 101, 126, 151, 181, 200, 211, 90, 180, 206, 77, 118, 148, 76, 144, 174, 129, 182, 202, 195, 205, 216, 73, 108, 140, 88, 173, 200, 50, 94, 129, 48, 95, 129, 32, 71, 107, 50, 85, 117, 241, 243, 245, 250, 247, 250, 255, 255, 255, 254, 254, 254, 254, 253, 254, 242, 232, 240, 121, 16, 107, 119, 13, 105, 214, 199, 218, 162, 196, 204, 161, 196, 204, 164, 198, 206, 180, 211, 216, 210, 178, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 172, 108, 164, 119, 13, 105, 118, 12, 104, 110, 0, 95, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 253, 254, 241, 249, 252, 237, 246, 252, 229, 244, 251, 217, 239, 250, 187, 228, 246, 137, 212, 241, 50, 193, 235, 3, 174, 229, 10, 165, 226, 27, 166, 225, 42, 168, 224, 54, 169, 223, 62, 168, 220, 66, 166, 217, 69, 162, 213, 66, 155, 207, 61, 146, 200, 53, 135, 193, 41, 121, 183, 26, 102, 170, 97, 145, 192, 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 124, 125, 129, 119, 120, 124, 122, 123, 127, 178, 179, 181, 183, 183, 185, 119, 120, 124, 119, 120, 124, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 246, 248, 249, 43, 78, 107, 35, 68, 100, 208, 216, 222, 20, 59, 94, 30, 68, 103, 61, 100, 130, 81, 165, 193, 115, 140, 163, 74, 130, 161, 132, 189, 210, 164, 180, 196, 60, 95, 130, 84, 164, 192, 75, 146, 176, 46, 92, 127, 32, 70, 106, 24, 62, 98, 210, 217, 224, 254, 254, 254, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 119, 13, 105, 108, 0, 93, 209, 167, 200, 143, 182, 191, 98, 147, 159, 83, 136, 149, 87, 139, 151, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 114, 4, 99, 119, 13, 105, 119, 13, 105, 178, 119, 170, 253, 252, 253, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 253, 254, 241, 249, 252, 223, 241, 250, 212, 236, 248, 207, 235, 248, 203, 235, 248, 186, 230, 246, 154, 224, 244, 143, 219, 242, 133, 210, 240, 115, 200, 236, 100, 192, 232, 89, 184, 228, 81, 177, 223, 76, 170, 218, 73, 164, 214, 77, 161, 210, 82, 158, 206, 90, 157, 204, 102, 159, 203, 117, 163, 204, 175, 199, 223, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 125, 126, 130, 131, 132, 135, 166, 167, 169, 192, 192, 193, 119, 120, 124, 119, 120, 124, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 246, 247, 248, 39, 74, 103, 38, 70, 101, 209, 217, 223, 20, 59, 94, 26, 64, 100, 41, 83, 117, 81, 165, 193, 113, 139, 162, 73, 129, 160, 131, 189, 210, 162, 178, 195, 57, 91, 128, 54, 94, 130, 71, 136, 167, 86, 174, 200, 38, 84, 119, 20, 60, 97, 191, 201, 211, 254, 254, 254, 254, 253, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 246, 240, 245, 255, 255, 255, 255, 255, 255, 89, 141, 153, 88, 140, 152, 88, 140, 152, 78, 134, 146, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 137, 46, 125, 119, 13, 105, 119, 13, 105, 114, 5, 100, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 253, 254, 247, 251, 253, 236, 246, 252, 214, 237, 249, 181, 225, 245, 145, 212, 241, 121, 206, 239, 81, 202, 237, 83, 199, 236, 100, 198, 236, 114, 199, 236, 124, 201, 235, 131, 202, 235, 135, 201, 233, 137, 199, 231, 134, 194, 227, 130, 189, 223, 123, 181, 218, 112, 170, 211, 99, 157, 202, 81, 139, 191, 131, 169, 206, 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 118, 119, 123, 119, 120, 124, 185, 185, 187, 141, 142, 145, 153, 154, 157, 119, 120, 124, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 250, 250, 251, 56, 88, 115, 18, 55, 88, 205, 213, 220, 42, 77, 108, 69, 100, 129, 168, 188, 202, 81, 165, 193, 112, 138, 162, 71, 128, 159, 131, 188, 208, 159, 175, 192, 52, 88, 123, 53, 97, 131, 41, 78, 114, 77, 154, 183, 48, 104, 136, 19, 58, 95, 200, 209, 217, 245, 237, 244, 172, 107, 163, 112, 1, 98, 210, 175, 205, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 118, 160, 170, 89, 141, 153, 88, 140, 152, 76, 132, 145, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 118, 12, 104, 118, 12, 104, 118, 12, 104, 118, 12, 104, 147, 63, 135, 253, 252, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 253, 254, 244, 250, 253, 238, 247, 252, 229, 244, 251, 218, 239, 249, 199, 233, 247, 161, 221, 243, 96, 207, 239, 60, 192, 234, 43, 177, 230, 29, 166, 225, 18, 158, 221, 11, 151, 216, 8, 144, 210, 7, 137, 205, 8, 132, 199, 12, 127, 194, 20, 123, 189, 30, 122, 186, 44, 123, 184, 62, 126, 183, 142, 176, 210, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 132, 133, 137, 161, 161, 164, 213, 213, 214, 196, 196, 198, 119, 120, 124, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 253, 253, 254, 91, 117, 139, 5, 45, 79, 120, 141, 160, 203, 211, 219, 206, 214, 221, 111, 141, 163, 77, 159, 187, 111, 135, 159, 68, 124, 155, 124, 182, 203, 151, 169, 186, 46, 85, 120, 81, 162, 189, 79, 160, 188, 80, 163, 191, 33, 75, 111, 30, 67, 102, 223, 229, 233, 243, 233, 241, 119, 14, 106, 118, 12, 104, 184, 130, 177, 254, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 248, 249, 157, 187, 194, 236, 242, 243, 255, 255, 255, 254, 254, 254, 255, 255, 255, 172, 108, 164, 116, 8, 102, 115, 6, 101, 118, 12, 104, 119, 13, 105, 119, 13, 105, 119, 13, 105, 117, 10, 103, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 253, 254, 239, 248, 252, 223, 241, 250, 212, 237, 249, 203, 233, 248, 195, 232, 247, 188, 230, 246, 174, 230, 247, 180, 230, 247, 192, 231, 247, 200, 233, 247, 206, 235, 248, 210, 235, 247, 211, 235, 247, 208, 232, 245, 203, 229, 243, 195, 223, 240, 185, 216, 235, 172, 206, 229, 156, 193, 221, 137, 176, 211, 169, 195, 220, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 143, 144, 147, 145, 146, 149, 192, 193, 195, 238, 239, 239, 130, 131, 134, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 254, 254, 254, 141, 159, 174, 4, 42, 78, 10, 51, 84, 46, 80, 110, 49, 83, 114, 25, 64, 99, 35, 79, 115, 107, 132, 156, 49, 88, 122, 51, 92, 126, 58, 92, 125, 38, 76, 112, 39, 81, 116, 43, 91, 125, 32, 74, 109, 26, 64, 99, 67, 97, 126, 249, 250, 250, 244, 235, 242, 119, 13, 105, 119, 13, 105, 160, 85, 150, 253, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 253, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 118, 11, 104, 119, 13, 105, 119, 13, 105, 119, 13, 105, 119, 13, 105, 119, 13, 105, 119, 13, 105, 118, 12, 104, 119, 15, 105, 254, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 129, 130, 133, 202, 202, 203, 245, 245, 245, 219, 219, 220, 206, 207, 208, 119, 119, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 254, 254, 254, 206, 214, 220, 9, 46, 79, 7, 47, 82, 12, 51, 86, 16, 54, 90, 20, 58, 94, 22, 61, 97, 104, 130, 154, 40, 77, 112, 32, 70, 107, 32, 71, 107, 32, 70, 106, 31, 69, 105, 28, 66, 103, 26, 64, 100, 22, 60, 96, 158, 175, 189, 253, 253, 253, 245, 238, 244, 119, 13, 105, 119, 13, 105, 129, 32, 116, 255, 255, 255, 255, 255, 255, 218, 189, 214, 128, 30, 115, 227, 206, 224, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 117, 9, 102, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 137, 45, 124, 251, 247, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 120, 124, 119, 120, 124, 119, 120, 124, 181, 181, 183, 251, 251, 251, 200, 200, 202, 131, 132, 135, 253, 253, 253, 135, 136, 139, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 252, 252, 253, 74, 98, 123, 4, 44, 79, 8, 48, 83, 13, 51, 87, 17, 55, 91, 19, 57, 93, 101, 127, 150, 36, 72, 106, 27, 65, 101, 27, 65, 101, 27, 65, 101, 26, 64, 100, 24, 62, 98, 21, 59, 95, 59, 90, 120, 242, 244, 245, 254, 254, 253, 246, 239, 245, 119, 13, 105, 118, 12, 104, 119, 13, 105, 114, 4, 99, 116, 8, 102, 120, 16, 107, 119, 13, 105, 163, 91, 153, 253, 251, 253, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 168, 100, 159, 119, 14, 105, 118, 12, 104, 118, 12, 104, 118, 12, 104, 118, 12, 104, 118, 12, 104, 128, 34, 118, 128, 113, 170, 133, 167, 205, 133, 169, 206, 133, 169, 206, 170, 195, 220, 249, 250, 252, 133, 169, 205, 182, 203, 225, 254, 254, 254, 255, 255, 255, 162, 189, 217, 161, 189, 217, 254, 254, 254, 246, 249, 251, 158, 186, 215, 115, 156, 198, 132, 168, 205, 211, 224, 237, 254, 254, 254, 211, 223, 237, 133, 169, 205, 234, 240, 246, 255, 255, 255, 237, 242, 247, 147, 178, 211, 115, 155, 198, 145, 176, 210, 236, 241, 247, 255, 255, 255, 255, 255, 255, 253, 253, 254, 141, 174, 208, 165, 191, 218, 255, 255, 255, 255, 255, 255, 255, 255, 255, 160, 187, 216, 133, 169, 205, 133, 169, 206, 133, 169, 206, 133, 169, 206, 228, 236, 244, 189, 208, 227, 134, 169, 206, 239, 244, 248, 255, 255, 255, 226, 234, 243, 133, 169, 205, 221, 231, 241, 119, 120, 124, 119, 120, 124, 183, 183, 186, 223, 223, 224, 194, 194, 196, 210, 211, 212, 121, 122, 125, 254, 254, 254, 172, 173, 175, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 254, 193, 202, 210, 10, 45, 78, 5, 45, 80, 8, 48, 83, 13, 51, 87, 14, 53, 88, 98, 124, 146, 31, 68, 102, 22, 60, 96, 22, 60, 96, 22, 60, 96, 21, 60, 95, 19, 58, 93, 24, 61, 96, 190, 201, 209, 254, 254, 254, 254, 255, 254, 247, 241, 246, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 118, 12, 104, 125, 23, 111, 253, 252, 253, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 246, 240, 245, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 116, 8, 102, 127, 46, 126, 18, 67, 147, 54, 112, 174, 71, 124, 181, 71, 125, 181, 127, 164, 203, 243, 246, 250, 0, 74, 152, 6, 78, 155, 191, 209, 228, 254, 254, 254, 61, 117, 177, 59, 116, 177, 254, 254, 254, 78, 129, 183, 14, 84, 158, 88, 137, 188, 48, 108, 171, 27, 93, 163, 232, 239, 245, 164, 190, 218, 0, 74, 152, 211, 224, 237, 226, 234, 243, 28, 94, 163, 24, 91, 162, 83, 133, 185, 21, 89, 161, 44, 105, 169, 249, 250, 252, 255, 255, 255, 176, 199, 223, 0, 74, 152, 6, 78, 154, 225, 234, 242, 255, 255, 255, 255, 255, 255, 55, 113, 174, 17, 86, 159, 71, 124, 181, 71, 124, 181, 71, 125, 181, 214, 226, 238, 117, 157, 199, 0, 74, 153, 71, 124, 180, 250, 251, 252, 195, 212, 230, 0, 74, 152, 185, 206, 227, 119, 120, 124, 137, 138, 141, 213, 213, 214, 121, 122, 126, 178, 178, 181, 225, 225, 226, 137, 138, 141, 254, 254, 254, 189, 190, 191, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 254, 252, 252, 253, 129, 148, 164, 3, 43, 77, 5, 45, 80, 8, 48, 83, 9, 49, 84, 96, 121, 144, 26, 63, 96, 17, 55, 91, 17, 55, 91, 16, 55, 91, 16, 54, 90, 18, 56, 91, 153, 169, 184, 253, 253, 253, 254, 254, 254, 255, 255, 255, 248, 244, 248, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 118, 12, 104, 118, 12, 104, 118, 12, 104, 113, 2, 98, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 114, 4, 99, 119, 13, 105, 109, 0, 94, 117, 11, 103, 175, 114, 167, 245, 237, 244, 222, 231, 241, 2, 75, 153, 109, 151, 196, 143, 175, 209, 225, 234, 242, 255, 255, 255, 243, 246, 250, 0, 74, 152, 10, 81, 155, 18, 87, 160, 216, 227, 239, 61, 117, 176, 59, 116, 176, 254, 254, 254, 46, 107, 171, 26, 93, 163, 142, 175, 209, 194, 212, 230, 233, 239, 246, 254, 254, 254, 164, 191, 218, 0, 74, 152, 211, 224, 237, 114, 155, 198, 4, 77, 154, 224, 233, 242, 255, 255, 255, 232, 238, 245, 244, 247, 250, 255, 255, 255, 254, 254, 254, 54, 112, 173, 59, 116, 176, 14, 84, 158, 109, 151, 196, 255, 255, 255, 255, 255, 255, 55, 113, 175, 34, 98, 166, 142, 175, 209, 169, 194, 220, 255, 255, 255, 255, 255, 255, 117, 157, 199, 2, 76, 153, 8, 80, 155, 105, 148, 194, 194, 212, 230, 0, 75, 152, 185, 206, 227, 119, 120, 124, 188, 188, 190, 153, 153, 156, 119, 120, 124, 189, 190, 192, 239, 239, 240, 174, 174, 177, 255, 255, 255, 186, 187, 188, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 254, 254, 254, 254, 249, 249, 251, 108, 131, 150, 4, 42, 76, 4, 44, 78, 6, 45, 80, 90, 116, 140, 20, 58, 92, 11, 51, 86, 11, 51, 86, 11, 50, 85, 22, 60, 92, 158, 175, 188, 252, 253, 253, 254, 254, 253, 254, 254, 254, 255, 255, 255, 249, 246, 249, 118, 12, 104, 119, 13, 105, 118, 12, 104, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 107, 0, 92, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 144, 59, 133, 230, 213, 228, 255, 255, 255, 255, 255, 255, 253, 252, 253, 255, 255, 255, 218, 229, 240, 0, 74, 152, 47, 108, 171, 62, 118, 177, 205, 220, 235, 255, 255, 255, 243, 246, 250, 0, 74, 152, 122, 161, 201, 46, 107, 171, 37, 100, 167, 48, 108, 171, 59, 116, 176, 254, 254, 254, 214, 225, 238, 96, 142, 191, 38, 101, 167, 1, 75, 152, 30, 96, 164, 219, 229, 240, 164, 191, 218, 0, 74, 152, 211, 224, 237, 84, 134, 186, 21, 89, 160, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 204, 226, 0, 74, 152, 129, 166, 204, 76, 128, 182, 9, 81, 156, 231, 238, 245, 255, 255, 255, 55, 113, 175, 15, 85, 158, 62, 118, 177, 107, 150, 195, 255, 255, 255, 255, 255, 255, 117, 157, 199, 6, 79, 155, 161, 188, 217, 1, 74, 152, 86, 135, 186, 0, 74, 152, 185, 206, 227, 119, 120, 124, 208, 209, 210, 164, 164, 167, 119, 120, 124, 174, 174, 176, 254, 254, 254, 248, 248, 248, 255, 255, 254, 164, 164, 167, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 254, 254, 255, 255, 254, 254, 254, 255, 254, 249, 250, 250, 155, 168, 182, 31, 62, 94, 3, 40, 75, 8, 46, 80, 5, 45, 80, 5, 45, 79, 12, 49, 83, 74, 99, 125, 204, 212, 219, 253, 253, 253, 255, 254, 254, 255, 255, 254, 255, 255, 254, 255, 255, 255, 250, 248, 250, 118, 12, 104, 118, 12, 104, 119, 13, 105, 118, 12, 104, 119, 13, 105, 118, 12, 104, 118, 12, 104, 119, 13, 105, 224, 199, 220, 254, 253, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 253, 252, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 218, 229, 240, 0, 74, 152, 187, 207, 227, 245, 248, 251, 245, 247, 250, 247, 249, 251, 242, 246, 249, 0, 74, 152, 133, 169, 206, 225, 234, 242, 25, 92, 162, 0, 74, 152, 59, 116, 176, 254, 254, 254, 178, 199, 223, 197, 214, 231, 253, 253, 253, 179, 201, 224, 0, 74, 153, 148, 179, 211, 164, 191, 218, 0, 74, 152, 211, 224, 237, 137, 171, 207, 0, 74, 152, 167, 193, 219, 253, 253, 254, 167, 193, 219, 160, 187, 216, 251, 252, 253, 60, 117, 176, 6, 78, 154, 16, 85, 158, 16, 86, 159, 1, 75, 153, 118, 157, 199, 254, 254, 254, 55, 113, 174, 59, 116, 176, 245, 248, 250, 245, 247, 250, 245, 248, 251, 251, 252, 253, 117, 157, 199, 6, 79, 155, 252, 252, 253, 126, 164, 203, 0, 74, 152, 0, 74, 152, 185, 206, 227, 119, 120, 124, 190, 191, 192, 243, 243, 243, 153, 154, 157, 183, 184, 186, 255, 255, 255, 255, 255, 255, 250, 250, 250, 127, 128, 132, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 253, 235, 239, 241, 173, 186, 197, 124, 144, 162, 114, 135, 154, 149, 166, 180, 207, 215, 221, 251, 252, 252, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 249, 251, 118, 12, 104, 119, 13, 105, 118, 12, 104, 118, 12, 104, 119, 13, 105, 113, 3, 99, 111, 0, 97, 149, 67, 138, 226, 204, 224, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 233, 239, 246, 33, 97, 165, 0, 74, 152, 0, 74, 152, 0, 74, 153, 39, 102, 168, 242, 246, 249, 0, 74, 152, 133, 169, 206, 255, 255, 255, 203, 217, 233, 10, 81, 156, 59, 117, 176, 245, 248, 251, 70, 123, 180, 0, 74, 152, 10, 82, 156, 2, 77, 153, 34, 99, 166, 225, 234, 243, 164, 190, 218, 0, 74, 152, 212, 224, 237, 245, 248, 251, 79, 130, 184, 0, 74, 152, 6, 78, 155, 1, 75, 153, 99, 144, 192, 190, 209, 228, 0, 74, 152, 157, 186, 215, 255, 255, 255, 254, 254, 254, 88, 137, 188, 13, 84, 158, 236, 242, 247, 55, 113, 175, 0, 74, 152, 0, 74, 153, 0, 74, 152, 0, 74, 153, 161, 188, 217, 117, 157, 199, 6, 78, 155, 252, 253, 254, 253, 253, 254, 90, 138, 188, 0, 74, 152, 185, 206, 227, 119, 120, 124, 134, 135, 138, 246, 246, 246, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 199, 199, 201, 118, 119, 123, 119, 120, 124, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 254, 254, 253, 254, 253, 253, 254, 254, 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 255, 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 252, 253, 118, 12, 104, 118, 11, 103, 106, 0, 91, 125, 24, 112, 207, 170, 202, 254, 254, 254, 255, 255, 255, 252, 251, 252, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 255, 255, 255, 254, 254, 254, 252, 253, 253, 226, 234, 243, 214, 226, 238, 214, 226, 238, 214, 226, 238, 220, 230, 241, 252, 253, 253, 214, 226, 238, 235, 241, 247, 255, 255, 255, 255, 255, 255, 227, 235, 243, 224, 233, 242, 254, 254, 254, 254, 254, 254, 224, 233, 242, 194, 211, 230, 208, 221, 235, 251, 252, 253, 255, 255, 255, 240, 244, 248, 214, 226, 238, 248, 250, 252, 255, 255, 255, 254, 254, 254, 221, 231, 241, 194, 211, 230, 225, 234, 242, 254, 254, 254, 233, 240, 246, 214, 226, 238, 250, 251, 253, 255, 255, 255, 254, 254, 254, 238, 243, 247, 214, 226, 238, 242, 246, 249, 223, 232, 242, 214, 226, 238, 214, 226, 238, 214, 226, 238, 214, 226, 238, 240, 244, 249, 233, 239, 246, 215, 227, 238, 254, 254, 254, 255, 255, 255, 248, 250, 252, 214, 226, 238, 244, 247, 250, 119, 120, 124, 119, 120, 124, 148, 149, 152, 241, 241, 242, 255, 255, 255, 255, 255, 255, 242, 242, 243, 130, 131, 135, 119, 120, 124, 119, 120, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; unsigned int size_data_logo = sizeof(data_gmic_logo); #endif gmic-1.5.7.1/src/gmic.h0000664000175000017500000003713512216303503014727 0ustar dtschumpdtschump/* # # File : gmic.h # ( C++ header file ) # # Description : GREYC's Magic for Image Computing # ( http://gmic.sourceforge.net ) # This file is also a part of the CImg Library project. # ( http://cimg.sourceforge.net ) # # Note : Include this file in your C++ source code, if you # want to use the G'MIC interpreter in your own program. # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # */ #include #ifndef gmic_version #define gmic_version 1571 // Define environment variables. #ifndef gmic_split_compilation #define gmic_float #endif // #ifndef gmic_split_compilation #ifndef gmic_is_beta #define gmic_is_beta 0 #endif // #ifndef gmic_is_beta #ifndef cimg_verbosity #define cimg_verbosity 1 #endif // #ifndef cimg_verbosity #if defined(cimg_build) #define cimg_plugin "examples/gmic.cpp" #define cimg_include_file "../CImg.h" #elif defined(gmic_build) // #if defined(cimg_build) #define cimg_plugin "gmic.cpp" #define cimg_include_file "./CImg.h" #endif // #if defined(cimg_build) #ifdef cimg_include_file #include cimg_include_file #if cimg_OS==2 #include #elif cimg_OS==1 #include #endif // #if cimg_OS==2 // Define some special character codes used for replacement in double quoted strings. const char _dollar = 23, _lbrace = 24, _rbrace = 25, _comma = 26, _dquote = 28, _arobace = 29, _newline = 30; // Replace special characters in a string. inline char *gmic_strreplace(char *const str) { for (char *s = str ; *s; ++s) { const char c = *s; if (c<' ') *s = c==_dollar?'$':c==_lbrace?'{':c==_rbrace?'}':c==_comma?',': c==_dquote?'\"':c==_arobace?'@':c; } return str; } #else // #ifdef cimg_include_file #include #include #ifndef cimg_version namespace cimg_library { // Define the G'MIC image structure. //---------------------------------- template struct CImg { unsigned int _width; // Number of image columns (dimension along the X-axis). unsigned int _height; // Number of image lines (dimension along the Y-axis) unsigned int _depth; // Number of image slices (dimension along the Z-axis). unsigned int _spectrum; // Number of image channels (dimension along the C-axis). bool _is_shared; // Tells if the data buffer is shared by another structure. T *_data; // Pointer to the first pixel value. // Destructor. ~CImg(); // Empty constructor. CImg():_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) {} // Use to allocate a new image with specified dimension. CImg& assign(const unsigned int w, const unsigned int h=1, const unsigned int d=1, const unsigned int s=1); }; // Define the G'MIC image list structure. //--------------------------------------- template struct CImgList { unsigned int _width; // Number of images in the list. unsigned int _allocated_width; // Allocated items in the list (must be 2^N and >size). CImg *_data; // Pointer to the first image of the list. // Destructor. ~CImgList(); // Empty constructor. CImgList():_width(0),_allocated_width(0),_data(0) {} // Use to allocate a new image list with specified dimension. CImgList& assign(const unsigned int n); }; } #endif // #ifndef cimg_version #endif // #ifdef cimg_include_file #define gmic_image cimg_library::CImg #define gmic_list cimg_library::CImgList #define gmic_display cimg_library::CImgDisplay // Define the G'MIC exception class. //---------------------------------- struct gmic_exception { gmic_image _command, _message; gmic_exception() {} gmic_exception(const char *const command, const char *const message) { if (command) { _command.assign(std::strlen(command)+1,1,1,1); std::strcpy(_command._data,command); } if (message) { _message.assign(std::strlen(message)+1,1,1,1); std::strcpy(_message._data,message); } } const char *what() const { // Give the error message returned by the G'MIC interpreter. return _message._data?_message._data:""; } const char *command() const { return _command._data?_command._data:""; } }; // Define the G'MIC interpreter class. //------------------------------------ struct gmic { // Constructors - Destructors. // Use the methods below to create and run the G'MIC interpreter from your C++ source. // Destructor. ~gmic(); // Constructors. gmic(); gmic(const char *const commands_line, const char *const custom_commands=0, const bool include_default_commands=true, float *const p_progress=0, int *const p_cancel=0); template gmic(const int argc, const char *const *const argv, gmic_list& images, gmic_list& images_names, const char *const custom_commands=0, const bool include_default_commands=true, float *const p_progress=0, int *const p_cancel=0); template gmic(const char *const commands_line, gmic_list& images, gmic_list& images_names, const char *const custom_commands=0, const bool include_default_commands=true, float *const p_progress=0, int *const p_cancel=0); // Method to call parser on an already constructed gmic object. template gmic& parse(const char *const commands_line, gmic_list &images, gmic_list &images_names) { return parse(commands_line_to_CImgList(commands_line),images,images_names); } //-------------------------------------------------------------------------------------- // All functions below should be considered as 'private' and thus, should not be used // in your own C++ source code. Use them at your own risk. //-------------------------------------------------------------------------------------- template void _gmic(const char *const commands_line, gmic_list& images, gmic_list& images_names, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); gmic& add_commands(const char *const data_commands, gmic_list (&commands_names)[256], gmic_list (&commands)[256], gmic_list (&commands_has_arguments)[256]); gmic& add_commands(std::FILE *const file, gmic_list (&commands_names)[256], gmic_list (&commands)[256], gmic_list (&commands_has_arguments)[256]); gmic_image scope2string(const bool is_last_slash=true) const; gmic_image scope2string(const gmic_image& scope_selection, const bool is_last_slash=true) const; gmic_image selection2cimg(const char *const string, const unsigned int indice_max, const gmic_list& names, const char *const command, const bool is_selection, const bool allow_new_name, gmic_image& new_name); gmic_image selection2string(const gmic_image& selection, const gmic_list& images_names, const bool display_selection) const; gmic_list commands_line_to_CImgList(const char *const commands_line); template gmic_image substitute_item(const char *const source, gmic_list& images, gmic_list& images_names, unsigned int (&variables_sizes)[256]); gmic& print(const char *format, ...); template gmic& print(const gmic_list& list, const char *format, ...); template gmic& print(const gmic_list& list, const gmic_image& scope_selection, const char *format, ...); gmic& warn(const char *format, ...); template gmic& warn(const gmic_list& list, const char *format, ...); template gmic& warn(const gmic_list& list, const gmic_image& scope_selection, const char *format, ...); gmic& error(const char *format, ...); template gmic& error(const gmic_list& list, const char *format, ...); template gmic& error(const char *const command, const gmic_list& list, const char *format, ...); template gmic& error(const gmic_list& list, const gmic_image& scope_selection, const char *format, ...); template gmic& _arg_error(const gmic_list& list, const char *const command, const char *const argument); gmic& debug(const char *format, ...); template gmic& debug(const gmic_list& list, const char *format, ...); template gmic& print_images(const gmic_list& images, const gmic_list& images_names, const gmic_image& selection, const bool is_header=true); template gmic& display_images(const gmic_list& images, const gmic_list& images_names, const gmic_image& selection, unsigned int *const XYZ); template gmic& display_plots(const gmic_list& images, const gmic_list& images_names, const gmic_image& selection, const unsigned int plot_type, const unsigned int vertex_type, const double xmin, const double xmax, const double ymin, const double ymax); template gmic& display_objects3d(const gmic_list& images, const gmic_list& images_names, const gmic_image& selection); template gmic_image& check_image(const gmic_list& list, gmic_image& img); template const gmic_image& check_image(const gmic_list& list, const gmic_image& img); template gmic& remove_images(gmic_list& images, gmic_list& images_names, const gmic_image& selection, const unsigned int start, const unsigned int end); template gmic& parse(const gmic_list& commands_line, gmic_list &images, gmic_list &images_names) { unsigned int variables_sizes[256] = { 0 }; unsigned int position = 0; std::setlocale(LC_NUMERIC,"C"); scope.assign(1U); scope._data[0].assign(2,1,1,1); scope._data[0]._data[0] = '.'; scope._data[0]._data[1] = 0; dowhiles.assign(0U); repeatdones.assign(0U); status.assign(0U); is_start = true; is_quit = false; is_return = false; is_default_type = true; *progress = -1; return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic& _parse(const gmic_list& commands_line, unsigned int& position, gmic_list &images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_bool(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_uchar(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_char(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_ushort(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_short(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_uint(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_int(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_float(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); gmic& _parse_double(const gmic_list& commands_line, unsigned int& position, gmic_list& images, gmic_list &images_names, unsigned int (&variables_sizes)[256]); // Internal environment variables. #if cimg_display!=0 gmic_display instant_window[10]; #endif // #if cimg_display!=0 gmic_list commands[256], commands_names[256], commands_has_arguments[256], variables[256], variables_names[256], scope; gmic_list dowhiles, repeatdones; gmic_image background3d, light3d; gmic_image pose3d; gmic_image status; float focale3d, light3d_x, light3d_y, light3d_z, specular_lightness3d, specular_shininess3d, _progress, *progress; bool is_released, is_debug, is_start, is_quit, is_return, is_double3d, is_default_type, check_elif; int verbosity, render3d, renderd3d; volatile int _cancel, *cancel; unsigned int nb_carriages; unsigned long reference_time; }; // End of the 'gmic' class. #endif // #ifndef gmic_version // Local Variables: // mode: c++ // End: gmic-1.5.7.1/src/Makefile0000664000175000017500000004437412216303500015277 0ustar dtschumpdtschump# # File : Makefile # ( Makefile for GNU 'make' utility ) # # Description : Makefile for compiling : # # . the G'MIC command line tool (type 'make'). # . the G'MIC plug-in for GIMP (type 'make gimp'). # . the G'MIC interpreter, as a C++ library (type 'make lib'). # # ( http://gmic.sourceforge.net ) # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # #---------------------------------- # Set correct variables and paths. #---------------------------------- OS := $(shell uname) CC = g++ ifeq ($(OS),Linux) OS = Unix endif ifeq ($(OS),GNU/kFreeBSD) OS = Unix endif ifeq ($(OS),GNU) OS = Unix endif ifeq ($(OS),Darwin) PLUGINDIR = ~/Library/Application\ Support/Gimp/plug-ins USR = /opt/local else PLUGINDIR = `gimptool-2.0 --gimpplugindir`/plug-ins USR = /usr endif ifeq ($(OSTYPE),msys) EXE = .exe endif ifeq ($(CC),g++) IS_GCC = yes endif #------------------------------------------------ # Set compilation flags for build customization. #------------------------------------------------ # Flags to enable 'beta' version. IS_BETA_CFLAGS = -Dcimg_use_vt100 # Flags that are mandatory to compile 'gmic'. MANDATORY_CFLAGS += -Dgmic_build -I$(USR)/include MANDATORY_LDFLAGS += -L$(USR)/lib ifeq ($(IS_GCC),yes) MANDATORY_CFLAGS += -Wall -W MANDATORY_LDFLAGS += -lm endif MANDATORY_CFLAGS+=$(IS_BETA_CFLAGS) # Flags to enable debugging. DEBUG_CFLAGS = -Dcimg_use_vt100 -Dcimg_verbosity=3 -g # Flags to enable optimizations. ifeq ($(IS_GCC),yes) OPT_CFLAGS = -O3 -mtune=generic # -fno-tree-pre # -ffast-math endif ifeq ($(CC),icc) OPT_CFLAGS = -O3 -ipo -no-prec-div -override-limits endif # Flags to enable parallel processing. ifneq ($(OSTYPE),Darwin) PARALLEL_CFLAGS = -Dgmic_is_parallel ifneq ($(OSTYPE),msys) PARALLEL_LDFLAGS = -lpthread endif endif # Flags to enable image display, using X11 # (keep /usr/ dirname here since X11 is located in /usr/ on Mac too). # This requires the presence of the X11 include and library files. # (package 'libx11-dev' on Debian). X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" -I/usr/X11R6/include #-Dcimg_use_xrandr X11_LDFLAGS = -L/usr/X11R6/lib -lX11 -lpthread #-lXrandr # Flags to enable fast display, using XShm. # This requires the presence of the X11 extension include and library files. # (package 'libx11-dev' on Debian). XSHM_CFLAGS = -Dcimg_use_xshm XSHM_LDFLAGS = -L$(USR)/X11R6/lib -lXext # Flags to enable image display, using GDI32. # This requires the presence of the GDI32 include and library files. GDI32_CFLAGS = -Dcimg_display=2 -Dcimg_appname=\\\"gmic\\\" GDI32_LDFLAGS = -lgdi32 # Flags to enable native support for PNG image files, using the PNG library. # This requires the presence of the libpng include and library files. # (package 'libpng12-dev' on Debian). PNG_CFLAGS = -Dcimg_use_png PNG_LDFLAGS = -lpng -lz # Flags to enable native support for JPEG image files, using the JPEG library. # This requires the presence of the libjpeg include and library files. # (package 'libjpeg62-dev' on Debian). JPEG_CFLAGS = -Dcimg_use_jpeg JPEG_LDFLAGS = -ljpeg # Flags to enable native support for TIFF image files, using the TIFF library. # This requires the presence of the libtiff include and library files. # (package 'libtiff4-dev' on Debian). TIFF_CFLAGS = -Dcimg_use_tiff TIFF_LDFLAGS = -ltiff # Flags to enable native support for MINC2 image files, using the MINC2 library. # ( http://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_Users_Guide ) # (package 'libminc-dev' on Debian). MINC2_CFLAGS = -Dcimg_use_minc2 -I${HOME}/local/include MINC2_LDFLAGS = -lminc_io -lvolume_io2 -lminc2 -lnetcdf -lhdf5 -lz -L${HOME}/local/lib # Flags to enable native support for various video files, using the FFMPEG library. # This requires the presence of the FFMPEG include and library files. # (packages 'libavcodec-dev', 'libavutil-dev', 'libavformat-dev' and 'libswscale-dev' on Debian). FFMPEG_CFLAGS = -Dcimg_use_ffmpeg -D__STDC_CONSTANT_MACROS -I$(USR)/include/libavcodec -I$(USR)/include/libavformat -I$(USR)/include/libswscale -I$(USR)/include/ffmpeg FFMPEG_LDFLAGS = -lavcodec -lavformat -lswscale # Flags to enable native support for compressed .cimgz files, using the Zlib library. # This requires the presence of the Zlib include and library files. # (package 'zlib1g-dev' on Debian). ZLIB_CFLAGS = -Dcimg_use_zlib ZLIB_LDFLAGS = -lz # Flags to enable native support of webcams, using the OpenCV library. # This requires the presence of the OpenCV include and library files. # (package 'libcv3-2-dev' on Debian). ifeq ($(OS),Darwin) OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv OPENCV_LDFLAGS = `pkg-config opencv --libs` #-> Use this for OpenCV 2.2.0 ! else OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv # OPENCV_LDFLAGS = -lcv -lhighgui OPENCV_LDFLAGS = -lopencv_core -lopencv_highgui #-> Use this for OpenCV >= 2.2.0 ! endif # Flags to enable native support of most classical image file formats, using the GraphicsMagick++ library. # This requires the presence of the GraphicsMagick++ include and library files. # (package 'libgraphicsmagick++1-dev' on Debian). MAGICK_CFLAGS = -Dcimg_use_magick -I$(USR)/include/GraphicsMagick ifeq ($(OS),Darwin) MAGICK_LDFLAGS = -L$(USR)/lib -lGraphicsMagick++ -lGraphicsMagick -llcms -ltiff -lfreetype -ljpeg -lpng -lbz2 -lxml2 -lz -lm -lltdl else MAGICK_LDFLAGS = -lGraphicsMagick++ endif # Flags to enable native support of EXR file format, using the OpenEXR library/ # This requires the presence of the OpenEXR include and library files. # (package 'libopenexr-dev' on Debian). EXR_CFLAGS = -Dcimg_use_openexr -I$(USR)/include/OpenEXR EXR_LDFLAGS = -lIlmImf -lHalf # Flags to enable the use of the FFTW3 library. # This requires the presence of the FFTW3 include and library files. # (package 'libfftw3-dev' on Debian). FFTW_CFLAGS = -Dcimg_use_fftw3 FFTW_LDFLAGS = -lfftw3 -lfftw3_threads ifeq ($(OSTYPE),msys) FFTW_LDFLAGS = -lfftw3-3 endif # Flags to enable the use of the BOARD library. # This requires the presence of the BOARD include and library files. # (no packages exist for Debian at this time). BOARD_CFLAGS = -Dcimg_use_board BOARD_LDFLAGS = -lboard #---------------------------------------------------------------- # Predefined sets of flags for different default configurations. #---------------------------------------------------------------- # Unix : Standard build. STD_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(PNG_CFLAGS) \ $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ $(EXR_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) $(FFMPEG_CFLAGS) $(XSHM_CFLAGS) # $(MAGICK_CFLAGS) STD_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(PNG_LDFLAGS) \ $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ $(EXR_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) $(FFMPEG_LDFLAGS) $(XSHM_LDFLAGS) # $(MAGICK_LDFLAGS) # Unix : Minimal build. MINIMAL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) ${TIFF_CFLAGS} ${PNG_CFLAGS} $(ZLIB_CFLAGS) $(FFTW_CFLAGS) # $(OPENCV_CFLAGS) MINIMAL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(DEBUG_LDFLAGS) $(X11_LDFLAGS) ${TIFF_LDFLAGS} ${PNG_LDFLAGS} $(ZLIB_LDFLAGS) $(FFTW_LDFLAGS) # $(OPENCV_LDFLAGS) # Unix : Static build. STATIC_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) $(FFTW_CFLAGS) -Dcimg_display=0 STATIC_UNIX_LDFLAGS = $(PARALLEL_LDFLAGS) \ /usr/lib/libpng.a \ /usr/lib/libjpeg.a \ /usr/lib/libtiff.a \ /usr/lib/libz.a \ /usr/lib/libfftw3.a /usr/lib/libfftw3_threads.a # Unix : Custom build. CUST_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(X11_CFLAGS) $(XSHM_CFLAGS) $(PNG_CFLAGS) \ $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(ZLIB_CFLAGS) \ $(FFTW_CFLAGS) $(EXR_CFLAGS) $(OPENCV_CFLAGS) # $(FFMPEG_CFLAGS) $(MAGICK_CFLAGS) $(BOARD_CFLAGS) $(MINC2_CFLAGS) CUST_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(DEBUG_LDFLAGS) $(X11_LDFLAGS) $(XSHM_LDFLAGS) $(PNG_LDFLAGS) \ $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(ZLIB_LDFLAGS) \ $(FFTW_LDFLAGS) $(EXR_LDFLAGS) $(OPENCV_LDFLAGS) # $(FFMPEG_LDFLAGS) $(MAGICK_LDFLAGS) $(BOARD_LDFLAGS) $(MINC2_LDFLAGS) # Windows : Standard build. STD_WINDOWS_CFLAGS= $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(GDI32_CFLAGS) $(ZLIB_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS) $(FFTW_CFLAGS) STD_WINDOWS_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(GDI32_LDFLAGS) $(ZLIB_LDFLAGS) $(PNG_LDFLAGS) $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) $(FFTW_LDFLAGS) # Windows : Minimal build. MINIMAL_WINDOWS_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(DEBUG_CFLAGS) $(GDI32_CFLAGS) MINIMAL_WINDOWS_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(DEBUG_LDFLAGS) $(GDI32_LDFLAGS) # Mac-OSX : Standard build. STD_MACOSX_CFLAGS= $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(X11_CFLAGS) $(ZLIB_CFLAGS) $(PNG_CFLAGS) \ $(JPEG_CFLAGS) $(TIFF_CFLAGS) \ $(EXR_CFLAGS) $(FFTW_CFLAGS) # $(MAGICK_CFLAGS) STD_MACOSX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(X11_LDFLAGS) $(ZLIB_LDFLAGS) \ $(PNG_LDFLAGS) $(JPEG_LDFLAGS) $(TIFF_LDFLAGS) \ $(EXR_LDFLAGS) $(FFTW_LDFLAGS) # $(MAGICK_LDFLAGS) # GIMP plug-in : Standard build. STD_GIMP_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(FFTW_CFLAGS) $(PNG_CFLAGS) $(ZLIB_CFLAGS) ${IS_BETA_CFLAGS} -Dcimg_display=0 -Dcimg_use_rng STD_GIMP_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(FFTW_LDFLAGS) $(PNG_LDFLAGS) $(ZLIB_LDFLAGS) ifeq ($(OSTYPE),msys) STD_GIMP_LDFLAGS += -mwindows -lpthread endif # Libgmic : Standard build. STD_LIB_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(FFTW_CFLAGS) -Dcimg_display=0 STD_LIB_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(FFTW_LDFLAGS) # GMICol : Standard build. GMICOL_UNIX_CFLAGS = $(MANDATORY_CFLAGS) $(PARALLEL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(ZLIB_CFLAGS) $(FFTW_CFLAGS) -Dcimg_display=0 GMICOL_UNIX_LDFLAGS = $(MANDATORY_LDFLAGS) $(PARALLEL_LDFLAGS) $(PNG_LDFLAGS) $(JPEG_LDFLAGS) $(ZLIB_LDFLAGS) /usr/lib/libfftw3.a /usr/lib/libfftw3_threads.a #-------------------------- # Define Makefile entries. #-------------------------- # Main entries all: ifeq ($(OS),Unix) @echo "**" @echo "** Generic unix configuration." @echo "**" $(MAKE) linux $(MAKE) gimp $(MAKE) lib $(MAKE) zart else ifeq ($(OS),Darwin) @echo "**" @echo "** MacOSX configuration." @echo "**" $(MAKE) macosx $(MAKE) gimp $(MAKE) zart else @echo "**" @echo "** Windows configuration." @echo "**" $(MAKE) windows $(MAKE) gimp endif endif gimp: $(MAKE) "CFLAGS=$(STD_GIMP_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_GIMP_LDFLAGS) $(OPT_LDFLAGS)" "STRIP_EXE=1" gmic_gimp lib: $(MAKE) "CFLAGS=$(STD_LIB_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_LIB_LDFLAGS) $(OPT_LDFLAGS)" gmic_lib zart: lib ifneq ($(OS),Darwin) cd ../zart && qmake-qt4 zart.pro && $(MAKE) && strip zart else cd ../zart && qmake zart.pro && $(MAKE) "CFLAGS=$(STD_MACOSX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_MACOSX_LDFLAGS) $(OPT_LDFLAGS)" endif # Entries for other configurations. gmicol: $(MAKE) "CFLAGS+=$(GMICOL_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(GMICOL_UNIX_LDFLAGS)" gmic_minimal static: $(MAKE) "CFLAGS+=$(STATIC_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STATIC_UNIX_LDFLAGS)" gmic_minimal minimal: $(MAKE) "CFLAGS+=$(MINIMAL_UNIX_CFLAGS)" "LDFLAGS+=$(MINIMAL_UNIX_LDFLAGS)" gmic_minimal linux: $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_gmic custom: $(MAKE) "CFLAGS=$(CUST_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(CUST_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_gmic solaris: $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS) -R$(USR)/X11R6/lib -lrt -lnsl -lsocket" "STRIP_EXE=1" gmic_gmic macosx: $(MAKE) "CFLAGS=$(STD_MACOSX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_MACOSX_LDFLAGS) $(OPT_LDFLAGS)" gmic_gmic windows: $(MAKE) "CFLAGS=$(STD_WINDOWS_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_WINDOWS_LDFLAGS)" "STRIP_EXE=1" gmic_gmic wminimal: $(MAKE) "CFLAGS=$(MINIMAL_WINDOWS_CFLAGS)" "LDFLAGS=$(MINIMAL_WINDOWS_LDFLAGS)" gmic_minimal # Internal rules to build compilation modules. gmic_lib.o: gmic.cpp gmic_def.h $(CC) -o gmic_lib.o -c gmic.cpp -fPIC $(CFLAGS) -Dgmic_float_only gmic_lib: gmic_lib.o ar rcs libgmic.a gmic_lib.o ifneq ($(OS),Darwin) $(CC) -shared -Wl,-soname,libgmic.so.1 -o libgmic.so gmic_lib.o $(LDFLAGS) $(CC) -o gmic_use_lib gmic_use_lib.cpp -L. -lgmic $(FFTW_LDFLAGS) else $(CC) -shared -o libgmic.so gmic_lib.o $(LDFLAGS) endif gmic_gimp.o: gmic.cpp gmic_def.h $(CC) -o gmic_gimp.o -c gmic.cpp $(CFLAGS) -Dgmic_gimp -Dgmic_float_only gmic_gimp : gmic_gimp.o gmic_gimp.cpp $(CC) -o gmic_gimp gmic_gimp.cpp gmic_gimp.o `gimptool-2.0$(EXE) --cflags` $(CFLAGS) `gimptool-2.0$(EXE) --libs` $(LDFLAGS) strip gmic_gimp$(EXE) gmic_minimal: gmic.cpp $(CC) -o gmic gmic.cpp $(CFLAGS) -Dgmic_float_only -Dgmic_main $(LDFLAGS) gmic_bool.o: gmic.cpp $(CC) -o gmic_bool.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_bool gmic_uchar.o: gmic.cpp $(CC) -o gmic_uchar.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_uchar gmic_char.o: gmic.cpp $(CC) -o gmic_char.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_char gmic_ushort.o: gmic.cpp $(CC) -o gmic_ushort.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_ushort gmic_short.o: gmic.cpp $(CC) -o gmic_short.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_short gmic_uint.o: gmic.cpp $(CC) -o gmic_uint.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_uint gmic_int.o: gmic.cpp $(CC) -o gmic_int.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_int gmic_float.o: gmic.cpp $(CC) -o gmic_float.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_float -Dgmic_main gmic_double.o: gmic.cpp $(CC) -o gmic_double.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_double gmic_gmic: gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o gmic_def.h $(CC) -o gmic gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o $(LDFLAGS) strip gmic$(EXE) def: @echo "#ifndef gmic_gimp" > gmic_def.h \gmic gmic_def.gmic raw:gmic_def.gmic,char -compress_gmic -type char -o -.h | sed 's/unnamed/gmic_def/' | sed 's/ \};/, 0 \};\n\nunsigned int size_data_gmic_def = sizeof(data_gmic_def);\n/g' >> gmic_def.h @echo "#else" >> gmic_def.h \gmic gmic_def.gmic -update_gmic_gimp @.,0 raw:$(HOME)/.update@..gmic,char -compress_gmic_gimp -type char -o -.h | sed 's/unnamed/gmic_def/' | sed 's/ \};/, 0 \};\n\nunsigned int size_data_gmic_def = sizeof(data_gmic_def);\n/g' >> gmic_def.h \gmic -v - ../html/img/logoGMIC.ppm -permute cxyz -type uchar -o -.h | sed 's/unnamed/gmic_logo/' >> gmic_def.h @echo "unsigned int size_data_logo = sizeof(data_gmic_logo);" >> gmic_def.h @echo "#endif" >> gmic_def.h @echo >>gmic_def.h # Install/uninstall/clean procedures. install: mkdir -p $(DESTDIR)$(PLUGINDIR)/ cp -f gmic_gimp $(DESTDIR)$(PLUGINDIR)/ mkdir -p $(DESTDIR)$(USR)/bin/ cp -f gmic $(DESTDIR)$(USR)/bin/ mkdir -p $(DESTDIR)$(USR)/include/ cp -f gmic.h $(DESTDIR)$(USR)/include/ ifneq ($(OS),Darwin) mkdir -p $(DESTDIR)$(USR)/share mkdir -p $(DESTDIR)$(USR)/share/zart cp -f ../zart/zart $(DESTDIR)$(USR)/bin/zart mkdir -p $(DESTDIR)$(USR)/lib cp -f libgmic.so $(DESTDIR)$(USR)/lib/libgmic.so.1.5.7 ln -s libgmic.so.1.5.7 $(DESTDIR)$(USR)/lib/libgmic.so.1.5 ln -s libgmic.so.1.5 $(DESTDIR)$(USR)/lib/libgmic.so.1 ln -s libgmic.so.1 $(DESTDIR)$(USR)/lib/libgmic.so endif mkdir -p $(DESTDIR)$(USR)/share/man/ mkdir -p $(DESTDIR)$(USR)/share/man/man1/ mkdir -p $(DESTDIR)$(USR)/share/man/fr/man1/ cp -f ../man/gmic.1.gz $(DESTDIR)$(USR)/share/man/man1/gmic.1.gz cp -f ../man/gmic.1.gz $(DESTDIR)$(USR)/share/man/fr/man1/gmic.1.gz if test -d /etc/bash_completion.d/; then mkdir -p $(DESTDIR)/etc/bash_completion.d/; cp -f gmic_bashcompletion.sh $(DESTDIR)/etc/bash_completion.d/gmic; fi if test -d /opt/local/etc/bash_completion.d/; then mkdir -p $(DESTDIR)/opt/local/etc/bash_completion.d/; cp -f gmic_bashcompletion.sh $(DESTDIR)/opt/local/etc/bash_completion.d/gmic; fi uninstall: rm -f $(DESTDIR)$(USR)/bin/gmic rm -f $(DESTDIR)$(USR)/include/gmic.h rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1.5.7 rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1.5 rm -f $(DESTDIR)$(USR)/lib/libgmic.so.1 rm -f $(DESTDIR)$(USR)/lib/libgmic.so rm -rf $(DESTDIR)$(USR)/share/doc/gmic/ rm -f $(DESTDIR)$(USR)/share/man/man1/gmic.1.gz rm -f $(DESTDIR)$(USR)/share/man/fr/man1/gmic.1.gz rm -f $(DESTDIR)$(USR)/bin/zart rm -rf $(DESTDIR)$(USR)/share/zart/ distclean: clean clean: rm -rf gmic*.o gmic gmic_gimp gmic_use_lib libgmic* *~ # End of Makefile gmic-1.5.7.1/src/gmic_bashcompletion.sh0000755000175000017500000031255312216303462020206 0ustar dtschumpdtschump# # Bash completion rules for 'gmic'. # # This file has been generated automatically. # Do not edit! # # This file should be copied/renamed in '/etc/bash_completion.d/gmic'. # _gmic_def() { local cur prev opts coms COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" opts="\ -debug --debug\ -h --h\ -help --help\ -version --version\ -apply_camera --apply_camera\ -camera --camera\ -m --m\ -command --command\ -d --d\ -display --display\ -d0 --d0\ -display0 --display0\ -d3d --d3d\ -display3d --display3d\ -da --da\ -display_array --display_array\ -dfft --dfft\ -display_fft --display_fft\ -dg --dg\ -display_graph --display_graph\ -dh --dh\ -display_histogram --display_histogram\ -dp --dp\ -display_polar --display_polar\ -drgba --drgba\ -display_rgba --display_rgba\ -dt --dt\ -display_tensors --display_tensors\ -dw --dw\ -display_warp --display_warp\ -document_gmic --document_gmic\ -e --e\ -echo --echo\ -echo_file --echo_file\ -echo_stdout --echo_stdout\ -function1d --function1d\ -gmicky --gmicky\ -gmicky_wilber --gmicky_wilber\ -i --i\ -input --input\ -o --o\ -output --output\ -on --on\ -outputn --outputn\ -op --op\ -outputp --outputp\ -ow --ow\ -outputw --outputw\ -plot --plot\ -p --p\ -print --print\ -rainbow_lut --rainbow_lut\ -roddy --roddy\ -remove_duplicates --remove_duplicates\ -remove_empty --remove_empty\ -select --select\ -sh --sh\ -shared --shared\ -srand --srand\ -testimage2d --testimage2d\ -text2img --text2img\ -type --type\ -uncommand --uncommand\ -uniform_distribution --uniform_distribution\ -up --up\ -update --update\ -v --v\ -verbose --verbose\ -wait --wait\ -warn --warn\ -w --w\ -window --window\ -k --k\ -keep --keep\ -mv --mv\ -move --move\ -nm --nm\ -name --name\ -rm --rm\ -remove --remove\ -rv --rv\ -reverse --reverse\ -sort_list --sort_list\ -sort_str --sort_str\ -abs --abs\ -acos --acos\ -+ --+\ -add --add\ -and --and\ -asin --asin\ -atan --atan\ -atan2 --atan2\ -<< --<<\ -bsl --bsl\ ->> -->>\ -bsr --bsr\ -cos --cos\ -cosh --cosh\ -/ --/\ -div --div\ -== --==\ -eq --eq\ -exp --exp\ ->= -->=\ -ge --ge\ -> -->\ -gt --gt\ -<= --<=\ -le --le\ -< --<\ -lt --lt\ -log --log\ -log10 --log10\ -log2 --log2\ -max --max\ -// --//\ -mdiv --mdiv\ -min --min\ -% --%\ -mod --mod\ -** --**\ -mmul --mmul\ -* --*\ -mul --mul\ -!= --!=\ -neq --neq\ -or --or\ -^ --^\ -pow --pow\ -rol --rol\ -ror --ror\ -sign --sign\ -sin --sin\ -sinc --sinc\ -sinh --sinh\ -sqr --sqr\ -sqrt --sqrt\ -- ---\ -sub --sub\ -tan --tan\ -tanh --tanh\ -xor --xor\ -apply_curve --apply_curve\ -apply_gamma --apply_gamma\ -balance_gamma --balance_gamma\ -complex2polar --complex2polar\ -cumul --cumul\ -c --c\ -cut --cut\ -discard --discard\ -eigen2tensor --eigen2tensor\ -endian --endian\ -equalize --equalize\ -f --f\ -fill --fill\ -float2int8 --float2int8\ -int82float --int82float\ -index --index\ -image_integral --image_integral\ -map --map\ -map_clut --map_clut\ -mix_channels --mix_channels\ -negative --negative\ -noise --noise\ -norm --norm\ -n --n\ -normalize --normalize\ -normalize_sum --normalize_sum\ -orientation --orientation\ -otsu --otsu\ -polar2complex --polar2complex\ -quantize --quantize\ -rand --rand\ -replace --replace\ -replace_inf --replace_inf\ -replace_nan --replace_nan\ -replace_seq --replace_seq\ -round --round\ -roundify --roundify\ -= --=\ -set --set\ -threshold --threshold\ -t2 --t2\ -threshold2 --threshold2\ -vector2tensor --vector2tensor\ -apply_channels --apply_channels\ -autoindex --autoindex\ -bayer2rgb --bayer2rgb\ -cmy2rgb --cmy2rgb\ -cmyk2rgb --cmyk2rgb\ -colormap --colormap\ -compose_channels --compose_channels\ -direction2rgb --direction2rgb\ -ditheredbw --ditheredbw\ -fc --fc\ -fill_color --fill_color\ -gradient2rgb --gradient2rgb\ -hsi2rgb --hsi2rgb\ -hsi82rgb --hsi82rgb\ -hsl2rgb --hsl2rgb\ -hsl82rgb --hsl82rgb\ -hsv2rgb --hsv2rgb\ -hsv82rgb --hsv82rgb\ -lab2lch --lab2lch\ -lab2rgb --lab2rgb\ -lab82rgb --lab82rgb\ -lch2lab --lch2lab\ -lch2rgb --lch2rgb\ -lch82rgb --lch82rgb\ -luminance --luminance\ -mix_rgb --mix_rgb\ -pseudogray --pseudogray\ -replace_color --replace_color\ -rgb2bayer --rgb2bayer\ -rgb2cmy --rgb2cmy\ -rgb2cmyk --rgb2cmyk\ -rgb2hsi --rgb2hsi\ -rgb2hsi8 --rgb2hsi8\ -rgb2hsl --rgb2hsl\ -rgb2hsl8 --rgb2hsl8\ -rgb2hsv --rgb2hsv\ -rgb2hsv8 --rgb2hsv8\ -rgb2lab --rgb2lab\ -rgb2lab8 --rgb2lab8\ -rgb2lch --rgb2lch\ -rgb2lch8 --rgb2lch8\ -rgb2luv --rgb2luv\ -rgb2srgb --rgb2srgb\ -rgb2xyz --rgb2xyz\ -rgb2xyz8 --rgb2xyz8\ -rgb2ycbcr --rgb2ycbcr\ -rgb2yuv --rgb2yuv\ -rgb2yuv8 --rgb2yuv8\ -remove_opacity --remove_opacity\ -select_color --select_color\ -sepia --sepia\ -solarize --solarize\ -split_opacity --split_opacity\ -srgb2rgb --srgb2rgb\ -to_a --to_a\ -to_color --to_color\ -to_colormode --to_colormode\ -to_gray --to_gray\ -to_graya --to_graya\ -to_pseudogray --to_pseudogray\ -to_rgb --to_rgb\ -to_rgba --to_rgba\ -transfer_colors --transfer_colors\ -xyz2rgb --xyz2rgb\ -xyz82rgb --xyz82rgb\ -ycbcr2rgb --ycbcr2rgb\ -yuv2rgb --yuv2rgb\ -yuv82rgb --yuv82rgb\ -a --a\ -append --append\ -append_tiles --append_tiles\ -autocrop --autocrop\ -autocrop_components --autocrop_components\ -autocrop_seq --autocrop_seq\ -channels --channels\ -columns --columns\ -z --z\ -crop --crop\ -diagonal --diagonal\ -elevate --elevate\ -expand_x --expand_x\ -expand_xy --expand_xy\ -expand_xyz --expand_xyz\ -expand_y --expand_y\ -expand_z --expand_z\ -mirror --mirror\ -permute --permute\ -r --r\ -resize --resize\ -pow2 --pow2\ -rr2d --rr2d\ -resize_ratio2d --resize_ratio2d\ -r2dx --r2dx\ -resize2dx --resize2dx\ -r2dy --r2dy\ -resize2dy --resize2dy\ -r3dx --r3dx\ -resize3dx --resize3dx\ -r3dy --r3dy\ -resize3dy --resize3dy\ -r3dz --r3dz\ -resize3dz --resize3dz\ -rotate --rotate\ -rotate_tileable --rotate_tileable\ -rows --rows\ -scale2x --scale2x\ -scale3x --scale3x\ -shift --shift\ -shrink_x --shrink_x\ -shrink_xy --shrink_xy\ -shrink_xyz --shrink_xyz\ -shrink_y --shrink_y\ -shrink_z --shrink_z\ -slices --slices\ -sort --sort\ -s --s\ -split --split\ -split_tiles --split_tiles\ -y --y\ -unroll --unroll\ -upscale_smart --upscale_smart\ -warp --warp\ -bandpass --bandpass\ -bilateral --bilateral\ -b --b\ -blur --blur\ -blur_angular --blur_angular\ -blur_linear --blur_linear\ -blur_radial --blur_radial\ -blur_selective --blur_selective\ -blur_x --blur_x\ -blur_xy --blur_xy\ -blur_xyz --blur_xyz\ -blur_y --blur_y\ -blur_z --blur_z\ -bokeh --bokeh\ -compose_freq --compose_freq\ -convolve --convolve\ -convolve_fft --convolve_fft\ -correlate --correlate\ -cross_correlation --cross_correlation\ -curvature --curvature\ -deblur --deblur\ -deblur_goldmeinel --deblur_goldmeinel\ -deblur_richardsonlucy --deblur_richardsonlucy\ -deconvolve_fft --deconvolve_fft\ -deinterlace --deinterlace\ -denoise --denoise\ -denoise_haar --denoise_haar\ -deriche --deriche\ -dilate --dilate\ -dilate_circ --dilate_circ\ -dilate_oct --dilate_oct\ -divergence --divergence\ -dog --dog\ -diffusiontensors --diffusiontensors\ -edges --edges\ -eikonal --eikonal\ -erode --erode\ -erode_circ --erode_circ\ -erode_oct --erode_oct\ -fft --fft\ -g --g\ -gradient --gradient\ -gradient_orientation --gradient_orientation\ -gradient_norm --gradient_norm\ -haar --haar\ -heat_flow --heat_flow\ -hessian --hessian\ -iee --iee\ -ifft --ifft\ -ihaar --ihaar\ -inn --inn\ -inpaint --inpaint\ -inpaint_flow --inpaint_flow\ -kuwahara --kuwahara\ -laplacian --laplacian\ -lic --lic\ -map_tones --map_tones\ -map_tones_fast --map_tones_fast\ -meancurvature_flow --meancurvature_flow\ -median --median\ -normalize_local --normalize_local\ -normalized_cross_correlation --normalized_cross_correlation\ -phase_correlation --phase_correlation\ -pde_flow --pde_flow\ -red_eye --red_eye\ -remove_hotpixels --remove_hotpixels\ -remove_pixels --remove_pixels\ -repair --repair\ -sharpen --sharpen\ -smooth --smooth\ -split_freq --split_freq\ -solidify --solidify\ -solidify_linear --solidify_linear\ -solve_poisson --solve_poisson\ -structuretensors --structuretensors\ -tv_flow --tv_flow\ -unsharp --unsharp\ -unsharp_octave --unsharp_octave\ -vanvliet --vanvliet\ -watermark_fourier --watermark_fourier\ -watershed --watershed\ -area --area\ -area_fg --area_fg\ -barycenter --barycenter\ -displacement --displacement\ -distance --distance\ -float2fft8 --float2fft8\ -fft82float --fft82float\ -fftpolar --fftpolar\ -histogram --histogram\ -histogram_cumul --histogram_cumul\ -histogram_pointwise --histogram_pointwise\ -hough --hough\ -ifftpolar --ifftpolar\ -isophotes --isophotes\ -label --label\ -label_fg --label_fg\ -max_patch --max_patch\ -min_patch --min_patch\ -minimal_path --minimal_path\ -mse --mse\ -patches --patches\ -plot2value --plot2value\ -pointcloud --pointcloud\ -psnr --psnr\ -segment_watershed --segment_watershed\ -skeleton --skeleton\ -ssd_patch --ssd_patch\ -thinning --thinning\ -tones --tones\ -topographic_map --topographic_map\ -axes --axes\ -ball --ball\ -chessboard --chessboard\ -cie1931 --cie1931\ -circle --circle\ -ellipse --ellipse\ -flood --flood\ -gaussian --gaussian\ -graph --graph\ -grid --grid\ -j --j\ -image --image\ -line --line\ -mandelbrot --mandelbrot\ -marble --marble\ -maze --maze\ -maze_mask --maze_mask\ -object3d --object3d\ -pack_sprites --pack_sprites\ -piechart --piechart\ -plasma --plasma\ -point --point\ -polka_dots --polka_dots\ -polygon --polygon\ -quiver --quiver\ -rectangle --rectangle\ -rorschach --rorschach\ -sierpinski --sierpinski\ -snowflake --snowflake\ -spiralbw --spiralbw\ -spline --spline\ -t --t\ -text --text\ -text_outline --text_outline\ -triangle_shade --triangle_shade\ -truchet --truchet\ -turbulence --turbulence\ -yinyang --yinyang\ -dijkstra --dijkstra\ -eigen --eigen\ -invert --invert\ -solve --solve\ -svd --svd\ -transpose --transpose\ -trisolve --trisolve\ -+3d --+3d\ -add3d --add3d\ -animate3d --animate3d\ -apply_camera3d --apply_camera3d\ -apply_pose3d --apply_pose3d\ -axes3d --axes3d\ -b3d --b3d\ -background3d --background3d\ -box3d --box3d\ -c3d --c3d\ -center3d --center3d\ -circle3d --circle3d\ -circles3d --circles3d\ -col3d --col3d\ -color3d --color3d\ -colorcube3d --colorcube3d\ -cone3d --cone3d\ -cup3d --cup3d\ -cylinder3d --cylinder3d\ -distribution3d --distribution3d\ -/3d --/3d\ -div3d --div3d\ -db3d --db3d\ -double3d --double3d\ -elevation3d --elevation3d\ -empty3d --empty3d\ -extrude3d --extrude3d\ -f3d --f3d\ -focale3d --focale3d\ -gaussians3d --gaussians3d\ -gmic3d --gmic3d\ -gyroid3d --gyroid3d\ -histogram3d --histogram3d\ -image6cube3d --image6cube3d\ -imagecube3d --imagecube3d\ -imageplane3d --imageplane3d\ -imagepyramid3d --imagepyramid3d\ -imagerubik3d --imagerubik3d\ -imagesphere3d --imagesphere3d\ -isoline3d --isoline3d\ -isosurface3d --isosurface3d\ -label_points3d --label_points3d\ -lathe3d --lathe3d\ -l3d --l3d\ -light3d --light3d\ -line3d --line3d\ -lissajous3d --lissajous3d\ -m3d --m3d\ -mode3d --mode3d\ -md3d --md3d\ -moded3d --moded3d\ -*3d --*3d\ -mul3d --mul3d\ -n3d --n3d\ -normalize3d --normalize3d\ -o3d --o3d\ -opacity3d --opacity3d\ -parametric3d --parametric3d\ -pca_patch3d --pca_patch3d\ -plane3d --plane3d\ -point3d --point3d\ -pointcloud3d --pointcloud3d\ -pose3d --pose3d\ -p3d --p3d\ -primitives3d --primitives3d\ -projections3d --projections3d\ -pyramid3d --pyramid3d\ -quadrangle3d --quadrangle3d\ -rv3d --rv3d\ -reverse3d --reverse3d\ -r3d --r3d\ -rotate3d --rotate3d\ -rotation3d --rotation3d\ -sierpinski3d --sierpinski3d\ -snapshot3d --snapshot3d\ -sl3d --sl3d\ -specl3d --specl3d\ -ss3d --ss3d\ -specs3d --specs3d\ -sphere3d --sphere3d\ -spherical3d --spherical3d\ -s3d --s3d\ -spline3d --spline3d\ -split3d --split3d\ -sprite3d --sprite3d\ -sprites3d --sprites3d\ -star3d --star3d\ -streamline3d --streamline3d\ --3d ---3d\ -sub3d --sub3d\ -superformula3d --superformula3d\ -text_pointcloud3d --text_pointcloud3d\ -text3d --text3d\ -t3d --t3d\ -texturize3d --texturize3d\ -torus3d --torus3d\ -triangle3d --triangle3d\ -volume3d --volume3d\ -weird3d --weird3d\ -apply_parallel --apply_parallel\ -apply_parallel_overlap --apply_parallel_overlap\ -check --check\ -continue --continue\ -break --break\ -do --do\ -done --done\ -elif --elif\ -else --else\ -endif --endif\ -endl --endl\ -endlocal --endlocal\ -error --error\ -x --x\ -exec --exec\ -if --if\ -l --l\ -local --local\ -onfail --onfail\ -parallel --parallel\ -progress --progress\ -q --q\ -quit --quit\ -repeat --repeat\ -return --return\ -rprogress --rprogress\ -skip --skip\ -u --u\ -status --status\ -while --while\ -array --array\ -array_fade --array_fade\ -array_mirror --array_mirror\ -array_random --array_random\ -frame --frame\ -frame_blur --frame_blur\ -frame_cube --frame_cube\ -frame_fuzzy --frame_fuzzy\ -frame_painting --frame_painting\ -frame_pattern --frame_pattern\ -frame_round --frame_round\ -frame_x --frame_x\ -frame_xy --frame_xy\ -frame_xyz --frame_xyz\ -frame_y --frame_y\ -imagegrid --imagegrid\ -linearize_tiles --linearize_tiles\ -quadratize_tiles --quadratize_tiles\ -rotate_tiles --rotate_tiles\ -shift_tiles --shift_tiles\ -taquin --taquin\ -tunnel --tunnel\ -boxfitting --boxfitting\ -cartoon --cartoon\ -circlism --circlism\ -color_ellipses --color_ellipses\ -cubism --cubism\ -dotsbw --dotsbw\ -draw_whirl --draw_whirl\ -drawing --drawing\ -drop_shadow --drop_shadow\ -ellipsionism --ellipsionism\ -fire_edges --fire_edges\ -glow --glow\ -halftone --halftone\ -hardsketchbw --hardsketchbw\ -hearts --hearts\ -houghsketchbw --houghsketchbw\ -lightrays --lightrays\ -light_relief --light_relief\ -mosaic --mosaic\ -old_photo --old_photo\ -pencilbw --pencilbw\ -polaroid --polaroid\ -poster_edges --poster_edges\ -rodilius --rodilius\ -stained_glass --stained_glass\ -stars --stars\ -sketchbw --sketchbw\ -sponge --sponge\ -stencil --stencil\ -stencilbw --stencilbw\ -tetris --tetris\ -warhol --warhol\ -weave --weave\ -whirls --whirls\ -euclidean2polar --euclidean2polar\ -deform --deform\ -fisheye --fisheye\ -flower --flower\ -kaleidoscope --kaleidoscope\ -map_sphere --map_sphere\ -polar2euclidean --polar2euclidean\ -raindrops --raindrops\ -ripple --ripple\ -rotoidoscope --rotoidoscope\ -symmetrize --symmetrize\ -transform_polar --transform_polar\ -twirl --twirl\ -warp_perspective --warp_perspective\ -water --water\ -wave --wave\ -wind --wind\ -zoom --zoom\ -cracks --cracks\ -light_patch --light_patch\ -noise_hurl --noise_hurl\ -pixelize --pixelize\ -shade_stripes --shade_stripes\ -shadow_patch --shadow_patch\ -spread --spread\ -stripes_y --stripes_y\ -texturize_canvas --texturize_canvas\ -texturize_paper --texturize_paper\ -vignette --vignette\ -watermark_visible --watermark_visible\ -blend --blend\ -blend_edges --blend_edges\ -blend_fade --blend_fade\ -blend_median --blend_median\ -fade_diamond --fade_diamond\ -fade_linear --fade_linear\ -fade_radial --fade_radial\ -fade_x --fade_x\ -fade_y --fade_y\ -fade_z --fade_z\ -animate --animate\ -morph --morph\ -register_nonrigid --register_nonrigid\ -register_rigid --register_rigid\ -transition_plasma --transition_plasma\ -transition3d --transition3d\ -x_blobs --x_blobs\ -x_fire --x_fire\ -x_fireworks --x_fireworks\ -x_fisheye --x_fisheye\ -x_fourier --x_fourier\ -x_histogram --x_histogram\ -x_hough --x_hough\ -x_jawbreaker --x_jawbreaker\ -x_life --x_life\ -x_light --x_light\ -x_mandelbrot --x_mandelbrot\ -x_minesweeper --x_minesweeper\ -x_minimal_path --x_minimal_path\ -x_pacman --x_pacman\ -x_paint --x_paint\ -x_plasma --x_plasma\ -x_quantize_rgb --x_quantize_rgb\ -x_reflection3d --x_reflection3d\ -x_rubber3d --x_rubber3d\ -x_shadebobs --x_shadebobs\ -x_spline --x_spline\ -x_tetris --x_tetris\ -x_tictactoe --x_tictactoe\ -x_whirl --x_whirl\ -output_pink3d --output_pink3d\ -pink --pink\ -pink_grayskel --pink_grayskel\ -pink_heightmaxima --pink_heightmaxima\ -pink_heightminima --pink_heightminima\ -pink_htkern --pink_htkern\ -pink_lvkern --pink_lvkern\ -pink_reg_minima --pink_reg_minima\ -pink_skelcurv --pink_skelcurv\ -pink_skelend --pink_skelend\ -pink_skeleton --pink_skeleton\ -pink_skelpar --pink_skelpar\ -pink_wshed --pink_wshed\ -alert --alert\ -arg --arg\ -at --at\ -autocrop_coords --autocrop_coords\ -average_color --average_color\ -basename --basename\ -bin --bin\ -bin2dec --bin2dec\ -dec --dec\ -dec2str --dec2str\ -dec2bin --dec2bin\ -dec2hex --dec2hex\ -dec2oct --dec2oct\ -fact --fact\ -file_mv --file_mv\ -file_rand --file_rand\ -file_rm --file_rm\ -file_slash --file_slash\ -filename --filename\ -fitratio_wh --fitratio_wh\ -fitscreen --fitscreen\ -gcd --gcd\ -hex --hex\ -hex2dec --hex2dec\ -hex2str --hex2str\ -img2str --img2str\ -img2text --img2text\ -img82hex --img82hex\ -hex2img8 --hex2img8\ -is_3d --is_3d\ -is_percent --is_percent\ -is_windows --is_windows\ -mad --mad\ -max_w --max_w\ -max_h --max_h\ -max_d --max_d\ -max_s --max_s\ -max_wh --max_wh\ -max_whd --max_whd\ -max_whds --max_whds\ -med --med\ -min_w --min_w\ -min_h --min_h\ -min_d --min_d\ -min_s --min_s\ -min_wh --min_wh\ -min_whd --min_whd\ -min_whds --min_whds\ -oct --oct\ -oct2dec --oct2dec\ -padint --padint\ -path_tmp --path_tmp\ -path_user --path_user\ -quote --quote\ -region_feature --region_feature\ -reset --reset\ -RGB --RGB\ -RGBA --RGBA\ -str --str\ -str2hex --str2hex\ -stresc --stresc\ -strcat --strcat\ -strcmp --strcmp\ -strlen --strlen\ -strreplace --strreplace\ -struncase --struncase\ -strver --strver\ -tic --tic\ -toc --toc\ -variance_noise --variance_noise\ -gpt --gpt\ " coms="\ debug\ h\ help\ version\ apply_camera\ camera\ m\ command\ d\ display\ d0\ display0\ d3d\ display3d\ da\ display_array\ dfft\ display_fft\ dg\ display_graph\ dh\ display_histogram\ dp\ display_polar\ drgba\ display_rgba\ dt\ display_tensors\ dw\ display_warp\ document_gmic\ e\ echo\ echo_file\ echo_stdout\ function1d\ gmicky\ gmicky_wilber\ i\ input\ o\ output\ on\ outputn\ op\ outputp\ ow\ outputw\ plot\ p\ print\ rainbow_lut\ roddy\ remove_duplicates\ remove_empty\ select\ sh\ shared\ srand\ testimage2d\ text2img\ type\ uncommand\ uniform_distribution\ up\ update\ v\ verbose\ wait\ warn\ w\ window\ k\ keep\ mv\ move\ nm\ name\ rm\ remove\ rv\ reverse\ sort_list\ sort_str\ abs\ acos\ +\ add\ and\ asin\ atan\ atan2\ <<\ bsl\ >>\ bsr\ cos\ cosh\ /\ div\ ==\ eq\ exp\ >=\ ge\ >\ gt\ <=\ le\ <\ lt\ log\ log10\ log2\ max\ //\ mdiv\ min\ %\ mod\ **\ mmul\ *\ mul\ !=\ neq\ or\ ^\ pow\ rol\ ror\ sign\ sin\ sinc\ sinh\ sqr\ sqrt\ -\ sub\ tan\ tanh\ xor\ apply_curve\ apply_gamma\ balance_gamma\ complex2polar\ cumul\ c\ cut\ discard\ eigen2tensor\ endian\ equalize\ f\ fill\ float2int8\ int82float\ index\ image_integral\ map\ map_clut\ mix_channels\ negative\ noise\ norm\ n\ normalize\ normalize_sum\ orientation\ otsu\ polar2complex\ quantize\ rand\ replace\ replace_inf\ replace_nan\ replace_seq\ round\ roundify\ =\ set\ threshold\ t2\ threshold2\ vector2tensor\ apply_channels\ autoindex\ bayer2rgb\ cmy2rgb\ cmyk2rgb\ colormap\ compose_channels\ direction2rgb\ ditheredbw\ fc\ fill_color\ gradient2rgb\ hsi2rgb\ hsi82rgb\ hsl2rgb\ hsl82rgb\ hsv2rgb\ hsv82rgb\ lab2lch\ lab2rgb\ lab82rgb\ lch2lab\ lch2rgb\ lch82rgb\ luminance\ mix_rgb\ pseudogray\ replace_color\ rgb2bayer\ rgb2cmy\ rgb2cmyk\ rgb2hsi\ rgb2hsi8\ rgb2hsl\ rgb2hsl8\ rgb2hsv\ rgb2hsv8\ rgb2lab\ rgb2lab8\ rgb2lch\ rgb2lch8\ rgb2luv\ rgb2srgb\ rgb2xyz\ rgb2xyz8\ rgb2ycbcr\ rgb2yuv\ rgb2yuv8\ remove_opacity\ select_color\ sepia\ solarize\ split_opacity\ srgb2rgb\ to_a\ to_color\ to_colormode\ to_gray\ to_graya\ to_pseudogray\ to_rgb\ to_rgba\ transfer_colors\ xyz2rgb\ xyz82rgb\ ycbcr2rgb\ yuv2rgb\ yuv82rgb\ a\ append\ append_tiles\ autocrop\ autocrop_components\ autocrop_seq\ channels\ columns\ z\ crop\ diagonal\ elevate\ expand_x\ expand_xy\ expand_xyz\ expand_y\ expand_z\ mirror\ permute\ r\ resize\ pow2\ rr2d\ resize_ratio2d\ r2dx\ resize2dx\ r2dy\ resize2dy\ r3dx\ resize3dx\ r3dy\ resize3dy\ r3dz\ resize3dz\ rotate\ rotate_tileable\ rows\ scale2x\ scale3x\ shift\ shrink_x\ shrink_xy\ shrink_xyz\ shrink_y\ shrink_z\ slices\ sort\ s\ split\ split_tiles\ y\ unroll\ upscale_smart\ warp\ bandpass\ bilateral\ b\ blur\ blur_angular\ blur_linear\ blur_radial\ blur_selective\ blur_x\ blur_xy\ blur_xyz\ blur_y\ blur_z\ bokeh\ compose_freq\ convolve\ convolve_fft\ correlate\ cross_correlation\ curvature\ deblur\ deblur_goldmeinel\ deblur_richardsonlucy\ deconvolve_fft\ deinterlace\ denoise\ denoise_haar\ deriche\ dilate\ dilate_circ\ dilate_oct\ divergence\ dog\ diffusiontensors\ edges\ eikonal\ erode\ erode_circ\ erode_oct\ fft\ g\ gradient\ gradient_orientation\ gradient_norm\ haar\ heat_flow\ hessian\ iee\ ifft\ ihaar\ inn\ inpaint\ inpaint_flow\ kuwahara\ laplacian\ lic\ map_tones\ map_tones_fast\ meancurvature_flow\ median\ normalize_local\ normalized_cross_correlation\ phase_correlation\ pde_flow\ red_eye\ remove_hotpixels\ remove_pixels\ repair\ sharpen\ smooth\ split_freq\ solidify\ solidify_linear\ solve_poisson\ structuretensors\ tv_flow\ unsharp\ unsharp_octave\ vanvliet\ watermark_fourier\ watershed\ area\ area_fg\ barycenter\ displacement\ distance\ float2fft8\ fft82float\ fftpolar\ histogram\ histogram_cumul\ histogram_pointwise\ hough\ ifftpolar\ isophotes\ label\ label_fg\ max_patch\ min_patch\ minimal_path\ mse\ patches\ plot2value\ pointcloud\ psnr\ segment_watershed\ skeleton\ ssd_patch\ thinning\ tones\ topographic_map\ axes\ ball\ chessboard\ cie1931\ circle\ ellipse\ flood\ gaussian\ graph\ grid\ j\ image\ line\ mandelbrot\ marble\ maze\ maze_mask\ object3d\ pack_sprites\ piechart\ plasma\ point\ polka_dots\ polygon\ quiver\ rectangle\ rorschach\ sierpinski\ snowflake\ spiralbw\ spline\ t\ text\ text_outline\ triangle_shade\ truchet\ turbulence\ yinyang\ dijkstra\ eigen\ invert\ solve\ svd\ transpose\ trisolve\ +3d\ add3d\ animate3d\ apply_camera3d\ apply_pose3d\ axes3d\ b3d\ background3d\ box3d\ c3d\ center3d\ circle3d\ circles3d\ col3d\ color3d\ colorcube3d\ cone3d\ cup3d\ cylinder3d\ distribution3d\ /3d\ div3d\ db3d\ double3d\ elevation3d\ empty3d\ extrude3d\ f3d\ focale3d\ gaussians3d\ gmic3d\ gyroid3d\ histogram3d\ image6cube3d\ imagecube3d\ imageplane3d\ imagepyramid3d\ imagerubik3d\ imagesphere3d\ isoline3d\ isosurface3d\ label_points3d\ lathe3d\ l3d\ light3d\ line3d\ lissajous3d\ m3d\ mode3d\ md3d\ moded3d\ *3d\ mul3d\ n3d\ normalize3d\ o3d\ opacity3d\ parametric3d\ pca_patch3d\ plane3d\ point3d\ pointcloud3d\ pose3d\ p3d\ primitives3d\ projections3d\ pyramid3d\ quadrangle3d\ rv3d\ reverse3d\ r3d\ rotate3d\ rotation3d\ sierpinski3d\ snapshot3d\ sl3d\ specl3d\ ss3d\ specs3d\ sphere3d\ spherical3d\ s3d\ spline3d\ split3d\ sprite3d\ sprites3d\ star3d\ streamline3d\ -3d\ sub3d\ superformula3d\ text_pointcloud3d\ text3d\ t3d\ texturize3d\ torus3d\ triangle3d\ volume3d\ weird3d\ apply_parallel\ apply_parallel_overlap\ check\ continue\ break\ do\ done\ elif\ else\ endif\ endl\ endlocal\ error\ x\ exec\ if\ l\ local\ onfail\ parallel\ progress\ q\ quit\ repeat\ return\ rprogress\ skip\ u\ status\ while\ array\ array_fade\ array_mirror\ array_random\ frame\ frame_blur\ frame_cube\ frame_fuzzy\ frame_painting\ frame_pattern\ frame_round\ frame_x\ frame_xy\ frame_xyz\ frame_y\ imagegrid\ linearize_tiles\ quadratize_tiles\ rotate_tiles\ shift_tiles\ taquin\ tunnel\ boxfitting\ cartoon\ circlism\ color_ellipses\ cubism\ dotsbw\ draw_whirl\ drawing\ drop_shadow\ ellipsionism\ fire_edges\ glow\ halftone\ hardsketchbw\ hearts\ houghsketchbw\ lightrays\ light_relief\ mosaic\ old_photo\ pencilbw\ polaroid\ poster_edges\ rodilius\ stained_glass\ stars\ sketchbw\ sponge\ stencil\ stencilbw\ tetris\ warhol\ weave\ whirls\ euclidean2polar\ deform\ fisheye\ flower\ kaleidoscope\ map_sphere\ polar2euclidean\ raindrops\ ripple\ rotoidoscope\ symmetrize\ transform_polar\ twirl\ warp_perspective\ water\ wave\ wind\ zoom\ cracks\ light_patch\ noise_hurl\ pixelize\ shade_stripes\ shadow_patch\ spread\ stripes_y\ texturize_canvas\ texturize_paper\ vignette\ watermark_visible\ blend\ blend_edges\ blend_fade\ blend_median\ fade_diamond\ fade_linear\ fade_radial\ fade_x\ fade_y\ fade_z\ animate\ morph\ register_nonrigid\ register_rigid\ transition_plasma\ transition3d\ x_blobs\ x_fire\ x_fireworks\ x_fisheye\ x_fourier\ x_histogram\ x_hough\ x_jawbreaker\ x_life\ x_light\ x_mandelbrot\ x_minesweeper\ x_minimal_path\ x_pacman\ x_paint\ x_plasma\ x_quantize_rgb\ x_reflection3d\ x_rubber3d\ x_shadebobs\ x_spline\ x_tetris\ x_tictactoe\ x_whirl\ output_pink3d\ pink\ pink_grayskel\ pink_heightmaxima\ pink_heightminima\ pink_htkern\ pink_lvkern\ pink_reg_minima\ pink_skelcurv\ pink_skelend\ pink_skeleton\ pink_skelpar\ pink_wshed\ alert\ arg\ at\ autocrop_coords\ average_color\ basename\ bin\ bin2dec\ dec\ dec2str\ dec2bin\ dec2hex\ dec2oct\ fact\ file_mv\ file_rand\ file_rm\ file_slash\ filename\ fitratio_wh\ fitscreen\ gcd\ hex\ hex2dec\ hex2str\ img2str\ img2text\ img82hex\ hex2img8\ is_3d\ is_percent\ is_windows\ mad\ max_w\ max_h\ max_d\ max_s\ max_wh\ max_whd\ max_whds\ med\ min_w\ min_h\ min_d\ min_s\ min_wh\ min_whd\ min_whds\ oct\ oct2dec\ padint\ path_tmp\ path_user\ quote\ region_feature\ reset\ RGB\ RGBA\ str\ str2hex\ stresc\ strcat\ strcmp\ strlen\ strreplace\ struncase\ strver\ tic\ toc\ variance_noise\ gpt\ " case "${prev}" in "-help" | "--help") COMPREPLY=( $(compgen -W "$coms" -- "$cur") ) return 0 ;; "-apply_camera" | "--apply_camera") COMPREPLY=( $(compgen -W "_command,_camera_index>=0,_skip_frames>=0,_output_filename >") ) return 0 ;; "-camera" | "--camera") COMPREPLY=( $(compgen -W "_camera_index>=0,_nb_frames>0,_skip_frames>=0,release_camera={0|1},_capture_width>=0,_capture_height>=0 >") ) return 0 ;; "-display" | "--display") COMPREPLY=( $(compgen -W "_X,_Y,_Z >") ) return 0 ;; "-display_array" | "--display_array") COMPREPLY=( $(compgen -W "_width>0,_height>0 >") ) return 0 ;; "-display_graph" | "--display_graph") COMPREPLY=( $(compgen -W "_width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel >") ) return 0 ;; "-display_histogram" | "--display_histogram") COMPREPLY=( $(compgen -W "_width>0,_height>0,_clusters>0,_min_value[%],_max_value[%],_show_axes={0|1} >") ) return 0 ;; "-display_polar" | "--display_polar") COMPREPLY=( $(compgen -W "_width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end >") ) return 0 ;; "-display_tensors" | "--display_tensors") COMPREPLY=( $(compgen -W "_size_factor>0,_ellipse_factor>=0,_colored_mode={0|1} >") ) return 0 ;; "-display_warp" | "--display_warp") COMPREPLY=( $(compgen -W "_cell_size>0 >") ) return 0 ;; "-document_gmic" | "--document_gmic") COMPREPLY=( $(compgen -W "_format={ascii|html|latex|xml|bash|images},_image_path,_write_wrapper={0|1} >") ) return 0 ;; "-echo" | "--echo") COMPREPLY=( $(compgen -W "message >") ) return 0 ;; "-echo_file" | "--echo_file") COMPREPLY=( $(compgen -W "filename,message >") ) return 0 ;; "-echo_stdout" | "--echo_stdout") COMPREPLY=( $(compgen -W "message >") ) return 0 ;; "-function1d" | "--function1d") COMPREPLY=( $(compgen -W "0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn >") ) return 0 ;; "-outputn" | "--outputn") COMPREPLY=( $(compgen -W "filename >") ) return 0 ;; "-outputp" | "--outputp") COMPREPLY=( $(compgen -W "prefix >") ) return 0 ;; "-plot" | "--plot") COMPREPLY=( $(compgen -W "_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax") ) return 0 ;; "-select" | "--select") COMPREPLY=( $(compgen -W "feature_type,_X,_Y,_Z >") ) return 0 ;; "-shared" | "--shared") COMPREPLY=( $(compgen -W "x0[%],x1[%],y[%],z[%],v[%] y0[%],y1[%],z[%],v[%] z0[%],z1[%],v[%] v0[%],v1[%] (noargs)") ) return 0 ;; "-srand" | "--srand") COMPREPLY=( $(compgen -W "value (noargs)") ) return 0 ;; "-testimage2d" | "--testimage2d") COMPREPLY=( $(compgen -W "_width>0,_height>0,_spectrum>0 >") ) return 0 ;; "-text2img" | "--text2img") COMPREPLY=( $(compgen -W "text,_line_separator >") ) return 0 ;; "-type" | "--type") COMPREPLY=( $(compgen -W "datatype >") ) return 0 ;; "-uncommand" | "--uncommand") COMPREPLY=( $(compgen -W "command_name *") ) return 0 ;; "-uniform_distribution" | "--uniform_distribution") COMPREPLY=( $(compgen -W "nb_levels>=1,spectrum>=1 >") ) return 0 ;; "-verbose" | "--verbose") COMPREPLY=( $(compgen -W "level {+|-}") ) return 0 ;; "-wait" | "--wait") COMPREPLY=( $(compgen -W "delay (noargs)") ) return 0 ;; "-warn" | "--warn") COMPREPLY=( $(compgen -W "message >") ) return 0 ;; "-window" | "--window") COMPREPLY=( $(compgen -W "_width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_title >") ) return 0 ;; "-move" | "--move") COMPREPLY=( $(compgen -W "position[%] >") ) return 0 ;; "-name" | "--name") COMPREPLY=( $(compgen -W "name,_is_modified={0|1} >") ) return 0 ;; "-sort_list" | "--sort_list") COMPREPLY=( $(compgen -W "_ordering={+|-},_criterion >") ) return 0 ;; "-add" | "--add") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-and" | "--and") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-atan2" | "--atan2") COMPREPLY=( $(compgen -W "[x_argument] >") ) return 0 ;; "-bsl" | "--bsl") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-bsr" | "--bsr") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-div" | "--div") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-eq" | "--eq") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-ge" | "--ge") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-gt" | "--gt") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-le" | "--le") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-lt" | "--lt") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-max" | "--max") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-mdiv" | "--mdiv") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-min" | "--min") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-mod" | "--mod") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-mmul" | "--mmul") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-mul" | "--mul") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-neq" | "--neq") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-or" | "--or") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-pow" | "--pow") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-rol" | "--rol") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-ror" | "--ror") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-sub" | "--sub") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-xor" | "--xor") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-apply_curve" | "--apply_curve") COMPREPLY=( $(compgen -W "0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN >") ) return 0 ;; "-apply_gamma" | "--apply_gamma") COMPREPLY=( $(compgen -W "gamma>=0 >") ) return 0 ;; "-balance_gamma" | "--balance_gamma") COMPREPLY=( $(compgen -W "_ref_color1,... >") ) return 0 ;; "-cut" | "--cut") COMPREPLY=( $(compgen -W "{value0[%]|[image0]},{value1[%]|[image1]} [image] (noargs)") ) return 0 ;; "-discard" | "--discard") COMPREPLY=( $(compgen -W "value,_remove_if_not_found={0|1}. >") ) return 0 ;; "-equalize" | "--equalize") COMPREPLY=( $(compgen -W "_nb_levels>0[%],_value_min[%],_value_max[%] >") ) return 0 ;; "-fill" | "--fill") COMPREPLY=( $(compgen -W "value1,_value2,.. [image] 'formula'") ) return 0 ;; "-index" | "--index") COMPREPLY=( $(compgen -W "{[palette]|predefined_palette},0<=_dithering<=1,_map_palette={0|1} >") ) return 0 ;; "-map" | "--map") COMPREPLY=( $(compgen -W "[palette] predefined_palette") ) return 0 ;; "-mix_channels" | "--mix_channels") COMPREPLY=( $(compgen -W "(a00,...,aMN) >") ) return 0 ;; "-noise" | "--noise") COMPREPLY=( $(compgen -W "std_variation>=0[%],_noise_type >") ) return 0 ;; "-normalize" | "--normalize") COMPREPLY=( $(compgen -W "{value0[%]|[image0]},{value1[%]|[image1]} [image]") ) return 0 ;; "-otsu" | "--otsu") COMPREPLY=( $(compgen -W "_nb_levels>0 >") ) return 0 ;; "-quantize" | "--quantize") COMPREPLY=( $(compgen -W "nb_levels>=1,_keep_values={0|1},_is_uniform={0|1} >") ) return 0 ;; "-rand" | "--rand") COMPREPLY=( $(compgen -W "{value0[%]|[image0]},{value1[%]|[image1]} [image]") ) return 0 ;; "-replace" | "--replace") COMPREPLY=( $(compgen -W "value_src,value_dest >") ) return 0 ;; "-replace_inf" | "--replace_inf") COMPREPLY=( $(compgen -W "_expression >") ) return 0 ;; "-replace_nan" | "--replace_nan") COMPREPLY=( $(compgen -W "_expression >") ) return 0 ;; "-replace_seq" | "--replace_seq") COMPREPLY=( $(compgen -W ""search_seq","replace_seq" >") ) return 0 ;; "-round" | "--round") COMPREPLY=( $(compgen -W "rounding_value>=0,_rounding_type (noargs)") ) return 0 ;; "-roundify" | "--roundify") COMPREPLY=( $(compgen -W "gamma>=0 >") ) return 0 ;; "-set" | "--set") COMPREPLY=( $(compgen -W "value,_x[%],_y[%],_z[%],_c[%] >") ) return 0 ;; "-threshold" | "--threshold") COMPREPLY=( $(compgen -W "value[%],_is_soft (noargs)") ) return 0 ;; "-threshold2" | "--threshold2") COMPREPLY=( $(compgen -W "min[%],max[%] >") ) return 0 ;; "-apply_channels" | "--apply_channels") COMPREPLY=( $(compgen -W ""command",_channels={all=0|rgba=1|rgb=2|y=3|cbcr=4|cb=5|cr=6|l=7|ab=8|a=9|b=10|h=11|s=12|v=13|k=14|cg=15|ch=16|c=17|H=18|r=19|g=20|b=21|alpha==22},_normalize={0=cut|1=normalize} >") ) return 0 ;; "-autoindex" | "--autoindex") COMPREPLY=( $(compgen -W "nb_colors>0,0<=_dithering<=1,_method={0=median-cut|1=k-means} >") ) return 0 ;; "-bayer2rgb" | "--bayer2rgb") COMPREPLY=( $(compgen -W "_GM_smoothness,_RB_smoothness1,_RB_smoothness2 >") ) return 0 ;; "-colormap" | "--colormap") COMPREPLY=( $(compgen -W "nb_levels>=1,_method={0=median-cut|1=k-means},_sort_vectors={0|1} >") ) return 0 ;; "-fill_color" | "--fill_color") COMPREPLY=( $(compgen -W "col1,...,colN >") ) return 0 ;; "-gradient2rgb" | "--gradient2rgb") COMPREPLY=( $(compgen -W "_is_orientation={0|1} >") ) return 0 ;; "-mix_rgb" | "--mix_rgb") COMPREPLY=( $(compgen -W "a11,a12,a13,a21,a22,a23,a31,a32,a33 >") ) return 0 ;; "-pseudogray" | "--pseudogray") COMPREPLY=( $(compgen -W "_max_increment>=0,_JND_threshold>=0,_bits_depth>0 >") ) return 0 ;; "-replace_color" | "--replace_color") COMPREPLY=( $(compgen -W "tolerance[%]>=0,smoothness[%]>=0,src1,src2,...,dest1,dest2,... >") ) return 0 ;; "-rgb2bayer" | "--rgb2bayer") COMPREPLY=( $(compgen -W "_start_pattern=0,_color_grid=0 >") ) return 0 ;; "-select_color" | "--select_color") COMPREPLY=( $(compgen -W "tolerance[%]>=0,col1,..,colN >") ) return 0 ;; "-to_colormode" | "--to_colormode") COMPREPLY=( $(compgen -W "mode={0=adaptive|1=G|2=GA|3=RGB|4=RGBA} >") ) return 0 ;; "-to_pseudogray" | "--to_pseudogray") COMPREPLY=( $(compgen -W "_max_step>=0,_is_perceptual_constraint={0|1},_bits_depth>0 >") ) return 0 ;; "-transfer_colors" | "--transfer_colors") COMPREPLY=( $(compgen -W "_transfer_brightness={0|1} >") ) return 0 ;; "-append" | "--append") COMPREPLY=( $(compgen -W "[image],axis,_alignment axis,_alignment") ) return 0 ;; "-append_tiles" | "--append_tiles") COMPREPLY=( $(compgen -W "_M>=0,_N>=0,0<=_x_alignment<=1,0<=_y_alignment<=1 >") ) return 0 ;; "-autocrop" | "--autocrop") COMPREPLY=( $(compgen -W "value1,value2,... (noargs)") ) return 0 ;; "-autocrop_components" | "--autocrop_components") COMPREPLY=( $(compgen -W "_threshold[%],_min_area[%]>=0,_is_high_connectivity={0|1},_output_type={0=crop|1=segmentation|2=coordinates} >") ) return 0 ;; "-autocrop_seq" | "--autocrop_seq") COMPREPLY=( $(compgen -W "value1,value2,...|auto >") ) return 0 ;; "-channels" | "--channels") COMPREPLY=( $(compgen -W "{[image0]|c0[%]},_{[image1]|c1[%]} >") ) return 0 ;; "-columns" | "--columns") COMPREPLY=( $(compgen -W "{[image0]|x0[%]},_{[image1]|x1[%]} >") ) return 0 ;; "-crop" | "--crop") COMPREPLY=( $(compgen -W "x0[%],x1[%],_boundary x0[%],y0[%],x1[%],y1[%],_boundary x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary (noargs)") ) return 0 ;; "-elevate" | "--elevate") COMPREPLY=( $(compgen -W "_depth,_is_plain,_is_colored >") ) return 0 ;; "-expand_x" | "--expand_x") COMPREPLY=( $(compgen -W "size_x>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-expand_xy" | "--expand_xy") COMPREPLY=( $(compgen -W "size>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-expand_xyz" | "--expand_xyz") COMPREPLY=( $(compgen -W "size>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-expand_y" | "--expand_y") COMPREPLY=( $(compgen -W "size_y>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-expand_z" | "--expand_z") COMPREPLY=( $(compgen -W "size_z>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-mirror" | "--mirror") COMPREPLY=( $(compgen -W "{x|y|z}..{x|y|z} >") ) return 0 ;; "-permute" | "--permute") COMPREPLY=( $(compgen -W "permutation_string >") ) return 0 ;; "-resize" | "--resize") COMPREPLY=( $(compgen -W "[image],_interpolation,_boundary,_ax,_ay,_az,_ac {[image_w]|width>0[%]},_{[image_h]|height>0[%]},_{[image_d]|depth>0[%]},_{[image_s]|spectrum>0[%]},_interpolation,_boundary,_ax,_ay,_az,_ac (noargs)") ) return 0 ;; "-pow2" | "--pow2") COMPREPLY=( $(compgen -W "_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-resize_ratio2d" | "--resize_ratio2d") COMPREPLY=( $(compgen -W "width>0,height>0,_mode={0=inside|1=outside|2=padded},0=<_interpolation<=6 >") ) return 0 ;; "-resize2dx" | "--resize2dx") COMPREPLY=( $(compgen -W "width>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-resize2dy" | "--resize2dy") COMPREPLY=( $(compgen -W "height>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-resize3dx" | "--resize3dx") COMPREPLY=( $(compgen -W "width>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-resize3dy" | "--resize3dy") COMPREPLY=( $(compgen -W "height>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-resize3dz" | "--resize3dz") COMPREPLY=( $(compgen -W "depth>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-rotate" | "--rotate") COMPREPLY=( $(compgen -W "angle,_interpolation,_boundary,_cx[%],_cy[%],_zoom >") ) return 0 ;; "-rotate_tileable" | "--rotate_tileable") COMPREPLY=( $(compgen -W "angle,_max_size_factor>=0 >") ) return 0 ;; "-rows" | "--rows") COMPREPLY=( $(compgen -W "{[image0]|y0[%]},_{[image1]|y1[%]} >") ) return 0 ;; "-shift" | "--shift") COMPREPLY=( $(compgen -W "vx[%],_vy[%],_vz[%],_vc[%],_boundary >") ) return 0 ;; "-shrink_x" | "--shrink_x") COMPREPLY=( $(compgen -W "size_x>=0 >") ) return 0 ;; "-shrink_xy" | "--shrink_xy") COMPREPLY=( $(compgen -W "size>=0 >") ) return 0 ;; "-shrink_xyz" | "--shrink_xyz") COMPREPLY=( $(compgen -W "size>=0 >") ) return 0 ;; "-shrink_y" | "--shrink_y") COMPREPLY=( $(compgen -W "size_y>=0 >") ) return 0 ;; "-shrink_z" | "--shrink_z") COMPREPLY=( $(compgen -W "size_z>=0 >") ) return 0 ;; "-slices" | "--slices") COMPREPLY=( $(compgen -W "{[image0]|z0[%]},_{[image1]|z1[%]} >") ) return 0 ;; "-sort" | "--sort") COMPREPLY=( $(compgen -W "_ordering={+|-},_axis={x|y|z|c} >") ) return 0 ;; "-split" | "--split") COMPREPLY=( $(compgen -W "{x|y|z|c}..{x|y|z|c},_nb_parts keep_splitting_values={+|-},value1,value2,...") ) return 0 ;; "-split_tiles" | "--split_tiles") COMPREPLY=( $(compgen -W "M!=0,_N!=0,_is_homogeneous={0|1} >") ) return 0 ;; "-unroll" | "--unroll") COMPREPLY=( $(compgen -W "axis={x|y|z|c} >") ) return 0 ;; "-upscale_smart" | "--upscale_smart") COMPREPLY=( $(compgen -W "width,_height,_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0 >") ) return 0 ;; "-warp" | "--warp") COMPREPLY=( $(compgen -W "[warping_field],_is_relative={0|1},_interpolation,_boundary,_nb_frames>0 >") ) return 0 ;; "-bandpass" | "--bandpass") COMPREPLY=( $(compgen -W "_min_freq[%],_max_freq[%] >") ) return 0 ;; "-bilateral" | "--bilateral") COMPREPLY=( $(compgen -W "[guide],std_variation_s>0[%],std_variation_r>0 std_variation_s>0[%],std_variation_r>0") ) return 0 ;; "-blur" | "--blur") COMPREPLY=( $(compgen -W "std_variation>=0[%],_boundary={0=dirichlet|1=neumann},_kernel={0=quasi-gaussian(faster)|1=gaussian} >") ) return 0 ;; "-blur_angular" | "--blur_angular") COMPREPLY=( $(compgen -W "amplitude[%],_cx,_cy >") ) return 0 ;; "-blur_linear" | "--blur_linear") COMPREPLY=( $(compgen -W "amplitude1[%],_amplitude2[%],_angle,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-blur_radial" | "--blur_radial") COMPREPLY=( $(compgen -W "amplitude[%],_cx,_cy >") ) return 0 ;; "-blur_selective" | "--blur_selective") COMPREPLY=( $(compgen -W "sigma>=0,_edges>0,_nb_scales>0 >") ) return 0 ;; "-blur_x" | "--blur_x") COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-blur_xy" | "--blur_xy") COMPREPLY=( $(compgen -W "amplitude_x[%],amplitude_y[%],_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-blur_xyz" | "--blur_xyz") COMPREPLY=( $(compgen -W "amplitude_x[%],amplitude_y[%],amplitude_z,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-blur_y" | "--blur_y") COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-blur_z" | "--blur_z") COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-bokeh" | "--bokeh") COMPREPLY=( $(compgen -W "_amplitude>=0,_smoothness>=0,0<=_density<=100,_bokeh_size>0,0<=_bokeh_outline_size<=100,_bokeh_outline_amplitude>=0,_bokeh_smoothness>=0 >") ) return 0 ;; "-convolve" | "--convolve") COMPREPLY=( $(compgen -W "[mask],_boundary,_is_normalized={0|1} >") ) return 0 ;; "-correlate" | "--correlate") COMPREPLY=( $(compgen -W "[mask],_boundary,_is_normalized={0|1} >") ) return 0 ;; "-deblur" | "--deblur") COMPREPLY=( $(compgen -W "amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={0=Tikhonov|1=meancurv.|2=TV} >") ) return 0 ;; "-deblur_goldmeinel" | "--deblur_goldmeinel") COMPREPLY=( $(compgen -W "sigma>=0,_nb_iter>=0,_acceleration>=0,_kernel_type={0=quasi-gaussian(faster)|1=gaussian}. >") ) return 0 ;; "-deblur_richardsonlucy" | "--deblur_richardsonlucy") COMPREPLY=( $(compgen -W "sigma>=0,nb_iter>=0,_kernel_type={0=quasi-gaussian(faster)|1=gaussian}. >") ) return 0 ;; "-deinterlace" | "--deinterlace") COMPREPLY=( $(compgen -W "_method={0|1} >") ) return 0 ;; "-denoise" | "--denoise") COMPREPLY=( $(compgen -W "std_variation_s>=0,_std_variation_p>=0,_patch_size>=0,_lookup_size>=0,_smoothness,_fast_approx={0|1} >") ) return 0 ;; "-denoise_haar" | "--denoise_haar") COMPREPLY=( $(compgen -W "_threshold>=0,_nb_scales>=0,_cycle_spinning>0 >") ) return 0 ;; "-deriche" | "--deriche") COMPREPLY=( $(compgen -W "std_variation>=0[%],order={0|1|2},axis={x|y|z|c},_boundary >") ) return 0 ;; "-dilate" | "--dilate") COMPREPLY=( $(compgen -W "size>=0 size_x>=0,size_y>=0,size_z>=0 [mask],_boundary,_is_normalized={0|1}") ) return 0 ;; "-dilate_circ" | "--dilate_circ") COMPREPLY=( $(compgen -W "_size>=0,_boundary,_is_normalized={0|1} >") ) return 0 ;; "-dilate_oct" | "--dilate_oct") COMPREPLY=( $(compgen -W "_size>=0,_boundary,_is_normalized={0|1} >") ) return 0 ;; "-dog" | "--dog") COMPREPLY=( $(compgen -W "_sigma1>=0[%],_sigma2>=0[%] >") ) return 0 ;; "-diffusiontensors" | "--diffusiontensors") COMPREPLY=( $(compgen -W "_sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={0|1} >") ) return 0 ;; "-edges" | "--edges") COMPREPLY=( $(compgen -W "_threshold[%]>=0 >") ) return 0 ;; "-eikonal" | "--eikonal") COMPREPLY=( $(compgen -W "nb_iterations>=0,_band_size>=0 >") ) return 0 ;; "-erode" | "--erode") COMPREPLY=( $(compgen -W "size>=0 size_x>=0,size_y>=0,_size_z>=0 [mask],_boundary,_is_normalized={0|1}") ) return 0 ;; "-erode_circ" | "--erode_circ") COMPREPLY=( $(compgen -W "_size>=0,_boundary,_is_normalized={0|1} >") ) return 0 ;; "-erode_oct" | "--erode_oct") COMPREPLY=( $(compgen -W "_size>=0,_boundary,_is_normalized={0|1} >") ) return 0 ;; "-gradient" | "--gradient") COMPREPLY=( $(compgen -W "{x|y|z}..{x|y|z},_scheme (noargs)") ) return 0 ;; "-gradient_orientation" | "--gradient_orientation") COMPREPLY=( $(compgen -W "_dimension={1,2,3} >") ) return 0 ;; "-haar" | "--haar") COMPREPLY=( $(compgen -W "scale>0 >") ) return 0 ;; "-heat_flow" | "--heat_flow") COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_keep_sequence={0|1} >") ) return 0 ;; "-hessian" | "--hessian") COMPREPLY=( $(compgen -W "{xx|xy|xz|yy|yz|zz}..{xx|xy|xz|yy|yz|zz} (noargs)") ) return 0 ;; "-ihaar" | "--ihaar") COMPREPLY=( $(compgen -W "scale>0 >") ) return 0 ;; "-inpaint" | "--inpaint") COMPREPLY=( $(compgen -W "[mask] >") ) return 0 ;; "-inpaint_flow" | "--inpaint_flow") COMPREPLY=( $(compgen -W "_nb_iter1>=0,_nb_iter2>=0,_dt>=0,_alpha,_sigma >") ) return 0 ;; "-kuwahara" | "--kuwahara") COMPREPLY=( $(compgen -W "size>0 >") ) return 0 ;; "-lic" | "--lic") COMPREPLY=( $(compgen -W "_amplitude>0,_channels>0 >") ) return 0 ;; "-map_tones" | "--map_tones") COMPREPLY=( $(compgen -W "_threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0 >") ) return 0 ;; "-map_tones_fast" | "--map_tones_fast") COMPREPLY=( $(compgen -W "_radius[%]>=0,_power>=0 >") ) return 0 ;; "-meancurvature_flow" | "--meancurvature_flow") COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_sequence_flag={0|1} >") ) return 0 ;; "-median" | "--median") COMPREPLY=( $(compgen -W "radius>=0 >") ) return 0 ;; "-normalize_local" | "--normalize_local") COMPREPLY=( $(compgen -W "_amplitude>=0,_radius>0,_n_smooth>=0[%],_a_smooth>=0[%],_is_cut={0|1},_min=0,_max=255 >") ) return 0 ;; "-pde_flow" | "--pde_flow") COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_velocity_command,_keep_sequence={0|1} >") ) return 0 ;; "-red_eye" | "--red_eye") COMPREPLY=( $(compgen -W "0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1 >") ) return 0 ;; "-remove_hotpixels" | "--remove_hotpixels") COMPREPLY=( $(compgen -W "_mask_size>0,_threshold[%]>0 >") ) return 0 ;; "-remove_pixels" | "--remove_pixels") COMPREPLY=( $(compgen -W "density>=0,_pixel_sum>=0 >") ) return 0 ;; "-repair" | "--repair") COMPREPLY=( $(compgen -W "[mask],_patch_size>=1,_lookup_size>=1,_lookup_increment>=1,_blend_size>=0,0<=_blend_threshold<=1,_blend_decay>=0,_blend_scales>=1,_is_blend_outer={0|1} >") ) return 0 ;; "-sharpen" | "--sharpen") COMPREPLY=( $(compgen -W "amplitude>=0 amplitude>=0,edge>=0,_alpha,_sigma") ) return 0 ;; "-smooth" | "--smooth") COMPREPLY=( $(compgen -W "amplitude>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dl>0,_da>0,_precision>0,interpolation,_fast_approx={0|1} nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 [tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={0|1} [tensor_field],_nb_iters>=0,_dt>0,0") ) return 0 ;; "-split_freq" | "--split_freq") COMPREPLY=( $(compgen -W "smoothness>0[%] >") ) return 0 ;; "-solidify_linear" | "--solidify_linear") COMPREPLY=( $(compgen -W "_sigma>=1,_dsigma>=1,0<=_precision<=1 >") ) return 0 ;; "-solve_poisson" | "--solve_poisson") COMPREPLY=( $(compgen -W ""laplacian_command",_nb_iterations>=0,_time_step>0,_nb_scales>=0 >") ) return 0 ;; "-structuretensors" | "--structuretensors") COMPREPLY=( $(compgen -W "_scheme >") ) return 0 ;; "-tv_flow" | "--tv_flow") COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_sequence_flag={0|1} >") ) return 0 ;; "-unsharp" | "--unsharp") COMPREPLY=( $(compgen -W "radius[%]>=0,_amount>=0,_threshold[%]>=0 >") ) return 0 ;; "-unsharp_octave" | "--unsharp_octave") COMPREPLY=( $(compgen -W "_nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0 >") ) return 0 ;; "-vanvliet" | "--vanvliet") COMPREPLY=( $(compgen -W "std_variation>=0[%],order={0|1|2|3},axis={x|y|z|c},_boundary >") ) return 0 ;; "-watermark_fourier" | "--watermark_fourier") COMPREPLY=( $(compgen -W "text,_size>0 >") ) return 0 ;; "-watershed" | "--watershed") COMPREPLY=( $(compgen -W "[priority_image],_fill_lines={0|1} >") ) return 0 ;; "-area" | "--area") COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={0|1} >") ) return 0 ;; "-area_fg" | "--area_fg") COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={0|1} >") ) return 0 ;; "-displacement" | "--displacement") COMPREPLY=( $(compgen -W "[source_image],_smoothness,_precision>=0,_nb_scales>=0,iteration_max>=0,is_backward={0|1} >") ) return 0 ;; "-distance" | "--distance") COMPREPLY=( $(compgen -W "isovalue[%],_metric isovalue[%],[custom_metric] x[%]>=0,y[%]>=0,z[%]>=0") ) return 0 ;; "-histogram" | "--histogram") COMPREPLY=( $(compgen -W "nb_levels>0[%],_value0[%],_value1[%] >") ) return 0 ;; "-histogram_cumul" | "--histogram_cumul") COMPREPLY=( $(compgen -W "_nb_levels>0,_is_normalized={0|1},_val0[%],_val1[%] >") ) return 0 ;; "-histogram_pointwise" | "--histogram_pointwise") COMPREPLY=( $(compgen -W "nb_levels>0[%],_value0[%],_value1[%] >") ) return 0 ;; "-hough" | "--hough") COMPREPLY=( $(compgen -W "_width>0,_height>0,gradient_norm_voting={0|1} >") ) return 0 ;; "-isophotes" | "--isophotes") COMPREPLY=( $(compgen -W "_nb_levels>0 >") ) return 0 ;; "-label" | "--label") COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={0|1} >") ) return 0 ;; "-label_fg" | "--label_fg") COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={0|1} >") ) return 0 ;; "-max_patch" | "--max_patch") COMPREPLY=( $(compgen -W "_patch_size>=1 >") ) return 0 ;; "-min_patch" | "--min_patch") COMPREPLY=( $(compgen -W "_patch_size>=1 >") ) return 0 ;; "-minimal_path" | "--minimal_path") COMPREPLY=( $(compgen -W "x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0 >") ) return 0 ;; "-patches" | "--patches") COMPREPLY=( $(compgen -W "patch_width>0,patch_height>0,patch_depth>0,x0,y0,z0,_x1,_y1,_z1,...,_xN,_yN,_zN >") ) return 0 ;; "-pointcloud" | "--pointcloud") COMPREPLY=( $(compgen -W "_type={-X=-X-opacity|0=binary|1=cumulative|2=label} >") ) return 0 ;; "-psnr" | "--psnr") COMPREPLY=( $(compgen -W "_max_value >") ) return 0 ;; "-segment_watershed" | "--segment_watershed") COMPREPLY=( $(compgen -W "_threshold>=0,_fill_lines={0|1} >") ) return 0 ;; "-skeleton" | "--skeleton") COMPREPLY=( $(compgen -W "_smoothness[%]>=0 >") ) return 0 ;; "-ssd_patch" | "--ssd_patch") COMPREPLY=( $(compgen -W "_use_fourier={0|1},_boundary_conditions={0=dirichlet|1=neumann} >") ) return 0 ;; "-tones" | "--tones") COMPREPLY=( $(compgen -W "N>0 >") ) return 0 ;; "-topographic_map" | "--topographic_map") COMPREPLY=( $(compgen -W "_nb_levels>0,_smoothness >") ) return 0 ;; "-axes" | "--axes") COMPREPLY=( $(compgen -W "x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,.. >") ) return 0 ;; "-ball" | "--ball") COMPREPLY=( $(compgen -W "_R,_G,_B >") ) return 0 ;; "-chessboard" | "--chessboard") COMPREPLY=( $(compgen -W "size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,..,_color2,.. >") ) return 0 ;; "-circle" | "--circle") COMPREPLY=( $(compgen -W "x[%],y[%],R[%],_opacity,_pattern,_color1,.. >") ) return 0 ;; "-ellipse" | "--ellipse") COMPREPLY=( $(compgen -W "x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,.. >") ) return 0 ;; "-flood" | "--flood") COMPREPLY=( $(compgen -W "x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={0|1},_opacity,_color1,.. >") ) return 0 ;; "-gaussian" | "--gaussian") COMPREPLY=( $(compgen -W "_sigma1[%],_sigma2[%],_angle >") ) return 0 ;; "-graph" | "--graph") COMPREPLY=( $(compgen -W "[function_image],_plot_type,_vertex_type,_ymin,_ymax,_opacity,_pattern,_color1,.. 'formula',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_opacity,_pattern,_color1,..") ) return 0 ;; "-grid" | "--grid") COMPREPLY=( $(compgen -W "size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,.. >") ) return 0 ;; "-image" | "--image") COMPREPLY=( $(compgen -W "[sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask >") ) return 0 ;; "-line" | "--line") COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,.. >") ) return 0 ;; "-mandelbrot" | "--mandelbrot") COMPREPLY=( $(compgen -W "z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={0|1},_c0r,_c0i,_opacity >") ) return 0 ;; "-marble" | "--marble") COMPREPLY=( $(compgen -W "_image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0 >") ) return 0 ;; "-maze" | "--maze") COMPREPLY=( $(compgen -W "_width>0,_height>0,_cell_size>0 >") ) return 0 ;; "-maze_mask" | "--maze_mask") COMPREPLY=( $(compgen -W "_cellsize>0 >") ) return 0 ;; "-object3d" | "--object3d") COMPREPLY=( $(compgen -W "[object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double3d={0|1},_is_zbuffer={0|1},_focale,_light_x,_light_y,_light_z,_specular_lightness,_specular_shininess >") ) return 0 ;; "-pack_sprites" | "--pack_sprites") COMPREPLY=( $(compgen -W "_nb_scales>=0,0<=_min_scale<=100,_allow_rotation={0=0°|1=180°|2=90°|3=any},_spacing,_precision>=0,,max_iterations>=0 >") ) return 0 ;; "-piechart" | "--piechart") COMPREPLY=( $(compgen -W "label_height>=0,label_R,label_G,label_B,"label1",value1,R1,G1,B1,...,"labelN",valueN,RN,GN,BN >") ) return 0 ;; "-plasma" | "--plasma") COMPREPLY=( $(compgen -W "alpha,_beta,_scale>=0 >") ) return 0 ;; "-point" | "--point") COMPREPLY=( $(compgen -W "x[%],y[%],_z[%],_opacity,_color1,.. >") ) return 0 ;; "-polka_dots" | "--polka_dots") COMPREPLY=( $(compgen -W "diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,... >") ) return 0 ;; "-polygon" | "--polygon") COMPREPLY=( $(compgen -W "N>=1,x1[%],y1[%],..,xN[%],yN[%],_opacity,_pattern,_color1,.. >") ) return 0 ;; "-quiver" | "--quiver") COMPREPLY=( $(compgen -W "[function_image],_sampling>0,_factor,_is_arrow={0|1},_opacity,_pattern,_color1,.. >") ) return 0 ;; "-rectangle" | "--rectangle") COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,.. >") ) return 0 ;; "-rorschach" | "--rorschach") COMPREPLY=( $(compgen -W "'smoothness[%]>=0','mirroring={0=none|1=x|2=y|3=xy} >") ) return 0 ;; "-sierpinski" | "--sierpinski") COMPREPLY=( $(compgen -W "recursion_level>=0 >") ) return 0 ;; "-snowflake" | "--snowflake") COMPREPLY=( $(compgen -W "_recursion>=0,_x0,_y0,_x1,_y1,_x2,_y2,_opacity,_col1,..._colN >") ) return 0 ;; "-spline" | "--spline") COMPREPLY=( $(compgen -W "x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_nb_vertices>=2,_opacity,_color1,.. >") ) return 0 ;; "-text" | "--text") COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height>=0,_opacity,_color1,.. >") ) return 0 ;; "-text_outline" | "--text_outline") COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height>0,_outline>=0,_opacity,_color1,.. >") ) return 0 ;; "-triangle_shade" | "--triangle_shade") COMPREPLY=( $(compgen -W "x0,y0,x1,y0,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,.... >") ) return 0 ;; "-truchet" | "--truchet") COMPREPLY=( $(compgen -W "_scale>0,_radius>=0,_pattern_type={0=straight|1=curved} >") ) return 0 ;; "-turbulence" | "--turbulence") COMPREPLY=( $(compgen -W "_radius>0,_octaves={1,2,3...,12},_alpha>0,_difference={-10,10},_mode={0,1,2,3} >") ) return 0 ;; "-dijkstra" | "--dijkstra") COMPREPLY=( $(compgen -W "starting_node>=0,ending_node>=0 >") ) return 0 ;; "-solve" | "--solve") COMPREPLY=( $(compgen -W "[image] >") ) return 0 ;; "-trisolve" | "--trisolve") COMPREPLY=( $(compgen -W "[image] >") ) return 0 ;; "-add3d" | "--add3d") COMPREPLY=( $(compgen -W "tx,_ty,_tz [object3d] (noargs)") ) return 0 ;; "-animate3d" | "--animate3d") COMPREPLY=( $(compgen -W "_width>0,_height>0,_dx,_dy,_dz,_zoom>=0,_filename >") ) return 0 ;; "-apply_camera3d" | "--apply_camera3d") COMPREPLY=( $(compgen -W "pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z >") ) return 0 ;; "-apply_pose3d" | "--apply_pose3d") COMPREPLY=( $(compgen -W "p1,..,p12 >") ) return 0 ;; "-axes3d" | "--axes3d") COMPREPLY=( $(compgen -W "_size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z >") ) return 0 ;; "-background3d" | "--background3d") COMPREPLY=( $(compgen -W "R,_G,_B [image] (noargs)") ) return 0 ;; "-box3d" | "--box3d") COMPREPLY=( $(compgen -W "_size_x,_size_y,_size_z >") ) return 0 ;; "-circle3d" | "--circle3d") COMPREPLY=( $(compgen -W "_x0,_y0,_z0,_radius>=0 >") ) return 0 ;; "-circles3d" | "--circles3d") COMPREPLY=( $(compgen -W "_radius>=0 >") ) return 0 ;; "-color3d" | "--color3d") COMPREPLY=( $(compgen -W "R,_G,_B,_opacity >") ) return 0 ;; "-cone3d" | "--cone3d") COMPREPLY=( $(compgen -W "_radius,_height,_nb_subdivisions>0 >") ) return 0 ;; "-cup3d" | "--cup3d") COMPREPLY=( $(compgen -W "_resolution>0 >") ) return 0 ;; "-cylinder3d" | "--cylinder3d") COMPREPLY=( $(compgen -W "_radius,_height,_nb_subdivisions>0 >") ) return 0 ;; "-div3d" | "--div3d") COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") ) return 0 ;; "-double3d" | "--double3d") COMPREPLY=( $(compgen -W "is_doubled={0|1} >") ) return 0 ;; "-elevation3d" | "--elevation3d") COMPREPLY=( $(compgen -W "z-factor [elevation_map] 'formula' (noargs)") ) return 0 ;; "-extrude3d" | "--extrude3d") COMPREPLY=( $(compgen -W "_depth>0,_resolution>0,_smoothness[%]>=0 >") ) return 0 ;; "-focale3d" | "--focale3d") COMPREPLY=( $(compgen -W "focale >") ) return 0 ;; "-gaussians3d" | "--gaussians3d") COMPREPLY=( $(compgen -W "_size>0,_opacity >") ) return 0 ;; "-gyroid3d" | "--gyroid3d") COMPREPLY=( $(compgen -W "_resolution>0,_zoom >") ) return 0 ;; "-imagerubik3d" | "--imagerubik3d") COMPREPLY=( $(compgen -W "_xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100 >") ) return 0 ;; "-imagesphere3d" | "--imagesphere3d") COMPREPLY=( $(compgen -W "_resolution1>=3,_resolution2>=3 >") ) return 0 ;; "-isoline3d" | "--isoline3d") COMPREPLY=( $(compgen -W "isovalue[%] 'formula',value,_x0,_y0,_x1,_y1,_size_x>0[%],_size_y>0[%]") ) return 0 ;; "-isosurface3d" | "--isosurface3d") COMPREPLY=( $(compgen -W "isovalue[%] 'formula',value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x>0[%],_size_y>0[%],_size_z>0[%]") ) return 0 ;; "-label_points3d" | "--label_points3d") COMPREPLY=( $(compgen -W "_label_size>0,_opacity >") ) return 0 ;; "-lathe3d" | "--lathe3d") COMPREPLY=( $(compgen -W "_resolution>0,_smoothness[%]>=0,_max_angle>=0 >") ) return 0 ;; "-light3d" | "--light3d") COMPREPLY=( $(compgen -W "position_x,position_y,position_z [texture] (noargs)") ) return 0 ;; "-line3d" | "--line3d") COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1 >") ) return 0 ;; "-lissajous3d" | "--lissajous3d") COMPREPLY=( $(compgen -W "resolution>1,a,A,b,B,c,C >") ) return 0 ;; "-mode3d" | "--mode3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-moded3d" | "--moded3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-mul3d" | "--mul3d") COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") ) return 0 ;; "-opacity3d" | "--opacity3d") COMPREPLY=( $(compgen -W "opacity >") ) return 0 ;; "-parametric3d" | "--parametric3d") COMPREPLY=( $(compgen -W "_x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_isovalue>=0 >") ) return 0 ;; "-pca_patch3d" | "--pca_patch3d") COMPREPLY=( $(compgen -W "_patch_size>0,_M>0,_N>0,_normalize_input={0|1},_normalize_output={0|1},_lambda_xy >") ) return 0 ;; "-plane3d" | "--plane3d") COMPREPLY=( $(compgen -W "_size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0 >") ) return 0 ;; "-point3d" | "--point3d") COMPREPLY=( $(compgen -W "x0,y0,z0 >") ) return 0 ;; "-pose3d" | "--pose3d") COMPREPLY=( $(compgen -W "value1,..,value16 (noargs)") ) return 0 ;; "-primitives3d" | "--primitives3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-projections3d" | "--projections3d") COMPREPLY=( $(compgen -W "_x[%],_y[%],_z[%],_is_bounding_box={0|1} >") ) return 0 ;; "-pyramid3d" | "--pyramid3d") COMPREPLY=( $(compgen -W "width,height >") ) return 0 ;; "-quadrangle3d" | "--quadrangle3d") COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3 >") ) return 0 ;; "-rotate3d" | "--rotate3d") COMPREPLY=( $(compgen -W "u,v,w,angle >") ) return 0 ;; "-rotation3d" | "--rotation3d") COMPREPLY=( $(compgen -W "u,v,w,angle >") ) return 0 ;; "-sierpinski3d" | "--sierpinski3d") COMPREPLY=( $(compgen -W "_recursion_level>=0,_width,_height >") ) return 0 ;; "-snapshot3d" | "--snapshot3d") COMPREPLY=( $(compgen -W "_size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB >") ) return 0 ;; "-specl3d" | "--specl3d") COMPREPLY=( $(compgen -W "value>=0 >") ) return 0 ;; "-specs3d" | "--specs3d") COMPREPLY=( $(compgen -W "value>=0 >") ) return 0 ;; "-sphere3d" | "--sphere3d") COMPREPLY=( $(compgen -W "radius,_nb_recursions>=0 >") ) return 0 ;; "-spherical3d" | "--spherical3d") COMPREPLY=( $(compgen -W "_nb_azimuth>=3,_nb_zenith>=3,_radius_function(phi,theta) >") ) return 0 ;; "-spline3d" | "--spline3d") COMPREPLY=( $(compgen -W "x0[%],y0[%],z0[%],u0[%],v0[%],w0[%],x1[%],y1[%],z1[%],u1[%],v1[%],w1[%],_nb_vertices>=2 >") ) return 0 ;; "-star3d" | "--star3d") COMPREPLY=( $(compgen -W "nb_branches>0,0<=thickness<=1 >") ) return 0 ;; "-streamline3d" | "--streamline3d") COMPREPLY=( $(compgen -W "x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={0|1},_is_oriented={0|1} 'formula',x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={0|1},_is_oriented={0|1}") ) return 0 ;; "-sub3d" | "--sub3d") COMPREPLY=( $(compgen -W "tx,_ty,_tz >") ) return 0 ;; "-superformula3d" | "--superformula3d") COMPREPLY=( $(compgen -W "resolution>1,m>=1,n1,n2,n3 >") ) return 0 ;; "-text_pointcloud3d" | "--text_pointcloud3d") COMPREPLY=( $(compgen -W "_"text1",_"text2",_smoothness >") ) return 0 ;; "-text3d" | "--text3d") COMPREPLY=( $(compgen -W "text,_font_height>0,_depth>0,_smoothness >") ) return 0 ;; "-texturize3d" | "--texturize3d") COMPREPLY=( $(compgen -W "[ind_texture],_[ind_coords] >") ) return 0 ;; "-torus3d" | "--torus3d") COMPREPLY=( $(compgen -W "_radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2 >") ) return 0 ;; "-triangle3d" | "--triangle3d") COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,x2,y2,z2 >") ) return 0 ;; "-weird3d" | "--weird3d") COMPREPLY=( $(compgen -W "_resolution>0 >") ) return 0 ;; "-apply_parallel" | "--apply_parallel") COMPREPLY=( $(compgen -W ""command" >") ) return 0 ;; "-apply_parallel_overlap" | "--apply_parallel_overlap") COMPREPLY=( $(compgen -W ""command",overlap[%],nb_threads={0=auto|1|2|4|8|16} >") ) return 0 ;; "-check" | "--check") COMPREPLY=( $(compgen -W "expression >") ) return 0 ;; "-elif" | "--elif") COMPREPLY=( $(compgen -W "boolean filename") ) return 0 ;; "-error" | "--error") COMPREPLY=( $(compgen -W "message >") ) return 0 ;; "-exec" | "--exec") COMPREPLY=( $(compgen -W "command >") ) return 0 ;; "-if" | "--if") COMPREPLY=( $(compgen -W "boolean filename") ) return 0 ;; "-parallel" | "--parallel") COMPREPLY=( $(compgen -W ""command1","command2",... >") ) return 0 ;; "-progress" | "--progress") COMPREPLY=( $(compgen -W "0<=value<=100 -1") ) return 0 ;; "-repeat" | "--repeat") COMPREPLY=( $(compgen -W "nb_iterations >") ) return 0 ;; "-rprogress" | "--rprogress") COMPREPLY=( $(compgen -W "0<=value<=100|-1|"command",0<=value_min<=100,0<=value_max<=100 >") ) return 0 ;; "-skip" | "--skip") COMPREPLY=( $(compgen -W "item >") ) return 0 ;; "-status" | "--status") COMPREPLY=( $(compgen -W "value >") ) return 0 ;; "-while" | "--while") COMPREPLY=( $(compgen -W "boolean filename") ) return 0 ;; "-array" | "--array") COMPREPLY=( $(compgen -W "M>0,_N>0,_expand_type={0=min|1=max|2=all} >") ) return 0 ;; "-array_fade" | "--array_fade") COMPREPLY=( $(compgen -W "M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0=min|1=max|2=all} >") ) return 0 ;; "-array_mirror" | "--array_mirror") COMPREPLY=( $(compgen -W "N>=0,_dir={0=x|1=y|2=xy|3=tri-xy},_expand_type={0|1} >") ) return 0 ;; "-array_random" | "--array_random") COMPREPLY=( $(compgen -W "Ms>0,_Ns>0,_Md>0,_Nd>0 >") ) return 0 ;; "-frame_blur" | "--frame_blur") COMPREPLY=( $(compgen -W "_sharpness>0,_size>=0,_smoothness,_shading,_blur >") ) return 0 ;; "-frame_cube" | "--frame_cube") COMPREPLY=( $(compgen -W "_depth>=0,_x_center,_y_center,_left_side={0=normal|1=mirror-x|2=mirror-y|3=mirror-xy},_right_side,_lower_side,_upper_side >") ) return 0 ;; "-frame_fuzzy" | "--frame_fuzzy") COMPREPLY=( $(compgen -W "size_x>=0,_size_y>=0,_fuzzyness>=0,_smoothness>=0,_R,_G,_B,_A >") ) return 0 ;; "-frame_painting" | "--frame_painting") COMPREPLY=( $(compgen -W "_size[%]>=0,0<=_contrast<=1,_profile_smoothness[%]>=0,_R,_G,_B,_vignette_size[%]>=0,_vignette_contrast>=0,_defects_contrast>=0,0<=_defects_density<=100,_defects_size>=0,_defects_smoothness[%]>=0,_serial_number >") ) return 0 ;; "-frame_pattern" | "--frame_pattern") COMPREPLY=( $(compgen -W "M>=3,_pattern={0=firstimage|1=self},_constrain_size={0|1} >") ) return 0 ;; "-frame_round" | "--frame_round") COMPREPLY=( $(compgen -W "_sharpness>0,_size>=0,_smoothness,_shading,_R,_G,_B,_A >") ) return 0 ;; "-frame_x" | "--frame_x") COMPREPLY=( $(compgen -W "size_x[%]>=0,_col1,...,_colN >") ) return 0 ;; "-frame_xy" | "--frame_xy") COMPREPLY=( $(compgen -W "size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN >") ) return 0 ;; "-frame_xyz" | "--frame_xyz") COMPREPLY=( $(compgen -W "size_x[%]>=0,_size_y[%]>=0,_size_z[%]>=0_col1,...,_colN >") ) return 0 ;; "-frame_y" | "--frame_y") COMPREPLY=( $(compgen -W "size_y[%]>=0,_col1,...,_colN >") ) return 0 ;; "-imagegrid" | "--imagegrid") COMPREPLY=( $(compgen -W "M>0,_N>0 >") ) return 0 ;; "-linearize_tiles" | "--linearize_tiles") COMPREPLY=( $(compgen -W "M>0,_N>0 >") ) return 0 ;; "-quadratize_tiles" | "--quadratize_tiles") COMPREPLY=( $(compgen -W "M>0,_N>0 >") ) return 0 ;; "-rotate_tiles" | "--rotate_tiles") COMPREPLY=( $(compgen -W "angle,_M>0,N>0 >") ) return 0 ;; "-shift_tiles" | "--shift_tiles") COMPREPLY=( $(compgen -W "M>0,_N>0,_amplitude >") ) return 0 ;; "-taquin" | "--taquin") COMPREPLY=( $(compgen -W "M>0,_N>0 >") ) return 0 ;; "-tunnel" | "--tunnel") COMPREPLY=( $(compgen -W "_level>=0,_factor>0,_cx,_cy,_opacity,_angle >") ) return 0 ;; "-boxfitting" | "--boxfitting") COMPREPLY=( $(compgen -W "_min_box_size>=1,_max_box_size>=0,_initial_density>=0,_nb_attempts>=1 >") ) return 0 ;; "-cartoon" | "--cartoon") COMPREPLY=( $(compgen -W "_smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0 >") ) return 0 ;; "-circlism" | "--circlism") COMPREPLY=( $(compgen -W "_radius_min>0,_radius_max>0,_smoothness[%]>=0,_radius_linearity>=0,_location_linearity>=0,_shape={0=squares|1=diamonds|2=circle} >") ) return 0 ;; "-color_ellipses" | "--color_ellipses") COMPREPLY=( $(compgen -W "_count>0,_radius>=0,_opacity>=0 >") ) return 0 ;; "-cubism" | "--cubism") COMPREPLY=( $(compgen -W "_density>=0,0<=_thickness<=50,_max_angle,_opacity,_smoothness>=0 >") ) return 0 ;; "-dotsbw" | "--dotsbw") COMPREPLY=( $(compgen -W "_nb_scales>0,0<=_resolution<=100,_radius_factor>=0 >") ) return 0 ;; "-draw_whirl" | "--draw_whirl") COMPREPLY=( $(compgen -W "_amplitude>=0 >") ) return 0 ;; "-drawing" | "--drawing") COMPREPLY=( $(compgen -W "_amplitude>=0 >") ) return 0 ;; "-drop_shadow" | "--drop_shadow") COMPREPLY=( $(compgen -W "_offset_x[%],_offset_y[%],_smoothness[%]>=0,0<=_curvature<=1,_expand_size={0|1} >") ) return 0 ;; "-ellipsionism" | "--ellipsionism") COMPREPLY=( $(compgen -W "_R>0[%],_r>0[%],_smoothness>=0[%],_opacity,_outline>0,_density>0 >") ) return 0 ;; "-fire_edges" | "--fire_edges") COMPREPLY=( $(compgen -W "_edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0 >") ) return 0 ;; "-glow" | "--glow") COMPREPLY=( $(compgen -W "_amplitude>=0 >") ) return 0 ;; "-halftone" | "--halftone") COMPREPLY=( $(compgen -W "nb_levels>=2,_size_dark>=2,_size_bright>=2,_shape={0=square|1=diamond|2=circle|3=inv-square|4=inv-diamond|5=inv-circle},_smoothness[%]>=0 >") ) return 0 ;; "-hardsketchbw" | "--hardsketchbw") COMPREPLY=( $(compgen -W "_amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={0|1} >") ) return 0 ;; "-hearts" | "--hearts") COMPREPLY=( $(compgen -W "_density>=0 >") ) return 0 ;; "-houghsketchbw" | "--houghsketchbw") COMPREPLY=( $(compgen -W "_density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0 >") ) return 0 ;; "-lightrays" | "--lightrays") COMPREPLY=( $(compgen -W "100<=_density<=0,_cx,_cy,_ray_length>=0,_ray_attenuation>=0 >") ) return 0 ;; "-light_relief" | "--light_relief") COMPREPLY=( $(compgen -W "_ambient_light,_specular_lightness,_specular_size,_light_smoothness,_darkness,_xl,_yl,_zl,_zscale,_opacity_bumpmap={0|1} >") ) return 0 ;; "-mosaic" | "--mosaic") COMPREPLY=( $(compgen -W "_density>=0,_edges={0|1} >") ) return 0 ;; "-pencilbw" | "--pencilbw") COMPREPLY=( $(compgen -W "_size>=0,_amplitude>=0 >") ) return 0 ;; "-polaroid" | "--polaroid") COMPREPLY=( $(compgen -W "_size1>=0,_size2>=0 >") ) return 0 ;; "-poster_edges" | "--poster_edges") COMPREPLY=( $(compgen -W "0<=_edge_threshold<=100,0<=_edge_shade<=100,_edge_thickness>=0,_edge_antialiasing>=0,0<=_posterization_level<=15,_posterization_antialiasing>=0 >") ) return 0 ;; "-rodilius" | "--rodilius") COMPREPLY=( $(compgen -W "0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={0=darker|1=brighter} >") ) return 0 ;; "-stained_glass" | "--stained_glass") COMPREPLY=( $(compgen -W "_edges[%]>=0,shading>=0,is_thin_separators={0|1} >") ) return 0 ;; "-stars" | "--stars") COMPREPLY=( $(compgen -W "_density[%]>=0,_depth>=0,_size>0,_nb_branches>=1,0<=_thickness<=1,_smoothness[%]>=0,_R,_G,_B,_opacity >") ) return 0 ;; "-sponge" | "--sponge") COMPREPLY=( $(compgen -W "_size>0 >") ) return 0 ;; "-stencil" | "--stencil") COMPREPLY=( $(compgen -W "_radius[%]>=0,_smoothness>=0,_iterations>=0 >") ) return 0 ;; "-stencilbw" | "--stencilbw") COMPREPLY=( $(compgen -W "_edges>=0,_smoothness>=0 >") ) return 0 ;; "-tetris" | "--tetris") COMPREPLY=( $(compgen -W "_scale>0 >") ) return 0 ;; "-warhol" | "--warhol") COMPREPLY=( $(compgen -W "_M>0,_N>0,_smoothness>=0,_color>=0 >") ) return 0 ;; "-weave" | "--weave") COMPREPLY=( $(compgen -W "_density>=0,0<=_thickness<=100,0<=_shadow<=100,_shading>=0,_fibers_amplitude>=0,_fibers_smoothness>=0,_angle,-1<=_x_curvature<=1,-1<=_y_curvature<=1 >") ) return 0 ;; "-whirls" | "--whirls") COMPREPLY=( $(compgen -W "_texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0 >") ) return 0 ;; "-euclidean2polar" | "--euclidean2polar") COMPREPLY=( $(compgen -W "_cx,_cy,_n>0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-deform" | "--deform") COMPREPLY=( $(compgen -W "_amplitude>=0 >") ) return 0 ;; "-fisheye" | "--fisheye") COMPREPLY=( $(compgen -W "_x,_y,0<=_radius<=100,_amplitude>=0 >") ) return 0 ;; "-flower" | "--flower") COMPREPLY=( $(compgen -W "_amplitude,_frequency,_offset_r[%],_angle,_cx,_cy,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-kaleidoscope" | "--kaleidoscope") COMPREPLY=( $(compgen -W "_cx,_cy,_radius,_angle,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-map_sphere" | "--map_sphere") COMPREPLY=( $(compgen -W "_width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0 >") ) return 0 ;; "-polar2euclidean" | "--polar2euclidean") COMPREPLY=( $(compgen -W "_cx,_cy,_n>0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-raindrops" | "--raindrops") COMPREPLY=( $(compgen -W "_amplitude,_density>=0,_wavelength>=0,_merging_steps>=0 >") ) return 0 ;; "-ripple" | "--ripple") COMPREPLY=( $(compgen -W "_amplitude,_frequency,_shape={0=bloc|1=triangle|2=sine|3=sine+|4=random},_angle,_offset >") ) return 0 ;; "-rotoidoscope" | "--rotoidoscope") COMPREPLY=( $(compgen -W "_cx,_cy,_tiles>0,_smoothness[%]>=0,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-symmetrize" | "--symmetrize") COMPREPLY=( $(compgen -W "_x[%],_y[%],_angle,_boundary={0=dirichlet|1=neumann|2=cyclic},_is_antisymmetry={0|1},_swap_sides={0|1} >") ) return 0 ;; "-transform_polar" | "--transform_polar") COMPREPLY=( $(compgen -W ""expr_radius",_"expr_angle",_x_center,_y_center,_boundary={0=dirichlet|1=neumann} >") ) return 0 ;; "-twirl" | "--twirl") COMPREPLY=( $(compgen -W "_amplitude,_cx,_cy,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-warp_perspective" | "--warp_perspective") COMPREPLY=( $(compgen -W "_x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-water" | "--water") COMPREPLY=( $(compgen -W "_amplitude>=0,_smoothness>=0 >") ) return 0 ;; "-wave" | "--wave") COMPREPLY=( $(compgen -W "_amplitude>=0,_frequency>=0,_center_x,_center_y >") ) return 0 ;; "-wind" | "--wind") COMPREPLY=( $(compgen -W "_amplitude>=0,_angle,0<=_attenuation<=1,_threshold >") ) return 0 ;; "-zoom" | "--zoom") COMPREPLY=( $(compgen -W "_factor,_cx,_cy,_cz,_boundary={0=dirichlet|1=neumann|2=cyclic} >") ) return 0 ;; "-cracks" | "--cracks") COMPREPLY=( $(compgen -W "_density>=0,_amplitude,_relief={0|1} >") ) return 0 ;; "-light_patch" | "--light_patch") COMPREPLY=( $(compgen -W "_density>0,_darkness>=0,_lightness>=0 >") ) return 0 ;; "-noise_hurl" | "--noise_hurl") COMPREPLY=( $(compgen -W "_amplitude>=0 >") ) return 0 ;; "-pixelize" | "--pixelize") COMPREPLY=( $(compgen -W "_scale_x>0,_scale_y>0,_scale_z>0 >") ) return 0 ;; "-shade_stripes" | "--shade_stripes") COMPREPLY=( $(compgen -W "_frequency>=0,_direction={0=horizontal|1=vertical},_darkness>=0,_lightness>=0 >") ) return 0 ;; "-shadow_patch" | "--shadow_patch") COMPREPLY=( $(compgen -W "_opacity>=0 >") ) return 0 ;; "-spread" | "--spread") COMPREPLY=( $(compgen -W "_dx>=0,_dy>=0,_dz>=0 >") ) return 0 ;; "-stripes_y" | "--stripes_y") COMPREPLY=( $(compgen -W "_frequency>=0 >") ) return 0 ;; "-texturize_canvas" | "--texturize_canvas") COMPREPLY=( $(compgen -W "_amplitude>=0,_fibrousness>=0,_emboss_level>=0 >") ) return 0 ;; "-vignette" | "--vignette") COMPREPLY=( $(compgen -W "_strength>=0,0<=_radius_min<=100,0<=_radius_max<=100 >") ) return 0 ;; "-watermark_visible" | "--watermark_visible") COMPREPLY=( $(compgen -W "_text,0<_opacity<1,_size>0,_angle,_mode={0=remove|1=add},_smoothness>=0 >") ) return 0 ;; "-blend" | "--blend") COMPREPLY=( $(compgen -W "blending_mode,0<=_opacity<=1,_revert_layer_order={0|1} >") ) return 0 ;; "-blend_edges" | "--blend_edges") COMPREPLY=( $(compgen -W "smoothness[%]>=0 >") ) return 0 ;; "-fade_diamond" | "--fade_diamond") COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-fade_linear" | "--fade_linear") COMPREPLY=( $(compgen -W "_angle,0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-fade_radial" | "--fade_radial") COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-fade_x" | "--fade_x") COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-fade_y" | "--fade_y") COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-fade_z" | "--fade_z") COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") ) return 0 ;; "-animate" | "--animate") COMPREPLY=( $(compgen -W "filter_name,"param1_start,..,paramN_start","param1_end,..,paramN_end",nb_frames>=0,_output_frames={0|1},_output_filename delay>0") ) return 0 ;; "-morph" | "--morph") COMPREPLY=( $(compgen -W "nb_frames>0,_smoothness>=0,_precision>0 >") ) return 0 ;; "-register_nonrigid" | "--register_nonrigid") COMPREPLY=( $(compgen -W "_smoothness>=0,_precision>0,_nb_scale>=0 >") ) return 0 ;; "-register_rigid" | "--register_rigid") COMPREPLY=( $(compgen -W "_smoothness>=0 >") ) return 0 ;; "-transition_plasma" | "--transition_plasma") COMPREPLY=( $(compgen -W "_nb_frames>=2,_scale>=0,_smoothness[%]>=0 >") ) return 0 ;; "-transition3d" | "--transition3d") COMPREPLY=( $(compgen -W "_nb_frames>=2,_nb_xtiles>0,_nb_ytiles>0,_axis_x,_axis_y,_axis_z,_is_antialias >") ) return 0 ;; "-x_jawbreaker" | "--x_jawbreaker") COMPREPLY=( $(compgen -W "0<_width<20,0<_height<20,0<_balls<=8 >") ) return 0 ;; "-x_mandelbrot" | "--x_mandelbrot") COMPREPLY=( $(compgen -W "_julia={0|1},_c0r,_c0i >") ) return 0 ;; "-x_minesweeper" | "--x_minesweeper") COMPREPLY=( $(compgen -W "8<=_width=<20,8<=_height<=20 >") ) return 0 ;; "-x_quantize_rgb" | "--x_quantize_rgb") COMPREPLY=( $(compgen -W "_nbcolors>=2 >") ) return 0 ;; "-x_whirl" | "--x_whirl") COMPREPLY=( $(compgen -W "_opacity>=0 >") ) return 0 ;; "-output_pink3d" | "--output_pink3d") COMPREPLY=( $(compgen -W "filename >") ) return 0 ;; "-pink_grayskel" | "--pink_grayskel") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_lambda=0 >") ) return 0 ;; "-pink_heightmaxima" | "--pink_heightmaxima") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_height=1 >") ) return 0 ;; "-pink_heightminima" | "--pink_heightminima") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_height=1 >") ) return 0 ;; "-pink_htkern" | "--pink_htkern") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_type={""|u} >") ) return 0 ;; "-pink_lvkern" | "--pink_lvkern") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_type={""|u} >") ) return 0 ;; "-pink_reg_minima" | "--pink_reg_minima") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26} >") ) return 0 ;; "-pink_skelcurv" | "--pink_skelcurv") COMPREPLY=( $(compgen -W "_prio={0|1|2|3|4|8|6|26},_connectivity={4|8|6|26},_inhibit={""} >") ) return 0 ;; "-pink_skelend" | "--pink_skelend") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_n=0 >") ) return 0 ;; "-pink_skeleton" | "--pink_skeleton") COMPREPLY=( $(compgen -W "_prio={0|1|2|3|4|8|6|26},_connectivity={4|8|6|26},_inhibit={""} >") ) return 0 ;; "-pink_skelpar" | "--pink_skelpar") COMPREPLY=( $(compgen -W "_algorithm={0..29},_nsteps=_1,_inhibit="" >") ) return 0 ;; "-pink_wshed" | "--pink_wshed") COMPREPLY=( $(compgen -W "_connectivity={4|8|6|26},_inverse={0|1},_height=0 >") ) return 0 ;; "-alert" | "--alert") COMPREPLY=( $(compgen -W "_title,_message,_label_button1,_label_button2,... >") ) return 0 ;; "-arg" | "--arg") COMPREPLY=( $(compgen -W "n,_arg1,...,_argN >") ) return 0 ;; "-at" | "--at") COMPREPLY=( $(compgen -W "_x,_y,_z >") ) return 0 ;; "-autocrop_coords" | "--autocrop_coords") COMPREPLY=( $(compgen -W "value1,value2,...|auto >") ) return 0 ;; "-basename" | "--basename") COMPREPLY=( $(compgen -W "file_path,_variable_name_for_folder >") ) return 0 ;; "-bin" | "--bin") COMPREPLY=( $(compgen -W "binary_int1,... >") ) return 0 ;; "-bin2dec" | "--bin2dec") COMPREPLY=( $(compgen -W "binary_int1,... >") ) return 0 ;; "-dec" | "--dec") COMPREPLY=( $(compgen -W "decimal_int1,... >") ) return 0 ;; "-dec2str" | "--dec2str") COMPREPLY=( $(compgen -W "decimal_int1,... >") ) return 0 ;; "-dec2bin" | "--dec2bin") COMPREPLY=( $(compgen -W "decimal_int1,... >") ) return 0 ;; "-dec2hex" | "--dec2hex") COMPREPLY=( $(compgen -W "decimal_int1,... >") ) return 0 ;; "-dec2oct" | "--dec2oct") COMPREPLY=( $(compgen -W "decimal_int1,... >") ) return 0 ;; "-fact" | "--fact") COMPREPLY=( $(compgen -W "value >") ) return 0 ;; "-file_mv" | "--file_mv") COMPREPLY=( $(compgen -W "filename_src,filename_dest >") ) return 0 ;; "-file_rm" | "--file_rm") COMPREPLY=( $(compgen -W "filename >") ) return 0 ;; "-filename" | "--filename") COMPREPLY=( $(compgen -W "filename,_number1,_number2,...,_numberN >") ) return 0 ;; "-fitratio_wh" | "--fitratio_wh") COMPREPLY=( $(compgen -W "min_width,min_height,ratio_wh >") ) return 0 ;; "-fitscreen" | "--fitscreen") COMPREPLY=( $(compgen -W "width,height,_depth >") ) return 0 ;; "-gcd" | "--gcd") COMPREPLY=( $(compgen -W "a,b >") ) return 0 ;; "-hex" | "--hex") COMPREPLY=( $(compgen -W "hexadecimal_int1,... >") ) return 0 ;; "-hex2dec" | "--hex2dec") COMPREPLY=( $(compgen -W "hexadecimal_int1,... >") ) return 0 ;; "-hex2str" | "--hex2str") COMPREPLY=( $(compgen -W "hexadecimal_string >") ) return 0 ;; "-img2text" | "--img2text") COMPREPLY=( $(compgen -W "_line_separator >") ) return 0 ;; "-is_percent" | "--is_percent") COMPREPLY=( $(compgen -W "string >") ) return 0 ;; "-oct" | "--oct") COMPREPLY=( $(compgen -W "octal_int1,... >") ) return 0 ;; "-oct2dec" | "--oct2dec") COMPREPLY=( $(compgen -W "octal_int1,... >") ) return 0 ;; "-padint" | "--padint") COMPREPLY=( $(compgen -W "number,_size>0 >") ) return 0 ;; "-quote" | "--quote") COMPREPLY=( $(compgen -W "string >") ) return 0 ;; "-region_feature" | "--region_feature") COMPREPLY=( $(compgen -W "region_label,feature,_default_value >") ) return 0 ;; "-str" | "--str") COMPREPLY=( $(compgen -W "string >") ) return 0 ;; "-str2hex" | "--str2hex") COMPREPLY=( $(compgen -W "string >") ) return 0 ;; "-stresc" | "--stresc") COMPREPLY=( $(compgen -W "val1,...,valN >") ) return 0 ;; "-strcat" | "--strcat") COMPREPLY=( $(compgen -W "string1,string2,... >") ) return 0 ;; "-strcmp" | "--strcmp") COMPREPLY=( $(compgen -W "string1,string2 >") ) return 0 ;; "-strlen" | "--strlen") COMPREPLY=( $(compgen -W "string1 >") ) return 0 ;; "-strreplace" | "--strreplace") COMPREPLY=( $(compgen -W "string,search,replace >") ) return 0 ;; "-struncase" | "--struncase") COMPREPLY=( $(compgen -W "string >") ) return 0 ;; "-gpt" | "--gpt") COMPREPLY=( $(compgen -W "_scorefile,_number_of_sessions>=0 >") ) return 0 ;; "-h" | "--h") COMPREPLY=( $(compgen -W "$coms" -- "$cur") ) return 0 ;; "-d" | "--d") COMPREPLY=( $(compgen -W "_X,_Y,_Z >") ) return 0 ;; "-da" | "--da") COMPREPLY=( $(compgen -W "_width>0,_height>0 >") ) return 0 ;; "-dg" | "--dg") COMPREPLY=( $(compgen -W "_width>32,_height>32,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel >") ) return 0 ;; "-dh" | "--dh") COMPREPLY=( $(compgen -W "_width>0,_height>0,_clusters>0,_min_value[%],_max_value[%],_show_axes={0|1} >") ) return 0 ;; "-dp" | "--dp") COMPREPLY=( $(compgen -W "_width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end >") ) return 0 ;; "-dt" | "--dt") COMPREPLY=( $(compgen -W "_size_factor>0,_ellipse_factor>=0,_colored_mode={0|1} >") ) return 0 ;; "-dw" | "--dw") COMPREPLY=( $(compgen -W "_cell_size>0 >") ) return 0 ;; "-e" | "--e") COMPREPLY=( $(compgen -W "message >") ) return 0 ;; "-on" | "--on") COMPREPLY=( $(compgen -W "filename >") ) return 0 ;; "-op" | "--op") COMPREPLY=( $(compgen -W "prefix >") ) return 0 ;; "-sh" | "--sh") COMPREPLY=( $(compgen -W "x0[%],x1[%],y[%],z[%],v[%] y0[%],y1[%],z[%],v[%] z0[%],z1[%],v[%] v0[%],v1[%] (noargs)") ) return 0 ;; "-w" | "--w") COMPREPLY=( $(compgen -W "_width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_title >") ) return 0 ;; "-mv" | "--mv") COMPREPLY=( $(compgen -W "position[%] >") ) return 0 ;; "-nm" | "--nm") COMPREPLY=( $(compgen -W "name,_is_modified={0|1} >") ) return 0 ;; "-+" | "--+") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-<<" | "--<<") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "->>" | "-->>") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-/" | "--/") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-==" | "--==") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "->=" | "-->=") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "->" | "-->") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-<=" | "--<=") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-<" | "--<") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-//" | "--//") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-%" | "--%") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-**" | "--**") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-*" | "--*") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-!=" | "--!=") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-^" | "--^") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "--" | "---") COMPREPLY=( $(compgen -W "value[%] [image] 'formula' (noargs)") ) return 0 ;; "-c" | "--c") COMPREPLY=( $(compgen -W "{value0[%]|[image0]},{value1[%]|[image1]} [image] (noargs)") ) return 0 ;; "-f" | "--f") COMPREPLY=( $(compgen -W "value1,_value2,.. [image] 'formula'") ) return 0 ;; "-n" | "--n") COMPREPLY=( $(compgen -W "{value0[%]|[image0]},{value1[%]|[image1]} [image]") ) return 0 ;; "-=" | "--=") COMPREPLY=( $(compgen -W "value,_x[%],_y[%],_z[%],_c[%] >") ) return 0 ;; "-t2" | "--t2") COMPREPLY=( $(compgen -W "min[%],max[%] >") ) return 0 ;; "-fc" | "--fc") COMPREPLY=( $(compgen -W "col1,...,colN >") ) return 0 ;; "-a" | "--a") COMPREPLY=( $(compgen -W "[image],axis,_alignment axis,_alignment") ) return 0 ;; "-z" | "--z") COMPREPLY=( $(compgen -W "x0[%],x1[%],_boundary x0[%],y0[%],x1[%],y1[%],_boundary x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary (noargs)") ) return 0 ;; "-r" | "--r") COMPREPLY=( $(compgen -W "[image],_interpolation,_boundary,_ax,_ay,_az,_ac {[image_w]|width>0[%]},_{[image_h]|height>0[%]},_{[image_d]|depth>0[%]},_{[image_s]|spectrum>0[%]},_interpolation,_boundary,_ax,_ay,_az,_ac (noargs)") ) return 0 ;; "-rr2d" | "--rr2d") COMPREPLY=( $(compgen -W "width>0,height>0,_mode={0=inside|1=outside|2=padded},0=<_interpolation<=6 >") ) return 0 ;; "-r2dx" | "--r2dx") COMPREPLY=( $(compgen -W "width>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-r2dy" | "--r2dy") COMPREPLY=( $(compgen -W "height>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-r3dx" | "--r3dx") COMPREPLY=( $(compgen -W "width>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-r3dy" | "--r3dy") COMPREPLY=( $(compgen -W "height>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-r3dz" | "--r3dz") COMPREPLY=( $(compgen -W "depth>0,_interpolation,_boundary,_ax,_ay,_az,_ac >") ) return 0 ;; "-s" | "--s") COMPREPLY=( $(compgen -W "{x|y|z|c}..{x|y|z|c},_nb_parts keep_splitting_values={+|-},value1,value2,...") ) return 0 ;; "-y" | "--y") COMPREPLY=( $(compgen -W "axis={x|y|z|c} >") ) return 0 ;; "-b" | "--b") COMPREPLY=( $(compgen -W "std_variation>=0[%],_boundary={0=dirichlet|1=neumann},_kernel={0=quasi-gaussian(faster)|1=gaussian} >") ) return 0 ;; "-g" | "--g") COMPREPLY=( $(compgen -W "{x|y|z}..{x|y|z},_scheme (noargs)") ) return 0 ;; "-j" | "--j") COMPREPLY=( $(compgen -W "[sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask >") ) return 0 ;; "-t" | "--t") COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height>=0,_opacity,_color1,.. >") ) return 0 ;; "-+3d" | "--+3d") COMPREPLY=( $(compgen -W "tx,_ty,_tz [object3d] (noargs)") ) return 0 ;; "-b3d" | "--b3d") COMPREPLY=( $(compgen -W "R,_G,_B [image] (noargs)") ) return 0 ;; "-col3d" | "--col3d") COMPREPLY=( $(compgen -W "R,_G,_B,_opacity >") ) return 0 ;; "-/3d" | "--/3d") COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") ) return 0 ;; "-db3d" | "--db3d") COMPREPLY=( $(compgen -W "is_doubled={0|1} >") ) return 0 ;; "-f3d" | "--f3d") COMPREPLY=( $(compgen -W "focale >") ) return 0 ;; "-l3d" | "--l3d") COMPREPLY=( $(compgen -W "position_x,position_y,position_z [texture] (noargs)") ) return 0 ;; "-m3d" | "--m3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-md3d" | "--md3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-*3d" | "--*3d") COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") ) return 0 ;; "-o3d" | "--o3d") COMPREPLY=( $(compgen -W "opacity >") ) return 0 ;; "-p3d" | "--p3d") COMPREPLY=( $(compgen -W "mode >") ) return 0 ;; "-r3d" | "--r3d") COMPREPLY=( $(compgen -W "u,v,w,angle >") ) return 0 ;; "-sl3d" | "--sl3d") COMPREPLY=( $(compgen -W "value>=0 >") ) return 0 ;; "-ss3d" | "--ss3d") COMPREPLY=( $(compgen -W "value>=0 >") ) return 0 ;; "--3d" | "---3d") COMPREPLY=( $(compgen -W "tx,_ty,_tz >") ) return 0 ;; "-t3d" | "--t3d") COMPREPLY=( $(compgen -W "[ind_texture],_[ind_coords] >") ) return 0 ;; "-x" | "--x") COMPREPLY=( $(compgen -W "command >") ) return 0 ;; "-u" | "--u") COMPREPLY=( $(compgen -W "value >") ) return 0 ;; "-frame" | "--frame") COMPREPLY=( $(compgen -W "size_x[%]>=0,_size_y[%]>=0,_col1,...,_colN >") ) return 0 ;; esac if [[ "$cur" == -* ]] ; then COMPREPLY=( $(compgen -W "$opts" -- "$cur") ) else _filedir fi } complete -F _gmic_def -o filenames gmicgmic-1.5.7.1/src/CImg.h0000664000175000017500001060057712216303501014634 0ustar dtschumpdtschump/* # # File : CImg.h # ( C++ header file ) # # Description : The C++ Template Image Processing Toolkit. # This file is the main component of the CImg Library project. # ( http://cimg.sourceforge.net ) # # Project manager : David Tschumperle. # ( http://tschumperle.users.greyc.fr/ ) # # A complete list of contributors is available in file 'README.txt' # distributed within the CImg package. # # Licenses : This file is 'dual-licensed', you have to choose one # of the two licenses below to apply. # # CeCILL-C # The CeCILL-C license is close to the GNU LGPL. # ( http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html ) # # or CeCILL v2.0 # The CeCILL license is compatible with the GNU GPL. # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed either by the CeCILL or the CeCILL-C license # under French law and abiding by the rules of distribution of free software. # You can use, modify and or redistribute the software under the terms of # the CeCILL or CeCILL-C licenses as circulated by CEA, CNRS and INRIA # at the following URL: "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL and CeCILL-C licenses and that you accept its terms. # */ // Set version number of the library. #ifndef cimg_version #define cimg_version 157 /*----------------------------------------------------------- # # Test and possibly auto-set CImg configuration variables # and include required headers. # # If you find that the default configuration variables are # not adapted to your system, you can override their values # before including the header file "CImg.h" # (use the #define directive). # ------------------------------------------------------------*/ // Include standard C++ headers. // This is the minimal set of required headers to make CImg-based codes compile. #include #include #include #include #include #include #include // Detect/configure OS variables. // // Define 'cimg_OS' to: '0' for an unknown OS (will try to minize library dependencies). // '1' for a Unix-like OS (Linux, Solaris, BSD, MacOSX, Irix, ...). // '2' for Microsoft Windows. // (auto-detection is performed if 'cimg_OS' is not set by the user). #ifndef cimg_OS #if defined(unix) || defined(__unix) || defined(__unix__) \ || defined(linux) || defined(__linux) || defined(__linux__) \ || defined(sun) || defined(__sun) \ || defined(BSD) || defined(__OpenBSD__) || defined(__NetBSD__) \ || defined(__FreeBSD__) || defined __DragonFly__ \ || defined(sgi) || defined(__sgi) \ || defined(__MACOSX__) || defined(__APPLE__) \ || defined(__CYGWIN__) #define cimg_OS 1 #elif defined(_MSC_VER) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \ || defined(WIN64) || defined(_WIN64) || defined(__WIN64__) #define cimg_OS 2 #else #define cimg_OS 0 #endif #elif !(cimg_OS==0 || cimg_OS==1 || cimg_OS==2) #error CImg Library: Invalid configuration variable 'cimg_OS'. #error (correct values are '0 = unknown OS', '1 = Unix-like OS', '2 = Microsoft Windows'). #endif // Disable silly warnings on some Microsoft VC++ compilers. #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable:4311) #pragma warning(disable:4312) #pragma warning(disable:4800) #pragma warning(disable:4804) #pragma warning(disable:4996) #define _CRT_SECURE_NO_DEPRECATE 1 #define _CRT_NONSTDC_NO_DEPRECATE 1 #endif // Include OS-specific headers. #if cimg_OS==1 #include #include #include #elif cimg_OS==2 #ifndef NOMINMAX #define NOMINMAX #endif #include #ifndef _WIN32_IE #define _WIN32_IE 0x0400 #endif #include #include #include #define cimg_snprintf _snprintf #define cimg_vsnprintf _vsnprintf #endif #ifndef cimg_snprintf #include #define cimg_snprintf snprintf #define cimg_vsnprintf vsnprintf #endif // Configure filename separator. // // Filename separator is set by default to '/', except for Windows where it is '\'. #ifndef cimg_file_separator #if cimg_OS==2 #define cimg_file_separator '\\' #else #define cimg_file_separator '/' #endif #endif // Configure verbosity of output messages. // // Define 'cimg_verbosity' to: '0' to hide library messages (quiet mode). // '1' to output library messages on the console. // '2' to output library messages on a basic dialog window (default behavior). // '3' to do as '1' + add extra warnings (may slow down the code!). // '4' to do as '2' + add extra warnings (may slow down the code!). // // Define 'cimg_strict_warnings' to replace warning messages by exception throwns. // // Define 'cimg_use_vt100' to allow output of color messages on VT100-compatible terminals. #ifndef cimg_verbosity #define cimg_verbosity 2 #elif !(cimg_verbosity==0 || cimg_verbosity==1 || cimg_verbosity==2 || cimg_verbosity==3 || cimg_verbosity==4) #error CImg Library: Configuration variable 'cimg_verbosity' is badly defined. #error (should be { 0=quiet | 1=console | 2=dialog | 3=console+warnings | 4=dialog+warnings }). #endif // Configure display framework. // // Define 'cimg_display' to: '0' to disable display capabilities. // '1' to use the X-Window framework (X11). // '2' to use the Microsoft GDI32 framework. #ifndef cimg_display #if cimg_OS==0 #define cimg_display 0 #elif cimg_OS==1 #if defined(__MACOSX__) || defined(__APPLE__) #define cimg_display 1 #else #define cimg_display 1 #endif #elif cimg_OS==2 #define cimg_display 2 #endif #elif !(cimg_display==0 || cimg_display==1 || cimg_display==2) #error CImg Library: Configuration variable 'cimg_display' is badly defined. #error (should be { 0=none | 1=X-Window (X11) | 2=Microsoft GDI32 }). #endif // Include display-specific headers. #if cimg_display==1 #include #include #include #include #ifdef cimg_use_xshm #include #include #include #endif #ifdef cimg_use_xrandr #include #endif #endif #ifndef cimg_appname #define cimg_appname "CImg" #endif // Configure OpenMP support. // (http://www.openmp.org) // // Define 'cimg_use_openmp' to enable OpenMP support. // // OpenMP directives may be used in a (very) few CImg functions to get // advantages of multi-core CPUs. #ifdef cimg_use_openmp #include "omp.h" #endif // Configure OpenCV support. // (http://opencv.willowgarage.com/wiki/) // // Define 'cimg_use_opencv' to enable OpenCV support. // // OpenCV library may be used to access images from cameras // (see method 'CImg::load_camera()'). #ifdef cimg_use_opencv #ifdef True #undef True #define _cimg_redefine_True #endif #ifdef False #undef False #define _cimg_redefine_False #endif #include #include "cv.h" #include "highgui.h" #endif // Configure LibPNG support. // (http://www.libpng.org) // // Define 'cimg_use_png' to enable LibPNG support. // // PNG library may be used to get a native support of '.png' files. // (see methods 'CImg::{load,save}_png()'. #ifdef cimg_use_png extern "C" { #include "png.h" } #endif // Configure LibJPEG support. // (http://en.wikipedia.org/wiki/Libjpeg) // // Define 'cimg_use_jpeg' to enable LibJPEG support. // // JPEG library may be used to get a native support of '.jpg' files. // (see methods 'CImg::{load,save}_jpeg()'). #ifdef cimg_use_jpeg extern "C" { #include "jpeglib.h" #include "setjmp.h" } #endif // Configure LibTIFF support. // (http://www.libtiff.org) // // Define 'cimg_use_tiff' to enable LibTIFF support. // // TIFF library may be used to get a native support of '.tif' files. // (see methods 'CImg[List]::{load,save}_tiff()'). #ifdef cimg_use_tiff extern "C" { #define uint64 uint64_hack_ #define int64 int64_hack_ #include "tiffio.h" #undef uint64 #undef int64 } #endif // Configure LibMINC2 support. // (http://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_File_Format_Reference) // // Define 'cimg_use_minc2' to enable LibMINC2 support. // // MINC2 library may be used to get a native support of '.mnc' files. // (see methods 'CImg::{load,save}_minc2()'). #ifdef cimg_use_minc2 #include "minc_io_simple_volume.h" #include "minc_1_simple.h" #include "minc_1_simple_rw.h" #endif // Configure FFMPEG support. // (http://www.ffmpeg.org) // // Define 'cimg_use_ffmpeg' to enable FFMPEG lib support. // // Avcodec and Avformat libraries from FFMPEG may be used // to get a native support of various video file formats. // (see methods 'CImg[List]::load_ffmpeg()'). #ifdef cimg_use_ffmpeg #if (defined(_STDINT_H) || defined(_STDINT_H_)) && !defined(UINT64_C) #warning "__STDC_CONSTANT_MACROS has to be defined before including , this file will probably not compile." #endif #ifndef __STDC_CONSTANT_MACROS #define __STDC_CONSTANT_MACROS // ...or stdint.h wont' define UINT64_C, needed by libavutil #endif extern "C" { #include "avformat.h" #include "avcodec.h" #include "swscale.h" } #endif // Configure Zlib support. // (http://www.zlib.net) // // Define 'cimg_use_zlib' to enable Zlib support. // // Zlib library may be used to allow compressed data in '.cimgz' files // (see methods 'CImg[List]::{load,save}_cimg()'). #ifdef cimg_use_zlib extern "C" { #include "zlib.h" } #endif // Configure Magick++ support. // (http://www.imagemagick.org/Magick++) // // Define 'cimg_use_magick' to enable Magick++ support. // // Magick++ library may be used to get a native support of various image file formats. // (see methods 'CImg::{load,save}()'). #ifdef cimg_use_magick #include "Magick++.h" #endif // Configure FFTW3 support. // (http://www.fftw.org) // // Define 'cimg_use_fftw3' to enable libFFTW3 support. // // FFTW3 library may be used to efficiently compute the Fast Fourier Transform // of image data, without restriction on the image size. // (see method 'CImg[List]::FFT()'). #ifdef cimg_use_fftw3 extern "C" { #include "fftw3.h" } #endif // Configure LibBoard support. // (http://libboard.sourceforge.net/) // // Define 'cimg_use_board' to enable Board support. // // Board library may be used to draw 3d objects in vector-graphics canvas // that can be saved as '.ps' or '.svg' files afterwards. // (see method 'CImg::draw_object3d()'). #ifdef cimg_use_board #ifdef None #undef None #define _cimg_redefine_None #endif #include "Board.h" #endif // Configure OpenEXR support. // (http://www.openexr.com/) // // Define 'cimg_use_openexr' to enable OpenEXR support. // // OpenEXR library may be used to get a native support of '.exr' files. // (see methods 'CImg::{load,save}_exr()'). #ifdef cimg_use_openexr #include "ImfRgbaFile.h" #include "ImfInputFile.h" #include "ImfChannelList.h" #include "ImfMatrixAttribute.h" #include "ImfArray.h" #endif // Lapack configuration. // (http://www.netlib.org/lapack) // // Define 'cimg_use_lapack' to enable LAPACK support. // // Lapack library may be used in several CImg methods to speed up // matrix computations (eigenvalues, inverse, ...). #ifdef cimg_use_lapack extern "C" { extern void sgetrf_(int*, int*, float*, int*, int*, int*); extern void sgetri_(int*, float*, int*, int*, float*, int*, int*); extern void sgetrs_(char*, int*, int*, float*, int*, int*, float*, int*, int*); extern void sgesvd_(char*, char*, int*, int*, float*, int*, float*, float*, int*, float*, int*, float*, int*, int*); extern void ssyev_(char*, char*, int*, float*, int*, float*, float*, int*, int*); extern void dgetrf_(int*, int*, double*, int*, int*, int*); extern void dgetri_(int*, double*, int*, int*, double*, int*, int*); extern void dgetrs_(char*, int*, int*, double*, int*, int*, double*, int*, int*); extern void dgesvd_(char*, char*, int*, int*, double*, int*, double*, double*, int*, double*, int*, double*, int*, int*); extern void dsyev_(char*, char*, int*, double*, int*, double*, double*, int*, int*); extern void dgels_(char*, int*,int*,int*,double*,int*,double*,int*,double*,int*,int*); extern void sgels_(char*, int*,int*,int*,float*,int*,float*,int*,float*,int*,int*); } #endif // Check if min/max/PI macros are defined. // // CImg does not compile if macros 'min', 'max' or 'PI' are defined, // because it redefines functions min(), max() and const variable PI in the cimg:: namespace. // so it '#undef' these macros if necessary, and restore them to reasonable // values at the end of this file. #ifdef min #undef min #define _cimg_redefine_min #endif #ifdef max #undef max #define _cimg_redefine_max #endif #ifdef PI #undef PI #define _cimg_redefine_PI #endif // Define 'cimg_library' namespace suffix. // // You may want to add a suffix to the 'cimg_library' namespace, for instance if you need to work // with several versions of the library at the same time. #ifdef cimg_namespace_suffix #define __cimg_library_suffixed(s) cimg_library_##s #define _cimg_library_suffixed(s) __cimg_library_suffixed(s) #define cimg_library_suffixed _cimg_library_suffixed(cimg_namespace_suffix) #else #define cimg_library_suffixed cimg_library #endif /*------------------------------------------------------------------------------ # # Define user-friendly macros. # # These CImg macros are prefixed by 'cimg_' and can be used safely in your own # code. They are useful to parse command line options, or to write image loops. # ------------------------------------------------------------------------------*/ // Macros to define program usage, and retrieve command line arguments. #define cimg_usage(usage) cimg_library_suffixed::cimg::option((char*)0,argc,argv,(char*)0,usage,false) #define cimg_help(str) cimg_library_suffixed::cimg::option((char*)0,argc,argv,str,(char*)0) #define cimg_option(name,defaut,usage) cimg_library_suffixed::cimg::option(name,argc,argv,defaut,usage) #define cimg_argument(pos) cimg_library_suffixed::cimg::argument(pos,argc,argv) #define cimg_argument1(pos,s0) cimg_library_suffixed::cimg::argument(pos,argc,argv,1,s0) #define cimg_argument2(pos,s0,s1) cimg_library_suffixed::cimg::argument(pos,argc,argv,2,s0,s1) #define cimg_argument3(pos,s0,s1,s2) cimg_library_suffixed::cimg::argument(pos,argc,argv,3,s0,s1,s2) #define cimg_argument4(pos,s0,s1,s2,s3) cimg_library_suffixed::cimg::argument(pos,argc,argv,4,s0,s1,s2,s3) #define cimg_argument5(pos,s0,s1,s2,s3,s4) cimg_library_suffixed::cimg::argument(pos,argc,argv,5,s0,s1,s2,s3,s4) #define cimg_argument6(pos,s0,s1,s2,s3,s4,s5) cimg_library_suffixed::cimg::argument(pos,argc,argv,6,s0,s1,s2,s3,s4,s5) #define cimg_argument7(pos,s0,s1,s2,s3,s4,s5,s6) cimg_library_suffixed::cimg::argument(pos,argc,argv,7,s0,s1,s2,s3,s4,s5,s6) #define cimg_argument8(pos,s0,s1,s2,s3,s4,s5,s6,s7) cimg_library_suffixed::cimg::argument(pos,argc,argv,8,s0,s1,s2,s3,s4,s5,s6,s7) #define cimg_argument9(pos,s0,s1,s2,s3,s4,s5,s6,s7,s8) cimg_library_suffixed::cimg::argument(pos,argc,argv,9,s0,s1,s2,s3,s4,s5,s6,s7,s8) // Macros to define and manipulate local neighborhoods. #define CImg_2x2(I,T) T I[4]; \ T& I##cc = I[0]; T& I##nc = I[1]; \ T& I##cn = I[2]; T& I##nn = I[3]; \ I##cc = I##nc = \ I##cn = I##nn = 0 #define CImg_3x3(I,T) T I[9]; \ T& I##pp = I[0]; T& I##cp = I[1]; T& I##np = I[2]; \ T& I##pc = I[3]; T& I##cc = I[4]; T& I##nc = I[5]; \ T& I##pn = I[6]; T& I##cn = I[7]; T& I##nn = I[8]; \ I##pp = I##cp = I##np = \ I##pc = I##cc = I##nc = \ I##pn = I##cn = I##nn = 0 #define CImg_4x4(I,T) T I[16]; \ T& I##pp = I[0]; T& I##cp = I[1]; T& I##np = I[2]; T& I##ap = I[3]; \ T& I##pc = I[4]; T& I##cc = I[5]; T& I##nc = I[6]; T& I##ac = I[7]; \ T& I##pn = I[8]; T& I##cn = I[9]; T& I##nn = I[10]; T& I##an = I[11]; \ T& I##pa = I[12]; T& I##ca = I[13]; T& I##na = I[14]; T& I##aa = I[15]; \ I##pp = I##cp = I##np = I##ap = \ I##pc = I##cc = I##nc = I##ac = \ I##pn = I##cn = I##nn = I##an = \ I##pa = I##ca = I##na = I##aa = 0 #define CImg_5x5(I,T) T I[25]; \ T& I##bb = I[0]; T& I##pb = I[1]; T& I##cb = I[2]; T& I##nb = I[3]; T& I##ab = I[4]; \ T& I##bp = I[5]; T& I##pp = I[6]; T& I##cp = I[7]; T& I##np = I[8]; T& I##ap = I[9]; \ T& I##bc = I[10]; T& I##pc = I[11]; T& I##cc = I[12]; T& I##nc = I[13]; T& I##ac = I[14]; \ T& I##bn = I[15]; T& I##pn = I[16]; T& I##cn = I[17]; T& I##nn = I[18]; T& I##an = I[19]; \ T& I##ba = I[20]; T& I##pa = I[21]; T& I##ca = I[22]; T& I##na = I[23]; T& I##aa = I[24]; \ I##bb = I##pb = I##cb = I##nb = I##ab = \ I##bp = I##pp = I##cp = I##np = I##ap = \ I##bc = I##pc = I##cc = I##nc = I##ac = \ I##bn = I##pn = I##cn = I##nn = I##an = \ I##ba = I##pa = I##ca = I##na = I##aa = 0 #define CImg_2x2x2(I,T) T I[8]; \ T& I##ccc = I[0]; T& I##ncc = I[1]; \ T& I##cnc = I[2]; T& I##nnc = I[3]; \ T& I##ccn = I[4]; T& I##ncn = I[5]; \ T& I##cnn = I[6]; T& I##nnn = I[7]; \ I##ccc = I##ncc = \ I##cnc = I##nnc = \ I##ccn = I##ncn = \ I##cnn = I##nnn = 0 #define CImg_3x3x3(I,T) T I[27]; \ T& I##ppp = I[0]; T& I##cpp = I[1]; T& I##npp = I[2]; \ T& I##pcp = I[3]; T& I##ccp = I[4]; T& I##ncp = I[5]; \ T& I##pnp = I[6]; T& I##cnp = I[7]; T& I##nnp = I[8]; \ T& I##ppc = I[9]; T& I##cpc = I[10]; T& I##npc = I[11]; \ T& I##pcc = I[12]; T& I##ccc = I[13]; T& I##ncc = I[14]; \ T& I##pnc = I[15]; T& I##cnc = I[16]; T& I##nnc = I[17]; \ T& I##ppn = I[18]; T& I##cpn = I[19]; T& I##npn = I[20]; \ T& I##pcn = I[21]; T& I##ccn = I[22]; T& I##ncn = I[23]; \ T& I##pnn = I[24]; T& I##cnn = I[25]; T& I##nnn = I[26]; \ I##ppp = I##cpp = I##npp = \ I##pcp = I##ccp = I##ncp = \ I##pnp = I##cnp = I##nnp = \ I##ppc = I##cpc = I##npc = \ I##pcc = I##ccc = I##ncc = \ I##pnc = I##cnc = I##nnc = \ I##ppn = I##cpn = I##npn = \ I##pcn = I##ccn = I##ncn = \ I##pnn = I##cnn = I##nnn = 0 #define cimg_get2x2(img,x,y,z,c,I,T) \ I[0] = (T)(img)(x,y,z,c), I[1] = (T)(img)(_n1##x,y,z,c), I[2] = (T)(img)(x,_n1##y,z,c), I[3] = (T)(img)(_n1##x,_n1##y,z,c) #define cimg_get3x3(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p1##x,_p1##y,z,c), I[1] = (T)(img)(x,_p1##y,z,c), I[2] = (T)(img)(_n1##x,_p1##y,z,c), I[3] = (T)(img)(_p1##x,y,z,c), \ I[4] = (T)(img)(x,y,z,c), I[5] = (T)(img)(_n1##x,y,z,c), I[6] = (T)(img)(_p1##x,_n1##y,z,c), I[7] = (T)(img)(x,_n1##y,z,c), \ I[8] = (T)(img)(_n1##x,_n1##y,z,c) #define cimg_get4x4(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p1##x,_p1##y,z,c), I[1] = (T)(img)(x,_p1##y,z,c), I[2] = (T)(img)(_n1##x,_p1##y,z,c), I[3] = (T)(img)(_n2##x,_p1##y,z,c), \ I[4] = (T)(img)(_p1##x,y,z,c), I[5] = (T)(img)(x,y,z,c), I[6] = (T)(img)(_n1##x,y,z,c), I[7] = (T)(img)(_n2##x,y,z,c), \ I[8] = (T)(img)(_p1##x,_n1##y,z,c), I[9] = (T)(img)(x,_n1##y,z,c), I[10] = (T)(img)(_n1##x,_n1##y,z,c), I[11] = (T)(img)(_n2##x,_n1##y,z,c), \ I[12] = (T)(img)(_p1##x,_n2##y,z,c), I[13] = (T)(img)(x,_n2##y,z,c), I[14] = (T)(img)(_n1##x,_n2##y,z,c), I[15] = (T)(img)(_n2##x,_n2##y,z,c) #define cimg_get5x5(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p2##x,_p2##y,z,c), I[1] = (T)(img)(_p1##x,_p2##y,z,c), I[2] = (T)(img)(x,_p2##y,z,c), I[3] = (T)(img)(_n1##x,_p2##y,z,c), \ I[4] = (T)(img)(_n2##x,_p2##y,z,c), I[5] = (T)(img)(_p2##x,_p1##y,z,c), I[6] = (T)(img)(_p1##x,_p1##y,z,c), I[7] = (T)(img)(x,_p1##y,z,c), \ I[8] = (T)(img)(_n1##x,_p1##y,z,c), I[9] = (T)(img)(_n2##x,_p1##y,z,c), I[10] = (T)(img)(_p2##x,y,z,c), I[11] = (T)(img)(_p1##x,y,z,c), \ I[12] = (T)(img)(x,y,z,c), I[13] = (T)(img)(_n1##x,y,z,c), I[14] = (T)(img)(_n2##x,y,z,c), I[15] = (T)(img)(_p2##x,_n1##y,z,c), \ I[16] = (T)(img)(_p1##x,_n1##y,z,c), I[17] = (T)(img)(x,_n1##y,z,c), I[18] = (T)(img)(_n1##x,_n1##y,z,c), I[19] = (T)(img)(_n2##x,_n1##y,z,c), \ I[20] = (T)(img)(_p2##x,_n2##y,z,c), I[21] = (T)(img)(_p1##x,_n2##y,z,c), I[22] = (T)(img)(x,_n2##y,z,c), I[23] = (T)(img)(_n1##x,_n2##y,z,c), \ I[24] = (T)(img)(_n2##x,_n2##y,z,c) #define cimg_get6x6(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p2##x,_p2##y,z,c), I[1] = (T)(img)(_p1##x,_p2##y,z,c), I[2] = (T)(img)(x,_p2##y,z,c), I[3] = (T)(img)(_n1##x,_p2##y,z,c), \ I[4] = (T)(img)(_n2##x,_p2##y,z,c), I[5] = (T)(img)(_n3##x,_p2##y,z,c), I[6] = (T)(img)(_p2##x,_p1##y,z,c), I[7] = (T)(img)(_p1##x,_p1##y,z,c), \ I[8] = (T)(img)(x,_p1##y,z,c), I[9] = (T)(img)(_n1##x,_p1##y,z,c), I[10] = (T)(img)(_n2##x,_p1##y,z,c), I[11] = (T)(img)(_n3##x,_p1##y,z,c), \ I[12] = (T)(img)(_p2##x,y,z,c), I[13] = (T)(img)(_p1##x,y,z,c), I[14] = (T)(img)(x,y,z,c), I[15] = (T)(img)(_n1##x,y,z,c), \ I[16] = (T)(img)(_n2##x,y,z,c), I[17] = (T)(img)(_n3##x,y,z,c), I[18] = (T)(img)(_p2##x,_n1##y,z,c), I[19] = (T)(img)(_p1##x,_n1##y,z,c), \ I[20] = (T)(img)(x,_n1##y,z,c), I[21] = (T)(img)(_n1##x,_n1##y,z,c), I[22] = (T)(img)(_n2##x,_n1##y,z,c), I[23] = (T)(img)(_n3##x,_n1##y,z,c), \ I[24] = (T)(img)(_p2##x,_n2##y,z,c), I[25] = (T)(img)(_p1##x,_n2##y,z,c), I[26] = (T)(img)(x,_n2##y,z,c), I[27] = (T)(img)(_n1##x,_n2##y,z,c), \ I[28] = (T)(img)(_n2##x,_n2##y,z,c), I[29] = (T)(img)(_n3##x,_n2##y,z,c), I[30] = (T)(img)(_p2##x,_n3##y,z,c), I[31] = (T)(img)(_p1##x,_n3##y,z,c), \ I[32] = (T)(img)(x,_n3##y,z,c), I[33] = (T)(img)(_n1##x,_n3##y,z,c), I[34] = (T)(img)(_n2##x,_n3##y,z,c), I[35] = (T)(img)(_n3##x,_n3##y,z,c) #define cimg_get7x7(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p3##x,_p3##y,z,c), I[1] = (T)(img)(_p2##x,_p3##y,z,c), I[2] = (T)(img)(_p1##x,_p3##y,z,c), I[3] = (T)(img)(x,_p3##y,z,c), \ I[4] = (T)(img)(_n1##x,_p3##y,z,c), I[5] = (T)(img)(_n2##x,_p3##y,z,c), I[6] = (T)(img)(_n3##x,_p3##y,z,c), I[7] = (T)(img)(_p3##x,_p2##y,z,c), \ I[8] = (T)(img)(_p2##x,_p2##y,z,c), I[9] = (T)(img)(_p1##x,_p2##y,z,c), I[10] = (T)(img)(x,_p2##y,z,c), I[11] = (T)(img)(_n1##x,_p2##y,z,c), \ I[12] = (T)(img)(_n2##x,_p2##y,z,c), I[13] = (T)(img)(_n3##x,_p2##y,z,c), I[14] = (T)(img)(_p3##x,_p1##y,z,c), I[15] = (T)(img)(_p2##x,_p1##y,z,c), \ I[16] = (T)(img)(_p1##x,_p1##y,z,c), I[17] = (T)(img)(x,_p1##y,z,c), I[18] = (T)(img)(_n1##x,_p1##y,z,c), I[19] = (T)(img)(_n2##x,_p1##y,z,c), \ I[20] = (T)(img)(_n3##x,_p1##y,z,c), I[21] = (T)(img)(_p3##x,y,z,c), I[22] = (T)(img)(_p2##x,y,z,c), I[23] = (T)(img)(_p1##x,y,z,c), \ I[24] = (T)(img)(x,y,z,c), I[25] = (T)(img)(_n1##x,y,z,c), I[26] = (T)(img)(_n2##x,y,z,c), I[27] = (T)(img)(_n3##x,y,z,c), \ I[28] = (T)(img)(_p3##x,_n1##y,z,c), I[29] = (T)(img)(_p2##x,_n1##y,z,c), I[30] = (T)(img)(_p1##x,_n1##y,z,c), I[31] = (T)(img)(x,_n1##y,z,c), \ I[32] = (T)(img)(_n1##x,_n1##y,z,c), I[33] = (T)(img)(_n2##x,_n1##y,z,c), I[34] = (T)(img)(_n3##x,_n1##y,z,c), I[35] = (T)(img)(_p3##x,_n2##y,z,c), \ I[36] = (T)(img)(_p2##x,_n2##y,z,c), I[37] = (T)(img)(_p1##x,_n2##y,z,c), I[38] = (T)(img)(x,_n2##y,z,c), I[39] = (T)(img)(_n1##x,_n2##y,z,c), \ I[40] = (T)(img)(_n2##x,_n2##y,z,c), I[41] = (T)(img)(_n3##x,_n2##y,z,c), I[42] = (T)(img)(_p3##x,_n3##y,z,c), I[43] = (T)(img)(_p2##x,_n3##y,z,c), \ I[44] = (T)(img)(_p1##x,_n3##y,z,c), I[45] = (T)(img)(x,_n3##y,z,c), I[46] = (T)(img)(_n1##x,_n3##y,z,c), I[47] = (T)(img)(_n2##x,_n3##y,z,c), \ I[48] = (T)(img)(_n3##x,_n3##y,z,c) #define cimg_get8x8(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p3##x,_p3##y,z,c), I[1] = (T)(img)(_p2##x,_p3##y,z,c), I[2] = (T)(img)(_p1##x,_p3##y,z,c), I[3] = (T)(img)(x,_p3##y,z,c), \ I[4] = (T)(img)(_n1##x,_p3##y,z,c), I[5] = (T)(img)(_n2##x,_p3##y,z,c), I[6] = (T)(img)(_n3##x,_p3##y,z,c), I[7] = (T)(img)(_n4##x,_p3##y,z,c), \ I[8] = (T)(img)(_p3##x,_p2##y,z,c), I[9] = (T)(img)(_p2##x,_p2##y,z,c), I[10] = (T)(img)(_p1##x,_p2##y,z,c), I[11] = (T)(img)(x,_p2##y,z,c), \ I[12] = (T)(img)(_n1##x,_p2##y,z,c), I[13] = (T)(img)(_n2##x,_p2##y,z,c), I[14] = (T)(img)(_n3##x,_p2##y,z,c), I[15] = (T)(img)(_n4##x,_p2##y,z,c), \ I[16] = (T)(img)(_p3##x,_p1##y,z,c), I[17] = (T)(img)(_p2##x,_p1##y,z,c), I[18] = (T)(img)(_p1##x,_p1##y,z,c), I[19] = (T)(img)(x,_p1##y,z,c), \ I[20] = (T)(img)(_n1##x,_p1##y,z,c), I[21] = (T)(img)(_n2##x,_p1##y,z,c), I[22] = (T)(img)(_n3##x,_p1##y,z,c), I[23] = (T)(img)(_n4##x,_p1##y,z,c), \ I[24] = (T)(img)(_p3##x,y,z,c), I[25] = (T)(img)(_p2##x,y,z,c), I[26] = (T)(img)(_p1##x,y,z,c), I[27] = (T)(img)(x,y,z,c), \ I[28] = (T)(img)(_n1##x,y,z,c), I[29] = (T)(img)(_n2##x,y,z,c), I[30] = (T)(img)(_n3##x,y,z,c), I[31] = (T)(img)(_n4##x,y,z,c), \ I[32] = (T)(img)(_p3##x,_n1##y,z,c), I[33] = (T)(img)(_p2##x,_n1##y,z,c), I[34] = (T)(img)(_p1##x,_n1##y,z,c), I[35] = (T)(img)(x,_n1##y,z,c), \ I[36] = (T)(img)(_n1##x,_n1##y,z,c), I[37] = (T)(img)(_n2##x,_n1##y,z,c), I[38] = (T)(img)(_n3##x,_n1##y,z,c), I[39] = (T)(img)(_n4##x,_n1##y,z,c), \ I[40] = (T)(img)(_p3##x,_n2##y,z,c), I[41] = (T)(img)(_p2##x,_n2##y,z,c), I[42] = (T)(img)(_p1##x,_n2##y,z,c), I[43] = (T)(img)(x,_n2##y,z,c), \ I[44] = (T)(img)(_n1##x,_n2##y,z,c), I[45] = (T)(img)(_n2##x,_n2##y,z,c), I[46] = (T)(img)(_n3##x,_n2##y,z,c), I[47] = (T)(img)(_n4##x,_n2##y,z,c), \ I[48] = (T)(img)(_p3##x,_n3##y,z,c), I[49] = (T)(img)(_p2##x,_n3##y,z,c), I[50] = (T)(img)(_p1##x,_n3##y,z,c), I[51] = (T)(img)(x,_n3##y,z,c), \ I[52] = (T)(img)(_n1##x,_n3##y,z,c), I[53] = (T)(img)(_n2##x,_n3##y,z,c), I[54] = (T)(img)(_n3##x,_n3##y,z,c), I[55] = (T)(img)(_n4##x,_n3##y,z,c), \ I[56] = (T)(img)(_p3##x,_n4##y,z,c), I[57] = (T)(img)(_p2##x,_n4##y,z,c), I[58] = (T)(img)(_p1##x,_n4##y,z,c), I[59] = (T)(img)(x,_n4##y,z,c), \ I[60] = (T)(img)(_n1##x,_n4##y,z,c), I[61] = (T)(img)(_n2##x,_n4##y,z,c), I[62] = (T)(img)(_n3##x,_n4##y,z,c), I[63] = (T)(img)(_n4##x,_n4##y,z,c); #define cimg_get9x9(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p4##x,_p4##y,z,c), I[1] = (T)(img)(_p3##x,_p4##y,z,c), I[2] = (T)(img)(_p2##x,_p4##y,z,c), I[3] = (T)(img)(_p1##x,_p4##y,z,c), \ I[4] = (T)(img)(x,_p4##y,z,c), I[5] = (T)(img)(_n1##x,_p4##y,z,c), I[6] = (T)(img)(_n2##x,_p4##y,z,c), I[7] = (T)(img)(_n3##x,_p4##y,z,c), \ I[8] = (T)(img)(_n4##x,_p4##y,z,c), I[9] = (T)(img)(_p4##x,_p3##y,z,c), I[10] = (T)(img)(_p3##x,_p3##y,z,c), I[11] = (T)(img)(_p2##x,_p3##y,z,c), \ I[12] = (T)(img)(_p1##x,_p3##y,z,c), I[13] = (T)(img)(x,_p3##y,z,c), I[14] = (T)(img)(_n1##x,_p3##y,z,c), I[15] = (T)(img)(_n2##x,_p3##y,z,c), \ I[16] = (T)(img)(_n3##x,_p3##y,z,c), I[17] = (T)(img)(_n4##x,_p3##y,z,c), I[18] = (T)(img)(_p4##x,_p2##y,z,c), I[19] = (T)(img)(_p3##x,_p2##y,z,c), \ I[20] = (T)(img)(_p2##x,_p2##y,z,c), I[21] = (T)(img)(_p1##x,_p2##y,z,c), I[22] = (T)(img)(x,_p2##y,z,c), I[23] = (T)(img)(_n1##x,_p2##y,z,c), \ I[24] = (T)(img)(_n2##x,_p2##y,z,c), I[25] = (T)(img)(_n3##x,_p2##y,z,c), I[26] = (T)(img)(_n4##x,_p2##y,z,c), I[27] = (T)(img)(_p4##x,_p1##y,z,c), \ I[28] = (T)(img)(_p3##x,_p1##y,z,c), I[29] = (T)(img)(_p2##x,_p1##y,z,c), I[30] = (T)(img)(_p1##x,_p1##y,z,c), I[31] = (T)(img)(x,_p1##y,z,c), \ I[32] = (T)(img)(_n1##x,_p1##y,z,c), I[33] = (T)(img)(_n2##x,_p1##y,z,c), I[34] = (T)(img)(_n3##x,_p1##y,z,c), I[35] = (T)(img)(_n4##x,_p1##y,z,c), \ I[36] = (T)(img)(_p4##x,y,z,c), I[37] = (T)(img)(_p3##x,y,z,c), I[38] = (T)(img)(_p2##x,y,z,c), I[39] = (T)(img)(_p1##x,y,z,c), \ I[40] = (T)(img)(x,y,z,c), I[41] = (T)(img)(_n1##x,y,z,c), I[42] = (T)(img)(_n2##x,y,z,c), I[43] = (T)(img)(_n3##x,y,z,c), \ I[44] = (T)(img)(_n4##x,y,z,c), I[45] = (T)(img)(_p4##x,_n1##y,z,c), I[46] = (T)(img)(_p3##x,_n1##y,z,c), I[47] = (T)(img)(_p2##x,_n1##y,z,c), \ I[48] = (T)(img)(_p1##x,_n1##y,z,c), I[49] = (T)(img)(x,_n1##y,z,c), I[50] = (T)(img)(_n1##x,_n1##y,z,c), I[51] = (T)(img)(_n2##x,_n1##y,z,c), \ I[52] = (T)(img)(_n3##x,_n1##y,z,c), I[53] = (T)(img)(_n4##x,_n1##y,z,c), I[54] = (T)(img)(_p4##x,_n2##y,z,c), I[55] = (T)(img)(_p3##x,_n2##y,z,c), \ I[56] = (T)(img)(_p2##x,_n2##y,z,c), I[57] = (T)(img)(_p1##x,_n2##y,z,c), I[58] = (T)(img)(x,_n2##y,z,c), I[59] = (T)(img)(_n1##x,_n2##y,z,c), \ I[60] = (T)(img)(_n2##x,_n2##y,z,c), I[61] = (T)(img)(_n3##x,_n2##y,z,c), I[62] = (T)(img)(_n4##x,_n2##y,z,c), I[63] = (T)(img)(_p4##x,_n3##y,z,c), \ I[64] = (T)(img)(_p3##x,_n3##y,z,c), I[65] = (T)(img)(_p2##x,_n3##y,z,c), I[66] = (T)(img)(_p1##x,_n3##y,z,c), I[67] = (T)(img)(x,_n3##y,z,c), \ I[68] = (T)(img)(_n1##x,_n3##y,z,c), I[69] = (T)(img)(_n2##x,_n3##y,z,c), I[70] = (T)(img)(_n3##x,_n3##y,z,c), I[71] = (T)(img)(_n4##x,_n3##y,z,c), \ I[72] = (T)(img)(_p4##x,_n4##y,z,c), I[73] = (T)(img)(_p3##x,_n4##y,z,c), I[74] = (T)(img)(_p2##x,_n4##y,z,c), I[75] = (T)(img)(_p1##x,_n4##y,z,c), \ I[76] = (T)(img)(x,_n4##y,z,c), I[77] = (T)(img)(_n1##x,_n4##y,z,c), I[78] = (T)(img)(_n2##x,_n4##y,z,c), I[79] = (T)(img)(_n3##x,_n4##y,z,c), \ I[80] = (T)(img)(_n4##x,_n4##y,z,c) #define cimg_get2x2x2(img,x,y,z,c,I,T) \ I[0] = (T)(img)(x,y,z,c), I[1] = (T)(img)(_n1##x,y,z,c), I[2] = (T)(img)(x,_n1##y,z,c), I[3] = (T)(img)(_n1##x,_n1##y,z,c), \ I[4] = (T)(img)(x,y,_n1##z,c), I[5] = (T)(img)(_n1##x,y,_n1##z,c), I[6] = (T)(img)(x,_n1##y,_n1##z,c), I[7] = (T)(img)(_n1##x,_n1##y,_n1##z,c) #define cimg_get3x3x3(img,x,y,z,c,I,T) \ I[0] = (T)(img)(_p1##x,_p1##y,_p1##z,c), I[1] = (T)(img)(x,_p1##y,_p1##z,c), I[2] = (T)(img)(_n1##x,_p1##y,_p1##z,c), \ I[3] = (T)(img)(_p1##x,y,_p1##z,c), I[4] = (T)(img)(x,y,_p1##z,c), I[5] = (T)(img)(_n1##x,y,_p1##z,c), \ I[6] = (T)(img)(_p1##x,_n1##y,_p1##z,c), I[7] = (T)(img)(x,_n1##y,_p1##z,c), I[8] = (T)(img)(_n1##x,_n1##y,_p1##z,c), \ I[9] = (T)(img)(_p1##x,_p1##y,z,c), I[10] = (T)(img)(x,_p1##y,z,c), I[11] = (T)(img)(_n1##x,_p1##y,z,c), \ I[12] = (T)(img)(_p1##x,y,z,c), I[13] = (T)(img)(x,y,z,c), I[14] = (T)(img)(_n1##x,y,z,c), \ I[15] = (T)(img)(_p1##x,_n1##y,z,c), I[16] = (T)(img)(x,_n1##y,z,c), I[17] = (T)(img)(_n1##x,_n1##y,z,c), \ I[18] = (T)(img)(_p1##x,_p1##y,_n1##z,c), I[19] = (T)(img)(x,_p1##y,_n1##z,c), I[20] = (T)(img)(_n1##x,_p1##y,_n1##z,c), \ I[21] = (T)(img)(_p1##x,y,_n1##z,c), I[22] = (T)(img)(x,y,_n1##z,c), I[23] = (T)(img)(_n1##x,y,_n1##z,c), \ I[24] = (T)(img)(_p1##x,_n1##y,_n1##z,c), I[25] = (T)(img)(x,_n1##y,_n1##z,c), I[26] = (T)(img)(_n1##x,_n1##y,_n1##z,c) // Macros to perform various image loops. // // These macros are simpler to use than loops with C++ iterators. #define cimg_for(img,ptrs,T_ptrs) for (T_ptrs *ptrs = (img)._data, *_max##ptrs = (img)._data + (img).size(); ptrs<_max##ptrs; ++ptrs) #define cimg_rof(img,ptrs,T_ptrs) for (T_ptrs *ptrs = (img)._data + (img).size(); (ptrs--)>(img)._data; ) #define cimg_foroff(img,off) for (unsigned long off = 0, _max##off = (img).size(); off<_max##off; ++off) #define cimg_for1(bound,i) for (int i = 0; i<(int)(bound); ++i) #define cimg_forX(img,x) cimg_for1((img)._width,x) #define cimg_forY(img,y) cimg_for1((img)._height,y) #define cimg_forZ(img,z) cimg_for1((img)._depth,z) #define cimg_forC(img,c) cimg_for1((img)._spectrum,c) #define cimg_forXY(img,x,y) cimg_forY(img,y) cimg_forX(img,x) #define cimg_forXZ(img,x,z) cimg_forZ(img,z) cimg_forX(img,x) #define cimg_forYZ(img,y,z) cimg_forZ(img,z) cimg_forY(img,y) #define cimg_forXC(img,x,c) cimg_forC(img,c) cimg_forX(img,x) #define cimg_forYC(img,y,c) cimg_forC(img,c) cimg_forY(img,y) #define cimg_forZC(img,z,c) cimg_forC(img,c) cimg_forZ(img,z) #define cimg_forXYZ(img,x,y,z) cimg_forZ(img,z) cimg_forXY(img,x,y) #define cimg_forXYC(img,x,y,c) cimg_forC(img,c) cimg_forXY(img,x,y) #define cimg_forXZC(img,x,z,c) cimg_forC(img,c) cimg_forXZ(img,x,z) #define cimg_forYZC(img,y,z,c) cimg_forC(img,c) cimg_forYZ(img,y,z) #define cimg_forXYZC(img,x,y,z,c) cimg_forC(img,c) cimg_forXYZ(img,x,y,z) #define cimg_rof1(bound,i) for (int i = (int)(bound)-1; i>=0; --i) #define cimg_rofX(img,x) cimg_rof1((img)._width,x) #define cimg_rofY(img,y) cimg_rof1((img)._height,y) #define cimg_rofZ(img,z) cimg_rof1((img)._depth,z) #define cimg_rofC(img,c) cimg_rof1((img)._spectrum,c) #define cimg_rofXY(img,x,y) cimg_rofY(img,y) cimg_rofX(img,x) #define cimg_rofXZ(img,x,z) cimg_rofZ(img,z) cimg_rofX(img,x) #define cimg_rofYZ(img,y,z) cimg_rofZ(img,z) cimg_rofY(img,y) #define cimg_rofXC(img,x,c) cimg_rofC(img,c) cimg_rofX(img,x) #define cimg_rofYC(img,y,c) cimg_rofC(img,c) cimg_rofY(img,y) #define cimg_rofZC(img,z,c) cimg_rofC(img,c) cimg_rofZ(img,z) #define cimg_rofXYZ(img,x,y,z) cimg_rofZ(img,z) cimg_rofXY(img,x,y) #define cimg_rofXYC(img,x,y,c) cimg_rofC(img,c) cimg_rofXY(img,x,y) #define cimg_rofXZC(img,x,z,c) cimg_rofC(img,c) cimg_rofXZ(img,x,z) #define cimg_rofYZC(img,y,z,c) cimg_rofC(img,c) cimg_rofYZ(img,y,z) #define cimg_rofXYZC(img,x,y,z,c) cimg_rofC(img,c) cimg_rofXYZ(img,x,y,z) #define cimg_for_in1(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), _max##i = (int)(i1)<(int)(bound)?(int)(i1):(int)(bound)-1; i<=_max##i; ++i) #define cimg_for_inX(img,x0,x1,x) cimg_for_in1((img)._width,x0,x1,x) #define cimg_for_inY(img,y0,y1,y) cimg_for_in1((img)._height,y0,y1,y) #define cimg_for_inZ(img,z0,z1,z) cimg_for_in1((img)._depth,z0,z1,z) #define cimg_for_inC(img,c0,c1,c) cimg_for_in1((img)._spectrum,c0,c1,c) #define cimg_for_inXY(img,x0,y0,x1,y1,x,y) cimg_for_inY(img,y0,y1,y) cimg_for_inX(img,x0,x1,x) #define cimg_for_inXZ(img,x0,z0,x1,z1,x,z) cimg_for_inZ(img,z0,z1,z) cimg_for_inX(img,x0,x1,x) #define cimg_for_inXC(img,x0,c0,x1,c1,x,c) cimg_for_inC(img,c0,c1,c) cimg_for_inX(img,x0,x1,x) #define cimg_for_inYZ(img,y0,z0,y1,z1,y,z) cimg_for_inZ(img,x0,z1,z) cimg_for_inY(img,y0,y1,y) #define cimg_for_inYC(img,y0,c0,y1,c1,y,c) cimg_for_inC(img,c0,c1,c) cimg_for_inY(img,y0,y1,y) #define cimg_for_inZC(img,z0,c0,z1,c1,z,c) cimg_for_inC(img,c0,c1,c) cimg_for_inZ(img,z0,z1,z) #define cimg_for_inXYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_inZ(img,z0,z1,z) cimg_for_inXY(img,x0,y0,x1,y1,x,y) #define cimg_for_inXYC(img,x0,y0,c0,x1,y1,c1,x,y,c) cimg_for_inC(img,c0,c1,c) cimg_for_inXY(img,x0,y0,x1,y1,x,y) #define cimg_for_inXZC(img,x0,z0,c0,x1,z1,c1,x,z,c) cimg_for_inC(img,c0,c1,c) cimg_for_inXZ(img,x0,z0,x1,z1,x,z) #define cimg_for_inYZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_inC(img,c0,c1,c) cimg_for_inYZ(img,y0,z0,y1,z1,y,z) #define cimg_for_inXYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_inC(img,c0,c1,c) cimg_for_inXYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for_insideX(img,x,n) cimg_for_inX(img,n,(img)._width-1-(n),x) #define cimg_for_insideY(img,y,n) cimg_for_inY(img,n,(img)._height-1-(n),y) #define cimg_for_insideZ(img,z,n) cimg_for_inZ(img,n,(img)._depth-1-(n),z) #define cimg_for_insideC(img,c,n) cimg_for_inC(img,n,(img)._spectrum-1-(n),c) #define cimg_for_insideXY(img,x,y,n) cimg_for_inXY(img,n,n,(img)._width-1-(n),(img)._height-1-(n),x,y) #define cimg_for_insideXYZ(img,x,y,z,n) cimg_for_inXYZ(img,n,n,n,(img)._width-1-(n),(img)._height-1-(n),(img)._depth-1-(n),x,y,z) #define cimg_for_insideXYZC(img,x,y,z,c,n) cimg_for_inXYZ(img,n,n,n,(img)._width-1-(n),(img)._height-1-(n),(img)._depth-1-(n),x,y,z) #define cimg_for_out1(boundi,i0,i1,i) \ for (int i = (int)(i0)>0?0:(int)(i1)+1; i<(int)(boundi); ++i, i = i==(int)(i0)?(int)(i1)+1:i) #define cimg_for_out2(boundi,boundj,i0,j0,i1,j1,i,j) \ for (int j = 0; j<(int)(boundj); ++j) \ for (int _n1j = (int)(j<(int)(j0) || j>(int)(j1)), i = _n1j?0:(int)(i0)>0?0:(int)(i1)+1; i<(int)(boundi); \ ++i, i = _n1j?i:(i==(int)(i0)?(int)(i1)+1:i)) #define cimg_for_out3(boundi,boundj,boundk,i0,j0,k0,i1,j1,k1,i,j,k) \ for (int k = 0; k<(int)(boundk); ++k) \ for (int _n1k = (int)(k<(int)(k0) || k>(int)(k1)), j = 0; j<(int)(boundj); ++j) \ for (int _n1j = (int)(j<(int)(j0) || j>(int)(j1)), i = _n1j || _n1k?0:(int)(i0)>0?0:(int)(i1)+1; i<(int)(boundi); \ ++i, i = _n1j || _n1k?i:(i==(int)(i0)?(int)(i1)+1:i)) #define cimg_for_out4(boundi,boundj,boundk,boundl,i0,j0,k0,l0,i1,j1,k1,l1,i,j,k,l) \ for (int l = 0; l<(int)(boundl); ++l) \ for (int _n1l = (int)(l<(int)(l0) || l>(int)(l1)), k = 0; k<(int)(boundk); ++k) \ for (int _n1k = (int)(k<(int)(k0) || k>(int)(k1)), j = 0; j<(int)(boundj); ++j) \ for (int _n1j = (int)(j<(int)(j0) || j>(int)(j1)), i = _n1j || _n1k || _n1l?0:(int)(i0)>0?0:(int)(i1)+1; i<(int)(boundi); \ ++i, i = _n1j || _n1k || _n1l?i:(i==(int)(i0)?(int)(i1)+1:i)) #define cimg_for_outX(img,x0,x1,x) cimg_for_out1((img)._width,x0,x1,x) #define cimg_for_outY(img,y0,y1,y) cimg_for_out1((img)._height,y0,y1,y) #define cimg_for_outZ(img,z0,z1,z) cimg_for_out1((img)._depth,z0,z1,z) #define cimg_for_outC(img,c0,c1,c) cimg_for_out1((img)._spectrum,c0,c1,c) #define cimg_for_outXY(img,x0,y0,x1,y1,x,y) cimg_for_out2((img)._width,(img)._height,x0,y0,x1,y1,x,y) #define cimg_for_outXZ(img,x0,z0,x1,z1,x,z) cimg_for_out2((img)._width,(img)._depth,x0,z0,x1,z1,x,z) #define cimg_for_outXC(img,x0,c0,x1,c1,x,c) cimg_for_out2((img)._width,(img)._spectrum,x0,c0,x1,c1,x,c) #define cimg_for_outYZ(img,y0,z0,y1,z1,y,z) cimg_for_out2((img)._height,(img)._depth,y0,z0,y1,z1,y,z) #define cimg_for_outYC(img,y0,c0,y1,c1,y,c) cimg_for_out2((img)._height,(img)._spectrum,y0,c0,y1,c1,y,c) #define cimg_for_outZC(img,z0,c0,z1,c1,z,c) cimg_for_out2((img)._depth,(img)._spectrum,z0,c0,z1,c1,z,c) #define cimg_for_outXYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_out3((img)._width,(img)._height,(img)._depth,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for_outXYC(img,x0,y0,c0,x1,y1,c1,x,y,c) cimg_for_out3((img)._width,(img)._height,(img)._spectrum,x0,y0,c0,x1,y1,c1,x,y,c) #define cimg_for_outXZC(img,x0,z0,c0,x1,z1,c1,x,z,c) cimg_for_out3((img)._width,(img)._depth,(img)._spectrum,x0,z0,c0,x1,z1,c1,x,z,c) #define cimg_for_outYZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_out3((img)._height,(img)._depth,(img)._spectrum,y0,z0,c0,y1,z1,c1,y,z,c) #define cimg_for_outXYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) \ cimg_for_out4((img)._width,(img)._height,(img)._depth,(img)._spectrum,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) #define cimg_for_borderX(img,x,n) cimg_for_outX(img,n,(img)._width-1-(n),x) #define cimg_for_borderY(img,y,n) cimg_for_outY(img,n,(img)._height-1-(n),y) #define cimg_for_borderZ(img,z,n) cimg_for_outZ(img,n,(img)._depth-1-(n),z) #define cimg_for_borderC(img,c,n) cimg_for_outC(img,n,(img)._spectrum-1-(n),c) #define cimg_for_borderXY(img,x,y,n) cimg_for_outXY(img,n,n,(img)._width-1-(n),(img)._height-1-(n),x,y) #define cimg_for_borderXYZ(img,x,y,z,n) cimg_for_outXYZ(img,n,n,n,(img)._width-1-(n),(img)._height-1-(n),(img)._depth-1-(n),x,y,z) #define cimg_for_borderXYZC(img,x,y,z,c,n) \ cimg_for_outXYZC(img,n,n,n,n,(img)._width-1-(n),(img)._height-1-(n),(img)._depth-1-(n),(img)._spectrum-1-(n),x,y,z,c) #define cimg_for_spiralXY(img,x,y) \ for (int x = 0, y = 0, _n1##x = 1, _n1##y = (img).width()*(img).height(); _n1##y; \ --_n1##y, _n1##x+=(_n1##x>>2)-((!(_n1##x&3)?--y:((_n1##x&3)==1?(img)._width-1-++x:((_n1##x&3)==2?(img)._height-1-++y:--x))))?0:1) #define cimg_for_lineXY(x,y,x0,y0,x1,y1) \ for (int x = (int)(x0), y = (int)(y0), _sx = 1, _sy = 1, _steep = 0, \ _dx=(x1)>(x0)?(int)(x1)-(int)(x0):(_sx=-1,(int)(x0)-(int)(x1)), \ _dy=(y1)>(y0)?(int)(y1)-(int)(y0):(_sy=-1,(int)(y0)-(int)(y1)), \ _counter = _dx, \ _err = _dx>_dy?(_dy>>1):((_steep=1),(_counter=_dy),(_dx>>1)); \ _counter>=0; \ --_counter, x+=_steep? \ (y+=_sy,(_err-=_dx)<0?_err+=_dy,_sx:0): \ (y+=(_err-=_dy)<0?_err+=_dx,_sy:0,_sx)) #define cimg_for2(bound,i) \ for (int i = 0, _n1##i = 1>=(bound)?(int)(bound)-1:1; \ _n1##i<(int)(bound) || i==--_n1##i; \ ++i, ++_n1##i) #define cimg_for2X(img,x) cimg_for2((img)._width,x) #define cimg_for2Y(img,y) cimg_for2((img)._height,y) #define cimg_for2Z(img,z) cimg_for2((img)._depth,z) #define cimg_for2C(img,c) cimg_for2((img)._spectrum,c) #define cimg_for2XY(img,x,y) cimg_for2Y(img,y) cimg_for2X(img,x) #define cimg_for2XZ(img,x,z) cimg_for2Z(img,z) cimg_for2X(img,x) #define cimg_for2XC(img,x,c) cimg_for2C(img,c) cimg_for2X(img,x) #define cimg_for2YZ(img,y,z) cimg_for2Z(img,z) cimg_for2Y(img,y) #define cimg_for2YC(img,y,c) cimg_for2C(img,c) cimg_for2Y(img,y) #define cimg_for2ZC(img,z,c) cimg_for2C(img,c) cimg_for2Z(img,z) #define cimg_for2XYZ(img,x,y,z) cimg_for2Z(img,z) cimg_for2XY(img,x,y) #define cimg_for2XZC(img,x,z,c) cimg_for2C(img,c) cimg_for2XZ(img,x,z) #define cimg_for2YZC(img,y,z,c) cimg_for2C(img,c) cimg_for2YZ(img,y,z) #define cimg_for2XYZC(img,x,y,z,c) cimg_for2C(img,c) cimg_for2XYZ(img,x,y,z) #define cimg_for_in2(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1; \ i<=(int)(i1) && (_n1##i<(int)(bound) || i==--_n1##i); \ ++i, ++_n1##i) #define cimg_for_in2X(img,x0,x1,x) cimg_for_in2((img)._width,x0,x1,x) #define cimg_for_in2Y(img,y0,y1,y) cimg_for_in2((img)._height,y0,y1,y) #define cimg_for_in2Z(img,z0,z1,z) cimg_for_in2((img)._depth,z0,z1,z) #define cimg_for_in2C(img,c0,c1,c) cimg_for_in2((img)._spectrum,c0,c1,c) #define cimg_for_in2XY(img,x0,y0,x1,y1,x,y) cimg_for_in2Y(img,y0,y1,y) cimg_for_in2X(img,x0,x1,x) #define cimg_for_in2XZ(img,x0,z0,x1,z1,x,z) cimg_for_in2Z(img,z0,z1,z) cimg_for_in2X(img,x0,x1,x) #define cimg_for_in2XC(img,x0,c0,x1,c1,x,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2X(img,x0,x1,x) #define cimg_for_in2YZ(img,y0,z0,y1,z1,y,z) cimg_for_in2Z(img,z0,z1,z) cimg_for_in2Y(img,y0,y1,y) #define cimg_for_in2YC(img,y0,c0,y1,c1,y,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2Y(img,y0,y1,y) #define cimg_for_in2ZC(img,z0,c0,z1,c1,z,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2Z(img,z0,z1,z) #define cimg_for_in2XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in2Z(img,z0,z1,z) cimg_for_in2XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in2XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in2YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in2XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in2C(img,c0,c1,c) cimg_for_in2XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for3(bound,i) \ for (int i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1; \ _n1##i<(int)(bound) || i==--_n1##i; \ _p1##i = i++, ++_n1##i) #define cimg_for3X(img,x) cimg_for3((img)._width,x) #define cimg_for3Y(img,y) cimg_for3((img)._height,y) #define cimg_for3Z(img,z) cimg_for3((img)._depth,z) #define cimg_for3C(img,c) cimg_for3((img)._spectrum,c) #define cimg_for3XY(img,x,y) cimg_for3Y(img,y) cimg_for3X(img,x) #define cimg_for3XZ(img,x,z) cimg_for3Z(img,z) cimg_for3X(img,x) #define cimg_for3XC(img,x,c) cimg_for3C(img,c) cimg_for3X(img,x) #define cimg_for3YZ(img,y,z) cimg_for3Z(img,z) cimg_for3Y(img,y) #define cimg_for3YC(img,y,c) cimg_for3C(img,c) cimg_for3Y(img,y) #define cimg_for3ZC(img,z,c) cimg_for3C(img,c) cimg_for3Z(img,z) #define cimg_for3XYZ(img,x,y,z) cimg_for3Z(img,z) cimg_for3XY(img,x,y) #define cimg_for3XZC(img,x,z,c) cimg_for3C(img,c) cimg_for3XZ(img,x,z) #define cimg_for3YZC(img,y,z,c) cimg_for3C(img,c) cimg_for3YZ(img,y,z) #define cimg_for3XYZC(img,x,y,z,c) cimg_for3C(img,c) cimg_for3XYZ(img,x,y,z) #define cimg_for_in3(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1; \ i<=(int)(i1) && (_n1##i<(int)(bound) || i==--_n1##i); \ _p1##i = i++, ++_n1##i) #define cimg_for_in3X(img,x0,x1,x) cimg_for_in3((img)._width,x0,x1,x) #define cimg_for_in3Y(img,y0,y1,y) cimg_for_in3((img)._height,y0,y1,y) #define cimg_for_in3Z(img,z0,z1,z) cimg_for_in3((img)._depth,z0,z1,z) #define cimg_for_in3C(img,c0,c1,c) cimg_for_in3((img)._spectrum,c0,c1,c) #define cimg_for_in3XY(img,x0,y0,x1,y1,x,y) cimg_for_in3Y(img,y0,y1,y) cimg_for_in3X(img,x0,x1,x) #define cimg_for_in3XZ(img,x0,z0,x1,z1,x,z) cimg_for_in3Z(img,z0,z1,z) cimg_for_in3X(img,x0,x1,x) #define cimg_for_in3XC(img,x0,c0,x1,c1,x,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3X(img,x0,x1,x) #define cimg_for_in3YZ(img,y0,z0,y1,z1,y,z) cimg_for_in3Z(img,z0,z1,z) cimg_for_in3Y(img,y0,y1,y) #define cimg_for_in3YC(img,y0,c0,y1,c1,y,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3Y(img,y0,y1,y) #define cimg_for_in3ZC(img,z0,c0,z1,c1,z,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3Z(img,z0,z1,z) #define cimg_for_in3XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in3Z(img,z0,z1,z) cimg_for_in3XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in3XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in3YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in3XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in3C(img,c0,c1,c) cimg_for_in3XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for4(bound,i) \ for (int i = 0, _p1##i = 0, _n1##i = 1>=(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(bound)?(int)(bound)-1:2; \ _n2##i<(int)(bound) || _n1##i==--_n2##i || i==(_n2##i = --_n1##i); \ _p1##i = i++, ++_n1##i, ++_n2##i) #define cimg_for4X(img,x) cimg_for4((img)._width,x) #define cimg_for4Y(img,y) cimg_for4((img)._height,y) #define cimg_for4Z(img,z) cimg_for4((img)._depth,z) #define cimg_for4C(img,c) cimg_for4((img)._spectrum,c) #define cimg_for4XY(img,x,y) cimg_for4Y(img,y) cimg_for4X(img,x) #define cimg_for4XZ(img,x,z) cimg_for4Z(img,z) cimg_for4X(img,x) #define cimg_for4XC(img,x,c) cimg_for4C(img,c) cimg_for4X(img,x) #define cimg_for4YZ(img,y,z) cimg_for4Z(img,z) cimg_for4Y(img,y) #define cimg_for4YC(img,y,c) cimg_for4C(img,c) cimg_for4Y(img,y) #define cimg_for4ZC(img,z,c) cimg_for4C(img,c) cimg_for4Z(img,z) #define cimg_for4XYZ(img,x,y,z) cimg_for4Z(img,z) cimg_for4XY(img,x,y) #define cimg_for4XZC(img,x,z,c) cimg_for4C(img,c) cimg_for4XZ(img,x,z) #define cimg_for4YZC(img,y,z,c) cimg_for4C(img,c) cimg_for4YZ(img,y,z) #define cimg_for4XYZC(img,x,y,z,c) cimg_for4C(img,c) cimg_for4XYZ(img,x,y,z) #define cimg_for_in4(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2; \ i<=(int)(i1) && (_n2##i<(int)(bound) || _n1##i==--_n2##i || i==(_n2##i = --_n1##i)); \ _p1##i = i++, ++_n1##i, ++_n2##i) #define cimg_for_in4X(img,x0,x1,x) cimg_for_in4((img)._width,x0,x1,x) #define cimg_for_in4Y(img,y0,y1,y) cimg_for_in4((img)._height,y0,y1,y) #define cimg_for_in4Z(img,z0,z1,z) cimg_for_in4((img)._depth,z0,z1,z) #define cimg_for_in4C(img,c0,c1,c) cimg_for_in4((img)._spectrum,c0,c1,c) #define cimg_for_in4XY(img,x0,y0,x1,y1,x,y) cimg_for_in4Y(img,y0,y1,y) cimg_for_in4X(img,x0,x1,x) #define cimg_for_in4XZ(img,x0,z0,x1,z1,x,z) cimg_for_in4Z(img,z0,z1,z) cimg_for_in4X(img,x0,x1,x) #define cimg_for_in4XC(img,x0,c0,x1,c1,x,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4X(img,x0,x1,x) #define cimg_for_in4YZ(img,y0,z0,y1,z1,y,z) cimg_for_in4Z(img,z0,z1,z) cimg_for_in4Y(img,y0,y1,y) #define cimg_for_in4YC(img,y0,c0,y1,c1,y,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4Y(img,y0,y1,y) #define cimg_for_in4ZC(img,z0,c0,z1,c1,z,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4Z(img,z0,z1,z) #define cimg_for_in4XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in4Z(img,z0,z1,z) cimg_for_in4XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in4XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in4YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in4XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in4C(img,c0,c1,c) cimg_for_in4XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for5(bound,i) \ for (int i = 0, _p2##i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(bound)?(int)(bound)-1:2; \ _n2##i<(int)(bound) || _n1##i==--_n2##i || i==(_n2##i = --_n1##i); \ _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i) #define cimg_for5X(img,x) cimg_for5((img)._width,x) #define cimg_for5Y(img,y) cimg_for5((img)._height,y) #define cimg_for5Z(img,z) cimg_for5((img)._depth,z) #define cimg_for5C(img,c) cimg_for5((img)._spectrum,c) #define cimg_for5XY(img,x,y) cimg_for5Y(img,y) cimg_for5X(img,x) #define cimg_for5XZ(img,x,z) cimg_for5Z(img,z) cimg_for5X(img,x) #define cimg_for5XC(img,x,c) cimg_for5C(img,c) cimg_for5X(img,x) #define cimg_for5YZ(img,y,z) cimg_for5Z(img,z) cimg_for5Y(img,y) #define cimg_for5YC(img,y,c) cimg_for5C(img,c) cimg_for5Y(img,y) #define cimg_for5ZC(img,z,c) cimg_for5C(img,c) cimg_for5Z(img,z) #define cimg_for5XYZ(img,x,y,z) cimg_for5Z(img,z) cimg_for5XY(img,x,y) #define cimg_for5XZC(img,x,z,c) cimg_for5C(img,c) cimg_for5XZ(img,x,z) #define cimg_for5YZC(img,y,z,c) cimg_for5C(img,c) cimg_for5YZ(img,y,z) #define cimg_for5XYZC(img,x,y,z,c) cimg_for5C(img,c) cimg_for5XYZ(img,x,y,z) #define cimg_for_in5(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p2##i = i-2<0?0:i-2, \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2; \ i<=(int)(i1) && (_n2##i<(int)(bound) || _n1##i==--_n2##i || i==(_n2##i = --_n1##i)); \ _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i) #define cimg_for_in5X(img,x0,x1,x) cimg_for_in5((img)._width,x0,x1,x) #define cimg_for_in5Y(img,y0,y1,y) cimg_for_in5((img)._height,y0,y1,y) #define cimg_for_in5Z(img,z0,z1,z) cimg_for_in5((img)._depth,z0,z1,z) #define cimg_for_in5C(img,c0,c1,c) cimg_for_in5((img)._spectrum,c0,c1,c) #define cimg_for_in5XY(img,x0,y0,x1,y1,x,y) cimg_for_in5Y(img,y0,y1,y) cimg_for_in5X(img,x0,x1,x) #define cimg_for_in5XZ(img,x0,z0,x1,z1,x,z) cimg_for_in5Z(img,z0,z1,z) cimg_for_in5X(img,x0,x1,x) #define cimg_for_in5XC(img,x0,c0,x1,c1,x,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5X(img,x0,x1,x) #define cimg_for_in5YZ(img,y0,z0,y1,z1,y,z) cimg_for_in5Z(img,z0,z1,z) cimg_for_in5Y(img,y0,y1,y) #define cimg_for_in5YC(img,y0,c0,y1,c1,y,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5Y(img,y0,y1,y) #define cimg_for_in5ZC(img,z0,c0,z1,c1,z,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5Z(img,z0,z1,z) #define cimg_for_in5XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in5Z(img,z0,z1,z) cimg_for_in5XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in5XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in5YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in5XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in5C(img,c0,c1,c) cimg_for_in5XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for6(bound,i) \ for (int i = 0, _p2##i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(bound)?(int)(bound)-1:2, \ _n3##i = 3>=(bound)?(int)(bound)-1:3; \ _n3##i<(int)(bound) || _n2##i==--_n3##i || _n1##i==--_n2##i || i==(_n3##i = _n2##i = --_n1##i); \ _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i) #define cimg_for6X(img,x) cimg_for6((img)._width,x) #define cimg_for6Y(img,y) cimg_for6((img)._height,y) #define cimg_for6Z(img,z) cimg_for6((img)._depth,z) #define cimg_for6C(img,c) cimg_for6((img)._spectrum,c) #define cimg_for6XY(img,x,y) cimg_for6Y(img,y) cimg_for6X(img,x) #define cimg_for6XZ(img,x,z) cimg_for6Z(img,z) cimg_for6X(img,x) #define cimg_for6XC(img,x,c) cimg_for6C(img,c) cimg_for6X(img,x) #define cimg_for6YZ(img,y,z) cimg_for6Z(img,z) cimg_for6Y(img,y) #define cimg_for6YC(img,y,c) cimg_for6C(img,c) cimg_for6Y(img,y) #define cimg_for6ZC(img,z,c) cimg_for6C(img,c) cimg_for6Z(img,z) #define cimg_for6XYZ(img,x,y,z) cimg_for6Z(img,z) cimg_for6XY(img,x,y) #define cimg_for6XZC(img,x,z,c) cimg_for6C(img,c) cimg_for6XZ(img,x,z) #define cimg_for6YZC(img,y,z,c) cimg_for6C(img,c) cimg_for6YZ(img,y,z) #define cimg_for6XYZC(img,x,y,z,c) cimg_for6C(img,c) cimg_for6XYZ(img,x,y,z) #define cimg_for_in6(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p2##i = i-2<0?0:i-2, \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2, \ _n3##i = i+3>=(int)(bound)?(int)(bound)-1:i+3; \ i<=(int)(i1) && (_n3##i<(int)(bound) || _n2##i==--_n3##i || _n1##i==--_n2##i || i==(_n3##i = _n2##i = --_n1##i)); \ _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i) #define cimg_for_in6X(img,x0,x1,x) cimg_for_in6((img)._width,x0,x1,x) #define cimg_for_in6Y(img,y0,y1,y) cimg_for_in6((img)._height,y0,y1,y) #define cimg_for_in6Z(img,z0,z1,z) cimg_for_in6((img)._depth,z0,z1,z) #define cimg_for_in6C(img,c0,c1,c) cimg_for_in6((img)._spectrum,c0,c1,c) #define cimg_for_in6XY(img,x0,y0,x1,y1,x,y) cimg_for_in6Y(img,y0,y1,y) cimg_for_in6X(img,x0,x1,x) #define cimg_for_in6XZ(img,x0,z0,x1,z1,x,z) cimg_for_in6Z(img,z0,z1,z) cimg_for_in6X(img,x0,x1,x) #define cimg_for_in6XC(img,x0,c0,x1,c1,x,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6X(img,x0,x1,x) #define cimg_for_in6YZ(img,y0,z0,y1,z1,y,z) cimg_for_in6Z(img,z0,z1,z) cimg_for_in6Y(img,y0,y1,y) #define cimg_for_in6YC(img,y0,c0,y1,c1,y,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6Y(img,y0,y1,y) #define cimg_for_in6ZC(img,z0,c0,z1,c1,z,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6Z(img,z0,z1,z) #define cimg_for_in6XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in6Z(img,z0,z1,z) cimg_for_in6XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in6XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in6YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in6XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in6C(img,c0,c1,c) cimg_for_in6XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for7(bound,i) \ for (int i = 0, _p3##i = 0, _p2##i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(bound)?(int)(bound)-1:2, \ _n3##i = 3>=(bound)?(int)(bound)-1:3; \ _n3##i<(int)(bound) || _n2##i==--_n3##i || _n1##i==--_n2##i || i==(_n3##i = _n2##i = --_n1##i); \ _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i) #define cimg_for7X(img,x) cimg_for7((img)._width,x) #define cimg_for7Y(img,y) cimg_for7((img)._height,y) #define cimg_for7Z(img,z) cimg_for7((img)._depth,z) #define cimg_for7C(img,c) cimg_for7((img)._spectrum,c) #define cimg_for7XY(img,x,y) cimg_for7Y(img,y) cimg_for7X(img,x) #define cimg_for7XZ(img,x,z) cimg_for7Z(img,z) cimg_for7X(img,x) #define cimg_for7XC(img,x,c) cimg_for7C(img,c) cimg_for7X(img,x) #define cimg_for7YZ(img,y,z) cimg_for7Z(img,z) cimg_for7Y(img,y) #define cimg_for7YC(img,y,c) cimg_for7C(img,c) cimg_for7Y(img,y) #define cimg_for7ZC(img,z,c) cimg_for7C(img,c) cimg_for7Z(img,z) #define cimg_for7XYZ(img,x,y,z) cimg_for7Z(img,z) cimg_for7XY(img,x,y) #define cimg_for7XZC(img,x,z,c) cimg_for7C(img,c) cimg_for7XZ(img,x,z) #define cimg_for7YZC(img,y,z,c) cimg_for7C(img,c) cimg_for7YZ(img,y,z) #define cimg_for7XYZC(img,x,y,z,c) cimg_for7C(img,c) cimg_for7XYZ(img,x,y,z) #define cimg_for_in7(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p3##i = i-3<0?0:i-3, \ _p2##i = i-2<0?0:i-2, \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2, \ _n3##i = i+3>=(int)(bound)?(int)(bound)-1:i+3; \ i<=(int)(i1) && (_n3##i<(int)(bound) || _n2##i==--_n3##i || _n1##i==--_n2##i || i==(_n3##i = _n2##i = --_n1##i)); \ _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i) #define cimg_for_in7X(img,x0,x1,x) cimg_for_in7((img)._width,x0,x1,x) #define cimg_for_in7Y(img,y0,y1,y) cimg_for_in7((img)._height,y0,y1,y) #define cimg_for_in7Z(img,z0,z1,z) cimg_for_in7((img)._depth,z0,z1,z) #define cimg_for_in7C(img,c0,c1,c) cimg_for_in7((img)._spectrum,c0,c1,c) #define cimg_for_in7XY(img,x0,y0,x1,y1,x,y) cimg_for_in7Y(img,y0,y1,y) cimg_for_in7X(img,x0,x1,x) #define cimg_for_in7XZ(img,x0,z0,x1,z1,x,z) cimg_for_in7Z(img,z0,z1,z) cimg_for_in7X(img,x0,x1,x) #define cimg_for_in7XC(img,x0,c0,x1,c1,x,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7X(img,x0,x1,x) #define cimg_for_in7YZ(img,y0,z0,y1,z1,y,z) cimg_for_in7Z(img,z0,z1,z) cimg_for_in7Y(img,y0,y1,y) #define cimg_for_in7YC(img,y0,c0,y1,c1,y,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7Y(img,y0,y1,y) #define cimg_for_in7ZC(img,z0,c0,z1,c1,z,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7Z(img,z0,z1,z) #define cimg_for_in7XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in7Z(img,z0,z1,z) cimg_for_in7XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in7XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in7YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in7XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in7C(img,c0,c1,c) cimg_for_in7XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for8(bound,i) \ for (int i = 0, _p3##i = 0, _p2##i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(bound)?(int)(bound)-1:2, \ _n3##i = 3>=(bound)?(int)(bound)-1:3, \ _n4##i = 4>=(bound)?(int)(bound)-1:4; \ _n4##i<(int)(bound) || _n3##i==--_n4##i || _n2##i==--_n3##i || _n1##i==--_n2##i || \ i==(_n4##i = _n3##i = _n2##i = --_n1##i); \ _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i, ++_n4##i) #define cimg_for8X(img,x) cimg_for8((img)._width,x) #define cimg_for8Y(img,y) cimg_for8((img)._height,y) #define cimg_for8Z(img,z) cimg_for8((img)._depth,z) #define cimg_for8C(img,c) cimg_for8((img)._spectrum,c) #define cimg_for8XY(img,x,y) cimg_for8Y(img,y) cimg_for8X(img,x) #define cimg_for8XZ(img,x,z) cimg_for8Z(img,z) cimg_for8X(img,x) #define cimg_for8XC(img,x,c) cimg_for8C(img,c) cimg_for8X(img,x) #define cimg_for8YZ(img,y,z) cimg_for8Z(img,z) cimg_for8Y(img,y) #define cimg_for8YC(img,y,c) cimg_for8C(img,c) cimg_for8Y(img,y) #define cimg_for8ZC(img,z,c) cimg_for8C(img,c) cimg_for8Z(img,z) #define cimg_for8XYZ(img,x,y,z) cimg_for8Z(img,z) cimg_for8XY(img,x,y) #define cimg_for8XZC(img,x,z,c) cimg_for8C(img,c) cimg_for8XZ(img,x,z) #define cimg_for8YZC(img,y,z,c) cimg_for8C(img,c) cimg_for8YZ(img,y,z) #define cimg_for8XYZC(img,x,y,z,c) cimg_for8C(img,c) cimg_for8XYZ(img,x,y,z) #define cimg_for_in8(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p3##i = i-3<0?0:i-3, \ _p2##i = i-2<0?0:i-2, \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2, \ _n3##i = i+3>=(int)(bound)?(int)(bound)-1:i+3, \ _n4##i = i+4>=(int)(bound)?(int)(bound)-1:i+4; \ i<=(int)(i1) && (_n4##i<(int)(bound) || _n3##i==--_n4##i || _n2##i==--_n3##i || _n1##i==--_n2##i || \ i==(_n4##i = _n3##i = _n2##i = --_n1##i)); \ _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i, ++_n4##i) #define cimg_for_in8X(img,x0,x1,x) cimg_for_in8((img)._width,x0,x1,x) #define cimg_for_in8Y(img,y0,y1,y) cimg_for_in8((img)._height,y0,y1,y) #define cimg_for_in8Z(img,z0,z1,z) cimg_for_in8((img)._depth,z0,z1,z) #define cimg_for_in8C(img,c0,c1,c) cimg_for_in8((img)._spectrum,c0,c1,c) #define cimg_for_in8XY(img,x0,y0,x1,y1,x,y) cimg_for_in8Y(img,y0,y1,y) cimg_for_in8X(img,x0,x1,x) #define cimg_for_in8XZ(img,x0,z0,x1,z1,x,z) cimg_for_in8Z(img,z0,z1,z) cimg_for_in8X(img,x0,x1,x) #define cimg_for_in8XC(img,x0,c0,x1,c1,x,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8X(img,x0,x1,x) #define cimg_for_in8YZ(img,y0,z0,y1,z1,y,z) cimg_for_in8Z(img,z0,z1,z) cimg_for_in8Y(img,y0,y1,y) #define cimg_for_in8YC(img,y0,c0,y1,c1,y,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8Y(img,y0,y1,y) #define cimg_for_in8ZC(img,z0,c0,z1,c1,z,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8Z(img,z0,z1,z) #define cimg_for_in8XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in8Z(img,z0,z1,z) cimg_for_in8XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in8XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in8YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in8XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in8C(img,c0,c1,c) cimg_for_in8XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for9(bound,i) \ for (int i = 0, _p4##i = 0, _p3##i = 0, _p2##i = 0, _p1##i = 0, \ _n1##i = 1>=(int)(bound)?(int)(bound)-1:1, \ _n2##i = 2>=(int)(bound)?(int)(bound)-1:2, \ _n3##i = 3>=(int)(bound)?(int)(bound)-1:3, \ _n4##i = 4>=(int)(bound)?(int)(bound)-1:4; \ _n4##i<(int)(bound) || _n3##i==--_n4##i || _n2##i==--_n3##i || _n1##i==--_n2##i || \ i==(_n4##i = _n3##i = _n2##i = --_n1##i); \ _p4##i = _p3##i, _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i, ++_n4##i) #define cimg_for9X(img,x) cimg_for9((img)._width,x) #define cimg_for9Y(img,y) cimg_for9((img)._height,y) #define cimg_for9Z(img,z) cimg_for9((img)._depth,z) #define cimg_for9C(img,c) cimg_for9((img)._spectrum,c) #define cimg_for9XY(img,x,y) cimg_for9Y(img,y) cimg_for9X(img,x) #define cimg_for9XZ(img,x,z) cimg_for9Z(img,z) cimg_for9X(img,x) #define cimg_for9XC(img,x,c) cimg_for9C(img,c) cimg_for9X(img,x) #define cimg_for9YZ(img,y,z) cimg_for9Z(img,z) cimg_for9Y(img,y) #define cimg_for9YC(img,y,c) cimg_for9C(img,c) cimg_for9Y(img,y) #define cimg_for9ZC(img,z,c) cimg_for9C(img,c) cimg_for9Z(img,z) #define cimg_for9XYZ(img,x,y,z) cimg_for9Z(img,z) cimg_for9XY(img,x,y) #define cimg_for9XZC(img,x,z,c) cimg_for9C(img,c) cimg_for9XZ(img,x,z) #define cimg_for9YZC(img,y,z,c) cimg_for9C(img,c) cimg_for9YZ(img,y,z) #define cimg_for9XYZC(img,x,y,z,c) cimg_for9C(img,c) cimg_for9XYZ(img,x,y,z) #define cimg_for_in9(bound,i0,i1,i) \ for (int i = (int)(i0)<0?0:(int)(i0), \ _p4##i = i-4<0?0:i-4, \ _p3##i = i-3<0?0:i-3, \ _p2##i = i-2<0?0:i-2, \ _p1##i = i-1<0?0:i-1, \ _n1##i = i+1>=(int)(bound)?(int)(bound)-1:i+1, \ _n2##i = i+2>=(int)(bound)?(int)(bound)-1:i+2, \ _n3##i = i+3>=(int)(bound)?(int)(bound)-1:i+3, \ _n4##i = i+4>=(int)(bound)?(int)(bound)-1:i+4; \ i<=(int)(i1) && (_n4##i<(int)(bound) || _n3##i==--_n4##i || _n2##i==--_n3##i || _n1##i==--_n2##i || \ i==(_n4##i = _n3##i = _n2##i = --_n1##i)); \ _p4##i = _p3##i, _p3##i = _p2##i, _p2##i = _p1##i, _p1##i = i++, ++_n1##i, ++_n2##i, ++_n3##i, ++_n4##i) #define cimg_for_in9X(img,x0,x1,x) cimg_for_in9((img)._width,x0,x1,x) #define cimg_for_in9Y(img,y0,y1,y) cimg_for_in9((img)._height,y0,y1,y) #define cimg_for_in9Z(img,z0,z1,z) cimg_for_in9((img)._depth,z0,z1,z) #define cimg_for_in9C(img,c0,c1,c) cimg_for_in9((img)._spectrum,c0,c1,c) #define cimg_for_in9XY(img,x0,y0,x1,y1,x,y) cimg_for_in9Y(img,y0,y1,y) cimg_for_in9X(img,x0,x1,x) #define cimg_for_in9XZ(img,x0,z0,x1,z1,x,z) cimg_for_in9Z(img,z0,z1,z) cimg_for_in9X(img,x0,x1,x) #define cimg_for_in9XC(img,x0,c0,x1,c1,x,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9X(img,x0,x1,x) #define cimg_for_in9YZ(img,y0,z0,y1,z1,y,z) cimg_for_in9Z(img,z0,z1,z) cimg_for_in9Y(img,y0,y1,y) #define cimg_for_in9YC(img,y0,c0,y1,c1,y,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9Y(img,y0,y1,y) #define cimg_for_in9ZC(img,z0,c0,z1,c1,z,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9Z(img,z0,z1,z) #define cimg_for_in9XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) cimg_for_in9Z(img,z0,z1,z) cimg_for_in9XY(img,x0,y0,x1,y1,x,y) #define cimg_for_in9XZC(img,x0,z0,c0,x1,y1,c1,x,z,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9XZ(img,x0,y0,x1,y1,x,z) #define cimg_for_in9YZC(img,y0,z0,c0,y1,z1,c1,y,z,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9YZ(img,y0,z0,y1,z1,y,z) #define cimg_for_in9XYZC(img,x0,y0,z0,c0,x1,y1,z1,c1,x,y,z,c) cimg_for_in9C(img,c0,c1,c) cimg_for_in9XYZ(img,x0,y0,z0,x1,y1,z1,x,y,z) #define cimg_for2x2(img,x,y,z,c,I,T) \ cimg_for2((img)._height,y) for (int x = 0, \ _n1##x = (int)( \ (I[0] = (T)(img)(0,y,z,c)), \ (I[2] = (T)(img)(0,_n1##y,z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[1] = (T)(img)(_n1##x,y,z,c)), \ (I[3] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x; \ I[0] = I[1], \ I[2] = I[3], \ ++x, ++_n1##x) #define cimg_for_in2x2(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in2((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _n1##x = (int)( \ (I[0] = (T)(img)(x,y,z,c)), \ (I[2] = (T)(img)(x,_n1##y,z,c)), \ x+1>=(int)(img)._width?(img).width()-1:x+1); \ x<=(int)(x1) && ((_n1##x<(img).width() && ( \ (I[1] = (T)(img)(_n1##x,y,z,c)), \ (I[3] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x); \ I[0] = I[1], \ I[2] = I[3], \ ++x, ++_n1##x) #define cimg_for3x3(img,x,y,z,c,I,T) \ cimg_for3((img)._height,y) for (int x = 0, \ _p1##x = 0, \ _n1##x = (int)( \ (I[0] = I[1] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[3] = I[4] = (T)(img)(0,y,z,c)), \ (I[6] = I[7] = (T)(img)(0,_n1##y,z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x; \ I[0] = I[1], I[1] = I[2], \ I[3] = I[4], I[4] = I[5], \ I[6] = I[7], I[7] = I[8], \ _p1##x = x++, ++_n1##x) #define cimg_for_in3x3(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in3((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p1##x = x-1<0?0:x-1, \ _n1##x = (int)( \ (I[0] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[3] = (T)(img)(_p1##x,y,z,c)), \ (I[6] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[1] = (T)(img)(x,_p1##y,z,c)), \ (I[4] = (T)(img)(x,y,z,c)), \ (I[7] = (T)(img)(x,_n1##y,z,c)), \ x+1>=(int)(img)._width?(img).width()-1:x+1); \ x<=(int)(x1) && ((_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x); \ I[0] = I[1], I[1] = I[2], \ I[3] = I[4], I[4] = I[5], \ I[6] = I[7], I[7] = I[8], \ _p1##x = x++, ++_n1##x) #define cimg_for4x4(img,x,y,z,c,I,T) \ cimg_for4((img)._height,y) for (int x = 0, \ _p1##x = 0, \ _n1##x = 1>=(img)._width?(img).width()-1:1, \ _n2##x = (int)( \ (I[0] = I[1] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[4] = I[5] = (T)(img)(0,y,z,c)), \ (I[8] = I[9] = (T)(img)(0,_n1##y,z,c)), \ (I[12] = I[13] = (T)(img)(0,_n2##y,z,c)), \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[6] = (T)(img)(_n1##x,y,z,c)), \ (I[10] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[14] = (T)(img)(_n1##x,_n2##y,z,c)), \ 2>=(img)._width?(img).width()-1:2); \ (_n2##x<(img).width() && ( \ (I[3] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[7] = (T)(img)(_n2##x,y,z,c)), \ (I[11] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[15] = (T)(img)(_n2##x,_n2##y,z,c)),1)) || \ _n1##x==--_n2##x || x==(_n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], \ I[4] = I[5], I[5] = I[6], I[6] = I[7], \ I[8] = I[9], I[9] = I[10], I[10] = I[11], \ I[12] = I[13], I[13] = I[14], I[14] = I[15], \ _p1##x = x++, ++_n1##x, ++_n2##x) #define cimg_for_in4x4(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in4((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(int)(img)._width?(img).width()-1:x+1, \ _n2##x = (int)( \ (I[0] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[4] = (T)(img)(_p1##x,y,z,c)), \ (I[8] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[12] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[1] = (T)(img)(x,_p1##y,z,c)), \ (I[5] = (T)(img)(x,y,z,c)), \ (I[9] = (T)(img)(x,_n1##y,z,c)), \ (I[13] = (T)(img)(x,_n2##y,z,c)), \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[6] = (T)(img)(_n1##x,y,z,c)), \ (I[10] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[14] = (T)(img)(_n1##x,_n2##y,z,c)), \ x+2>=(int)(img)._width?(img).width()-1:x+2); \ x<=(int)(x1) && ((_n2##x<(img).width() && ( \ (I[3] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[7] = (T)(img)(_n2##x,y,z,c)), \ (I[11] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[15] = (T)(img)(_n2##x,_n2##y,z,c)),1)) || \ _n1##x==--_n2##x || x==(_n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], \ I[4] = I[5], I[5] = I[6], I[6] = I[7], \ I[8] = I[9], I[9] = I[10], I[10] = I[11], \ I[12] = I[13], I[13] = I[14], I[14] = I[15], \ _p1##x = x++, ++_n1##x, ++_n2##x) #define cimg_for5x5(img,x,y,z,c,I,T) \ cimg_for5((img)._height,y) for (int x = 0, \ _p2##x = 0, _p1##x = 0, \ _n1##x = 1>=(img)._width?(img).width()-1:1, \ _n2##x = (int)( \ (I[0] = I[1] = I[2] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[5] = I[6] = I[7] = (T)(img)(0,_p1##y,z,c)), \ (I[10] = I[11] = I[12] = (T)(img)(0,y,z,c)), \ (I[15] = I[16] = I[17] = (T)(img)(0,_n1##y,z,c)), \ (I[20] = I[21] = I[22] = (T)(img)(0,_n2##y,z,c)), \ (I[3] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[8] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[13] = (T)(img)(_n1##x,y,z,c)), \ (I[18] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[23] = (T)(img)(_n1##x,_n2##y,z,c)), \ 2>=(img)._width?(img).width()-1:2); \ (_n2##x<(img).width() && ( \ (I[4] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[9] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[14] = (T)(img)(_n2##x,y,z,c)), \ (I[19] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[24] = (T)(img)(_n2##x,_n2##y,z,c)),1)) || \ _n1##x==--_n2##x || x==(_n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], \ I[5] = I[6], I[6] = I[7], I[7] = I[8], I[8] = I[9], \ I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], \ I[15] = I[16], I[16] = I[17], I[17] = I[18], I[18] = I[19], \ I[20] = I[21], I[21] = I[22], I[22] = I[23], I[23] = I[24], \ _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x) #define cimg_for_in5x5(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in5((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p2##x = x-2<0?0:x-2, \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(int)(img)._width?(img).width()-1:x+1, \ _n2##x = (int)( \ (I[0] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[5] = (T)(img)(_p2##x,_p1##y,z,c)), \ (I[10] = (T)(img)(_p2##x,y,z,c)), \ (I[15] = (T)(img)(_p2##x,_n1##y,z,c)), \ (I[20] = (T)(img)(_p2##x,_n2##y,z,c)), \ (I[1] = (T)(img)(_p1##x,_p2##y,z,c)), \ (I[6] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[11] = (T)(img)(_p1##x,y,z,c)), \ (I[16] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[21] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[2] = (T)(img)(x,_p2##y,z,c)), \ (I[7] = (T)(img)(x,_p1##y,z,c)), \ (I[12] = (T)(img)(x,y,z,c)), \ (I[17] = (T)(img)(x,_n1##y,z,c)), \ (I[22] = (T)(img)(x,_n2##y,z,c)), \ (I[3] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[8] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[13] = (T)(img)(_n1##x,y,z,c)), \ (I[18] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[23] = (T)(img)(_n1##x,_n2##y,z,c)), \ x+2>=(int)(img)._width?(img).width()-1:x+2); \ x<=(int)(x1) && ((_n2##x<(img).width() && ( \ (I[4] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[9] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[14] = (T)(img)(_n2##x,y,z,c)), \ (I[19] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[24] = (T)(img)(_n2##x,_n2##y,z,c)),1)) || \ _n1##x==--_n2##x || x==(_n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], \ I[5] = I[6], I[6] = I[7], I[7] = I[8], I[8] = I[9], \ I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], \ I[15] = I[16], I[16] = I[17], I[17] = I[18], I[18] = I[19], \ I[20] = I[21], I[21] = I[22], I[22] = I[23], I[23] = I[24], \ _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x) #define cimg_for6x6(img,x,y,z,c,I,T) \ cimg_for6((img)._height,y) for (int x = 0, \ _p2##x = 0, _p1##x = 0, \ _n1##x = 1>=(img)._width?(img).width()-1:1, \ _n2##x = 2>=(img)._width?(img).width()-1:2, \ _n3##x = (int)( \ (I[0] = I[1] = I[2] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[6] = I[7] = I[8] = (T)(img)(0,_p1##y,z,c)), \ (I[12] = I[13] = I[14] = (T)(img)(0,y,z,c)), \ (I[18] = I[19] = I[20] = (T)(img)(0,_n1##y,z,c)), \ (I[24] = I[25] = I[26] = (T)(img)(0,_n2##y,z,c)), \ (I[30] = I[31] = I[32] = (T)(img)(0,_n3##y,z,c)), \ (I[3] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[9] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[15] = (T)(img)(_n1##x,y,z,c)), \ (I[21] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[27] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[33] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[4] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[10] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[16] = (T)(img)(_n2##x,y,z,c)), \ (I[22] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[28] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[34] = (T)(img)(_n2##x,_n3##y,z,c)), \ 3>=(img)._width?(img).width()-1:3); \ (_n3##x<(img).width() && ( \ (I[5] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[11] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[17] = (T)(img)(_n3##x,y,z,c)), \ (I[23] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[29] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[35] = (T)(img)(_n3##x,_n3##y,z,c)),1)) || \ _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n3## x = _n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], \ I[6] = I[7], I[7] = I[8], I[8] = I[9], I[9] = I[10], I[10] = I[11], \ I[12] = I[13], I[13] = I[14], I[14] = I[15], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], \ I[24] = I[25], I[25] = I[26], I[26] = I[27], I[27] = I[28], I[28] = I[29], \ I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], I[34] = I[35], \ _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x) #define cimg_for_in6x6(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in6((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)x0, \ _p2##x = x-2<0?0:x-2, \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(int)(img)._width?(img).width()-1:x+1, \ _n2##x = x+2>=(int)(img)._width?(img).width()-1:x+2, \ _n3##x = (int)( \ (I[0] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[6] = (T)(img)(_p2##x,_p1##y,z,c)), \ (I[12] = (T)(img)(_p2##x,y,z,c)), \ (I[18] = (T)(img)(_p2##x,_n1##y,z,c)), \ (I[24] = (T)(img)(_p2##x,_n2##y,z,c)), \ (I[30] = (T)(img)(_p2##x,_n3##y,z,c)), \ (I[1] = (T)(img)(_p1##x,_p2##y,z,c)), \ (I[7] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[13] = (T)(img)(_p1##x,y,z,c)), \ (I[19] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[25] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[31] = (T)(img)(_p1##x,_n3##y,z,c)), \ (I[2] = (T)(img)(x,_p2##y,z,c)), \ (I[8] = (T)(img)(x,_p1##y,z,c)), \ (I[14] = (T)(img)(x,y,z,c)), \ (I[20] = (T)(img)(x,_n1##y,z,c)), \ (I[26] = (T)(img)(x,_n2##y,z,c)), \ (I[32] = (T)(img)(x,_n3##y,z,c)), \ (I[3] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[9] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[15] = (T)(img)(_n1##x,y,z,c)), \ (I[21] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[27] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[33] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[4] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[10] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[16] = (T)(img)(_n2##x,y,z,c)), \ (I[22] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[28] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[34] = (T)(img)(_n2##x,_n3##y,z,c)), \ x+3>=(int)(img)._width?(img).width()-1:x+3); \ x<=(int)(x1) && ((_n3##x<(img).width() && ( \ (I[5] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[11] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[17] = (T)(img)(_n3##x,y,z,c)), \ (I[23] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[29] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[35] = (T)(img)(_n3##x,_n3##y,z,c)),1)) || \ _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n3## x = _n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], \ I[6] = I[7], I[7] = I[8], I[8] = I[9], I[9] = I[10], I[10] = I[11], \ I[12] = I[13], I[13] = I[14], I[14] = I[15], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], \ I[24] = I[25], I[25] = I[26], I[26] = I[27], I[27] = I[28], I[28] = I[29], \ I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], I[34] = I[35], \ _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x) #define cimg_for7x7(img,x,y,z,c,I,T) \ cimg_for7((img)._height,y) for (int x = 0, \ _p3##x = 0, _p2##x = 0, _p1##x = 0, \ _n1##x = 1>=(img)._width?(img).width()-1:1, \ _n2##x = 2>=(img)._width?(img).width()-1:2, \ _n3##x = (int)( \ (I[0] = I[1] = I[2] = I[3] = (T)(img)(_p3##x,_p3##y,z,c)), \ (I[7] = I[8] = I[9] = I[10] = (T)(img)(0,_p2##y,z,c)), \ (I[14] = I[15] = I[16] = I[17] = (T)(img)(0,_p1##y,z,c)), \ (I[21] = I[22] = I[23] = I[24] = (T)(img)(0,y,z,c)), \ (I[28] = I[29] = I[30] = I[31] = (T)(img)(0,_n1##y,z,c)), \ (I[35] = I[36] = I[37] = I[38] = (T)(img)(0,_n2##y,z,c)), \ (I[42] = I[43] = I[44] = I[45] = (T)(img)(0,_n3##y,z,c)), \ (I[4] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[11] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[18] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[25] = (T)(img)(_n1##x,y,z,c)), \ (I[32] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[39] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[46] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[5] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[12] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[19] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[26] = (T)(img)(_n2##x,y,z,c)), \ (I[33] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[40] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[47] = (T)(img)(_n2##x,_n3##y,z,c)), \ 3>=(img)._width?(img).width()-1:3); \ (_n3##x<(img).width() && ( \ (I[6] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[13] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[20] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[27] = (T)(img)(_n3##x,y,z,c)), \ (I[34] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[41] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[48] = (T)(img)(_n3##x,_n3##y,z,c)),1)) || \ _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n3##x = _n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], \ I[7] = I[8], I[8] = I[9], I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], \ I[14] = I[15], I[15] = I[16], I[16] = I[17], I[17] = I[18], I[18] = I[19], I[19] = I[20], \ I[21] = I[22], I[22] = I[23], I[23] = I[24], I[24] = I[25], I[25] = I[26], I[26] = I[27], \ I[28] = I[29], I[29] = I[30], I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], \ I[35] = I[36], I[36] = I[37], I[37] = I[38], I[38] = I[39], I[39] = I[40], I[40] = I[41], \ I[42] = I[43], I[43] = I[44], I[44] = I[45], I[45] = I[46], I[46] = I[47], I[47] = I[48], \ _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x) #define cimg_for_in7x7(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in7((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p3##x = x-3<0?0:x-3, \ _p2##x = x-2<0?0:x-2, \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(int)(img)._width?(img).width()-1:x+1, \ _n2##x = x+2>=(int)(img)._width?(img).width()-1:x+2, \ _n3##x = (int)( \ (I[0] = (T)(img)(_p3##x,_p3##y,z,c)), \ (I[7] = (T)(img)(_p3##x,_p2##y,z,c)), \ (I[14] = (T)(img)(_p3##x,_p1##y,z,c)), \ (I[21] = (T)(img)(_p3##x,y,z,c)), \ (I[28] = (T)(img)(_p3##x,_n1##y,z,c)), \ (I[35] = (T)(img)(_p3##x,_n2##y,z,c)), \ (I[42] = (T)(img)(_p3##x,_n3##y,z,c)), \ (I[1] = (T)(img)(_p2##x,_p3##y,z,c)), \ (I[8] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[15] = (T)(img)(_p2##x,_p1##y,z,c)), \ (I[22] = (T)(img)(_p2##x,y,z,c)), \ (I[29] = (T)(img)(_p2##x,_n1##y,z,c)), \ (I[36] = (T)(img)(_p2##x,_n2##y,z,c)), \ (I[43] = (T)(img)(_p2##x,_n3##y,z,c)), \ (I[2] = (T)(img)(_p1##x,_p3##y,z,c)), \ (I[9] = (T)(img)(_p1##x,_p2##y,z,c)), \ (I[16] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[23] = (T)(img)(_p1##x,y,z,c)), \ (I[30] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[37] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[44] = (T)(img)(_p1##x,_n3##y,z,c)), \ (I[3] = (T)(img)(x,_p3##y,z,c)), \ (I[10] = (T)(img)(x,_p2##y,z,c)), \ (I[17] = (T)(img)(x,_p1##y,z,c)), \ (I[24] = (T)(img)(x,y,z,c)), \ (I[31] = (T)(img)(x,_n1##y,z,c)), \ (I[38] = (T)(img)(x,_n2##y,z,c)), \ (I[45] = (T)(img)(x,_n3##y,z,c)), \ (I[4] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[11] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[18] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[25] = (T)(img)(_n1##x,y,z,c)), \ (I[32] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[39] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[46] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[5] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[12] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[19] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[26] = (T)(img)(_n2##x,y,z,c)), \ (I[33] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[40] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[47] = (T)(img)(_n2##x,_n3##y,z,c)), \ x+3>=(int)(img)._width?(img).width()-1:x+3); \ x<=(int)(x1) && ((_n3##x<(img).width() && ( \ (I[6] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[13] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[20] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[27] = (T)(img)(_n3##x,y,z,c)), \ (I[34] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[41] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[48] = (T)(img)(_n3##x,_n3##y,z,c)),1)) || \ _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n3##x = _n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], \ I[7] = I[8], I[8] = I[9], I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], \ I[14] = I[15], I[15] = I[16], I[16] = I[17], I[17] = I[18], I[18] = I[19], I[19] = I[20], \ I[21] = I[22], I[22] = I[23], I[23] = I[24], I[24] = I[25], I[25] = I[26], I[26] = I[27], \ I[28] = I[29], I[29] = I[30], I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], \ I[35] = I[36], I[36] = I[37], I[37] = I[38], I[38] = I[39], I[39] = I[40], I[40] = I[41], \ I[42] = I[43], I[43] = I[44], I[44] = I[45], I[45] = I[46], I[46] = I[47], I[47] = I[48], \ _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x) #define cimg_for8x8(img,x,y,z,c,I,T) \ cimg_for8((img)._height,y) for (int x = 0, \ _p3##x = 0, _p2##x = 0, _p1##x = 0, \ _n1##x = 1>=((img)._width)?(img).width()-1:1, \ _n2##x = 2>=((img)._width)?(img).width()-1:2, \ _n3##x = 3>=((img)._width)?(img).width()-1:3, \ _n4##x = (int)( \ (I[0] = I[1] = I[2] = I[3] = (T)(img)(_p3##x,_p3##y,z,c)), \ (I[8] = I[9] = I[10] = I[11] = (T)(img)(0,_p2##y,z,c)), \ (I[16] = I[17] = I[18] = I[19] = (T)(img)(0,_p1##y,z,c)), \ (I[24] = I[25] = I[26] = I[27] = (T)(img)(0,y,z,c)), \ (I[32] = I[33] = I[34] = I[35] = (T)(img)(0,_n1##y,z,c)), \ (I[40] = I[41] = I[42] = I[43] = (T)(img)(0,_n2##y,z,c)), \ (I[48] = I[49] = I[50] = I[51] = (T)(img)(0,_n3##y,z,c)), \ (I[56] = I[57] = I[58] = I[59] = (T)(img)(0,_n4##y,z,c)), \ (I[4] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[12] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[20] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[28] = (T)(img)(_n1##x,y,z,c)), \ (I[36] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[44] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[52] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[60] = (T)(img)(_n1##x,_n4##y,z,c)), \ (I[5] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[13] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[21] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[29] = (T)(img)(_n2##x,y,z,c)), \ (I[37] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[45] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[53] = (T)(img)(_n2##x,_n3##y,z,c)), \ (I[61] = (T)(img)(_n2##x,_n4##y,z,c)), \ (I[6] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[14] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[22] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[30] = (T)(img)(_n3##x,y,z,c)), \ (I[38] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[46] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[54] = (T)(img)(_n3##x,_n3##y,z,c)), \ (I[62] = (T)(img)(_n3##x,_n4##y,z,c)), \ 4>=((img)._width)?(img).width()-1:4); \ (_n4##x<(img).width() && ( \ (I[7] = (T)(img)(_n4##x,_p3##y,z,c)), \ (I[15] = (T)(img)(_n4##x,_p2##y,z,c)), \ (I[23] = (T)(img)(_n4##x,_p1##y,z,c)), \ (I[31] = (T)(img)(_n4##x,y,z,c)), \ (I[39] = (T)(img)(_n4##x,_n1##y,z,c)), \ (I[47] = (T)(img)(_n4##x,_n2##y,z,c)), \ (I[55] = (T)(img)(_n4##x,_n3##y,z,c)), \ (I[63] = (T)(img)(_n4##x,_n4##y,z,c)),1)) || \ _n3##x==--_n4##x || _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n4##x = _n3##x = _n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], I[6] = I[7], \ I[8] = I[9], I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], I[14] = I[15], \ I[16] = I[17], I[17] = I[18], I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], \ I[24] = I[25], I[25] = I[26], I[26] = I[27], I[27] = I[28], I[28] = I[29], I[29] = I[30], I[30] = I[31], \ I[32] = I[33], I[33] = I[34], I[34] = I[35], I[35] = I[36], I[36] = I[37], I[37] = I[38], I[38] = I[39], \ I[40] = I[41], I[41] = I[42], I[42] = I[43], I[43] = I[44], I[44] = I[45], I[45] = I[46], I[46] = I[47], \ I[48] = I[49], I[49] = I[50], I[50] = I[51], I[51] = I[52], I[52] = I[53], I[53] = I[54], I[54] = I[55], \ I[56] = I[57], I[57] = I[58], I[58] = I[59], I[59] = I[60], I[60] = I[61], I[61] = I[62], I[62] = I[63], \ _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x, ++_n4##x) #define cimg_for_in8x8(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in8((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p3##x = x-3<0?0:x-3, \ _p2##x = x-2<0?0:x-2, \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(img).width()?(img).width()-1:x+1, \ _n2##x = x+2>=(img).width()?(img).width()-1:x+2, \ _n3##x = x+3>=(img).width()?(img).width()-1:x+3, \ _n4##x = (int)( \ (I[0] = (T)(img)(_p3##x,_p3##y,z,c)), \ (I[8] = (T)(img)(_p3##x,_p2##y,z,c)), \ (I[16] = (T)(img)(_p3##x,_p1##y,z,c)), \ (I[24] = (T)(img)(_p3##x,y,z,c)), \ (I[32] = (T)(img)(_p3##x,_n1##y,z,c)), \ (I[40] = (T)(img)(_p3##x,_n2##y,z,c)), \ (I[48] = (T)(img)(_p3##x,_n3##y,z,c)), \ (I[56] = (T)(img)(_p3##x,_n4##y,z,c)), \ (I[1] = (T)(img)(_p2##x,_p3##y,z,c)), \ (I[9] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[17] = (T)(img)(_p2##x,_p1##y,z,c)), \ (I[25] = (T)(img)(_p2##x,y,z,c)), \ (I[33] = (T)(img)(_p2##x,_n1##y,z,c)), \ (I[41] = (T)(img)(_p2##x,_n2##y,z,c)), \ (I[49] = (T)(img)(_p2##x,_n3##y,z,c)), \ (I[57] = (T)(img)(_p2##x,_n4##y,z,c)), \ (I[2] = (T)(img)(_p1##x,_p3##y,z,c)), \ (I[10] = (T)(img)(_p1##x,_p2##y,z,c)), \ (I[18] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[26] = (T)(img)(_p1##x,y,z,c)), \ (I[34] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[42] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[50] = (T)(img)(_p1##x,_n3##y,z,c)), \ (I[58] = (T)(img)(_p1##x,_n4##y,z,c)), \ (I[3] = (T)(img)(x,_p3##y,z,c)), \ (I[11] = (T)(img)(x,_p2##y,z,c)), \ (I[19] = (T)(img)(x,_p1##y,z,c)), \ (I[27] = (T)(img)(x,y,z,c)), \ (I[35] = (T)(img)(x,_n1##y,z,c)), \ (I[43] = (T)(img)(x,_n2##y,z,c)), \ (I[51] = (T)(img)(x,_n3##y,z,c)), \ (I[59] = (T)(img)(x,_n4##y,z,c)), \ (I[4] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[12] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[20] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[28] = (T)(img)(_n1##x,y,z,c)), \ (I[36] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[44] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[52] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[60] = (T)(img)(_n1##x,_n4##y,z,c)), \ (I[5] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[13] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[21] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[29] = (T)(img)(_n2##x,y,z,c)), \ (I[37] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[45] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[53] = (T)(img)(_n2##x,_n3##y,z,c)), \ (I[61] = (T)(img)(_n2##x,_n4##y,z,c)), \ (I[6] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[14] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[22] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[30] = (T)(img)(_n3##x,y,z,c)), \ (I[38] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[46] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[54] = (T)(img)(_n3##x,_n3##y,z,c)), \ (I[62] = (T)(img)(_n3##x,_n4##y,z,c)), \ x+4>=(img).width()?(img).width()-1:x+4); \ x<=(int)(x1) && ((_n4##x<(img).width() && ( \ (I[7] = (T)(img)(_n4##x,_p3##y,z,c)), \ (I[15] = (T)(img)(_n4##x,_p2##y,z,c)), \ (I[23] = (T)(img)(_n4##x,_p1##y,z,c)), \ (I[31] = (T)(img)(_n4##x,y,z,c)), \ (I[39] = (T)(img)(_n4##x,_n1##y,z,c)), \ (I[47] = (T)(img)(_n4##x,_n2##y,z,c)), \ (I[55] = (T)(img)(_n4##x,_n3##y,z,c)), \ (I[63] = (T)(img)(_n4##x,_n4##y,z,c)),1)) || \ _n3##x==--_n4##x || _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n4##x = _n3##x = _n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], I[6] = I[7], \ I[8] = I[9], I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], I[14] = I[15], \ I[16] = I[17], I[17] = I[18], I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], \ I[24] = I[25], I[25] = I[26], I[26] = I[27], I[27] = I[28], I[28] = I[29], I[29] = I[30], I[30] = I[31], \ I[32] = I[33], I[33] = I[34], I[34] = I[35], I[35] = I[36], I[36] = I[37], I[37] = I[38], I[38] = I[39], \ I[40] = I[41], I[41] = I[42], I[42] = I[43], I[43] = I[44], I[44] = I[45], I[45] = I[46], I[46] = I[47], \ I[48] = I[49], I[49] = I[50], I[50] = I[51], I[51] = I[52], I[52] = I[53], I[53] = I[54], I[54] = I[55], \ I[56] = I[57], I[57] = I[58], I[58] = I[59], I[59] = I[60], I[60] = I[61], I[61] = I[62], I[62] = I[63], \ _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x, ++_n4##x) #define cimg_for9x9(img,x,y,z,c,I,T) \ cimg_for9((img)._height,y) for (int x = 0, \ _p4##x = 0, _p3##x = 0, _p2##x = 0, _p1##x = 0, \ _n1##x = 1>=((img)._width)?(img).width()-1:1, \ _n2##x = 2>=((img)._width)?(img).width()-1:2, \ _n3##x = 3>=((img)._width)?(img).width()-1:3, \ _n4##x = (int)( \ (I[0] = I[1] = I[2] = I[3] = I[4] = (T)(img)(_p4##x,_p4##y,z,c)), \ (I[9] = I[10] = I[11] = I[12] = I[13] = (T)(img)(0,_p3##y,z,c)), \ (I[18] = I[19] = I[20] = I[21] = I[22] = (T)(img)(0,_p2##y,z,c)), \ (I[27] = I[28] = I[29] = I[30] = I[31] = (T)(img)(0,_p1##y,z,c)), \ (I[36] = I[37] = I[38] = I[39] = I[40] = (T)(img)(0,y,z,c)), \ (I[45] = I[46] = I[47] = I[48] = I[49] = (T)(img)(0,_n1##y,z,c)), \ (I[54] = I[55] = I[56] = I[57] = I[58] = (T)(img)(0,_n2##y,z,c)), \ (I[63] = I[64] = I[65] = I[66] = I[67] = (T)(img)(0,_n3##y,z,c)), \ (I[72] = I[73] = I[74] = I[75] = I[76] = (T)(img)(0,_n4##y,z,c)), \ (I[5] = (T)(img)(_n1##x,_p4##y,z,c)), \ (I[14] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[23] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[32] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[41] = (T)(img)(_n1##x,y,z,c)), \ (I[50] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[59] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[68] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[77] = (T)(img)(_n1##x,_n4##y,z,c)), \ (I[6] = (T)(img)(_n2##x,_p4##y,z,c)), \ (I[15] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[24] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[33] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[42] = (T)(img)(_n2##x,y,z,c)), \ (I[51] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[60] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[69] = (T)(img)(_n2##x,_n3##y,z,c)), \ (I[78] = (T)(img)(_n2##x,_n4##y,z,c)), \ (I[7] = (T)(img)(_n3##x,_p4##y,z,c)), \ (I[16] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[25] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[34] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[43] = (T)(img)(_n3##x,y,z,c)), \ (I[52] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[61] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[70] = (T)(img)(_n3##x,_n3##y,z,c)), \ (I[79] = (T)(img)(_n3##x,_n4##y,z,c)), \ 4>=((img)._width)?(img).width()-1:4); \ (_n4##x<(img).width() && ( \ (I[8] = (T)(img)(_n4##x,_p4##y,z,c)), \ (I[17] = (T)(img)(_n4##x,_p3##y,z,c)), \ (I[26] = (T)(img)(_n4##x,_p2##y,z,c)), \ (I[35] = (T)(img)(_n4##x,_p1##y,z,c)), \ (I[44] = (T)(img)(_n4##x,y,z,c)), \ (I[53] = (T)(img)(_n4##x,_n1##y,z,c)), \ (I[62] = (T)(img)(_n4##x,_n2##y,z,c)), \ (I[71] = (T)(img)(_n4##x,_n3##y,z,c)), \ (I[80] = (T)(img)(_n4##x,_n4##y,z,c)),1)) || \ _n3##x==--_n4##x || _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n4##x = _n3##x = _n2##x = --_n1##x); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], I[6] = I[7], I[7] = I[8], \ I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], I[14] = I[15], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], I[23] = I[24], I[24] = I[25], I[25] = I[26], \ I[27] = I[28], I[28] = I[29], I[29] = I[30], I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], I[34] = I[35], \ I[36] = I[37], I[37] = I[38], I[38] = I[39], I[39] = I[40], I[40] = I[41], I[41] = I[42], I[42] = I[43], I[43] = I[44], \ I[45] = I[46], I[46] = I[47], I[47] = I[48], I[48] = I[49], I[49] = I[50], I[50] = I[51], I[51] = I[52], I[52] = I[53], \ I[54] = I[55], I[55] = I[56], I[56] = I[57], I[57] = I[58], I[58] = I[59], I[59] = I[60], I[60] = I[61], I[61] = I[62], \ I[63] = I[64], I[64] = I[65], I[65] = I[66], I[66] = I[67], I[67] = I[68], I[68] = I[69], I[69] = I[70], I[70] = I[71], \ I[72] = I[73], I[73] = I[74], I[74] = I[75], I[75] = I[76], I[76] = I[77], I[77] = I[78], I[78] = I[79], I[79] = I[80], \ _p4##x = _p3##x, _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x, ++_n4##x) #define cimg_for_in9x9(img,x0,y0,x1,y1,x,y,z,c,I,T) \ cimg_for_in9((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p4##x = x-4<0?0:x-4, \ _p3##x = x-3<0?0:x-3, \ _p2##x = x-2<0?0:x-2, \ _p1##x = x-1<0?0:x-1, \ _n1##x = x+1>=(img).width()?(img).width()-1:x+1, \ _n2##x = x+2>=(img).width()?(img).width()-1:x+2, \ _n3##x = x+3>=(img).width()?(img).width()-1:x+3, \ _n4##x = (int)( \ (I[0] = (T)(img)(_p4##x,_p4##y,z,c)), \ (I[9] = (T)(img)(_p4##x,_p3##y,z,c)), \ (I[18] = (T)(img)(_p4##x,_p2##y,z,c)), \ (I[27] = (T)(img)(_p4##x,_p1##y,z,c)), \ (I[36] = (T)(img)(_p4##x,y,z,c)), \ (I[45] = (T)(img)(_p4##x,_n1##y,z,c)), \ (I[54] = (T)(img)(_p4##x,_n2##y,z,c)), \ (I[63] = (T)(img)(_p4##x,_n3##y,z,c)), \ (I[72] = (T)(img)(_p4##x,_n4##y,z,c)), \ (I[1] = (T)(img)(_p3##x,_p4##y,z,c)), \ (I[10] = (T)(img)(_p3##x,_p3##y,z,c)), \ (I[19] = (T)(img)(_p3##x,_p2##y,z,c)), \ (I[28] = (T)(img)(_p3##x,_p1##y,z,c)), \ (I[37] = (T)(img)(_p3##x,y,z,c)), \ (I[46] = (T)(img)(_p3##x,_n1##y,z,c)), \ (I[55] = (T)(img)(_p3##x,_n2##y,z,c)), \ (I[64] = (T)(img)(_p3##x,_n3##y,z,c)), \ (I[73] = (T)(img)(_p3##x,_n4##y,z,c)), \ (I[2] = (T)(img)(_p2##x,_p4##y,z,c)), \ (I[11] = (T)(img)(_p2##x,_p3##y,z,c)), \ (I[20] = (T)(img)(_p2##x,_p2##y,z,c)), \ (I[29] = (T)(img)(_p2##x,_p1##y,z,c)), \ (I[38] = (T)(img)(_p2##x,y,z,c)), \ (I[47] = (T)(img)(_p2##x,_n1##y,z,c)), \ (I[56] = (T)(img)(_p2##x,_n2##y,z,c)), \ (I[65] = (T)(img)(_p2##x,_n3##y,z,c)), \ (I[74] = (T)(img)(_p2##x,_n4##y,z,c)), \ (I[3] = (T)(img)(_p1##x,_p4##y,z,c)), \ (I[12] = (T)(img)(_p1##x,_p3##y,z,c)), \ (I[21] = (T)(img)(_p1##x,_p2##y,z,c)), \ (I[30] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[39] = (T)(img)(_p1##x,y,z,c)), \ (I[48] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[57] = (T)(img)(_p1##x,_n2##y,z,c)), \ (I[66] = (T)(img)(_p1##x,_n3##y,z,c)), \ (I[75] = (T)(img)(_p1##x,_n4##y,z,c)), \ (I[4] = (T)(img)(x,_p4##y,z,c)), \ (I[13] = (T)(img)(x,_p3##y,z,c)), \ (I[22] = (T)(img)(x,_p2##y,z,c)), \ (I[31] = (T)(img)(x,_p1##y,z,c)), \ (I[40] = (T)(img)(x,y,z,c)), \ (I[49] = (T)(img)(x,_n1##y,z,c)), \ (I[58] = (T)(img)(x,_n2##y,z,c)), \ (I[67] = (T)(img)(x,_n3##y,z,c)), \ (I[76] = (T)(img)(x,_n4##y,z,c)), \ (I[5] = (T)(img)(_n1##x,_p4##y,z,c)), \ (I[14] = (T)(img)(_n1##x,_p3##y,z,c)), \ (I[23] = (T)(img)(_n1##x,_p2##y,z,c)), \ (I[32] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[41] = (T)(img)(_n1##x,y,z,c)), \ (I[50] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[59] = (T)(img)(_n1##x,_n2##y,z,c)), \ (I[68] = (T)(img)(_n1##x,_n3##y,z,c)), \ (I[77] = (T)(img)(_n1##x,_n4##y,z,c)), \ (I[6] = (T)(img)(_n2##x,_p4##y,z,c)), \ (I[15] = (T)(img)(_n2##x,_p3##y,z,c)), \ (I[24] = (T)(img)(_n2##x,_p2##y,z,c)), \ (I[33] = (T)(img)(_n2##x,_p1##y,z,c)), \ (I[42] = (T)(img)(_n2##x,y,z,c)), \ (I[51] = (T)(img)(_n2##x,_n1##y,z,c)), \ (I[60] = (T)(img)(_n2##x,_n2##y,z,c)), \ (I[69] = (T)(img)(_n2##x,_n3##y,z,c)), \ (I[78] = (T)(img)(_n2##x,_n4##y,z,c)), \ (I[7] = (T)(img)(_n3##x,_p4##y,z,c)), \ (I[16] = (T)(img)(_n3##x,_p3##y,z,c)), \ (I[25] = (T)(img)(_n3##x,_p2##y,z,c)), \ (I[34] = (T)(img)(_n3##x,_p1##y,z,c)), \ (I[43] = (T)(img)(_n3##x,y,z,c)), \ (I[52] = (T)(img)(_n3##x,_n1##y,z,c)), \ (I[61] = (T)(img)(_n3##x,_n2##y,z,c)), \ (I[70] = (T)(img)(_n3##x,_n3##y,z,c)), \ (I[79] = (T)(img)(_n3##x,_n4##y,z,c)), \ x+4>=(img).width()?(img).width()-1:x+4); \ x<=(int)(x1) && ((_n4##x<(img).width() && ( \ (I[8] = (T)(img)(_n4##x,_p4##y,z,c)), \ (I[17] = (T)(img)(_n4##x,_p3##y,z,c)), \ (I[26] = (T)(img)(_n4##x,_p2##y,z,c)), \ (I[35] = (T)(img)(_n4##x,_p1##y,z,c)), \ (I[44] = (T)(img)(_n4##x,y,z,c)), \ (I[53] = (T)(img)(_n4##x,_n1##y,z,c)), \ (I[62] = (T)(img)(_n4##x,_n2##y,z,c)), \ (I[71] = (T)(img)(_n4##x,_n3##y,z,c)), \ (I[80] = (T)(img)(_n4##x,_n4##y,z,c)),1)) || \ _n3##x==--_n4##x || _n2##x==--_n3##x || _n1##x==--_n2##x || x==(_n4##x = _n3##x = _n2##x = --_n1##x)); \ I[0] = I[1], I[1] = I[2], I[2] = I[3], I[3] = I[4], I[4] = I[5], I[5] = I[6], I[6] = I[7], I[7] = I[8], \ I[9] = I[10], I[10] = I[11], I[11] = I[12], I[12] = I[13], I[13] = I[14], I[14] = I[15], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[20] = I[21], I[21] = I[22], I[22] = I[23], I[23] = I[24], I[24] = I[25], I[25] = I[26], \ I[27] = I[28], I[28] = I[29], I[29] = I[30], I[30] = I[31], I[31] = I[32], I[32] = I[33], I[33] = I[34], I[34] = I[35], \ I[36] = I[37], I[37] = I[38], I[38] = I[39], I[39] = I[40], I[40] = I[41], I[41] = I[42], I[42] = I[43], I[43] = I[44], \ I[45] = I[46], I[46] = I[47], I[47] = I[48], I[48] = I[49], I[49] = I[50], I[50] = I[51], I[51] = I[52], I[52] = I[53], \ I[54] = I[55], I[55] = I[56], I[56] = I[57], I[57] = I[58], I[58] = I[59], I[59] = I[60], I[60] = I[61], I[61] = I[62], \ I[63] = I[64], I[64] = I[65], I[65] = I[66], I[66] = I[67], I[67] = I[68], I[68] = I[69], I[69] = I[70], I[70] = I[71], \ I[72] = I[73], I[73] = I[74], I[74] = I[75], I[75] = I[76], I[76] = I[77], I[77] = I[78], I[78] = I[79], I[79] = I[80], \ _p4##x = _p3##x, _p3##x = _p2##x, _p2##x = _p1##x, _p1##x = x++, ++_n1##x, ++_n2##x, ++_n3##x, ++_n4##x) #define cimg_for2x2x2(img,x,y,z,c,I,T) \ cimg_for2((img)._depth,z) cimg_for2((img)._height,y) for (int x = 0, \ _n1##x = (int)( \ (I[0] = (T)(img)(0,y,z,c)), \ (I[2] = (T)(img)(0,_n1##y,z,c)), \ (I[4] = (T)(img)(0,y,_n1##z,c)), \ (I[6] = (T)(img)(0,_n1##y,_n1##z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[1] = (T)(img)(_n1##x,y,z,c)), \ (I[3] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,_n1##z,c)), \ (I[7] = (T)(img)(_n1##x,_n1##y,_n1##z,c)),1)) || \ x==--_n1##x; \ I[0] = I[1], I[2] = I[3], I[4] = I[5], I[6] = I[7], \ ++x, ++_n1##x) #define cimg_for_in2x2x2(img,x0,y0,z0,x1,y1,z1,x,y,z,c,I,T) \ cimg_for_in2((img)._depth,z0,z1,z) cimg_for_in2((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _n1##x = (int)( \ (I[0] = (T)(img)(x,y,z,c)), \ (I[2] = (T)(img)(x,_n1##y,z,c)), \ (I[4] = (T)(img)(x,y,_n1##z,c)), \ (I[6] = (T)(img)(x,_n1##y,_n1##z,c)), \ x+1>=(int)(img)._width?(img).width()-1:x+1); \ x<=(int)(x1) && ((_n1##x<(img).width() && ( \ (I[1] = (T)(img)(_n1##x,y,z,c)), \ (I[3] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,_n1##z,c)), \ (I[7] = (T)(img)(_n1##x,_n1##y,_n1##z,c)),1)) || \ x==--_n1##x); \ I[0] = I[1], I[2] = I[3], I[4] = I[5], I[6] = I[7], \ ++x, ++_n1##x) #define cimg_for3x3x3(img,x,y,z,c,I,T) \ cimg_for3((img)._depth,z) cimg_for3((img)._height,y) for (int x = 0, \ _p1##x = 0, \ _n1##x = (int)( \ (I[0] = I[1] = (T)(img)(_p1##x,_p1##y,_p1##z,c)), \ (I[3] = I[4] = (T)(img)(0,y,_p1##z,c)), \ (I[6] = I[7] = (T)(img)(0,_n1##y,_p1##z,c)), \ (I[9] = I[10] = (T)(img)(0,_p1##y,z,c)), \ (I[12] = I[13] = (T)(img)(0,y,z,c)), \ (I[15] = I[16] = (T)(img)(0,_n1##y,z,c)), \ (I[18] = I[19] = (T)(img)(0,_p1##y,_n1##z,c)), \ (I[21] = I[22] = (T)(img)(0,y,_n1##z,c)), \ (I[24] = I[25] = (T)(img)(0,_n1##y,_n1##z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,_p1##z,c)), \ (I[5] = (T)(img)(_n1##x,y,_p1##z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,_p1##z,c)), \ (I[11] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[14] = (T)(img)(_n1##x,y,z,c)), \ (I[17] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[20] = (T)(img)(_n1##x,_p1##y,_n1##z,c)), \ (I[23] = (T)(img)(_n1##x,y,_n1##z,c)), \ (I[26] = (T)(img)(_n1##x,_n1##y,_n1##z,c)),1)) || \ x==--_n1##x; \ I[0] = I[1], I[1] = I[2], I[3] = I[4], I[4] = I[5], I[6] = I[7], I[7] = I[8], \ I[9] = I[10], I[10] = I[11], I[12] = I[13], I[13] = I[14], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[21] = I[22], I[22] = I[23], I[24] = I[25], I[25] = I[26], \ _p1##x = x++, ++_n1##x) #define cimg_for_in3x3x3(img,x0,y0,z0,x1,y1,z1,x,y,z,c,I,T) \ cimg_for_in3((img)._depth,z0,z1,z) cimg_for_in3((img)._height,y0,y1,y) for (int x = (int)(x0)<0?0:(int)(x0), \ _p1##x = x-1<0?0:x-1, \ _n1##x = (int)( \ (I[0] = (T)(img)(_p1##x,_p1##y,_p1##z,c)), \ (I[3] = (T)(img)(_p1##x,y,_p1##z,c)), \ (I[6] = (T)(img)(_p1##x,_n1##y,_p1##z,c)), \ (I[9] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[12] = (T)(img)(_p1##x,y,z,c)), \ (I[15] = (T)(img)(_p1##x,_n1##y,z,c)), \ (I[18] = (T)(img)(_p1##x,_p1##y,_n1##z,c)), \ (I[21] = (T)(img)(_p1##x,y,_n1##z,c)), \ (I[24] = (T)(img)(_p1##x,_n1##y,_n1##z,c)), \ (I[1] = (T)(img)(x,_p1##y,_p1##z,c)), \ (I[4] = (T)(img)(x,y,_p1##z,c)), \ (I[7] = (T)(img)(x,_n1##y,_p1##z,c)), \ (I[10] = (T)(img)(x,_p1##y,z,c)), \ (I[13] = (T)(img)(x,y,z,c)), \ (I[16] = (T)(img)(x,_n1##y,z,c)), \ (I[19] = (T)(img)(x,_p1##y,_n1##z,c)), \ (I[22] = (T)(img)(x,y,_n1##z,c)), \ (I[25] = (T)(img)(x,_n1##y,_n1##z,c)), \ x+1>=(int)(img)._width?(img).width()-1:x+1); \ x<=(int)(x1) && ((_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,_p1##z,c)), \ (I[5] = (T)(img)(_n1##x,y,_p1##z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,_p1##z,c)), \ (I[11] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[14] = (T)(img)(_n1##x,y,z,c)), \ (I[17] = (T)(img)(_n1##x,_n1##y,z,c)), \ (I[20] = (T)(img)(_n1##x,_p1##y,_n1##z,c)), \ (I[23] = (T)(img)(_n1##x,y,_n1##z,c)), \ (I[26] = (T)(img)(_n1##x,_n1##y,_n1##z,c)),1)) || \ x==--_n1##x); \ I[0] = I[1], I[1] = I[2], I[3] = I[4], I[4] = I[5], I[6] = I[7], I[7] = I[8], \ I[9] = I[10], I[10] = I[11], I[12] = I[13], I[13] = I[14], I[15] = I[16], I[16] = I[17], \ I[18] = I[19], I[19] = I[20], I[21] = I[22], I[22] = I[23], I[24] = I[25], I[25] = I[26], \ _p1##x = x++, ++_n1##x) #define cimglist_for(list,l) for (int l = 0; l<(int)(list)._width; ++l) #define cimglist_for_in(list,l0,l1,l) \ for (int l = (int)(l0)<0?0:(int)(l0), _max##l = (unsigned int)l1<(list)._width?(int)(l1):(int)(list)._width-1; l<=_max##l; ++l) #define cimglist_apply(list,fn) cimglist_for(list,__##fn) (list)[__##fn].fn // Macros used to display error messages when exceptions are thrown. // You should not use these macros is your own code. #define _cimgdisplay_instance "[instance(%u,%u,%u,%c%s%c)] CImgDisplay::" #define cimgdisplay_instance _width,_height,_normalization,_title?'\"':'[',_title?_title:"untitled",_title?'\"':']' #define _cimg_instance "[instance(%u,%u,%u,%u,%p,%sshared)] CImg<%s>::" #define cimg_instance _width,_height,_depth,_spectrum,_data,_is_shared?"":"non-",pixel_type() #define _cimglist_instance "[instance(%u,%u,%p)] CImgList<%s>::" #define cimglist_instance _width,_allocated_width,_data,pixel_type() /*------------------------------------------------ # # # Define cimg_library:: namespace # # -------------------------------------------------*/ //! Contains all classes and functions of the \CImg library. /** This namespace is defined to avoid functions and class names collisions that could happen with the inclusion of other C++ header files. Anyway, it should not happen often and you should reasonnably start most of your \CImg-based programs with \code #include "CImg.h" using namespace cimg_library; \endcode to simplify the declaration of \CImg Library objects afterwards. **/ namespace cimg_library_suffixed { // Declare the four classes of the CImg Library. template struct CImg; template struct CImgList; struct CImgDisplay; struct CImgException; // Declare cimg:: namespace. // This is an uncomplete namespace definition here. It only contains some // necessary stuffs to ensure a correct declaration order of the classes and functions // defined afterwards. namespace cimg { // Define ascii sequences for colored terminal output. #ifdef cimg_use_vt100 const char t_normal[] = { 0x1b, '[', '0', ';', '0', ';', '0', 'm', 0 }; const char t_black[] = { 0x1b, '[', '0', ';', '3', '0', ';', '5', '9', 'm', 0 }; const char t_red[] = { 0x1b, '[', '0', ';', '3', '1', ';', '5', '9', 'm', 0 }; const char t_green[] = { 0x1b, '[', '0', ';', '3', '2', ';', '5', '9', 'm', 0 }; const char t_yellow[] = { 0x1b, '[', '0', ';', '3', '3', ';', '5', '9', 'm', 0 }; const char t_blue[] = { 0x1b, '[', '0', ';', '3', '4', ';', '5', '9', 'm', 0 }; const char t_magenta[] = { 0x1b, '[', '0', ';', '3', '5', ';', '5', '9', 'm', 0 }; const char t_cyan[] = { 0x1b, '[', '0', ';', '3', '6', ';', '5', '9', 'm', 0 }; const char t_white[] = { 0x1b, '[', '0', ';', '3', '7', ';', '5', '9', 'm', 0 }; const char t_bold[] = { 0x1b, '[', '1', 'm', 0 }; const char t_underscore[] = { 0x1b, '[', '4', 'm', 0 }; #else const char t_normal[] = { 0 }; const char *const t_black = cimg::t_normal, *const t_red = cimg::t_normal, *const t_green = cimg::t_normal, *const t_yellow = cimg::t_normal, *const t_blue = cimg::t_normal, *const t_magenta = cimg::t_normal, *const t_cyan = cimg::t_normal, *const t_white = cimg::t_normal, *const t_bold = cimg::t_normal, *const t_underscore = cimg::t_normal; #endif inline std::FILE* output(std::FILE *file=0); inline void info(); //! Avoid warning messages due to unused parameters. Do nothing actually. template inline void unused(const T&, ...) {} // [internal] Lock/unlock a mutex for managing concurrent threads. // 'lock_mode' can be { 0=unlock | 1=lock | 2=trylock }. inline int mutex(const unsigned int n, const int lock_mode=1); inline unsigned int& _exception_mode(const unsigned int value, const bool is_set) { static unsigned int mode = cimg_verbosity; cimg::mutex(0); if (is_set) mode = value; cimg::mutex(0,0); return mode; } //! Set current \CImg exception mode. /** The way error messages are handled by \CImg can be changed dynamically, using this function. \param mode Desired exception mode. Possible values are: - \c 0: Hide library messages (quiet mode). - \c 1: Print library messages on the console. - \c 2: Display library messages on a dialog window (default behavior). - \c 3: Do as \c 1 + add extra debug warnings (slow down the code!). - \c 4: Do as \c 2 + add extra debug warnings (slow down the code!). **/ inline unsigned int& exception_mode(const unsigned int mode) { return _exception_mode(mode,true); } //! Return current \CImg exception mode. /** \note By default, return the value of configuration macro \c cimg_verbosity **/ inline unsigned int& exception_mode() { return _exception_mode(0,false); } inline int dialog(const char *const title, const char *const msg, const char *const button1_label="OK", const char *const button2_label=0, const char *const button3_label=0, const char *const button4_label=0, const char *const button5_label=0, const char *const button6_label=0, const bool centering=false); inline double eval(const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0); } /*--------------------------------------- # # Define the CImgException structures # --------------------------------------*/ //! Instances of \c CImgException are thrown when errors are encountered in a \CImg function call. /** \par Overview CImgException is the base class of all exceptions thrown by \CImg. CImgException is never thrown itself. Derived classes that specify the type of errord are thrown instead. These derived classes can be: - \b CImgArgumentException: Thrown when one argument of a called \CImg function is invalid. This is probably one of the most thrown exception by \CImg. For instance, the following example throws a \c CImgArgumentException: \code CImg img(100,100,1,3); // Define a 100x100 color image with float-valued pixels. img.mirror('e'); // Try to mirror image along the (non-existing) 'e'-axis. \endcode - \b CImgDisplayException: Thrown when something went wrong during the display of images in CImgDisplay instances. - \b CImgInstanceException: Thrown when an instance associated to a called \CImg method does not fit the function requirements. For instance, the following example throws a \c CImgInstanceException: \code const CImg img; // Define an empty image. const float value = img.at(0); // Try to read first pixel value (does not exist). \endcode - \b CImgIOException: Thrown when an error occured when trying to load or save image files. This happens when trying to read files that do not exist or with invalid formats. For instance, the following example throws a \c CImgIOException: \code const CImg img("missing_file.jpg"); // Try to load a file that does not exist. \endcode - \b CImgWarningException: Thrown only if configuration macro \c cimg_strict_warnings is set, and when a \CImg function has to display a warning message (see cimg::warn()). It is not recommended to throw CImgException instances by yourself, since they are expected to be thrown only by \CImg. When an error occurs in a library function call, \CImg may display error messages on the screen or on the standard output, depending on the current \CImg exception mode. The \CImg exception mode can be get and set by functions cimg::exception_mode() and cimg::exception_mode(unsigned int). \par Exceptions handling In all cases, when an error occurs in \CImg, an instance of the corresponding exception class is thrown. This may lead the program to break (this is the default behavior), but you can bypass this behavior by handling the exceptions by yourself, using a usual try { ... } catch () { ... } bloc, as in the following example: \code #define "CImg.h" using namespace cimg_library; int main() { cimg::exception_mode(0); // Enable quiet exception mode. try { ... // Here, do what you want to stress the CImg library. } catch (CImgException &e) { // You succeeded: something went wrong! std::fprintf(stderr,"CImg Library Error: %s",e.what()); // Display your custom error message. ... // Do what you want now to save the ship! } } \endcode **/ struct CImgException : public std::exception { #define _cimg_exception_err(etype,disp_flag) \ std::va_list ap; va_start(ap,format); cimg_vsnprintf(_message,sizeof(_message),format,ap); va_end(ap); \ if (cimg::exception_mode()) { \ std::fprintf(cimg::output(),"\n%s[CImg] *** %s ***%s %s\n",cimg::t_red,etype,cimg::t_normal,_message); \ if (cimg_display && disp_flag && !(cimg::exception_mode()%2)) try { cimg::dialog(etype,_message,"Abort"); } catch (CImgException&) {} \ if (cimg::exception_mode()>=3) cimg_library_suffixed::cimg::info(); \ } char _message[16384]; CImgException() { *_message = 0; } CImgException(const char *const format, ...) { _cimg_exception_err("CImgException",true); } //! Return a C-string containing the error message associated to the thrown exception. const char *what() const throw() { return _message; } }; // The CImgInstanceException class is used to throw an exception related // to an invalid instance encountered in a library function call. struct CImgInstanceException : public CImgException { CImgInstanceException(const char *const format, ...) { _cimg_exception_err("CImgInstanceException",true); } }; // The CImgArgumentException class is used to throw an exception related // to invalid arguments encountered in a library function call. struct CImgArgumentException : public CImgException { CImgArgumentException(const char *const format, ...) { _cimg_exception_err("CImgArgumentException",true); } }; // The CImgIOException class is used to throw an exception related // to input/output file problems encountered in a library function call. struct CImgIOException : public CImgException { CImgIOException(const char *const format, ...) { _cimg_exception_err("CImgIOException",true); } }; // The CImgDisplayException class is used to throw an exception related // to display problems encountered in a library function call. struct CImgDisplayException : public CImgException { CImgDisplayException(const char *const format, ...) { _cimg_exception_err("CImgDisplayException",false); } }; // The CImgWarningException class is used to throw an exception for warnings // encountered in a library function call. struct CImgWarningException : public CImgException { CImgWarningException(const char *const format, ...) { _cimg_exception_err("CImgWarningException",false); } }; /*------------------------------------- # # Define cimg:: namespace # -----------------------------------*/ //! Contains \a low-level functions and variables of the \CImg Library. /** Most of the functions and variables within this namespace are used by the \CImg library for low-level operations. You may use them to access specific const values or environment variables internally used by \CImg. \warning Never write using namespace cimg_library::cimg; in your source code. Lot of functions in the cimg:: namespace have the same names as standard C functions that may be defined in the global namespace ::. **/ namespace cimg { // Define traits that will be used to determine the best data type to work in CImg functions. // template struct type { static const char* string() { static const char* s[] = { "unknown", "unknown8", "unknown16", "unknown24", "unknown32", "unknown40", "unknown48", "unknown56", "unknown64", "unknown72", "unknown80", "unknown88", "unknown96", "unknown104", "unknown112", "unknown120", "unknown128" }; return s[(sizeof(T)<17)?sizeof(T):0]; } static bool is_float() { return false; } static bool is_inf(const T) { return false; } static bool is_nan(const T) { return false; } static T min() { return (T)-1>0?(T)0:(T)-1<<(8*sizeof(T)-1); } static T max() { return (T)-1>0?(T)-1:~((T)-1<<(8*sizeof(T)-1)); } static T inf() { return max(); } static T cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(T)val; } static const char* format() { return "%s"; } static const char* format(const T val) { static const char *const s = "unknown"; cimg::unused(val); return s; } }; template<> struct type { static const char* string() { static const char *const s = "bool"; return s; } static bool is_float() { return false; } static bool is_inf(const bool) { return false; } static bool is_nan(const bool) { return false; } static bool min() { return false; } static bool max() { return true; } static bool inf() { return max(); } static bool is_inf() { return false; } static bool cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(bool)val; } static const char* format() { return "%s"; } static const char* format(const bool val) { static const char* s[] = { "false", "true" }; return s[val?1:0]; } }; template<> struct type { static const char* string() { static const char *const s = "unsigned char"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned char) { return false; } static bool is_nan(const unsigned char) { return false; } static unsigned char min() { return 0; } static unsigned char max() { return (unsigned char)~0U; } static unsigned char inf() { return max(); } static unsigned char cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(unsigned char)val; } static const char* format() { return "%u"; } static unsigned int format(const unsigned char val) { return (unsigned int)val; } }; template<> struct type { static const char* string() { static const char *const s = "char"; return s; } static bool is_float() { return false; } static bool is_inf(const char) { return false; } static bool is_nan(const char) { return false; } static char min() { return (char)(-1L<<(8*sizeof(char)-1)); } static char max() { return (char)~((char)(-1L<<(8*sizeof(char)-1))); } static char inf() { return max(); } static char cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(char)val; } static const char* format() { return "%d"; } static int format(const char val) { return (int)val; } }; template<> struct type { static const char* string() { static const char *const s = "signed char"; return s; } static bool is_float() { return false; } static bool is_inf(const signed char) { return false; } static bool is_nan(const signed char) { return false; } static signed char min() { return (signed char)(-1L<<(8*sizeof(signed char)-1)); } static signed char max() { return ~((signed char)(-1L<<(8*sizeof(signed char)-1))); } static signed char inf() { return max(); } static signed char cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(signed char)val; } static const char* format() { return "%d"; } static unsigned int format(const signed char val) { return (int)val; } }; template<> struct type { static const char* string() { static const char *const s = "unsigned short"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned short) { return false; } static bool is_nan(const unsigned short) { return false; } static unsigned short min() { return 0; } static unsigned short max() { return (unsigned short)~0U; } static unsigned short inf() { return max(); } static unsigned short cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(unsigned short)val; } static const char* format() { return "%u"; } static unsigned int format(const unsigned short val) { return (unsigned int)val; } }; template<> struct type { static const char* string() { static const char *const s = "short"; return s; } static bool is_float() { return false; } static bool is_inf(const short) { return false; } static bool is_nan(const short) { return false; } static short min() { return (short)(-1L<<(8*sizeof(short)-1)); } static short max() { return ~((short)(-1L<<(8*sizeof(short)-1))); } static short inf() { return max(); } static short cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(short)val; } static const char* format() { return "%d"; } static int format(const short val) { return (int)val; } }; template<> struct type { static const char* string() { static const char *const s = "unsigned int"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned int) { return false; } static bool is_nan(const unsigned int) { return false; } static unsigned int min() { return 0; } static unsigned int max() { return (unsigned int)~0U; } static unsigned int inf() { return max(); } static unsigned int cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(unsigned int)val; } static const char* format() { return "%u"; } static unsigned int format(const unsigned int val) { return val; } }; template<> struct type { static const char* string() { static const char *const s = "int"; return s; } static bool is_float() { return false; } static bool is_inf(const int) { return false; } static bool is_nan(const int) { return false; } static int min() { return (int)(-1L<<(8*sizeof(int)-1)); } static int max() { return ~((int)(-1L<<(8*sizeof(int)-1))); } static int inf() { return max(); } static int cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(int)val; } static const char* format() { return "%d"; } static int format(const int val) { return val; } }; template<> struct type { static const char* string() { static const char *const s = "unsigned long"; return s; } static bool is_float() { return false; } static bool is_inf(const unsigned long) { return false; } static bool is_nan(const unsigned long) { return false; } static unsigned long min() { return 0; } static unsigned long max() { return (unsigned long)~0UL; } static unsigned long inf() { return max(); } static unsigned long cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(unsigned long)val; } static const char* format() { return "%lu"; } static unsigned long format(const unsigned long val) { return val; } }; template<> struct type { static const char* string() { static const char *const s = "long"; return s; } static bool is_float() { return false; } static bool is_inf(const long) { return false; } static bool is_nan(const long) { return false; } static long min() { return (long)(-1L<<(8*sizeof(long)-1)); } static long max() { return ~((long)(-1L<<(8*sizeof(long)-1))); } static long inf() { return max(); } static long cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(long)val; } static const char* format() { return "%ld"; } static long format(const long val) { return val; } }; template<> struct type { static const char* string() { static const char *const s = "double"; return s; } static bool is_float() { return true; } static bool is_inf(const double val) { #ifdef isinf return (bool)isinf(val); #else return !is_nan(val) && val+1==val; #endif } static bool is_nan(const double val) { #ifdef isnan return (bool)isnan(val); #else return !(val<=0 || val>=0); #endif } static double min() { return -1.7E308; } static double max() { return 1.7E308; } static double inf() { return max()*max(); } static double nan() { static const double val_nan = -std::sqrt(-1.0); return val_nan; } static double cut(const double val) { return valmax()?max():val; } static const char* format() { return "%.16g"; } static double format(const double val) { return val; } }; template<> struct type { static const char* string() { static const char *const s = "float"; return s; } static bool is_float() { return true; } static bool is_inf(const float val) { return cimg::type::is_inf((double)val); } static bool is_nan(const float val) { return cimg::type::is_nan((double)val); } static float min() { return -3.4E38f; } static float max() { return 3.4E38f; } static float inf() { return (float)cimg::type::inf(); } static float nan() { return (float)cimg::type::nan(); } static float cut(const double val) { return val<(double)min()?min():val>(double)max()?max():(float)val; } static const char* format() { return "%.16g"; } static double format(const float val) { return (double)val; } }; template struct superset { typedef T type; }; template<> struct superset { typedef unsigned char type; }; template<> struct superset { typedef char type; }; template<> struct superset { typedef signed char type; }; template<> struct superset { typedef unsigned short type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef unsigned int type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef unsigned long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef unsigned short type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef unsigned int type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef unsigned long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef short type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef unsigned int type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef unsigned long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef int type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef unsigned long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef long type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef float type; }; template<> struct superset { typedef double type; }; template<> struct superset { typedef double type; }; template struct superset2 { typedef typename superset::type>::type type; }; template struct superset3 { typedef typename superset::type>::type type; }; template struct last { typedef t2 type; }; #define _cimg_Tt typename cimg::superset::type #define _cimg_Tfloat typename cimg::superset::type #define _cimg_Ttfloat typename cimg::superset2::type #define _cimg_Ttdouble typename cimg::superset2::type // Define variables used internally by CImg. #if cimg_display==1 struct X11_info { volatile unsigned int nb_wins; pthread_t* event_thread; CImgDisplay* wins[1024]; Display* display; unsigned int nb_bits; bool is_blue_first; bool is_shm_enabled; bool byte_order; #ifdef cimg_use_xrandr XRRScreenSize *resolutions; Rotation curr_rotation; unsigned int curr_resolution; unsigned int nb_resolutions; #endif X11_info():nb_wins(0),event_thread(0),display(0), nb_bits(0),is_blue_first(false),is_shm_enabled(false),byte_order(false) { #ifdef cimg_use_xrandr resolutions = 0; curr_rotation = 0; curr_resolution = nb_resolutions = 0; #endif } }; #if defined(cimg_module) X11_info& X11_attr(); #elif defined(cimg_main) X11_info& X11_attr() { static X11_info val; return val; } #else inline X11_info& X11_attr() { static X11_info val; return val; } #endif #elif cimg_display==2 struct Win32_info { HANDLE wait_event; Win32_info() { wait_event = CreateEvent(0,FALSE,FALSE,0); } }; #if defined(cimg_module) Win32_info& Win32_attr(); #elif defined(cimg_main) Win32_info& Win32_attr() { static Win32_info val; return val; } #else inline Win32_info& Win32_attr() { static Win32_info val; return val; } #endif #endif struct Mutex_info { #if cimg_OS==2 HANDLE mutex[16]; Mutex_info() { for (unsigned int i = 0; i<16; ++i) mutex[i] = CreateMutex(0,FALSE,0); } void lock(const unsigned int n) { WaitForSingleObject(mutex[n],INFINITE); } void unlock(const unsigned int n) { ReleaseMutex(mutex[n]); } int trylock(const unsigned int) { return 0; } #elif defined(_PTHREAD_H) pthread_mutex_t mutex[16]; Mutex_info() { for (unsigned int i = 0; i<16; ++i) pthread_mutex_init(&mutex[i],0); } void lock(const unsigned int n) { pthread_mutex_lock(&mutex[n]); } void unlock(const unsigned int n) { pthread_mutex_unlock(&mutex[n]); } int trylock(const unsigned int n) { return pthread_mutex_trylock(&mutex[n]); } #else Mutex_info() {} void lock(const unsigned int) {} void unlock(const unsigned int) {} int trylock(const unsigned int) { return 0; } #endif }; #if defined(cimg_module) Mutex_info& Mutex_attr(); #elif defined(cimg_main) Mutex_info& Mutex_attr() { static Mutex_info val; return val; } #else inline Mutex_info& Mutex_attr() { static Mutex_info val; return val; } #endif #if defined(cimg_use_magick) static struct Magick_info { Magick_info() { Magick::InitializeMagick(""); } } _Magick_info; #endif #if cimg_display==1 // Define keycodes for X11-based graphical systems. const unsigned int keyESC = XK_Escape; const unsigned int keyF1 = XK_F1; const unsigned int keyF2 = XK_F2; const unsigned int keyF3 = XK_F3; const unsigned int keyF4 = XK_F4; const unsigned int keyF5 = XK_F5; const unsigned int keyF6 = XK_F6; const unsigned int keyF7 = XK_F7; const unsigned int keyF8 = XK_F8; const unsigned int keyF9 = XK_F9; const unsigned int keyF10 = XK_F10; const unsigned int keyF11 = XK_F11; const unsigned int keyF12 = XK_F12; const unsigned int keyPAUSE = XK_Pause; const unsigned int key1 = XK_1; const unsigned int key2 = XK_2; const unsigned int key3 = XK_3; const unsigned int key4 = XK_4; const unsigned int key5 = XK_5; const unsigned int key6 = XK_6; const unsigned int key7 = XK_7; const unsigned int key8 = XK_8; const unsigned int key9 = XK_9; const unsigned int key0 = XK_0; const unsigned int keyBACKSPACE = XK_BackSpace; const unsigned int keyINSERT = XK_Insert; const unsigned int keyHOME = XK_Home; const unsigned int keyPAGEUP = XK_Page_Up; const unsigned int keyTAB = XK_Tab; const unsigned int keyQ = XK_q; const unsigned int keyW = XK_w; const unsigned int keyE = XK_e; const unsigned int keyR = XK_r; const unsigned int keyT = XK_t; const unsigned int keyY = XK_y; const unsigned int keyU = XK_u; const unsigned int keyI = XK_i; const unsigned int keyO = XK_o; const unsigned int keyP = XK_p; const unsigned int keyDELETE = XK_Delete; const unsigned int keyEND = XK_End; const unsigned int keyPAGEDOWN = XK_Page_Down; const unsigned int keyCAPSLOCK = XK_Caps_Lock; const unsigned int keyA = XK_a; const unsigned int keyS = XK_s; const unsigned int keyD = XK_d; const unsigned int keyF = XK_f; const unsigned int keyG = XK_g; const unsigned int keyH = XK_h; const unsigned int keyJ = XK_j; const unsigned int keyK = XK_k; const unsigned int keyL = XK_l; const unsigned int keyENTER = XK_Return; const unsigned int keySHIFTLEFT = XK_Shift_L; const unsigned int keyZ = XK_z; const unsigned int keyX = XK_x; const unsigned int keyC = XK_c; const unsigned int keyV = XK_v; const unsigned int keyB = XK_b; const unsigned int keyN = XK_n; const unsigned int keyM = XK_m; const unsigned int keySHIFTRIGHT = XK_Shift_R; const unsigned int keyARROWUP = XK_Up; const unsigned int keyCTRLLEFT = XK_Control_L; const unsigned int keyAPPLEFT = XK_Super_L; const unsigned int keyALT = XK_Alt_L; const unsigned int keySPACE = XK_space; const unsigned int keyALTGR = XK_Alt_R; const unsigned int keyAPPRIGHT = XK_Super_R; const unsigned int keyMENU = XK_Menu; const unsigned int keyCTRLRIGHT = XK_Control_R; const unsigned int keyARROWLEFT = XK_Left; const unsigned int keyARROWDOWN = XK_Down; const unsigned int keyARROWRIGHT = XK_Right; const unsigned int keyPAD0 = XK_KP_0; const unsigned int keyPAD1 = XK_KP_1; const unsigned int keyPAD2 = XK_KP_2; const unsigned int keyPAD3 = XK_KP_3; const unsigned int keyPAD4 = XK_KP_4; const unsigned int keyPAD5 = XK_KP_5; const unsigned int keyPAD6 = XK_KP_6; const unsigned int keyPAD7 = XK_KP_7; const unsigned int keyPAD8 = XK_KP_8; const unsigned int keyPAD9 = XK_KP_9; const unsigned int keyPADADD = XK_KP_Add; const unsigned int keyPADSUB = XK_KP_Subtract; const unsigned int keyPADMUL = XK_KP_Multiply; const unsigned int keyPADDIV = XK_KP_Divide; #elif cimg_display==2 // Define keycodes for Windows. const unsigned int keyESC = VK_ESCAPE; const unsigned int keyF1 = VK_F1; const unsigned int keyF2 = VK_F2; const unsigned int keyF3 = VK_F3; const unsigned int keyF4 = VK_F4; const unsigned int keyF5 = VK_F5; const unsigned int keyF6 = VK_F6; const unsigned int keyF7 = VK_F7; const unsigned int keyF8 = VK_F8; const unsigned int keyF9 = VK_F9; const unsigned int keyF10 = VK_F10; const unsigned int keyF11 = VK_F11; const unsigned int keyF12 = VK_F12; const unsigned int keyPAUSE = VK_PAUSE; const unsigned int key1 = '1'; const unsigned int key2 = '2'; const unsigned int key3 = '3'; const unsigned int key4 = '4'; const unsigned int key5 = '5'; const unsigned int key6 = '6'; const unsigned int key7 = '7'; const unsigned int key8 = '8'; const unsigned int key9 = '9'; const unsigned int key0 = '0'; const unsigned int keyBACKSPACE = VK_BACK; const unsigned int keyINSERT = VK_INSERT; const unsigned int keyHOME = VK_HOME; const unsigned int keyPAGEUP = VK_PRIOR; const unsigned int keyTAB = VK_TAB; const unsigned int keyQ = 'Q'; const unsigned int keyW = 'W'; const unsigned int keyE = 'E'; const unsigned int keyR = 'R'; const unsigned int keyT = 'T'; const unsigned int keyY = 'Y'; const unsigned int keyU = 'U'; const unsigned int keyI = 'I'; const unsigned int keyO = 'O'; const unsigned int keyP = 'P'; const unsigned int keyDELETE = VK_DELETE; const unsigned int keyEND = VK_END; const unsigned int keyPAGEDOWN = VK_NEXT; const unsigned int keyCAPSLOCK = VK_CAPITAL; const unsigned int keyA = 'A'; const unsigned int keyS = 'S'; const unsigned int keyD = 'D'; const unsigned int keyF = 'F'; const unsigned int keyG = 'G'; const unsigned int keyH = 'H'; const unsigned int keyJ = 'J'; const unsigned int keyK = 'K'; const unsigned int keyL = 'L'; const unsigned int keyENTER = VK_RETURN; const unsigned int keySHIFTLEFT = VK_SHIFT; const unsigned int keyZ = 'Z'; const unsigned int keyX = 'X'; const unsigned int keyC = 'C'; const unsigned int keyV = 'V'; const unsigned int keyB = 'B'; const unsigned int keyN = 'N'; const unsigned int keyM = 'M'; const unsigned int keySHIFTRIGHT = VK_SHIFT; const unsigned int keyARROWUP = VK_UP; const unsigned int keyCTRLLEFT = VK_CONTROL; const unsigned int keyAPPLEFT = VK_LWIN; const unsigned int keyALT = VK_LMENU; const unsigned int keySPACE = VK_SPACE; const unsigned int keyALTGR = VK_CONTROL; const unsigned int keyAPPRIGHT = VK_RWIN; const unsigned int keyMENU = VK_APPS; const unsigned int keyCTRLRIGHT = VK_CONTROL; const unsigned int keyARROWLEFT = VK_LEFT; const unsigned int keyARROWDOWN = VK_DOWN; const unsigned int keyARROWRIGHT = VK_RIGHT; const unsigned int keyPAD0 = 0x60; const unsigned int keyPAD1 = 0x61; const unsigned int keyPAD2 = 0x62; const unsigned int keyPAD3 = 0x63; const unsigned int keyPAD4 = 0x64; const unsigned int keyPAD5 = 0x65; const unsigned int keyPAD6 = 0x66; const unsigned int keyPAD7 = 0x67; const unsigned int keyPAD8 = 0x68; const unsigned int keyPAD9 = 0x69; const unsigned int keyPADADD = VK_ADD; const unsigned int keyPADSUB = VK_SUBTRACT; const unsigned int keyPADMUL = VK_MULTIPLY; const unsigned int keyPADDIV = VK_DIVIDE; #else // Define random keycodes when no display is available. // (should rarely be used then!). const unsigned int keyESC = 1U; //!< Keycode for the \c ESC key (architecture-dependent). const unsigned int keyF1 = 2U; //!< Keycode for the \c F1 key (architecture-dependent). const unsigned int keyF2 = 3U; //!< Keycode for the \c F2 key (architecture-dependent). const unsigned int keyF3 = 4U; //!< Keycode for the \c F3 key (architecture-dependent). const unsigned int keyF4 = 5U; //!< Keycode for the \c F4 key (architecture-dependent). const unsigned int keyF5 = 6U; //!< Keycode for the \c F5 key (architecture-dependent). const unsigned int keyF6 = 7U; //!< Keycode for the \c F6 key (architecture-dependent). const unsigned int keyF7 = 8U; //!< Keycode for the \c F7 key (architecture-dependent). const unsigned int keyF8 = 9U; //!< Keycode for the \c F8 key (architecture-dependent). const unsigned int keyF9 = 10U; //!< Keycode for the \c F9 key (architecture-dependent). const unsigned int keyF10 = 11U; //!< Keycode for the \c F10 key (architecture-dependent). const unsigned int keyF11 = 12U; //!< Keycode for the \c F11 key (architecture-dependent). const unsigned int keyF12 = 13U; //!< Keycode for the \c F12 key (architecture-dependent). const unsigned int keyPAUSE = 14U; //!< Keycode for the \c PAUSE key (architecture-dependent). const unsigned int key1 = 15U; //!< Keycode for the \c 1 key (architecture-dependent). const unsigned int key2 = 16U; //!< Keycode for the \c 2 key (architecture-dependent). const unsigned int key3 = 17U; //!< Keycode for the \c 3 key (architecture-dependent). const unsigned int key4 = 18U; //!< Keycode for the \c 4 key (architecture-dependent). const unsigned int key5 = 19U; //!< Keycode for the \c 5 key (architecture-dependent). const unsigned int key6 = 20U; //!< Keycode for the \c 6 key (architecture-dependent). const unsigned int key7 = 21U; //!< Keycode for the \c 7 key (architecture-dependent). const unsigned int key8 = 22U; //!< Keycode for the \c 8 key (architecture-dependent). const unsigned int key9 = 23U; //!< Keycode for the \c 9 key (architecture-dependent). const unsigned int key0 = 24U; //!< Keycode for the \c 0 key (architecture-dependent). const unsigned int keyBACKSPACE = 25U; //!< Keycode for the \c BACKSPACE key (architecture-dependent). const unsigned int keyINSERT = 26U; //!< Keycode for the \c INSERT key (architecture-dependent). const unsigned int keyHOME = 27U; //!< Keycode for the \c HOME key (architecture-dependent). const unsigned int keyPAGEUP = 28U; //!< Keycode for the \c PAGEUP key (architecture-dependent). const unsigned int keyTAB = 29U; //!< Keycode for the \c TAB key (architecture-dependent). const unsigned int keyQ = 30U; //!< Keycode for the \c Q key (architecture-dependent). const unsigned int keyW = 31U; //!< Keycode for the \c W key (architecture-dependent). const unsigned int keyE = 32U; //!< Keycode for the \c E key (architecture-dependent). const unsigned int keyR = 33U; //!< Keycode for the \c R key (architecture-dependent). const unsigned int keyT = 34U; //!< Keycode for the \c T key (architecture-dependent). const unsigned int keyY = 35U; //!< Keycode for the \c Y key (architecture-dependent). const unsigned int keyU = 36U; //!< Keycode for the \c U key (architecture-dependent). const unsigned int keyI = 37U; //!< Keycode for the \c I key (architecture-dependent). const unsigned int keyO = 38U; //!< Keycode for the \c O key (architecture-dependent). const unsigned int keyP = 39U; //!< Keycode for the \c P key (architecture-dependent). const unsigned int keyDELETE = 40U; //!< Keycode for the \c DELETE key (architecture-dependent). const unsigned int keyEND = 41U; //!< Keycode for the \c END key (architecture-dependent). const unsigned int keyPAGEDOWN = 42U; //!< Keycode for the \c PAGEDOWN key (architecture-dependent). const unsigned int keyCAPSLOCK = 43U; //!< Keycode for the \c CAPSLOCK key (architecture-dependent). const unsigned int keyA = 44U; //!< Keycode for the \c A key (architecture-dependent). const unsigned int keyS = 45U; //!< Keycode for the \c S key (architecture-dependent). const unsigned int keyD = 46U; //!< Keycode for the \c D key (architecture-dependent). const unsigned int keyF = 47U; //!< Keycode for the \c F key (architecture-dependent). const unsigned int keyG = 48U; //!< Keycode for the \c G key (architecture-dependent). const unsigned int keyH = 49U; //!< Keycode for the \c H key (architecture-dependent). const unsigned int keyJ = 50U; //!< Keycode for the \c J key (architecture-dependent). const unsigned int keyK = 51U; //!< Keycode for the \c K key (architecture-dependent). const unsigned int keyL = 52U; //!< Keycode for the \c L key (architecture-dependent). const unsigned int keyENTER = 53U; //!< Keycode for the \c ENTER key (architecture-dependent). const unsigned int keySHIFTLEFT = 54U; //!< Keycode for the \c SHIFTLEFT key (architecture-dependent). const unsigned int keyZ = 55U; //!< Keycode for the \c Z key (architecture-dependent). const unsigned int keyX = 56U; //!< Keycode for the \c X key (architecture-dependent). const unsigned int keyC = 57U; //!< Keycode for the \c C key (architecture-dependent). const unsigned int keyV = 58U; //!< Keycode for the \c V key (architecture-dependent). const unsigned int keyB = 59U; //!< Keycode for the \c B key (architecture-dependent). const unsigned int keyN = 60U; //!< Keycode for the \c N key (architecture-dependent). const unsigned int keyM = 61U; //!< Keycode for the \c M key (architecture-dependent). const unsigned int keySHIFTRIGHT = 62U; //!< Keycode for the \c SHIFTRIGHT key (architecture-dependent). const unsigned int keyARROWUP = 63U; //!< Keycode for the \c ARROWUP key (architecture-dependent). const unsigned int keyCTRLLEFT = 64U; //!< Keycode for the \c CTRLLEFT key (architecture-dependent). const unsigned int keyAPPLEFT = 65U; //!< Keycode for the \c APPLEFT key (architecture-dependent). const unsigned int keyALT = 66U; //!< Keycode for the \c ALT key (architecture-dependent). const unsigned int keySPACE = 67U; //!< Keycode for the \c SPACE key (architecture-dependent). const unsigned int keyALTGR = 68U; //!< Keycode for the \c ALTGR key (architecture-dependent). const unsigned int keyAPPRIGHT = 69U; //!< Keycode for the \c APPRIGHT key (architecture-dependent). const unsigned int keyMENU = 70U; //!< Keycode for the \c MENU key (architecture-dependent). const unsigned int keyCTRLRIGHT = 71U; //!< Keycode for the \c CTRLRIGHT key (architecture-dependent). const unsigned int keyARROWLEFT = 72U; //!< Keycode for the \c ARROWLEFT key (architecture-dependent). const unsigned int keyARROWDOWN = 73U; //!< Keycode for the \c ARROWDOWN key (architecture-dependent). const unsigned int keyARROWRIGHT = 74U; //!< Keycode for the \c ARROWRIGHT key (architecture-dependent). const unsigned int keyPAD0 = 75U; //!< Keycode for the \c PAD0 key (architecture-dependent). const unsigned int keyPAD1 = 76U; //!< Keycode for the \c PAD1 key (architecture-dependent). const unsigned int keyPAD2 = 77U; //!< Keycode for the \c PAD2 key (architecture-dependent). const unsigned int keyPAD3 = 78U; //!< Keycode for the \c PAD3 key (architecture-dependent). const unsigned int keyPAD4 = 79U; //!< Keycode for the \c PAD4 key (architecture-dependent). const unsigned int keyPAD5 = 80U; //!< Keycode for the \c PAD5 key (architecture-dependent). const unsigned int keyPAD6 = 81U; //!< Keycode for the \c PAD6 key (architecture-dependent). const unsigned int keyPAD7 = 82U; //!< Keycode for the \c PAD7 key (architecture-dependent). const unsigned int keyPAD8 = 83U; //!< Keycode for the \c PAD8 key (architecture-dependent). const unsigned int keyPAD9 = 84U; //!< Keycode for the \c PAD9 key (architecture-dependent). const unsigned int keyPADADD = 85U; //!< Keycode for the \c PADADD key (architecture-dependent). const unsigned int keyPADSUB = 86U; //!< Keycode for the \c PADSUB key (architecture-dependent). const unsigned int keyPADMUL = 87U; //!< Keycode for the \c PADMUL key (architecture-dependent). const unsigned int keyPADDIV = 88U; //!< Keycode for the \c PADDDIV key (architecture-dependent). #endif const double PI = 3.14159265358979323846; //!< Value of the mathematical constant PI // Define a 10x13 font (small size). const unsigned int font10x13[256*10*13/32] = { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80100c0, 0x68000300,0x801,0xc00010,0x100c000,0x68100,0x100c0680,0x2,0x403000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc,0x0,0x0,0x0,0x0,0x0,0x4020120, 0x58120480,0x402,0x1205008,0x2012050,0x58080,0x20120581,0x40000001,0x804812,0x2000000,0x0,0x300,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x140,0x80000,0x200402,0x800000,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x7010,0x7000000,0x8000200,0x20000,0xc0002000,0x8008,0x0,0x0,0x0,0x0,0x808,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x80000000,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x480,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x80100c0,0x68000480,0x1001, 0xc00010,0x1018000,0x68100,0x100c0680,0x4,0x403000,0x1020000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20140,0x28081883,0x200801, 0x2a00000,0x10,0x1c0201c0,0x70040f80,0xc0f81c07,0x0,0x70,0x3e0303c0,0x3c3c0f83,0xe03c2107,0xe08810,0x18c31070,0x3c0703c0, 0x783e0842,0x22222208,0x83e04010,0x1008000,0x4000200,0x20001,0x2002,0x408008,0x0,0x0,0x100000,0x0,0x1008,0x2000000,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20080,0x38000880,0x8078140f,0x81c00000,0x3e000,0xc020180,0x60080001,0xe0000002,0xc00042,0x108e2010, 0xc0300c0,0x300c0303,0xf83c3e0f,0x83e0f81c,0x701c070,0x3c0c41c0,0x701c0701,0xc0001d08,0x42108421,0x8820088,0x4020120,0x58140480, 0x802,0x1205008,0x3014050,0xc058080,0x20120581,0x40000002,0x804814,0x2020050,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20140, 0x281e2484,0x80200801,0x1c02000,0x10,0x22060220,0x880c0801,0x82208,0x80000001,0x20008,0x41030220,0x40220802,0x402102,0x209010, 0x18c31088,0x22088220,0x80080842,0x22222208,0x80204010,0x1014000,0x200,0x20001,0x2000,0x8008,0x0,0x0,0x100000,0x0,0x1008, 0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x40000500,0x80800010,0x40200000,0x41000,0x12020040,0x10000003,0xa0000006, 0x12000c4,0x31014000,0xc0300c0,0x300c0302,0x80402008,0x2008008,0x2008020,0x220c4220,0x88220882,0x20002208,0x42108421,0x8820088, 0x0,0x300,0x0,0x0,0x0,0x14000000,0x0,0x200200,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0xfc282504,0x80001000, 0x82a02000,0x20,0x22020020,0x8140802,0x102208,0x80801006,0x18008,0x9c848220,0x80210802,0x802102,0x20a010,0x15429104,0x22104220, 0x80080842,0x22221405,0x404008,0x1022000,0x703c0,0x381e0701,0xc0783c02,0xc09008,0x1d83c070,0x3c078140,0x381c0882,0x21242208, 0x81e01008,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x201e0,0x40220500,0x80800027,0x20e02800,0x9c800,0x12020040, 0x20000883,0xa0200002,0x120a044,0x11064010,0x12048120,0x48120484,0x80802008,0x2008008,0x2008020,0x210a4411,0x4411044,0x10884508, 0x42108421,0x503c0b0,0x1c0701c0,0x701c0707,0x70381c07,0x1c07008,0x2008020,0x20f01c0,0x701c0701,0xc0201c08,0x82208822,0x883c088, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x50281903,0x20001000,0x80802000,0x20,0x22020040,0x30240f03,0xc0101c08,0x80801018, 0x1fc06010,0xa48483c0,0x80210f03,0xe0803f02,0x20c010,0x15429104,0x22104220,0x70080841,0x41540805,0x804008,0x1041000,0x8220, 0x40220881,0x882202,0x40a008,0x12422088,0x22088180,0x40100882,0x21241408,0x80201008,0x2031000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x20280,0x401c0200,0x700028,0x21205000,0x92800,0xc1fc080,0x10000883,0xa0200002,0x1205049,0x12c19010,0x12048120,0x48120484, 0xf0803c0f,0x3c0f008,0x2008020,0x790a4411,0x4411044,0x10504908,0x42108421,0x5022088,0x2008020,0x8020080,0x88402208,0x82208808, 0x2008020,0x1e088220,0x88220882,0x20002608,0x82208822,0x8822088,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x501c0264, 0xa0001000,0x8001fc00,0x7000020,0x22020080,0x83e0082,0x20202207,0x80000020,0x1020,0xa4848220,0x80210802,0x9c2102,0x20c010, 0x12425104,0x3c1043c0,0x8080841,0x41540802,0x804008,0x1000000,0x78220,0x40220f81,0x882202,0x40c008,0x12422088,0x22088100, 0x60100881,0x41540805,0x406008,0x1849000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20280,0xf0140200,0x880028,0x20e0a03f,0x709c800, 0x201c0,0x60000881,0xa0000007,0xc0284b,0x122eb020,0x12048120,0x48120487,0x80802008,0x2008008,0x2008020,0x21094411,0x4411044, 0x10204908,0x42108421,0x2022088,0x1e0781e0,0x781e0787,0xf8403e0f,0x83e0f808,0x2008020,0x22088220,0x88220882,0x21fc2a08,0x82208822, 0x5022050,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20001,0xf80a0294,0x40001000,0x80002000,0x20,0x22020100,0x8040082,0x20202200, 0x80000018,0x1fc06020,0xa48fc220,0x80210802,0x842102,0x20a010,0x12425104,0x20104240,0x8080841,0x41541402,0x1004008,0x1000000, 0x88220,0x40220801,0x882202,0x40a008,0x12422088,0x22088100,0x18100881,0x41540805,0x801008,0x2046000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x20280,0x401c0f80,0x80880028,0x20005001,0x94800,0x20000,0x880,0xa0000000,0x5015,0x4215040,0x3f0fc3f0,0xfc3f0fc8, 0x80802008,0x2008008,0x2008020,0x21094411,0x4411044,0x10505108,0x42108421,0x203c088,0x22088220,0x88220888,0x80402008,0x2008008, 0x2008020,0x22088220,0x88220882,0x20002a08,0x82208822,0x5022050,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00a0494,0x60001000, 0x80002004,0x8020,0x22020200,0x88040882,0x20402201,0x801006,0x18000,0x9f084220,0x40220802,0x442102,0x209010,0x10423088,0x20088220, 0x8080840,0x80882202,0x2004008,0x1000000,0x88220,0x40220881,0x882202,0x409008,0x12422088,0x22088100,0x8100880,0x80881402, 0x1001008,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20280,0x40220200,0x80700027,0x20002801,0x92800,0x1fc000,0x980, 0xa0000000,0xa017,0x84417840,0x21084210,0x84210848,0x80402008,0x2008008,0x2008020,0x2208c220,0x88220882,0x20882208,0x42108421, 0x2020088,0x22088220,0x88220888,0xc8402208,0x82208808,0x2008020,0x22088220,0x88220882,0x20203208,0x82208822,0x2022020,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0xa03c0463,0x90000801,0x2004,0x8040,0x1c0703e0,0x70040701,0xc0401c06,0x801001,0x20020, 0x400843c0,0x3c3c0f82,0x3c2107,0x1c0881e,0x10423070,0x20070210,0xf0080780,0x80882202,0x3e04004,0x1000000,0x783c0,0x381e0701, 0x782202,0x408808,0x12422070,0x3c078100,0x700c0780,0x80882202,0x1e01008,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x201e0, 0xf8000200,0x80080010,0x40000001,0x41000,0x0,0xe80,0xa0000000,0x21,0x8e21038,0x21084210,0x84210848,0xf83c3e0f,0x83e0f81c, 0x701c070,0x3c08c1c0,0x701c0701,0xc0005c07,0x81e0781e,0x20200b0,0x1e0781e0,0x781e0787,0x30381c07,0x1c07008,0x2008020,0x1c0881c0, 0x701c0701,0xc0201c07,0x81e0781e,0x203c020,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x801,0x4,0x40,0x0,0x0,0x0,0x1000, 0x0,0x3c000000,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x4004,0x1000000,0x0,0x0,0x80000,0x400000,0x0,0x20008000,0x0,0x4,0x1008,0x2000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x8008000f,0x80000000,0x3e000,0x0,0x800,0xa0000400,0x0,0x0,0x0,0x0,0x80000,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x2000,0x0,0x4020040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000, 0x402,0x8,0x40,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x7004,0x70000fc,0x0,0x0,0x700000,0x800000,0x0,0x20008000, 0x0,0x4,0x808,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x80f00000,0x0,0x0,0x0,0x800,0xa0001800,0x0,0x0,0x0,0x0, 0x300000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x600000,0x0,0x0,0x0,0x0,0x0,0x0,0x4020040 }; // Define a 12x24 font (normal size). const unsigned int font12x24[12*24*256/32] = { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19,0x80000000,0x198000,0x0,0x0,0x0,0x0, 0x0,0x198,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc001806,0xc81980,0x60000000,0xc001806,0x1980c00,0x18060198,0xc80c, 0x180600,0xc8198000,0xc001,0x80601980,0x18000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0xf0000,0x0,0x0,0x0,0x0,0x0,0x198,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x600300f,0x1301980,0x90000000,0x600300f,0x1980600,0x300f0198,0x13006,0x300f01,0x30198000,0x6003, 0xf01980,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7007,0x3c0000,0x3006019, 0x80000000,0x90000000,0x3006019,0x80000300,0x60198000,0x3,0x601980,0x0,0x3006,0x1980000,0x60000000,0x0,0x0,0xe0000000,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000, 0x0,0x0,0x0,0x0,0x0,0xc800019,0x80000000,0x198000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x1001,0x420000,0x0,0x0,0x90000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000c06,0xc80001,0x10000000,0x18000c06,0x1800,0xc060000,0xc818,0xc0600,0xc8000000, 0x18000,0xc0600000,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6019,0x80660207,0x800f8060,0x300c004,0x0,0x6, 0xe00703f,0x3f00383,0xf80f07fc,0x1f01f000,0x0,0xf8,0x607f,0x7c7e07,0xfe7fe0f8,0x6063fc1f,0x86066007,0xe7060f0,0x7f80f07f, 0x81f8fff6,0x6606c03,0x70ee077f,0xe0786000,0xf0070000,0xc000060,0xc0,0x3e000,0x60006003,0x600fc00,0x0,0x0,0x0,0x0,0x0,0x3c0603, 0xc0000000,0x7800000,0xf0000,0x0,0xf00001f,0x80001fe0,0x7fe000,0x0,0x0,0x0,0x168fe609,0x0,0x90e07,0x6000,0x3c000e,0x70000f8, 0x1980001f,0x0,0x1f8,0xf00000f,0xf00180,0xfe000,0xe00e,0x1001,0x20060,0x6006006,0x600600,0x600fe07c,0x7fe7fe7f,0xe7fe3fc3, 0xfc3fc3fc,0x7e07060f,0xf00f00,0xf00f0000,0xf360660,0x6606606e,0x76001e0,0xc00180f,0x1681981,0x10000000,0xc00180f,0x1980c00, 0x180f0198,0x3801680c,0x180f01,0x68198000,0xc001,0x80f01980,0x18600198,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6019, 0x8044020c,0xc01f8060,0x2004004,0x0,0xc,0x3f81f07f,0x87f80383,0xf81f87fc,0x3f83f800,0x0,0x1fc,0x780607f,0x81fe7f87,0xfe7fe1fc, 0x6063fc1f,0x860c6007,0xe7061f8,0x7fc1f87f,0xc3fcfff6,0x6606c03,0x30c6067f,0xe0783000,0xf00d8000,0x6000060,0xc0,0x7e000,0x60006003, 0x600fc00,0x0,0x0,0xc00,0x0,0x0,0x7c0603,0xe0000000,0xfc00000,0x1f0000,0x0,0x900003f,0xc0003fe0,0x7fe000,0x0,0x0,0x0,0x1302660f, 0x0,0xf0606,0x6004,0x7e0006,0x60601f8,0x19800001,0x80000000,0x1f8,0x19800010,0x81080300,0x3f2000,0x2011,0x1001,0x1c0060,0x6006006, 0x600600,0x601fe1fe,0x7fe7fe7f,0xe7fe3fc3,0xfc3fc3fc,0x7f87061f,0x81f81f81,0xf81f8000,0x3fa60660,0x66066066,0x66003f0,0x6003009, 0x1301981,0x10000000,0x6003009,0x1980600,0x30090198,0x1f013006,0x300901,0x30198000,0x6003,0x901980,0x30600198,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6019,0x80cc0f8c,0xc0180060,0x6006044,0x40000000,0xc,0x3181b041,0xc41c0783,0x388018, 0x71c71800,0x0,0x106,0x18c0f061,0xc38261c6,0x600384,0x60606001,0x86186007,0xe78630c,0x60e30c60,0xe7040606,0x630cc03,0x39c30c00, 0xc0603000,0x3018c000,0x3000060,0xc0,0x60000,0x60000000,0x6000c00,0x0,0x0,0xc00,0x0,0x0,0x600600,0x60000000,0x18400000,0x180000, 0x0,0x19800070,0x40003600,0xc000,0x0,0x0,0x0,0x25a06,0x0,0x6030c,0x4,0xe20007,0xe060180,0xf000,0x80000000,0xf0000,0x10800000, 0x80080600,0x7f2000,0x2020,0x80001001,0x20000,0xf00f00f,0xf00f00,0x601b0382,0x60060060,0x6000600,0x60060060,0x61c78630,0xc30c30c3, 0xc30c000,0x30e60660,0x66066063,0xc600738,0x3006019,0x80000000,0xe0000000,0x3006019,0x80000300,0x60198000,0x3e000003,0x601980, 0x0,0x3006,0x1980000,0x60600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6019,0x80cc1fcc,0xc0180060,0x6006035,0x80000000, 0x18,0x71c03000,0xc00c0583,0x300018,0x60c60c00,0x0,0x6,0x3060f060,0xc30060c6,0x600300,0x60606001,0x86306007,0x9e78670e,0x60670e60, 0x66000606,0x630c606,0x19830c01,0xc0601800,0x30306000,0x60,0xc0,0x60000,0x60000000,0x6000c00,0x0,0x0,0xc00,0x0,0x0,0x600600, 0x60000000,0x18000000,0x300000,0x0,0x78060,0x6600,0x1c000,0x300c,0x39819c0,0x0,0x25a00,0x0,0x30c,0x4,0xc00003,0xc060180,0x30c1f, 0x80000000,0x30c000,0x10800001,0x80700000,0x7f2000,0x2020,0x80001001,0x20060,0xf00f00f,0xf00f00,0xf01b0300,0x60060060,0x6000600, 0x60060060,0x60c78670,0xe70e70e7,0xe70e000,0x70c60660,0x66066063,0xc7f8618,0x0,0x0,0x0,0x0,0x0,0x0,0x7000000,0x0,0x0,0x0, 0x0,0x600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6019,0x87ff3a4c,0xc0180060,0x400600e,0x600000,0x18,0x60c03000, 0xc00c0d83,0x700018,0x60c60c00,0x20,0x400006,0x3060f060,0xc6006066,0x600600,0x60606001,0x86606006,0x966c6606,0x60660660,0x66000606, 0x630c666,0xf019801,0x80601800,0x30603000,0x1f06f,0xf01ec0,0xf03fe1ec,0x6703e01f,0x61c0c06,0xdc6701f0,0x6f01ec0c,0xe1f87fc6, 0xc60cc03,0x71c60c7f,0xc0600600,0x60000000,0x30000000,0x300000,0x40040,0x88060,0x6600,0x18000,0x300c,0x1981980,0x0,0x2421f, 0x80003ce0,0x7fc198,0x601f,0xc02021,0x980600c0,0x40230,0x80000000,0x402000,0x19806003,0x80006,0xc7f2000,0x2020,0x80001001, 0x420060,0xf00f00f,0xf00f00,0xf01b0600,0x60060060,0x6000600,0x60060060,0x6066c660,0x66066066,0x6606208,0x60e60660,0x66066061, 0x987fc670,0x1f01f01f,0x1f01f01,0xf039c0f0,0xf00f00f,0xf03e03,0xe03e03e0,0x1f06701f,0x1f01f01,0xf01f0060,0x1e660c60,0xc60c60c6, 0xc6f060c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x7ff3207,0x8c0c0000,0xc00300e,0x600000,0x30,0x60c03000, 0xc01c0983,0xf0600030,0x31860c06,0x6001e0,0x78000e,0x23e1f861,0xc6006066,0x600600,0x60606001,0x86c06006,0x966c6606,0x60660660, 0xe7000606,0x630c666,0xf01f803,0x600c00,0x30000000,0x3f87f,0x83f83fc3,0xf83fe3fc,0x7f83e01f,0x6380c07,0xfe7f83f8,0x7f83fc0d, 0xf3fc7fc6,0xc71cc03,0x3183187f,0xc0600600,0x60000000,0xff806000,0x300000,0x40040,0x88070,0x6600,0x60030060,0x6001818,0x1883180, 0x0,0x2423f,0xc0007ff0,0x607fc1f8,0x603f,0x80c01fc1,0xf80601e0,0x5f220,0x80420000,0x5f2000,0xf006006,0x80006,0xc7f2000,0x2020, 0x82107c07,0xc03c0060,0x1f81f81f,0x81f81f80,0xf03b0600,0x60060060,0x6000600,0x60060060,0x6066c660,0x66066066,0x660671c,0x61660660, 0x66066061,0xf860e6c0,0x3f83f83f,0x83f83f83,0xf87fe3f8,0x3f83f83f,0x83f83e03,0xe03e03e0,0x3f87f83f,0x83f83f83,0xf83f8060, 0x3fc60c60,0xc60c60c3,0x187f8318,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x883200,0x300c0000,0xc003035,0x80600000, 0x30,0x66c03001,0xc0f81983,0xf86f0030,0x1f071c06,0x600787,0xfe1e001c,0x6261987f,0x86006067,0xfe7fc600,0x7fe06001,0x87c06006, 0xf6646606,0x60e6067f,0xc3e00606,0x61986f6,0x600f007,0x600c00,0x30000000,0x21c71,0x830831c3,0x1c06031c,0x71c06003,0x6700c06, 0x6671c318,0x71831c0f,0x16040c06,0xc318606,0x1b031803,0x80600600,0x60000000,0x30009000,0x300000,0x40040,0x7003e,0x67e0,0x90070090, 0x9001818,0x8c3100,0x0,0x60,0x4000e730,0x900380f0,0x6034,0x80c018c7,0xfe060338,0xb0121,0x80c60000,0x909000,0x6008,0x1080006, 0xc3f2000,0x2011,0x3180060,0x60060e0,0x19819819,0x81981981,0x9833c600,0x7fe7fe7f,0xe7fe0600,0x60060060,0x60664660,0x66066066, 0x66063b8,0x62660660,0x66066060,0xf06066c0,0x21c21c21,0xc21c21c2,0x1c466308,0x31c31c31,0xc31c0600,0x60060060,0x31871c31,0x83183183, 0x18318000,0x71860c60,0xc60c60c3,0x18718318,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x1981a00,0xe03e0000,0xc003044, 0x40600000,0x60,0x66c03001,0x80f03182,0x1c7f8030,0x3f83fc06,0x601e07,0xfe078038,0x6661987f,0x86006067,0xfe7fc61e,0x7fe06001, 0x87e06006,0x66666606,0x7fc6067f,0x81f80606,0x61986f6,0x6006006,0x600600,0x30000000,0xc60,0xc60060c6,0xc06060c,0x60c06003, 0x6e00c06,0x6660c60c,0x60c60c0e,0x6000c06,0xc318666,0x1f031803,0x600600,0x603c2000,0x30016800,0x1fe0000,0x1f81f8,0x1c1f,0x804067e1, 0x68060168,0x16800810,0xc42300,0x0,0x60,0x20c331,0x68030060,0x6064,0x3fc1040,0xf006031c,0xa011e,0x818c7fe0,0x909000,0x7fe1f, 0x80f00006,0xc0f2060,0xf80e,0x18c0780,0x780781c0,0x19819819,0x81981981,0x9833c600,0x7fe7fe7f,0xe7fe0600,0x60060060,0xfc666660, 0x66066066,0x66061f0,0x66660660,0x66066060,0x606066e0,0xc00c00,0xc00c00c0,0xc066600,0x60c60c60,0xc60c0600,0x60060060,0x60c60c60, 0xc60c60c6,0xc60c000,0x61c60c60,0xc60c60c3,0x1860c318,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x1980f81,0x80373000, 0xc003004,0x7fe0001,0xf0000060,0x60c03003,0x183180,0xc71c060,0x3181ec00,0x7000,0xe070,0x66619860,0xc6006066,0x60061e,0x60606001, 0x87606006,0x66626606,0x7f860661,0xc01c0606,0x6198696,0xf00600e,0x600600,0x30000000,0x1fc60,0xc60060c7,0xfc06060c,0x60c06003, 0x7c00c06,0x6660c60c,0x60c60c0c,0x7f00c06,0xc3b8666,0xe01b007,0x3c00600,0x3c7fe000,0xff03ec00,0x1fe0000,0x40040,0xe001,0xc0806603, 0xec0e03ec,0x3ec00010,0x0,0x60000000,0x7f,0x10c3f3,0xec070060,0x6064,0x3fc1040,0x6000030c,0xa0100,0x3187fe1,0xf09f1000,0x7fe00, 0x6,0xc012060,0x0,0xc63c03,0xc03c0380,0x19819819,0x81981981,0x98330600,0x60060060,0x6000600,0x60060060,0xfc662660,0x66066066, 0x66060e0,0x6c660660,0x66066060,0x6060e630,0x1fc1fc1f,0xc1fc1fc1,0xfc3fe600,0x7fc7fc7f,0xc7fc0600,0x60060060,0x60c60c60,0xc60c60c6, 0xc60c7fe,0x62c60c60,0xc60c60c1,0xb060c1b0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0xffe02c6,0x3c633000,0xc003004, 0x7fe0001,0xf00000c0,0x60c03006,0xc6180,0xc60c060,0x60c00c00,0x7000,0xe060,0x66639c60,0x66006066,0x600606,0x60606001,0x86306006, 0x66636606,0x60060660,0xc0060606,0x61f8696,0xf00600c,0x600300,0x30000000,0x3fc60,0xc60060c7,0xfc06060c,0x60c06003,0x7c00c06, 0x6660c60c,0x60c60c0c,0x1f80c06,0xc1b0666,0xe01b00e,0x3c00600,0x3c43c000,0x3007de00,0x600000,0x40040,0x30000,0x61006607,0xde0c07de, 0x7de00000,0x0,0xf07fefff,0x1f,0x8008c3f7,0xde0e0060,0x6064,0xc01047,0xfe00018c,0xb013f,0x86300061,0xf0911000,0x6000,0x6, 0xc012060,0x3f,0x8063c0cc,0x3cc0c700,0x39c39c39,0xc39c39c1,0x98630600,0x60060060,0x6000600,0x60060060,0x60663660,0x66066066, 0x66061f0,0x78660660,0x66066060,0x607fc618,0x3fc3fc3f,0xc3fc3fc3,0xfc7fe600,0x7fc7fc7f,0xc7fc0600,0x60060060,0x60c60c60,0xc60c60c6, 0xc60c7fe,0x64c60c60,0xc60c60c1,0xb060c1b0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0xffe0260,0x6661b000,0xc003000, 0x600000,0xc0,0x60c0300c,0xc7fe0,0xc60c060,0x60c01c00,0x1e07,0xfe078060,0x6663fc60,0x66006066,0x600606,0x60606001,0x86386006, 0x6636606,0x60060660,0xe0060606,0x60f039c,0x1b806018,0x600300,0x30000000,0x70c60,0xc60060c6,0x6060c,0x60c06003,0x7600c06, 0x6660c60c,0x60c60c0c,0x1c0c06,0xc1b03fc,0xe01f01c,0xe00600,0x70000000,0x3007fc00,0x600000,0x40040,0x0,0x62006607,0xfc1807fc, 0x7fc00000,0x0,0xf0000000,0x1,0xc004c307,0xfc1c0060,0x6064,0xc018c0,0x600000d8,0x5f200,0x3180060,0x50a000,0x6000,0x6,0xc012000, 0x0,0xc601c0,0x4201c600,0x3fc3fc3f,0xc3fc3fc3,0xfc7f0600,0x60060060,0x6000600,0x60060060,0x60663660,0x66066066,0x66063b8, 0x70660660,0x66066060,0x607f860c,0x70c70c70,0xc70c70c7,0xcc60600,0x60060060,0x6000600,0x60060060,0x60c60c60,0xc60c60c6,0xc60c000, 0x68c60c60,0xc60c60c1,0xf060c1f0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3300260,0x6661e000,0xc003000,0x600000, 0x180,0x71c03018,0xc7fe0,0xc60c0c0,0x60c01800,0x787,0xfe1e0060,0x6663fc60,0x630060c6,0x600306,0x60606001,0x86186006,0x661e70e, 0x60070c60,0x60060606,0x60f039c,0x19806038,0x600180,0x30000000,0x60c60,0xc60060c6,0x6060c,0x60c06003,0x6700c06,0x6660c60c, 0x60c60c0c,0xc0c06,0xc1b039c,0x1f00e018,0x600600,0x60000000,0x1803f800,0x600000,0x40040,0x39e00,0x63006603,0xf83803f8,0x3f800000, 0x0,0x60000000,0x0,0xc00cc303,0xf8180060,0x6064,0xc01fc0,0x60060070,0x40200,0x18c0060,0x402000,0x6000,0x6,0xc012000,0x0,0x18c0140, 0x2014600,0x3fc3fc3f,0xc3fc3fc3,0xfc7f0300,0x60060060,0x6000600,0x60060060,0x60c61e70,0xe70e70e7,0xe70e71c,0x60e60660,0x66066060, 0x6060060c,0x60c60c60,0xc60c60c6,0xcc60600,0x60060060,0x6000600,0x60060060,0x60c60c60,0xc60c60c6,0xc60c000,0x70c60c60,0xc60c60c0, 0xe060c0e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x33022e0,0x6670c000,0xc003000,0x600600,0x60180,0x31803030, 0x41c0184,0x1831c0c0,0x71c23806,0x6001e0,0x780000,0x62630c60,0xe38261c6,0x600386,0x60606043,0x860c6006,0x661e30c,0x60030c60, 0x740e0607,0xe0f039c,0x31c06030,0x600180,0x30000000,0x61c71,0x830831c3,0x406031c,0x60c06003,0x6300c06,0x6660c318,0x71831c0c, 0x41c0c07,0x1c0e039c,0x1b00e030,0x600600,0x60000000,0x1c41b00e,0x601cc0,0x401f8,0x45240,0xe1803601,0xb03001b0,0x1b000000, 0x0,0x0,0x41,0xc008e711,0xb0300060,0x6034,0x80c02020,0x60060030,0x30c00,0xc60000,0x30c000,0x0,0x7,0x1c012000,0x0,0x3180240, 0x6024608,0x30c30c30,0xc30c30c3,0xc630382,0x60060060,0x6000600,0x60060060,0x61c61e30,0xc30c30c3,0xc30c208,0x70c70e70,0xe70e70e0, 0x6060068c,0x61c61c61,0xc61c61c6,0x1cc62308,0x30430430,0x43040600,0x60060060,0x31860c31,0x83183183,0x18318060,0x31c71c71, 0xc71c71c0,0xe07180e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x2203fc0,0x663f6000,0x6006000,0x600600,0x60300, 0x3f81fe7f,0xc7f80187,0xf83f80c0,0x3f83f006,0x600020,0x400060,0x33e6067f,0xc1fe7f87,0xfe6001fe,0x6063fc7f,0x60e7fe6,0x660e3f8, 0x6001f860,0x37fc0603,0xfc06030c,0x30c0607f,0xe06000c0,0x30000000,0x7fc7f,0x83f83fc3,0xfc0603fc,0x60c7fe03,0x61807c6,0x6660c3f8, 0x7f83fc0c,0x7f80fc3,0xfc0e039c,0x3180607f,0xc0600600,0x60000000,0xfc0e00c,0x601986,0x66040040,0x4527f,0xc0803fe0,0xe07fe0e0, 0xe000000,0x0,0x0,0x7f,0x80107ff0,0xe07fc060,0x603f,0x83fe0000,0x60060018,0xf000,0x420000,0xf0000,0x7fe00,0x7,0xfe012000, 0x0,0x2100640,0xc0643f8,0x60660660,0x66066067,0xec3e1fe,0x7fe7fe7f,0xe7fe3fc3,0xfc3fc3fc,0x7f860e3f,0x83f83f83,0xf83f8000, 0x5fc3fc3f,0xc3fc3fc0,0x606006fc,0x7fc7fc7f,0xc7fc7fc7,0xfcffe3f8,0x3fc3fc3f,0xc3fc7fe7,0xfe7fe7fe,0x3f860c3f,0x83f83f83, 0xf83f8060,0x7f83fc3f,0xc3fc3fc0,0x607f8060,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x2201f80,0x3c1e7000,0x6006000, 0x600,0x60300,0xe01fe7f,0xc3f00183,0xe01f0180,0x1f01e006,0x600000,0x60,0x3006067f,0x807c7e07,0xfe6000f8,0x6063fc3e,0x6067fe6, 0x660e0f0,0x6000f060,0x3bf80601,0xf806030c,0x60e0607f,0xe06000c0,0x30000000,0x1ec6f,0xf01ec0,0xf80601ec,0x60c7fe03,0x61c03c6, 0x6660c1f0,0x6f01ec0c,0x3f007c1,0xcc0e030c,0x71c0c07f,0xc0600600,0x60000000,0x7804018,0xe01186,0x66040040,0x39e3f,0x80401fe0, 0x407fe040,0x4000000,0x0,0x0,0x3f,0x203ce0,0x407fc060,0x601f,0x3fe0000,0x60060018,0x0,0x0,0x0,0x7fe00,0x6,0xe6012000,0x0, 0x7e0,0x1807e1f0,0x60660660,0x66066066,0x6c3e07c,0x7fe7fe7f,0xe7fe3fc3,0xfc3fc3fc,0x7e060e0f,0xf00f00,0xf00f0000,0x8f01f81f, 0x81f81f80,0x60600670,0x1ec1ec1e,0xc1ec1ec1,0xec79c0f0,0xf80f80f,0x80f87fe7,0xfe7fe7fe,0x1f060c1f,0x1f01f01,0xf01f0000,0x4f01cc1c, 0xc1cc1cc0,0xc06f00c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x6006000,0x600,0x600,0x0,0x0,0x0,0x0, 0x600000,0x0,0x18000000,0x0,0x0,0x0,0x0,0x0,0x1800,0x0,0x0,0x0,0x600060,0x30000000,0x0,0x0,0xc,0x3,0x0,0x0,0x60000c00,0x0, 0x0,0xc000,0x600600,0x60000000,0x18,0xc03100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x601f8,0x0,0x0,0x0,0x0,0x6, 0x12000,0x2000000,0x40,0x20004000,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0xc06000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x2004000,0xc00,0x0,0x0,0x0,0x0,0x0,0xc00000, 0x0,0x1c000000,0x0,0x0,0x0,0x0,0x0,0xc00,0x0,0x0,0x0,0x780000,0xf0000000,0x0,0x0,0x21c,0x3,0x0,0x0,0x60000c00,0x0,0x0,0xc000, 0x7c0603,0xe0000000,0x10,0xc02300,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x601f0,0x0,0x0,0x0,0x0,0x6,0x12000,0x1000000, 0x40,0x7e004000,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc06000c0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x300c000,0xc00,0x0,0x0,0x0,0x0,0x0,0xc00000,0x0,0x7800000,0x0, 0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x780000,0xf0000000,0x0,0x0,0x3f8,0x3e,0x0,0x0,0x60000c00,0x0,0x0,0x38000,0x3c0603,0xc0000000, 0x10,0xfc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x60000,0x0,0x0,0x0,0x0,0x6,0x0,0x1000000,0x0,0x0,0x0,0x0, 0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x80600380,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc,0x0, 0x0,0x1f0,0x3c,0x0,0x0,0x60000c00,0x0,0x0,0x38000,0x600,0x0,0x0,0xf000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x6,0x0,0xe000000,0x0,0x0,0x0,0x0,0x70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x3,0x80600380,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x600,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }; // Define a 16x32 font (large size). const unsigned int font16x32[16*32*256/32] = { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc300000,0x0,0xc300000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70000e0,0x3c00730,0xe7001c0,0x0,0x70000e0,0x3c00e70,0x70000e0,0x3c00e70,0x730,0x70000e0,0x3c00730, 0xe700000,0x700,0xe003c0,0xe7000e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x6600000,0x0,0x6600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x18001c0,0x6600ff0,0xe7003e0,0x0,0x18001c0,0x6600e70,0x18001c0,0x6600e70,0xff0,0x18001c0,0x6600ff0,0xe700000,0x180, 0x1c00660,0xe7001c0,0x0,0x0,0x0,0x380,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000, 0x0,0x3c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c00380, 0xc300ce0,0xe700630,0x0,0x1c00380,0xc300e70,0x1c00380,0xc300e70,0xce0,0x1c00380,0xc300ce0,0xe700000,0x1c0,0x3800c30,0xe700380, 0x0,0x0,0x0,0x7c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0xe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800000,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0xc300000,0x0,0xc300000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x700000,0x0,0x0,0x0,0x7c007c00,0x3e000000, 0x0,0x0,0x630,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe000070,0x1800000,0xc60,0x0,0xe000070,0x1800000,0xe000070, 0x1800000,0x0,0xe000070,0x1800000,0x0,0xe00,0x700180,0x70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x800000,0x0,0x600600,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x3f0,0xfc0,0x0,0x7000000,0x38000000,0x1c0000,0xfc0000,0x380001c0,0xe01c00,0x7f800000,0x0,0x0,0x0,0x0,0x0,0x0,0x7c, 0x1801f00,0x0,0x0,0x1c,0x0,0x0,0x3c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7300000,0x6600000,0x0,0x6600000,0x0,0x0,0x0,0x0,0xe700000, 0x0,0x0,0x0,0x0,0x0,0xe00000,0x0,0x0,0x0,0xc000c00,0x43800000,0x0,0x0,0x630,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0xf80,0x70000e0,0x3c00730,0xe700c60,0x0,0x70000e0,0x3c00e70,0x70000e0,0x3c00e70,0xe000730,0x70000e0,0x3c00730,0xe700000,0x700, 0xe003c0,0xe7000e0,0x38000e70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x6300000,0x803c00,0x7c00180, 0xc00300,0x1000000,0x0,0x1c,0x3c007c0,0xfc007e0,0xe01ff8,0x3f03ffc,0x7e007c0,0x0,0x0,0x7c0,0x1c0,0x7f8003f0,0x7f007ff8,0x7ff803f0, 0x70381ffc,0xff0700e,0x7000783c,0x783807c0,0x7fc007c0,0x7fc00fc0,0x7fff7038,0x700ee007,0x780f780f,0x7ffc03f0,0x70000fc0,0x3c00000, 0x3000000,0x38000000,0x1c0000,0x1fc0000,0x380001c0,0xe01c00,0x7f800000,0x0,0x0,0x0,0x0,0x0,0x0,0xfc,0x1801f80,0x0,0x1f80000, 0x7e,0x0,0x0,0x2400000,0xfc00000,0x7ff0000,0x7ffc0000,0x0,0x0,0x0,0x0,0xf30fb0c,0x2400000,0x0,0x240780f,0x1c0,0xfc,0x780f, 0x18003f0,0xe700000,0x7c00000,0x0,0xff0,0x3c00000,0x78007c0,0xc00000,0xff80000,0xf80,0x7c00000,0xc000c00,0x18001c0,0x1c001c0, 0x1c001c0,0x1c003e0,0x7fe03f0,0x7ff87ff8,0x7ff87ff8,0x1ffc1ffc,0x1ffc1ffc,0x7f007838,0x7c007c0,0x7c007c0,0x7c00000,0x7c67038, 0x70387038,0x7038780f,0x70001fe0,0x30000c0,0x2400f30,0xe700c60,0x0,0x30000c0,0x2400e70,0x30000c0,0x2400e70,0xf700f30,0x30000c0, 0x2400f30,0xe700000,0x300,0xc00240,0xe7000c0,0x38000e70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0, 0x630018c,0x807e00,0xfe00180,0xc00300,0x1000000,0x0,0x38,0xff01fc0,0x3ff01ff0,0x1e01ff8,0x7f83ffc,0x1ff80ff0,0x0,0x0,0xff0, 0x1f003e0,0x7fe00ff8,0x7fc07ff8,0x7ff80ff8,0x70381ffc,0xff0701c,0x7000783c,0x78381ff0,0x7fe01ff0,0x7fe01ff0,0x7fff7038,0x781ee007, 0x3c1e380e,0x7ffc0380,0x380001c0,0x3c00000,0x1800000,0x38000000,0x1c0000,0x3c00000,0x380001c0,0xe01c00,0x3800000,0x0,0x0, 0x0,0x7000000,0x0,0x0,0x1e0,0x18003c0,0x0,0x3fc0000,0x70,0x0,0x0,0x6600000,0x1ff00000,0x1fff0000,0x7ffc0000,0x0,0x0,0x0,0x0, 0xcf0239c,0x3c00000,0x0,0x3c0380e,0x1c0,0x2001fe,0x380e,0x18007f8,0xe700000,0x8600000,0x0,0xff0,0x7e00000,0x8c00870,0x1800000, 0x1ff80000,0x180,0xc600000,0xc000c00,0x38001c0,0x3e003e0,0x3e003e0,0x3e001c0,0x7fe0ff8,0x7ff87ff8,0x7ff87ff8,0x1ffc1ffc,0x1ffc1ffc, 0x7fc07838,0x1ff01ff0,0x1ff01ff0,0x1ff00000,0x1fec7038,0x70387038,0x7038380e,0x70003ce0,0x1800180,0x6600cf0,0xe7007c0,0x0, 0x1800180,0x6600e70,0x1800180,0x6600e70,0x7c00cf0,0x1800180,0x6600cf0,0xe700000,0x180,0x1800660,0xe700180,0x38000e70,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x630030c,0x3f0e700,0x1e200180,0x1800180,0x21100000,0x0, 0x38,0x1e7819c0,0x38781038,0x1e01c00,0xf080038,0x1c381c38,0x0,0x0,0x1878,0x7fc03e0,0x70e01e18,0x70e07000,0x70001e18,0x703801c0, 0x707038,0x70007c7c,0x7c381c70,0x70701c70,0x70703830,0x1c07038,0x381ce007,0x1c1c3c1e,0x3c0380,0x380001c0,0x7e00000,0xc00000, 0x38000000,0x1c0000,0x3800000,0x38000000,0x1c00,0x3800000,0x0,0x0,0x0,0x7000000,0x0,0x0,0x1c0,0x18001c0,0x0,0x70c0000,0xe0, 0x0,0x0,0xc300000,0x38300000,0x3c700000,0x3c0000,0x0,0x0,0x0,0x0,0xce022f4,0x1800000,0x0,0x1803c1e,0x1c0,0x2003c2,0x3c1e, 0x1800e08,0x7e0,0x300000,0x0,0x7e00000,0xe700000,0x600030,0x3000000,0x3f980000,0x180,0x18200000,0xc000c00,0x1e0001c0,0x3e003e0, 0x3e003e0,0x3e003e0,0xfe01e18,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x70e07c38,0x1c701c70,0x1c701c70,0x1c700000,0x3c787038, 0x70387038,0x70383c1e,0x70003870,0xc00300,0xc300ce0,0x380,0x0,0xc00300,0xc300000,0xc00300,0xc300000,0xfc00ce0,0xc00300,0xc300ce0, 0x0,0xc0,0x3000c30,0x300,0x38000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x630031c,0xff8c300, 0x1c000180,0x1800180,0x39380000,0x0,0x70,0x1c3801c0,0x203c001c,0x3e01c00,0x1c000038,0x381c3838,0x0,0x0,0x1038,0xe0e03e0,0x70703c08, 0x70707000,0x70003808,0x703801c0,0x707070,0x70007c7c,0x7c383838,0x70383838,0x70387010,0x1c07038,0x381c700e,0x1e3c1c1c,0x780380, 0x1c0001c0,0xe700000,0x0,0x38000000,0x1c0000,0x3800000,0x38000000,0x1c00,0x3800000,0x0,0x0,0x0,0x7000000,0x0,0x0,0x1c0,0x18001c0, 0x0,0xe000000,0xe0,0x0,0x1000100,0x3800,0x70100000,0x38700000,0x780000,0x1c0,0x7801ce0,0xe380000,0x0,0x2264,0x0,0x0,0x1c1c, 0x0,0x200780,0x1c1c,0x1800c00,0x1818,0x7f00000,0x0,0x18180000,0xc300000,0x600070,0x0,0x7f980000,0x180,0x18300000,0xc000c00, 0x3000000,0x3e003e0,0x3e003e0,0x3e003e0,0xee03c08,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x70707c38,0x38383838,0x38383838, 0x38380000,0x38387038,0x70387038,0x70381c1c,0x7fc03870,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbc00000,0x0,0x0,0x0,0x0,0x0,0x0, 0x38000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x6300318,0xe88c300,0x1c000180,0x38001c0, 0xfe00180,0x0,0x70,0x1c3801c0,0x1c001c,0x6e01c00,0x1c000078,0x381c3818,0x0,0x40000,0x40000038,0x1c0607e0,0x70703800,0x70707000, 0x70003800,0x703801c0,0x7070e0,0x70007c7c,0x7c383838,0x70383838,0x70387000,0x1c07038,0x381c700e,0xf780e38,0x700380,0x1c0001c0, 0x1c380000,0x0,0x38000000,0x1c0000,0x3800000,0x38000000,0x1c00,0x3800000,0x0,0x0,0x0,0x7000000,0x0,0x0,0x1c0,0x18001c0,0x0, 0xe000000,0xe0,0x0,0x1000100,0x4400,0x70000000,0x38700000,0x700000,0xe0,0x7001c70,0xe380000,0x0,0x2264,0x0,0x0,0xe38,0x0, 0x200700,0xe38,0x1800c00,0x300c,0xc300000,0x0,0x300c0000,0xc300180,0x6003c0,0x0,0x7f980000,0x180,0x18300000,0xc000c00,0x1800000, 0x7e007e0,0x7e007e0,0x7e003e0,0xee03800,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x70707c38,0x38383838,0x38383838,0x38380000, 0x38387038,0x70387038,0x70380e38,0x7ff039f0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e00000,0x0,0x0,0x0,0x40000,0x0,0x0,0x38000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x6300318,0x1c80e700,0x1c000180,0x38001c0,0x3800180, 0x0,0xe0,0x381c01c0,0x1c001c,0x6e01c00,0x38000070,0x381c381c,0x0,0x3c0000,0x78000078,0x38030770,0x70707800,0x70387000,0x70007000, 0x703801c0,0x7071c0,0x7000745c,0x7638701c,0x7038701c,0x70387000,0x1c07038,0x1c38718e,0x7700f78,0xf00380,0xe0001c0,0x381c0000, 0x7e0,0x39e003e0,0x79c03f0,0x3ffc079c,0x39e01fc0,0xfe01c1e,0x3807778,0x39e007e0,0x39e0079c,0x73c07e0,0x7ff83838,0x701ce007, 0x783c701c,0x1ffc01c0,0x18001c0,0x0,0x1c000100,0xe0,0x0,0x1000100,0x4200,0x70000000,0x70700100,0xf00100,0x10000e0,0x7000c70, 0xc700000,0x0,0x2204,0x7e00000,0x1e380100,0x1ffc0f78,0x0,0xf80700,0xf78,0x1800e00,0x63e6,0x18300000,0x0,0x6fe60000,0xe700180, 0xc00060,0x3838,0x7f980000,0x180,0x18300000,0xc000c00,0x18001c0,0x7700770,0x7700770,0x77007f0,0xee07800,0x70007000,0x70007000, 0x1c001c0,0x1c001c0,0x70387638,0x701c701c,0x701c701c,0x701c1008,0x707c7038,0x70387038,0x70380f78,0x707039c0,0x7e007e0,0x7e007e0, 0x7e007e0,0x1f3c03e0,0x3f003f0,0x3f003f0,0x1fc01fc0,0x1fc01fc0,0x7f039e0,0x7e007e0,0x7e007e0,0x7e00380,0x7ce3838,0x38383838, 0x3838701c,0x39e0701c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x6307fff,0x1c807e0c,0xe000180, 0x30000c0,0x3800180,0x0,0xe0,0x381c01c0,0x1c001c,0xce01fe0,0x38000070,0x381c381c,0x3800380,0xfc0000,0x7e0000f0,0x30030770, 0x70707000,0x70387000,0x70007000,0x703801c0,0x707380,0x700076dc,0x7638701c,0x7038701c,0x70387800,0x1c07038,0x1c3873ce,0x7f00770, 0xe00380,0xe0001c0,0x700e0000,0x1ff8,0x3ff00ff0,0xffc0ff8,0x3ffc0ffc,0x3bf01fc0,0xfe01c3c,0x3807f78,0x3bf00ff0,0x3ff00ffc, 0x77e0ff0,0x7ff83838,0x3838e007,0x3c783838,0x1ffc01c0,0x18001c0,0x0,0x7ff00380,0x1e0,0x0,0x1000100,0x4200,0x78000000,0x70700380, 0xe00380,0x3800060,0xe000e30,0x1c600000,0x0,0x2204,0xff00000,0x7f7c0380,0x1ffc0770,0x1c0,0x3fc0700,0x18040770,0x1800780,0x4e12, 0x18300104,0x0,0x4c320000,0x7e00180,0x1c00030,0x3838,0x7f980000,0x180,0x18302080,0xc000c00,0x18001c0,0x7700770,0x7700770, 0x7700770,0x1ee07000,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x70387638,0x701c701c,0x701c701c,0x701c381c,0x705c7038,0x70387038, 0x70380770,0x70383b80,0x1ff81ff8,0x1ff81ff8,0x1ff81ff8,0x3fbe0ff0,0xff80ff8,0xff80ff8,0x1fc01fc0,0x1fc01fc0,0xff83bf0,0xff00ff0, 0xff00ff0,0xff00380,0xffc3838,0x38383838,0x38383838,0x3ff03838,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x1c0,0x7fff,0x1c803c38,0xf000000,0x70000e0,0xfe00180,0x0,0x1c0,0x381c01c0,0x3c0078,0xce01ff0,0x39e000f0,0x1c38381c,0x3800380, 0x3e07ffc,0xf8001f0,0x307b0770,0x70e07000,0x70387000,0x70007000,0x703801c0,0x707700,0x700076dc,0x7638701c,0x7038701c,0x70387e00, 0x1c07038,0x1c3873ce,0x3e007f0,0x1e00380,0x70001c0,0x0,0x1038,0x3c381e18,0x1c7c1e3c,0x3801e3c,0x3c7801c0,0xe01c78,0x380739c, 0x3c781c38,0x3c381c3c,0x7c21e10,0x7003838,0x3838700e,0x1ef03838,0x3c01c0,0x18001c0,0x0,0x7fe007c0,0x1c0,0x0,0x1000100,0x6400, 0x7e000000,0x707007c0,0x1e007c0,0x7c00070,0xe000638,0x18600000,0x0,0x0,0x1e100000,0x73ce07c0,0x3c07f0,0x1c0,0x7240700,0x1ddc3ffe, 0x1800de0,0x8c01,0x1870030c,0x0,0x8c310000,0x3c00180,0x3800030,0x3838,0x7f980000,0x180,0x183030c0,0xc000c00,0x430001c0,0x7700770, 0x7700770,0x7700770,0x1ce07000,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x70387638,0x701c701c,0x701c701c,0x701c1c38,0x70dc7038, 0x70387038,0x703807f0,0x70383b80,0x10381038,0x10381038,0x10381038,0x21e71e18,0x1e3c1e3c,0x1e3c1e3c,0x1c001c0,0x1c001c0,0x1e383c78, 0x1c381c38,0x1c381c38,0x1c380380,0x1c383838,0x38383838,0x38383838,0x3c383838,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x1c0,0x630,0x1e8000e0,0x1f000000,0x70000e0,0x39380180,0x0,0x1c0,0x3b9c01c0,0x3c07f0,0x18e01078,0x3bf800e0, 0x7e0383c,0x3800380,0x1f807ffc,0x3f001c0,0x61ff0e38,0x7fc07000,0x70387ff0,0x7ff07000,0x7ff801c0,0x707f00,0x7000729c,0x7338701c, 0x7070701c,0x70703fc0,0x1c07038,0x1e7873ce,0x1c003e0,0x3c00380,0x70001c0,0x0,0x1c,0x3c381c00,0x1c3c1c1c,0x3801c3c,0x383801c0, 0xe01cf0,0x380739c,0x38381c38,0x3c381c3c,0x7801c00,0x7003838,0x3838700e,0xfe03c78,0x7801c0,0x18001c0,0x0,0x1c000c20,0xff8, 0x0,0x1ff01ff0,0x3818,0x3fc00100,0x707e0c20,0x3c00c20,0xc200030,0xc000618,0x18c00000,0x0,0x0,0x1c000080,0xe1ce0c20,0x7803e0, 0x1c0,0xe200700,0xff83ffe,0x1801878,0x9801,0x1cf0071c,0x7ffc0000,0x8c310000,0x7ffe,0x7000030,0x3838,0x3f980380,0x180,0xc6038e0, 0x7f9c7f9c,0x3e1c01c0,0xe380e38,0xe380e38,0xe380f78,0x1cfc7000,0x7ff07ff0,0x7ff07ff0,0x1c001c0,0x1c001c0,0xfe387338,0x701c701c, 0x701c701c,0x701c0e70,0x719c7038,0x70387038,0x703803e0,0x70383b80,0x1c001c,0x1c001c,0x1c001c,0xe71c00,0x1c1c1c1c,0x1c1c1c1c, 0x1c001c0,0x1c001c0,0x1c383838,0x1c381c38,0x1c381c38,0x1c380000,0x3c383838,0x38383838,0x38383c78,0x3c383c78,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x630,0xf800380,0x3f830000,0x70000e0,0x31080180,0x0,0x380,0x3b9c01c0, 0x7807e0,0x38e00038,0x3c3800e0,0xff01c3c,0x3800380,0x7c000000,0x7c03c0,0x61870e38,0x7fc07000,0x70387ff0,0x7ff070fc,0x7ff801c0, 0x707f80,0x7000739c,0x7338701c,0x7ff0701c,0x7fe00ff0,0x1c07038,0xe7073ce,0x1c003e0,0x3800380,0x38001c0,0x0,0x1c,0x381c3800, 0x381c380e,0x380381c,0x383801c0,0xe01de0,0x380739c,0x3838381c,0x381c381c,0x7001e00,0x7003838,0x1c70718e,0x7e01c70,0xf00380, 0x18001e0,0x1e000000,0x1c001bb0,0xff8,0x0,0x1000100,0xe0,0xff00300,0x707e1bb0,0x3801bb0,0x1bb00010,0x8000308,0x30c00000,0x0, 0x0,0x1e0000c0,0xe1ce1bb0,0xf003e0,0x1c0,0x1c203ff8,0x63003e0,0x180181c,0x9801,0xfb00e38,0x7ffc0000,0x8fc10000,0x7ffe,0xe000860, 0x3838,0x1f980380,0x180,0x7c01c70,0x1f001f0,0x1f003c0,0xe380e38,0xe380e38,0xe380e38,0x1cfc7000,0x7ff07ff0,0x7ff07ff0,0x1c001c0, 0x1c001c0,0xfe387338,0x701c701c,0x701c701c,0x701c07e0,0x731c7038,0x70387038,0x703803e0,0x70383980,0x1c001c,0x1c001c,0x1c001c, 0xe73800,0x380e380e,0x380e380e,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c0000,0x387c3838,0x38383838,0x38381c70, 0x381c1c70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0xc30,0x7f00e00,0x33c30000,0x70000e0,0x1007ffe, 0x0,0x380,0x3b9c01c0,0xf00078,0x30e0001c,0x3c1c01c0,0x1c381fdc,0x0,0x70000000,0x1c0380,0x63030e38,0x70707000,0x70387000,0x700070fc, 0x703801c0,0x707b80,0x7000739c,0x7338701c,0x7fc0701c,0x7fc001f0,0x1c07038,0xe703e5c,0x3e001c0,0x7800380,0x38001c0,0x0,0x7fc, 0x381c3800,0x381c380e,0x380381c,0x383801c0,0xe01fe0,0x380739c,0x3838381c,0x381c381c,0x7001fc0,0x7003838,0x1c70718e,0x7c01c70, 0xe01f00,0x180007c,0x7f8c0000,0x7fc03fb8,0x1c0,0x0,0x1000100,0x700,0x1f00600,0x70703fb8,0x7803fb8,0x3fb80000,0x8000000,0x180, 0x0,0x0,0x1fc00060,0xe1ce3fb8,0xe001c0,0x1c0,0x1c203ff8,0xc1801c0,0x180c,0x9801,0x1c70,0xc0000,0x8cc10000,0x180,0xfe007c0, 0x3838,0x7980380,0xff0,0xe38,0x3e003e00,0x3e000380,0xe380e38,0xe380e38,0xe380e38,0x38e07000,0x70007000,0x70007000,0x1c001c0, 0x1c001c0,0x70387338,0x701c701c,0x701c701c,0x701c03c0,0x731c7038,0x70387038,0x703801c0,0x703838e0,0x7fc07fc,0x7fc07fc,0x7fc07fc, 0xe73800,0x380e380e,0x380e380e,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c7ffc,0x38dc3838,0x38383838,0x38381c70, 0x381c1c70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0xc60,0xf83878,0x71e30000,0x70000e0,0x1007ffe, 0x7f0,0x380,0x381c01c0,0x1e0003c,0x60e0001c,0x381c01c0,0x381c079c,0x0,0x7c000000,0x7c0380,0x63031c1c,0x70307000,0x70387000, 0x7000701c,0x703801c0,0x7071c0,0x7000739c,0x71b8701c,0x7000701c,0x71e00078,0x1c07038,0xe703e7c,0x7e001c0,0xf000380,0x38001c0, 0x0,0x1ffc,0x381c3800,0x381c3ffe,0x380381c,0x383801c0,0xe01fc0,0x380739c,0x3838381c,0x381c381c,0x7000ff0,0x7003838,0x1ef03bdc, 0x3800ee0,0x1e01f00,0x180007c,0x61fc0000,0x7fc07f3c,0x1c0,0x0,0x1000100,0x1800,0x780c00,0x70707f3c,0xf007f3c,0x7f3c0000,0x0, 0x3c0,0x3ffcffff,0x0,0xff00030,0xe1fe7f3c,0x1e001c0,0x1c0,0x1c200700,0xc183ffe,0xe0c,0x9801,0x1ff038e0,0xc07f0,0x8c610000, 0x180,0x0,0x3838,0x1980380,0x0,0x1ff0071c,0xe000e000,0xe0000f80,0x1c1c1c1c,0x1c1c1c1c,0x1c1c1e38,0x38e07000,0x70007000,0x70007000, 0x1c001c0,0x1c001c0,0x703871b8,0x701c701c,0x701c701c,0x701c03c0,0x761c7038,0x70387038,0x703801c0,0x70703870,0x1ffc1ffc,0x1ffc1ffc, 0x1ffc1ffc,0xfff3800,0x3ffe3ffe,0x3ffe3ffe,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c7ffc,0x389c3838,0x38383838, 0x38380ee0,0x381c0ee0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0xfffc,0xbc60fc,0x70e30000,0x70000e0, 0x180,0x7f0,0x700,0x381c01c0,0x3e0001c,0x7ffc001c,0x381c03c0,0x381c001c,0x0,0x1f807ffc,0x3f00380,0x63031ffc,0x70387000,0x70387000, 0x7000701c,0x703801c0,0x7071e0,0x7000701c,0x71b8701c,0x7000701c,0x70f00038,0x1c07038,0x7e03e7c,0x77001c0,0xe000380,0x1c001c0, 0x0,0x3c1c,0x381c3800,0x381c3ffe,0x380381c,0x383801c0,0xe01fe0,0x380739c,0x3838381c,0x381c381c,0x70003f8,0x7003838,0xee03bdc, 0x3c00ee0,0x3c00380,0x18000e0,0xf00000,0x1c007e7c,0x3c0,0x0,0x1000100,0x0,0x381800,0x70707e7c,0xe007e7c,0x7e7c0000,0x0,0x7c0, 0x0,0x0,0x3f80018,0xe1fe7e7c,0x3c001c0,0x1c0,0x1c200700,0xc183ffe,0xf0c,0x8c01,0x38e0,0xc07f0,0x8c710000,0x180,0x0,0x3838, 0x1980000,0x0,0x71c,0x7000f0,0x700f00,0x1ffc1ffc,0x1ffc1ffc,0x1ffc1ffc,0x3fe07000,0x70007000,0x70007000,0x1c001c0,0x1c001c0, 0x703871b8,0x701c701c,0x701c701c,0x701c07e0,0x7c1c7038,0x70387038,0x703801c0,0x7ff03838,0x3c1c3c1c,0x3c1c3c1c,0x3c1c3c1c, 0x3fff3800,0x3ffe3ffe,0x3ffe3ffe,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c0000,0x391c3838,0x38383838,0x38380ee0, 0x381c0ee0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfffc,0x9c01ce,0x70f60000,0x70000e0,0x180, 0x0,0x700,0x381c01c0,0x780001c,0x7ffc001c,0x381c0380,0x381c003c,0x0,0x3e07ffc,0xf800380,0x63031ffc,0x70387000,0x70387000, 0x7000701c,0x703801c0,0x7070f0,0x7000701c,0x71b8701c,0x7000701c,0x70700038,0x1c07038,0x7e03e7c,0xf7801c0,0x1e000380,0x1c001c0, 0x0,0x381c,0x381c3800,0x381c3800,0x380381c,0x383801c0,0xe01fe0,0x380739c,0x3838381c,0x381c381c,0x7000078,0x7003838,0xee03a5c, 0x7c00fe0,0x78001c0,0x18001c0,0x0,0x1c003ef8,0x380,0x0,0x1000100,0x810,0x383000,0x70703ef8,0x1e003ef8,0x3ef80000,0x0,0x7c0, 0x0,0x0,0x78000c,0xe1c03ef8,0x78001c0,0x1c0,0x1c200700,0x63001c0,0x18003f8,0x4e12,0x1c70,0xc0000,0x4c320000,0x180,0x0,0x3838, 0x1980000,0x0,0xe38,0x700118,0x701e00,0x1ffc1ffc,0x1ffc1ffc,0x1ffc1ffc,0x7fe07000,0x70007000,0x70007000,0x1c001c0,0x1c001c0, 0x703871b8,0x701c701c,0x701c701c,0x701c0e70,0x7c1c7038,0x70387038,0x703801c0,0x7fc0381c,0x381c381c,0x381c381c,0x381c381c, 0x78e03800,0x38003800,0x38003800,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c0000,0x3b1c3838,0x38383838,0x38380fe0, 0x381c0fe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1860,0x9c0186,0x707e0000,0x30000c0,0x180, 0x0,0xe00,0x183801c0,0xf00001c,0xe0001c,0x181c0380,0x381c0038,0x0,0xfc0000,0x7e000000,0x61873c1e,0x70383800,0x70707000,0x7000381c, 0x703801c0,0x707070,0x7000701c,0x70f83838,0x70003838,0x70780038,0x1c07038,0x7e03c3c,0xe3801c0,0x1c000380,0xe001c0,0x0,0x381c, 0x381c3800,0x381c3800,0x380381c,0x383801c0,0xe01ef0,0x380739c,0x3838381c,0x381c381c,0x7000038,0x7003838,0xfe03e7c,0xfe007c0, 0x70001c0,0x18001c0,0x0,0xe001ff0,0x380,0x0,0x1000100,0x162c,0x381800,0x30701ff0,0x1c001ff0,0x1ff00000,0x0,0x3c0,0x0,0x0, 0x380018,0xe1c01ff0,0x70001c0,0x1c0,0x1c200700,0xff801c0,0x18000f0,0x63e6,0xe38,0x0,0x6c3e0000,0x0,0x0,0x3838,0x1980000,0x0, 0x1c70,0xf0000c,0xf01c00,0x3c1e3c1e,0x3c1e3c1e,0x3c1e3c1c,0x70e03800,0x70007000,0x70007000,0x1c001c0,0x1c001c0,0x707070f8, 0x38383838,0x38383838,0x38381c38,0x38387038,0x70387038,0x703801c0,0x7000381c,0x381c381c,0x381c381c,0x381c381c,0x70e03800, 0x38003800,0x38003800,0x1c001c0,0x1c001c0,0x381c3838,0x381c381c,0x381c381c,0x381c0380,0x3e1c3838,0x38383838,0x383807c0,0x381c07c0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18c0,0x9c0186,0x783c0000,0x38001c0,0x180,0x3800000, 0x3800e00,0x1c3801c0,0x1e00003c,0xe00038,0x1c1c0780,0x381c0038,0x3800380,0x3c0000,0x78000000,0x61ff380e,0x70383808,0x70707000, 0x7000381c,0x703801c0,0x40707078,0x7000701c,0x70f83838,0x70003838,0x70384038,0x1c07038,0x7e03c3c,0x1e3c01c0,0x3c000380,0xe001c0, 0x0,0x383c,0x3c381c00,0x1c3c1c00,0x3801c3c,0x383801c0,0xe01c78,0x380739c,0x38381c38,0x3c381c3c,0x7000038,0x7003878,0x7c01e78, 0x1ef007c0,0xf0001c0,0x18001c0,0x0,0xe000ee0,0x7800380,0xe380000,0x1001ff0,0x2242,0x40380c00,0x38700ee0,0x3c000ee0,0xee00000, 0x0,0x0,0x0,0x0,0x380030,0xe1c00ee0,0xf0001c0,0x1c0,0xe200700,0xdd801c0,0x1800038,0x300c,0x71c,0x0,0x300c0000,0x0,0x0,0x3838, 0x1980000,0x0,0x38e0,0xb0000c,0xb01c08,0x380e380e,0x380e380e,0x380e380e,0x70e03808,0x70007000,0x70007000,0x1c001c0,0x1c001c0, 0x707070f8,0x38383838,0x38383838,0x3838381c,0x38387038,0x70387038,0x703801c0,0x7000381c,0x383c383c,0x383c383c,0x383c383c, 0x70e01c00,0x1c001c00,0x1c001c00,0x1c001c0,0x1c001c0,0x1c383838,0x1c381c38,0x1c381c38,0x1c380380,0x1c383878,0x38783878,0x387807c0, 0x3c3807c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x18c0,0x10b801ce,0x3c3e0000,0x38001c0,0x180, 0x3800000,0x3801c00,0x1e7801c0,0x3c002078,0xe02078,0x1c380700,0x1c3810f0,0x3800380,0x40000,0x40000380,0x307b380e,0x70701e18, 0x70e07000,0x70001c1c,0x703801c0,0x60e0703c,0x7000701c,0x70f83c78,0x70003c70,0x703c70f0,0x1c03870,0x3c01c3c,0x3c1c01c0,0x78000380, 0x7001c0,0x0,0x3c7c,0x3c381e18,0x1c7c1e0c,0x3801c3c,0x383801c0,0xe01c38,0x3c0739c,0x38381c38,0x3c381c3c,0x7001078,0x7803c78, 0x7c01c38,0x1c780380,0x1e0001c0,0x18001c0,0x0,0x70c06c0,0x7000380,0xe300000,0x1000100,0x2142,0x70f00600,0x3c7006c0,0x780006c0, 0x6c00000,0x0,0x0,0x0,0x0,0x10780060,0x73e206c0,0x1e0001c0,0x1c0,0x7240700,0x180c01c0,0x1800018,0x1818,0x30c,0x0,0x18180000, 0x0,0x0,0x3c78,0x1980000,0x0,0x30c0,0x130000c,0x1301c18,0x380e380e,0x380e380e,0x380e380e,0x70e01e18,0x70007000,0x70007000, 0x1c001c0,0x1c001c0,0x70e070f8,0x3c783c78,0x3c783c78,0x3c781008,0x7c783870,0x38703870,0x387001c0,0x70003a3c,0x3c7c3c7c,0x3c7c3c7c, 0x3c7c3c7c,0x79f11e18,0x1e0c1e0c,0x1e0c1e0c,0x1c001c0,0x1c001c0,0x1c783838,0x1c381c38,0x1c381c38,0x1c380380,0x1c383c78,0x3c783c78, 0x3c780380,0x3c380380,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x38c0,0x1ff800fc,0x1fee0000, 0x1800180,0x180,0x3800000,0x3801c00,0xff01ffc,0x3ffc3ff0,0xe03ff0,0xff00700,0x1ff81fe0,0x3800380,0x0,0x380,0x3000780f,0x7ff00ff8, 0x7fc07ff8,0x70000ffc,0x70381ffc,0x7fe0701c,0x7ff8701c,0x70781ff0,0x70001ff0,0x701c7ff0,0x1c01fe0,0x3c01c38,0x380e01c0,0x7ffc0380, 0x7001c0,0x0,0x1fdc,0x3ff00ff0,0xffc0ffc,0x3800fdc,0x38383ffe,0xe01c3c,0x1fc739c,0x38380ff0,0x3ff00ffc,0x7001ff0,0x3f81fb8, 0x7c01c38,0x3c3c0380,0x1ffc01c0,0x18001c0,0x0,0x3fc0380,0x7000380,0xc70718c,0x1000100,0x2244,0x7ff00200,0x1fff0380,0x7ffc0380, 0x3800000,0x0,0x0,0x0,0x0,0x1ff000c0,0x7f7e0380,0x1ffc01c0,0x1c0,0x3fc3ffe,0x1c0,0x1800018,0x7e0,0x104,0x0,0x7e00000,0x7ffe, 0x0,0x3fde,0x1980000,0x0,0x2080,0x3300018,0x3300ff0,0x780f780f,0x780f780f,0x780f780e,0xf0fe0ff8,0x7ff87ff8,0x7ff87ff8,0x1ffc1ffc, 0x1ffc1ffc,0x7fc07078,0x1ff01ff0,0x1ff01ff0,0x1ff00000,0x7ff01fe0,0x1fe01fe0,0x1fe001c0,0x70003bf8,0x1fdc1fdc,0x1fdc1fdc, 0x1fdc1fdc,0x3fbf0ff0,0xffc0ffc,0xffc0ffc,0x3ffe3ffe,0x3ffe3ffe,0xff03838,0xff00ff0,0xff00ff0,0xff00000,0x3ff01fb8,0x1fb81fb8, 0x1fb80380,0x3ff00380,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x31c0,0x7e00078,0x7cf0000,0x1800180, 0x0,0x3800000,0x3803800,0x3c01ffc,0x3ffc0fe0,0xe01fc0,0x3e00e00,0x7e00f80,0x3800380,0x0,0x380,0x18007007,0x7fc003f0,0x7f007ff8, 0x700003f0,0x70381ffc,0x3f80701e,0x7ff8701c,0x707807c0,0x700007c0,0x701e1fc0,0x1c00fc0,0x3c01818,0x780f01c0,0x7ffc0380,0x3801c0, 0x0,0xf9c,0x39e003e0,0x79c03f0,0x380079c,0x38383ffe,0xe01c1e,0x7c739c,0x383807e0,0x39e0079c,0x7000fc0,0x1f80f38,0x3801c38, 0x781e0380,0x1ffc01c0,0x18001c0,0x0,0x1f80100,0xe000700,0x1c60718c,0x1000100,0x1e3c,0x1fc00100,0x7ff0100,0x7ffc0100,0x1000000, 0x0,0x0,0x0,0x0,0xfc00080,0x3e3c0100,0x1ffc01c0,0x1c0,0xf83ffe,0x1c0,0x1800838,0x0,0x0,0x0,0x0,0x7ffe,0x0,0x3b9e,0x1980000, 0x0,0x0,0x2300038,0x23003e0,0x70077007,0x70077007,0x70077007,0xe0fe03f0,0x7ff87ff8,0x7ff87ff8,0x1ffc1ffc,0x1ffc1ffc,0x7f007078, 0x7c007c0,0x7c007c0,0x7c00000,0xc7c00fc0,0xfc00fc0,0xfc001c0,0x700039f0,0xf9c0f9c,0xf9c0f9c,0xf9c0f9c,0x1f1e03e0,0x3f003f0, 0x3f003f0,0x3ffe3ffe,0x3ffe3ffe,0x7e03838,0x7e007e0,0x7e007e0,0x7e00000,0x63e00f38,0xf380f38,0xf380380,0x39e00380,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0xc00300,0x0,0x3000000,0x3800,0x0,0x0,0x0,0x0, 0x0,0x300,0x0,0x0,0x1c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x0,0x380,0x3801c0,0x0,0x0,0x0,0x0,0x1c,0x0,0xe00000, 0x0,0x0,0x3800001c,0x0,0x0,0x0,0x700,0x1c0,0x18001c0,0x0,0x0,0xe000700,0x18600000,0x1000100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x1800ff0,0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x1980000,0x1800000,0x0,0x6300070,0x6300000,0x0, 0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000, 0x0,0x700,0x38000700,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0,0xc00300,0x0,0x7000000, 0x7000,0x0,0x0,0x0,0x0,0x0,0x700,0x0,0x0,0xf040000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x0,0x3f0,0x1c0fc0,0x0,0x0, 0x0,0x0,0x1c,0x0,0xe00000,0x0,0x0,0x3800001c,0x0,0x0,0x0,0x700,0x1e0,0x18003c0,0x0,0x0,0xc000700,0x18c00000,0x1000000,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x18007e0,0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x1980000,0xc00000, 0x0,0x7f800e0,0x7f80000,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x700,0x38000700,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000, 0x0,0x600600,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x600,0x0,0x0,0x7fc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x0, 0x3f0,0xfc0,0x0,0x0,0x0,0x0,0x838,0x0,0x1e00000,0x0,0x0,0x3800001c,0x0,0x0,0x0,0xf00,0xfc,0x1801f80,0x0,0x0,0x8008e00,0x30c00000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x1800000,0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x1980000,0xc00000, 0x0,0x3001c0,0x300000,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0xf00,0x38000f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0xff0,0x0,0x1fc00000,0x0,0x0,0x3800001c,0x0,0x0,0x0,0x3e00,0x7c,0x1801f00,0x0,0x0,0x800fe00,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x1800000,0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x0,0x7c00000,0x0,0x3001fc,0x300000, 0x0,0x0,0x0,0x3e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x3e00,0x38003e00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfff8,0x0,0x0,0x0,0x7e0,0x0,0x1f000000, 0x0,0x0,0x3800001c,0x0,0x0,0x0,0x3c00,0x0,0x1800000,0x0,0x0,0x7800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x0,0x7800000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00,0x38003c00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfff8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800000,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0 }; // Define a 29x57 font (extra large size). const unsigned int font29x57[29*57*256/32] = { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x781e00,0x0,0x0,0x7,0x81e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c0000,0xf8000,0x7e00000,0x0,0x7, 0xc0000000,0x0,0x7c00,0xf80,0x7e000,0x0,0x7c00000,0xf80000,0x7e000000,0x0,0x0,0x1f00,0x3e0,0x1f800,0x0,0x0,0x0,0x3,0xe0000000, 0x7c00003f,0x0,0xf8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x3c3c00,0x0,0x0,0x3,0xc3c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e1f00, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e0000, 0x1f0000,0x7e00000,0xf838001f,0xf80001f,0xf0000000,0x0,0x3e00,0x1f00,0x7e000,0x3e1f000,0x3e00000,0x1f00000,0x7e00003e,0x1f000000, 0x3e0,0xe0000f80,0x7c0,0x1f800,0x3e0e00,0x7c3e000,0x0,0x1,0xf0000000,0xf800003f,0x1f0f,0x800001f0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e7800,0x0,0x0, 0x1,0xe7800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e0000,0x1e0000,0xff00001,0xfe38001f,0xf80003f, 0xf8000000,0x0,0x1e00,0x1e00,0xff000,0x3e1f000,0x1e00000,0x1e00000,0xff00003e,0x1f000000,0x7f8,0xe0000780,0x780,0x3fc00,0x7f8e00, 0x7c3e000,0x0,0x0,0xf0000000,0xf000007f,0x80001f0f,0x800001e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xef000,0x0,0x0,0x0,0xef000000,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0000,0x3c0000,0x1e780003,0xfff8001f,0xf80003c,0x78000000,0x0,0xf00,0x3c00,0x1e7800, 0x3e1f000,0xf00000,0x3c00001,0xe780003e,0x1f000000,0xfff,0xe00003c0,0xf00,0x79e00,0xfffe00,0x7c3e000,0x0,0x0,0x78000001,0xe00000f3, 0xc0001f0f,0x800003c0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e000,0x0,0x0,0x0,0x7e000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x78000,0x780000,0x3c3c0003,0x8ff0001f,0xf800078,0x3c000000,0x0,0x780,0x7800,0x3c3c00,0x3e1f000,0x780000,0x7800003,0xc3c0003e, 0x1f000000,0xe3f,0xc00001e0,0x1e00,0xf0f00,0xe3fc00,0x7c3e000,0x0,0x0,0x3c000003,0xc00001e1,0xe0001f0f,0x80000780,0x0,0x0, 0x0,0x0,0x0,0x0,0x1f,0xf0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x7e000,0x0,0x0,0x0,0x7e000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc00,0x7e000,0xfe000,0x0,0x3c000,0xf00000,0x781e0003, 0x83e0001f,0xf800070,0x1c000000,0x0,0x3c0,0xf000,0x781e00,0x3e1f000,0x3c0000,0xf000007,0x81e0003e,0x1f000000,0xe0f,0x800000f0, 0x3c00,0x1e0780,0xe0f800,0x7c3e000,0x0,0x0,0x1e000007,0x800003c0,0xf0001f0f,0x80000f00,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0xf8000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fc00,0x1fe000,0x3ff800,0x0,0x0,0x0,0x0,0x0,0x70,0x1c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x78000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x78,0xf000000,0x0,0x0,0x780f0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c0, 0x0,0x0,0x0,0x0,0x0,0x0,0x3fc00,0x1fe000,0x3ffc00,0x0,0x0,0x0,0x0,0x0,0x70,0x1c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f00000,0x3e000,0x3e00000,0x0,0x78,0x3c000000,0x0,0x1f000,0x3e0, 0x3e000,0x0,0x1f000000,0x3e0000,0x3e000000,0x0,0x0,0x7c00,0xf8,0xf800,0x0,0x0,0x0,0xf,0x80000000,0x1f00001f,0x0,0x3e,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf80000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0xf80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x781c0000,0x38,0xe000000,0x0,0x0,0x380e0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf80,0x0,0x0,0x0,0x0,0x0,0x0,0x39c00,0x1ce000,0x303e00, 0x0,0x0,0x0,0x0,0x0,0x78,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0, 0x0,0x0,0xf80000,0x7c000,0x3e00000,0xf0380000,0x70,0x1c000000,0x0,0xf800,0x7c0,0x3e000,0x0,0xf800000,0x7c0000,0x3e000000, 0x0,0x3c0,0xe0003e00,0x1f0,0xf800,0x3c0e00,0x0,0x0,0x7,0xc0000000,0x3e00001f,0x0,0x7c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0xff,0x0, 0xf8,0xf8000,0x1c000,0x0,0x0,0x0,0x0,0x1f,0xc0000000,0x1ff8,0xff00,0x0,0x0,0x3fe000,0x0,0x1fc00001,0xfe000000,0x0,0x0,0x0, 0x0,0x7f800,0x0,0x0,0x0,0xff00000,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xf8000000,0xfe,0x0,0x7f80,0x0,0x0,0x0,0x0,0x0, 0x0,0x3f,0xf0000000,0x7fe0,0x0,0x0,0x780000,0x1,0xe0000000,0x0,0x780000,0x3,0xfe000000,0x78000,0x3c00,0xf000,0x7800003,0xffe00000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfc0000f0,0x3f000,0x0,0x0,0x3fc00,0x0,0x0,0x1fc000,0x0,0x0,0x0,0x1fc0, 0x0,0xff000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe1c0000,0x1c,0x1c000000,0x0,0x0,0x1c1c0,0x0,0x0,0x0,0x0,0x1fe0000, 0x0,0x0,0x1ff,0x1f0f8,0x0,0xff000,0x0,0x0,0x0,0x3f,0xff00000f,0x80000000,0xfe0,0x3f80,0xf00,0x0,0x0,0x0,0x1,0xf8000003,0xe0000000, 0x1c00,0xe000,0xe00,0x0,0x0,0x0,0x0,0x0,0x3c,0x78000000,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f0,0x3f80,0x1fc00,0xfe000, 0x7f0000,0x0,0x1fc07000,0x0,0x0,0x0,0x0,0x0,0x3f800,0x780000,0x78000,0x7f00001,0xfc38001f,0xf800070,0x1c000000,0x0,0x7800, 0x780,0x7f000,0x3e1f000,0x7800000,0x780000,0x7f00003e,0x1f0003f0,0x7f0,0xe0001e00,0x1e0,0x1fc00,0x7f0e00,0x7c3e000,0x0,0x3, 0xc0000000,0x3c00003f,0x80001f0f,0x80000078,0x1e0000,0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000,0x1e078000,0x30000000,0x3ff,0xc00001e0,0xf0, 0x78000,0x1c000,0x0,0x0,0x0,0x0,0x1e0007f,0xf000007e,0x1ffff,0x7ffe0,0x1f80,0x3ffff80,0xfff803,0xfffff800,0xfff80007,0xff800000, 0x0,0x0,0x0,0x0,0x1ffe00,0x0,0xfe0003,0xfff80000,0x3ffe01ff,0xe00003ff,0xffe01fff,0xff0003ff,0xe01e0007,0x803ffff0,0xfff80, 0x3c000fc0,0x7800001f,0x8003f07e,0x1e000f,0xfe0007ff,0xf00003ff,0x8007ffe0,0x1fff8,0x7fffffe,0xf0003c1,0xe000079e,0xf1f,0x1f3e0, 0x1f01ff,0xfff8003f,0xf003c000,0x7fe0,0x3f00,0x0,0x3c0000,0x1,0xe0000000,0x0,0x780000,0xf,0xfe000000,0x78000,0x3c00,0xf000, 0x7800003,0xffe00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0xfc0000f0,0x3fe00,0x0,0x0,0xfff00,0x0,0x0,0x3fe000, 0x0,0x0,0x0,0x1dc0,0x0,0x3fff00,0x0,0x3ffff80,0x1f,0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff1c07ff,0x3c0f001e,0x3c000000, 0x0,0x0,0x1e3c0,0xf80007c,0x0,0x780000,0x0,0xfff8000,0x3e00,0x1f00000,0x7ff,0xc001f0f8,0x0,0x3ffc00,0x0,0x0,0x0,0x3f,0xff00003f, 0xe0000000,0x3ff8,0xffe0,0x1e00,0x0,0xfffc00,0x0,0x7,0xf800000f,0xf8000000,0x1c00,0xe000,0xe00,0xf000,0x1fc000,0xfe0000,0x7f00000, 0x3f800001,0xfc00003f,0xf80000ff,0xffc003ff,0xe007ffff,0xc03ffffe,0x1fffff0,0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01ffc, 0xfc00,0x3c001ffc,0xffe0,0x7ff00,0x3ff800,0x1ffc000,0x0,0x7ff8f0f0,0x3c0780,0x1e03c00,0xf01e000,0x783e0001,0xf01e0000,0xffe00, 0x3c0000,0xf0000,0x7700001,0xfe38001f,0xf800070,0x1c000000,0x0,0x3c00,0xf00,0x77000,0x3e1f000,0x3c00000,0xf00000,0x7700003e, 0x1f0000f8,0xc0007f8,0xe0000f00,0x3c0,0x1dc00,0x7f8e00,0x7c3e000,0x0,0x1,0xe0000000,0x7800003b,0x80001f0f,0x800000f0,0x1e0000, 0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x780000,0x3c1e0000,0x1e070000,0x300001f0,0x7ff,0xc00001e0,0x1e0,0x7c000,0x1c000,0x0,0x0,0x0,0x0,0x3c000ff,0xf80007fe, 0x3ffff,0x801ffff8,0x1f80,0x3ffff80,0x3fff803,0xfffff801,0xfffc000f,0xffc00000,0x0,0x0,0x0,0x0,0x7fff80,0x0,0xfe0003,0xffff0000, 0xffff01ff,0xfc0003ff,0xffe01fff,0xff000fff,0xf01e0007,0x803ffff0,0xfff80,0x3c001f80,0x7800001f,0xc007f07e,0x1e001f,0xff0007ff, 0xfc0007ff,0xc007fffc,0x3fffc,0x7fffffe,0xf0003c1,0xf0000f9e,0xf0f,0x8003e1e0,0x1e01ff,0xfff8003f,0xf001e000,0x7fe0,0x3f00, 0x0,0x1e0000,0x1,0xe0000000,0x0,0x780000,0x1f,0xfe000000,0x78000,0x3c00,0xf000,0x7800003,0xffe00000,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0xf,0xfc0000f0,0x3ff00,0x0,0x0,0x1fff80,0x0,0x0,0xffe000,0x0,0x0,0x0,0x3de0,0x0,0x7fff80,0x0,0xfffff80, 0x1f,0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xe7bc07ff,0x3e1f000f,0x78000000,0x0,0x0,0xf780,0x7800078,0x0,0x780000,0x180000, 0x1fff8000,0x1e00,0x1e0003c,0xfff,0xc001f0f8,0x0,0x7ffe00,0x0,0x0,0x0,0x3f,0xff00007f,0xf0000000,0x3ffc,0xfff0,0x3c00,0x0, 0x7fffc00,0x0,0x7,0xf800003f,0xfe000000,0x1c00,0xe000,0xe00,0xf000,0x1fc000,0xfe0000,0x7f00000,0x3f800001,0xfc00001f,0xe00001ff, 0xffc00fff,0xf007ffff,0xc03ffffe,0x1fffff0,0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01fff,0xc000fc00,0x3c003ffe,0x1fff0, 0xfff80,0x7ffc00,0x3ffe000,0x0,0xfffce0f0,0x3c0780,0x1e03c00,0xf01e000,0x781e0001,0xe01e0000,0x3fff00,0x1e0000,0x1e0000,0xf780003, 0xcf78001f,0xf800078,0x3c000000,0x0,0x1e00,0x1e00,0xf7800,0x3e1f000,0x1e00000,0x1e00000,0xf780003e,0x1f0000fc,0x7c000f3d, 0xe0000780,0x780,0x3de00,0xf3de00,0x7c3e000,0x0,0x0,0xf0000000,0xf000007b,0xc0001f0f,0x800001e0,0x1e0000,0x3e1f00,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000, 0x3c1e0000,0x1e0f0000,0x300007fc,0xfff,0xc00001e0,0x1e0,0x3c000,0x1c000,0x0,0x0,0x0,0x0,0x3c001ff,0xfc001ffe,0x3ffff,0xc01ffffc, 0x3f80,0x3ffff80,0x7fff803,0xfffff803,0xfffe001f,0xffe00000,0x0,0x0,0x0,0x0,0xffff80,0x7f800,0xfe0003,0xffff8001,0xffff01ff, 0xff0003ff,0xffe01fff,0xff001fff,0xf01e0007,0x803ffff0,0xfff80,0x3c003f00,0x7800001f,0xc007f07f,0x1e003f,0xff8007ff,0xff000fff, 0xe007ffff,0x7fffc,0x7fffffe,0xf0003c0,0xf0000f1e,0xf07,0x8003c1f0,0x3e01ff,0xfff8003f,0xf001e000,0x7fe0,0x7f80,0x0,0xe0000, 0x1,0xe0000000,0x0,0x780000,0x1f,0xfe000000,0x78000,0x3c00,0xf000,0x7800003,0xffe00000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x0, 0x0,0x0,0x0,0x0,0xf,0xfc0000f0,0x3ff00,0x0,0x0,0x3fff80,0x0,0x0,0xffe000,0x0,0x0,0x0,0x78f0,0x0,0xffff80,0x0,0x3fffff80,0x1f, 0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xc7f80070,0x3e1f0007,0x70000000,0x0,0x0,0x7700,0x7c000f8,0x0,0x780000,0x180000, 0x3fff8000,0x1f00,0x3e0003c,0x1f03,0xc001f0f8,0x0,0x703f00,0x0,0x0,0x0,0x3f,0xff0000f0,0xf8000000,0x303e,0xc0f8,0x7800,0x0, 0xffffc00,0x0,0x7,0x3800003e,0x3e000000,0x1c00,0xe000,0x3c00,0xf000,0x1fc000,0xfe0000,0x7f00000,0x3f800001,0xfc00000f,0xe00001ff, 0xffc01fff,0xf007ffff,0xc03ffffe,0x1fffff0,0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01fff,0xf000fe00,0x3c007fff,0x3fff8, 0x1fffc0,0xfffe00,0x7fff000,0x1,0xffffc0f0,0x3c0780,0x1e03c00,0xf01e000,0x781f0003,0xe01e0000,0x3fff80,0xe0000,0x3c0000,0x1e3c0003, 0x8ff0001f,0xf80003c,0x78000000,0x0,0xe00,0x3c00,0x1e3c00,0x3e1f000,0xe00000,0x3c00001,0xe3c0003e,0x1f00007f,0xf8000e3f,0xc0000380, 0xf00,0x78f00,0xe3fc00,0x7c3e000,0x0,0x0,0x70000001,0xe00000f1,0xe0001f0f,0x800003c0,0x1e0000,0x3e1f00,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000,0x3c0f0000, 0x30000ffe,0xf80,0xc00001e0,0x3c0,0x1e000,0x101c040,0x0,0x0,0x0,0x0,0x78003f0,0x7e001ffe,0x3f807,0xe01f00fe,0x3f80,0x3ffff80, 0x7e01803,0xfffff007,0xe03f003f,0x3f00000,0x0,0x0,0x0,0x0,0xfc0fc0,0x3ffe00,0xfe0003,0xffffc003,0xf81f01ff,0xff8003ff,0xffe01fff, 0xff003f01,0xf01e0007,0x803ffff0,0xfff80,0x3c007e00,0x7800001f,0xc007f07f,0x1e007e,0xfc007ff,0xff801f83,0xf007ffff,0x800fc07c, 0x7fffffe,0xf0003c0,0xf0000f0f,0x1e07,0xc007c0f8,0x7c01ff,0xfff8003c,0xf000,0x1e0,0xffc0,0x0,0xf0000,0x1,0xe0000000,0x0,0x780000, 0x3e,0x0,0x78000,0x3c00,0xf000,0x7800000,0x1e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x0,0x0,0x0,0x0,0x0,0x1f,0x800000f0,0x1f80, 0x0,0x0,0x7e0780,0x0,0x0,0x1f82000,0x0,0x0,0x0,0x7070,0x0,0x1f80f80,0x0,0x7fffff80,0x1f,0xffff8000,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x1,0xc3f80070,0x3f3f0007,0xf0000000,0x0,0x0,0x7f00,0x3e001f0,0x0,0x780000,0x180000,0x7f018000,0xf80,0x7c0003c,0x3e00, 0x4001f0f8,0xfe00,0x400f00,0x0,0x0,0x0,0x7f000000,0xe0,0x38000000,0x1e,0x38,0x7800,0x0,0x1ffe1c00,0x0,0x0,0x38000078,0xf000000, 0x1c00,0xe000,0x7f800,0xf000,0x1fc000,0xfe0000,0x7f00000,0x3f800001,0xfc00001f,0xf00001ff,0xffc03f81,0xf007ffff,0xc03ffffe, 0x1fffff0,0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01fff,0xf800fe00,0x3c00fc1f,0x8007e0fc,0x3f07e0,0x1f83f00,0xfc1f800, 0x3,0xf07fc0f0,0x3c0780,0x1e03c00,0xf01e000,0x780f8007,0xc01e0000,0x7e0fc0,0xf0000,0x3c0000,0x1c1c0003,0x87f0001f,0xf80003f, 0xf8000000,0x0,0xf00,0x3c00,0x1c1c00,0x3e1f000,0xf00000,0x3c00001,0xc1c0003e,0x1f00003f,0xc0000e1f,0xc00003c0,0xf00,0x70700, 0xe1fc00,0x7c3e000,0x0,0x0,0x78000001,0xe00000e0,0xe0001f0f,0x800003c0,0x1e0000,0x3e1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000,0x3c0f0001,0xff801e0f, 0x1f00,0x1e0,0x3c0,0x1e000,0x3c1c1e0,0x0,0x0,0x0,0x0,0x78007c0,0x1f001f9e,0x3c001,0xf010003e,0x7780,0x3c00000,0xf800000,0xf007, 0xc01f007c,0x1f80000,0x0,0x0,0x0,0x0,0xe003e0,0x7fff00,0x1ef0003,0xc007e007,0xc00301e0,0x1fc003c0,0x1e00,0x7c00,0x301e0007, 0x80007800,0x780,0x3c00fc00,0x7800001f,0xe00ff07f,0x1e00f8,0x3e00780,0x1fc03e00,0xf807801f,0xc01f001c,0xf000,0xf0003c0,0xf0000f0f, 0x1e03,0xc00f8078,0x780000,0xf0003c,0xf000,0x1e0,0x1f3e0,0x0,0x78000,0x1,0xe0000000,0x0,0x780000,0x3c,0x0,0x78000,0x0,0x0, 0x7800000,0x1e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x0,0x0,0x0,0x0,0x0,0x1f,0xf0,0xf80,0x0,0x0,0xf80180,0x0,0x0,0x1e00000, 0x0,0x0,0x0,0xe038,0x0,0x3e00380,0x0,0xfe0f0000,0x0,0xf0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xc0f00070,0x3b370003,0xe0000000, 0x0,0x0,0x3e00,0x1e001e0,0x0,0x780000,0x180000,0x7c000000,0x780,0x780003c,0x3c00,0x0,0x7ffc0,0x780,0x0,0x0,0x3,0xffe00000, 0x1c0,0x3c000000,0xe,0x38,0xf000,0x0,0x3ffe1c00,0x0,0x0,0x38000078,0xf000000,0x1c00,0xe000,0x7f000,0xf000,0x3de000,0x1ef0000, 0xf780000,0x7bc00003,0xde00001e,0xf00003e7,0x80007c00,0x30078000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001, 0xe0001e03,0xfc00fe00,0x3c01f007,0xc00f803e,0x7c01f0,0x3e00f80,0x1f007c00,0x7,0xc01f80f0,0x3c0780,0x1e03c00,0xf01e000,0x78078007, 0x801e0000,0x7803c0,0x78000,0x780000,0x380e0003,0x81e00000,0x1f,0xf0000000,0x0,0x780,0x7800,0x380e00,0x0,0x780000,0x7800003, 0x80e00000,0x1ff,0x80000e07,0x800001e0,0x1e00,0xe0380,0xe07800,0x0,0x0,0x0,0x3c000003,0xc00001c0,0x70000000,0x780,0x1e0000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x780000,0x3c1e0000,0x3c0e0007,0xfff01c07,0x1e00,0x1e0,0x780,0xf000,0x3e1c3e0,0x0,0x0,0x0,0x0,0xf0007c0,0x1f00181e,0x20000, 0xf000001f,0xf780,0x3c00000,0x1f000000,0x1f00f,0x800f8078,0xf80000,0x0,0x0,0x0,0x0,0x8003e0,0x1fc0f80,0x1ef0003,0xc001e007, 0x800101e0,0x7e003c0,0x1e00,0x7800,0x101e0007,0x80007800,0x780,0x3c00f800,0x7800001e,0xe00ef07f,0x801e00f0,0x1e00780,0x7c03c00, 0x78078007,0xc01e0004,0xf000,0xf0003c0,0x78001e0f,0x1e03,0xe00f807c,0xf80000,0x1f0003c,0x7800,0x1e0,0x3e1f0,0x0,0x3c000,0x1, 0xe0000000,0x0,0x780000,0x3c,0x0,0x78000,0x0,0x0,0x7800000,0x1e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x0,0x0,0x0,0x0,0x0, 0x1e,0xf0,0x780,0x0,0x0,0x1f00080,0x0,0x0,0x3c00000,0x0,0x0,0x0,0x1e03c,0x0,0x3c00080,0x0,0xf80f0000,0x0,0x1f0000,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x3bf70003,0xe0000000,0x0,0x0,0x3e00,0x1f003e0,0x0,0x780000,0x180000,0x78000000,0x7c0,0xf80003c, 0x3c00,0x0,0x1f01f0,0x780,0x0,0x0,0xf,0x80f80000,0x1c0,0x1c000000,0xe,0x38,0x1e000,0x0,0x7ffe1c00,0x0,0x0,0x380000f0,0x7800000, 0x1c00,0xe000,0x7fc00,0xf000,0x3de000,0x1ef0000,0xf780000,0x7bc00003,0xde00001e,0xf00003c7,0x80007800,0x10078000,0x3c0000, 0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x7e00ff00,0x3c01e003,0xc00f001e,0x7800f0,0x3c00780,0x1e003c00, 0x7,0x800f00f0,0x3c0780,0x1e03c00,0xf01e000,0x7807c00f,0x801e0000,0xf803c0,0x3c000,0xf00000,0x780f0000,0x0,0x7,0xc0000000, 0x0,0x3c0,0xf000,0x780f00,0x0,0x3c0000,0xf000007,0x80f00000,0x7ff,0xc0000000,0xf0,0x3c00,0x1e03c0,0x0,0x0,0x0,0x0,0x1e000007, 0x800003c0,0x78000000,0xf00,0x1e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000,0x3c1e001f,0xfff03803,0x80001e00,0x1e0,0x780,0xf000,0xf9cf80, 0x0,0x0,0x0,0x0,0xf000780,0xf00001e,0x0,0xf800000f,0xe780,0x3c00000,0x1e000000,0x1e00f,0x78078,0x7c0000,0x0,0x0,0x0,0x0,0x1e0, 0x3f003c0,0x1ef0003,0xc000f00f,0x800001e0,0x1f003c0,0x1e00,0xf000,0x1e0007,0x80007800,0x780,0x3c01f000,0x7800001e,0xe00ef07f, 0x801e01f0,0x1e00780,0x3c07c00,0x78078003,0xc03e0000,0xf000,0xf0003c0,0x78001e0f,0x1e01,0xf01f003c,0xf00000,0x3e0003c,0x7800, 0x1e0,0x7c0f8,0x0,0x0,0x1,0xe0000000,0x0,0x780000,0x3c,0x0,0x78000,0x0,0x0,0x7800000,0x1e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c000, 0x0,0x0,0x0,0x0,0x0,0x1e,0xf0,0x780,0x0,0x0,0x1e00000,0x0,0x0,0x3c00000,0x0,0x8,0x40,0x0,0x7e0000,0x7c00000,0x1,0xf00f0000, 0x0,0x3e0000,0x0,0x3f,0xfc0,0xfc3f0,0xfc3f0,0x0,0x0,0x0,0x70,0x39e70000,0x0,0x0,0x0,0x0,0xf003c0,0x0,0x0,0x180000,0xf8000000, 0x3c0,0xf00003c,0x3c00,0x0,0x3c0078,0x7ff80,0x0,0x0,0x1e,0x3c0000,0x1c0,0x1c000000,0xe,0xf0,0x0,0x0,0x7ffe1c00,0x0,0x0,0x380000f0, 0x7800000,0x1c00,0xe000,0x3c00,0x0,0x3de000,0x1ef0000,0xf780000,0x7bc00003,0xde00001e,0xf00003c7,0x8000f800,0x78000,0x3c0000, 0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x1f00ff00,0x3c03e003,0xc01f001e,0xf800f0,0x7c00780,0x3e003c00, 0xf,0x800f80f0,0x3c0780,0x1e03c00,0xf01e000,0x7803c00f,0x1fffc0,0xf001e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x307,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000,0x781e003f,0xfff03803, 0x80001e00,0x1e0,0xf80,0xf000,0x3dde00,0x0,0x0,0x0,0x0,0xf000f00,0x780001e,0x0,0x7800000f,0x1e780,0x3c00000,0x3e000000,0x3e00f, 0x780f0,0x7c0000,0x0,0x0,0x0,0x0,0x1e0,0x7c001e0,0x3ef8003,0xc000f00f,0x1e0,0xf003c0,0x1e00,0xf000,0x1e0007,0x80007800,0x780, 0x3c03e000,0x7800001e,0xf01ef07b,0xc01e01e0,0xf00780,0x3e07800,0x3c078003,0xe03c0000,0xf000,0xf0003c0,0x78001e0f,0x1e00,0xf01e003e, 0x1f00000,0x3c0003c,0x7800,0x1e0,0x78078,0x0,0x0,0x1,0xe0000000,0x0,0x780000,0x3c,0x0,0x78000,0x0,0x0,0x7800000,0x1e00000, 0x0,0x0,0x0,0x0,0x0,0x0,0x3c000,0x0,0x0,0x0,0x0,0x0,0x1e,0xf0,0x780,0x0,0x0,0x1e00000,0x0,0x0,0x3c00000,0x0,0x18,0xc0,0x0, 0xe70000,0x7800000,0x1,0xe00f0000,0x0,0x3c0000,0x0,0x3f,0xfc0,0xfc1f0,0x1f83f0,0x0,0x0,0x0,0x70,0x39e70000,0x0,0x0,0x0,0x0, 0xf807c0,0x0,0x0,0x180000,0xf0000000,0x3e0,0x1f00003c,0x3e00,0x0,0x70001c,0x3fff80,0x0,0x0,0x38,0xe0000,0x1c0,0x1c000078, 0x1c,0x1fe0,0x0,0x0,0xfffe1c00,0x0,0x0,0x380000f0,0x7800000,0x1c00,0xe000,0xe00,0x0,0x7df000,0x3ef8000,0x1f7c0000,0xfbe00007, 0xdf00003c,0x780003c7,0x8000f000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0xf00f780, 0x3c03c001,0xe01e000f,0xf00078,0x78003c0,0x3c001e00,0xf,0xf80f0,0x3c0780,0x1e03c00,0xf01e000,0x7803e01f,0x1ffff8,0xf001e0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,0x0,0x0,0x0,0x0,0x1e0000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x780000,0x3c1e0000,0x781e003e,0x30703803,0x80001e00,0x1e0,0xf00,0x7800,0xff800,0x1e0000,0x0,0x0,0x0,0x1e000f00,0x780001e, 0x0,0x7800000f,0x3c780,0x3c00000,0x3c000000,0x3c00f,0x780f0,0x3c0000,0x0,0x0,0x2000000,0x800000,0x1e0,0x78000e0,0x3c78003, 0xc000f01e,0x1e0,0xf803c0,0x1e00,0x1e000,0x1e0007,0x80007800,0x780,0x3c07c000,0x7800001e,0x701cf07b,0xc01e01e0,0xf00780,0x1e07800, 0x3c078001,0xe03c0000,0xf000,0xf0003c0,0x7c003e0f,0x1e00,0xf83e001e,0x1e00000,0x7c0003c,0x3c00,0x1e0,0xf807c,0x0,0x0,0x1fe0001, 0xe1fc0000,0x7f00003,0xf8780007,0xf000003c,0x7f0,0x783f0,0x0,0x0,0x7800000,0x1e00000,0x3e0f8000,0xfc00007,0xf8000007,0xf00001fc, 0xf,0xc0003fc0,0x3c000,0x0,0x0,0x0,0x0,0x0,0x1e,0xf0,0x780,0x0,0x0,0x3c00000,0x0,0x0,0x3c00000,0x0,0x18,0xc0,0x0,0x1818000, 0x7800000,0x1,0xe00f0000,0x0,0x7c0000,0x0,0x1f,0x80001f80,0x7c1f8,0x1f83e0,0x0,0x0,0x0,0x70,0x38c70007,0xf8000000,0x7f03, 0xf0000000,0x0,0x780780,0x0,0x0,0xfe0000,0xf0000000,0x1e0,0x1e00003c,0x3f00,0x0,0xe07f0e,0x7fff80,0x0,0x0,0x70,0x70000,0x1c0, 0x1c000078,0x3c,0x1fc0,0x0,0x0,0xfffe1c00,0x0,0x0,0x380000f0,0x7800000,0x1c00,0xe000,0xe00,0x0,0x78f000,0x3c78000,0x1e3c0000, 0xf1e00007,0x8f00003c,0x78000787,0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00, 0xf80f780,0x3c03c001,0xe01e000f,0xf00078,0x78003c0,0x3c001e00,0xf,0x1f80f0,0x3c0780,0x1e03c00,0xf01e000,0x7801e01e,0x1ffffc, 0xf007e0,0x3fc000,0x1fe0000,0xff00000,0x7f800003,0xfc00001f,0xe0000fc0,0xfc00007f,0xfe0,0x7f00,0x3f800,0x1fc000,0x0,0x0,0x0, 0x1,0xf000001f,0x80000ff0,0x7f80,0x3fc00,0x1fe000,0xff0000,0x1f80000,0x1fc1e000,0x0,0x0,0x0,0x0,0x1e1fc0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e0000, 0x781c007c,0x30003803,0x80001f00,0x1e0,0xf00,0x7800,0x7f000,0x1e0000,0x0,0x0,0x0,0x1e000f00,0x780001e,0x0,0x7800000f,0x3c780, 0x3c00000,0x3c000000,0x3c00f,0x780f0,0x3c0000,0x0,0x0,0x1e000000,0xf00000,0x3e0,0xf0000e0,0x3c78003,0xc000f01e,0x1e0,0x7803c0, 0x1e00,0x1e000,0x1e0007,0x80007800,0x780,0x3c0f8000,0x7800001e,0x701cf079,0xe01e01e0,0xf00780,0x1e07800,0x3c078001,0xe03c0000, 0xf000,0xf0003c0,0x3c003c0f,0x3e00,0x787c001f,0x3e00000,0xf80003c,0x3c00,0x1e0,0x1f003e,0x0,0x0,0x1fffc001,0xe7ff0000,0x3ffe000f, 0xfe78003f,0xfc001fff,0xfe001ffc,0xf0078ffc,0x1ffc00,0x7ff000,0x7800f80,0x1e0000f,0x7f1fc01e,0x3ff0001f,0xfe00079f,0xfc0007ff, 0x3c003c7f,0xf001fff8,0x1fffff0,0x3c003c0,0xf0000f1e,0xf1f,0x7c1f0,0x1f00ff,0xffe0001e,0xf0,0x780,0x0,0x0,0x3c00000,0x100000, 0x0,0x7800000,0x0,0x18,0xc0,0x0,0x1818000,0x7800000,0x1,0xe00f0000,0x1000000,0xf80000,0x40000002,0xf,0x80001f00,0x7e0f8,0x1f07c0, 0x0,0x0,0x0,0x70,0x38c7003f,0xff000000,0xff8f,0xf8000100,0xffffe,0x7c0f80,0x0,0x0,0x3ffc000,0xf0000020,0x1001f0,0x3c00003c, 0x1f80,0x0,0x1c3ffc7,0x7c0780,0x0,0x0,0xe3,0xff038000,0xe0,0x38000078,0x78,0x1ff0,0x0,0x3c003c0,0xfffe1c00,0x0,0x0,0x380000f0, 0x7800000,0x1c00,0xe000,0xe00,0xf000,0x78f000,0x3c78000,0x1e3c0000,0xf1e00007,0x8f00003c,0x78000787,0x8001e000,0x78000,0x3c0000, 0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x780f3c0,0x3c03c001,0xe01e000f,0xf00078,0x78003c0,0x3c001e00, 0x4000200f,0x3f80f0,0x3c0780,0x1e03c00,0xf01e000,0x7801f03e,0x1ffffe,0xf01fe0,0x3fff800,0x1fffc000,0xfffe0007,0xfff0003f, 0xff8001ff,0xfc003ff3,0xfe0003ff,0xe0007ff8,0x3ffc0,0x1ffe00,0xfff000,0x3ff80001,0xffc0000f,0xfe00007f,0xf000003f,0xf8003c7f, 0xe0003ffc,0x1ffe0,0xfff00,0x7ff800,0x3ffc000,0x1f80000,0xfff1c03c,0x3c01e0,0x1e00f00,0xf007800,0x781f0001,0xf01e7ff0,0x7c0007c, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000, 0x3c1e003f,0xfffff078,0x30003803,0x80000f00,0x1e0,0x1f00,0x7800,0x7f000,0x1e0000,0x0,0x0,0x0,0x3c000f00,0x780001e,0x0,0x7800000f, 0x78780,0x3c00000,0x3c000000,0x7c00f,0x780f0,0x3c0007,0xe000003f,0x0,0xfe000000,0xfe0000,0x3c0,0x1f000070,0x7c7c003,0xc000f01e, 0x1e0,0x7803c0,0x1e00,0x1e000,0x1e0007,0x80007800,0x780,0x3c1f0000,0x7800001e,0x783cf079,0xe01e03c0,0xf00780,0x1e0f000,0x3c078001, 0xe03c0000,0xf000,0xf0003c0,0x3c003c07,0x81f03c00,0x7c7c000f,0x87c00000,0xf00003c,0x1e00,0x1e0,0x3e001f,0x0,0x0,0x3fffe001, 0xefff8000,0x7fff001f,0xff78007f,0xfe001fff,0xfe003ffe,0xf0079ffe,0x1ffc00,0x7ff000,0x7801f00,0x1e0000f,0xffbfe01e,0x7ff8003f, 0xff0007bf,0xfe000fff,0xbc003cff,0xf803fffc,0x1fffff0,0x3c003c0,0x78001e1e,0xf0f,0x800f80f0,0x1e00ff,0xffe0001e,0xf0,0x780, 0x0,0x0,0x3c00000,0x380000,0x0,0x7800000,0x0,0x18,0xc0,0x0,0x1008000,0x7800000,0x3,0xe00f0000,0x3800000,0xf00000,0xe0000007, 0xf,0x80001f00,0x3e0f8,0x1e07c0,0x0,0x0,0x0,0x70,0x3807007f,0xff800000,0x1ffdf,0xfc000380,0xffffe,0x3e1f00,0x0,0x0,0xfffe000, 0xf0000030,0x3800f8,0x7c00003c,0xfc0,0x0,0x18780c3,0xf00780,0x80100,0x0,0xc3,0xffc18000,0xf0,0x78000078,0xf0,0xf0,0x0,0x3c003c0, 0xfffe1c00,0x0,0x0,0x380000f0,0x7800801,0x1c00,0xe000,0x1e00,0xf000,0xf8f800,0x7c7c000,0x3e3e0001,0xf1f0000f,0x8f80007c,0x7c000787, 0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x780f3c0,0x3c078001,0xe03c000f, 0x1e00078,0xf0003c0,0x78001e00,0xe000701f,0x3fc0f0,0x3c0780,0x1e03c00,0xf01e000,0x7800f87c,0x1e007f,0xf07e00,0x7fffc00,0x3fffe001, 0xffff000f,0xfff8007f,0xffc003ff,0xfe007ff7,0xff0007ff,0xf000fffc,0x7ffe0,0x3fff00,0x1fff800,0x3ff80001,0xffc0000f,0xfe00007f, 0xf00000ff,0xf8003cff,0xf0007ffe,0x3fff0,0x1fff80,0xfffc00,0x7ffe000,0x1f80001,0xfffb803c,0x3c01e0,0x1e00f00,0xf007800,0x780f0001, 0xe01efff8,0x3c00078,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x780000,0x3c1e003f,0xfffff078,0x30001c07,0xf80,0x1e0,0x1e00,0x3c00,0xff800,0x1e0000,0x0,0x0,0x0,0x3c001e00, 0x3c0001e,0x0,0x7800001e,0x70780,0x3c00000,0x78000000,0x78007,0x800f00f0,0x3e0007,0xe000003f,0x3,0xfe000000,0xff8000,0x7c0, 0x1e000070,0x783c003,0xc001f01e,0x1e0,0x7803c0,0x1e00,0x1e000,0x1e0007,0x80007800,0x780,0x3c3e0000,0x7800001e,0x3838f079, 0xe01e03c0,0x780780,0x1e0f000,0x1e078001,0xe03c0000,0xf000,0xf0003c0,0x3c007c07,0x81f03c00,0x3ef80007,0x87800000,0x1f00003c, 0x1e00,0x1e0,0x7c000f,0x80000000,0x0,0x3ffff001,0xffffc000,0xffff003f,0xff7800ff,0xff001fff,0xfe007ffe,0xf007bffe,0x1ffc00, 0x7ff000,0x7803e00,0x1e0000f,0xffffe01e,0xfff8007f,0xff8007ff,0xff001fff,0xbc003dff,0xf807fffc,0x1fffff0,0x3c003c0,0x78001e0f, 0x1e07,0xc01f00f0,0x1e00ff,0xffe0001e,0xf0,0x780,0x0,0x0,0x7c00000,0x7c0000,0x0,0x7800000,0x0,0x18,0xc0,0x0,0x1018000,0x7800000, 0x3,0xc00f0000,0x7c00000,0x1f00001,0xf000000f,0x80000007,0xc0003e00,0x1e07c,0x3e0780,0x0,0x0,0x0,0x70,0x380700ff,0xff800000, 0x3ffff,0xfe0007c0,0xffffe,0x1e1e00,0x0,0x780000,0x1fffe000,0xf0000078,0x7c0078,0x7800003c,0xff0,0x0,0x38e0003,0x80f00780, 0x180300,0x0,0x1c3,0x81e1c000,0x7f,0xf0000078,0x1e0,0x38,0x0,0x3c003c0,0xfffe1c00,0x0,0x0,0x380000f0,0x7800c01,0x80001c00, 0xe000,0x603e00,0xf000,0xf07800,0x783c000,0x3c1e0001,0xe0f0000f,0x7800078,0x3c000f87,0x8001e000,0x78000,0x3c0000,0x1e00000, 0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x780f3c0,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f01,0xf000f81e, 0x7bc0f0,0x3c0780,0x1e03c00,0xf01e000,0x78007878,0x1e001f,0xf0f800,0x7fffe00,0x3ffff001,0xffff800f,0xfffc007f,0xffe003ff, 0xff007fff,0xff800fff,0xf001fffe,0xffff0,0x7fff80,0x3fffc00,0x3ff80001,0xffc0000f,0xfe00007f,0xf00001ff,0xfc003dff,0xf000ffff, 0x7fff8,0x3fffc0,0x1fffe00,0xffff000,0x1f80003,0xffff803c,0x3c01e0,0x1e00f00,0xf007800,0x780f0001,0xe01ffffc,0x3c00078,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000, 0x3c1e003f,0xfffff078,0x30001e0f,0x300780,0x1e0,0x1e00,0x3c00,0x3dde00,0x1e0000,0x0,0x0,0x0,0x78001e00,0x3c0001e,0x0,0xf800003e, 0xf0780,0x3dfc000,0x783f8000,0xf8007,0xc01f00f0,0x3e0007,0xe000003f,0x1f,0xfc000000,0x7ff000,0xf80,0x3e007c70,0x783c003,0xc001e03c, 0x1e0,0x3c03c0,0x1e00,0x3c000,0x1e0007,0x80007800,0x780,0x3c7c0000,0x7800001e,0x3878f078,0xf01e03c0,0x780780,0x1e0f000,0x1e078001, 0xe03e0000,0xf000,0xf0003c0,0x1e007807,0x83f03c00,0x3ef00007,0xcf800000,0x3e00003c,0xf00,0x1e0,0xf80007,0xc0000000,0x0,0x3e01f801, 0xfe07e001,0xf80f007e,0x7f801f8,0x1f801fff,0xfe00fc0f,0xf007f83f,0x1ffc00,0x7ff000,0x7807c00,0x1e0000f,0x87e1e01f,0xe0fc00fc, 0xfc007f8,0x1f803f03,0xfc003df0,0x3807e03c,0x1fffff0,0x3c003c0,0x78003e0f,0x1e03,0xe03e00f8,0x3e00ff,0xffe0001e,0xf0,0x780, 0x0,0x0,0x7800000,0xfe0000,0x0,0x7800000,0x0,0x18,0xc0,0x0,0x1818000,0x7c00000,0x3,0xc00f0000,0xfe00000,0x3e00003,0xf800001f, 0xc0000007,0xc0003e00,0x1e03c,0x3c0f80,0x0,0x0,0x0,0x70,0x380700fc,0x7800000,0x7c1fe,0x3e000fe0,0xffffe,0x1f3e00,0x0,0x780000, 0x3f98e000,0xf000003c,0xfcf8007c,0xf800003c,0x3ffc,0x0,0x31c0001,0x80f00f80,0x380700,0x0,0x183,0x80e0c000,0x3f,0xe0000078, 0x3c0,0x38,0x0,0x3c003c0,0xfffe1c00,0x0,0x0,0x38000078,0xf000e01,0xc003ffe0,0x1fff00,0x7ffc00,0xf000,0xf07800,0x783c000,0x3c1e0001, 0xe0f0000f,0x7800078,0x3c000f07,0x8003c000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00, 0x3c0f1e0,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0xf801f01e,0xf3c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78007cf8, 0x1e000f,0x80f0f000,0x7c03f00,0x3e01f801,0xf00fc00f,0x807e007c,0x3f003e0,0x1f80707f,0x8f801f80,0xf003f03f,0x1f81f8,0xfc0fc0, 0x7e07e00,0x3ff80001,0xffc0000f,0xfe00007f,0xf00003ff,0xfc003fc1,0xf801f81f,0x800fc0fc,0x7e07e0,0x3f03f00,0x1f81f800,0x1f80007, 0xe07f003c,0x3c01e0,0x1e00f00,0xf007800,0x780f8003,0xe01fe07e,0x3e000f8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3f,0xfffff078,0x30000ffe,0x1f007c0,0x0,0x1e00, 0x3c00,0xf9cf80,0x1e0000,0x0,0x0,0x0,0x78001e00,0x3c0001e,0x0,0xf00000fc,0x1e0780,0x3fff800,0x78ffe000,0xf0003,0xe03e00f0, 0x3e0007,0xe000003f,0x7f,0xe01fffff,0xf00ffc00,0x1f80,0x3c01ff70,0x783c003,0xc007e03c,0x1e0,0x3c03c0,0x1e00,0x3c000,0x1e0007, 0x80007800,0x780,0x3cfc0000,0x7800001e,0x3c78f078,0xf01e03c0,0x780780,0x3e0f000,0x1e078003,0xc01f0000,0xf000,0xf0003c0,0x1e007807, 0x83f83c00,0x1ff00003,0xcf000000,0x3e00003c,0xf00,0x1e0,0x0,0x0,0x0,0x20007801,0xfc03e003,0xe003007c,0x3f803e0,0x7c0003c, 0xf807,0xf007e00f,0x3c00,0xf000,0x780f800,0x1e0000f,0x87e1f01f,0x803c00f8,0x7c007f0,0xf803e01,0xfc003f80,0x80f8004,0x3c000, 0x3c003c0,0x3c003c0f,0x1e03,0xe03e0078,0x3c0000,0x7c0001e,0xf0,0x780,0x0,0x0,0x3ffff800,0x1ff0000,0x0,0x7800000,0x0,0x18, 0xc0,0x0,0x1818000,0x3e00000,0x3,0xc00f0000,0x1ff00000,0x3e00007,0xfc00003f,0xe0000003,0xc0003c00,0xf03c,0x3c0f00,0x0,0x0, 0x0,0x70,0x380701f0,0x800000,0x780fc,0x1e001ff0,0x7c,0xf3c00,0x0,0x780000,0x7e182000,0xf000001f,0xfff00ffc,0xffc0003c,0x3cfe, 0x0,0x31c0001,0x80f01f80,0x780f00,0x0,0x183,0x80e0c000,0xf,0x80000078,0x780,0x38,0x0,0x3c003c0,0x7ffe1c00,0x0,0x0,0x38000078, 0xf000f01,0xe003ffe0,0x1fff00,0x7ff800,0xf000,0xf07800,0x783c000,0x3c1e0001,0xe0f0000f,0x78000f8,0x3e000f07,0x8003c000,0x78000, 0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x3c0f1e0,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0, 0x78000f00,0x7c03e01e,0x1e3c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78003cf0,0x1e0007,0x80f1e000,0x4000f00,0x20007801,0x3c008, 0x1e0040,0xf00200,0x780403f,0x7803e00,0x3007c00f,0x803e007c,0x1f003e0,0xf801f00,0x780000,0x3c00000,0x1e000000,0xf00007f0, 0x3e003f00,0x7801f00f,0x800f807c,0x7c03e0,0x3e01f00,0x1f00f800,0x1f80007,0xc03e003c,0x3c01e0,0x1e00f00,0xf007800,0x78078003, 0xc01fc03e,0x1e000f0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x780000,0x0,0xf078007c,0x300007fc,0x7e00fe0,0x0,0x1e00,0x3c00,0x3e1c3e0,0x1e0000,0x0,0x0,0x0,0xf0001e00, 0x3c0001e,0x1,0xf000fff8,0x1e0780,0x3fffe00,0x79fff000,0x1f0001,0xfffc00f0,0x7e0007,0xe000003f,0x3ff,0x801fffff,0xf003ff80, 0x3f00,0x3c03fff0,0xf01e003,0xffffc03c,0x1e0,0x3c03ff,0xffc01fff,0xfe03c000,0x1fffff,0x80007800,0x780,0x3df80000,0x7800001e, 0x1c70f078,0x781e03c0,0x780780,0x3c0f000,0x1e078007,0xc01f8000,0xf000,0xf0003c0,0x1e007807,0x83f83c00,0xfe00003,0xff000000, 0x7c00003c,0x780,0x1e0,0x0,0x0,0x0,0x7c01,0xf801f007,0xc00100f8,0x1f803c0,0x3c0003c,0x1f003,0xf007c00f,0x80003c00,0xf000, 0x783f000,0x1e0000f,0x3c0f01f,0x3e01f0,0x3e007e0,0x7c07c00,0xfc003f00,0xf0000,0x3c000,0x3c003c0,0x3c003c0f,0x1e01,0xf07c007c, 0x7c0000,0xfc0001e,0xf0,0x780,0x0,0x0,0x3ffff000,0x3838000,0x0,0x7800000,0x0,0x18,0xc0,0x0,0xff0000,0x3f00000,0x3,0xc00fff00, 0x38380000,0x7c0000e,0xe000070,0x70000001,0xe0003c00,0xf01e,0x780e00,0x0,0x0,0x0,0x0,0x1e0,0x0,0x780f8,0xf003838,0xfc,0xffc00, 0x0,0x780000,0x7c180000,0xf000000f,0xffe00fff,0xffc0003c,0x783f,0x80000000,0x6380000,0xc0f83f80,0xf81f00,0x0,0x303,0x80e06000, 0x0,0x78,0xf00,0x78,0x0,0x3c003c0,0x7ffe1c00,0x0,0x0,0x3800003c,0x3e000f81,0xf003ffe0,0x1fff00,0x1fc000,0xf000,0x1e03c00, 0xf01e000,0x780f0003,0xc078001e,0x3c000f0,0x1e000f07,0xff83c000,0x7ffff,0x803ffffc,0x1ffffe0,0xfffff00,0xf00000,0x7800000, 0x3c000001,0xe0001e00,0x3c0f0f0,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x3e07c01e,0x1e3c0f0,0x3c0780,0x1e03c00, 0xf01e000,0x78003ff0,0x1e0007,0x80f1e000,0xf80,0x7c00,0x3e000,0x1f0000,0xf80000,0x7c0001e,0x3c07c00,0x10078007,0x803c003c, 0x1e001e0,0xf000f00,0x780000,0x3c00000,0x1e000000,0xf00007c0,0x1e003e00,0x7c03e007,0xc01f003e,0xf801f0,0x7c00f80,0x3e007c00, 0xf,0x801f003c,0x3c01e0,0x1e00f00,0xf007800,0x7807c007,0xc01f801f,0x1f001f0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x0,0xe078003c,0x300001f0,0x3f801ff0,0x0, 0x3c00,0x1e00,0x3c1c1e0,0x1e0000,0x0,0x0,0x0,0xf0001e0f,0x3c0001e,0x3,0xe000fff0,0x3c0780,0x3ffff00,0x7bfff800,0x1e0000,0x7ff00078, 0x7e0007,0xe000003f,0x1ffc,0x1fffff,0xf0007ff0,0x7e00,0x3c07c3f0,0xf01e003,0xffff003c,0x1e0,0x3c03ff,0xffc01fff,0xfe03c000, 0x1fffff,0x80007800,0x780,0x3ffc0000,0x7800001e,0x1ef0f078,0x781e03c0,0x780780,0x7c0f000,0x1e07801f,0x800ff000,0xf000,0xf0003c0, 0xf00f807,0x83b83c00,0xfc00001,0xfe000000,0xf800003c,0x780,0x1e0,0x0,0x0,0x0,0x3c01,0xf000f007,0xc00000f0,0xf80780,0x3c0003c, 0x1e001,0xf007c007,0x80003c00,0xf000,0x787e000,0x1e0000f,0x3c0f01f,0x1e01e0,0x1e007c0,0x3c07800,0x7c003f00,0xf0000,0x3c000, 0x3c003c0,0x3e007c07,0x80003c00,0xf8f8003c,0x780000,0xf80001e,0xf0,0x780,0x0,0x0,0x7ffff000,0x601c000,0x3,0xffff0000,0x0, 0xfff,0xf8007fff,0xc0000000,0x7e003c,0x1fe0000,0xc0003,0xc00fff00,0x601c0000,0xf800018,0x70000c0,0x38000001,0xe0007800,0x701e, 0x701e00,0x0,0x0,0x0,0x0,0x1e0,0x6,0x700f8,0xf00601c,0xf8,0x7f800,0x0,0x780000,0xf8180000,0xf000000f,0x87c00fff,0xffc0003c, 0xf01f,0xc0000000,0x6380000,0xc07ff780,0x1f03e03,0xfffffe00,0x303,0x81c06000,0x0,0x1ffff,0xfe001e00,0x180f8,0x0,0x3c003c0, 0x3ffe1c00,0x3f00000,0x0,0x3800003f,0xfe0007c0,0xf8000000,0x18000000,0xc0000006,0x1f000,0x1e03c00,0xf01e000,0x780f0003,0xc078001e, 0x3c000f0,0x1e001f07,0xff83c000,0x7ffff,0x803ffffc,0x1ffffe0,0xfffff00,0xf00000,0x7800000,0x3c000001,0xe000fff8,0x3c0f0f0, 0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x1f0f801e,0x3c3c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78001fe0,0x1e0007, 0x80f1e000,0x780,0x3c00,0x1e000,0xf0000,0x780000,0x3c0001e,0x3c07c00,0xf0007,0x8078003c,0x3c001e0,0x1e000f00,0x780000,0x3c00000, 0x1e000000,0xf0000f80,0x1f003e00,0x3c03c003,0xc01e001e,0xf000f0,0x7800780,0x3c003c00,0xf,0x3f003c,0x3c01e0,0x1e00f00,0xf007800, 0x7803c007,0x801f000f,0xf001e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1,0xe078003f,0xb0000000,0xfc003cf0,0x0,0x3c00,0x1e00,0x101c040,0x1e0000,0x0,0x0,0x1, 0xe0001e1f,0x83c0001e,0x7,0xe000fff0,0x3c0780,0x3c03f80,0x7fc0fc00,0x1e0000,0xfff80078,0xfe0007,0xe000003f,0x7fe0,0x1fffff, 0xf0000ffc,0xfc00,0x780f81f0,0xf01e003,0xffff003c,0x1e0,0x3c03ff,0xffc01fff,0xfe03c000,0x1fffff,0x80007800,0x780,0x3ffc0000, 0x7800001e,0x1ef0f078,0x3c1e03c0,0x780780,0x1fc0f000,0x1e07ffff,0x7ff00,0xf000,0xf0003c0,0xf00f007,0xc3b87c00,0x7c00001,0xfe000000, 0xf800003c,0x3c0,0x1e0,0x0,0x0,0x0,0x3c01,0xf000f007,0x800000f0,0xf80780,0x1e0003c,0x1e001,0xf0078007,0x80003c00,0xf000,0x78fc000, 0x1e0000f,0x3c0f01e,0x1e01e0,0x1e007c0,0x3c07800,0x7c003e00,0xf0000,0x3c000,0x3c003c0,0x1e007807,0x80003c00,0x7df0003c,0x780000, 0x1f00001e,0xf0,0x780,0x0,0x0,0x7800000,0xe7ce000,0x3,0xffff0000,0x0,0xfff,0xf8007fff,0xc0000000,0x1f0,0xffe000,0x1c0003, 0xc00fff00,0xe7ce0000,0xf800039,0xf38001cf,0x9c000000,0xe0007800,0x780e,0x701c00,0x0,0x0,0x0,0x0,0x1e0,0x7,0xf0078,0xf00e7ce, 0x1f0,0x7f800,0x0,0x780000,0xf0180000,0xf000000e,0x1c0001f,0xe000003c,0xf007,0xe0000000,0x6380000,0xc03fe780,0x3e07c03,0xfffffe00, 0x303,0xffc06000,0x0,0x1ffff,0xfe003ffe,0x1fff0,0x0,0x3c003c0,0x1ffe1c00,0x3f00000,0x7,0xffc0001f,0xfc0003e0,0x7c000001,0xfc00000f, 0xe000007f,0x1e000,0x1e03c00,0xf01e000,0x780f0003,0xc078001e,0x3c000f0,0x1e001e07,0xff83c000,0x7ffff,0x803ffffc,0x1ffffe0, 0xfffff00,0xf00000,0x7800000,0x3c000001,0xe000fff8,0x3c0f078,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0xf9f001e, 0x783c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78001fe0,0x1e0007,0x80f1e000,0x780,0x3c00,0x1e000,0xf0000,0x780000,0x3c0001e,0x3c07800, 0xf0003,0xc078001e,0x3c000f0,0x1e000780,0x780000,0x3c00000,0x1e000000,0xf0000f00,0xf003c00,0x3c03c003,0xc01e001e,0xf000f0, 0x7800780,0x3c003c00,0xf,0x7f003c,0x3c01e0,0x1e00f00,0xf007800,0x7803c007,0x801f000f,0xf001e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1,0xe070001f,0xf8000007, 0xf0007cf8,0x7800000,0x3c00,0x1e00,0x1c000,0x1e0000,0x0,0x0,0x1,0xe0001e1f,0x83c0001e,0xf,0xc000fff8,0x780780,0x2000f80,0x7f803e00, 0x3e0003,0xfffe007c,0x1fe0000,0x0,0x3ff00,0x0,0x1ff,0x8001f000,0x780f00f0,0x1f00f003,0xffffc03c,0x1e0,0x3c03ff,0xffc01fff, 0xfe03c00f,0xf81fffff,0x80007800,0x780,0x3ffe0000,0x7800001e,0xee0f078,0x3c1e03c0,0x7807ff,0xff80f000,0x1e07fffe,0x3ffe0, 0xf000,0xf0003c0,0xf00f003,0xc7bc7800,0xfc00000,0xfc000001,0xf000003c,0x3c0,0x1e0,0x0,0x0,0x0,0x3c01,0xe000f80f,0x800001e0, 0xf80f00,0x1e0003c,0x3c000,0xf0078007,0x80003c00,0xf000,0x79f8000,0x1e0000f,0x3c0f01e,0x1e03c0,0x1f00780,0x3e0f000,0x7c003e00, 0xf0000,0x3c000,0x3c003c0,0x1e007807,0x81e03c00,0x7df0003e,0xf80000,0x3e00003e,0xf0,0x7c0,0xfc000,0x80000000,0x7800000,0x1e7cf000, 0x3,0xffff0000,0x0,0x18,0xc0,0x0,0xf80,0x7ffc00,0x380003,0xc00fff01,0xe7cf0000,0x1f000079,0xf3c003cf,0x9e000000,0xe0007000, 0x380e,0xe01c00,0x0,0x0,0x0,0x0,0x1e0,0x3,0x800f0078,0xf01e7cf,0x3e0,0x3f000,0x0,0x780000,0xf018001f,0xfff8001e,0x1e0000f, 0xc000003c,0xf003,0xe0000000,0x6380000,0xc00fc780,0x7c0f803,0xfffffe00,0x303,0xfe006000,0x0,0x1ffff,0xfe003ffe,0x1ffe0,0x0, 0x3c003c0,0xffe1c00,0x3f00000,0x7,0xffc00007,0xf00001f0,0x3e00001f,0xfc0000ff,0xe00007ff,0x3e000,0x3e01e00,0x1f00f000,0xf8078007, 0xc03c003e,0x1e001e0,0xf001e07,0xff83c000,0x7ffff,0x803ffffc,0x1ffffe0,0xfffff00,0xf00000,0x7800000,0x3c000001,0xe000fff8, 0x3c0f078,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x7fe001e,0xf03c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78000fc0, 0x1e0007,0x80f1f000,0x780,0x3c00,0x1e000,0xf0000,0x780000,0x3c0001e,0x3c0f800,0x1e0003,0xc0f0001e,0x78000f0,0x3c000780,0x780000, 0x3c00000,0x1e000000,0xf0000f00,0xf003c00,0x3c078003,0xe03c001f,0x1e000f8,0xf0007c0,0x78003e00,0x1e,0xf7803c,0x3c01e0,0x1e00f00, 0xf007800,0x7803e00f,0x801e000f,0x80f803e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1,0xe0f0000f,0xff00001f,0x8000f87c,0x7800000,0x3c00,0x1e00,0x1c000,0x7fffff80, 0x0,0x0,0x3,0xc0001e1f,0x83c0001e,0x1f,0x800000fe,0xf00780,0x7c0,0x7f001e00,0x3c0007,0xe03f003f,0x3fe0000,0x0,0x3fc00,0x0, 0x7f,0x8001e000,0x781f00f0,0x1e00f003,0xc007e03c,0x1e0,0x3c03c0,0x1e00,0x3c00f,0xf81e0007,0x80007800,0x780,0x3f9f0000,0x7800001e, 0xfe0f078,0x3c1e03c0,0x7807ff,0xff00f000,0x1e07fff8,0xfff8,0xf000,0xf0003c0,0xf81f003,0xc7bc7800,0xfe00000,0x78000003,0xe000003c, 0x1e0,0x1e0,0x0,0x0,0x0,0x1fffc01,0xe000780f,0x1e0,0x780f00,0x1e0003c,0x3c000,0xf0078007,0x80003c00,0xf000,0x7bf0000,0x1e0000f, 0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0xf8000,0x3c000,0x3c003c0,0x1f00f807,0x81f03c00,0x3fe0001e,0xf00000,0x7c00007c, 0xf0,0x3e0,0x3ff801,0x80000000,0x7800000,0x3cfcf800,0x3,0xffff0000,0x0,0x18,0xc0,0x0,0x7c00,0x1fff00,0x700003,0xc00f0003, 0xcfcf8000,0x3e0000f3,0xf3e0079f,0x9f000000,0xf000,0x1000,0x0,0x0,0x0,0x0,0x0,0x1f0,0x1,0xc00f0078,0xf03cfcf,0x800007c0,0x1e000, 0x0,0x780001,0xe018001f,0xfff8001c,0xe00007,0x8000003c,0xf001,0xf0000000,0x6380000,0xc0000000,0xf81f003,0xfffffe00,0x303, 0x87006000,0x0,0x1ffff,0xfe003ffe,0x7f00,0x0,0x3c003c0,0x3fe1c00,0x3f00000,0x7,0xffc00000,0xf8,0x1f0001ff,0xf0000fff,0x80007ffc, 0xfc000,0x3c01e00,0x1e00f000,0xf0078007,0x803c003c,0x1e001e0,0xf001e07,0x8003c000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000, 0x7800000,0x3c000001,0xe000fff8,0x3c0f078,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x3fc001e,0x1e03c0f0,0x3c0780, 0x1e03c00,0xf01e000,0x78000780,0x1e0007,0x80f0fc00,0x3fff80,0x1fffc00,0xfffe000,0x7fff0003,0xfff8001f,0xffc0001e,0x3c0f000, 0x1e0003,0xc0f0001e,0x78000f0,0x3c000780,0x780000,0x3c00000,0x1e000000,0xf0001e00,0xf803c00,0x3c078001,0xe03c000f,0x1e00078, 0xf0003c0,0x78001e07,0xfffffe1e,0x1e7803c,0x3c01e0,0x1e00f00,0xf007800,0x7801e00f,0x1e0007,0x807803c0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x3,0xc0f00007, 0xffc0007e,0xf03e,0x7800000,0x3c00,0x1e00,0x1c000,0x7fffff80,0x0,0x0,0x3,0xc0001e1f,0x83c0001e,0x3f,0x3e,0xf00780,0x3c0,0x7e001e00, 0x7c000f,0x800f001f,0xffde0000,0x0,0x3e000,0x0,0xf,0x8003e000,0x781e0070,0x1e00f003,0xc001f03c,0x1e0,0x3c03c0,0x1e00,0x3c00f, 0xf81e0007,0x80007800,0x780,0x3f1f0000,0x7800001e,0x7c0f078,0x1e1e03c0,0x7807ff,0xfc00f000,0x1e07fffe,0xffc,0xf000,0xf0003c0, 0x781e003,0xc71c7800,0x1ff00000,0x78000003,0xe000003c,0x1e0,0x1e0,0x0,0x0,0x0,0xffffc01,0xe000780f,0x1e0,0x780fff,0xffe0003c, 0x3c000,0xf0078007,0x80003c00,0xf000,0x7ff0000,0x1e0000f,0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0x7f000,0x3c000, 0x3c003c0,0xf00f007,0xc1f07c00,0x1fc0001f,0x1f00000,0xfc000ff8,0xf0,0x1ff,0xfffe07,0x80000000,0x7800000,0x7ffcfc00,0x0,0xf000000, 0x0,0x18,0xc0,0x0,0x3e000,0x1ff80,0xe00003,0xc00f0007,0xffcfc000,0x3e0001ff,0xf3f00fff,0x9f800000,0x6000,0x0,0x0,0x7c000, 0x0,0x0,0x0,0xfe,0x0,0xe00f007f,0xff07ffcf,0xc0000fc0,0x1e000,0x0,0x780001,0xe018001f,0xfff8001c,0xe00007,0x80000000,0xf800, 0xf0000000,0x6380000,0xc0000000,0x1f03c000,0x1e00,0x303,0x83806000,0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xfe1c00,0x3f00000,0x0, 0x0,0x3c,0xf801fff,0xfff8,0x7ffc0,0x1f8000,0x3c01e00,0x1e00f000,0xf0078007,0x803c003c,0x1e001e0,0xf003c07,0x8003c000,0x78000, 0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x3c0f03c,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0, 0x78000f00,0x1f8001e,0x1e03c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1e000f,0x80f0ff00,0x1ffff80,0xffffc00,0x7fffe003, 0xffff001f,0xfff800ff,0xffc007ff,0xffc0f000,0x1fffff,0xc0fffffe,0x7fffff0,0x3fffff80,0x780000,0x3c00000,0x1e000000,0xf0001e00, 0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e07,0xfffffe1e,0x3c7803c,0x3c01e0,0x1e00f00,0xf007800,0x7801f01f, 0x1e0007,0x807c07c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x780000,0x3,0xc0f00000,0xfff003f0,0x1f00f03e,0x7800000,0x3c00,0x1e00,0x1c000,0x7fffff80,0x0,0x7ff80000,0x3, 0xc0001e0f,0x3c0001e,0x7e,0x1f,0x1e00780,0x3e0,0x7e000f00,0x78000f,0x7800f,0xff9e0000,0x0,0x3fc00,0x0,0x7f,0x8003c000,0x781e0070, 0x3e00f803,0xc000f03c,0x1e0,0x3c03c0,0x1e00,0x3c00f,0xf81e0007,0x80007800,0x780,0x3e0f8000,0x7800001e,0x7c0f078,0x1e1e03c0, 0x7807ff,0xf000f000,0x1e07807f,0xfe,0xf000,0xf0003c0,0x781e003,0xc71c7800,0x3ef00000,0x78000007,0xc000003c,0x1e0,0x1e0,0x0, 0x0,0x0,0x1ffffc01,0xe000780f,0x1e0,0x780fff,0xffe0003c,0x3c000,0xf0078007,0x80003c00,0xf000,0x7ff0000,0x1e0000f,0x3c0f01e, 0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0x7ff80,0x3c000,0x3c003c0,0xf00f003,0xc1f07800,0x1fc0000f,0x1e00000,0xf8000ff0,0xf0, 0xff,0xffffff,0x80000000,0x3fffc000,0xfff9fe00,0x0,0xf000000,0x0,0x18,0xc0,0x0,0x1f0000,0x1fc0,0x1c00003,0xc00f000f,0xff9fe000, 0x7c0003ff,0xe7f81fff,0x3fc00000,0x0,0x0,0x0,0xfe000,0x1ffffc0f,0xfffffc00,0x0,0xff,0xf0000000,0x700f007f,0xff0fff9f,0xe0000f80, 0x1e000,0x0,0x780001,0xe018001f,0xfff8001c,0xe00fff,0xffc00000,0xf800,0xf0000000,0x6380000,0xc0ffff80,0x3e078000,0x1e00,0x7ff80303, 0x83c06000,0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x3f00000,0x0,0x7f,0xff00001e,0x7c1fff0,0xfff80,0x7ffc00,0x3f0000,0x7c01f00, 0x3e00f801,0xf007c00f,0x803e007c,0x1f003e0,0xf803c07,0x8003c000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001, 0xe0001e00,0x3c0f03c,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x1f8001e,0x3c03c0f0,0x3c0780,0x1e03c00,0xf01e000, 0x78000780,0x1e001f,0xf07f80,0x3ffff80,0x1ffffc00,0xffffe007,0xffff003f,0xfff801ff,0xffc03fff,0xffc0f000,0x1fffff,0xc0fffffe, 0x7fffff0,0x3fffff80,0x780000,0x3c00000,0x1e000000,0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e07, 0xfffffe1e,0x787803c,0x3c01e0,0x1e00f00,0xf007800,0x7800f01e,0x1e0007,0x803c0780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1ff,0xffff8000,0x3ff80fc0,0x7fc1e01f, 0x7800000,0x3c00,0x1e00,0x0,0x7fffff80,0x0,0x7ff80000,0x7,0x80001e00,0x3c0001e,0xfc,0xf,0x1e00780,0x1e0,0x7c000f00,0x78000f, 0x78007,0xff1e0000,0x0,0x3ff00,0x0,0x1ff,0x8003c000,0x781e0070,0x3c007803,0xc000f03c,0x1e0,0x3c03c0,0x1e00,0x3c000,0x781e0007, 0x80007800,0x780,0x3c07c000,0x7800001e,0x7c0f078,0xf1e03c0,0x780780,0xf000,0x1e07801f,0x3e,0xf000,0xf0003c0,0x781e003,0xcf1c7800, 0x3cf80000,0x7800000f,0x8000003c,0xf0,0x1e0,0x0,0x0,0x0,0x3ffffc01,0xe000780f,0x1e0,0x780fff,0xffe0003c,0x3c000,0xf0078007, 0x80003c00,0xf000,0x7ff8000,0x1e0000f,0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0x3fff0,0x3c000,0x3c003c0,0xf81f003, 0xc3b87800,0xf80000f,0x1e00001,0xf0000ff0,0xf0,0xff,0xf03fff,0x80000000,0x3fff8001,0xfff1ff00,0x0,0xf000000,0x0,0x18,0xc0, 0x0,0x380000,0x7c0,0x3c00003,0xc00f001f,0xff1ff000,0xf80007ff,0xc7fc3ffe,0x3fe00000,0x0,0x0,0x0,0x1ff000,0x7ffffe1f,0xffffff00, 0x0,0x7f,0xfe000000,0x780f007f,0xff1fff1f,0xf0001f00,0x1e000,0x0,0x780001,0xe0180000,0xf000001c,0xe00fff,0xffc00000,0x7c00, 0xf0000000,0x31c0001,0x80ffff80,0x3e078000,0x1e00,0x7ff80183,0x81c0c000,0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x3f00000, 0x0,0x7f,0xff00001e,0x7c7ff03,0xc03ff8fe,0x1ffc0f0,0x7e0000,0x7800f00,0x3c007801,0xe003c00f,0x1e0078,0xf003c0,0x7803c07,0x8003c000, 0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x3c0f01e,0x3c078000,0xf03c0007,0x81e0003c, 0xf0001e0,0x78000f00,0x3fc001e,0x7803c0f0,0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1e007f,0xf03fe0,0x7ffff80,0x3ffffc01, 0xffffe00f,0xffff007f,0xfff803ff,0xffc07fff,0xffc0f000,0x1fffff,0xc0fffffe,0x7fffff0,0x3fffff80,0x780000,0x3c00000,0x1e000000, 0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e07,0xfffffe1e,0x707803c,0x3c01e0,0x1e00f00,0xf007800, 0x7800f01e,0x1e0007,0x803c0780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1ff,0xffff8000,0x30f81f00,0xffe1e00f,0x87800000,0x3c00,0x1e00,0x0,0x1e0000,0x0,0x7ff80000, 0x7,0x80001e00,0x3c0001e,0x1f8,0x7,0x83c00780,0x1e0,0x7c000f00,0xf8001e,0x3c001,0xfc1e0000,0x0,0x7fe0,0x0,0xffc,0x3c000,0x781e0070, 0x3ffff803,0xc000783c,0x1e0,0x3c03c0,0x1e00,0x3c000,0x781e0007,0x80007800,0x780,0x3c07c000,0x7800001e,0x380f078,0xf1e03c0, 0x780780,0xf000,0x1e07800f,0x8000001e,0xf000,0xf0003c0,0x3c3c003,0xcf1e7800,0x7c780000,0x7800000f,0x8000003c,0xf0,0x1e0,0x0, 0x0,0x0,0x7f003c01,0xe000780f,0x1e0,0x780fff,0xffe0003c,0x3c000,0xf0078007,0x80003c00,0xf000,0x7f7c000,0x1e0000f,0x3c0f01e, 0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0xfff8,0x3c000,0x3c003c0,0x781e003,0xc3b87800,0x1fc00007,0x83e00003,0xe0000ff8,0xf0, 0x1ff,0xc007fe,0x0,0x7fff8001,0xffe3ff00,0x0,0x1e000000,0x0,0x18,0xc0,0x0,0x0,0x3c0,0x7800003,0xc00f001f,0xfe3ff000,0xf80007ff, 0x8ffc3ffc,0x7fe00000,0x0,0x0,0x0,0x1ff000,0x0,0x0,0x0,0x1f,0xff000000,0x3c0f007f,0xff1ffe3f,0xf0003e00,0x1e000,0x0,0x780001, 0xe0180000,0xf000001e,0x1e00fff,0xffc00000,0x3f00,0xf0000000,0x31c0001,0x80ffff80,0x1f03c000,0x1e00,0x7ff80183,0x81c0c000, 0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x0,0x0,0x7f,0xff00003c,0xf87f007,0xc03f83ff,0x81fc01f0,0x7c0000,0x7ffff00,0x3ffff801, 0xffffc00f,0xfffe007f,0xfff003ff,0xff807fff,0x8003c000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001, 0xe0001e00,0x3c0f01e,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0x7fe001e,0xf003c0f0,0x3c0780,0x1e03c00,0xf01e000, 0x78000780,0x1ffffe,0xf00ff0,0xfe00780,0x7f003c03,0xf801e01f,0xc00f00fe,0x7807f0,0x3c0ffff,0xffc0f000,0x1fffff,0xc0fffffe, 0x7fffff0,0x3fffff80,0x780000,0x3c00000,0x1e000000,0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e00, 0x1e,0xf07803c,0x3c01e0,0x1e00f00,0xf007800,0x7800783e,0x1e0007,0x801e0f80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1ff,0xffff8000,0x307c0801,0xe1f1e00f,0x87000000, 0x3c00,0x1e00,0x0,0x1e0000,0x0,0x7ff80000,0xf,0x1e00,0x3c0001e,0x3f0,0x7,0x83fffffc,0x1e0,0x7c000f00,0xf0001e,0x3c000,0x3e0000, 0x0,0x1ffc,0x1fffff,0xf0007ff0,0x3c000,0x781e0070,0x7ffffc03,0xc000781e,0x1e0,0x7803c0,0x1e00,0x3c000,0x781e0007,0x80007800, 0x780,0x3c03e000,0x7800001e,0xf078,0x79e03c0,0x780780,0xf000,0x1e078007,0x8000000f,0xf000,0xf0003c0,0x3c3c001,0xee0ef000, 0xf87c0000,0x7800001f,0x3c,0x78,0x1e0,0x0,0x0,0x0,0x7c003c01,0xe000780f,0x1e0,0x780f00,0x3c,0x3c000,0xf0078007,0x80003c00, 0xf000,0x7e3e000,0x1e0000f,0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0x1ffc,0x3c000,0x3c003c0,0x781e003,0xe3b8f800, 0x1fc00007,0x83c00007,0xc00000fc,0xf0,0x3e0,0x8001f8,0x0,0x7800000,0xffc7fe00,0x0,0x1e000000,0x0,0x18,0xc0,0x0,0x0,0x1e0, 0xf000003,0xc00f000f,0xfc7fe001,0xf00003ff,0x1ff81ff8,0xffc00000,0x0,0x0,0x0,0x1ff000,0x0,0x0,0x0,0x3,0xff800000,0x1e0f0078, 0xffc7f,0xe0007c00,0x1e000,0x0,0x780001,0xe0180000,0xf000000e,0x1c00007,0x80000000,0x1f81,0xe0000000,0x38e0003,0x80000000, 0xf81f000,0x1e00,0x7ff801c3,0x80e1c000,0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x0,0x0,0x0,0xf8,0x1f070007,0xc03803ff,0xc1c001f0, 0xf80000,0xfffff00,0x7ffff803,0xffffc01f,0xfffe00ff,0xfff007ff,0xffc07fff,0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000, 0xf00000,0x7800000,0x3c000001,0xe0001e00,0x780f00f,0x3c078000,0xf03c0007,0x81e0003c,0xf0001e0,0x78000f00,0xf9f001e,0xf003c0f0, 0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1ffffc,0xf003f8,0xf800780,0x7c003c03,0xe001e01f,0xf00f8,0x7807c0,0x3c0fc1e,0xf000, 0x1e0000,0xf00000,0x7800000,0x3c000000,0x780000,0x3c00000,0x1e000000,0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078, 0xf0003c0,0x78001e00,0x1e,0x1e07803c,0x3c01e0,0x1e00f00,0xf007800,0x7800783c,0x1e0007,0x801e0f00,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff,0xffff8000,0x303c0001, 0xc071e007,0xcf000000,0x3c00,0x1e00,0x0,0x1e0000,0x0,0x0,0xf,0xf00,0x780001e,0x7e0,0x7,0x83fffffc,0x1e0,0x7c000f00,0x1f0001e, 0x3c000,0x3c0000,0x0,0x3ff,0x801fffff,0xf003ff80,0x3c000,0x781e0070,0x7ffffc03,0xc000781e,0x1e0,0x7803c0,0x1e00,0x1e000,0x781e0007, 0x80007800,0x780,0x3c01f000,0x7800001e,0xf078,0x79e03c0,0xf00780,0xf000,0x3e078007,0xc000000f,0xf000,0xf0003c0,0x3c3c001, 0xee0ef000,0xf03e0000,0x7800003e,0x3c,0x78,0x1e0,0x0,0x0,0x0,0xf8003c01,0xe000780f,0x1e0,0x780f00,0x3c,0x3c000,0xf0078007, 0x80003c00,0xf000,0x7c3e000,0x1e0000f,0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0xfc,0x3c000,0x3c003c0,0x3c3e001,0xe7b8f000, 0x3fe00007,0xc7c0000f,0xc000003e,0xf0,0x7c0,0x0,0x0,0x7c00000,0x7fcffc00,0x0,0x1e000000,0x0,0x18,0xc0,0x0,0x0,0x1e0,0x1e000003, 0xc00f0007,0xfcffc003,0xe00001ff,0x3ff00ff9,0xff800000,0x0,0x0,0x0,0x1ff000,0x0,0x0,0x0,0x0,0x1f800000,0xf0f0078,0x7fcff, 0xc000fc00,0x1e000,0x0,0x780001,0xe0180000,0xf000000f,0x87c00007,0x80000000,0xfe3,0xe0000000,0x18780c3,0x0,0x7c0f800,0x1e00, 0xc3,0x80e18000,0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x0,0x0,0x0,0x1f0,0x3e00000f,0xc0000303,0xe00003f0,0xf00000,0xfffff80, 0x7ffffc03,0xffffe01f,0xffff00ff,0xfff807ff,0xffc07fff,0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000, 0x3c000001,0xe0001e00,0x780f00f,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e00,0x1f0f801f,0xe00780f0,0x3c0780,0x1e03c00, 0xf01e000,0x78000780,0x1ffff8,0xf000f8,0x1f000780,0xf8003c07,0xc001e03e,0xf01f0,0x780f80,0x3c1f01e,0xf000,0x1e0000,0xf00000, 0x7800000,0x3c000000,0x780000,0x3c00000,0x1e000000,0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e00, 0x1e,0x3c07803c,0x3c01e0,0x1e00f00,0xf007800,0x78007c7c,0x1e0007,0x801f1f00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x81c00000,0x303c0003,0x8039e003,0xef000000, 0x3c00,0x1e00,0x0,0x1e0000,0x0,0x0,0x1e,0xf00,0x780001e,0xfc0,0x7,0x83fffffc,0x1e0,0x3c000f00,0x1e0001e,0x3c000,0x3c0000, 0x0,0x7f,0xe01fffff,0xf00ffc00,0x3c000,0x781f00f0,0x7ffffc03,0xc000781e,0x1e0,0x7803c0,0x1e00,0x1e000,0x781e0007,0x80007800, 0x780,0x3c01f000,0x7800001e,0xf078,0x7de01e0,0xf00780,0x7800,0x3c078003,0xc000000f,0xf000,0xf0003c0,0x3e7c001,0xee0ef001, 0xf01e0000,0x7800003e,0x3c,0x3c,0x1e0,0x0,0x0,0x0,0xf0003c01,0xe000780f,0x1e0,0x780f00,0x3c,0x3c000,0xf0078007,0x80003c00, 0xf000,0x781f000,0x1e0000f,0x3c0f01e,0x1e03c0,0xf00780,0x1e0f000,0x3c003c00,0x3e,0x3c000,0x3c003c0,0x3c3c001,0xe71cf000,0x7df00003, 0xc780000f,0x8000003e,0xf0,0x780,0x0,0x0,0x3c00000,0x3fcff800,0x0,0x1e000000,0x0,0x18,0xc0,0x0,0x1f00fc,0x1e0,0x1e000001, 0xe00f0003,0xfcff8003,0xe00000ff,0x3fe007f9,0xff000000,0x0,0x0,0x0,0x1ff000,0x0,0x0,0x0,0x0,0x7c00000,0xf0f0078,0x3fcff,0x8000f800, 0x1e000,0x0,0x780001,0xe0180000,0xf000001f,0xffe00007,0x8000003c,0x7ff,0xc0000000,0x1c3ffc7,0x0,0x3e07c00,0x1e00,0xe3,0x80738000, 0x0,0x78,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x0,0x0,0x0,0x3e0,0x7c00001d,0xc0000001,0xe0000770,0x1f00000,0xfffff80,0x7ffffc03, 0xffffe01f,0xffff00ff,0xfff807ff,0xffc07fff,0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001, 0xe0001e00,0x780f00f,0x3c03c001,0xe01e000f,0xf00078,0x78003c0,0x3c001e00,0x3e07c01f,0xc00780f0,0x3c0780,0x1e03c00,0xf01e000, 0x78000780,0x1fffc0,0xf0007c,0x1e000780,0xf0003c07,0x8001e03c,0xf01e0,0x780f00,0x3c1e01e,0xf000,0x1e0000,0xf00000,0x7800000, 0x3c000000,0x780000,0x3c00000,0x1e000000,0xf0001e00,0x7803c00,0x3c078001,0xe03c000f,0x1e00078,0xf0003c0,0x78001e00,0x1e,0x7807803c, 0x3c01e0,0x1e00f00,0xf007800,0x78003c78,0x1e0007,0x800f1e00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x83c00000,0x303c0003,0x8039e001,0xee000000,0x1e00,0x3c00, 0x0,0x1e0000,0x0,0x0,0x1e,0xf00,0x780001e,0x1f80,0x7,0x83fffffc,0x1e0,0x3c000f00,0x1e0001e,0x3c000,0x3c0000,0x0,0x1f,0xfc1fffff, 0xf07ff000,0x0,0x780f00f0,0x78003c03,0xc000781e,0x1e0,0xf803c0,0x1e00,0x1e000,0x781e0007,0x80007800,0x780,0x3c00f800,0x7800001e, 0xf078,0x3de01e0,0xf00780,0x7800,0x3c078003,0xe000000f,0xf000,0xf0003c0,0x1e78001,0xfe0ff003,0xe01f0000,0x7800007c,0x3c,0x3c, 0x1e0,0x0,0x0,0x0,0xf0007c01,0xe000f80f,0x800001e0,0xf80f00,0x3c,0x1e001,0xf0078007,0x80003c00,0xf000,0x780f800,0x1e0000f, 0x3c0f01e,0x1e03c0,0x1f00780,0x3e0f000,0x7c003c00,0x1e,0x3c000,0x3c003c0,0x3c3c001,0xe71cf000,0xf8f80003,0xe780001f,0x1e, 0xf0,0x780,0x0,0x0,0x3c00000,0x1ffff000,0x0,0x1e000000,0x0,0x18,0xc0,0x0,0x3bc1de,0x1e0,0xf000001,0xe00f0001,0xffff0007,0xc000007f, 0xffc003ff,0xfe000000,0x0,0x0,0x0,0xfe000,0x0,0x0,0x0,0x0,0x3c00000,0x1e0f0078,0x1ffff,0x1f000,0x1e000,0x0,0x780000,0xf0180000, 0xf000001f,0xfff00007,0x8000003c,0x1ff,0x80000000,0xe0ff0e,0x0,0x1f03e00,0x1e00,0x70,0x70000,0x0,0x78,0x0,0x0,0x0,0x3c003c0, 0xe1c00,0x0,0x0,0x0,0x7c0,0xf8000019,0xc0000000,0xe0000670,0x1e00000,0xf000780,0x78003c03,0xc001e01e,0xf00f0,0x780780,0x3c0f807, 0x8001e000,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0xf80f007,0xbc03c001,0xe01e000f, 0xf00078,0x78003c0,0x3c001e00,0x7c03e00f,0x800780f0,0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1e0000,0xf0003c,0x1e000f80, 0xf0007c07,0x8003e03c,0x1f01e0,0xf80f00,0x7c1e01e,0xf800,0x1e0000,0xf00000,0x7800000,0x3c000000,0x780000,0x3c00000,0x1e000000, 0xf0001e00,0x7803c00,0x3c078003,0xe03c001f,0x1e000f8,0xf0007c0,0x78003e00,0x1f8001f,0xf00f803c,0x3c01e0,0x1e00f00,0xf007800, 0x78003e78,0x1e000f,0x800f9e00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x3c00000,0x303c0003,0x8039f001,0xfe000000,0x1e00,0x3c00,0x0,0x1e0000,0x0,0x0,0x3c,0xf00, 0x780001e,0x3f00,0x7,0x80000780,0x3e0,0x3e000f00,0x3c0001e,0x3c000,0x7c0000,0x0,0x3,0xfe000000,0xff8000,0x0,0x3c0f81f0,0xf0001e03, 0xc000780f,0x1e0,0xf003c0,0x1e00,0xf000,0x781e0007,0x80007800,0x780,0x3c007c00,0x7800001e,0xf078,0x3de01e0,0xf00780,0x7800, 0x3c078001,0xe000000f,0xf000,0xf0003c0,0x1e78001,0xfc07f003,0xe00f0000,0x78000078,0x3c,0x1e,0x1e0,0x0,0x0,0x0,0xf0007c01, 0xf000f007,0x800000f0,0xf80780,0x3c,0x1e001,0xf0078007,0x80003c00,0xf000,0x7807c00,0x1e0000f,0x3c0f01e,0x1e01e0,0x1e007c0, 0x3c07800,0x7c003c00,0x1e,0x3c000,0x3c007c0,0x1e78001,0xe71df000,0xf8f80001,0xef80003e,0x1e,0xf0,0x780,0x0,0x0,0x3c00000, 0xfffe000,0x0,0x3e000000,0x0,0x18,0x7fff,0xc0000000,0x60c306,0x1e0,0x7800001,0xe00f0000,0xfffe0007,0x8000003f,0xff8001ff, 0xfc000000,0x0,0x0,0x0,0x7c000,0x0,0x0,0x0,0x0,0x3c00000,0x3c0f0078,0xfffe,0x3e000,0x1e000,0x0,0x780000,0xf0180000,0xf000003c, 0xfcf80007,0x8000003c,0x7f,0x0,0x70001c,0x0,0xf81f00,0x0,0x38,0xe0000,0x0,0x0,0x0,0x0,0x0,0x3c003c0,0xe1c00,0x0,0x0,0x0,0xf81, 0xf0000039,0xc0000000,0xe0000e70,0x1e00000,0x1e0003c0,0xf0001e07,0x8000f03c,0x781e0,0x3c0f00,0x1e0f007,0x8000f000,0x78000, 0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0xf00f007,0xbc03c001,0xe01e000f,0xf00078,0x78003c0, 0x3c001e00,0xf801f00f,0x800780f0,0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1e0000,0xf0003c,0x1e000f80,0xf0007c07,0x8003e03c, 0x1f01e0,0xf80f00,0x7c1e01e,0x7800,0xf0000,0x780000,0x3c00000,0x1e000000,0x780000,0x3c00000,0x1e000000,0xf0000f00,0xf003c00, 0x3c03c003,0xc01e001e,0xf000f0,0x7800780,0x3c003c00,0x1f8000f,0xe00f003c,0x7c01e0,0x3e00f00,0x1f007800,0xf8001ef8,0x1f000f, 0x7be00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0xf,0x3c00000,0x307c0003,0x8038f000,0xfc000000,0x1e00,0x3c00,0x0,0x1e0000,0xfc0000,0x0,0x7e00003c,0x780,0xf00001e, 0x7e00,0xf,0x80000780,0x3c0,0x3e001e00,0x3c0001f,0x7c000,0x780007,0xe000003f,0x0,0xfe000000,0xfe0000,0x0,0x3c07c3f0,0xf0001e03, 0xc000f80f,0x800001e0,0x1f003c0,0x1e00,0xf000,0x781e0007,0x80007800,0x4000f80,0x3c003c00,0x7800001e,0xf078,0x1fe01f0,0x1f00780, 0x7c00,0x7c078001,0xf000001f,0xf000,0xf0003c0,0x1e78001,0xfc07f007,0xc00f8000,0x780000f8,0x3c,0x1e,0x1e0,0x0,0x0,0x0,0xf0007c01, 0xf000f007,0xc00000f0,0xf80780,0x3c,0x1f003,0xf0078007,0x80003c00,0xf000,0x7807c00,0x1e0000f,0x3c0f01e,0x1e01e0,0x1e007c0, 0x3c07800,0x7c003c00,0x1e,0x3c000,0x3c007c0,0x1e78000,0xfe0fe001,0xf07c0001,0xef00007c,0x1e,0xf0,0x780,0x0,0x0,0x1e00000, 0x7cfc000,0xfc00000,0x3c00000f,0xc3f00000,0x18,0x7fff,0xc0000000,0x406303,0x3e0,0x3c00001,0xf00f0000,0x7cfc000f,0x8000001f, 0x3f0000f9,0xf8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x780700f8,0x7cfc,0x7c000,0x1e000,0x0,0x780000,0xf8180000, 0xf0000070,0x3c0007,0x8000003c,0x3f,0x80000000,0x3c0078,0x0,0x780f00,0x0,0x1e,0x3c0000,0x0,0x0,0x0,0x0,0x0,0x3e007c0,0xe1c00, 0x0,0x0,0x0,0xf01,0xe0000071,0xc0000000,0xe0001c70,0x1e00000,0x1e0003c0,0xf0001e07,0x8000f03c,0x781e0,0x3c0f00,0x1e0f007, 0x8000f800,0x78000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x1f00f003,0xfc03e003,0xe01f001f, 0xf800f8,0x7c007c0,0x3e003e01,0xf000f80f,0xf00f0,0x3c0780,0x1e03c00,0xf01e000,0x78000780,0x1e0000,0xf0003c,0x1e000f80,0xf0007c07, 0x8003e03c,0x1f01e0,0xf80f00,0x7c1e01e,0x7c00,0xf0000,0x780000,0x3c00000,0x1e000000,0x780000,0x3c00000,0x1e000000,0xf0000f00, 0xf003c00,0x3c03c003,0xc01e001e,0xf000f0,0x7800780,0x3c003c00,0x1f8000f,0xc00f003c,0x7c01e0,0x3e00f00,0x1f007800,0xf8001ef0, 0x1f000f,0x7bc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x780000,0xf,0x3800040,0x30780003,0x8038f800,0x78000000,0x1e00,0x3c00,0x0,0x1e0000,0xfc0000,0x0,0x7e000078, 0x780,0x1f00001e,0xfc00,0x20001f,0x780,0x80007c0,0x1f001e00,0x7c0000f,0x78000,0xf80007,0xe000003f,0x0,0x1e000000,0xf00000, 0x3c000,0x3c03fff0,0xf0001e03,0xc001f007,0x800101e0,0x7e003c0,0x1e00,0x7800,0x781e0007,0x80007800,0x6000f00,0x3c003e00,0x7800001e, 0xf078,0x1fe00f0,0x1e00780,0x3c00,0x78078000,0xf020001e,0xf000,0x7800780,0xff0001,0xfc07f00f,0x8007c000,0x780001f0,0x3c,0xf, 0x1e0,0x0,0x0,0x0,0xf800fc01,0xf801f007,0xc00100f8,0x1f807c0,0x40003c,0xf807,0xf0078007,0x80003c00,0xf000,0x7803e00,0x1f0000f, 0x3c0f01e,0x1e01f0,0x3e007e0,0x7c07c00,0xfc003c00,0x1e,0x3e000,0x3e007c0,0x1ff8000,0xfe0fe003,0xe03e0001,0xff0000fc,0x1e, 0xf0,0x780,0x0,0x0,0x1f00080,0x3cf8000,0xfc00000,0x3c00001f,0x83f00000,0x18,0xc0,0x0,0xc06203,0x40003c0,0x1c00000,0xf80f0000, 0x3cf8001f,0xf,0x3e000079,0xf0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x700780fc,0x3cf8,0xfc000,0x1e000,0x0,0x780000, 0x7c180000,0xf0000020,0x100007,0x8000003c,0xf,0x80000000,0x1f01f0,0x0,0x380700,0x0,0xf,0x80f80000,0x0,0x0,0x0,0x0,0x0,0x3e007c0, 0xe1c00,0x0,0x0,0x0,0xe01,0xc0000071,0xc0000001,0xc0001c70,0x1e00040,0x1e0003c0,0xf0001e07,0x8000f03c,0x781e0,0x3c0f00,0x1e0f007, 0x80007800,0x10078000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e00,0x7e00f003,0xfc01e003,0xc00f001e, 0x7800f0,0x3c00780,0x1e003c00,0xe000700f,0x800f0078,0x7803c0,0x3c01e00,0x1e00f000,0xf0000780,0x1e0000,0xf0003c,0x1f001f80, 0xf800fc07,0xc007e03e,0x3f01f0,0x1f80f80,0xfc1e01f,0x7c00,0x100f8000,0x807c0004,0x3e00020,0x1f000100,0x780000,0x3c00000,0x1e000000, 0xf0000f80,0x1f003c00,0x3c03e007,0xc01f003e,0xf801f0,0x7c00f80,0x3e007c00,0x1f8000f,0x801f003e,0x7c01f0,0x3e00f80,0x1f007c00, 0xf8001ff0,0x1f801f,0x7fc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0xf,0x7800078,0x31f80001,0xc070fc00,0xfc000000,0x1e00,0x7c00,0x0,0x1e0000,0xfc0000,0x0,0x7e000078, 0x7c0,0x1f00001e,0x1f000,0x38003f,0x780,0xe000f80,0x1f803e00,0x780000f,0x800f8000,0x1f00007,0xe000003f,0x0,0x2000000,0x800000, 0x3c000,0x3e01ff71,0xf0001f03,0xc007f007,0xc00301e0,0x1fc003c0,0x1e00,0x7c00,0x781e0007,0x80007800,0x7801f00,0x3c001f00,0x7800001e, 0xf078,0xfe00f8,0x3e00780,0x3e00,0xf8078000,0xf838003e,0xf000,0x7c00f80,0xff0000,0xfc07e00f,0x8003c000,0x780001e0,0x3c,0xf, 0x1e0,0x0,0x0,0x0,0xf801fc01,0xfc03e003,0xe003007c,0x3f803e0,0x1c0003c,0xfc0f,0xf0078007,0x80003c00,0xf000,0x7801f00,0xf8000f, 0x3c0f01e,0x1e00f8,0x7c007f0,0xf803e01,0xfc003c00,0x8003e,0x1f000,0x1e00fc0,0xff0000,0xfe0fe007,0xc01f0000,0xfe0000f8,0x1e, 0xf0,0x780,0x0,0x0,0xf80180,0x1cf0000,0x1f800000,0x3c00001f,0x83e00000,0x18,0xc0,0x0,0xc06203,0x70007c0,0xe00000,0x7e0f0000, 0x1cf0001e,0x7,0x3c000039,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x7c00000,0xe00780fc,0x2001cf0,0xf8000,0x1e000,0x0, 0x780000,0x7e182000,0xf0000000,0x7,0x8000003c,0x7,0xc0000000,0x7ffc0,0x0,0x180300,0x0,0x3,0xffe00000,0x0,0x0,0x0,0x0,0x0, 0x3f00fc0,0xe1c00,0x0,0x0,0x0,0xc01,0x800000e1,0xc0000003,0xc0003870,0x1f001c0,0x3e0003e1,0xf0001f0f,0x8000f87c,0x7c3e0,0x3e1f00, 0x1f1e007,0x80007c00,0x30078000,0x3c0000,0x1e00000,0xf000000,0xf00000,0x7800000,0x3c000001,0xe0001e03,0xfc00f001,0xfc01f007, 0xc00f803e,0x7c01f0,0x3e00f80,0x1f007c00,0x4000201f,0xc01f007c,0xf803e0,0x7c01f00,0x3e00f801,0xf0000780,0x1e0000,0xf0007c, 0x1f003f80,0xf801fc07,0xc00fe03e,0x7f01f0,0x3f80f80,0x1fc1f03f,0x803e00,0x3007c003,0x803e001c,0x1f000e0,0xf800700,0x780000, 0x3c00000,0x1e000000,0xf00007c0,0x3e003c00,0x3c01f00f,0x800f807c,0x7c03e0,0x3e01f00,0x1f00f800,0x1f80007,0xc03e001e,0xfc00f0, 0x7e00780,0x3f003c01,0xf8000fe0,0x1fc03e,0x3f800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1e,0x780007f,0xfff00001,0xe0f07f03,0xfe000000,0xf00,0x7800,0x0, 0x1e0000,0xfc0000,0x0,0x7e0000f0,0x3f0,0x7e000fff,0xfc03ffff,0xf83f00fe,0x780,0xfc03f80,0xfc0fc00,0xf800007,0xe03f0018,0x7e00007, 0xe000003f,0x0,0x0,0x0,0x3c000,0x1e007c71,0xe0000f03,0xffffe003,0xf01f01ff,0xff8003ff,0xffe01e00,0x3f01,0xf81e0007,0x803ffff0, 0x7e03f00,0x3c000f00,0x7ffffe1e,0xf078,0xfe007e,0xfc00780,0x1f83,0xf0078000,0x783f00fe,0xf000,0x3f03f00,0xff0000,0xfc07e01f, 0x3e000,0x780003ff,0xfffc003c,0x7,0x800001e0,0x0,0x0,0x0,0x7e07fc01,0xfe07e001,0xf80f007e,0x7f801f8,0xfc0003c,0x7ffe,0xf0078007, 0x807ffffe,0xf000,0x7801f00,0xfff00f,0x3c0f01e,0x1e00fc,0xfc007f8,0x1f803f03,0xfc003c00,0xf80fc,0x1fff0,0x1f83fc0,0xff0000, 0xfc07e007,0xc01f0000,0xfe0001ff,0xffe0001e,0xf0,0x780,0x0,0x0,0xfe0780,0xfe0000,0x1f000000,0x3c00001f,0x7c00e03,0x81c00018, 0xc0,0x0,0x406203,0x7e01fc0,0x700000,0x7fffff80,0xfe0003f,0xffffc003,0xf800001f,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f0, 0x1f800001,0xc007c1fe,0x6000fe0,0x1ffffe,0x1e000,0x0,0x780000,0x3f98e03f,0xffff8000,0x7,0x8000003c,0x7,0xc0000000,0xfe00, 0x0,0x80100,0x0,0x0,0x7f000000,0x0,0x1ffff,0xfe000000,0x0,0x0,0x3f83fe8,0xe1c00,0x0,0x0,0x0,0x801,0xc1,0xc0000007,0x80003070, 0xfc0fc0,0x3c0001e1,0xe0000f0f,0x7878,0x3c3c0,0x1e1e00,0xf1e007,0xffc03f01,0xf007ffff,0xc03ffffe,0x1fffff0,0xfffff80,0x7fffe003, 0xffff001f,0xfff800ff,0xffc01fff,0xf800f001,0xfc00fc1f,0x8007e0fc,0x3f07e0,0x1f83f00,0xfc1f800,0x1f,0xf07e003f,0x3f001f8, 0x1f800fc0,0xfc007e07,0xe0000780,0x1e0000,0xf301f8,0xfc0ff80,0x7e07fc03,0xf03fe01f,0x81ff00fc,0xff807e0,0x7fc0f87f,0x81801f80, 0xf003f01f,0x801f80fc,0xfc07e0,0x7e03f00,0xfffffc07,0xffffe03f,0xffff01ff,0xfff807e0,0x7e003c00,0x3c01f81f,0x800fc0fc,0x7e07e0, 0x3f03f00,0x1f81f800,0x1f8000f,0xe07e001f,0x83fc00fc,0x1fe007e0,0xff003f07,0xf8000fe0,0x1fe07e,0x3f800,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1e,0x780007f, 0xffe00000,0xffe03fff,0xdf000000,0xf00,0x7800,0x0,0x0,0xfc0000,0x0,0x7e0000f0,0x1ff,0xfc000fff,0xfc03ffff,0xf83ffffc,0x780, 0xfffff00,0x7fff800,0xf000007,0xffff001f,0xffe00007,0xe000003f,0x0,0x0,0x0,0x3c000,0x1e000001,0xe0000f03,0xffffc001,0xffff01ff, 0xff0003ff,0xffe01e00,0x1fff,0xf81e0007,0x803ffff0,0x7fffe00,0x3c000f80,0x7ffffe1e,0xf078,0xfe003f,0xff800780,0xfff,0xf0078000, 0x7c3ffffc,0xf000,0x3ffff00,0xff0000,0xf803e01e,0x1e000,0x780003ff,0xfffc003c,0x7,0x800001e0,0x0,0x0,0x0,0x7fffbc01,0xffffc000, 0xffff003f,0xfff800ff,0xffc0003c,0x3ffe,0xf0078007,0x807ffffe,0xf000,0x7800f80,0x7ff00f,0x3c0f01e,0x1e007f,0xff8007ff,0xff001fff, 0xbc003c00,0xffffc,0x1fff0,0x1fffbc0,0xff0000,0x7c07c00f,0x800f8000,0x7e0001ff,0xffe0001e,0xf0,0x780,0x0,0x0,0x7fff80,0x7c0000, 0x1f000000,0x3c00001e,0x7c00f07,0xc1e00018,0xc0,0x0,0x60e303,0x7ffff80,0x380000,0x3fffff80,0x7c0003f,0xffffc001,0xf000000f, 0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff,0xff800003,0x8003ffff,0xfe0007c0,0x1ffffe,0x1e000,0x0,0x780000,0x1fffe03f,0xffff8000, 0x7,0x8000003c,0x3,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffff,0xfe000000,0x0,0x0,0x3fffdf8,0xe1c00,0x0,0x0,0x0,0x0,0x1c1, 0xc000000f,0x7070,0x7fffc0,0x3c0001e1,0xe0000f0f,0x7878,0x3c3c0,0x1e1e00,0xf1e007,0xffc01fff,0xf007ffff,0xc03ffffe,0x1fffff0, 0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01fff,0xf000f001,0xfc007fff,0x3fff8,0x1fffc0,0xfffe00,0x7fff000,0x3b,0xfffc003f, 0xfff001ff,0xff800fff,0xfc007fff,0xe0000780,0x1e0000,0xf3fff8,0xffff780,0x7fffbc03,0xfffde01f,0xffef00ff,0xff7807ff,0xfbc0ffff, 0xff800fff,0xf001ffff,0x800ffffc,0x7fffe0,0x3ffff00,0xfffffc07,0xffffe03f,0xffff01ff,0xfff803ff,0xfc003c00,0x3c00ffff,0x7fff8, 0x3fffc0,0x1fffe00,0xffff000,0x1f,0xfffc001f,0xffbc00ff,0xfde007ff,0xef003fff,0x780007e0,0x1ffffc,0x1f800,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1e,0x700003f, 0xffc00000,0x7fc01fff,0x9f800000,0xf80,0xf800,0x0,0x0,0xfc0000,0x0,0x7e0000f0,0xff,0xf8000fff,0xfc03ffff,0xf83ffff8,0x780, 0xffffe00,0x7fff000,0xf000003,0xfffe001f,0xffc00007,0xe000003f,0x0,0x0,0x0,0x3c000,0xf000003,0xe0000f83,0xffff0000,0xffff01ff, 0xfc0003ff,0xffe01e00,0xfff,0xf01e0007,0x803ffff0,0x7fffc00,0x3c0007c0,0x7ffffe1e,0xf078,0x7e003f,0xff000780,0x7ff,0xe0078000, 0x3c3ffff8,0xf000,0x1fffe00,0x7e0000,0xf803e03e,0x1f000,0x780003ff,0xfffc003c,0x7,0x800001e0,0x0,0x0,0x0,0x3fff3c01,0xefff8000, 0x7ffe001f,0xff78007f,0xff80003c,0x1ffc,0xf0078007,0x807ffffe,0xf000,0x78007c0,0x3ff00f,0x3c0f01e,0x1e003f,0xff0007bf,0xfe000fff, 0xbc003c00,0xffff8,0xfff0,0xfff3c0,0x7e0000,0x7c07c01f,0x7c000,0x7c0001ff,0xffe0001e,0xf0,0x780,0x0,0x0,0x3fff80,0x380000, 0x3e000000,0x7c00003e,0x7801f07,0xc1e00018,0xc0,0x0,0x39c1ce,0x7ffff00,0x1c0000,0xfffff80,0x380003f,0xffffc000,0xe0000007, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff,0xff000007,0x1ffcf,0xfe000380,0x1ffffe,0x1e000,0x0,0x780000,0xfffe03f,0xffff8000,0x7, 0x8000003c,0x3,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffff,0xfe000000,0x0,0x0,0x3dffdf8,0xe1c00,0x0,0x0,0x0,0x0,0x381, 0xc000001e,0xe070,0x7fff80,0x7c0001f3,0xe0000f9f,0x7cf8,0x3e7c0,0x1f3e00,0xfbe007,0xffc00fff,0xf007ffff,0xc03ffffe,0x1fffff0, 0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01fff,0xc000f000,0xfc007ffe,0x3fff0,0x1fff80,0xfffc00,0x7ffe000,0x79,0xfff8001f, 0xffe000ff,0xff0007ff,0xf8003fff,0xc0000780,0x1e0000,0xf3fff0,0x7ffe780,0x3fff3c01,0xfff9e00f,0xffcf007f,0xfe7803ff,0xf3c07ff3, 0xff8007ff,0xe000ffff,0x7fff8,0x3fffc0,0x1fffe00,0xfffffc07,0xffffe03f,0xffff01ff,0xfff801ff,0xf8003c00,0x3c007ffe,0x3fff0, 0x1fff80,0xfffc00,0x7ffe000,0x1d,0xfff8000f,0xff3c007f,0xf9e003ff,0xcf001ffe,0x780007c0,0x1efff8,0x1f000,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x1e,0xf000003, 0xfe000000,0x1f000fff,0xfc00000,0x780,0xf000,0x0,0x0,0xf80000,0x0,0x7e0001e0,0x7f,0xf0000fff,0xfc03ffff,0xf81ffff0,0x780, 0x7fff800,0x1ffe000,0x1f000000,0xfff8001f,0xff000007,0xe000003e,0x0,0x0,0x0,0x3c000,0xf800003,0xc0000783,0xfff80000,0x3ffe01ff, 0xe00003ff,0xffe01e00,0x7ff,0xc01e0007,0x803ffff0,0x3fff800,0x3c0003c0,0x7ffffe1e,0xf078,0x7e000f,0xfe000780,0x3ff,0xc0078000, 0x3e1fffe0,0xf000,0x7ff800,0x7e0000,0xf803e07c,0xf800,0x780003ff,0xfffc003c,0x3,0xc00001e0,0x0,0x0,0x0,0xffe3c01,0xe7ff0000, 0x3ffc000f,0xfe78003f,0xfe00003c,0x7f0,0xf0078007,0x807ffffe,0xf000,0x78003e0,0xff00f,0x3c0f01e,0x1e001f,0xfe00079f,0xfc0007ff, 0x3c003c00,0x7ffe0,0x1ff0,0x7fe3c0,0x7e0000,0x7c07c03e,0x3e000,0x7c0001ff,0xffe0001e,0xf0,0x780,0x0,0x0,0xfff00,0x100000, 0x3e000000,0x7800003c,0xf800f07,0xc1e00018,0xc0,0x0,0x1f80fc,0x3fffc00,0xc0000,0x3ffff80,0x100003f,0xffffc000,0x40000002, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xfc000006,0xff87,0xfc000100,0x1ffffe,0x1e000,0x0,0x780000,0x3ffc03f,0xffff8000,0x7, 0x8000003c,0x3,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffff,0xfe000000,0x0,0x0,0x3dff9f8,0xe1c00,0x0,0x0,0x0,0x0,0x3ff, 0xf800003c,0xfffe,0x1ffe00,0x780000f3,0xc000079e,0x3cf0,0x1e780,0xf3c00,0x7bc007,0xffc003ff,0xe007ffff,0xc03ffffe,0x1fffff0, 0xfffff80,0x7fffe003,0xffff001f,0xfff800ff,0xffc01ffc,0xf000,0xfc001ffc,0xffe0,0x7ff00,0x3ff800,0x1ffc000,0x70,0xfff00007, 0xff80003f,0xfc0001ff,0xe0000fff,0x780,0x1e0000,0xf3ffe0,0x1ffc780,0xffe3c00,0x7ff1e003,0xff8f001f,0xfc7800ff,0xe3c03fe1, 0xff0003ff,0xc0007ffc,0x3ffe0,0x1fff00,0xfff800,0xfffffc07,0xffffe03f,0xffff01ff,0xfff800ff,0xf0003c00,0x3c003ffc,0x1ffe0, 0xfff00,0x7ff800,0x3ffc000,0x38,0xfff00007,0xfe3c003f,0xf1e001ff,0x8f000ffc,0x780007c0,0x1e7ff0,0x1f000,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000, 0x1fc,0x0,0x780,0xf000,0x0,0x0,0x1f80000,0x0,0x1e0,0x1f,0xc0000000,0x0,0x1ff80,0x0,0xffc000,0x7f8000,0x0,0x3fe00007,0xfc000000, 0x7e,0x0,0x0,0x0,0x0,0x7c00000,0x0,0x0,0xff00000,0x0,0x0,0xfe,0x0,0x0,0x3fc000,0x0,0x0,0x0,0x3,0xf8000000,0xff,0xc0000000, 0x1ff00,0x0,0x1fe000,0x0,0x0,0x0,0x0,0x3c,0x3,0xc00001e0,0x0,0x0,0x0,0x3f80000,0x1fc0000,0x7f00003,0xf8000007,0xf0000000, 0x0,0xf0000000,0x0,0xf000,0x0,0x0,0x0,0x7,0xf8000787,0xf00001fc,0x3c000000,0x7f80,0x0,0x1f8000,0x0,0x0,0x0,0x7c000000,0x1e, 0xf0,0x780,0x0,0x0,0x3fc00,0x0,0x3c000000,0x7800003c,0xf000601,0xc00018,0xc0,0x0,0x0,0x3fe000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0xf,0xf0000000,0x7e03,0xf0000000,0x0,0x0,0x0,0x0,0xfe0000,0x0,0x0,0x3c,0x2007,0x80000000,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c7e0f0,0xe1c00,0x0,0x3800000,0x0,0x0,0x3ff,0xf8000078,0xfffe,0x7f800,0x0,0x0,0x0,0x0, 0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f0,0x3f80,0x1fc00,0xfe000,0x7f0000,0x70,0x3fc00001,0xfe00000f,0xf000007f, 0x800003fc,0x0,0x0,0xff00,0x7f0000,0x3f80000,0x1fc00000,0xfe000007,0xf000003f,0x80001f80,0xfc00007f,0xfe0,0x7f00,0x3f800, 0x1fc000,0x0,0x0,0x0,0x3f,0xc0000000,0xff0,0x7f80,0x3fc00,0x1fe000,0xff0000,0x78,0x3fc00001,0xf800000f,0xc000007e,0x3f0,0x7c0, 0x1e1fc0,0x1f000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x3c0,0x1e000,0x0,0x0,0x1f00000,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x7c,0x0,0x0,0x0,0x0,0x3e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0xe0000000,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x3c,0x1,0xe00001e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0000000,0x0,0xf000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x78000000,0x1e,0xf0,0x780,0x0,0x0,0x0,0x0,0x3c000000,0x78000078,0xf000000,0x18,0xc0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180000,0x0,0x0,0x3c,0x3c0f,0x80000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0xe1c00,0x0,0x1800000,0x0,0x0,0x3ff,0xf80000f0,0xfffe,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x0,0x780,0x1e0000,0x1e000,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000, 0x0,0x0,0x3c0,0x1e000,0x0,0x0,0x1f00000,0x0,0x3c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c,0x0,0x0,0x0,0x0,0x1f80000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xf0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x1,0xe00001e0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xe0000000,0x0,0xf000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x0,0xf8000000, 0x1f,0xf0,0xf80,0x0,0x0,0x0,0x0,0x78000000,0xf8000078,0x1e000000,0x8,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180000,0x0,0x0,0x3c,0x3fff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x3c00000,0xe1c00,0x0,0x1c00000,0x0,0x0,0x1,0xc00001e0,0x70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf80,0x1e0000,0x3e000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x1e0,0x3c000,0x0,0x0,0x1f00000, 0x0,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c,0x0,0x0,0x0,0x0,0xfe0100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0xf8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0xf0000000,0xf0007fe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xe0000000, 0x0,0xf000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x0,0xf0000000,0x1f,0x800000f0,0x1f80,0x0,0x0,0x0,0x0, 0x78000000,0xf0000070,0x1c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x180000,0x0,0x0,0x3c,0x3ffe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0xe1c00,0x0,0xe00000, 0x0,0x0,0x1,0xc00003ff,0xe0000070,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0xf00,0x1e0000,0x3c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x1e0,0x7c000,0x0,0x0,0x1e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x0,0x7fff80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x78000000, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0xf0000000,0x7fe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4003,0xe0000000,0x0,0x1f000,0x0,0x0, 0x0,0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x1,0xf0000000,0xf,0xfc0000f0,0x3ff00,0x0,0x0,0x0,0x0,0x70000001,0xf00000e0, 0x1c000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180000, 0x0,0x0,0x3c,0xff8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0xe1c00,0x0,0xe00000,0x0,0x0,0x1,0xc00003ff, 0xe0000070,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f00,0x1e0000, 0x7c000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0xf0,0x78000,0x0,0x0,0x3e00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8,0x0, 0x0,0x0,0x0,0x1fff80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f, 0xf0000000,0x7fe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780f,0xc0000000,0x0,0x3e000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0, 0x0,0x0,0x0,0x0,0x3,0xe0000000,0xf,0xfc0000f0,0x3ff00,0x0,0x0,0x0,0x0,0xf0000103,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180000,0x0,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x0,0x0,0x21e00000,0x0,0x0,0x1,0xc00003ff,0xe0000070,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10f, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10f,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3e00,0x1e0000,0xf8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0, 0xf8,0xf8000,0x0,0x0,0x3c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0,0x0,0x0,0x0,0x0,0x1fe00,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0xf0000000,0x7fe0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x7fff,0xc0000000,0x0,0x3ffe000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x7f,0xe0000000,0x7,0xfc0000f0, 0x3fe00,0x0,0x0,0x0,0x0,0x600001ff,0xe0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180000,0x0,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x0,0x0, 0x3fe00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x7fe00,0x1e0000,0x1ff8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x1fffffe0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fff,0x80000000,0x0,0x3ffc000,0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0, 0x0,0x0,0x0,0x0,0x7f,0xc0000000,0x0,0xfc0000f0,0x3f000,0x0,0x0,0x0,0x0,0x1ff,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x3c00000,0x0,0x0,0x3fc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fe,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fe,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fc00,0x1e0000,0x1ff0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fffffe0,0x0,0x0,0x0,0x0,0x0,0x0,0x3ffe,0x0,0x0,0x3ff8000,0x0,0x0,0x0, 0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x7f,0x80000000,0x0,0xf0,0x0,0x0,0x0,0x0,0x0,0x1ff,0x80000000,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x0,0x0,0x3f800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fc,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fc,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f800,0x1e0000,0x1fe0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fffffe0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f8,0x0,0x0,0x3fe0000, 0x0,0x0,0x0,0x0,0x780,0x0,0x3c000000,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0xf0,0x0,0x0,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e000,0x1e0000,0x1f80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1fffffe0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 }; // Define a 40x38 'danger' color logo (used by cimg::dialog()). const unsigned char logo40x38[4576] = { 177,200,200,200,3,123,123,0,36,200,200,200,1,123,123,0,2,255,255,0,1,189,189,189,1,0,0,0,34,200,200,200, 1,123,123,0,4,255,255,0,1,189,189,189,1,0,0,0,1,123,123,123,32,200,200,200,1,123,123,0,5,255,255,0,1,0,0, 0,2,123,123,123,30,200,200,200,1,123,123,0,6,255,255,0,1,189,189,189,1,0,0,0,2,123,123,123,29,200,200,200, 1,123,123,0,7,255,255,0,1,0,0,0,2,123,123,123,28,200,200,200,1,123,123,0,8,255,255,0,1,189,189,189,1,0,0,0, 2,123,123,123,27,200,200,200,1,123,123,0,9,255,255,0,1,0,0,0,2,123,123,123,26,200,200,200,1,123,123,0,10,255, 255,0,1,189,189,189,1,0,0,0,2,123,123,123,25,200,200,200,1,123,123,0,3,255,255,0,1,189,189,189,3,0,0,0,1,189, 189,189,3,255,255,0,1,0,0,0,2,123,123,123,24,200,200,200,1,123,123,0,4,255,255,0,5,0,0,0,3,255,255,0,1,189, 189,189,1,0,0,0,2,123,123,123,23,200,200,200,1,123,123,0,4,255,255,0,5,0,0,0,4,255,255,0,1,0,0,0,2,123,123,123, 22,200,200,200,1,123,123,0,5,255,255,0,5,0,0,0,4,255,255,0,1,189,189,189,1,0,0,0,2,123,123,123,21,200,200,200, 1,123,123,0,5,255,255,0,5,0,0,0,5,255,255,0,1,0,0,0,2,123,123,123,20,200,200,200,1,123,123,0,6,255,255,0,5,0,0, 0,5,255,255,0,1,189,189,189,1,0,0,0,2,123,123,123,19,200,200,200,1,123,123,0,6,255,255,0,1,123,123,0,3,0,0,0,1, 123,123,0,6,255,255,0,1,0,0,0,2,123,123,123,18,200,200,200,1,123,123,0,7,255,255,0,1,189,189,189,3,0,0,0,1,189, 189,189,6,255,255,0,1,189,189,189,1,0,0,0,2,123,123,123,17,200,200,200,1,123,123,0,8,255,255,0,3,0,0,0,8,255,255, 0,1,0,0,0,2,123,123,123,16,200,200,200,1,123,123,0,9,255,255,0,1,123,123,0,1,0,0,0,1,123,123,0,8,255,255,0,1,189, 189,189,1,0,0,0,2,123,123,123,15,200,200,200,1,123,123,0,9,255,255,0,1,189,189,189,1,0,0,0,1,189,189,189,9,255,255, 0,1,0,0,0,2,123,123,123,14,200,200,200,1,123,123,0,11,255,255,0,1,0,0,0,10,255,255,0,1,189,189,189,1,0,0,0,2,123, 123,123,13,200,200,200,1,123,123,0,23,255,255,0,1,0,0,0,2,123,123,123,12,200,200,200,1,123,123,0,11,255,255,0,1,189, 189,189,2,0,0,0,1,189,189,189,9,255,255,0,1,189,189,189,1,0,0,0,2,123,123,123,11,200,200,200,1,123,123,0,11,255,255, 0,4,0,0,0,10,255,255,0,1,0,0,0,2,123,123,123,10,200,200,200,1,123,123,0,12,255,255,0,4,0,0,0,10,255,255,0,1,189,189, 189,1,0,0,0,2,123,123,123,9,200,200,200,1,123,123,0,12,255,255,0,1,189,189,189,2,0,0,0,1,189,189,189,11,255,255,0,1, 0,0,0,2,123,123,123,9,200,200,200,1,123,123,0,27,255,255,0,1,0,0,0,3,123,123,123,8,200,200,200,1,123,123,0,26,255, 255,0,1,189,189,189,1,0,0,0,3,123,123,123,9,200,200,200,1,123,123,0,24,255,255,0,1,189,189,189,1,0,0,0,4,123,123, 123,10,200,200,200,1,123,123,0,24,0,0,0,5,123,123,123,12,200,200,200,27,123,123,123,14,200,200,200,25,123,123,123,86, 200,200,200,91,49,124,118,124,71,32,124,95,49,56,114,52,82,121,0}; //! Get/set default output stream for the \CImg library messages. /** \param file Desired output stream. Set to \c 0 to get the currently used output stream only. \return Currently used output stream. **/ inline std::FILE* output(std::FILE *file) { cimg::mutex(1); static std::FILE *res = stderr; if (file) res = file; cimg::mutex(1,0); return res; } // Return number of available CPU cores. inline unsigned int nb_cpus() { unsigned int res = 1; #if cimg_OS==2 SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); res = (unsigned int)sysinfo.dwNumberOfProcessors; #else res = (unsigned int)sysconf(_SC_NPROCESSORS_ONLN); #endif return res?res:1U; } // Lock/unlock mutex for CImg multi-thread programming. inline int mutex(const unsigned int n, const int lock_mode) { switch (lock_mode) { case 0 : cimg::Mutex_attr().unlock(n); return 0; case 1 : cimg::Mutex_attr().lock(n); return 0; default : return cimg::Mutex_attr().trylock(n); } } //! Display a warning message on the default output stream. /** \param format C-string containing the format of the message, as with std::printf(). \note If configuration macro \c cimg_strict_warnings is set, this function throws a \c CImgWarningException instead. \warning As the first argument is a format string, it is highly recommended to write \code cimg::warn("%s",warning_message); \endcode instead of \code cimg::warn(warning_message); \endcode if \c warning_message can be arbitrary, to prevent nasty memory access. **/ inline void warn(const char *const format, ...) { if (cimg::exception_mode()>=1) { char message[16384] = { 0 }; std::va_list ap; va_start(ap,format); cimg_vsnprintf(message,sizeof(message),format,ap); va_end(ap); #ifdef cimg_strict_warnings throw CImgWarningException(message); #else std::fprintf(cimg::output(),"\n%s[CImg] *** Warning ***%s%s",cimg::t_red,cimg::t_normal,message); #endif } } // Execute an external system command. /** \param command C-string containing the command line to execute. \param module_name Module name. \return Status value of the executed command, whose meaning is OS-dependent. \note This function is similar to std::system() but it does not open an extra console windows on Windows-based systems. **/ inline int system(const char *const command, const char *const module_name=0) { #ifdef cimg_no_system_calls return -1; #else #if cimg_OS==2 PROCESS_INFORMATION pi; STARTUPINFO si; std::memset(&pi,0,sizeof(PROCESS_INFORMATION)); std::memset(&si,0,sizeof(STARTUPINFO)); GetStartupInfo(&si); si.cb = sizeof(si); si.wShowWindow = SW_HIDE; si.dwFlags |= SW_HIDE | STARTF_USESHOWWINDOW; const BOOL res = CreateProcess((LPCTSTR)module_name,(LPTSTR)command,0,0,FALSE,0,0,0,&si,&pi); if (res) { WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return 0; } else #endif return std::system(command); return module_name?0:1; #endif } //! Return a reference to a temporary variable of type T. template inline T& temporary(const T&) { static T temp; return temp; } //! Exchange values of variables \c a and \c b. template inline void swap(T& a, T& b) { T t = a; a = b; b = t; } //! Exchange values of variables (\c a1,\c a2) and (\c b1,\c b2). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2) { cimg::swap(a1,b1); cimg::swap(a2,b2); } //! Exchange values of variables (\c a1,\c a2,\c a3) and (\c b1,\c b2,\c b3). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3) { cimg::swap(a1,b1,a2,b2); cimg::swap(a3,b3); } //! Exchange values of variables (\c a1,\c a2,...,\c a4) and (\c b1,\c b2,...,\c b4). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3, T4& a4, T4& b4) { cimg::swap(a1,b1,a2,b2,a3,b3); cimg::swap(a4,b4); } //! Exchange values of variables (\c a1,\c a2,...,\c a5) and (\c b1,\c b2,...,\c b5). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3, T4& a4, T4& b4, T5& a5, T5& b5) { cimg::swap(a1,b1,a2,b2,a3,b3,a4,b4); cimg::swap(a5,b5); } //! Exchange values of variables (\c a1,\c a2,...,\c a6) and (\c b1,\c b2,...,\c b6). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3, T4& a4, T4& b4, T5& a5, T5& b5, T6& a6, T6& b6) { cimg::swap(a1,b1,a2,b2,a3,b3,a4,b4,a5,b5); cimg::swap(a6,b6); } //! Exchange values of variables (\c a1,\c a2,...,\c a7) and (\c b1,\c b2,...,\c b7). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3, T4& a4, T4& b4, T5& a5, T5& b5, T6& a6, T6& b6, T7& a7, T7& b7) { cimg::swap(a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6); cimg::swap(a7,b7); } //! Exchange values of variables (\c a1,\c a2,...,\c a8) and (\c b1,\c b2,...,\c b8). template inline void swap(T1& a1, T1& b1, T2& a2, T2& b2, T3& a3, T3& b3, T4& a4, T4& b4, T5& a5, T5& b5, T6& a6, T6& b6, T7& a7, T7& b7, T8& a8, T8& b8) { cimg::swap(a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7); cimg::swap(a8,b8); } //! Return the endianness of the current architecture. /** \return \c false for Little Endian or \c true for Big Endian. **/ inline bool endianness() { const int x = 1; return ((unsigned char*)&x)[0]?false:true; } //! Reverse endianness of all elements in a memory buffer. /** \param[in,out] buffer Memory buffer whose endianness must be reversed. \param size Number of buffer elements to reverse. **/ template inline void invert_endianness(T* const buffer, const unsigned long size) { if (size) switch (sizeof(T)) { case 1 : break; case 2 : { for (unsigned short *ptr = (unsigned short*)buffer+size; ptr>(unsigned short*)buffer; ) { const unsigned short val = *(--ptr); *ptr = (unsigned short)((val>>8)|((val<<8))); } } break; case 4 : { for (unsigned int *ptr = (unsigned int*)buffer+size; ptr>(unsigned int*)buffer; ) { const unsigned int val = *(--ptr); *ptr = (val>>24)|((val>>8)&0xff00)|((val<<8)&0xff0000)|(val<<24); } } break; default : { for (T* ptr = buffer+size; ptr>buffer; ) { unsigned char *pb = (unsigned char*)(--ptr), *pe = pb + sizeof(T); for (int i = 0; i<(int)sizeof(T)/2; ++i) swap(*(pb++),*(--pe)); } } } } //! Reverse endianness of a single variable. /** \param[in,out] a Variable to reverse. \return Reference to reversed variable. **/ template inline T& invert_endianness(T& a) { invert_endianness(&a,1); return a; } // Conversion functions to get more precision when trying to store unsigned ints values as floats. inline unsigned int float2uint(const float f) { int tmp = 0; std::memcpy(&tmp,&f,sizeof(float)); if (tmp>=0) return (unsigned int)f; unsigned int u; std::memcpy(&u,&f,sizeof(float)); // use memcpy instead of assignment to avoid undesired optimizations by C++-compiler. return ((u)<<1)>>1; // set sign bit to 0. } inline float uint2float(const unsigned int u) { if (u<(1U<<19)) return (float)u; // Consider safe storage of unsigned int as floats until 19bits (i.e 524287). float f; const unsigned int v = u|(1U<<(8*sizeof(unsigned int)-1)); // set sign bit to 1. std::memcpy(&f,&v,sizeof(float)); // use memcpy instead of simple assignment to avoid undesired optimizations by C++-compiler. return f; } //! Return the value of a system timer, with a millisecond precision. /** \note The timer does not necessarily starts from \c 0. **/ inline unsigned long time() { #if cimg_OS==1 struct timeval st_time; gettimeofday(&st_time,0); return (unsigned long)(st_time.tv_usec/1000 + st_time.tv_sec*1000); #elif cimg_OS==2 SYSTEMTIME st_time; GetSystemTime(&st_time); return (unsigned long)(st_time.wMilliseconds + 1000*(st_time.wSecond + 60*(st_time.wMinute + 60*st_time.wHour))); #else return 0; #endif } // Implement a tic/toc mechanism to display elapsed time of algorithms. inline unsigned long tictoc(const bool is_tic) { cimg::mutex(2); static unsigned long t0 = 0; const unsigned long t = cimg::time(); if (is_tic) { cimg::mutex(2,0); return (t0 = t); } const unsigned long dt = t>=t0?(t - t0):cimg::type::max(); const unsigned int edays = (unsigned int)(dt/86400000.0), ehours = (unsigned int)((dt - edays*86400000.0)/3600000.0), emin = (unsigned int)((dt - edays*86400000.0 - ehours*3600000.0)/60000.0), esec = (unsigned int)((dt - edays*86400000.0 - ehours*3600000.0 - emin*60000.0)/1000.0), ems = (unsigned int)(dt - edays*86400000.0 - ehours*3600000.0 - emin*60000.0 - esec*1000.0); if (!edays && !ehours && !emin && !esec) std::fprintf(cimg::output(),"%s[CImg] Elapsed time: %u ms%s\n",cimg::t_red,ems,cimg::t_normal); else { if (!edays && !ehours && !emin) std::fprintf(cimg::output(),"%s[CImg] Elapsed time: %u sec %u ms%s\n",cimg::t_red,esec,ems,cimg::t_normal); else { if (!edays && !ehours) std::fprintf(cimg::output(),"%s[CImg] Elapsed time: %u min %u sec %u ms%s\n",cimg::t_red,emin,esec,ems,cimg::t_normal); else{ if (!edays) std::fprintf(cimg::output(),"%s[CImg] Elapsed time: %u hours %u min %u sec %u ms%s\n",cimg::t_red,ehours,emin,esec,ems,cimg::t_normal); else{ std::fprintf(cimg::output(),"%s[CImg] Elapsed time: %u days %u hours %u min %u sec %u ms%s\n",cimg::t_red,edays,ehours,emin,esec,ems,cimg::t_normal); } } } } cimg::mutex(2,0); return t; } //! Start tic/toc timer for time measurement between code instructions. /** \return Current value of the timer (same value as time()). **/ inline unsigned long tic() { return cimg::tictoc(true); } //! End tic/toc timer and displays elapsed time from last call to tic(). /** \return Time elapsed (in ms) since last call to tic(). **/ inline unsigned long toc() { return cimg::tictoc(false); } //! Sleep for a given numbers of milliseconds. /** \param milliseconds Number of milliseconds to wait for. \note This function frees the CPU ressources during the sleeping time. It can be used to temporize your program properly, without wasting CPU time. **/ inline void sleep(const unsigned int milliseconds) { #if cimg_OS==1 struct timespec tv; tv.tv_sec = milliseconds/1000; tv.tv_nsec = (milliseconds%1000)*1000000; nanosleep(&tv,0); #elif cimg_OS==2 Sleep(milliseconds); #endif } inline unsigned int _wait(const unsigned int milliseconds, unsigned long& timer) { if (!timer) timer = cimg::time(); const unsigned long current_time = cimg::time(); if (current_time>=timer+milliseconds) { timer = current_time; return 0; } const unsigned long time_diff = timer + milliseconds - current_time; timer = current_time + time_diff; cimg::sleep(time_diff); return (unsigned int)time_diff; } //! Wait for a given number of milliseconds since the last call to wait(). /** \param milliseconds Number of milliseconds to wait for. \return Number of milliseconds elapsed since the last call to wait(). \note Same as sleep() with a waiting time computed with regard to the last call of wait(). It may be used to temporize your program properly, without wasting CPU time. **/ inline unsigned int wait(const unsigned int milliseconds) { cimg::mutex(3); static unsigned long timer = 0; if (!timer) timer = cimg::time(); cimg::mutex(3,0); return _wait(milliseconds,timer); } // Random number generators. // CImg may use its own Random Number Generator (RNG) if configuration macro 'cimg_use_rng' is set. // Use it for instance when you have to deal with concurrent threads trying to call std::srand() // at the same time! #ifdef cimg_use_rng #include // Use a custom RNG. inline unsigned int _rand(const unsigned int seed=0, const bool set_seed=false) { static unsigned long next = 1; cimg::mutex(4); if (set_seed) next = (unsigned long)seed; next = next*1103515245 + 12345 + rand(); cimg::mutex(4,0); return (unsigned int)((next>>16)&0x7FFF); } inline void srand() { const unsigned int t = (unsigned int)cimg::time(); #if cimg_OS==1 cimg::_rand(t+(unsigned int)getpid(),true); #elif cimg_OS==2 cimg::_rand(t+(unsigned int)_getpid(),true); #else cimg::_rand(t,true); #endif } inline void srand(const unsigned int seed) { _rand(seed,true); } inline double rand() { return cimg::_rand()/32767.; } #else // Use the system RNG. inline void srand() { const unsigned int t = (unsigned int)cimg::time(); #if cimg_OS==1 std::srand(t+(unsigned int)getpid()); #elif cimg_OS==2 std::srand(t+(unsigned int)_getpid()); #else std::srand(t); #endif } inline void srand(const unsigned int seed) { std::srand(seed); } //! Return a random variable between [0,1] with respect to an uniform distribution. /** **/ inline double rand() { return (double)std::rand()/RAND_MAX; } #endif //! Return a random variable between [-1,1] with respect to an uniform distribution. /** **/ inline double crand() { return 1-2*cimg::rand(); } //! Return a random variable following a gaussian distribution and a standard deviation of 1. /** **/ inline double grand() { double x1, w; do { const double x2 = 2*cimg::rand() - 1.0; x1 = 2*cimg::rand()-1.0; w = x1*x1 + x2*x2; } while (w<=0 || w>=1.0); return x1*std::sqrt((-2*std::log(w))/w); } //! Return a random variable following a Poisson distribution of parameter z. /** **/ inline unsigned int prand(const double z) { if (z<=1.0e-10) return 0; if (z>100) return (unsigned int)((std::sqrt(z) * cimg::grand()) + z); unsigned int k = 0; const double y = std::exp(-z); for (double s = 1.0; s>=y; ++k) s*=cimg::rand(); return k-1; } //! Bitwise-rotate value on the left. template inline T rol(const T a, const unsigned int n=1) { return n?(T)((a<>((sizeof(T)<<3)-n))):a; } inline float rol(const float a, const unsigned int n=1) { return (float)rol((int)a,n); } inline double rol(const double a, const unsigned int n=1) { return (double)rol((long)a,n); } //! Bitwise-rotate value on the right. template inline T ror(const T a, const unsigned int n=1) { return n?(T)((a>>n)|(a<<((sizeof(T)<<3)-n))):a; } inline float ror(const float a, const unsigned int n=1) { return (float)ror((int)a,n); } inline double ror(const double a, const unsigned int n=1) { return (double)ror((long)a,n); } //! Return absolute value of a value. template inline T abs(const T a) { return a>=0?a:-a; } inline bool abs(const bool a) { return a; } inline unsigned char abs(const unsigned char a) { return a; } inline unsigned short abs(const unsigned short a) { return a; } inline unsigned int abs(const unsigned int a) { return a; } inline unsigned long abs(const unsigned long a) { return a; } inline double abs(const double a) { return std::fabs(a); } inline float abs(const float a) { return (float)std::fabs((double)a); } inline int abs(const int a) { return std::abs(a); } //! Return square of a value. template inline T sqr(const T val) { return val*val; } //! Return 1 + log_10(x) of a value \c x. inline int xln(const int x) { return x>0?(int)(1+std::log10((double)x)):1; } //! Return the minimum between two values. template inline typename cimg::superset::type min(const t1& a, const t2& b) { typedef typename cimg::superset::type t1t2; return (t1t2)(a<=b?a:b); } //! Return the minimum between three values. template inline typename cimg::superset2::type min(const t1& a, const t2& b, const t3& c) { typedef typename cimg::superset2::type t1t2t3; return (t1t2t3)cimg::min(cimg::min(a,b),c); } //! Return the minimum between four values. template inline typename cimg::superset3::type min(const t1& a, const t2& b, const t3& c, const t4& d) { typedef typename cimg::superset3::type t1t2t3t4; return (t1t2t3t4)cimg::min(cimg::min(a,b,c),d); } //! Return the maximum between two values. template inline typename cimg::superset::type max(const t1& a, const t2& b) { typedef typename cimg::superset::type t1t2; return (t1t2)(a>=b?a:b); } //! Return the maximum between three values. template inline typename cimg::superset2::type max(const t1& a, const t2& b, const t3& c) { typedef typename cimg::superset2::type t1t2t3; return (t1t2t3)cimg::max(cimg::max(a,b),c); } //! Return the maximum between four values. template inline typename cimg::superset3::type max(const t1& a, const t2& b, const t3& c, const t4& d) { typedef typename cimg::superset3::type t1t2t3t4; return (t1t2t3t4)cimg::max(cimg::max(a,b,c),d); } //! Return the sign of a value. template inline T sign(const T x) { return (x<0)?(T)(-1):(x==0?(T)0:(T)1); } //! Return the nearest power of 2 higher than given value. template inline unsigned long nearest_pow2(const T x) { unsigned long i = 1; while (x>i) i<<=1; return i; } //! Return the sinc of a given value. inline double sinc(const double x) { return x?std::sin(x)/x:1; } //! Return the modulo of a value. /** \param x Input value. \param m Modulo value. \note This modulo function accepts negative and floating-points modulo numbers, as well as variables of any type. **/ template inline T mod(const T& x, const T& m) { const double dx = (double)x, dm = (double)m; return (T)(dx - dm * std::floor(dx / dm)); } inline int mod(const bool x, const bool m) { return m?(x?1:0):0; } inline int mod(const char x, const char m) { return x>=0?x%m:(x%m?m+x%m:0); } inline int mod(const short x, const short m) { return x>=0?x%m:(x%m?m+x%m:0); } inline int mod(const int x, const int m) { return x>=0?x%m:(x%m?m+x%m:0); } inline int mod(const long x, const long m) { return x>=0?x%m:(x%m?m+x%m:0); } inline int mod(const unsigned char x, const unsigned char m) { return x%m; } inline int mod(const unsigned short x, const unsigned short m) { return x%m; } inline int mod(const unsigned int x, const unsigned int m) { return x%m; } inline int mod(const unsigned long x, const unsigned long m) { return x%m; } //! Return the min-mod of two values. /** \note minmod(\p a,\p b) is defined to be: - minmod(\p a,\p b) = min(\p a,\p b), if \p a and \p b have the same sign. - minmod(\p a,\p b) = 0, if \p a and \p b have different signs. **/ template inline T minmod(const T a, const T b) { return a*b<=0?0:(a>0?(a inline T round(const T x, const double y=1, const int rounding_type=0) { if (y<=0) return x; const double sx = (double)x/y, floor = std::floor(sx), delta = sx - floor; return (T)(y*(rounding_type<0?floor:rounding_type>0?std::ceil(sx):delta<0.5?floor:std::ceil(sx))); } inline double _pythagore(double a, double b) { const double absa = cimg::abs(a), absb = cimg::abs(b); if (absa>absb) { const double tmp = absb/absa; return absa*std::sqrt(1.0+tmp*tmp); } else { const double tmp = absa/absb; return absb==0?0:absb*std::sqrt(1.0+tmp*tmp); } } //! Convert ascii character to lower case. inline char uncase(const char x) { return (char)((x<'A'||x>'Z')?x:x-'A'+'a'); } //! Convert C-string to lower case. inline void uncase(char *const str) { if (str) for (char *ptr = str; *ptr; ++ptr) *ptr = uncase(*ptr); } //! Read value in a C-string. /** \param str C-string containing the float value to read. \return Read value. \note Same as std::atof() extended to manage the retrieval of fractions from C-strings, as in "1/2". **/ inline double atof(const char *const str) { double x = 0, y = 1; if (!str) return 0; else { std::sscanf(str,"%lf/%lf",&x,&y); return x/y; } } //! Compare the first \p l characters of two C-strings, ignoring the case. /** \param str1 C-string. \param str2 C-string. \param l Number of characters to compare. \return \c 0 if the two strings are equal, something else otherwise. \note This function has to be defined since it is not provided by all C++-compilers (not ANSI). **/ inline int strncasecmp(const char *const str1, const char *const str2, const int l) { if (!l) return 0; if (!str1) return str2?-1:0; const char *nstr1 = str1, *nstr2 = str2; int k, diff = 0; for (k = 0; kp && str[q]==delimiter; ) { --q; if (!is_iterative) break; } } const int n = q - p + 1; if (n!=l) { std::memmove(str,str+p,n); str[n] = 0; return true; } return false; } //! Replace escape sequences in C-strings by their binary ascii values. /** \param[in,out] str C-string to work with (modified at output). **/ inline void strunescape(char *const str) { #define cimg_strunescape(ci,co) case ci: *nd = co; ++ns; break; unsigned int val = 0; for (char *ns = str, *nd = str; *ns || (bool)(*nd=0); ++nd) if (*ns=='\\') switch (*(++ns)) { cimg_strunescape('n','\n'); cimg_strunescape('t','\t'); cimg_strunescape('v','\v'); cimg_strunescape('b','\b'); cimg_strunescape('r','\r'); cimg_strunescape('f','\f'); cimg_strunescape('a','\a'); cimg_strunescape('\\','\\'); cimg_strunescape('\?','\?'); cimg_strunescape('\'','\''); cimg_strunescape('\"','\"'); case 0 : *nd = 0; break; case '0' : case '1' : case '2' : case '3' : case '4' : case '5' : case '6' : case '7' : std::sscanf(ns,"%o",&val); while (*ns>='0' && *ns<='7') ++ns; *nd = val; break; case 'x': std::sscanf(++ns,"%x",&val); while ((*ns>='0' && *ns<='7') || (*ns>='a' && *ns<='f') || (*ns>='A' && *ns<='F')) ++ns; *nd = val; break; default : *nd = *(ns++); } else *nd = *(ns++); } // Return a temporary string describing the size of a memory buffer. inline const char *strbuffersize(const unsigned long size) { static char res[256] = { 0 }; cimg::mutex(5); if (size<1024LU) cimg_snprintf(res,sizeof(res),"%lu byte%s",size,size>1?"s":""); else if (size<1024*1024LU) { const float nsize = size/1024.0f; cimg_snprintf(res,sizeof(res),"%.1f Kio",nsize); } else if (size<1024*1024*1024LU) { const float nsize = size/(1024*1024.0f); cimg_snprintf(res,sizeof(res),"%.1f Mio",nsize); } else { const float nsize = size/(1024*1024*1024.0f); cimg_snprintf(res,sizeof(res),"%.1f Gio",nsize); } cimg::mutex(5,0); return res; } //! Return the basename of a filename. inline const char* basename(const char *const str) { const char *p = 0; for (const char *np = str; np>=str && (p=np); np = std::strchr(np,cimg_file_separator)+1) {} return p; } // Return a random filename. inline const char* filenamerand() { cimg::mutex(6); static char randomid[9] = { 0 }; cimg::srand(); for (unsigned int k = 0; k<8; ++k) { const int v = (int)std::rand()%3; randomid[k] = (char)(v==0?('0'+(std::rand()%10)):(v==1?('a'+(std::rand()%26)):('A'+(std::rand()%26)))); } cimg::mutex(6,0); return randomid; } // Convert filename as a Windows-style filename (short path name). inline void winformat_string(char *const str) { if (str && *str) { #if cimg_OS==2 char *const nstr = new char[MAX_PATH]; if (GetShortPathNameA(str,nstr,MAX_PATH)) std::strcpy(str,nstr); #endif } } //! Open a file. /** \param path Path of the filename to open. \param mode C-string describing the opening mode. \return Opened file. \note Same as std::fopen() but throw a \c CImgIOException when the specified file cannot be opened, instead of returning \c 0. **/ inline std::FILE *fopen(const char *const path, const char *const mode) { if (!path) throw CImgArgumentException("cimg::fopen(): Specified file path is (null)."); if (!mode) throw CImgArgumentException("cimg::fopen(): File '%s', specified mode is (null).", path); std::FILE *res = 0; if (*path=='-' && (!path[1] || path[1]=='.')) { res = (*mode=='r')?stdin:stdout; #if cimg_OS==2 if (*mode && mode[1]=='b') { // Force stdin/stdout to be in binary mode. if (_setmode(_fileno(res),0x8000)==-1) res = 0; } #endif } else res = std::fopen(path,mode); if (!res) throw CImgIOException("cimg::fopen(): Failed to open file '%s' with mode '%s'.", path,mode); return res; } //! Close a file. /** \param file File to close. \return \c 0 if file has been closed properly, something else otherwise. \note Same as std::fclose() but display a warning message if the file has not been closed properly. **/ inline int fclose(std::FILE *file) { if (!file) warn("cimg::fclose(): Specified file is (null)."); if (!file || file==stdin || file==stdout) return 0; const int errn = std::fclose(file); if (errn!=0) warn("cimg::fclose(): Error code %d returned during file closing.", errn); return errn; } //! Get/set path to store temporary files. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path where temporary files can be saved. **/ inline const char* temporary_path(const char *const user_path=0, const bool reinit_path=false) { #define _cimg_test_temporary_path(p) \ if (!path_found) { \ cimg_snprintf(s_path,1024,"%s",p); \ cimg_snprintf(tmp,sizeof(tmp),"%s%c%s",s_path,cimg_file_separator,filetmp); \ if ((file=std::fopen(tmp,"wb"))!=0) { cimg::fclose(file); std::remove(tmp); path_found = true; } \ } static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; char tmp[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file = 0; cimg_snprintf(filetmp,sizeof(filetmp),"%s.tmp",cimg::filenamerand()); char *tmpPath = std::getenv("TMP"); if (!tmpPath) { tmpPath = std::getenv("TEMP"); winformat_string(tmpPath); } if (tmpPath) _cimg_test_temporary_path(tmpPath); #if cimg_OS==2 _cimg_test_temporary_path("C:\\WINNT\\Temp"); _cimg_test_temporary_path("C:\\WINDOWS\\Temp"); _cimg_test_temporary_path("C:\\Temp"); _cimg_test_temporary_path("C:"); _cimg_test_temporary_path("D:\\WINNT\\Temp"); _cimg_test_temporary_path("D:\\WINDOWS\\Temp"); _cimg_test_temporary_path("D:\\Temp"); _cimg_test_temporary_path("D:"); #else _cimg_test_temporary_path("/tmp"); _cimg_test_temporary_path("/var/tmp"); #endif if (!path_found) { *s_path = 0; std::strncpy(tmp,filetmp,sizeof(tmp)-1); if ((file=std::fopen(tmp,"wb"))!=0) { cimg::fclose(file); std::remove(tmp); path_found = true; } } if (!path_found) { cimg::mutex(7,0); throw CImgIOException("cimg::temporary_path(): Failed to locate path for writing temporary files.\n"); } } cimg::mutex(7,0); return s_path; } //! Get/set path to the Program Files/ directory (Windows only). /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the program files. **/ #if cimg_OS==2 inline const char* programfiles_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[MAX_PATH]; std::memset(s_path,0,MAX_PATH); // Note: in the following line, 0x26 = CSIDL_PROGRAM_FILES (not defined on every compiler). #if !defined(__INTEL_COMPILER) if (!SHGetSpecialFolderPathA(0,s_path,0x0026,false)) { const char *const pfPath = std::getenv("PROGRAMFILES"); if (pfPath) std::strncpy(s_path,pfPath,MAX_PATH-1); else std::strcpy(s_path,"C:\\PROGRA~1"); } #else std::strcpy(s_path,"C:\\PROGRA~1"); #endif } cimg::mutex(7,0); return s_path; } #endif //! Get/set path to the ImageMagick's \c convert binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c convert binary. **/ inline const char* imagemagick_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 const char *const pf_path = programfiles_path(); if (!path_found) { std::strcpy(s_path,".\\convert.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%.2d-\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%d-Q\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%d\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%.2d-\\VISUA~1\\BIN\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%d-Q\\VISUA~1\\BIN\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\IMAGEM~1.%d\\VISUA~1\\BIN\\convert.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%.2d-\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%d-Q\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%d\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%.2d-\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%d-Q\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\IMAGEM~1.%d\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%.2d-\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%d-Q\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%d\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%.2d-\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%d-Q\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\IMAGEM~1.%d\\VISUA~1\\BIN\\convert.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"convert.exe"); #else if (!path_found) { std::strcpy(s_path,"./convert"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"convert"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the GraphicsMagick's \c gm binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c gm binary. **/ inline const char* graphicsmagick_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 const char *const pf_path = programfiles_path(); if (!path_found) { std::strcpy(s_path,".\\gm.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%.2d-\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%d-Q\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%d\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%.2d-\\VISUA~1\\BIN\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%d-Q\\VISUA~1\\BIN\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"%s\\GRAPHI~1.%d\\VISUA~1\\BIN\\gm.exe",pf_path,k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%.2d-\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%d-Q\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%d\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%.2d-\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%d-Q\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"C:\\GRAPHI~1.%d\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%.2d-\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%d-Q\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%d\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=10 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%.2d-\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 9; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%d-Q\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } for (int k = 32; k>=0 && !path_found; --k) { cimg_snprintf(s_path,sizeof(s_path),"D:\\GRAPHI~1.%d\\VISUA~1\\BIN\\gm.exe",k); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gm.exe"); #else if (!path_found) { std::strcpy(s_path,"./gm"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gm"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the XMedcon's \c medcon binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c medcon binary. **/ inline const char* medcon_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 const char *const pf_path = programfiles_path(); if (!path_found) { std::strcpy(s_path,".\\medcon.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) { cimg_snprintf(s_path,sizeof(s_path),"%s\\XMedCon\\bin\\medcon.bat",pf_path); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) { cimg_snprintf(s_path,sizeof(s_path),"%s\\XMedCon\\bin\\medcon.exe",pf_path); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"medcon.exe"); #else if (!path_found) { std::strcpy(s_path,"./medcon"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"medcon"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the FFMPEG's \c ffmpeg binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c ffmpeg binary. **/ inline const char *ffmpeg_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\ffmpeg.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"ffmpeg.exe"); #else if (!path_found) { std::strcpy(s_path,"./ffmpeg"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"ffmpeg"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the \c gzip binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c gzip binary. **/ inline const char *gzip_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\gzip.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gzip.exe"); #else if (!path_found) { std::strcpy(s_path,"./gzip"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gzip"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the \c gzip binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c gunzip binary. **/ inline const char *gunzip_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\gunzip.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gunzip.exe"); #else if (!path_found) { std::strcpy(s_path,"./gunzip"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"gunzip"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the \c dcraw binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c dcraw binary. **/ inline const char *dcraw_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\dcraw.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"dcraw.exe"); #else if (!path_found) { std::strcpy(s_path,"./dcraw"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"dcraw"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the \c wget binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c wget binary. **/ inline const char *wget_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\wget.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"wget.exe"); #else if (!path_found) { std::strcpy(s_path,"./wget"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"wget"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Get/set path to the \c curl binary. /** \param user_path Specified path, or \c 0 to get the path currently used. \param reinit_path Force path to be recalculated (may take some time). \return Path containing the \c curl binary. **/ inline const char *curl_path(const char *const user_path=0, const bool reinit_path=false) { static char *s_path = 0; cimg::mutex(7); if (reinit_path) { delete[] s_path; s_path = 0; } if (user_path) { if (!s_path) s_path = new char[1024]; std::memset(s_path,0,1024); std::strncpy(s_path,user_path,1023); } else if (!s_path) { s_path = new char[1024]; std::memset(s_path,0,1024); bool path_found = false; std::FILE *file = 0; #if cimg_OS==2 if (!path_found) { std::strcpy(s_path,".\\curl.exe"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"curl.exe"); #else if (!path_found) { std::strcpy(s_path,"./curl"); if ((file=std::fopen(s_path,"r"))!=0) { cimg::fclose(file); path_found = true; } } if (!path_found) std::strcpy(s_path,"curl"); #endif winformat_string(s_path); } cimg::mutex(7,0); return s_path; } //! Split filename into two C-strings \c body and \c extension. inline const char *split_filename(const char *const filename, char *const body=0) { if (!filename) { if (body) *body = 0; return 0; } const char *p = 0; for (const char *np = filename; np>=filename && (p=np); np = std::strchr(np,'.')+1) {} if (p==filename) { if (body) std::strcpy(body,filename); return filename + std::strlen(filename); } const unsigned int l = (unsigned int)(p - filename - 1); if (body) { std::memcpy(body,filename,l); body[l] = 0; } return p; } //! Generate a numbered version of a filename. inline char* number_filename(const char *const filename, const int number, const unsigned int n, char *const str) { if (!filename) { if (str) *str = 0; return 0; } char format[1024] = { 0 }, body[1024] = { 0 }; const char *const ext = cimg::split_filename(filename,body); cimg_snprintf(format,sizeof(format),"%%s_%%.%ud.%%s",n); std::sprintf(str,format,body,number,ext); return str; } //! Try to guess format from an image file. /** \param file Input file (can be \c 0 if \c filename is set). \param filename Filename, as a C-string (can be \c 0 if \c file is set). \return C-string containing the guessed file format, or \c 0 if nothing has been guessed. **/ inline const char *file_type(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException("cimg::file_type(): Specified filename is (null)."); static const char *const _pnm = "pnm", *const _pfm = "pfm", *const _bmp = "bmp", *const _gif = "gif", *const _jpg = "jpg", *const _off = "off", *const _pan = "pan", *const _png = "png", *const _tif = "tif", *const _inr = "inr", *const _dcm = "dcm"; std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); const char *f_type = 0, *head; char header[2048] = { 0 }, item[1024] = { 0 }; const unsigned char *const uheader = (unsigned char*)header; int err; char cerr; const unsigned int siz = (unsigned int)std::fread(header,2048,1,nfile); // Read first 2048 bytes. if (!file) cimg::fclose(nfile); if (!std::strncmp(header,"OFF\n",4)) f_type = _off; // Check for OFF format. else if (!std::strncmp(header,"#INRIMAGE",9)) f_type = _inr; // Check for INRIMAGE format. else if (!std::strncmp(header,"PANDORE",7)) f_type = _pan; // Check for PANDORE format. else if (!std::strncmp(header+128,"DICM",4)) f_type = _dcm; // Check for DICOM format. else if (uheader[0]==0xFF && uheader[1]==0xD8 && uheader[2]==0xFF) f_type = _jpg; // Check for JPEG format. else if (header[0]=='B' && header[1]=='M') f_type = _bmp; // Check for BMP format. else if (header[0]=='G' && header[1]=='I' && header[2]=='F' && header[3]=='8' && header[5]=='a' && // Check for GIF format. (header[4]=='7' || header[4]=='9')) f_type = _gif; else if (uheader[0]==0x89 && uheader[1]==0x50 && uheader[2]==0x4E && uheader[3]==0x47 && // Check for PNG format. uheader[4]==0x0D && uheader[5]==0x0A && uheader[6]==0x1A && uheader[7]==0x0A) f_type = _png; else if ((uheader[0]==0x49 && uheader[1]==0x49) || (uheader[0]==0x4D && uheader[1]==0x4D)) f_type = _tif; // Check for TIFF format. else { // Check for PNM or PFM format. head = header; while (headstd::fread() but may display warning message if all elements could not be read. **/ template inline int fread(T *const ptr, const unsigned long nmemb, std::FILE *stream) { if (!ptr || nmemb<=0 || !stream) throw CImgArgumentException("cimg::fread(): Invalid reading request of %u %s%s from file %p to buffer %p.", nmemb,cimg::type::string(),nmemb>1?"s":"",stream,ptr); const unsigned long wlimitT = 63*1024*1024, wlimit = wlimitT/sizeof(T); unsigned long to_read = nmemb, al_read = 0, l_to_read = 0, l_al_read = 0; do { l_to_read = (to_read*sizeof(T))0); if (to_read>0) warn("cimg::fread(): Only %u/%u elements could be read from file.", al_read,nmemb); return al_read; } //! Write data to file. /** \param ptr Pointer to memory buffer containing the binary data to write on file. \param nmemb Number of elements to write. \param[out] stream File to write data on. \return Number of written elements. \note Similar to std::fwrite but may display warning messages if all elements could not be written. **/ template inline int fwrite(const T *ptr, const unsigned long nmemb, std::FILE *stream) { if (!ptr || !stream) throw CImgArgumentException("cimg::fwrite(): Invalid writing request of %u %s%s from buffer %p to file %p.", nmemb,cimg::type::string(),nmemb>1?"s":"",ptr,stream); if (nmemb<=0) return 0; const unsigned long wlimitT = 63*1024*1024, wlimit = wlimitT/sizeof(T); unsigned long to_write = nmemb, al_write = 0, l_to_write = 0, l_al_write = 0; do { l_to_write = (to_write*sizeof(T))0); if (to_write>0) warn("cimg::fwrite(): Only %u/%u elements could be written in file.", al_write,nmemb); return al_write; } //! Create an empty file. /** \param file Input file (can be \c 0 if \c filename is set). \param filename Filename, as a C-string (can be \c 0 if \c file is set). **/ inline void fempty(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException("cimg::file_type(): Specified filename is (null)."); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); if (!file) cimg::fclose(nfile); } //! Load file from network as a local temporary file. /** \param filename Filename, as a C-string. \param[out] filename_local C-string containing the path to a local copy of \c filename. \return Value of \c filename_local. \note Use external binaries \c wget or \c curl to perform. You must have one of these tools installed to be able to use this function. **/ inline char *load_network_external(const char *const filename, char *const filename_local) { if (!filename) throw CImgArgumentException("cimg::load_network_external(): Specified filename is (null)."); if (!filename_local) throw CImgArgumentException("cimg::load_network_external(): Specified destination string is (null)."); const char *const _ext = cimg::split_filename(filename), *const ext = (*_ext && _ext>filename)?_ext-1:_ext; char command[1024] = { 0 }; std::FILE *file = 0; *filename_local = 0; do { cimg_snprintf(filename_local,512,"%s%c%s%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext); if ((file=std::fopen(filename_local,"rb"))!=0) cimg::fclose(file); } while (file); // Try with 'curl' first. cimg_snprintf(command,sizeof(command),"%s -f --silent --compressed -o \"%s\" \"%s\"", cimg::curl_path(),filename_local,filename); cimg::system(command); if (!(file = std::fopen(filename_local,"rb"))) { // Try with 'wget' else. cimg_snprintf(command,sizeof(command),"%s -q -r -l 0 --no-cache -O \"%s\" \"%s\"", cimg::wget_path(),filename_local,filename); cimg::system(command); if (!(file = std::fopen(filename_local,"rb"))) throw CImgIOException("cimg::load_network_external(): Failed to load file '%s' with external tools 'wget' or 'curl'.",filename); cimg::fclose(file); // Try gunzip it. cimg_snprintf(command,sizeof(command),"%s.gz",filename_local); std::rename(filename_local,command); cimg_snprintf(command,sizeof(command),"%s --quiet \"%s.gz\"", gunzip_path(),filename_local); cimg::system(command); file = std::fopen(filename_local,"rb"); if (!file) { cimg_snprintf(command,sizeof(command),"%s.gz",filename_local); std::rename(command,filename_local); file = std::fopen(filename_local,"rb"); } } std::fseek(file,0,SEEK_END); // Check if file size is 0. if (std::ftell(file)<=0) throw CImgIOException("cimg::load_network_external(): Failed to load file '%s' with external commands 'wget' or 'curl'.",filename); cimg::fclose(file); return filename_local; } //! Return options specified on the command line. inline const char* option(const char *const name, const int argc, const char *const *const argv, const char *const defaut, const char *const usage, const bool reset_static) { static bool first = true, visu = false; if (reset_static) { first = true; return 0; } const char *res = 0; if (first) { first = false; visu = cimg::option("-h",argc,argv,(char*)0,(char*)0,false)!=0; visu |= cimg::option("-help",argc,argv,(char*)0,(char*)0,false)!=0; visu |= cimg::option("--help",argc,argv,(char*)0,(char*)0,false)!=0; } if (!name && visu) { if (usage) { std::fprintf(cimg::output(),"\n %s%s%s",cimg::t_red,cimg::basename(argv[0]),cimg::t_normal); std::fprintf(cimg::output(),": %s",usage); std::fprintf(cimg::output()," (%s, %s)\n\n",__DATE__,__TIME__); } if (defaut) std::fprintf(cimg::output(),"%s\n",defaut); } if (name) { if (argc>0) { int k = 0; while (k Operating System: %s%-13s%s %s('cimg_OS'=%d)%s\n", cimg::t_bold, cimg_OS==1?"Unix":(cimg_OS==2?"Windows":"Unknow"), cimg::t_normal,cimg::t_green, cimg_OS, cimg::t_normal); std::fprintf(cimg::output()," > CPU endianness: %s%s Endian%s\n", cimg::t_bold, cimg::endianness()?"Big":"Little", cimg::t_normal); std::fprintf(cimg::output()," > Verbosity mode: %s%-13s%s %s('cimg_verbosity'=%d)%s\n", cimg::t_bold, cimg_verbosity==0?"Quiet":(cimg_verbosity==1?"Console":(cimg_verbosity==2?"Dialog":(cimg_verbosity==3?"Console+Warnings":"Dialog+Warnings"))), cimg::t_normal,cimg::t_green, cimg_verbosity, cimg::t_normal); std::fprintf(cimg::output()," > Stricts warnings: %s%-13s%s %s('cimg_strict_warnings' %s)%s\n", cimg::t_bold, #ifdef cimg_strict_warnings "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using VT100 messages: %s%-13s%s %s('cimg_use_vt100' %s)%s\n", cimg::t_bold, #ifdef cimg_use_vt100 "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Display type: %s%-13s%s %s('cimg_display'=%d)%s\n", cimg::t_bold, cimg_display==0?"No display":cimg_display==1?"X11":cimg_display==2?"Windows GDI":"Unknown", cimg::t_normal,cimg::t_green, cimg_display, cimg::t_normal); #if cimg_display==1 std::fprintf(cimg::output()," > Using XShm for X11: %s%-13s%s %s('cimg_use_xshm' %s)%s\n", cimg::t_bold, #ifdef cimg_use_xshm "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using XRand for X11: %s%-13s%s %s('cimg_use_xrandr' %s)%s\n", cimg::t_bold, #ifdef cimg_use_xrandr "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); #endif std::fprintf(cimg::output()," > Using OpenMP: %s%-13s%s %s('cimg_use_openmp' %s)%s\n", cimg::t_bold, #ifdef cimg_use_openmp "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using PNG library: %s%-13s%s %s('cimg_use_png' %s)%s\n", cimg::t_bold, #ifdef cimg_use_png "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using JPEG library: %s%-13s%s %s('cimg_use_jpeg' %s)%s\n", cimg::t_bold, #ifdef cimg_use_jpeg "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using TIFF library: %s%-13s%s %s('cimg_use_tiff' %s)%s\n", cimg::t_bold, #ifdef cimg_use_tiff "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using Magick++ library: %s%-13s%s %s('cimg_use_magick' %s)%s\n", cimg::t_bold, #ifdef cimg_use_magick "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using FFTW3 library: %s%-13s%s %s('cimg_use_fftw3' %s)%s\n", cimg::t_bold, #ifdef cimg_use_fftw3 "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); std::fprintf(cimg::output()," > Using LAPACK library: %s%-13s%s %s('cimg_use_lapack' %s)%s\n", cimg::t_bold, #ifdef cimg_use_lapack "Yes",cimg::t_normal,cimg::t_green,"defined", #else "No",cimg::t_normal,cimg::t_green,"undefined", #endif cimg::t_normal); cimg_snprintf(tmp,sizeof(tmp),"\"%.1020s\"",cimg::imagemagick_path()); std::fprintf(cimg::output()," > Path of ImageMagick: %s%-13s%s\n", cimg::t_bold, tmp, cimg::t_normal); cimg_snprintf(tmp,sizeof(tmp),"\"%.1020s\"",cimg::graphicsmagick_path()); std::fprintf(cimg::output()," > Path of GraphicsMagick: %s%-13s%s\n", cimg::t_bold, tmp, cimg::t_normal); cimg_snprintf(tmp,sizeof(tmp),"\"%.1020s\"",cimg::medcon_path()); std::fprintf(cimg::output()," > Path of 'medcon': %s%-13s%s\n", cimg::t_bold, tmp, cimg::t_normal); cimg_snprintf(tmp,sizeof(tmp),"\"%.1020s\"",cimg::temporary_path()); std::fprintf(cimg::output()," > Temporary path: %s%-13s%s\n", cimg::t_bold, tmp, cimg::t_normal); std::fprintf(cimg::output(),"\n"); } // Declare LAPACK function signatures if LAPACK support is enabled. #ifdef cimg_use_lapack template inline void getrf(int &N, T *lapA, int *IPIV, int &INFO) { dgetrf_(&N,&N,lapA,&N,IPIV,&INFO); } inline void getrf(int &N, float *lapA, int *IPIV, int &INFO) { sgetrf_(&N,&N,lapA,&N,IPIV,&INFO); } template inline void getri(int &N, T *lapA, int *IPIV, T* WORK, int &LWORK, int &INFO) { dgetri_(&N,lapA,&N,IPIV,WORK,&LWORK,&INFO); } inline void getri(int &N, float *lapA, int *IPIV, float* WORK, int &LWORK, int &INFO) { sgetri_(&N,lapA,&N,IPIV,WORK,&LWORK,&INFO); } template inline void gesvd(char &JOB, int &M, int &N, T *lapA, int &MN, T *lapS, T *lapU, T *lapV, T *WORK, int &LWORK, int &INFO) { dgesvd_(&JOB,&JOB,&M,&N,lapA,&MN,lapS,lapU,&M,lapV,&N,WORK,&LWORK,&INFO); } inline void gesvd(char &JOB, int &M, int &N, float *lapA, int &MN, float *lapS, float *lapU, float *lapV, float *WORK, int &LWORK, int &INFO) { sgesvd_(&JOB,&JOB,&M,&N,lapA,&MN,lapS,lapU,&M,lapV,&N,WORK,&LWORK,&INFO); } template inline void getrs(char &TRANS, int &N, T *lapA, int *IPIV, T *lapB, int &INFO) { int one = 1; dgetrs_(&TRANS,&N,&one,lapA,&N,IPIV,lapB,&N,&INFO); } inline void getrs(char &TRANS, int &N, float *lapA, int *IPIV, float *lapB, int &INFO) { int one = 1; sgetrs_(&TRANS,&N,&one,lapA,&N,IPIV,lapB,&N,&INFO); } template inline void syev(char &JOB, char &UPLO, int &N, T *lapA, T *lapW, T *WORK, int &LWORK, int &INFO) { dsyev_(&JOB,&UPLO,&N,lapA,&N,lapW,WORK,&LWORK,&INFO); } inline void syev(char &JOB, char &UPLO, int &N, float *lapA, float *lapW, float *WORK, int &LWORK, int &INFO) { ssyev_(&JOB,&UPLO,&N,lapA,&N,lapW,WORK,&LWORK,&INFO); } template inline void sgels(char & TRANS, int &M, int &N, int &NRHS, T* lapA, int &LDA, T* lapB, int &LDB, T* WORK, int &LWORK, int &INFO){ dgels_(&TRANS, &M, &N, &NRHS, lapA, &LDA, lapB, &LDB, WORK, &LWORK, &INFO); } inline void sgels(char & TRANS, int &M, int &N, int &NRHS, float* lapA, int &LDA, float* lapB, int &LDB, float* WORK, int &LWORK, int &INFO){ sgels_(&TRANS, &M, &N, &NRHS, lapA, &LDA, lapB, &LDB, WORK, &LWORK, &INFO); } #endif // End of the 'cimg' namespace } /*------------------------------------------------ # # # Definition of mathematical operators and # external functions. # # -------------------------------------------------*/ #define _cimg_create_ext_operators(typ) \ template \ inline CImg::type> operator+(const typ val, const CImg& img) { \ return img + val; \ } \ template \ inline CImg::type> operator-(const typ val, const CImg& img) { \ typedef typename cimg::superset::type Tt; \ return CImg(img._width,img._height,img._depth,img._spectrum,val)-=img; \ } \ template \ inline CImg::type> operator*(const typ val, const CImg& img) { \ return img*val; \ } \ template \ inline CImg::type> operator/(const typ val, const CImg& img) { \ return val*img.get_invert(); \ } \ template \ inline CImg::type> operator&(const typ val, const CImg& img) { \ return img & val; \ } \ template \ inline CImg::type> operator|(const typ val, const CImg& img) { \ return img | val; \ } \ template \ inline CImg::type> operator^(const typ val, const CImg& img) { \ return img ^ val; \ } \ template \ inline bool operator==(const typ val, const CImg& img) { \ return img == val; \ } \ template \ inline bool operator!=(const typ val, const CImg& img) { \ return img != val; \ } _cimg_create_ext_operators(bool) _cimg_create_ext_operators(unsigned char) _cimg_create_ext_operators(char) _cimg_create_ext_operators(signed char) _cimg_create_ext_operators(unsigned short) _cimg_create_ext_operators(short) _cimg_create_ext_operators(unsigned int) _cimg_create_ext_operators(int) _cimg_create_ext_operators(unsigned long) _cimg_create_ext_operators(long) _cimg_create_ext_operators(float) _cimg_create_ext_operators(double) template inline CImg<_cimg_Tfloat> operator+(const char *const expression, const CImg& img) { return img + expression; } template inline CImg<_cimg_Tfloat> operator-(const char *const expression, const CImg& img) { return CImg<_cimg_Tfloat>(img._width,img._height,img._depth,img._spectrum,expression,true)-=img; } template inline CImg<_cimg_Tfloat> operator*(const char *const expression, const CImg& img) { return img*expression; } template inline CImg<_cimg_Tfloat> operator/(const char *const expression, const CImg& img) { return expression*img.get_invert(); } template inline CImg operator&(const char *const expression, const CImg& img) { return img & expression; } template inline CImg operator|(const char *const expression, const CImg& img) { return img | expression; } template inline CImg operator^(const char *const expression, const CImg& img) { return img ^ expression; } template inline bool operator==(const char *const expression, const CImg& img) { return img == expression; } template inline bool operator!=(const char *const expression, const CImg& img) { return img != expression; } template inline CImg<_cimg_Tfloat> sqr(const CImg& instance) { return instance.get_sqr(); } template inline CImg<_cimg_Tfloat> sqrt(const CImg& instance) { return instance.get_sqrt(); } template inline CImg<_cimg_Tfloat> exp(const CImg& instance) { return instance.get_exp(); } template inline CImg<_cimg_Tfloat> log(const CImg& instance) { return instance.get_log(); } template inline CImg<_cimg_Tfloat> log2(const CImg& instance) { return instance.get_log2(); } template inline CImg<_cimg_Tfloat> log10(const CImg& instance) { return instance.get_log10(); } template inline CImg<_cimg_Tfloat> abs(const CImg& instance) { return instance.get_abs(); } template inline CImg<_cimg_Tfloat> sign(const CImg& instance) { return instance.get_sign(); } template inline CImg<_cimg_Tfloat> cos(const CImg& instance) { return instance.get_cos(); } template inline CImg<_cimg_Tfloat> sin(const CImg& instance) { return instance.get_sin(); } template inline CImg<_cimg_Tfloat> sinc(const CImg& instance) { return instance.get_sinc(); } template inline CImg<_cimg_Tfloat> tan(const CImg& instance) { return instance.get_tan(); } template inline CImg<_cimg_Tfloat> acos(const CImg& instance) { return instance.get_acos(); } template inline CImg<_cimg_Tfloat> asin(const CImg& instance) { return instance.get_asin(); } template inline CImg<_cimg_Tfloat> atan(const CImg& instance) { return instance.get_atan(); } template inline CImg<_cimg_Tfloat> cosh(const CImg& instance) { return instance.get_cosh(); } template inline CImg<_cimg_Tfloat> sinh(const CImg& instance) { return instance.get_sinh(); } template inline CImg<_cimg_Tfloat> tanh(const CImg& instance) { return instance.get_tanh(); } template inline CImg transpose(const CImg& instance) { return instance.get_transpose(); } template inline CImg<_cimg_Tfloat> invert(const CImg& instance) { return instance.get_invert(); } template inline CImg<_cimg_Tfloat> pseudoinvert(const CImg& instance) { return instance.get_pseudoinvert(); } /*----------------------------------- # # Define the CImgDisplay structure # ----------------------------------*/ //! Allow to create windows, display images on them and manage user events (keyboard, mouse and windows events). /** CImgDisplay methods rely on a low-level graphic library to perform: it can be either \b X-Window (X11, for Unix-based systems) or \b GDI32 (for Windows-based systems). If both libraries are missing, CImgDisplay will not be able to display images on screen, and will enter a minimal mode where warning messages will be outputed each time the program is trying to call one of the CImgDisplay method. The configuration variable \c cimg_display tells about the graphic library used. It is set automatically by \CImg when one of these graphic libraries has been detected. But, you can override its value if necessary. Valid choices are: - 0: Disable display capabilities. - 1: Use \b X-Window (X11) library. - 2: Use \b GDI32 library. Remember to link your program against \b X11 or \b GDI32 libraries if you use CImgDisplay. **/ struct CImgDisplay { unsigned long _timer, _fps_frames, _fps_timer; unsigned int _width, _height, _normalization; float _fps_fps, _min, _max; bool _is_fullscreen; char *_title; volatile unsigned int _window_width, _window_height, _button, _keys[128], _released_keys[128]; volatile int _window_x, _window_y, _mouse_x, _mouse_y, _wheel; volatile bool _is_closed, _is_resized, _is_moved, _is_event, _is_keyESC, _is_keyF1, _is_keyF2, _is_keyF3, _is_keyF4, _is_keyF5, _is_keyF6, _is_keyF7, _is_keyF8, _is_keyF9, _is_keyF10, _is_keyF11, _is_keyF12, _is_keyPAUSE, _is_key1, _is_key2, _is_key3, _is_key4, _is_key5, _is_key6, _is_key7, _is_key8, _is_key9, _is_key0, _is_keyBACKSPACE, _is_keyINSERT, _is_keyHOME, _is_keyPAGEUP, _is_keyTAB, _is_keyQ, _is_keyW, _is_keyE, _is_keyR, _is_keyT, _is_keyY, _is_keyU, _is_keyI, _is_keyO, _is_keyP, _is_keyDELETE, _is_keyEND, _is_keyPAGEDOWN, _is_keyCAPSLOCK, _is_keyA, _is_keyS, _is_keyD, _is_keyF, _is_keyG, _is_keyH, _is_keyJ, _is_keyK, _is_keyL, _is_keyENTER, _is_keySHIFTLEFT, _is_keyZ, _is_keyX, _is_keyC, _is_keyV, _is_keyB, _is_keyN, _is_keyM, _is_keySHIFTRIGHT, _is_keyARROWUP, _is_keyCTRLLEFT, _is_keyAPPLEFT, _is_keyALT, _is_keySPACE, _is_keyALTGR, _is_keyAPPRIGHT, _is_keyMENU, _is_keyCTRLRIGHT, _is_keyARROWLEFT, _is_keyARROWDOWN, _is_keyARROWRIGHT, _is_keyPAD0, _is_keyPAD1, _is_keyPAD2, _is_keyPAD3, _is_keyPAD4, _is_keyPAD5, _is_keyPAD6, _is_keyPAD7, _is_keyPAD8, _is_keyPAD9, _is_keyPADADD, _is_keyPADSUB, _is_keyPADMUL, _is_keyPADDIV; //@} //--------------------------- // //! \name Plugins //@{ //--------------------------- #ifdef cimgdisplay_plugin #include cimgdisplay_plugin #endif #ifdef cimgdisplay_plugin1 #include cimgdisplay_plugin1 #endif #ifdef cimgdisplay_plugin2 #include cimgdisplay_plugin2 #endif #ifdef cimgdisplay_plugin3 #include cimgdisplay_plugin3 #endif #ifdef cimgdisplay_plugin4 #include cimgdisplay_plugin4 #endif #ifdef cimgdisplay_plugin5 #include cimgdisplay_plugin5 #endif #ifdef cimgdisplay_plugin6 #include cimgdisplay_plugin6 #endif #ifdef cimgdisplay_plugin7 #include cimgdisplay_plugin7 #endif #ifdef cimgdisplay_plugin8 #include cimgdisplay_plugin8 #endif //@} //-------------------------------------------------------- // //! \name Constructors / Destructor / Instance Management //@{ //-------------------------------------------------------- //! Destructor. /** \note If the associated window is visible on the screen, it is closed by the call to the destructor. **/ ~CImgDisplay() { assign(); } //! Construct an empty display. /** \note Constructing an empty CImgDisplay instance does not make a window appearing on the screen, until display of valid data is performed. \par Example \code CImgDisplay disp; // Does actually nothing. ... disp.display(img); // Construct new window and display image in it. \endcode **/ CImgDisplay(): _width(0),_height(0),_normalization(0), _min(0),_max(0), _is_fullscreen(false), _title(0), _window_width(0),_window_height(0),_button(0), _window_x(0),_window_y(0),_mouse_x(-1),_mouse_y(-1),_wheel(0), _is_closed(true),_is_resized(false),_is_moved(false),_is_event(false) { assign(); } //! Construct a display with specified dimensions. /** \param width Window width. \param height Window height. \param title Window title. \param normalization Normalization type (0=none, 1=always, 2=once, 3=pixel type-dependent, see normalization()). \param is_fullscreen Tells if fullscreen mode is enabled. \param is_closed Tells if associated window is initially visible or not. \note A black background is initially displayed on the associated window. **/ CImgDisplay(const unsigned int width, const unsigned int height, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false): _width(0),_height(0),_normalization(0), _min(0),_max(0), _is_fullscreen(false), _title(0), _window_width(0),_window_height(0),_button(0), _window_x(0),_window_y(0),_mouse_x(-1),_mouse_y(-1),_wheel(0), _is_closed(true),_is_resized(false),_is_moved(false),_is_event(false) { assign(width,height,title,normalization,is_fullscreen,is_closed); } //! Construct a display from an image. /** \param img Image used as a model to create the window. \param title Window title. \param normalization Normalization type (0=none, 1=always, 2=once, 3=pixel type-dependent, see normalization()). \param is_fullscreen Tells if fullscreen mode is enabled. \param is_closed Tells if associated window is initially visible or not. \note The pixels of the input image are initially displayed on the associated window. **/ template explicit CImgDisplay(const CImg& img, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false): _width(0),_height(0),_normalization(0), _min(0),_max(0), _is_fullscreen(false), _title(0), _window_width(0),_window_height(0),_button(0), _window_x(0),_window_y(0),_mouse_x(-1),_mouse_y(-1),_wheel(0), _is_closed(true),_is_resized(false),_is_moved(false),_is_event(false) { assign(img,title,normalization,is_fullscreen,is_closed); } //! Construct a display from an image list. /** \param list The images list to display. \param title Window title. \param normalization Normalization type (0=none, 1=always, 2=once, 3=pixel type-dependent, see normalization()). \param is_fullscreen Tells if fullscreen mode is enabled. \param is_closed Tells if associated window is initially visible or not. \note All images of the list, appended along the X-axis, are initially displayed on the associated window. **/ template explicit CImgDisplay(const CImgList& list, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false): _width(0),_height(0),_normalization(0), _min(0),_max(0), _is_fullscreen(false), _title(0), _window_width(0),_window_height(0),_button(0), _window_x(0),_window_y(0),_mouse_x(-1),_mouse_y(-1),_wheel(0), _is_closed(true),_is_resized(false),_is_moved(false),_is_event(false) { assign(list,title,normalization,is_fullscreen,is_closed); } //! Construct a display as a copy of an existing one. /** \param disp Display instance to copy. \note The pixel buffer of the input window is initially displayed on the associated window. **/ CImgDisplay(const CImgDisplay& disp): _width(0),_height(0),_normalization(0), _min(0),_max(0), _is_fullscreen(false), _title(0), _window_width(0),_window_height(0),_button(0), _window_x(0),_window_y(0),_mouse_x(-1),_mouse_y(-1),_wheel(0), _is_closed(true),_is_resized(false),_is_moved(false),_is_event(false) { assign(disp); } #if cimg_display==0 static void _no_display_exception() { throw CImgDisplayException("CImgDisplay(): No display available."); } //! Destructor - Empty constructor \inplace. /** \note Replace the current instance by an empty display. **/ CImgDisplay& assign() { return flush(); } //! Construct a display with specified dimensions \inplace. /** **/ CImgDisplay& assign(const unsigned int width, const unsigned int height, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false) { cimg::unused(width,height,title,normalization,is_fullscreen,is_closed); _no_display_exception(); return assign(); } //! Construct a display from an image \inplace. /** **/ template CImgDisplay& assign(const CImg& img, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false) { _no_display_exception(); return assign(img._width,img._height,title,normalization,is_fullscreen,is_closed); } //! Construct a display from an image list \inplace. /** **/ template CImgDisplay& assign(const CImgList& list, const char *const title=0, const unsigned int normalization=3, const bool is_fullscreen=false, const bool is_closed=false) { _no_display_exception(); return assign(list._width,list._width,title,normalization,is_fullscreen,is_closed); } //! Construct a display as a copy of another one \inplace. /** **/ CImgDisplay& assign(const CImgDisplay &disp) { _no_display_exception(); return assign(disp._width,disp._height); } #endif //! Return a reference to an empty display. /** \note Can be useful for writing function prototypes where one of the argument (of type CImgDisplay&) must have a default value. \par Example \code void foo(CImgDisplay& disp=CImgDisplay::empty()); \endcode **/ static CImgDisplay& empty() { static CImgDisplay _empty; return _empty.assign(); } #define cimg_fitscreen(dx,dy,dz) CImgDisplay::_fitscreen(dx,dy,dz,128,-85,false),CImgDisplay::_fitscreen(dx,dy,dz,128,-85,true) static unsigned int _fitscreen(const unsigned int dx, const unsigned int dy, const unsigned int dz, const int dmin, const int dmax,const bool return_y) { const unsigned int _nw = dx + (dz>1?dz:0), _nh = dy + (dz>1?dz:0); unsigned int nw = _nw?_nw:1, nh = _nh?_nh:1; const unsigned int sw = CImgDisplay::screen_width(), sh = CImgDisplay::screen_height(), mw = dmin<0?(unsigned int)(sw*-dmin/100):(unsigned int)dmin, mh = dmin<0?(unsigned int)(sh*-dmin/100):(unsigned int)dmin, Mw = dmax<0?(unsigned int)(sw*-dmax/100):(unsigned int)dmax, Mh = dmax<0?(unsigned int)(sh*-dmax/100):(unsigned int)dmax; if (nwMw) { nh = nh*Mw/nw; nh+=(nh==0?1:0); nw = Mw; } if (nh>Mh) { nw = nw*Mh/nh; nw+=(nw==0?1:0); nh = Mh; } if (nwdisp = img is equivalent to disp.display(img). **/ template CImgDisplay& operator=(const CImg& img) { return display(img); } //! Display list of images on associated window. /** \note disp = list is equivalent to disp.display(list). **/ template CImgDisplay& operator=(const CImgList& list) { return display(list); } //! Construct a display as a copy of another one \inplace. /** \note Equivalent to assign(const CImgDisplay&). **/ CImgDisplay& operator=(const CImgDisplay& disp) { return assign(disp); } //! Return \c false if display is empty, \c true otherwise. /** \note if (disp) { ... } is equivalent to if (!disp.is_empty()) { ... }. **/ operator bool() const { return !is_empty(); } //@} //------------------------------------------ // //! \name Instance Checking //@{ //------------------------------------------ //! Return \c true if display is empty, \c false otherwise. /** **/ bool is_empty() const { return !(_width && _height); } //! Return \c true if display is closed (i.e. not visible on the screen), \c false otherwise. /** \note - When a user physically closes the associated window, the display is set to closed. - A closed display is not destroyed. Its associated window can be show again on the screen using show(). **/ bool is_closed() const { return _is_closed; } //! Return \c true if associated window has been resized on the screen, \c false otherwise. /** **/ bool is_resized() const { return _is_resized; } //! Return \c true if associated window has been moved on the screen, \c false otherwise. /** **/ bool is_moved() const { return _is_moved; } //! Return \c true if any event has occured on the associated window, \c false otherwise. /** **/ bool is_event() const { return _is_event; } //! Return \c true if current display is in fullscreen mode, \c false otherwise. /** **/ bool is_fullscreen() const { return _is_fullscreen; } //! Return \c true if any key is being pressed on the associated window, \c false otherwise. /** \note The methods below do the same only for specific keys. **/ bool is_key() const { return _is_keyESC || _is_keyF1 || _is_keyF2 || _is_keyF3 || _is_keyF4 || _is_keyF5 || _is_keyF6 || _is_keyF7 || _is_keyF8 || _is_keyF9 || _is_keyF10 || _is_keyF11 || _is_keyF12 || _is_keyPAUSE || _is_key1 || _is_key2 || _is_key3 || _is_key4 || _is_key5 || _is_key6 || _is_key7 || _is_key8 || _is_key9 || _is_key0 || _is_keyBACKSPACE || _is_keyINSERT || _is_keyHOME || _is_keyPAGEUP || _is_keyTAB || _is_keyQ || _is_keyW || _is_keyE || _is_keyR || _is_keyT || _is_keyY || _is_keyU || _is_keyI || _is_keyO || _is_keyP || _is_keyDELETE || _is_keyEND || _is_keyPAGEDOWN || _is_keyCAPSLOCK || _is_keyA || _is_keyS || _is_keyD || _is_keyF || _is_keyG || _is_keyH || _is_keyJ || _is_keyK || _is_keyL || _is_keyENTER || _is_keySHIFTLEFT || _is_keyZ || _is_keyX || _is_keyC || _is_keyV || _is_keyB || _is_keyN || _is_keyM || _is_keySHIFTRIGHT || _is_keyARROWUP || _is_keyCTRLLEFT || _is_keyAPPLEFT || _is_keyALT || _is_keySPACE || _is_keyALTGR || _is_keyAPPRIGHT || _is_keyMENU || _is_keyCTRLRIGHT || _is_keyARROWLEFT || _is_keyARROWDOWN || _is_keyARROWRIGHT || _is_keyPAD0 || _is_keyPAD1 || _is_keyPAD2 || _is_keyPAD3 || _is_keyPAD4 || _is_keyPAD5 || _is_keyPAD6 || _is_keyPAD7 || _is_keyPAD8 || _is_keyPAD9 || _is_keyPADADD || _is_keyPADSUB || _is_keyPADMUL || _is_keyPADDIV; } //! Return \c true if key specified by given keycode is being pressed on the associated window, \c false otherwise. /** \param keycode Keycode to test. \note Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). \par Example \code CImgDisplay disp(400,400); while (!disp.is_closed()) { if (disp.key(cimg::keyTAB)) { ... } // Equivalent to 'if (disp.is_keyTAB())'. disp.wait(); } \endcode **/ bool is_key(const unsigned int keycode) const { #define _cimg_iskey_test(k) if (keycode==cimg::key##k) return _is_key##k; _cimg_iskey_test(ESC); _cimg_iskey_test(F1); _cimg_iskey_test(F2); _cimg_iskey_test(F3); _cimg_iskey_test(F4); _cimg_iskey_test(F5); _cimg_iskey_test(F6); _cimg_iskey_test(F7); _cimg_iskey_test(F8); _cimg_iskey_test(F9); _cimg_iskey_test(F10); _cimg_iskey_test(F11); _cimg_iskey_test(F12); _cimg_iskey_test(PAUSE); _cimg_iskey_test(1); _cimg_iskey_test(2); _cimg_iskey_test(3); _cimg_iskey_test(4); _cimg_iskey_test(5); _cimg_iskey_test(6); _cimg_iskey_test(7); _cimg_iskey_test(8); _cimg_iskey_test(9); _cimg_iskey_test(0); _cimg_iskey_test(BACKSPACE); _cimg_iskey_test(INSERT); _cimg_iskey_test(HOME); _cimg_iskey_test(PAGEUP); _cimg_iskey_test(TAB); _cimg_iskey_test(Q); _cimg_iskey_test(W); _cimg_iskey_test(E); _cimg_iskey_test(R); _cimg_iskey_test(T); _cimg_iskey_test(Y); _cimg_iskey_test(U); _cimg_iskey_test(I); _cimg_iskey_test(O); _cimg_iskey_test(P); _cimg_iskey_test(DELETE); _cimg_iskey_test(END); _cimg_iskey_test(PAGEDOWN); _cimg_iskey_test(CAPSLOCK); _cimg_iskey_test(A); _cimg_iskey_test(S); _cimg_iskey_test(D); _cimg_iskey_test(F); _cimg_iskey_test(G); _cimg_iskey_test(H); _cimg_iskey_test(J); _cimg_iskey_test(K); _cimg_iskey_test(L); _cimg_iskey_test(ENTER); _cimg_iskey_test(SHIFTLEFT); _cimg_iskey_test(Z); _cimg_iskey_test(X); _cimg_iskey_test(C); _cimg_iskey_test(V); _cimg_iskey_test(B); _cimg_iskey_test(N); _cimg_iskey_test(M); _cimg_iskey_test(SHIFTRIGHT); _cimg_iskey_test(ARROWUP); _cimg_iskey_test(CTRLLEFT); _cimg_iskey_test(APPLEFT); _cimg_iskey_test(ALT); _cimg_iskey_test(SPACE); _cimg_iskey_test(ALTGR); _cimg_iskey_test(APPRIGHT); _cimg_iskey_test(MENU); _cimg_iskey_test(CTRLRIGHT); _cimg_iskey_test(ARROWLEFT); _cimg_iskey_test(ARROWDOWN); _cimg_iskey_test(ARROWRIGHT); _cimg_iskey_test(PAD0); _cimg_iskey_test(PAD1); _cimg_iskey_test(PAD2); _cimg_iskey_test(PAD3); _cimg_iskey_test(PAD4); _cimg_iskey_test(PAD5); _cimg_iskey_test(PAD6); _cimg_iskey_test(PAD7); _cimg_iskey_test(PAD8); _cimg_iskey_test(PAD9); _cimg_iskey_test(PADADD); _cimg_iskey_test(PADSUB); _cimg_iskey_test(PADMUL); _cimg_iskey_test(PADDIV); return false; } //! Return \c true if key specified by given keycode is being pressed on the associated window, \c false otherwise. /** \param keycode C-string containing the keycode label of the key to test. \note Use it when the key you want to test can be dynamically set by the user. \par Example \code CImgDisplay disp(400,400); const char *const keycode = "TAB"; while (!disp.is_closed()) { if (disp.is_key(keycode)) { ... } // Equivalent to 'if (disp.is_keyTAB())'. disp.wait(); } \endcode **/ bool is_key(const char *const keycode) const { #define _cimg_iskey_test2(k) if (!cimg::strcasecmp(keycode,#k)) return _is_key##k; _cimg_iskey_test2(ESC); _cimg_iskey_test2(F1); _cimg_iskey_test2(F2); _cimg_iskey_test2(F3); _cimg_iskey_test2(F4); _cimg_iskey_test2(F5); _cimg_iskey_test2(F6); _cimg_iskey_test2(F7); _cimg_iskey_test2(F8); _cimg_iskey_test2(F9); _cimg_iskey_test2(F10); _cimg_iskey_test2(F11); _cimg_iskey_test2(F12); _cimg_iskey_test2(PAUSE); _cimg_iskey_test2(1); _cimg_iskey_test2(2); _cimg_iskey_test2(3); _cimg_iskey_test2(4); _cimg_iskey_test2(5); _cimg_iskey_test2(6); _cimg_iskey_test2(7); _cimg_iskey_test2(8); _cimg_iskey_test2(9); _cimg_iskey_test2(0); _cimg_iskey_test2(BACKSPACE); _cimg_iskey_test2(INSERT); _cimg_iskey_test2(HOME); _cimg_iskey_test2(PAGEUP); _cimg_iskey_test2(TAB); _cimg_iskey_test2(Q); _cimg_iskey_test2(W); _cimg_iskey_test2(E); _cimg_iskey_test2(R); _cimg_iskey_test2(T); _cimg_iskey_test2(Y); _cimg_iskey_test2(U); _cimg_iskey_test2(I); _cimg_iskey_test2(O); _cimg_iskey_test2(P); _cimg_iskey_test2(DELETE); _cimg_iskey_test2(END); _cimg_iskey_test2(PAGEDOWN); _cimg_iskey_test2(CAPSLOCK); _cimg_iskey_test2(A); _cimg_iskey_test2(S); _cimg_iskey_test2(D); _cimg_iskey_test2(F); _cimg_iskey_test2(G); _cimg_iskey_test2(H); _cimg_iskey_test2(J); _cimg_iskey_test2(K); _cimg_iskey_test2(L); _cimg_iskey_test2(ENTER); _cimg_iskey_test2(SHIFTLEFT); _cimg_iskey_test2(Z); _cimg_iskey_test2(X); _cimg_iskey_test2(C); _cimg_iskey_test2(V); _cimg_iskey_test2(B); _cimg_iskey_test2(N); _cimg_iskey_test2(M); _cimg_iskey_test2(SHIFTRIGHT); _cimg_iskey_test2(ARROWUP); _cimg_iskey_test2(CTRLLEFT); _cimg_iskey_test2(APPLEFT); _cimg_iskey_test2(ALT); _cimg_iskey_test2(SPACE); _cimg_iskey_test2(ALTGR); _cimg_iskey_test2(APPRIGHT); _cimg_iskey_test2(MENU); _cimg_iskey_test2(CTRLRIGHT); _cimg_iskey_test2(ARROWLEFT); _cimg_iskey_test2(ARROWDOWN); _cimg_iskey_test2(ARROWRIGHT); _cimg_iskey_test2(PAD0); _cimg_iskey_test2(PAD1); _cimg_iskey_test2(PAD2); _cimg_iskey_test2(PAD3); _cimg_iskey_test2(PAD4); _cimg_iskey_test2(PAD5); _cimg_iskey_test2(PAD6); _cimg_iskey_test2(PAD7); _cimg_iskey_test2(PAD8); _cimg_iskey_test2(PAD9); _cimg_iskey_test2(PADADD); _cimg_iskey_test2(PADSUB); _cimg_iskey_test2(PADMUL); _cimg_iskey_test2(PADDIV); return false; } //! Return \c true if specified key sequence has been typed on the associated window, \c false otherwise. /** \param keycodes_sequence Buffer of keycodes to test. \param length Number of keys in the \c keycodes_sequence buffer. \param remove_sequence Tells if the key sequence must be removed from the key history, if found. \note Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). \par Example \code CImgDisplay disp(400,400); const unsigned int key_seq[] = { cimg::keyCTRLLEFT, cimg::keyD }; while (!disp.is_closed()) { if (disp.is_key_sequence(key_seq,2)) { ... } // Test for the 'CTRL+D' keyboard event. disp.wait(); } \endcode **/ bool is_key_sequence(const unsigned int *const keycodes_sequence, const unsigned int length, const bool remove_sequence=false) { if (keycodes_sequence && length) { const unsigned int *const ps_end = keycodes_sequence + length - 1, *const pk_end = (unsigned int*)_keys + 1 + sizeof(_keys)/sizeof(unsigned int) - length, k = *ps_end; for (unsigned int *pk = (unsigned int*)_keys; pk[0,255]. If the range of values of the data to display is different, a normalization may be required for displaying the data in a correct way. The normalization type can be one of: - \c 0: Value normalization is disabled. It is then assumed that all input data to be displayed by the CImgDisplay instance have values in range [0,255]. - \c 1: Value normalization is always performed (this is the default behavior). Before displaying an input image, its values will be (virtually) stretched in range [0,255], so that the contrast of the displayed pixels will be maximum. Use this mode for images whose minimum and maximum values are not prescribed to known values (e.g. float-valued images). Note that when normalized versions of images are computed for display purposes, the actual values of these images are not modified. - \c 2: Value normalization is performed once (on the first image display), then the same normalization coefficients are kept for next displayed frames. - \c 3: Value normalization depends on the pixel type of the data to display. For integer pixel types, the normalization is done regarding the minimum/maximum values of the type (no normalization occurs then for unsigned char). For float-valued pixel types, the normalization is done regarding the minimum/maximum value of the image data instead. **/ unsigned int normalization() const { return _normalization; } //! Return title of the associated window as a C-string. /** \note Window title may be not visible, depending on the used window manager or if the current display is in fullscreen mode. **/ const char *title() const { return _title; } //! Return width of the associated window. /** \note The width of the display (i.e. the width of the pixel data buffer associated to the CImgDisplay instance) may be different from the actual width of the associated window. **/ int window_width() const { return (int)_window_width; } //! Return height of the associated window. /** \note The height of the display (i.e. the height of the pixel data buffer associated to the CImgDisplay instance) may be different from the actual height of the associated window. **/ int window_height() const { return (int)_window_height; } //! Return X-coordinate of the associated window. /** \note The returned coordinate corresponds to the location of the upper-left corner of the associated window. **/ int window_x() const { return _window_x; } //! Return Y-coordinate of the associated window. /** \note The returned coordinate corresponds to the location of the upper-left corner of the associated window. **/ int window_y() const { return _window_y; } //! Return X-coordinate of the mouse pointer. /** \note - If the mouse pointer is outside window area, \c -1 is returned. - Otherwise, the returned value is in the range [0,width()-1]. **/ int mouse_x() const { return _mouse_x; } //! Return Y-coordinate of the mouse pointer. /** \note - If the mouse pointer is outside window area, \c -1 is returned. - Otherwise, the returned value is in the range [0,height()-1]. **/ int mouse_y() const { return _mouse_y; } //! Return current state of the mouse buttons. /** \note Three mouse buttons can be managed. If one button is pressed, its corresponding bit in the returned value is set: - bit \c 0 (value \c 0x1): State of the left mouse button. - bit \c 1 (value \c 0x2): State of the right mouse button. - bit \c 2 (value \c 0x4): State of the middle mouse button. Several bits can be activated if more than one button are pressed at the same time. \par Example \code CImgDisplay disp(400,400); while (!disp.is_closed()) { if (disp.button()&1) { // Left button clicked. ... } if (disp.button()&2) { // Right button clicked. ... } if (disp.button()&4) { // Middle button clicked. ... } disp.wait(); } \endcode **/ unsigned int button() const { return _button; } //! Return current state of the mouse wheel. /** \note - The returned value can be positive or negative depending on whether the mouse wheel has been scrolled forward or backward. - Scrolling the wheel forward add \c 1 to the wheel value. - Scrolling the wheel backward substract \c 1 to the wheel value. - The returned value cumulates the number of forward of backward scrolls since the creation of the display, or since the last reset of the wheel value (using set_wheel()). It is strongly recommended to quickly reset the wheel counter when an action has been performed regarding the current wheel value. Otherwise, the returned wheel value may be for instance \c 0 despite the fact that many scrolls have been done (as many in forward as in backward directions). \par Example \code CImgDisplay disp(400,400); while (!disp.is_closed()) { if (disp.wheel()) { int counter = disp.wheel(); // Read the state of the mouse wheel. ... // Do what you want with 'counter'. disp.set_wheel(); // Reset the wheel value to 0. } disp.wait(); } \endcode **/ int wheel() const { return _wheel; } //! Return one entry from the pressed keys history. /** \param pos Indice to read from the pressed keys history (indice \c 0 corresponds to latest entry). \return Keycode of a pressed key or \c 0 for a released key. \note - Each CImgDisplay stores a history of the pressed keys in a buffer of size \c 128. When a new key is pressed, its keycode is stored in the pressed keys history. When a key is released, \c 0 is put instead. This means that up to the 64 last pressed keys may be read from the pressed keys history. When a new value is stored, the pressed keys history is shifted so that the latest entry is always stored at position \c 0. - Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). **/ unsigned int key(const unsigned int pos=0) const { return pos<(sizeof(_keys)/sizeof(unsigned int))?_keys[pos]:0; } //! Return one entry from the released keys history. /** \param pos Indice to read from the released keys history (indice \c 0 corresponds to latest entry). \return Keycode of a released key or \c 0 for a pressed key. \note - Each CImgDisplay stores a history of the released keys in a buffer of size \c 128. When a new key is released, its keycode is stored in the pressed keys history. When a key is pressed, \c 0 is put instead. This means that up to the 64 last released keys may be read from the released keys history. When a new value is stored, the released keys history is shifted so that the latest entry is always stored at position \c 0. - Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). **/ unsigned int released_key(const unsigned int pos=0) const { return pos<(sizeof(_released_keys)/sizeof(unsigned int))?_released_keys[pos]:0; } //! Return keycode corresponding to the specified string. /** \note Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). \par Example \code const unsigned int keyTAB = CImgDisplay::keycode("TAB"); // Return cimg::keyTAB. \endcode **/ static unsigned int keycode(const char *const keycode) { #define _cimg_keycode(k) if (!cimg::strcasecmp(keycode,#k)) return cimg::key##k; _cimg_keycode(ESC); _cimg_keycode(F1); _cimg_keycode(F2); _cimg_keycode(F3); _cimg_keycode(F4); _cimg_keycode(F5); _cimg_keycode(F6); _cimg_keycode(F7); _cimg_keycode(F8); _cimg_keycode(F9); _cimg_keycode(F10); _cimg_keycode(F11); _cimg_keycode(F12); _cimg_keycode(PAUSE); _cimg_keycode(1); _cimg_keycode(2); _cimg_keycode(3); _cimg_keycode(4); _cimg_keycode(5); _cimg_keycode(6); _cimg_keycode(7); _cimg_keycode(8); _cimg_keycode(9); _cimg_keycode(0); _cimg_keycode(BACKSPACE); _cimg_keycode(INSERT); _cimg_keycode(HOME); _cimg_keycode(PAGEUP); _cimg_keycode(TAB); _cimg_keycode(Q); _cimg_keycode(W); _cimg_keycode(E); _cimg_keycode(R); _cimg_keycode(T); _cimg_keycode(Y); _cimg_keycode(U); _cimg_keycode(I); _cimg_keycode(O); _cimg_keycode(P); _cimg_keycode(DELETE); _cimg_keycode(END); _cimg_keycode(PAGEDOWN); _cimg_keycode(CAPSLOCK); _cimg_keycode(A); _cimg_keycode(S); _cimg_keycode(D); _cimg_keycode(F); _cimg_keycode(G); _cimg_keycode(H); _cimg_keycode(J); _cimg_keycode(K); _cimg_keycode(L); _cimg_keycode(ENTER); _cimg_keycode(SHIFTLEFT); _cimg_keycode(Z); _cimg_keycode(X); _cimg_keycode(C); _cimg_keycode(V); _cimg_keycode(B); _cimg_keycode(N); _cimg_keycode(M); _cimg_keycode(SHIFTRIGHT); _cimg_keycode(ARROWUP); _cimg_keycode(CTRLLEFT); _cimg_keycode(APPLEFT); _cimg_keycode(ALT); _cimg_keycode(SPACE); _cimg_keycode(ALTGR); _cimg_keycode(APPRIGHT); _cimg_keycode(MENU); _cimg_keycode(CTRLRIGHT); _cimg_keycode(ARROWLEFT); _cimg_keycode(ARROWDOWN); _cimg_keycode(ARROWRIGHT); _cimg_keycode(PAD0); _cimg_keycode(PAD1); _cimg_keycode(PAD2); _cimg_keycode(PAD3); _cimg_keycode(PAD4); _cimg_keycode(PAD5); _cimg_keycode(PAD6); _cimg_keycode(PAD7); _cimg_keycode(PAD8); _cimg_keycode(PAD9); _cimg_keycode(PADADD); _cimg_keycode(PADSUB); _cimg_keycode(PADMUL); _cimg_keycode(PADDIV); return 0; } //! Return the current refresh rate, in frames per second. /** \note Returns a significant value when the current instance is used to display successive frames. It measures the delay between successive calls to frames_per_second(). **/ float frames_per_second() { if (!_fps_timer) _fps_timer = cimg::time(); const float delta = (cimg::time()-_fps_timer)/1000.0f; ++_fps_frames; if (delta>=1) { _fps_fps = _fps_frames/delta; _fps_frames = 0; _fps_timer = cimg::time(); } return _fps_fps; } //@} //--------------------------------------- // //! \name Window Manipulation //@{ //--------------------------------------- #if cimg_display==0 //! Display image on associated window. /** \param img Input image to display. \note This method returns immediately. **/ template CImgDisplay& display(const CImg& img) { return assign(img); } #endif //! Display list of images on associated window. /** \param list List of images to display. \param axis Axis used to append the images along, for the visualization (can be \c x, \c y, \c z or \c c). \param align Relative position of aligned images when displaying lists with images of different sizes (\c 0 for upper-left, \c 0.5 for centering and \c 1 for lower-right). \note This method returns immediately. **/ template CImgDisplay& display(const CImgList& list, const char axis='x', const float align=0) { return display(list.get_append(axis,align)); } #if cimg_display==0 //! Show (closed) associated window on the screen. /** \note - Force the associated window of a display to be visible on the screen, even if it has been closed before. - Using show() on a visible display does nothing. **/ CImgDisplay& show() { return assign(); } //! Close (visible) associated window and make it disappear from the screen. /** \note - A closed display only means the associated window is not visible anymore. This does not mean the display has been destroyed. Use show() to make the associated window reappear. - Using close() on a closed display does nothing. **/ CImgDisplay& close() { return assign(); } //! Move associated window to a new location. /** \param pos_x X-coordinate of the new window location. \param pos_y Y-coordinate of the new window location. \note Depending on the window manager behavior, this method may not succeed (no exceptions are thrown nevertheless). **/ CImgDisplay& move(const int pos_x, const int pos_y) { return assign(pos_x,pos_y); } #endif //! Resize display to the size of the associated window. /** \param force_redraw Tells if the previous window content must be updated and refreshed as well. \note - Calling this method ensures that width() and window_width() become equal, as well as height() and window_height(). - The associated window is also resized to specified dimensions. **/ CImgDisplay& resize(const bool force_redraw=true) { resize(_window_width,_window_height,force_redraw); return *this; } #if cimg_display==0 //! Resize display to the specified size. /** \param width Requested display width. \param height Requested display height. \param force_redraw Tells if the previous window content must be updated and refreshed as well. \note The associated window is also resized to specified dimensions. **/ CImgDisplay& resize(const int width, const int height, const bool force_redraw=true) { return assign(width,height,0,3,force_redraw); } #endif //! Resize display to the size of an input image. /** \param img Input image to take size from. \param force_redraw Tells if the previous window content must be resized and updated as well. \note - Calling this method ensures that width() and img.width() become equal, as well as height() and img.height(). - The associated window is also resized to specified dimensions. **/ template CImgDisplay& resize(const CImg& img, const bool force_redraw=true) { return resize(img._width,img._height,force_redraw); } //! Resize display to the size of another CImgDisplay instance. /** \param disp Input display to take size from. \param force_redraw Tells if the previous window content must be resized and updated as well. \note - Calling this method ensures that width() and disp.width() become equal, as well as height() and disp.height(). - The associated window is also resized to specified dimensions. **/ CImgDisplay& resize(const CImgDisplay& disp, const bool force_redraw=true) { return resize(disp._width,disp._height,force_redraw); } // [internal] Render pixel buffer with size (wd,hd) from source buffer of size (ws,hs). template static void _render_resize(const T *ptrs, const unsigned int ws, const unsigned int hs, t *ptrd, const unsigned int wd, const unsigned int hd) { unsigned int *const offx = new unsigned int[wd], *const offy = new unsigned int[hd+1], *poffx, *poffy; float s, curr, old; s = (float)ws/wd; poffx = offx; curr = 0; for (unsigned int x = 0; xstd::printf(). \warning As the first argument is a format string, it is highly recommended to write \code disp.set_title("%s",window_title); \endcode instead of \code disp.set_title(window_title); \endcode if \c window_title can be arbitrary, to prevent nasty memory access. **/ CImgDisplay& set_title(const char *const format, ...) { return assign(0,0,format); } #endif //! Enable or disable fullscreen mode. /** \param is_fullscreen Tells is the fullscreen mode must be activated or not. \param force_redraw Tells if the previous window content must be displayed as well. \note - When the fullscreen mode is enabled, the associated window fills the entire screen but the size of the current display is not modified. - The screen resolution may be switched to fit the associated window size and ensure it appears the largest as possible. For X-Window (X11) users, the configuration flag \c cimg_use_xrandr has to be set to allow the screen resolution change (requires the X11 extensions to be enabled). **/ CImgDisplay& set_fullscreen(const bool is_fullscreen, const bool force_redraw=true) { if (is_empty() || _is_fullscreen==is_fullscreen) return *this; return toggle_fullscreen(force_redraw); } #if cimg_display==0 //! Toggle fullscreen mode. /** \param force_redraw Tells if the previous window content must be displayed as well. \note Enable fullscreen mode if it was not enabled, and disable it otherwise. **/ CImgDisplay& toggle_fullscreen(const bool force_redraw=true) { return assign(_width,_height,0,3,force_redraw); } //! Show mouse pointer. /** \note Depending on the window manager behavior, this method may not succeed (no exceptions are thrown nevertheless). **/ CImgDisplay& show_mouse() { return assign(); } //! Hide mouse pointer. /** \note Depending on the window manager behavior, this method may not succeed (no exceptions are thrown nevertheless). **/ CImgDisplay& hide_mouse() { return assign(); } //! Move mouse pointer to a specified location. /** \note Depending on the window manager behavior, this method may not succeed (no exceptions are thrown nevertheless). **/ CImgDisplay& set_mouse(const int pos_x, const int pos_y) { return assign(pos_x,pos_y); } #endif //! Simulate a mouse button release event. /** \note All mouse buttons are considered released at the same time. **/ CImgDisplay& set_button() { _button = 0; _is_event = true; return *this; } //! Simulate a mouse button press or release event. /** \param button Buttons event code, where each button is associated to a single bit. \param is_pressed Tells if the mouse button is considered as pressed or released. **/ CImgDisplay& set_button(const unsigned int button, const bool is_pressed=true) { const unsigned int buttoncode = button==1?1:button==2?2:button==3?4:0; if (is_pressed) _button |= buttoncode; else _button &= ~buttoncode; _is_event = buttoncode?true:false; return *this; } //! Flush all mouse wheel events. /** \note Make wheel() to return \c 0, if called afterwards. **/ CImgDisplay& set_wheel() { _wheel = 0; _is_event = true; return *this; } //! Simulate a wheel event. /** \param amplitude Amplitude of the wheel scrolling to simulate. \note Make wheel() to return \c amplitude, if called afterwards. **/ CImgDisplay& set_wheel(const int amplitude) { _wheel+=amplitude; _is_event = amplitude?true:false; return *this; } //! Flush all key events. /** \note Make key() to return \c 0, if called afterwards. **/ CImgDisplay& set_key() { std::memset((void*)_keys,0,sizeof(_keys)); std::memset((void*)_released_keys,0,sizeof(_released_keys)); _is_keyESC = _is_keyF1 = _is_keyF2 = _is_keyF3 = _is_keyF4 = _is_keyF5 = _is_keyF6 = _is_keyF7 = _is_keyF8 = _is_keyF9 = _is_keyF10 = _is_keyF11 = _is_keyF12 = _is_keyPAUSE = _is_key1 = _is_key2 = _is_key3 = _is_key4 = _is_key5 = _is_key6 = _is_key7 = _is_key8 = _is_key9 = _is_key0 = _is_keyBACKSPACE = _is_keyINSERT = _is_keyHOME = _is_keyPAGEUP = _is_keyTAB = _is_keyQ = _is_keyW = _is_keyE = _is_keyR = _is_keyT = _is_keyY = _is_keyU = _is_keyI = _is_keyO = _is_keyP = _is_keyDELETE = _is_keyEND = _is_keyPAGEDOWN = _is_keyCAPSLOCK = _is_keyA = _is_keyS = _is_keyD = _is_keyF = _is_keyG = _is_keyH = _is_keyJ = _is_keyK = _is_keyL = _is_keyENTER = _is_keySHIFTLEFT = _is_keyZ = _is_keyX = _is_keyC = _is_keyV = _is_keyB = _is_keyN = _is_keyM = _is_keySHIFTRIGHT = _is_keyARROWUP = _is_keyCTRLLEFT = _is_keyAPPLEFT = _is_keyALT = _is_keySPACE = _is_keyALTGR = _is_keyAPPRIGHT = _is_keyMENU = _is_keyCTRLRIGHT = _is_keyARROWLEFT = _is_keyARROWDOWN = _is_keyARROWRIGHT = _is_keyPAD0 = _is_keyPAD1 = _is_keyPAD2 = _is_keyPAD3 = _is_keyPAD4 = _is_keyPAD5 = _is_keyPAD6 = _is_keyPAD7 = _is_keyPAD8 = _is_keyPAD9 = _is_keyPADADD = _is_keyPADSUB = _is_keyPADMUL = _is_keyPADDIV = false; _is_event = true; return *this; } //! Simulate a keyboard press/release event. /** \param keycode Keycode of the associated key. \param is_pressed Tells if the key is considered as pressed or released. \note Keycode constants are defined in the cimg namespace and are architecture-dependent. Use them to ensure your code stay portable (see cimg::keyESC). **/ CImgDisplay& set_key(const unsigned int keycode, const bool is_pressed=true) { #define _cimg_set_key(k) if (keycode==cimg::key##k) _is_key##k = is_pressed; _cimg_set_key(ESC); _cimg_set_key(F1); _cimg_set_key(F2); _cimg_set_key(F3); _cimg_set_key(F4); _cimg_set_key(F5); _cimg_set_key(F6); _cimg_set_key(F7); _cimg_set_key(F8); _cimg_set_key(F9); _cimg_set_key(F10); _cimg_set_key(F11); _cimg_set_key(F12); _cimg_set_key(PAUSE); _cimg_set_key(1); _cimg_set_key(2); _cimg_set_key(3); _cimg_set_key(4); _cimg_set_key(5); _cimg_set_key(6); _cimg_set_key(7); _cimg_set_key(8); _cimg_set_key(9); _cimg_set_key(0); _cimg_set_key(BACKSPACE); _cimg_set_key(INSERT); _cimg_set_key(HOME); _cimg_set_key(PAGEUP); _cimg_set_key(TAB); _cimg_set_key(Q); _cimg_set_key(W); _cimg_set_key(E); _cimg_set_key(R); _cimg_set_key(T); _cimg_set_key(Y); _cimg_set_key(U); _cimg_set_key(I); _cimg_set_key(O); _cimg_set_key(P); _cimg_set_key(DELETE); _cimg_set_key(END); _cimg_set_key(PAGEDOWN); _cimg_set_key(CAPSLOCK); _cimg_set_key(A); _cimg_set_key(S); _cimg_set_key(D); _cimg_set_key(F); _cimg_set_key(G); _cimg_set_key(H); _cimg_set_key(J); _cimg_set_key(K); _cimg_set_key(L); _cimg_set_key(ENTER); _cimg_set_key(SHIFTLEFT); _cimg_set_key(Z); _cimg_set_key(X); _cimg_set_key(C); _cimg_set_key(V); _cimg_set_key(B); _cimg_set_key(N); _cimg_set_key(M); _cimg_set_key(SHIFTRIGHT); _cimg_set_key(ARROWUP); _cimg_set_key(CTRLLEFT); _cimg_set_key(APPLEFT); _cimg_set_key(ALT); _cimg_set_key(SPACE); _cimg_set_key(ALTGR); _cimg_set_key(APPRIGHT); _cimg_set_key(MENU); _cimg_set_key(CTRLRIGHT); _cimg_set_key(ARROWLEFT); _cimg_set_key(ARROWDOWN); _cimg_set_key(ARROWRIGHT); _cimg_set_key(PAD0); _cimg_set_key(PAD1); _cimg_set_key(PAD2); _cimg_set_key(PAD3); _cimg_set_key(PAD4); _cimg_set_key(PAD5); _cimg_set_key(PAD6); _cimg_set_key(PAD7); _cimg_set_key(PAD8); _cimg_set_key(PAD9); _cimg_set_key(PADADD); _cimg_set_key(PADSUB); _cimg_set_key(PADMUL); _cimg_set_key(PADDIV); if (is_pressed) { if (*_keys) std::memmove((void*)(_keys+1),(void*)_keys,sizeof(_keys) - sizeof(unsigned int)); *_keys = keycode; if (*_released_keys) { std::memmove((void*)(_released_keys+1),(void*)_released_keys,sizeof(_released_keys) - sizeof(unsigned int)); *_released_keys = 0; } } else { if (*_keys) { std::memmove((void*)(_keys+1),(void*)_keys,sizeof(_keys) - sizeof(unsigned int)); *_keys = 0; } if (*_released_keys) std::memmove((void*)(_released_keys+1),(void*)_released_keys,sizeof(_released_keys) - sizeof(unsigned int)); *_released_keys = keycode; } _is_event = keycode?true:false; return *this; } //! Flush all display events. /** \note Remove all passed events from the current display. **/ CImgDisplay& flush() { set_key().set_button().set_wheel(); _is_resized = _is_moved = _is_event = false; _fps_timer = _fps_frames = _timer = 0; _fps_fps = 0; return *this; } //! Wait for any user event occuring on the current display. CImgDisplay& wait() { wait(*this); return *this; } //! Wait for a given number of milliseconds since the last call to wait(). /** \param milliseconds Number of milliseconds to wait for. \note Similar to cimg::wait(). **/ CImgDisplay& wait(const unsigned int milliseconds) { cimg::_wait(milliseconds,_timer); return *this; } //! Wait for any event occuring on the display \c disp1. static void wait(CImgDisplay& disp1) { disp1._is_event = 0; while (!disp1._is_closed && !disp1._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1 or \c disp2. static void wait(CImgDisplay& disp1, CImgDisplay& disp2) { disp1._is_event = disp2._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed) && !disp1._is_event && !disp2._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2 or \c disp3. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3) { disp1._is_event = disp2._is_event = disp3._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3 or \c disp4. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4 or \c disp5. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4, ... \c disp6. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5, CImgDisplay& disp6) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = disp6._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed || !disp6._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event && !disp6._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4, ... \c disp7. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5, CImgDisplay& disp6, CImgDisplay& disp7) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = disp6._is_event = disp7._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed || !disp6._is_closed || !disp7._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event && !disp6._is_event && !disp7._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4, ... \c disp8. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5, CImgDisplay& disp6, CImgDisplay& disp7, CImgDisplay& disp8) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = disp6._is_event = disp7._is_event = disp8._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed || !disp6._is_closed || !disp7._is_closed || !disp8._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event && !disp6._is_event && !disp7._is_event && !disp8._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4, ... \c disp9. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5, CImgDisplay& disp6, CImgDisplay& disp7, CImgDisplay& disp8, CImgDisplay& disp9) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = disp6._is_event = disp7._is_event = disp8._is_event = disp9._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed || !disp6._is_closed || !disp7._is_closed || !disp8._is_closed || !disp9._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event && !disp6._is_event && !disp7._is_event && !disp8._is_event && !disp9._is_event) wait_all(); } //! Wait for any event occuring either on the display \c disp1, \c disp2, \c disp3, \c disp4, ... \c disp10. static void wait(CImgDisplay& disp1, CImgDisplay& disp2, CImgDisplay& disp3, CImgDisplay& disp4, CImgDisplay& disp5, CImgDisplay& disp6, CImgDisplay& disp7, CImgDisplay& disp8, CImgDisplay& disp9, CImgDisplay& disp10) { disp1._is_event = disp2._is_event = disp3._is_event = disp4._is_event = disp5._is_event = disp6._is_event = disp7._is_event = disp8._is_event = disp9._is_event = disp10._is_event = 0; while ((!disp1._is_closed || !disp2._is_closed || !disp3._is_closed || !disp4._is_closed || !disp5._is_closed || !disp6._is_closed || !disp7._is_closed || !disp8._is_closed || !disp9._is_closed || !disp10._is_closed) && !disp1._is_event && !disp2._is_event && !disp3._is_event && !disp4._is_event && !disp5._is_event && !disp6._is_event && !disp7._is_event && !disp8._is_event && !disp9._is_event && !disp10._is_event) wait_all(); } #if cimg_display==0 //! Wait for any window event occuring in any opened CImgDisplay. static void wait_all() { return _no_display_exception(); } //! Render image into internal display buffer. /** \param img Input image data to render. \note - Convert image data representation into the internal display buffer (architecture-dependent structure). - The content of the associated window is not modified, until paint() is called. - Should not be used for common CImgDisplay uses, since display() is more useful. **/ template CImgDisplay& render(const CImg& img) { return assign(img); } //! Paint internal display buffer on associated window. /** \note - Update the content of the associated window with the internal display buffer, e.g. after a render() call. - Should not be used for common CImgDisplay uses, since display() is more useful. **/ CImgDisplay& paint() { return assign(); } //! Take a snapshot of the associated window content. /** \param[out] img Output snapshot. Can be empty on input. **/ template const CImgDisplay& snapshot(CImg& img) const { cimg::unused(img); _no_display_exception(); return *this; } #endif // X11-based implementation //-------------------------- #if cimg_display==1 Atom _wm_window_atom, _wm_protocol_atom; Window _window, _background_window; Colormap _colormap; XImage *_image; void *_data; #ifdef cimg_use_xshm XShmSegmentInfo *_shminfo; #endif static int screen_width() { Display *const dpy = cimg::X11_attr().display; int res = 0; if (!dpy) { Display *const _dpy = XOpenDisplay(0); if (!_dpy) throw CImgDisplayException("CImgDisplay::screen_width(): Failed to open X11 display."); res = DisplayWidth(_dpy,DefaultScreen(_dpy)); XCloseDisplay(_dpy); } else { #ifdef cimg_use_xrandr if (cimg::X11_attr().resolutions && cimg::X11_attr().curr_resolution) res = cimg::X11_attr().resolutions[cimg::X11_attr().curr_resolution].width; else res = DisplayWidth(dpy,DefaultScreen(dpy)); #else res = DisplayWidth(dpy,DefaultScreen(dpy)); #endif } return res; } static int screen_height() { Display *const dpy = cimg::X11_attr().display; int res = 0; if (!dpy) { Display *const _dpy = XOpenDisplay(0); if (!_dpy) throw CImgDisplayException("CImgDisplay::screen_height(): Failed to open X11 display."); res = DisplayHeight(_dpy,DefaultScreen(_dpy)); XCloseDisplay(_dpy); } else { #ifdef cimg_use_xrandr if (cimg::X11_attr().resolutions && cimg::X11_attr().curr_resolution) res = cimg::X11_attr().resolutions[cimg::X11_attr().curr_resolution].height; else res = DisplayHeight(dpy,DefaultScreen(dpy)); #else res = DisplayHeight(dpy,DefaultScreen(dpy)); #endif } return res; } static void wait_all() { Display *const dpy = cimg::X11_attr().display; if (!dpy) return; bool stop_flag = true; XEvent event; if (cimg::mutex(13,2)) { // Another thread is already waiting. cimg::mutex(13); // Wait for the other thread to finish. cimg::mutex(13,0); return; } while (!stop_flag) { XLockDisplay(dpy); XNextEvent(dpy,&event); XUnlockDisplay(dpy); for (unsigned int i = 0; i_is_closed && event.xany.window==cimg::X11_attr().wins[i]->_window) { XLockDisplay(dpy); cimg::X11_attr().wins[i]->_handle_events(&event); if (cimg::X11_attr().wins[i]->_is_event) stop_flag = true; XUnlockDisplay(dpy); } } cimg::mutex(13,0); } void _handle_events(const XEvent *const pevent) { Display *const dpy = cimg::X11_attr().display; XEvent event = *pevent; switch (event.type) { case ClientMessage : { if ((int)event.xclient.message_type==(int)_wm_protocol_atom && (int)event.xclient.data.l[0]==(int)_wm_window_atom) { XUnmapWindow(cimg::X11_attr().display,_window); _is_closed = _is_event = true; } } break; case ConfigureNotify : { while (XCheckWindowEvent(dpy,_window,StructureNotifyMask,&event)) {} const unsigned int nw = event.xconfigure.width, nh = event.xconfigure.height; const int nx = event.xconfigure.x, ny = event.xconfigure.y; if (nw && nh && (nw!=_window_width || nh!=_window_height)) { _window_width = nw; _window_height = nh; _mouse_x = _mouse_y = -1; XResizeWindow(dpy,_window,_window_width,_window_height); _is_resized = _is_event = true; } if (nx!=_window_x || ny!=_window_y) { _window_x = nx; _window_y = ny; _is_moved = _is_event = true; } } break; case Expose : { while (XCheckWindowEvent(dpy,_window,ExposureMask,&event)) {} _paint(false); if (_is_fullscreen) { XWindowAttributes attr; XGetWindowAttributes(dpy,_window,&attr); while (attr.map_state!=IsViewable) XSync(dpy,0); XSetInputFocus(dpy,_window,RevertToParent,CurrentTime); } } break; case ButtonPress : { do { _mouse_x = event.xmotion.x; _mouse_y = event.xmotion.y; if (_mouse_x<0 || _mouse_y<0 || _mouse_x>=width() || _mouse_y>=height()) _mouse_x = _mouse_y = -1; switch (event.xbutton.button) { case 1 : set_button(1); break; case 3 : set_button(2); break; case 2 : set_button(3); break; } } while (XCheckWindowEvent(dpy,_window,ButtonPressMask,&event)); } break; case ButtonRelease : { do { _mouse_x = event.xmotion.x; _mouse_y = event.xmotion.y; if (_mouse_x<0 || _mouse_y<0 || _mouse_x>=width() || _mouse_y>=height()) _mouse_x = _mouse_y = -1; switch (event.xbutton.button) { case 1 : set_button(1,false); break; case 3 : set_button(2,false); break; case 2 : set_button(3,false); break; case 4 : set_wheel(1); break; case 5 : set_wheel(-1); break; } } while (XCheckWindowEvent(dpy,_window,ButtonReleaseMask,&event)); } break; case KeyPress : { char tmp = 0; KeySym ksym; XLookupString(&event.xkey,&tmp,1,&ksym,0); set_key((unsigned int)ksym,true); } break; case KeyRelease : { char keys_return[32]; // Check that the key has been physically unpressed. XQueryKeymap(dpy,keys_return); const unsigned int kc = event.xkey.keycode, kc1 = kc/8, kc2 = kc%8; const bool is_key_pressed = kc1>=32?false:(keys_return[kc1]>>kc2)&1; if (!is_key_pressed) { char tmp = 0; KeySym ksym; XLookupString(&event.xkey,&tmp,1,&ksym,0); set_key((unsigned int)ksym,false); } } break; case EnterNotify: { while (XCheckWindowEvent(dpy,_window,EnterWindowMask,&event)) {} _mouse_x = event.xmotion.x; _mouse_y = event.xmotion.y; if (_mouse_x<0 || _mouse_y<0 || _mouse_x>=width() || _mouse_y>=height()) _mouse_x = _mouse_y = -1; } break; case LeaveNotify : { while (XCheckWindowEvent(dpy,_window,LeaveWindowMask,&event)) {} _mouse_x = _mouse_y =-1; _is_event = true; } break; case MotionNotify : { while (XCheckWindowEvent(dpy,_window,PointerMotionMask,&event)) {} _mouse_x = event.xmotion.x; _mouse_y = event.xmotion.y; if (_mouse_x<0 || _mouse_y<0 || _mouse_x>=width() || _mouse_y>=height()) _mouse_x = _mouse_y = -1; _is_event = true; } break; } } static void* _events_thread(void *) { // Thread to manage events for all opened display windows. Display *const dpy = cimg::X11_attr().display; XEvent event; pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,0); pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,0); for (;;) { XLockDisplay(dpy); bool event_flag = XCheckTypedEvent(dpy,ClientMessage,&event); if (!event_flag) event_flag = XCheckMaskEvent(dpy, ExposureMask | StructureNotifyMask | ButtonPressMask| KeyPressMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask| ButtonReleaseMask | KeyReleaseMask,&event); if (event_flag) for (unsigned int i = 0; i_is_closed && event.xany.window==cimg::X11_attr().wins[i]->_window) cimg::X11_attr().wins[i]->_handle_events(&event); XUnlockDisplay(dpy); pthread_testcancel(); cimg::sleep(8); } return 0; } void _set_colormap(Colormap& _colormap, const unsigned int dim) { XColor colormap[256]; switch (dim) { case 1 : { // colormap for greyscale images for (unsigned int index = 0; index<256; ++index) { colormap[index].pixel = index; colormap[index].red = colormap[index].green = colormap[index].blue = (unsigned short)(index<<8); colormap[index].flags = DoRed | DoGreen | DoBlue; } } break; case 2 : { // colormap for RG images for (unsigned int index = 0, r = 8; r<256; r+=16) for (unsigned int g = 8; g<256; g+=16) { colormap[index].pixel = index; colormap[index].red = colormap[index].blue = (unsigned short)(r<<8); colormap[index].green = (unsigned short)(g<<8); colormap[index++].flags = DoRed | DoGreen | DoBlue; } } break; default : { // colormap for RGB images for (unsigned int index = 0, r = 16; r<256; r+=32) for (unsigned int g = 16; g<256; g+=32) for (unsigned int b = 32; b<256; b+=64) { colormap[index].pixel = index; colormap[index].red = (unsigned short)(r<<8); colormap[index].green = (unsigned short)(g<<8); colormap[index].blue = (unsigned short)(b<<8); colormap[index++].flags = DoRed | DoGreen | DoBlue; } } } XStoreColors(cimg::X11_attr().display,_colormap,colormap,256); } void _map_window() { Display *const dpy = cimg::X11_attr().display; bool is_exposed = false, is_mapped = false; XWindowAttributes attr; XEvent event; XMapRaised(dpy,_window); do { // Wait for the window to be mapped. XWindowEvent(dpy,_window,StructureNotifyMask | ExposureMask,&event); switch (event.type) { case MapNotify : is_mapped = true; break; case Expose : is_exposed = true; break; } } while (!is_exposed || !is_mapped); do { // Wait for the window to be visible. XGetWindowAttributes(dpy,_window,&attr); if (attr.map_state!=IsViewable) { XSync(dpy,0); cimg::sleep(10); } } while (attr.map_state!=IsViewable); _window_x = attr.x; _window_y = attr.y; } void _paint(const bool wait_expose=true) { if (_is_closed || !_image) return; Display *const dpy = cimg::X11_attr().display; if (wait_expose) { // Send an expose event sticked to display window to force repaint. XEvent event; event.xexpose.type = Expose; event.xexpose.serial = 0; event.xexpose.send_event = 1; event.xexpose.display = dpy; event.xexpose.window = _window; event.xexpose.x = 0; event.xexpose.y = 0; event.xexpose.width = width(); event.xexpose.height = height(); event.xexpose.count = 0; XSendEvent(dpy,_window,0,0,&event); } else { // Repaint directly (may be called from the expose event). GC gc = DefaultGC(dpy,DefaultScreen(dpy)); #ifdef cimg_use_xshm if (_shminfo) { const int completion_type = XShmGetEventBase(dpy) + ShmCompletion; XEvent event; XShmPutImage(dpy,_window,gc,_image,0,0,0,0,_width,_height,1); do { XNextEvent(dpy,&event); } while (event.type!=completion_type); // Wait for the image drawing to be completed. } else XPutImage(dpy,_window,gc,_image,0,0,0,0,_width,_height); #else XPutImage(dpy,_window,gc,_image,0,0,0,0,_width,_height); #endif } } template void _resize(T pixel_type, const unsigned int ndimx, const unsigned int ndimy, const bool force_redraw) { Display *const dpy = cimg::X11_attr().display; cimg::unused(pixel_type); #ifdef cimg_use_xshm if (_shminfo) { XShmSegmentInfo *const nshminfo = new XShmSegmentInfo; XImage *const nimage = XShmCreateImage(dpy,DefaultVisual(dpy,DefaultScreen(dpy)), cimg::X11_attr().nb_bits,ZPixmap,0,nshminfo,ndimx,ndimy); if (!nimage) { delete nshminfo; return; } else { nshminfo->shmid = shmget(IPC_PRIVATE,ndimx*ndimy*sizeof(T),IPC_CREAT | 0777); if (nshminfo->shmid==-1) { XDestroyImage(nimage); delete nshminfo; return; } else { nshminfo->shmaddr = nimage->data = (char*)shmat(nshminfo->shmid,0,0); if (nshminfo->shmaddr==(char*)-1) { shmctl(nshminfo->shmid,IPC_RMID,0); XDestroyImage(nimage); delete nshminfo; return; } else { nshminfo->readOnly = 0; cimg::X11_attr().is_shm_enabled = true; XErrorHandler oldXErrorHandler = XSetErrorHandler(_assign_xshm); XShmAttach(dpy,nshminfo); XFlush(dpy); XSetErrorHandler(oldXErrorHandler); if (!cimg::X11_attr().is_shm_enabled) { shmdt(nshminfo->shmaddr); shmctl(nshminfo->shmid,IPC_RMID,0); XDestroyImage(nimage); delete nshminfo; return; } else { T *const ndata = (T*)nimage->data; if (force_redraw) _render_resize((T*)_data,_width,_height,ndata,ndimx,ndimy); else std::memset(ndata,0,sizeof(T)*ndimx*ndimy); XShmDetach(dpy,_shminfo); XDestroyImage(_image); shmdt(_shminfo->shmaddr); shmctl(_shminfo->shmid,IPC_RMID,0); delete _shminfo; _shminfo = nshminfo; _image = nimage; _data = (void*)ndata; } } } } } else #endif { T *ndata = (T*)std::malloc(ndimx*ndimy*sizeof(T)); if (force_redraw) _render_resize((T*)_data,_width,_height,ndata,ndimx,ndimy); else std::memset(ndata,0,sizeof(T)*ndimx*ndimy); _data = (void*)ndata; XDestroyImage(_image); _image = XCreateImage(dpy,DefaultVisual(dpy,DefaultScreen(dpy)), cimg::X11_attr().nb_bits,ZPixmap,0,(char*)_data,ndimx,ndimy,8,0); } } void _init_fullscreen() { if (!_is_fullscreen || _is_closed) return; Display *const dpy = cimg::X11_attr().display; _background_window = 0; #ifdef cimg_use_xrandr int foo; if (XRRQueryExtension(dpy,&foo,&foo)) { XRRRotations(dpy,DefaultScreen(dpy),&cimg::X11_attr().curr_rotation); if (!cimg::X11_attr().resolutions) { cimg::X11_attr().resolutions = XRRSizes(dpy,DefaultScreen(dpy),&foo); cimg::X11_attr().nb_resolutions = (unsigned int)foo; } if (cimg::X11_attr().resolutions) { cimg::X11_attr().curr_resolution = 0; for (unsigned int i = 0; i=_width && nh>=_height && nw<=(unsigned int)(cimg::X11_attr().resolutions[cimg::X11_attr().curr_resolution].width) && nh<=(unsigned int)(cimg::X11_attr().resolutions[cimg::X11_attr().curr_resolution].height)) cimg::X11_attr().curr_resolution = i; } if (cimg::X11_attr().curr_resolution>0) { XRRScreenConfiguration *config = XRRGetScreenInfo(dpy,DefaultRootWindow(dpy)); XRRSetScreenConfig(dpy,config,DefaultRootWindow(dpy), cimg::X11_attr().curr_resolution,cimg::X11_attr().curr_rotation,CurrentTime); XRRFreeScreenConfigInfo(config); XSync(dpy,0); } } } if (!cimg::X11_attr().resolutions) cimg::warn(_cimgdisplay_instance "init_fullscreen(): Xrandr extension not supported by the X server.", cimgdisplay_instance); #endif const unsigned int sx = screen_width(), sy = screen_height(); if (sx==_width && sy==_height) return; XSetWindowAttributes winattr; winattr.override_redirect = 1; _background_window = XCreateWindow(dpy,DefaultRootWindow(dpy),0,0,sx,sy,0,0, InputOutput,CopyFromParent,CWOverrideRedirect,&winattr); const unsigned long buf_size = (unsigned long)sx*sy*(cimg::X11_attr().nb_bits==8?1:(cimg::X11_attr().nb_bits==16?2:4)); void *background_data = std::malloc(buf_size); std::memset(background_data,0,buf_size); XImage *background_image = XCreateImage(dpy,DefaultVisual(dpy,DefaultScreen(dpy)),cimg::X11_attr().nb_bits, ZPixmap,0,(char*)background_data,sx,sy,8,0); XEvent event; XSelectInput(dpy,_background_window,StructureNotifyMask); XMapRaised(dpy,_background_window); do XWindowEvent(dpy,_background_window,StructureNotifyMask,&event); while (event.type!=MapNotify); GC gc = DefaultGC(dpy,DefaultScreen(dpy)); #ifdef cimg_use_xshm if (_shminfo) XShmPutImage(dpy,_background_window,gc,background_image,0,0,0,0,sx,sy,0); else XPutImage(dpy,_background_window,gc,background_image,0,0,0,0,sx,sy); #else XPutImage(dpy,_background_window,gc,background_image,0,0,0,0,sx,sy); #endif XWindowAttributes attr; XGetWindowAttributes(dpy,_background_window,&attr); while (attr.map_state!=IsViewable) XSync(dpy,0); XDestroyImage(background_image); } void _desinit_fullscreen() { if (!_is_fullscreen) return; Display *const dpy = cimg::X11_attr().display; XUngrabKeyboard(dpy,CurrentTime); #ifdef cimg_use_xrandr if (cimg::X11_attr().resolutions && cimg::X11_attr().curr_resolution) { XRRScreenConfiguration *config = XRRGetScreenInfo(dpy,DefaultRootWindow(dpy)); XRRSetScreenConfig(dpy,config,DefaultRootWindow(dpy),0,cimg::X11_attr().curr_rotation,CurrentTime); XRRFreeScreenConfigInfo(config); XSync(dpy,0); cimg::X11_attr().curr_resolution = 0; } #endif if (_background_window) XDestroyWindow(dpy,_background_window); _background_window = 0; _is_fullscreen = false; } static int _assign_xshm(Display *dpy, XErrorEvent *error) { cimg::unused(dpy,error); cimg::X11_attr().is_shm_enabled = false; return 0; } void _assign(const unsigned int dimw, const unsigned int dimh, const char *const ptitle=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { // Allocate space for window title const char *const nptitle = ptitle?ptitle:""; const unsigned int s = std::strlen(nptitle) + 1; char *const tmp_title = s?new char[s]:0; if (s) std::memcpy(tmp_title,nptitle,s*sizeof(char)); // Destroy previous display window if existing if (!is_empty()) assign(); // Open X11 display and retrieve graphical properties. Display* &dpy = cimg::X11_attr().display; if (!dpy) { static const int xinit_status = XInitThreads(); cimg::unused(xinit_status); dpy = XOpenDisplay(0); if (!dpy) throw CImgDisplayException(_cimgdisplay_instance "assign(): Failed to open X11 display.", cimgdisplay_instance); cimg::X11_attr().nb_bits = DefaultDepth(dpy,DefaultScreen(dpy)); if (cimg::X11_attr().nb_bits!=8 && cimg::X11_attr().nb_bits!=16 && cimg::X11_attr().nb_bits!=24 && cimg::X11_attr().nb_bits!=32) throw CImgDisplayException(_cimgdisplay_instance "assign(): Invalid %u bits screen mode detected " "(only 8, 16, 24 and 32 bits modes are managed).", cimgdisplay_instance, cimg::X11_attr().nb_bits); XVisualInfo vtemplate; vtemplate.visualid = XVisualIDFromVisual(DefaultVisual(dpy,DefaultScreen(dpy))); int nb_visuals; XVisualInfo *vinfo = XGetVisualInfo(dpy,VisualIDMask,&vtemplate,&nb_visuals); if (vinfo && vinfo->red_maskblue_mask) cimg::X11_attr().is_blue_first = true; cimg::X11_attr().byte_order = ImageByteOrder(dpy); XFree(vinfo); XLockDisplay(dpy); cimg::X11_attr().event_thread = new pthread_t; pthread_create(cimg::X11_attr().event_thread,0,_events_thread,0); } else XLockDisplay(dpy); // Set display variables. _width = cimg::min(dimw,(unsigned int)screen_width()); _height = cimg::min(dimh,(unsigned int)screen_height()); _normalization = normalization_type<4?normalization_type:3; _is_fullscreen = fullscreen_flag; _window_x = _window_y = 0; _is_closed = closed_flag; _title = tmp_title; flush(); // Create X11 window (and LUT, if 8bits display) if (_is_fullscreen) { if (!_is_closed) _init_fullscreen(); const unsigned int sx = screen_width(), sy = screen_height(); XSetWindowAttributes winattr; winattr.override_redirect = 1; _window = XCreateWindow(dpy,DefaultRootWindow(dpy),(sx-_width)/2,(sy-_height)/2,_width,_height,0,0, InputOutput,CopyFromParent,CWOverrideRedirect,&winattr); } else _window = XCreateSimpleWindow(dpy,DefaultRootWindow(dpy),0,0,_width,_height,0,0L,0L); XSelectInput(dpy,_window, ExposureMask | StructureNotifyMask | ButtonPressMask | KeyPressMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask | ButtonReleaseMask | KeyReleaseMask); XStoreName(dpy,_window,_title?_title:" "); if (cimg::X11_attr().nb_bits==8) { _colormap = XCreateColormap(dpy,_window,DefaultVisual(dpy,DefaultScreen(dpy)),AllocAll); _set_colormap(_colormap,3); XSetWindowColormap(dpy,_window,_colormap); } static const char *const _window_class = cimg_appname; XClassHint *const window_class = XAllocClassHint(); window_class->res_name = (char*)_window_class; window_class->res_class = (char*)_window_class; XSetClassHint(dpy,_window,window_class); XFree(window_class); _window_width = _width; _window_height = _height; // Create XImage #ifdef cimg_use_xshm _shminfo = 0; if (XShmQueryExtension(dpy)) { _shminfo = new XShmSegmentInfo; _image = XShmCreateImage(dpy,DefaultVisual(dpy,DefaultScreen(dpy)),cimg::X11_attr().nb_bits,ZPixmap,0,_shminfo,_width,_height); if (!_image) { delete _shminfo; _shminfo = 0; } else { _shminfo->shmid = shmget(IPC_PRIVATE,_image->bytes_per_line*_image->height,IPC_CREAT|0777); if (_shminfo->shmid==-1) { XDestroyImage(_image); delete _shminfo; _shminfo = 0; } else { _shminfo->shmaddr = _image->data = (char*)(_data = shmat(_shminfo->shmid,0,0)); if (_shminfo->shmaddr==(char*)-1) { shmctl(_shminfo->shmid,IPC_RMID,0); XDestroyImage(_image); delete _shminfo; _shminfo = 0; } else { _shminfo->readOnly = 0; cimg::X11_attr().is_shm_enabled = true; XErrorHandler oldXErrorHandler = XSetErrorHandler(_assign_xshm); XShmAttach(dpy,_shminfo); XSync(dpy,0); XSetErrorHandler(oldXErrorHandler); if (!cimg::X11_attr().is_shm_enabled) { shmdt(_shminfo->shmaddr); shmctl(_shminfo->shmid,IPC_RMID,0); XDestroyImage(_image); delete _shminfo; _shminfo = 0; } } } } } if (!_shminfo) #endif { const unsigned long buf_size = (unsigned long)_width*_height*(cimg::X11_attr().nb_bits==8?1:(cimg::X11_attr().nb_bits==16?2:4)); _data = std::malloc(buf_size); _image = XCreateImage(dpy,DefaultVisual(dpy,DefaultScreen(dpy)),cimg::X11_attr().nb_bits,ZPixmap,0,(char*)_data,_width,_height,8,0); } _wm_window_atom = XInternAtom(dpy,"WM_DELETE_WINDOW",0); _wm_protocol_atom = XInternAtom(dpy,"WM_PROTOCOLS",0); XSetWMProtocols(dpy,_window,&_wm_window_atom,1); if (_is_fullscreen) XGrabKeyboard(dpy,_window,1,GrabModeAsync,GrabModeAsync,CurrentTime); cimg::X11_attr().wins[cimg::X11_attr().nb_wins++]=this; if (!_is_closed) _map_window(); else { _window_x = _window_y = cimg::type::min(); } XUnlockDisplay(dpy); } CImgDisplay& assign() { if (is_empty()) return flush(); Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); // Remove display window from event thread list. unsigned int i; for (i = 0; ishmaddr); shmctl(_shminfo->shmid,IPC_RMID,0); delete _shminfo; _shminfo = 0; } else #endif XDestroyImage(_image); _data = 0; _image = 0; if (cimg::X11_attr().nb_bits==8) XFreeColormap(dpy,_colormap); _colormap = 0; XSync(dpy,0); // Reset display variables delete[] _title; _width = _height = _normalization = _window_width = _window_height = 0; _window_x = _window_y = 0; _is_fullscreen = false; _is_closed = true; _min = _max = 0; _title = 0; flush(); // End event thread and close display if necessary XUnlockDisplay(dpy); if (!cimg::X11_attr().nb_wins) { // Kill event thread //pthread_cancel(*cimg::X11_attr().event_thread); //XUnlockDisplay(cimg::X11_attr().display); //pthread_join(*cimg::X11_attr().event_thread,0); //delete cimg::X11_attr().event_thread; //cimg::X11_attr().event_thread = 0; // XUnlockDisplay(cimg::X11_attr().display); // <- This call make the library hang sometimes (fix required). // XCloseDisplay(cimg::X11_attr().display); // <- This call make the library hang sometimes (fix required). //cimg::X11_attr().display = 0; } return *this; } CImgDisplay& assign(const unsigned int dimw, const unsigned int dimh, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!dimw || !dimh) return assign(); _assign(dimw,dimh,title,normalization_type,fullscreen_flag,closed_flag); _min = _max = 0; std::memset(_data,0,(cimg::X11_attr().nb_bits==8?sizeof(unsigned char): (cimg::X11_attr().nb_bits==16?sizeof(unsigned short):sizeof(unsigned int)))*(unsigned long)_width*_height); return paint(); } template CImgDisplay& assign(const CImg& img, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!img) return assign(); CImg tmp; const CImg& nimg = (img._depth==1)?img:(tmp=img.get_projections2d(img._width/2,img._height/2,img._depth/2)); _assign(nimg._width,nimg._height,title,normalization_type,fullscreen_flag,closed_flag); if (_normalization==2) _min = (float)nimg.min_max(_max); return render(nimg).paint(); } template CImgDisplay& assign(const CImgList& list, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!list) return assign(); CImg tmp; const CImg img = list>'x', &nimg = (img._depth==1)?img:(tmp=img.get_projections2d(img._width/2,img._height/2,img._depth/2)); _assign(nimg._width,nimg._height,title,normalization_type,fullscreen_flag,closed_flag); if (_normalization==2) _min = (float)nimg.min_max(_max); return render(nimg).paint(); } CImgDisplay& assign(const CImgDisplay& disp) { if (!disp) return assign(); _assign(disp._width,disp._height,disp._title,disp._normalization,disp._is_fullscreen,disp._is_closed); std::memcpy(_data,disp._data,(cimg::X11_attr().nb_bits==8?sizeof(unsigned char): cimg::X11_attr().nb_bits==16?sizeof(unsigned short): sizeof(unsigned int))*(unsigned long)_width*_height); return paint(); } CImgDisplay& resize(const int nwidth, const int nheight, const bool force_redraw=true) { if (!nwidth || !nheight || (is_empty() && (nwidth<0 || nheight<0))) return assign(); if (is_empty()) return assign(nwidth,nheight); Display *const dpy = cimg::X11_attr().display; const unsigned int tmpdimx = (nwidth>0)?nwidth:(-nwidth*width()/100), tmpdimy = (nheight>0)?nheight:(-nheight*height()/100), dimx = tmpdimx?tmpdimx:1, dimy = tmpdimy?tmpdimy:1; XLockDisplay(dpy); if (_window_width!=dimx || _window_height!=dimy) { XWindowAttributes attr; for (unsigned int i = 0; i<10; ++i) { XResizeWindow(dpy,_window,dimx,dimy); XGetWindowAttributes(dpy,_window,&attr); if (attr.width==(int)dimx && attr.height==(int)dimy) break; cimg::wait(5); } } if (_width!=dimx || _height!=dimy) switch (cimg::X11_attr().nb_bits) { case 8 : { unsigned char pixel_type = 0; _resize(pixel_type,dimx,dimy,force_redraw); } break; case 16 : { unsigned short pixel_type = 0; _resize(pixel_type,dimx,dimy,force_redraw); } break; default : { unsigned int pixel_type = 0; _resize(pixel_type,dimx,dimy,force_redraw); } } _window_width = _width = dimx; _window_height = _height = dimy; _is_resized = false; XUnlockDisplay(dpy); if (_is_fullscreen) move((screen_width()-_width)/2,(screen_height()-_height)/2); if (force_redraw) return paint(); return *this; } CImgDisplay& toggle_fullscreen(const bool force_redraw=true) { if (is_empty()) return *this; if (force_redraw) { const unsigned long buf_size = (unsigned long)_width*_height*(cimg::X11_attr().nb_bits==8?1:(cimg::X11_attr().nb_bits==16?2:4)); void *image_data = std::malloc(buf_size); std::memcpy(image_data,_data,buf_size); assign(_width,_height,_title,_normalization,!_is_fullscreen,false); std::memcpy(_data,image_data,buf_size); std::free(image_data); return paint(); } return assign(_width,_height,_title,_normalization,!_is_fullscreen,false); } CImgDisplay& show() { if (is_empty() || !_is_closed) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); if (_is_fullscreen) _init_fullscreen(); _map_window(); _is_closed = false; XUnlockDisplay(dpy); return paint(); } CImgDisplay& close() { if (is_empty() || _is_closed) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); if (_is_fullscreen) _desinit_fullscreen(); XUnmapWindow(dpy,_window); _window_x = _window_y = -1; _is_closed = true; XUnlockDisplay(dpy); return *this; } CImgDisplay& move(const int posx, const int posy) { if (is_empty()) return *this; Display *const dpy = cimg::X11_attr().display; show(); XLockDisplay(dpy); XMoveWindow(dpy,_window,posx,posy); _window_x = posx; _window_y = posy; _is_moved = false; XUnlockDisplay(dpy); return paint(); } CImgDisplay& show_mouse() { if (is_empty()) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); XUndefineCursor(dpy,_window); XUnlockDisplay(dpy); return *this; } CImgDisplay& hide_mouse() { if (is_empty()) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); const char pix_data[8] = { 0 }; XColor col; col.red = col.green = col.blue = 0; Pixmap pix = XCreateBitmapFromData(dpy,_window,pix_data,8,8); Cursor cur = XCreatePixmapCursor(dpy,pix,pix,&col,&col,0,0); XFreePixmap(dpy,pix); XDefineCursor(dpy,_window,cur); XUnlockDisplay(dpy); return *this; } CImgDisplay& set_mouse(const int posx, const int posy) { if (is_empty() || _is_closed) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); XWarpPointer(dpy,0L,_window,0,0,0,0,posx,posy); _mouse_x = posx; _mouse_y = posy; _is_moved = false; XSync(dpy,0); XUnlockDisplay(dpy); return *this; } CImgDisplay& set_title(const char *const format, ...) { if (is_empty()) return *this; char tmp[1024] = { 0 }; va_list ap; va_start(ap, format); cimg_vsnprintf(tmp,sizeof(tmp),format,ap); va_end(ap); if (!std::strcmp(_title,tmp)) return *this; delete[] _title; const unsigned int s = std::strlen(tmp) + 1; _title = new char[s]; std::memcpy(_title,tmp,s*sizeof(char)); Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); XStoreName(dpy,_window,tmp); XUnlockDisplay(dpy); return *this; } template CImgDisplay& display(const CImg& img) { if (!img) throw CImgArgumentException(_cimgdisplay_instance "display(): Empty specified image.", cimgdisplay_instance); if (is_empty()) return assign(img); return render(img).paint(false); } CImgDisplay& paint(const bool wait_expose=true) { if (is_empty()) return *this; Display *const dpy = cimg::X11_attr().display; XLockDisplay(dpy); _paint(wait_expose); XUnlockDisplay(dpy); return *this; } template CImgDisplay& render(const CImg& img, const bool flag8=false) { if (!img) throw CImgArgumentException(_cimgdisplay_instance "render(): Empty specified image.", cimgdisplay_instance); if (is_empty()) return *this; if (img._depth!=1) return render(img.get_projections2d(img._width/2,img._height/2,img._depth/2)); if (cimg::X11_attr().nb_bits==8 && (img._width!=_width || img._height!=_height)) return render(img.get_resize(_width,_height,1,-100,1)); if (cimg::X11_attr().nb_bits==8 && !flag8 && img._spectrum==3) { static const CImg::ucharT> default_colormap = CImg::ucharT>::default_LUT256(); return render(img.get_index(default_colormap,1,false)); } Display *const dpy = cimg::X11_attr().display; const T *data1 = img._data, *data2 = (img._spectrum>1)?img.data(0,0,0,1):data1, *data3 = (img._spectrum>2)?img.data(0,0,0,2):data1; if (cimg::X11_attr().is_blue_first) cimg::swap(data1,data3); XLockDisplay(dpy); if (!_normalization || (_normalization==3 && cimg::type::string()==cimg::type::string())) { _min = _max = 0; switch (cimg::X11_attr().nb_bits) { case 8 : { // 256 colormap, no normalization _set_colormap(_colormap,img._spectrum); unsigned char *const ndata = (img._width==_width && img._height==_height)?(unsigned char*)_data:new unsigned char[(unsigned long)img._width*img._height]; unsigned char *ptrd = (unsigned char*)ndata; switch (img._spectrum) { case 1 : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) (*ptrd++) = (unsigned char)*(data1++); break; case 2 : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)*(data1++), G = (unsigned char)*(data2++); (*ptrd++) = (R&0xf0) | (G>>4); } break; default : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)*(data1++), G = (unsigned char)*(data2++), B = (unsigned char)*(data3++); (*ptrd++) = (R&0xe0) | ((G>>5)<<2) | (B>>6); } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned char*)_data,_width,_height); delete[] ndata; } } break; case 16 : { // 16 bits colors, no normalization unsigned short *const ndata = (img._width==_width && img._height==_height)?(unsigned short*)_data:new unsigned short[(unsigned long)img._width*img._height]; unsigned char *ptrd = (unsigned char*)ndata; const unsigned int M = 248; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)*(data1++), G = val>>2; *(ptrd++) = (val&M) | (G>>3); *(ptrd++) = (G<<5) | (G>>1); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)*(data1++), G = val>>2; *(ptrd++) = (G<<5) | (G>>1); *(ptrd++) = (val&M) | (G>>3); } break; case 2 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)*(data2++)>>2; *(ptrd++) = ((unsigned char)*(data1++)&M) | (G>>3); *(ptrd++) = (G<<5); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)*(data2++)>>2; *(ptrd++) = (G<<5); *(ptrd++) = ((unsigned char)*(data1++)&M) | (G>>3); } break; default : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)*(data2++)>>2; *(ptrd++) = ((unsigned char)*(data1++)&M) | (G>>3); *(ptrd++) = (G<<5) | ((unsigned char)*(data3++)>>3); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)*(data2++)>>2; *(ptrd++) = (G<<5) | ((unsigned char)*(data3++)>>3); *(ptrd++) = ((unsigned char)*(data1++)&M) | (G>>3); } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned short*)_data,_width,_height); delete[] ndata; } } break; default : { // 24 bits colors, no normalization unsigned int *const ndata = (img._width==_width && img._height==_height)?(unsigned int*)_data:new unsigned int[(unsigned long)img._width*img._height]; if (sizeof(int)==4) { // 32 bits int uses optimized version unsigned int *ptrd = ndata; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)*(data1++); *(ptrd++) = (val<<16) | (val<<8) | val; } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)*(data1++); *(ptrd++) = (val<<16) | (val<<8) | val; } break; case 2 : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data1++)<<16) | ((unsigned char)*(data2++)<<8); else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data2++)<<16) | ((unsigned char)*(data1++)<<8); break; default : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data1++)<<16) | ((unsigned char)*(data2++)<<8) | (unsigned char)*(data3++); else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data3++)<<24) | ((unsigned char)*(data2++)<<16) | ((unsigned char)*(data1++)<<8); } } else { unsigned char *ptrd = (unsigned char*)ndata; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(ptrd++) = 0; *(ptrd++) = (unsigned char)*(data1++); *(ptrd++) = 0; *(ptrd++) = 0; } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(ptrd++) = 0; *(ptrd++) = 0; *(ptrd++) = (unsigned char)*(data1++); *(ptrd++) = 0; } break; case 2 : if (cimg::X11_attr().byte_order) cimg::swap(data1,data2); for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(ptrd++) = 0; *(ptrd++) = (unsigned char)*(data2++); *(ptrd++) = (unsigned char)*(data1++); *(ptrd++) = 0; } break; default : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(ptrd++) = 0; *(ptrd++) = (unsigned char)*(data1++); *(ptrd++) = (unsigned char)*(data2++); *(ptrd++) = (unsigned char)*(data3++); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(ptrd++) = (unsigned char)*(data3++); *(ptrd++) = (unsigned char)*(data2++); *(ptrd++) = (unsigned char)*(data1++); *(ptrd++) = 0; } } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned int*)_data,_width,_height); delete[] ndata; } } } } else { if (_normalization==3) { if (cimg::type::is_float()) _min = (float)img.min_max(_max); else { _min = (float)cimg::type::min(); _max = (float)cimg::type::max(); } } else if ((_min>_max) || _normalization==1) _min = (float)img.min_max(_max); const float delta = _max - _min, mm = 255/(delta?delta:1.0f); switch (cimg::X11_attr().nb_bits) { case 8 : { // 256 colormap, with normalization _set_colormap(_colormap,img._spectrum); unsigned char *const ndata = (img._width==_width && img._height==_height)?(unsigned char*)_data:new unsigned char[(unsigned long)img._width*img._height]; unsigned char *ptrd = (unsigned char*)ndata; switch (img._spectrum) { case 1 : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)((*(data1++)-_min)*mm); *(ptrd++) = R; } break; case 2 : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)((*(data1++)-_min)*mm), G = (unsigned char)((*(data2++)-_min)*mm); (*ptrd++) = (R&0xf0) | (G>>4); } break; default : for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)((*(data1++)-_min)*mm), G = (unsigned char)((*(data2++)-_min)*mm), B = (unsigned char)((*(data3++)-_min)*mm); *(ptrd++) = (R&0xe0) | ((G>>5)<<2) | (B>>6); } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned char*)_data,_width,_height); delete[] ndata; } } break; case 16 : { // 16 bits colors, with normalization unsigned short *const ndata = (img._width==_width && img._height==_height)?(unsigned short*)_data:new unsigned short[(unsigned long)img._width*img._height]; unsigned char *ptrd = (unsigned char*)ndata; const unsigned int M = 248; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm), G = val>>2; *(ptrd++) = (val&M) | (G>>3); *(ptrd++) = (G<<5) | (val>>3); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm), G = val>>2; *(ptrd++) = (G<<5) | (val>>3); *(ptrd++) = (val&M) | (G>>3); } break; case 2 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)((*(data2++)-_min)*mm)>>2; *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)&M) | (G>>3); *(ptrd++) = (G<<5); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)((*(data2++)-_min)*mm)>>2; *(ptrd++) = (G<<5); *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)&M) | (G>>3); } break; default : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)((*(data2++)-_min)*mm)>>2; *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)&M) | (G>>3); *(ptrd++) = (G<<5) | ((unsigned char)((*(data3++)-_min)*mm)>>3); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char G = (unsigned char)((*(data2++)-_min)*mm)>>2; *(ptrd++) = (G<<5) | ((unsigned char)((*(data3++)-_min)*mm)>>3); *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)&M) | (G>>3); } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned short*)_data,_width,_height); delete[] ndata; } } break; default : { // 24 bits colors, with normalization unsigned int *const ndata = (img._width==_width && img._height==_height)?(unsigned int*)_data:new unsigned int[(unsigned long)img._width*img._height]; if (sizeof(int)==4) { // 32 bits int uses optimized version unsigned int *ptrd = ndata; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm); *(ptrd++) = (val<<16) | (val<<8) | val; } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm); *(ptrd++) = (val<<24) | (val<<16) | (val<<8); } break; case 2 : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)<<16) | ((unsigned char)((*(data2++)-_min)*mm)<<8); else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)((*(data2++)-_min)*mm)<<16) | ((unsigned char)((*(data1++)-_min)*mm)<<8); break; default : if (cimg::X11_attr().byte_order==cimg::endianness()) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)((*(data1++)-_min)*mm)<<16) | ((unsigned char)((*(data2++)-_min)*mm)<<8) | (unsigned char)((*(data3++)-_min)*mm); else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)((*(data3++)-_min)*mm)<<24) | ((unsigned char)((*(data2++)-_min)*mm)<<16) | ((unsigned char)((*(data1++)-_min)*mm)<<8); } } else { unsigned char *ptrd = (unsigned char*)ndata; switch (img._spectrum) { case 1 : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm); (*ptrd++) = 0; (*ptrd++) = val; (*ptrd++) = val; (*ptrd++) = val; } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm); (*ptrd++) = val; (*ptrd++) = val; (*ptrd++) = val; (*ptrd++) = 0; } break; case 2 : if (cimg::X11_attr().byte_order) cimg::swap(data1,data2); for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { (*ptrd++) = 0; (*ptrd++) = (unsigned char)((*(data2++)-_min)*mm); (*ptrd++) = (unsigned char)((*(data1++)-_min)*mm); (*ptrd++) = 0; } break; default : if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { (*ptrd++) = 0; (*ptrd++) = (unsigned char)((*(data1++)-_min)*mm); (*ptrd++) = (unsigned char)((*(data2++)-_min)*mm); (*ptrd++) = (unsigned char)((*(data3++)-_min)*mm); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { (*ptrd++) = (unsigned char)((*(data3++)-_min)*mm); (*ptrd++) = (unsigned char)((*(data2++)-_min)*mm); (*ptrd++) = (unsigned char)((*(data1++)-_min)*mm); (*ptrd++) = 0; } } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,(unsigned int*)_data,_width,_height); delete[] ndata; } } } } XUnlockDisplay(dpy); return *this; } template const CImgDisplay& snapshot(CImg& img) const { if (is_empty()) { img.assign(); return *this; } const unsigned char *ptrs = (unsigned char*)_data; img.assign(_width,_height,1,3); T *data1 = img.data(0,0,0,0), *data2 = img.data(0,0,0,1), *data3 = img.data(0,0,0,2); if (cimg::X11_attr().is_blue_first) cimg::swap(data1,data3); switch (cimg::X11_attr().nb_bits) { case 8 : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = *(ptrs++); *(data1++) = (T)(val&0xe0); *(data2++) = (T)((val&0x1c)<<3); *(data3++) = (T)(val<<6); } } break; case 16 : { if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val0 = *(ptrs++), val1 = *(ptrs++); *(data1++) = (T)(val0&0xf8); *(data2++) = (T)((val0<<5) | ((val1&0xe0)>>5)); *(data3++) = (T)(val1<<3); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned short val0 = *(ptrs++), val1 = *(ptrs++); *(data1++) = (T)(val1&0xf8); *(data2++) = (T)((val1<<5) | ((val0&0xe0)>>5)); *(data3++) = (T)(val0<<3); } } break; default : { if (cimg::X11_attr().byte_order) for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { ++ptrs; *(data1++) = (T)*(ptrs++); *(data2++) = (T)*(ptrs++); *(data3++) = (T)*(ptrs++); } else for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { *(data3++) = (T)*(ptrs++); *(data2++) = (T)*(ptrs++); *(data1++) = (T)*(ptrs++); ++ptrs; } } } return *this; } // Windows-based implementation. //------------------------------- #elif cimg_display==2 bool _is_mouse_tracked, _is_cursor_visible; HANDLE _thread, _is_created, _mutex; HWND _window, _background_window; CLIENTCREATESTRUCT _ccs; unsigned int *_data; DEVMODE _curr_mode; BITMAPINFO _bmi; HDC _hdc; static int screen_width() { DEVMODE mode; mode.dmSize = sizeof(DEVMODE); mode.dmDriverExtra = 0; EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,&mode); return mode.dmPelsWidth; } static int screen_height() { DEVMODE mode; mode.dmSize = sizeof(DEVMODE); mode.dmDriverExtra = 0; EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,&mode); return mode.dmPelsHeight; } static void wait_all() { WaitForSingleObject(cimg::Win32_attr().wait_event,INFINITE); } static LRESULT APIENTRY _handle_events(HWND window,UINT msg,WPARAM wParam,LPARAM lParam) { #ifdef _WIN64 CImgDisplay *const disp = (CImgDisplay*)GetWindowLongPtr(window,GWLP_USERDATA); #else CImgDisplay *const disp = (CImgDisplay*)GetWindowLong(window,GWL_USERDATA); #endif MSG st_msg; switch (msg) { case WM_CLOSE : disp->_mouse_x = disp->_mouse_y = -1; disp->_window_x = disp->_window_y = 0; disp->set_button().set_key(0).set_key(0,false)._is_closed = true; ReleaseMutex(disp->_mutex); ShowWindow(disp->_window,SW_HIDE); disp->_is_event = true; SetEvent(cimg::Win32_attr().wait_event); return 0; case WM_SIZE : { while (PeekMessage(&st_msg,window,WM_SIZE,WM_SIZE,PM_REMOVE)) {} WaitForSingleObject(disp->_mutex,INFINITE); const unsigned int nw = LOWORD(lParam),nh = HIWORD(lParam); if (nw && nh && (nw!=disp->_width || nh!=disp->_height)) { disp->_window_width = nw; disp->_window_height = nh; disp->_mouse_x = disp->_mouse_y = -1; disp->_is_resized = disp->_is_event = true; SetEvent(cimg::Win32_attr().wait_event); } ReleaseMutex(disp->_mutex); } break; case WM_MOVE : { while (PeekMessage(&st_msg,window,WM_SIZE,WM_SIZE,PM_REMOVE)) {} WaitForSingleObject(disp->_mutex,INFINITE); const int nx = (int)(short)(LOWORD(lParam)), ny = (int)(short)(HIWORD(lParam)); if (nx!=disp->_window_x || ny!=disp->_window_y) { disp->_window_x = nx; disp->_window_y = ny; disp->_is_moved = disp->_is_event = true; SetEvent(cimg::Win32_attr().wait_event); } ReleaseMutex(disp->_mutex); } break; case WM_PAINT : disp->paint(); break; case WM_KEYDOWN : disp->set_key((unsigned int)wParam); SetEvent(cimg::Win32_attr().wait_event); break; case WM_KEYUP : disp->set_key((unsigned int)wParam,false); SetEvent(cimg::Win32_attr().wait_event); break; case WM_MOUSEMOVE : { while (PeekMessage(&st_msg,window,WM_MOUSEMOVE,WM_MOUSEMOVE,PM_REMOVE)) {} disp->_mouse_x = LOWORD(lParam); disp->_mouse_y = HIWORD(lParam); #if (_WIN32_WINNT>=0x0400) && !defined(NOTRACKMOUSEEVENT) if (!disp->_is_mouse_tracked) { TRACKMOUSEEVENT tme; tme.cbSize = sizeof(TRACKMOUSEEVENT); tme.dwFlags = TME_LEAVE; tme.hwndTrack = disp->_window; if (TrackMouseEvent(&tme)) disp->_is_mouse_tracked = true; } #endif if (disp->_mouse_x<0 || disp->_mouse_y<0 || disp->_mouse_x>=disp->width() || disp->_mouse_y>=disp->height()) disp->_mouse_x = disp->_mouse_y = -1; disp->_is_event = true; SetEvent(cimg::Win32_attr().wait_event); } break; case WM_MOUSELEAVE : { disp->_mouse_x = disp->_mouse_y = -1; disp->_is_mouse_tracked = false; } break; case WM_LBUTTONDOWN : disp->set_button(1); SetEvent(cimg::Win32_attr().wait_event); break; case WM_RBUTTONDOWN : disp->set_button(2); SetEvent(cimg::Win32_attr().wait_event); break; case WM_MBUTTONDOWN : disp->set_button(3); SetEvent(cimg::Win32_attr().wait_event); break; case WM_LBUTTONUP : disp->set_button(1,false); SetEvent(cimg::Win32_attr().wait_event); break; case WM_RBUTTONUP : disp->set_button(2,false); SetEvent(cimg::Win32_attr().wait_event); break; case WM_MBUTTONUP : disp->set_button(3,false); SetEvent(cimg::Win32_attr().wait_event); break; case 0x020A : // WM_MOUSEWHEEL: disp->set_wheel((int)((short)HIWORD(wParam))/120); SetEvent(cimg::Win32_attr().wait_event); case WM_SETCURSOR : if (disp->_is_cursor_visible) while (ShowCursor(TRUE)<0); else while (ShowCursor(FALSE)>=0); break; } return DefWindowProc(window,msg,wParam,lParam); } static DWORD WINAPI _events_thread(void* arg) { CImgDisplay *const disp = (CImgDisplay*)(((void**)arg)[0]); const char *const title = (const char*)(((void**)arg)[1]); MSG msg; delete[] (void**)arg; disp->_bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); disp->_bmi.bmiHeader.biWidth = disp->width(); disp->_bmi.bmiHeader.biHeight = -disp->height(); disp->_bmi.bmiHeader.biPlanes = 1; disp->_bmi.bmiHeader.biBitCount = 32; disp->_bmi.bmiHeader.biCompression = BI_RGB; disp->_bmi.bmiHeader.biSizeImage = 0; disp->_bmi.bmiHeader.biXPelsPerMeter = 1; disp->_bmi.bmiHeader.biYPelsPerMeter = 1; disp->_bmi.bmiHeader.biClrUsed = 0; disp->_bmi.bmiHeader.biClrImportant = 0; disp->_data = new unsigned int[(unsigned long)disp->_width*disp->_height]; if (!disp->_is_fullscreen) { // Normal window RECT rect; rect.left = rect.top = 0; rect.right = disp->_width-1; rect.bottom = disp->_height-1; AdjustWindowRect(&rect,WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,false); const int border1 = (rect.right - rect.left + 1 - disp->_width)/2, border2 = rect.bottom - rect.top + 1 - disp->_height - border1; disp->_window = CreateWindowA("MDICLIENT",title?title:" ", WS_OVERLAPPEDWINDOW | (disp->_is_closed?0:WS_VISIBLE), CW_USEDEFAULT,CW_USEDEFAULT, disp->_width + 2*border1, disp->_height + border1 + border2, 0,0,0,&(disp->_ccs)); if (!disp->_is_closed) { GetWindowRect(disp->_window,&rect); disp->_window_x = rect.left + border1; disp->_window_y = rect.top + border2; } else disp->_window_x = disp->_window_y = 0; } else { // Fullscreen window const unsigned int sx = screen_width(), sy = screen_height(); disp->_window = CreateWindowA("MDICLIENT",title?title:" ", WS_POPUP | (disp->_is_closed?0:WS_VISIBLE), (sx-disp->_width)/2, (sy-disp->_height)/2, disp->_width,disp->_height,0,0,0,&(disp->_ccs)); disp->_window_x = disp->_window_y = 0; } SetForegroundWindow(disp->_window); disp->_hdc = GetDC(disp->_window); disp->_window_width = disp->_width; disp->_window_height = disp->_height; disp->flush(); #ifdef _WIN64 SetWindowLongPtr(disp->_window,GWLP_USERDATA,(LONG_PTR)disp); SetWindowLongPtr(disp->_window,GWLP_WNDPROC,(LONG_PTR)_handle_events); #else SetWindowLong(disp->_window,GWL_USERDATA,(LONG)disp); SetWindowLong(disp->_window,GWL_WNDPROC,(LONG)_handle_events); #endif SetEvent(disp->_is_created); while (GetMessage(&msg,0,0,0)) DispatchMessage(&msg); return 0; } CImgDisplay& _update_window_pos() { if (_is_closed) _window_x = _window_y = -1; else { RECT rect; rect.left = rect.top = 0; rect.right = _width-1; rect.bottom = _height-1; AdjustWindowRect(&rect,WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,false); const int border1 = (rect.right - rect.left + 1 - _width)/2, border2 = rect.bottom - rect.top + 1 - _height - border1; GetWindowRect(_window,&rect); _window_x = rect.left + border1; _window_y = rect.top + border2; } return *this; } void _init_fullscreen() { _background_window = 0; if (!_is_fullscreen || _is_closed) _curr_mode.dmSize = 0; else { DEVMODE mode; unsigned int imode = 0, ibest = 0, bestbpp = 0, bw = ~0U, bh = ~0U; for (mode.dmSize = sizeof(DEVMODE), mode.dmDriverExtra = 0; EnumDisplaySettings(0,imode,&mode); ++imode) { const unsigned int nw = mode.dmPelsWidth, nh = mode.dmPelsHeight; if (nw>=_width && nh>=_height && mode.dmBitsPerPel>=bestbpp && nw<=bw && nh<=bh) { bestbpp = mode.dmBitsPerPel; ibest = imode; bw = nw; bh = nh; } } if (bestbpp) { _curr_mode.dmSize = sizeof(DEVMODE); _curr_mode.dmDriverExtra = 0; EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,&_curr_mode); EnumDisplaySettings(0,ibest,&mode); ChangeDisplaySettings(&mode,0); } else _curr_mode.dmSize = 0; const unsigned int sx = screen_width(), sy = screen_height(); if (sx!=_width || sy!=_height) { CLIENTCREATESTRUCT background_ccs; _background_window = CreateWindowA("MDICLIENT","",WS_POPUP | WS_VISIBLE, 0,0,sx,sy,0,0,0,&background_ccs); SetForegroundWindow(_background_window); } } } void _desinit_fullscreen() { if (!_is_fullscreen) return; if (_background_window) DestroyWindow(_background_window); _background_window = 0; if (_curr_mode.dmSize) ChangeDisplaySettings(&_curr_mode,0); _is_fullscreen = false; } CImgDisplay& _assign(const unsigned int dimw, const unsigned int dimh, const char *const ptitle=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { // Allocate space for window title const char *const nptitle = ptitle?ptitle:""; const unsigned int s = (unsigned int)std::strlen(nptitle) + 1; char *const tmp_title = s?new char[s]:0; if (s) std::memcpy(tmp_title,nptitle,s*sizeof(char)); // Destroy previous window if existing if (!is_empty()) assign(); // Set display variables _width = cimg::min(dimw,(unsigned int)screen_width()); _height = cimg::min(dimh,(unsigned int)screen_height()); _normalization = normalization_type<4?normalization_type:3; _is_fullscreen = fullscreen_flag; _window_x = _window_y = 0; _is_closed = closed_flag; _is_cursor_visible = true; _is_mouse_tracked = false; _title = tmp_title; flush(); if (_is_fullscreen) _init_fullscreen(); // Create event thread void *const arg = (void*)(new void*[2]); ((void**)arg)[0] = (void*)this; ((void**)arg)[1] = (void*)_title; _mutex = CreateMutex(0,FALSE,0); _is_created = CreateEvent(0,FALSE,FALSE,0); _thread = CreateThread(0,0,_events_thread,arg,0,0); WaitForSingleObject(_is_created,INFINITE); return *this; } CImgDisplay& assign() { if (is_empty()) return flush(); DestroyWindow(_window); TerminateThread(_thread,0); delete[] _data; delete[] _title; _data = 0; _title = 0; if (_is_fullscreen) _desinit_fullscreen(); _width = _height = _normalization = _window_width = _window_height = 0; _window_x = _window_y = 0; _is_fullscreen = false; _is_closed = true; _min = _max = 0; _title = 0; flush(); return *this; } CImgDisplay& assign(const unsigned int dimw, const unsigned int dimh, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!dimw || !dimh) return assign(); _assign(dimw,dimh,title,normalization_type,fullscreen_flag,closed_flag); _min = _max = 0; std::memset(_data,0,sizeof(unsigned int)*_width*_height); return paint(); } template CImgDisplay& assign(const CImg& img, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!img) return assign(); CImg tmp; const CImg& nimg = (img._depth==1)?img:(tmp=img.get_projections2d(img._width/2,img._height/2,img._depth/2)); _assign(nimg._width,nimg._height,title,normalization_type,fullscreen_flag,closed_flag); if (_normalization==2) _min = (float)nimg.min_max(_max); return display(nimg); } template CImgDisplay& assign(const CImgList& list, const char *const title=0, const unsigned int normalization_type=3, const bool fullscreen_flag=false, const bool closed_flag=false) { if (!list) return assign(); CImg tmp; const CImg img = list>'x', &nimg = (img._depth==1)?img:(tmp=img.get_projections2d(img._width/2,img._height/2,img._depth/2)); _assign(nimg._width,nimg._height,title,normalization_type,fullscreen_flag,closed_flag); if (_normalization==2) _min = (float)nimg.min_max(_max); return display(nimg); } CImgDisplay& assign(const CImgDisplay& disp) { if (!disp) return assign(); _assign(disp._width,disp._height,disp._title,disp._normalization,disp._is_fullscreen,disp._is_closed); std::memcpy(_data,disp._data,sizeof(unsigned int)*_width*_height); return paint(); } CImgDisplay& resize(const int nwidth, const int nheight, const bool force_redraw=true) { if (!nwidth || !nheight || (is_empty() && (nwidth<0 || nheight<0))) return assign(); if (is_empty()) return assign(nwidth,nheight); const unsigned int tmpdimx = (nwidth>0)?nwidth:(-nwidth*_width/100), tmpdimy = (nheight>0)?nheight:(-nheight*_height/100), dimx = tmpdimx?tmpdimx:1, dimy = tmpdimy?tmpdimy:1; if (_window_width!=dimx || _window_height!=dimy) { RECT rect; rect.left = rect.top = 0; rect.right = dimx - 1; rect.bottom = dimy - 1; AdjustWindowRect(&rect,WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,false); const int cwidth = rect.right - rect.left + 1, cheight = rect.bottom - rect.top + 1; SetWindowPos(_window,0,0,0,cwidth,cheight,SWP_NOMOVE | SWP_NOZORDER | SWP_NOCOPYBITS); } if (_width!=dimx || _height!=dimy) { unsigned int *const ndata = new unsigned int[dimx*dimy]; if (force_redraw) _render_resize(_data,_width,_height,ndata,dimx,dimy); else std::memset(ndata,0x80,sizeof(unsigned int)*dimx*dimy); delete[] _data; _data = ndata; _bmi.bmiHeader.biWidth = dimx; _bmi.bmiHeader.biHeight = -(int)dimy; _width = dimx; _height = dimy; } _window_width = dimx; _window_height = dimy; _is_resized = false; if (_is_fullscreen) move((screen_width()-_width)/2,(screen_height()-_height)/2); if (force_redraw) return paint(); return *this; } CImgDisplay& toggle_fullscreen(const bool force_redraw=true) { if (is_empty()) return *this; if (force_redraw) { const unsigned long buf_size = _width*_height*4UL; void *odata = std::malloc(buf_size); std::memcpy(odata,_data,buf_size); assign(_width,_height,_title,_normalization,!_is_fullscreen,false); std::memcpy(_data,odata,buf_size); std::free(odata); return paint(); } return assign(_width,_height,_title,_normalization,!_is_fullscreen,false); } CImgDisplay& show() { if (is_empty() || !_is_closed) return *this; _is_closed = false; if (_is_fullscreen) _init_fullscreen(); ShowWindow(_window,SW_SHOW); _update_window_pos(); return paint(); } CImgDisplay& close() { if (is_empty() || _is_closed) return *this; _is_closed = true; if (_is_fullscreen) _desinit_fullscreen(); ShowWindow(_window,SW_HIDE); _window_x = _window_y = 0; return *this; } CImgDisplay& move(const int posx, const int posy) { if (is_empty()) return *this; if (!_is_fullscreen) { RECT rect; rect.left = rect.top = 0; rect.right = _window_width-1; rect.bottom = _window_height-1; AdjustWindowRect(&rect,WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,false); const int border1 = (rect.right-rect.left+1-_width)/2, border2 = rect.bottom-rect.top+1-_height-border1; SetWindowPos(_window,0,posx-border1,posy-border2,0,0,SWP_NOSIZE | SWP_NOZORDER); } else SetWindowPos(_window,0,posx,posy,0,0,SWP_NOSIZE | SWP_NOZORDER); _window_x = posx; _window_y = posy; _is_moved = false; return show(); } CImgDisplay& show_mouse() { if (is_empty()) return *this; _is_cursor_visible = true; SendMessage(_window,WM_SETCURSOR,0,0); return *this; } CImgDisplay& hide_mouse() { if (is_empty()) return *this; _is_cursor_visible = false; SendMessage(_window,WM_SETCURSOR,0,0); return *this; } CImgDisplay& set_mouse(const int posx, const int posy) { if (_is_closed || posx<0 || posy<0) return *this; _update_window_pos(); const int res = (int)SetCursorPos(_window_x + posx,_window_y + posy); if (res) { _mouse_x = posx; _mouse_y = posy; } return *this; } CImgDisplay& set_title(const char *const format, ...) { if (is_empty()) return *this; char tmp[1024] = { 0 }; va_list ap; va_start(ap, format); cimg_vsnprintf(tmp,sizeof(tmp),format,ap); va_end(ap); if (!std::strcmp(_title,tmp)) return *this; delete[] _title; const unsigned int s = (unsigned int)std::strlen(tmp) + 1; _title = new char[s]; std::memcpy(_title,tmp,s*sizeof(char)); SetWindowTextA(_window, tmp); return *this; } template CImgDisplay& display(const CImg& img) { if (!img) throw CImgArgumentException(_cimgdisplay_instance "display(): Empty specified image.", cimgdisplay_instance); if (is_empty()) return assign(img); return render(img).paint(); } CImgDisplay& paint() { if (_is_closed) return *this; WaitForSingleObject(_mutex,INFINITE); SetDIBitsToDevice(_hdc,0,0,_width,_height,0,0,0,_height,_data,&_bmi,DIB_RGB_COLORS); ReleaseMutex(_mutex); return *this; } template CImgDisplay& render(const CImg& img) { if (!img) throw CImgArgumentException(_cimgdisplay_instance "render(): Empty specified image.", cimgdisplay_instance); if (is_empty()) return *this; if (img._depth!=1) return render(img.get_projections2d(img._width/2,img._height/2,img._depth/2)); const T *data1 = img._data, *data2 = (img._spectrum>=2)?img.data(0,0,0,1):data1, *data3 = (img._spectrum>=3)?img.data(0,0,0,2):data1; WaitForSingleObject(_mutex,INFINITE); unsigned int *const ndata = (img._width==_width && img._height==_height)?_data:new unsigned int[(unsigned long)img._width*img._height], *ptrd = ndata; if (!_normalization || (_normalization==3 && cimg::type::string()==cimg::type::string())) { _min = _max = 0; switch (img._spectrum) { case 1 : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)*(data1++); *(ptrd++) = (val<<16) | (val<<8) | val; } } break; case 2 : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data1++)<<16) | ((unsigned char)*(data2++)<<8); } break; default : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) *(ptrd++) = ((unsigned char)*(data1++)<<16) | ((unsigned char)*(data2++)<<8) | (unsigned char)*(data3++); } } } else { if (_normalization==3) { if (cimg::type::is_float()) _min = (float)img.min_max(_max); else { _min = (float)cimg::type::min(); _max = (float)cimg::type::max(); } } else if ((_min>_max) || _normalization==1) _min = (float)img.min_max(_max); const float delta = _max - _min, mm = 255/(delta?delta:1.0f); switch (img._spectrum) { case 1 : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char val = (unsigned char)((*(data1++)-_min)*mm); *(ptrd++) = (val<<16) | (val<<8) | val; } } break; case 2 : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)((*(data1++)-_min)*mm), G = (unsigned char)((*(data2++)-_min)*mm); *(ptrd++) = (R<<16) | (G<<8); } } break; default : { for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned char R = (unsigned char)((*(data1++)-_min)*mm), G = (unsigned char)((*(data2++)-_min)*mm), B = (unsigned char)((*(data3++)-_min)*mm); *(ptrd++) = (R<<16) | (G<<8) | B; } } } } if (ndata!=_data) { _render_resize(ndata,img._width,img._height,_data,_width,_height); delete[] ndata; } ReleaseMutex(_mutex); return *this; } template const CImgDisplay& snapshot(CImg& img) const { if (is_empty()) { img.assign(); return *this; } const unsigned int *ptrs = _data; img.assign(_width,_height,1,3); T *data1 = img.data(0,0,0,0), *data2 = img.data(0,0,0,1), *data3 = img.data(0,0,0,2); for (unsigned long xy = (unsigned long)img._width*img._height; xy>0; --xy) { const unsigned int val = *(ptrs++); *(data1++) = (T)(unsigned char)(val>>16); *(data2++) = (T)(unsigned char)((val>>8)&0xFF); *(data3++) = (T)(unsigned char)(val&0xFF); } return *this; } #endif //@} }; /* #-------------------------------------- # # # # Definition of the CImg structure # # # #-------------------------------------- */ //! Class representing an image (up to 4 dimensions wide), each pixel being of type \c T. /** This is the main class of the %CImg Library. It declares and constructs an image, allows access to its pixel values, and is able to perform various image operations. \par Image representation A %CImg image is defined as an instance of the container \c CImg, which contains a regular grid of pixels, each pixel value being of type \c T. The image grid can have up to 4 dimensions: width, height, depth and number of channels. Usually, the three first dimensions are used to describe spatial coordinates (x,y,z), while the number of channels is rather used as a vector-valued dimension (it may describe the R,G,B color channels for instance). If you need a fifth dimension, you can use image lists \c CImgList rather than simple images \c CImg. Thus, the \c CImg class is able to represent volumetric images of vector-valued pixels, as well as images with less dimensions (1d scalar signal, 2d color images, ...). Most member functions of the class CImg<\c T> are designed to handle this maximum case of (3+1) dimensions. Concerning the pixel value type \c T: fully supported template types are the basic C++ types: unsigned char, char, short, unsigned int, int, unsigned long, long, float, double, ... . Typically, fast image display can be done using CImg images, while complex image processing algorithms may be rather coded using CImg or CImg images that have floating-point pixel values. The default value for the template T is \c float. Using your own template types may be possible. However, you will certainly have to define the complete set of arithmetic and logical operators for your class. \par Image structure The \c CImg structure contains \e six fields: - \c _width defines the number of \a columns of the image (size along the X-axis). - \c _height defines the number of \a rows of the image (size along the Y-axis). - \c _depth defines the number of \a slices of the image (size along the Z-axis). - \c _spectrum defines the number of \a channels of the image (size along the C-axis). - \c _data defines a \a pointer to the \a pixel \a data (of type \c T). - \c _is_shared is a boolean that tells if the memory buffer \c data is shared with another image. You can access these fields publicly although it is recommended to use the dedicated functions width(), height(), depth(), spectrum() and ptr() to do so. Image dimensions are not limited to a specific range (as long as you got enough available memory). A value of \e 1 usually means that the corresponding dimension is \a flat. If one of the dimensions is \e 0, or if the data pointer is null, the image is considered as \e empty. Empty images should not contain any pixel data and thus, will not be processed by CImg member functions (a CImgInstanceException will be thrown instead). Pixel data are stored in memory, in a non interlaced mode (See \ref cimg_storage). \par Image declaration and construction Declaring an image can be done by using one of the several available constructors. Here is a list of the most used: - Construct images from arbitrary dimensions: - CImg img; declares an empty image. - CImg img(128,128); declares a 128x128 greyscale image with \c unsigned \c char pixel values. - CImg img(3,3); declares a 3x3 matrix with \c double coefficients. - CImg img(256,256,1,3); declares a 256x256x1x3 (color) image (colors are stored as an image with three channels). - CImg img(128,128,128); declares a 128x128x128 volumetric and greyscale image (with \c double pixel values). - CImg<> img(128,128,128,3); declares a 128x128x128 volumetric color image (with \c float pixels, which is the default value of the template parameter \c T). - \b Note: images pixels are not automatically initialized to 0. You may use the function \c fill() to do it, or use the specific constructor taking 5 parameters like this: CImg<> img(128,128,128,3,0); declares a 128x128x128 volumetric color image with all pixel values to 0. - Construct images from filenames: - CImg img("image.jpg"); reads a JPEG color image from the file "image.jpg". - CImg img("analyze.hdr"); reads a volumetric image (ANALYZE7.5 format) from the file "analyze.hdr". - \b Note: You need to install ImageMagick to be able to read common compressed image formats (JPG,PNG, ...) (See \ref cimg_files_io). - Construct images from C-style arrays: - CImg img(data_buffer,256,256); constructs a 256x256 greyscale image from a \c int* buffer \c data_buffer (of size 256x256=65536). - CImg img(data_buffer,256,256,1,3,false); constructs a 256x256 color image from a \c unsigned \c char* buffer \c data_buffer (where R,G,B channels follow each others). - CImg img(data_buffer,256,256,1,3,true); constructs a 256x256 color image from a \c unsigned \c char* buffer \c data_buffer (where R,G,B channels are multiplexed). The complete list of constructors can be found here. \par Most useful functions The \c CImg class contains a lot of functions that operates on images. Some of the most useful are: - operator()(): allows to access or write pixel values. - display(): displays the image in a new window. **/ template struct CImg { unsigned int _width, _height, _depth, _spectrum; bool _is_shared; T *_data; //! Simple iterator type, to loop through each pixel value of an image instance. /** \note - The \c CImg::iterator type is defined to be a T*. - You will seldom have to use iterators in %CImg, most classical operations being achieved (often in a faster way) using methods of \c CImg. \par Example \code CImg img("reference.jpg"); // Load image from file. for (CImg::iterator it = img.begin(), it::const_iterator type is defined to be a \c const \c T*. - You will seldom have to use iterators in %CImg, most classical operations being achieved (often in a faster way) using methods of \c CImg. \par Example \code const CImg img("reference.jpg"); // Load image from file. float sum = 0; for (CImg::iterator it = img.begin(), it::value_type type of a \c CImg is defined to be a \c T. - \c CImg::value_type is actually not used in %CImg methods. It has been mainly defined for compatibility with STL naming conventions. **/ typedef T value_type; // Define common types related to template type T. typedef typename cimg::superset::type Tbool; typedef typename cimg::superset::type Tuchar; typedef typename cimg::superset::type Tchar; typedef typename cimg::superset::type Tushort; typedef typename cimg::superset::type Tshort; typedef typename cimg::superset::type Tuint; typedef typename cimg::superset::type Tint; typedef typename cimg::superset::type Tulong; typedef typename cimg::superset::type Tlong; typedef typename cimg::superset::type Tfloat; typedef typename cimg::superset::type Tdouble; typedef typename cimg::last::type boolT; typedef typename cimg::last::type ucharT; typedef typename cimg::last::type charT; typedef typename cimg::last::type ushortT; typedef typename cimg::last::type shortT; typedef typename cimg::last::type uintT; typedef typename cimg::last::type intT; typedef typename cimg::last::type ulongT; typedef typename cimg::last::type longT; typedef typename cimg::last::type floatT; typedef typename cimg::last::type doubleT; //@} //--------------------------- // //! \name Plugins //@{ //--------------------------- #ifdef cimg_plugin #include cimg_plugin #endif #ifdef cimg_plugin1 #include cimg_plugin1 #endif #ifdef cimg_plugin2 #include cimg_plugin2 #endif #ifdef cimg_plugin3 #include cimg_plugin3 #endif #ifdef cimg_plugin4 #include cimg_plugin4 #endif #ifdef cimg_plugin5 #include cimg_plugin5 #endif #ifdef cimg_plugin6 #include cimg_plugin6 #endif #ifdef cimg_plugin7 #include cimg_plugin7 #endif #ifdef cimg_plugin8 #include cimg_plugin8 #endif //@} //--------------------------------------------------------- // //! \name Constructors / Destructor / Instance Management //@{ //--------------------------------------------------------- //! Destroy image. /** \note - The pixel buffer data() is deallocated if necessary, e.g. for non-empty and non-shared image instances. - Destroying an empty or shared image does nothing actually. \warning - When destroying a non-shared image, make sure that you will \e not operate on a remaining shared image that shares its buffer with the destroyed instance, in order to avoid further invalid memory access (to a deallocated buffer). **/ ~CImg() { if (!_is_shared) delete[] _data; } //! Construct empty image. /** \note - An empty image has no pixel data and all of its dimensions width(), height(), depth(), spectrum() are set to \c 0, as well as its pixel buffer pointer data(). - An empty image may be re-assigned afterwards, e.g. with the family of assign(unsigned int,unsigned int,unsigned int,unsigned int) methods, or by operator=(const CImg&). In all cases, the type of pixels stays \c T. - An empty image is never shared. \par Example \code CImg img1, img2; // Construct two empty images. img1.assign(256,256,1,3); // Re-assign 'img1' to be a 256x256x1x3 (color) image. img2 = img1.get_rand(0,255); // Re-assign 'img2' to be a random-valued version of 'img1'. img2.assign(); // Re-assign 'img2' to be an empty image again. \endcode **/ CImg():_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) {} //! Construct image with specified size. /** \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \note - It is able to create only \e non-shared images, and allocates thus a pixel buffer data() for each constructed image instance. - Setting one dimension \c size_x,\c size_y,\c size_z or \c size_c to \c 0 leads to the construction of an \e empty image. - A \c CImgInstanceException is thrown when the pixel buffer cannot be allocated (e.g. when requested size is too big for available memory). \warning - The allocated pixel buffer is \e not filled with a default value, and is likely to contain garbage values. In order to initialize pixel values during construction (e.g. with \c 0), use constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,T) instead. \par Example \code CImg img1(256,256,1,3); // Construct a 256x256x1x3 (color) image, filled with garbage values. CImg img2(256,256,1,3,0); // Construct a 256x256x1x3 (color) image, filled with value '0'. \endcode **/ explicit CImg(const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1): _is_shared(false) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (siz) { _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Construct image with specified size and initialize pixel values. /** \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \param value Initialization value. \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int), but it also fills the pixel buffer with the specified \c value. \warning - It cannot be used to construct a vector-valued image and initialize it with \e vector-valued pixels (e.g. RGB vector, for color images). For this task, you may use fillC() after construction. **/ CImg(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const T value): _is_shared(false) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (siz) { _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } fill(value); } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Construct image with specified size and initialize pixel values from a sequence of integers. /** Construct a new image instance of size \c size_x x \c size_y x \c size_z x \c size_c, with pixels of type \c T, and initialize pixel values from the specified sequence of integers \c value0,\c value1,\c ... \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \param value0 First value of the initialization sequence (must be an \e integer). \param value1 Second value of the initialization sequence (must be an \e integer). \param ... \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int), but it also fills the pixel buffer with a sequence of specified integer values. \warning - You must specify \e exactly \c size_x*\c size_y*\c size_z*\c size_c integers in the initialization sequence. Otherwise, the constructor may crash or fill your image pixels with garbage. \par Example \code const CImg img(2,2,1,3, // Construct a 2x2 color (RGB) image. 0,255,0,255, // Set the 4 values for the red component. 0,0,255,255, // Set the 4 values for the green component. 64,64,64,64); // Set the 4 values for the blue component. img.resize(150,150).display(); \endcode \image html ref_constructor1.jpg **/ CImg(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const int value0, const int value1, ...):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { #define _CImg_stdarg(img,a0,a1,N,t) { \ unsigned long _siz = (unsigned long)N; \ if (_siz--) { \ va_list ap; \ va_start(ap,a1); \ T *ptrd = (img)._data; \ *(ptrd++) = (T)a0; \ if (_siz--) { \ *(ptrd++) = (T)a1; \ for (; _siz; --_siz) *(ptrd++) = (T)va_arg(ap,t); \ } \ va_end(ap); \ } \ } assign(size_x,size_y,size_z,size_c); _CImg_stdarg(*this,value0,value1,(unsigned long)size_x*size_y*size_z*size_c,int); } //! Construct image with specified size and initialize pixel values from a sequence of doubles. /** Construct a new image instance of size \c size_x x \c size_y x \c size_z x \c size_c, with pixels of type \c T, and initialize pixel values from the specified sequence of doubles \c value0,\c value1,\c ... \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \param value0 First value of the initialization sequence (must be a \e double). \param value1 Second value of the initialization sequence (must be a \e double). \param ... \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int,int,int,...), but takes a sequence of double values instead of integers. \warning - You must specify \e exactly \c dx*\c dy*\c dz*\c dc doubles in the initialization sequence. Otherwise, the constructor may crash or fill your image with garbage. For instance, the code below will probably crash on most platforms: \code const CImg img(2,2,1,1, 0.5,0.5,255,255); // FAIL: The two last arguments are 'int', not 'double'! \endcode **/ CImg(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const double value0, const double value1, ...):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { assign(size_x,size_y,size_z,size_c); _CImg_stdarg(*this,value0,value1,(unsigned long)size_x*size_y*size_z*size_c,double); } //! Construct image with specified size and initialize pixel values from a value string. /** Construct a new image instance of size \c size_x x \c size_y x \c size_z x \c size_c, with pixels of type \c T, and initializes pixel values from the specified string \c values. \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \param values Value string describing the way pixel values are set. \param repeat_values Tells if the value filling process is repeated over the image. \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int), but it also fills the pixel buffer with values described in the value string \c values. - Value string \c values may describe two different filling processes: - Either \c values is a sequences of values assigned to the image pixels, as in "1,2,3,7,8,2". In this case, set \c repeat_values to \c true to periodically fill the image with the value sequence. - Either, \c values is a formula, as in "cos(x/10)*sin(y/20)". In this case, parameter \c repeat_values is pointless. - For both cases, specifying \c repeat_values is mandatory. It disambiguates the possible overloading of constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,T) with \c T being a const char*. - A \c CImgArgumentException is thrown when an invalid value string \c values is specified. \par Example \code const CImg img1(129,129,1,3,"0,64,128,192,255",true), // Construct image filled from a value sequence. img2(129,129,1,3,"if(c==0,255*abs(cos(x/10)),1.8*y)",false); // Construct image filled from a formula. (img1,img2).display(); \endcode \image html ref_constructor2.jpg **/ CImg(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const char *const values, const bool repeat_values):_is_shared(false) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (siz) { _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } fill(values,repeat_values); } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Construct image with specified size and initialize pixel values from a memory buffer. /** Construct a new image instance of size \c size_x x \c size_y x \c size_z x \c size_c, with pixels of type \c T, and initializes pixel values from the specified \c t* memory buffer. \param values Pointer to the input memory buffer. \param size_x Image width(). \param size_y Image height(). \param size_z Image depth(). \param size_c Image spectrum() (number of channels). \param is_shared Tells if input memory buffer must be shared by the current instance. \note - If \c is_shared is \c false, the image instance allocates its own pixel buffer, and values from the specified input buffer are copied to the instance buffer. If buffer types \c T and \c t are different, a regular static cast is performed during buffer copy. - Otherwise, the image instance does \e not allocate a new buffer, and uses the input memory buffer as its own pixel buffer. This case requires that types \c T and \c t are the same. Later, destroying such a shared image will not deallocate the pixel buffer, this task being obviously charged to the initial buffer allocator. - A \c CImgInstanceException is thrown when the pixel buffer cannot be allocated (e.g. when requested size is too big for available memory). \warning - You must take care when operating on a shared image, since it may have an invalid pixel buffer pointer data() (e.g. already deallocated). \par Example \code unsigned char tab[256*256] = { 0 }; CImg img1(tab,256,256,1,1,false), // Construct new non-shared image from buffer 'tab'. img2(tab,256,256,1,1,true); // Construct new shared-image from buffer 'tab'. tab[1024] = 255; // Here, 'img2' is indirectly modified, but not 'img1'. \endcode **/ template CImg(const t *const values, const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_shared=false):_is_shared(false) { if (is_shared) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgArgumentException(_cimg_instance "CImg(): Invalid construction request of a (%u,%u,%u,%u) shared instance from a (%s*) buffer " "(pixel types are different).", cimg_instance, size_x,size_y,size_z,size_c,CImg::pixel_type()); } const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (values && siz) { _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } const t *ptrs = values; cimg_for(*this,ptrd,T) *ptrd = (T)*(ptrs++); } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Construct image with specified size and initialize pixel values from a memory buffer \specialization. CImg(const T *const values, const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_shared=false) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (values && siz) { _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; _is_shared = is_shared; if (_is_shared) _data = const_cast(values); else { try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } std::memcpy(_data,values,siz*sizeof(T)); } } else { _width = _height = _depth = _spectrum = 0; _is_shared = false; _data = 0; } } //! Construct image from reading an image file. /** Construct a new image instance with pixels of type \c T, and initialize pixel values with the data read from an image file. \param filename Filename, as a C-string. \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int), but it reads the image dimensions and pixel values from the specified image file. - The recognition of the image file format by %CImg higly depends on the tools installed on your system and on the external libraries you used to link your code against. - Considered pixel type \c T should better fit the file format specification, or data loss may occur during file load (e.g. constructing a \c CImg from a float-valued image file). - A \c CImgIOException is thrown when the specified \c filename cannot be read, or if the file format is not recognized. \par Example \code const CImg img("reference.jpg"); img.display(); \endcode \image html ref_image.jpg **/ explicit CImg(const char *const filename):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { assign(filename); } //! Construct image copy. /** Construct a new image instance with pixels of type \c T, as a copy of an existing \c CImg instance. \param img Input image to copy. \note - Constructed copy has the same size width() x height() x depth() x spectrum() and pixel values as the input image \c img. - If input image \c img is \e shared and if types \c T and \c t are the same, the constructed copy is also \e shared, and shares its pixel buffer with \c img. Modifying a pixel value in the constructed copy will thus also modifies it in the input image \c img. This behavior is needful to allow functions to return shared images. - Otherwise, the constructed copy allocates its own pixel buffer, and copies pixel values from the input image \c img into its buffer. The copied pixel values may be eventually statically casted if types \c T and \c t are different. - Constructing a copy from an image \c img when types \c t and \c T are the same is significantly faster than with different types. - A \c CImgInstanceException is thrown when the pixel buffer cannot be allocated (e.g. not enough available memory). **/ template CImg(const CImg& img):_is_shared(false) { const unsigned long siz = img.size(); if (img._data && siz) { _width = img._width; _height = img._height; _depth = img._depth; _spectrum = img._spectrum; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*img._width*img._height*img._depth*img._spectrum), img._width,img._height,img._depth,img._spectrum); } const t *ptrs = img._data; cimg_for(*this,ptrd,T) *ptrd = (T)*(ptrs++); } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Construct image copy \specialization. CImg(const CImg& img) { const unsigned long siz = img.size(); if (img._data && siz) { _width = img._width; _height = img._height; _depth = img._depth; _spectrum = img._spectrum; _is_shared = img._is_shared; if (_is_shared) _data = const_cast(img._data); else { try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*img._width*img._height*img._depth*img._spectrum), img._width,img._height,img._depth,img._spectrum); } std::memcpy(_data,img._data,siz*sizeof(T)); } } else { _width = _height = _depth = _spectrum = 0; _is_shared = false; _data = 0; } } //! Advanced copy constructor. /** Construct a new image instance with pixels of type \c T, as a copy of an existing \c CImg instance, while forcing the shared state of the constructed copy. \param img Input image to copy. \param is_shared Tells about the shared state of the constructed copy. \note - Similar to CImg(const CImg&), except that it allows to decide the shared state of the constructed image, which does not depend anymore on the shared state of the input image \c img: - If \c is_shared is \c true, the constructed copy will share its pixel buffer with the input image \c img. For that case, the pixel types \c T and \c t \e must be the same. - If \c is_shared is \c false, the constructed copy will allocate its own pixel buffer, whether the input image \c img is shared or not. - A \c CImgArgumentException is thrown when a shared copy is requested with different pixel types \c T and \c t. **/ template CImg(const CImg& img, const bool is_shared):_is_shared(false) { if (is_shared) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgArgumentException(_cimg_instance "CImg(): Invalid construction request of a shared instance from a " "CImg<%s> image (%u,%u,%u,%u,%p) (pixel types are different).", cimg_instance, CImg::pixel_type(),img._width,img._height,img._depth,img._spectrum,img._data); } const unsigned long siz = img.size(); if (img._data && siz) { _width = img._width; _height = img._height; _depth = img._depth; _spectrum = img._spectrum; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*img._width*img._height*img._depth*img._spectrum), img._width,img._height,img._depth,img._spectrum); } const t *ptrs = img._data; cimg_for(*this,ptrd,T) *ptrd = (T)*(ptrs++); } else { _width = _height = _depth = _spectrum = 0; _data = 0; } } //! Advanced copy constructor \specialization. CImg(const CImg& img, const bool is_shared) { const unsigned long siz = img.size(); if (img._data && siz) { _width = img._width; _height = img._height; _depth = img._depth; _spectrum = img._spectrum; _is_shared = is_shared; if (_is_shared) _data = const_cast(img._data); else { try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*img._width*img._height*img._depth*img._spectrum), img._width,img._height,img._depth,img._spectrum); } std::memcpy(_data,img._data,siz*sizeof(T)); } } else { _width = _height = _depth = _spectrum = 0; _is_shared = false; _data = 0; } } //! Construct image with dimensions borrowed from another image. /** Construct a new image instance with pixels of type \c T, and size get from some dimensions of an existing \c CImg instance. \param img Input image from which dimensions are borrowed. \param dimensions C-string describing the image size along the X,Y,Z and C-dimensions. \note - Similar to CImg(unsigned int,unsigned int,unsigned int,unsigned int), but it takes the image dimensions (\e not its pixel values) from an existing \c CImg instance. - The allocated pixel buffer is \e not filled with a default value, and is likely to contain garbage values. In order to initialize pixel values (e.g. with \c 0), use constructor CImg(const CImg&,const char*,T) instead. \par Example \code const CImg img1(256,128,1,3), // 'img1' is a 256x128x1x3 image. img2(img1,"xyzc"), // 'img2' is a 256x128x1x3 image. img3(img1,"y,x,z,c"), // 'img3' is a 128x256x1x3 image. img4(img1,"c,x,y,3",0), // 'img4' is a 3x128x256x3 image (with pixels initialized to '0'). \endcode **/ template CImg(const CImg& img, const char *const dimensions):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { assign(img,dimensions); } //! Construct image with dimensions borrowed from another image and initialize pixel values. /** Construct a new image instance with pixels of type \c T, and size get from the dimensions of an existing \c CImg instance, and set all pixel values to specified \c value. \param img Input image from which dimensions are borrowed. \param dimensions String describing the image size along the X,Y,Z and V-dimensions. \param value Value used for initialization. \note - Similar to CImg(const CImg&,const char*), but it also fills the pixel buffer with the specified \c value. **/ template CImg(const CImg& img, const char *const dimensions, const T value): _width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { assign(img,dimensions).fill(value); } //! Construct image from a display window. /** Construct a new image instance with pixels of type \c T, as a snapshot of an existing \c CImgDisplay instance. \param disp Input display window. \note - The width() and height() of the constructed image instance are the same as the specified \c CImgDisplay. - The depth() and spectrum() of the constructed image instance are respectively set to \c 1 and \c 3 (i.e. a 2d color image). - The image pixels are read as 8-bits RGB values. **/ explicit CImg(const CImgDisplay &disp):_width(0),_height(0),_depth(0),_spectrum(0),_is_shared(false),_data(0) { disp.snapshot(*this); } //! Construct empty image \inplace. /** In-place version of the default constructor CImg(). It simply resets the instance to an empty image. **/ CImg& assign() { if (!_is_shared) delete[] _data; _width = _height = _depth = _spectrum = 0; _is_shared = false; _data = 0; return *this; } //! Construct image with specified size \inplace. /** In-place version of the constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int). **/ CImg& assign(const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (!siz) return assign(); const unsigned long curr_siz = size(); if (siz!=curr_siz) { if (_is_shared) throw CImgArgumentException(_cimg_instance "assign(): Invalid assignement request of shared instance from specified image (%u,%u,%u,%u).", cimg_instance, size_x,size_y,size_z,size_c); else { delete[] _data; try { _data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "assign(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } } } _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; return *this; } //! Construct image with specified size and initialize pixel values \inplace. /** In-place version of the constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,T). **/ CImg& assign(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const T value) { return assign(size_x,size_y,size_z,size_c).fill(value); } //! Construct image with specified size and initialize pixel values from a sequence of integers \inplace. /** In-place version of the constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,int,int,...). **/ CImg& assign(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const int value0, const int value1, ...) { assign(size_x,size_y,size_z,size_c); _CImg_stdarg(*this,value0,value1,(unsigned long)size_x*size_y*size_z*size_c,int); return *this; } //! Construct image with specified size and initialize pixel values from a sequence of doubles \inplace. /** In-place version of the constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,double,double,...). **/ CImg& assign(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const double value0, const double value1, ...) { assign(size_x,size_y,size_z,size_c); _CImg_stdarg(*this,value0,value1,(unsigned long)size_x*size_y*size_z*size_c,double); return *this; } //! Construct image with specified size and initialize pixel values from a value string \inplace. /** In-place version of the constructor CImg(unsigned int,unsigned int,unsigned int,unsigned int,const char*,bool). **/ CImg& assign(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const char *const values, const bool repeat_values) { return assign(size_x,size_y,size_z,size_c).fill(values,repeat_values); } //! Construct image with specified size and initialize pixel values from a memory buffer \inplace. /** In-place version of the constructor CImg(const t*,unsigned int,unsigned int,unsigned int,unsigned int). **/ template CImg& assign(const t *const values, const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (!values || !siz) return assign(); assign(size_x,size_y,size_z,size_c); const t *ptrs = values; cimg_for(*this,ptrd,T) *ptrd = (T)*(ptrs++); return *this; } //! Construct image with specified size and initialize pixel values from a memory buffer \specialization. CImg& assign(const T *const values, const unsigned int size_x, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (!values || !siz) return assign(); const unsigned long curr_siz = size(); if (values==_data && siz==curr_siz) return assign(size_x,size_y,size_z,size_c); if (_is_shared || values+siz<_data || values>=_data+size()) { assign(size_x,size_y,size_z,size_c); if (_is_shared) std::memmove(_data,values,siz*sizeof(T)); else std::memcpy(_data,values,siz*sizeof(T)); } else { T *new_data = 0; try { new_data = new T[siz]; } catch (...) { _width = _height = _depth = _spectrum = 0; _data = 0; throw CImgInstanceException(_cimg_instance "assign(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).", cimg_instance, cimg::strbuffersize(sizeof(T)*size_x*size_y*size_z*size_c),size_x,size_y,size_z,size_c); } std::memcpy(new_data,values,siz*sizeof(T)); delete[] _data; _data = new_data; _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; } return *this; } //! Construct image with specified size and initialize pixel values from a memory buffer \overloading. template CImg& assign(const t *const values, const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const bool is_shared) { if (is_shared) throw CImgArgumentException(_cimg_instance "assign(): Invalid assignment request of shared instance from (%s*) buffer" "(pixel types are different).", cimg_instance, CImg::pixel_type()); return assign(values,size_x,size_y,size_z,size_c); } //! Construct image with specified size and initialize pixel values from a memory buffer \overloading. CImg& assign(const T *const values, const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const bool is_shared) { const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c; if (!values || !siz) { if (is_shared) throw CImgArgumentException(_cimg_instance "assign(): Invalid assignment request of shared instance from (null) or empty buffer.", cimg_instance); else return assign(); } if (!is_shared) { if (_is_shared) assign(); assign(values,size_x,size_y,size_z,size_c); } else { if (!_is_shared) { if (values+siz<_data || values>=_data+size()) assign(); else cimg::warn(_cimg_instance "assign(): Shared image instance has overlapping memory.", cimg_instance); } _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; _is_shared = true; _data = const_cast(values); } return *this; } //! Construct image from reading an image file \inplace. /** In-place version of the constructor CImg(const char*). **/ CImg& assign(const char *const filename) { return load(filename); } //! Construct image copy \inplace. /** In-place version of the constructor CImg(const CImg&). **/ template CImg& assign(const CImg& img) { return assign(img._data,img._width,img._height,img._depth,img._spectrum); } //! In-place version of the advanced copy constructor. /** In-place version of the constructor CImg(const CImg&,bool). **/ template CImg& assign(const CImg& img, const bool is_shared) { return assign(img._data,img._width,img._height,img._depth,img._spectrum,is_shared); } //! Construct image with dimensions borrowed from another image \inplace. /** In-place version of the constructor CImg(const CImg&,const char*). **/ template CImg& assign(const CImg& img, const char *const dimensions) { if (!dimensions || !*dimensions) return assign(img._width,img._height,img._depth,img._spectrum); unsigned int siz[4] = { 0,1,1,1 }, k = 0; for (const char *s = dimensions; *s && k<4; ++k) { char item[256] = { 0 }; if (std::sscanf(s,"%255[^0-9%xyzvwhdcXYZVWHDC]",item)>0) s+=std::strlen(item); if (*s) { unsigned int val = 0; char sep = 0; if (std::sscanf(s,"%u%c",&val,&sep)>0) { if (sep=='%') siz[k] = val*(k==0?_width:k==1?_height:k==2?_depth:_spectrum)/100; else siz[k] = val; while (*s>='0' && *s<='9') ++s; if (sep=='%') ++s; } else switch (cimg::uncase(*s)) { case 'x' : case 'w' : siz[k] = img._width; ++s; break; case 'y' : case 'h' : siz[k] = img._height; ++s; break; case 'z' : case 'd' : siz[k] = img._depth; ++s; break; case 'c' : case 's' : siz[k] = img._spectrum; ++s; break; default : throw CImgArgumentException(_cimg_instance "assign(): Invalid character '%c' detected in specified dimension string '%s'.", cimg_instance, *s,dimensions); } } } return assign(siz[0],siz[1],siz[2],siz[3]); } //! Construct image with dimensions borrowed from another image and initialize pixel values \inplace. /** In-place version of the constructor CImg(const CImg&,const char*,T). **/ template CImg& assign(const CImg& img, const char *const dimensions, const T value) { return assign(img,dimensions).fill(value); } //! Construct image from a display window \inplace. /** In-place version of the constructor CImg(const CImgDisplay&). **/ CImg& assign(const CImgDisplay &disp) { disp.snapshot(*this); return *this; } //! Construct empty image \inplace. /** Equivalent to assign(). \note - It has been defined for compatibility with STL naming conventions. **/ CImg& clear() { return assign(); } //! Transfer content of an image instance into another one. /** Transfer the dimensions and the pixel buffer content of an image instance into another one, and replace instance by an empty image. It avoids the copy of the pixel buffer when possible. \param img Destination image. \note - Pixel types \c T and \c t of source and destination images can be different, though the process is designed to be instantaneous when \c T and \c t are the same. \par Example \code CImg src(256,256,1,3,0), // Construct a 256x256x1x3 (color) image filled with value '0'. dest(16,16); // Construct a 16x16x1x1 (scalar) image. src.move_to(dest); // Now, 'src' is empty and 'dest' is the 256x256x1x3 image. \endcode **/ template CImg& move_to(CImg& img) { img.assign(*this); assign(); return img; } //! Transfer content of an image instance into another one \specialization. CImg& move_to(CImg& img) { if (_is_shared || img._is_shared) img.assign(*this); else swap(img); assign(); return img; } //! Transfer content of an image instance into a new image in an image list. /** Transfer the dimensions and the pixel buffer content of an image instance into a newly inserted image at position \c pos in specified \c CImgList instance. \param list Destination list. \param pos Position of the newly inserted image in the list. \note - When optionnal parameter \c pos is ommited, the image instance is transfered as a new image at the end of the specified \c list. - It is convenient to sequentially insert new images into image lists, with no additional copies of memory buffer. \par Example \code CImgList list; // Construct an empty image list. CImg img("reference.jpg"); // Read image from filename. img.move_to(list); // Transfer image content as a new item in the list (no buffer copy). \endcode **/ template CImgList& move_to(CImgList& list, const unsigned int pos=~0U) { const unsigned int npos = pos>list._width?list._width:pos; move_to(list.insert(1,npos)[npos]); return list; } //! Swap fields of two image instances. /** \param img Image to swap fields with. \note - It can be used to interchange the content of two images in a very fast way. Can be convenient when dealing with algorithms requiring two swapping buffers. \par Example \code CImg img1("lena.jpg"), img2("milla.jpg"); img1.swap(img2); // Now, 'img1' is 'milla' and 'img2' is 'lena'. \endcode **/ CImg& swap(CImg& img) { cimg::swap(_width,img._width); cimg::swap(_height,img._height); cimg::swap(_depth,img._depth); cimg::swap(_spectrum,img._spectrum); cimg::swap(_data,img._data); cimg::swap(_is_shared,img._is_shared); return img; } //! Return a reference to an empty image. /** \note This function is useful mainly to declare optional parameters having type \c CImg in functions prototypes, e.g. \code void f(const int x=0, const int y=0, const CImg& img=CImg::empty()); \endcode **/ static CImg& empty() { static CImg _empty; return _empty.assign(); } //@} //------------------------------------------ // //! \name Overloaded Operators //@{ //------------------------------------------ //! Access to a pixel value. /** Return a reference to a located pixel value of the image instance, being possibly \e const, whether the image instance is \e const or not. This is the standard method to get/set pixel values in \c CImg images. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Range of pixel coordinates start from (0,0,0,0) to (width()-1,height()-1,depth()-1,spectrum()-1). - Due to the particular arrangement of the pixel buffers defined in %CImg, you can omit one coordinate if the corresponding dimension is equal to \c 1. For instance, pixels of a 2d image (depth() equal to \c 1) can be accessed by img(x,y,c) instead of img(x,y,0,c). \warning - There is \e no boundary checking done in this operator, to make it as fast as possible. You \e must take care of out-of-bounds access by yourself, if necessary. For debuging purposes, you may want to define macro \c 'cimg_verbosity'>=3 to enable additional boundary checking operations in this operator. In that case, warning messages will be printed on the error output when accessing out-of-bounds pixels. \par Example \code CImg img(100,100,1,3,0); // Construct a 100x100x1x3 (color) image with pixels set to '0'. const float valR = img(10,10,0,0), // Read red value at coordinates (10,10). valG = img(10,10,0,1), // Read green value at coordinates (10,10) valB = img(10,10,2), // Read blue value at coordinates (10,10) (Z-coordinate can be omitted). avg = (valR + valG + valB)/3; // Compute average pixel value. img(10,10,0) = img(10,10,1) = img(10,10,2) = avg; // Replace the color pixel (10,10) by the average grey value. \endcode **/ #if cimg_verbosity>=3 T& operator()(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) { const unsigned long off = (unsigned long)offset(x,y,z,c); if (!_data || off>=size()) { cimg::warn(_cimg_instance "operator(): Invalid pixel request, at coordinates (%u,%u,%u,%u) [offset=%u].", cimg_instance, x,y,z,c,off); return *_data; } else return _data[off]; } //! Access to a pixel value \const. const T& operator()(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) const { return const_cast*>(this)->operator()(x,y,z,c); } //! Access to a pixel value. /** \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param wh Precomputed offset, must be equal to width()*\ref height(). \param whd Precomputed offset, must be equal to width()*\ref height()*\ref depth(). \note - Similar to (but faster than) operator()(). It uses precomputed offsets to optimize memory access. You may use it to optimize the reading/writing of several pixel values in the same image (e.g. in a loop). **/ T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c, const unsigned long wh, const unsigned long whd=0) { cimg::unused(wh,whd); return (*this)(x,y,z,c); } //! Access to a pixel value \const. const T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c, const unsigned long wh, const unsigned long whd=0) const { cimg::unused(wh,whd); return (*this)(x,y,z,c); } #else T& operator()(const unsigned int x) { return _data[x]; } const T& operator()(const unsigned int x) const { return _data[x]; } T& operator()(const unsigned int x, const unsigned int y) { return _data[x + y*_width]; } const T& operator()(const unsigned int x, const unsigned int y) const { return _data[x + y*_width]; } T& operator()(const unsigned int x, const unsigned int y, const unsigned int z) { return _data[x + y*(unsigned long)_width + z*(unsigned long)_width*_height]; } const T& operator()(const unsigned int x, const unsigned int y, const unsigned int z) const { return _data[x + y*(unsigned long)_width + z*(unsigned long)_width*_height]; } T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c) { return _data[x + y*(unsigned long)_width + z*(unsigned long)_width*_height + c*(unsigned long)_width*_height*_depth]; } const T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c) const { return _data[x + y*(unsigned long)_width + z*(unsigned long)_width*_height + c*(unsigned long)_width*_height*_depth]; } T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int, const unsigned long wh) { return _data[x + y*_width + z*wh]; } const T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int, const unsigned long wh) const { return _data[x + y*_width + z*wh]; } T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c, const unsigned long wh, const unsigned long whd) { return _data[x + y*_width + z*wh + c*whd]; } const T& operator()(const unsigned int x, const unsigned int y, const unsigned int z, const unsigned int c, const unsigned long wh, const unsigned long whd) const { return _data[x + y*_width + z*wh + c*whd]; } #endif //! Implicitely cast an image into a \c T*. /** Implicitely cast a \c CImg instance into a \c T* or \c const \c T* pointer, whether the image instance is \e const or not. The returned pointer points on the first value of the image pixel buffer. \note - It simply returns the pointer data() to the pixel buffer. - This implicit conversion is convenient to test the empty state of images (data() being \c 0 in this case), e.g. \code CImg img1(100,100), img2; // 'img1' is a 100x100 image, 'img2' is an empty image. if (img1) { // Test succeeds, 'img1' is not an empty image. if (!img2) { // Test succeeds, 'img2' is an empty image. std::printf("'img1' is not empty, 'img2' is empty."); } } \endcode - It also allows to use brackets to access pixel values, without need for a \c CImg::operator[](), e.g. \code CImg img(100,100); const float value = img[99]; // Access to value of the last pixel on the first row. img[510] = 255; // Set pixel value at (10,5). \endcode **/ operator T*() { return _data; } //! Implicitely cast an image into a \c T* \const. operator const T*() const { return _data; } //! Assign a value to all image pixels. /** Assign specified \c value to each pixel value of the image instance. \param value Value that will be assigned to image pixels. \note - The image size is never modified. - The \c value may be casted to pixel type \c T if necessary. \par Example \code CImg img(100,100); // Declare image (with garbage values). img = 0; // Set all pixel values to '0'. img = 1.2; // Set all pixel values to '1' (cast of '1.2' as a 'char'). \endcode **/ CImg& operator=(const T value) { return fill(value); } //! Assign pixels values from a specified expression. /** Initialize all pixel values from the specified string \c expression. \param expression Value string describing the way pixel values are set. \note - String parameter \c expression may describe different things: - If \c expression is a list of values (as in \c "1,2,3,8,3,2"), or a formula (as in \c "(x*y)%255"), the pixel values are set from specified \c expression and the image size is not modified. - If \c expression is a filename (as in \c "reference.jpg"), the corresponding image file is loaded and replace the image instance. The image size is modified if necessary. \par Example \code CImg img1(100,100), img2(img1), img3(img1); // Declare three 100x100 scalar images with unitialized pixel values. img1 = "0,50,100,150,200,250,200,150,100,50"; // Set pixel values of 'img1' from a value sequence. img2 = "10*((x*y)%25)"; // Set pixel values of 'img2' from a formula. img3 = "reference.jpg"; // Set pixel values of 'img3' from a file (image size is modified). (img1,img2,img3).display(); \endcode \image html ref_operator_eq.jpg **/ CImg& operator=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; load(expression); } cimg::exception_mode() = omode; return *this; } //! Copy an image into the current image instance. /** Similar to the in-place copy constructor assign(const CImg&). **/ template CImg& operator=(const CImg& img) { return assign(img); } //! Copy an image into the current image instance \specialization. CImg& operator=(const CImg& img) { return assign(img); } //! Copy the content of a display window to the current image instance. /** Similar to assign(const CImgDisplay&). **/ CImg& operator=(const CImgDisplay& disp) { disp.snapshot(*this); return *this; } //! In-place addition operator. /** Add specified \c value to all pixels of an image instance. \param value Value to add. \note - Resulting pixel values are casted to fit the pixel type \c T. For instance, adding \c 0.2 to a \c CImg is possible but does nothing indeed. - Overflow values are treated as with standard C++ numeric types. For instance, \code CImg img(100,100,1,1,255); // Construct a 100x100 image with pixel values '255'. img+=1; // Add '1' to each pixels -> Overflow. // here all pixels of image 'img' are equal to '0'. \endcode - To prevent value overflow, you may want to consider pixel type \c T as \c float or \c double, and use cut() after addition. \par Example \code CImg img1("reference.jpg"); // Load a 8-bits RGB image (values in [0,255]). CImg img2(img1); // Construct a float-valued copy of 'img1'. img2+=100; // Add '100' to pixel values -> goes out of [0,255] but no problems with floats. img2.cut(0,255); // Cut values in [0,255] to fit the 'unsigned char' constraint. img1 = img2; // Rewrite safe result in 'unsigned char' version 'img1'. const CImg img3 = (img1 + 100).cut(0,255); // Do the same in a more simple and elegant way. (img1,img2,img3).display(); \endcode \image html ref_operator_plus.jpg **/ template CImg& operator+=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd + value); return *this; } //! In-place addition operator. /** Add values to image pixels, according to the specified string \c expression. \param expression Value string describing the way pixel values are added. \note - Similar to operator=(const char*), except that it adds values to the pixels of the current image instance, instead of assigning them. **/ CImg& operator+=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator+="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd + mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd + mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this+=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place addition operator. /** Add values to image pixels, according to the values of the input image \c img. \param img Input image to add. \note - The size of the image instance is never modified. - It is not mandatory that input image \c img has the same size as the image instance. If less values are available in \c img, then the values are added cyclically. For instance, adding one WxH scalar image (spectrum() equal to \c 1) to one WxH color image (spectrum() equal to \c 3) means each color channel will be incremented with the same values at the same locations. \par Example \code CImg img1("reference.jpg"); // Load a RGB color image (img1.spectrum()==3) const CImg img2(img1.width(),img.height(),1,1,"255*(x/w)^2"); // Construct a scalar shading (img2.spectrum()==1). img1+=img2; // Add shading to each channel of 'img1'. img1.cut(0,255); // Prevent [0,255] overflow. (img2,img1).display(); \endcode \image html ref_operator_plus1.jpg **/ template CImg& operator+=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this+=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs& operator++() { cimg_for(*this,ptrd,T) ++*ptrd; return *this; } //! In-place increment operator (postfix). /** Add \c 1 to all image pixels, and return a new copy of the initial (pre-incremented) image instance. \note - Use the prefixed version operator++() if you don't need a copy of the initial (pre-incremented) image instance, since a useless image copy may be expensive in terms of memory usage. **/ CImg operator++(int) { const CImg copy(*this,false); ++*this; return copy; } //! Return a non-shared copy of the image instance. /** \note - Use this operator to ensure you get a non-shared copy of an image instance with same pixel type \c T. Indeed, the usual copy constructor CImg(const CImg&) returns a shared copy of a shared input image, and it may be not desirable to work on a regular copy (e.g. for a resize operation) if you have no informations about the shared state of the input image. - Writing \c (+img) is equivalent to \c CImg(img,false). **/ CImg operator+() const { return CImg(*this,false); } //! Addition operator. /** Similar to operator+=(const t), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator+(const t value) const { return CImg<_cimg_Tt>(*this,false)+=value; } //! Addition operator. /** Similar to operator+=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ CImg operator+(const char *const expression) const { return CImg(*this,false)+=expression; } //! Addition operator. /** Similar to operator+=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator+(const CImg& img) const { return CImg<_cimg_Tt>(*this,false)+=img; } //! In-place substraction operator. /** Similar to operator+=(const t), except that it performs a substraction instead of an addition. **/ template CImg& operator-=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd - value); return *this; } //! In-place substraction operator. /** Similar to operator+=(const char*), except that it performs a substraction instead of an addition. **/ CImg& operator-=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator-="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd - mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd - mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this-=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place substraction operator. /** Similar to operator+=(const CImg&), except that it performs a substraction instead of an addition. **/ template CImg& operator-=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this-=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs& operator--() { cimg_for(*this,ptrd,T) *ptrd = *ptrd-(T)1; return *this; } //! In-place decrement operator (postfix). /** Similar to operator++(int), except that it performs a decrement instead of an increment. **/ CImg operator--(int) { const CImg copy(*this,false); --*this; return copy; } //! Replace each pixel by its opposite value. /** \note - If the computed opposite values are out-of-range, they are treated as with standard C++ numeric types. For instance, the \c unsigned \c char opposite of \c 1 is \c 255. \par Example \code const CImg img1("reference.jpg"), // Load a RGB color image. img2 = -img1; // Compute its opposite (in 'unsigned char'). (img1,img2).display(); \endcode \image html ref_operator_minus.jpg **/ CImg operator-() const { return CImg(_width,_height,_depth,_spectrum,(T)0)-=*this; } //! Substraction operator. /** Similar to operator-=(const t), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator-(const t value) const { return CImg<_cimg_Tt>(*this,false)-=value; } //! Substraction operator. /** Similar to operator-=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ CImg operator-(const char *const expression) const { return CImg(*this,false)-=expression; } //! Substraction operator. /** Similar to operator-=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator-(const CImg& img) const { return CImg<_cimg_Tt>(*this,false)-=img; } //! In-place multiplication operator. /** Similar to operator+=(const t), except that it performs a multiplication instead of an addition. **/ template CImg& operator*=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd * value); return *this; } //! In-place multiplication operator. /** Similar to operator+=(const char*), except that it performs a multiplication instead of an addition. **/ CImg& operator*=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator*="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd * mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd * mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; mul(CImg(_width,_height,_depth,_spectrum,expression,true)); } cimg::exception_mode() = omode; return *this; } //! In-place multiplication operator. /** Replace the image instance by the matrix multiplication between the image instance and the specified matrix \c img. \param img Second operand of the matrix multiplication. \note - It does \e not compute a pointwise multiplication between two images. For this purpose, use mul(const CImg&) instead. - The size of the image instance can be modified by this operator. \par Example \code CImg A(2,2,1,1, 1,2,3,4); // Construct 2x2 matrix A = [1,2;3,4]. const CImg X(1,2,1,1, 1,2); // Construct 1x2 vector X = [1;2]. A*=X; // Assign matrix multiplication A*X to 'A'. // 'A' is now a 1x2 vector whose values are [5;11]. \endcode **/ template CImg& operator*=(const CImg& img) { return ((*this)*img).move_to(*this); } //! Multiplication operator. /** Similar to operator*=(const t), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator*(const t value) const { return CImg<_cimg_Tt>(*this,false)*=value; } //! Multiplication operator. /** Similar to operator*=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ CImg operator*(const char *const expression) const { return CImg(*this,false)*=expression; } //! Multiplication operator. /** Similar to operator*=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator*(const CImg& img) const { if (_width!=img._height || _depth!=1 || _spectrum!=1) throw CImgArgumentException(_cimg_instance "operator*(): Invalid multiplication of instance by specified matrix (%u,%u,%u,%u,%p)", cimg_instance, img._width,img._height,img._depth,img._spectrum,img._data); CImg<_cimg_Tt> res(img._width,_height); _cimg_Ttdouble value; #ifdef cimg_use_openmp #pragma omp parallel for if (size()>=1000 && img.size()>=1000) private(value) cimg_forXY(res,i,j) { value = 0; cimg_forX(*this,k) value+=(*this)(k,j)*img(i,k); res(i,j) = (_cimg_Tt)value; } #else _cimg_Tt *ptrd = res._data; cimg_forXY(res,i,j) { value = 0; cimg_forX(*this,k) value+=(*this)(k,j)*img(i,k); *(ptrd++) = (_cimg_Tt)value; } #endif return res; } //! In-place division operator. /** Similar to operator+=(const t), except that it performs a division instead of an addition. **/ template CImg& operator/=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd / value); return *this; } //! In-place division operator. /** Similar to operator+=(const char*), except that it performs a division instead of an addition. **/ CImg& operator/=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator/="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd / mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd / mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; div(CImg(_width,_height,_depth,_spectrum,expression,true)); } cimg::exception_mode() = omode; return *this; } //! In-place division operator. /** Replace the image instance by the (right) matrix division between the image instance and the specified matrix \c img. \param img Second operand of the matrix division. \note - It does \e not compute a pointwise division between two images. For this purpose, use div(const CImg&) instead. - It returns the matrix operation \c A*inverse(img). - The size of the image instance can be modified by this operator. **/ template CImg& operator/=(const CImg& img) { return (*this*img.get_invert()).move_to(*this); } //! Division operator. /** Similar to operator/=(const t), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator/(const t value) const { return CImg<_cimg_Tt>(*this,false)/=value; } //! Division operator. /** Similar to operator/=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ CImg operator/(const char *const expression) const { return CImg(*this,false)/=expression; } //! Division operator. /** Similar to operator/=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator/(const CImg& img) const { return (*this)*img.get_invert(); } //! In-place modulo operator. /** Similar to operator+=(const t), except that it performs a modulo operation instead of an addition. **/ template CImg& operator%=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)cimg::mod(*ptrd,(T)value); return *this; } //! In-place modulo operator. /** Similar to operator+=(const char*), except that it performs a modulo operation instead of an addition. **/ CImg& operator%=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator%="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::mod(*ptrd,(T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::mod(*ptrd,(T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this%=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place modulo operator. /** Similar to operator+=(const CImg&), except that it performs a modulo operation instead of an addition. **/ template CImg& operator%=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this%=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg<_cimg_Tt> operator%(const t value) const { return CImg<_cimg_Tt>(*this,false)%=value; } //! Modulo operator. /** Similar to operator%=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ CImg operator%(const char *const expression) const { return CImg(*this,false)%=expression; } //! Modulo operator. /** Similar to operator%=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image may be a superset of the initial pixel type \c T, if necessary. **/ template CImg<_cimg_Tt> operator%(const CImg& img) const { return CImg<_cimg_Tt>(*this,false)%=img; } //! In-place bitwise AND operator. /** Similar to operator+=(const t), except that it performs a bitwise AND operation instead of an addition. **/ template CImg& operator&=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)((unsigned long)*ptrd & (unsigned long)value); return *this; } //! In-place bitwise AND operator. /** Similar to operator+=(const char*), except that it performs a bitwise AND operation instead of an addition. **/ CImg& operator&=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator&="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd & (unsigned long)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd & (unsigned long)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this&=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place bitwise AND operator. /** Similar to operator+=(const CImg&), except that it performs a bitwise AND operation instead of an addition. **/ template CImg& operator&=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this&=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg operator&(const t value) const { return (+*this)&=value; } //! Bitwise AND operator. /** Similar to operator&=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ CImg operator&(const char *const expression) const { return (+*this)&=expression; } //! Bitwise AND operator. /** Similar to operator&=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator&(const CImg& img) const { return (+*this)&=img; } //! In-place bitwise OR operator. /** Similar to operator+=(const t), except that it performs a bitwise OR operation instead of an addition. **/ template CImg& operator|=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)((unsigned long)*ptrd | (unsigned long)value); return *this; } //! In-place bitwise OR operator. /** Similar to operator+=(const char*), except that it performs a bitwise OR operation instead of an addition. **/ CImg& operator|=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator|="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd | (unsigned long)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd | (unsigned long)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this|=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place bitwise OR operator. /** Similar to operator+=(const CImg&), except that it performs a bitwise OR operation instead of an addition. **/ template CImg& operator|=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this|=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg operator|(const t value) const { return (+*this)|=value; } //! Bitwise OR operator. /** Similar to operator|=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ CImg operator|(const char *const expression) const { return (+*this)|=expression; } //! Bitwise OR operator. /** Similar to operator|=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator|(const CImg& img) const { return (+*this)|=img; } //! In-place bitwise XOR operator. /** Similar to operator+=(const t), except that it performs a bitwise XOR operation instead of an addition. \warning - It does \e not compute the \e power of pixel values. For this purpose, use pow(const t) instead. **/ template CImg& operator^=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)((unsigned long)*ptrd ^ (unsigned long)value); return *this; } //! In-place bitwise XOR operator. /** Similar to operator+=(const char*), except that it performs a bitwise XOR operation instead of an addition. \warning - It does \e not compute the \e power of pixel values. For this purpose, use pow(const char*) instead. **/ CImg& operator^=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator^="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd ^ (unsigned long)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)((unsigned long)*ptrd ^ (unsigned long)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this^=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place bitwise XOR operator. /** Similar to operator+=(const CImg&), except that it performs a bitwise XOR operation instead of an addition. \warning - It does \e not compute the \e power of pixel values. For this purpose, use pow(const CImg&) instead. **/ template CImg& operator^=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this^=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg operator^(const t value) const { return (+*this)^=value; } //! Bitwise XOR operator. /** Similar to operator^=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ CImg operator^(const char *const expression) const { return (+*this)^=expression; } //! Bitwise XOR operator. /** Similar to operator^=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator^(const CImg& img) const { return (+*this)^=img; } //! In-place bitwise left shift operator. /** Similar to operator+=(const t), except that it performs a bitwise left shift instead of an addition. **/ template CImg& operator<<=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(((long)*ptrd) << (int)value); return *this; } //! In-place bitwise left shift operator. /** Similar to operator+=(const char*), except that it performs a bitwise left shift instead of an addition. **/ CImg& operator<<=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator<<="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)((long)*ptrd << (int)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)((long)*ptrd << (int)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this<<=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place bitwise left shift operator. /** Similar to operator+=(const CImg&), except that it performs a bitwise left shift instead of an addition. **/ template CImg& operator<<=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this^=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg operator<<(const t value) const { return (+*this)<<=value; } //! Bitwise left shift operator. /** Similar to operator<<=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ CImg operator<<(const char *const expression) const { return (+*this)<<=expression; } //! Bitwise left shift operator. /** Similar to operator<<=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator<<(const CImg& img) const { return (+*this)<<=img; } //! In-place bitwise right shift operator. /** Similar to operator+=(const t), except that it performs a bitwise right shift instead of an addition. **/ template CImg& operator>>=(const t value) { cimg_for(*this,ptrd,T) *ptrd = (T)(((long)*ptrd) >> (int)value); return *this; } //! In-place bitwise right shift operator. /** Similar to operator+=(const char*), except that it performs a bitwise right shift instead of an addition. **/ CImg& operator>>=(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator<<="); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)((long)*ptrd >> (int)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)((long)*ptrd >> (int)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; *this>>=CImg(_width,_height,_depth,_spectrum,expression,true); } cimg::exception_mode() = omode; return *this; } //! In-place bitwise right shift operator. /** Similar to operator+=(const CImg&), except that it performs a bitwise right shift instead of an addition. **/ template CImg& operator>>=(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return *this^=+img; T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs> (int)*(ptrs++)); for (const t *ptrs = img._data; ptrd> (int)*(ptrs++)); } return *this; } //! Bitwise right shift operator. /** Similar to operator>>=(const t), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator>>(const t value) const { return (+*this)>>=value; } //! Bitwise right shift operator. /** Similar to operator>>=(const char*), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ CImg operator>>(const char *const expression) const { return (+*this)>>=expression; } //! Bitwise right shift operator. /** Similar to operator>>=(const CImg&), except that it returns a new image instance instead of operating in-place. The pixel type of the returned image is \c T. **/ template CImg operator>>(const CImg& img) const { return (+*this)>>=img; } //! Bitwise inversion operator. /** Similar to operator-(), except that it compute the bitwise inverse instead of the opposite value. **/ CImg operator~() const { CImg res(_width,_height,_depth,_spectrum); const T *ptrs = _data; cimg_for(res,ptrd,T) { const unsigned long value = (unsigned long)*(ptrs++); *ptrd = (T)~value; } return res; } //! Test if all pixels of an image have the same value. /** Return \c true is all pixels of the image instance are equal to the specified \c value. \param value Reference value to compare with. **/ template bool operator==(const t value) const { if (is_empty()) return false; typedef _cimg_Tt Tt; bool is_equal = true; for (T *ptrd = _data + size(); is_equal && ptrd>_data; is_equal = ((Tt)*(--ptrd)==(Tt)value)) {} return is_equal; } //! Test if all pixel values of an image follow a specified expression. /** Return \c true is all pixels of the image instance are equal to the specified \c expression. \param expression Value string describing the way pixel values are compared. **/ bool operator==(const char *const expression) const { if (is_empty()) return !*expression; const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; bool is_equal = true; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator<<="); const T *ptrs = _data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { if (!is_equal) break; is_equal = ((double)*(ptrs--)==mp.eval(x,y,z,c)); } else cimg_forXYZC(*this,x,y,z,c) { if (!is_equal) break; is_equal = ((double)*(ptrs++)==mp.eval(x,y,z,c)); } } catch (CImgException&) { cimg::exception_mode() = omode; is_equal = (*this==CImg(_width,_height,_depth,_spectrum,expression,true)); } cimg::exception_mode() = omode; return is_equal; } //! Test if two images have the same size and values. /** Return \c true if the image instance and the input image \c img have the same dimensions and pixel values, and \c false otherwise. \param img Input image to compare with. \note - The pixel buffer pointers data() of the two compared images do not have to be the same for operator==() to return \c true. Only the dimensions and the pixel values matter. Thus, the comparison can be \c true even for different pixel types \c T and \c t. \par Example \code const CImg img1(1,3,1,1, 0,1,2); // Construct a 1x3 vector [0;1;2] (with 'float' pixel values). const CImg img2(1,3,1,1, 0,1,2); // Construct a 1x3 vector [0;1;2] (with 'char' pixel values). if (img1==img2) { // Test succeeds, image dimensions and values are the same. std::printf("'img1' and 'img2' have same dimensions and values."); } \endcode **/ template bool operator==(const CImg& img) const { typedef _cimg_Tt Tt; const unsigned long siz = size(); bool is_equal = true; if (siz!=img.size()) return false; t *ptrs = img._data + siz; for (T *ptrd = _data + siz; is_equal && ptrd>_data; is_equal = ((Tt)*(--ptrd)==(Tt)*(--ptrs))) {} return is_equal; } //! Test if pixels of an image are all different from a value. /** Return \c true is all pixels of the image instance are different than the specified \c value. \param value Reference value to compare with. **/ template bool operator!=(const t value) const { return !((*this)==value); } //! Test if all pixel values of an image are different from a specified expression. /** Return \c true is all pixels of the image instance are different to the specified \c expression. \param expression Value string describing the way pixel values are compared. **/ bool operator!=(const char *const expression) const { return !((*this)==expression); } //! Test if two images have different sizes or values. /** Return \c true if the image instance and the input image \c img have different dimensions or pixel values, and \c false otherwise. \param img Input image to compare with. \note - Writing \c img1!=img2 is equivalent to \c !(img1==img2). **/ template bool operator!=(const CImg& img) const { return !((*this)==img); } //! Construct an image list from two images. /** Return a new list of image (\c CImgList instance) containing exactly two elements: - A copy of the image instance, at position [\c 0]. - A copy of the specified image \c img, at position [\c 1]. \param img Input image that will be the second image of the resulting list. \note - The family of operator,() is convenient to easily create list of images, but it is also \e quite \e slow in practice (see warning below). - Constructed lists contain no shared images. If image instance or input image \c img are shared, they are inserted as new non-shared copies in the resulting list. - The pixel type of the returned list may be a superset of the initial pixel type \c T, if necessary. \warning - Pipelining operator,() \c N times will perform \c N copies of the entire content of a (growing) image list. This may become very expensive in terms of speed and used memory. You should avoid using this technique to build a new CImgList instance from several images, if you are seeking for performance. Fast insertions of images in an image list are possible with CImgList::insert(const CImg&,unsigned int,bool) or move_to(CImgList&,unsigned int). \par Example \code const CImg img1("reference.jpg"), img2 = img1.get_mirror('x'), img3 = img2.get_blur(5); const CImgList list = (img1,img2); // Create list of two elements from 'img1' and 'img2'. (list,img3).display(); // Display image list containing copies of 'img1','img2' and 'img3'. \endcode \image html ref_operator_comma.jpg **/ template CImgList<_cimg_Tt> operator,(const CImg& img) const { return CImgList<_cimg_Tt>(*this,img); } //! Construct an image list from image instance and an input image list. /** Return a new list of images (\c CImgList instance) containing exactly \c list.size() \c + \c 1 elements: - A copy of the image instance, at position [\c 0]. - A copy of the specified image list \c list, from positions [\c 1] to [\c list.size()]. \param list Input image list that will be appended to the image instance. \note - Similar to operator,(const CImg&) const, except that it takes an image list as an argument. **/ template CImgList<_cimg_Tt> operator,(const CImgList& list) const { return CImgList<_cimg_Tt>(list,false).insert(*this,0); } //! Split image along specified axis. /** Return a new list of images (\c CImgList instance) containing the splitted components of the instance image along the specified axis. \param axis Splitting axis (can be '\c x','\c y','\c z' or '\c c') \note - Similar to get_split(char,int) const, with default second argument. \par Example \code const CImg img("reference.jpg"); // Load a RGB color image. const CImgList list = (img<'c'); // Get a list of its three R,G,B channels. (img,list).display(); \endcode \image html ref_operator_less.jpg **/ CImgList operator<(const char axis) const { return get_split(axis); } //@} //------------------------------------- // //! \name Instance Characteristics //@{ //------------------------------------- //! Return the type of image pixel values as a C string. /** Return a \c char* string containing the usual type name of the image pixel values (i.e. a stringified version of the template parameter \c T). \note - The returned string may contain spaces (as in \c "unsigned char"). - If the pixel type \c T does not correspond to a registered type, the string "unknown" is returned. **/ static const char* pixel_type() { return cimg::type::string(); } //! Return the number of image columns. /** Return the image width, i.e. the image dimension along the X-axis. \note - The width() of an empty image is equal to \c 0. - width() is typically equal to \c 1 when considering images as \e vectors for matrix calculations. - width() returns an \c int, although the image width is internally stored as an \c unsigned \c int. Using an \c int is safer and prevents arithmetic traps possibly encountered when doing calculations involving \c unsigned \c int variables. Access to the initial \c unsigned \c int variable is possible (though not recommended) by (*this)._width. **/ int width() const { return (int)_width; } //! Return the number of image rows. /** Return the image height, i.e. the image dimension along the Y-axis. \note - The height() of an empty image is equal to \c 0. - height() returns an \c int, although the image height is internally stored as an \c unsigned \c int. Using an \c int is safer and prevents arithmetic traps possibly encountered when doing calculations involving \c unsigned \c int variables. Access to the initial \c unsigned \c int variable is possible (though not recommended) by (*this)._height. **/ int height() const { return (int)_height; } //! Return the number of image slices. /** Return the image depth, i.e. the image dimension along the Z-axis. \note - The depth() of an empty image is equal to \c 0. - depth() is typically equal to \c 1 when considering usual 2d images. When depth()\c > \c 1, the image is said to be \e volumetric. - depth() returns an \c int, although the image depth is internally stored as an \c unsigned \c int. Using an \c int is safer and prevents arithmetic traps possibly encountered when doing calculations involving \c unsigned \c int variables. Access to the initial \c unsigned \c int variable is possible (though not recommended) by (*this)._depth. **/ int depth() const { return (int)_depth; } //! Return the number of image channels. /** Return the number of image channels, i.e. the image dimension along the C-axis. \note - The spectrum() of an empty image is equal to \c 0. - spectrum() is typically equal to \c 1 when considering scalar-valued images, to \c 3 for RGB-coded color images, and to \c 4 for RGBA-coded color images (with alpha-channel). The number of channels of an image instance is not limited. The meaning of the pixel values is not linked up to the number of channels (e.g. a 4-channel image may indifferently stands for a RGBA or CMYK color image). - spectrum() returns an \c int, although the image spectrum is internally stored as an \c unsigned \c int. Using an \c int is safer and prevents arithmetic traps possibly encountered when doing calculations involving \c unsigned \c int variables. Access to the initial \c unsigned \c int variable is possible (though not recommended) by (*this)._spectrum. **/ int spectrum() const { return (int)_spectrum; } //! Return the total number of pixel values. /** Return width()*\ref height()*\ref depth()*\ref spectrum(), i.e. the total number of values of type \c T in the pixel buffer of the image instance. \note - The size() of an empty image is equal to \c 0. - The allocated memory size for a pixel buffer of a non-shared \c CImg instance is equal to size()*sizeof(T). \par Example \code const CImg img(100,100,1,3); // Construct new 100x100 color image. if (img.size()==30000) // Test succeeds. std::printf("Pixel buffer uses %lu bytes", img.size()*sizeof(float)); \endcode **/ unsigned long size() const { return (unsigned long)_width*_height*_depth*_spectrum; } //! Return a pointer to the first pixel value. /** Return a \c T*, or a \c const \c T* pointer to the first value in the pixel buffer of the image instance, whether the instance is \c const or not. \note - The data() of an empty image is equal to \c 0 (null pointer). - The allocated pixel buffer for the image instance starts from \c data() and goes to data()+\ref size()-1 (included). - To get the pointer to one particular location of the pixel buffer, use data(unsigned int,unsigned int,unsigned int,unsigned int) instead. **/ T* data() { return _data; } //! Return a pointer to the first pixel value \const. const T* data() const { return _data; } //! Return a pointer to a located pixel value. /** Return a \c T*, or a \c const \c T* pointer to the value located at (\c x,\c y,\c z,\c c) in the pixel buffer of the image instance, whether the instance is \c const or not. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Writing \c img.data(x,y,z,c) is equivalent to &(img(x,y,z,c)). Thus, this method has the same properties as operator()(unsigned int,unsigned int,unsigned int,unsigned int). **/ #if cimg_verbosity>=3 T *data(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) { const unsigned long off = (unsigned long)offset(x,y,z,c); if (off>=size()) cimg::warn(_cimg_instance "data(): Invalid pointer request, at coordinates (%u,%u,%u,%u) [offset=%u].", cimg_instance, x,y,z,c,off); return _data + off; } //! Return a pointer to a located pixel value \const. const T* data(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) const { return const_cast*>(this)->data(x,y,z,c); } #else T* data(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) { return _data + x + y*(unsigned long)_width + z*(unsigned long)_width*_height + c*(unsigned long)_width*_height*_depth; } const T* data(const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) const { return _data + x + y*_width + z*(unsigned long)_width*_height + c*(unsigned long)_width*_height*_depth; } #endif //! Return the offset to a located pixel value, with respect to the beginning of the pixel buffer. /** \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Writing \c img.data(x,y,z,c) is equivalent to &(img(x,y,z,c)) - img.data(). Thus, this method has the same properties as operator()(unsigned int,unsigned int,unsigned int,unsigned int). \par Example \code const CImg img(100,100,1,3); // Define a 100x100 RGB-color image. const long off = img.offset(10,10,0,2); // Get the offset of the blue value of the pixel located at (10,10). const float val = img[off]; // Get the blue value of this pixel. \endcode **/ long offset(const int x, const int y=0, const int z=0, const int c=0) const { return x + y*(long)_width + z*(long)_width*_height + c*(long)_width*_height*_depth; } //! Return a CImg::iterator pointing to the first pixel value. /** \note - Equivalent to data(). - It has been mainly defined for compatibility with STL naming conventions. **/ iterator begin() { return _data; } //! Return a CImg::iterator pointing to the first value of the pixel buffer \const. const_iterator begin() const { return _data; } //! Return a CImg::iterator pointing next to the last pixel value. /** \note - Writing \c img.end() is equivalent to img.data() + img.size(). - It has been mainly defined for compatibility with STL naming conventions. \warning - The returned iterator actually points to a value located \e outside the acceptable bounds of the pixel buffer. Trying to read or write the content of the returned iterator will probably result in a crash. Use it mainly as an strict upper bound for a CImg::iterator. \par Example \code CImg img(100,100,1,3); // Define a 100x100 RGB color image. for (CImg::iterator it = img.begin(); it::iterator pointing next to the last pixel value \const. const_iterator end() const { return _data + size(); } //! Return a reference to the first pixel value. /** \note - Writing \c img.front() is equivalent to img[0], or img(0,0,0,0). - It has been mainly defined for compatibility with STL naming conventions. **/ T& front() { return *_data; } //! Return a reference to the first pixel value \const. const T& front() const { return *_data; } //! Return a reference to the last pixel value. /** \note - Writing \c img.end() is equivalent to img[img.size()-1], or img(img.width()-1,img.height()-1,img.depth()-1,img.spectrum()-1). - It has been mainly defined for compatibility with STL naming conventions. **/ T& back() { return *(_data + size() - 1); } //! Return a reference to the last pixel value \const. const T& back() const { return *(_data + size() - 1); } //! Access to a pixel value at a specified offset, using Dirichlet boundary conditions. /** Return a reference to the pixel value of the image instance located at a specified \c offset, or to a specified default value in case of out-of-bounds access. \param offset Offset to the desired pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note - Writing \c img.at(offset,out_value) is similar to img[offset], except that if \c offset is outside bounds (e.g. \c offset<0 or \c offset>=img.size()), a reference to a value \c out_value is safely returned instead. - Due to the additional boundary checking operation, this method is slower than operator()(). Use it when you are \e not sure about the validity of the specified pixel offset. **/ T& at(const int offset, const T out_value) { return (offset<0 || offset>=(int)size())?(cimg::temporary(out_value)=out_value):(*this)[offset]; } //! Access to a pixel value at a specified offset, using Dirichlet boundary conditions \const. T at(const int offset, const T out_value) const { return (offset<0 || offset>=(int)size())?out_value:(*this)[offset]; } //! Access to a pixel value at a specified offset, using Neumann boundary conditions. /** Return a reference to the pixel value of the image instance located at a specified \c offset, or to the nearest pixel location in the image instance in case of out-of-bounds access. \param offset Offset to the desired pixel value. \note - Similar to at(int,const T), except that an out-of-bounds access returns the value of the nearest pixel in the image instance, regarding the specified offset, i.e. - If \c offset<0, then \c img[0] is returned. - If \c offset>=img.size(), then \c img[img.size()-1] is returned. - Due to the additional boundary checking operation, this method is slower than operator()(). Use it when you are \e not sure about the validity of the specified pixel offset. - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _at(int). **/ T& at(const int offset) { if (is_empty()) throw CImgInstanceException(_cimg_instance "at(): Empty instance.", cimg_instance); return _at(offset); } T& _at(const int offset) { const unsigned int siz = (unsigned int)size(); return (*this)[offset<0?0:(unsigned int)offset>=siz?siz-1:offset]; } //! Access to a pixel value at a specified offset, using Neumann boundary conditions \const. T at(const int offset) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "at(): Empty instance.", cimg_instance); return _at(offset); } T _at(const int offset) const { const unsigned int siz = (unsigned int)size(); return (*this)[offset<0?0:(unsigned int)offset>=siz?siz-1:offset]; } //! Access to a pixel value, using Dirichlet boundary conditions for the X-coordinate. /** Return a reference to the pixel value of the image instance located at (\c x,\c y,\c z,\c c), or to a specified default value in case of out-of-bounds access along the X-axis. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c (\c x,\c y,\c z,\c c) is outside image bounds. \note - Similar to operator()(), except that an out-of-bounds access along the X-axis returns the specified value \c out_value. - Due to the additional boundary checking operation, this method is slower than operator()(). Use it when you are \e not sure about the validity of the specified pixel coordinates. \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ T& atX(const int x, const int y, const int z, const int c, const T out_value) { return (x<0 || x>=width())?(cimg::temporary(out_value)=out_value):(*this)(x,y,z,c); } //! Access to a pixel value, using Dirichlet boundary conditions for the X-coordinate \const. T atX(const int x, const int y, const int z, const int c, const T out_value) const { return (x<0 || x>=width())?out_value:(*this)(x,y,z,c); } //! Access to a pixel value, using Neumann boundary conditions for the X-coordinate. /** Return a reference to the pixel value of the image instance located at (\c x,\c y,\c z,\c c), or to the nearest pixel location in the image instance in case of out-of-bounds access along the X-axis. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Similar to at(int,int,int,int,const T), except that an out-of-bounds access returns the value of the nearest pixel in the image instance, regarding the specified X-coordinate. - Due to the additional boundary checking operation, this method is slower than operator()(). Use it when you are \e not sure about the validity of the specified pixel coordinates. - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _at(int,int,int,int). \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ T& atX(const int x, const int y=0, const int z=0, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimg_instance "atX(): Empty instance.", cimg_instance); return _atX(x,y,z,c); } T& _atX(const int x, const int y=0, const int z=0, const int c=0) { return (*this)(x<0?0:(x>=width()?width()-1:x),y,z,c); } //! Access to a pixel value, using Neumann boundary conditions for the X-coordinate \const. T atX(const int x, const int y=0, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "atX(): Empty instance.", cimg_instance); return _atX(x,y,z,c); } T _atX(const int x, const int y=0, const int z=0, const int c=0) const { return (*this)(x<0?0:(x>=width()?width()-1:x),y,z,c); } //! Access to a pixel value, using Dirichlet boundary conditions for the X and Y-coordinates. /** Similar to atX(int,int,int,int,const T), except that boundary checking is performed both on X and Y-coordinates. **/ T& atXY(const int x, const int y, const int z, const int c, const T out_value) { return (x<0 || y<0 || x>=width() || y>=height())?(cimg::temporary(out_value)=out_value):(*this)(x,y,z,c); } //! Access to a pixel value, using Dirichlet boundary conditions for the X and Y coordinates \const. T atXY(const int x, const int y, const int z, const int c, const T out_value) const { return (x<0 || y<0 || x>=width() || y>=height())?out_value:(*this)(x,y,z,c); } //! Access to a pixel value, using Neumann boundary conditions for the X and Y-coordinates. /** Similar to atX(int,int,int,int), except that boundary checking is performed both on X and Y-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _atXY(int,int,int,int). **/ T& atXY(const int x, const int y, const int z=0, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXY(): Empty instance.", cimg_instance); return _atXY(x,y,z,c); } T& _atXY(const int x, const int y, const int z=0, const int c=0) { return (*this)(x<0?0:(x>=width()?width()-1:x), y<0?0:(y>=height()?height()-1:y),z,c); } //! Access to a pixel value, using Neumann boundary conditions for the X and Y-coordinates \const. T atXY(const int x, const int y, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXY(): Empty instance.", cimg_instance); return _atXY(x,y,z,c); } T _atXY(const int x, const int y, const int z=0, const int c=0) const { return (*this)(x<0?0:(x>=width()?width()-1:x), y<0?0:(y>=height()?height()-1:y),z,c); } //! Access to a pixel value, using Dirichlet boundary conditions for the X,Y and Z-coordinates. /** Similar to atX(int,int,int,int,const T), except that boundary checking is performed both on X,Y and Z-coordinates. **/ T& atXYZ(const int x, const int y, const int z, const int c, const T out_value) { return (x<0 || y<0 || z<0 || x>=width() || y>=height() || z>=depth())? (cimg::temporary(out_value)=out_value):(*this)(x,y,z,c); } //! Access to a pixel value, using Dirichlet boundary conditions for the X,Y and Z-coordinates \const. T atXYZ(const int x, const int y, const int z, const int c, const T out_value) const { return (x<0 || y<0 || z<0 || x>=width() || y>=height() || z>=depth())?out_value:(*this)(x,y,z,c); } //! Access to a pixel value, using Neumann boundary conditions for the X,Y and Z-coordinates. /** Similar to atX(int,int,int,int), except that boundary checking is performed both on X,Y and Z-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _atXYZ(int,int,int,int). **/ T& atXYZ(const int x, const int y, const int z, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXYZ(): Empty instance.", cimg_instance); return _atXYZ(x,y,z,c); } T& _atXYZ(const int x, const int y, const int z, const int c=0) { return (*this)(x<0?0:(x>=width()?width()-1:x),y<0?0:(y>=height()?height()-1:y), z<0?0:(z>=depth()?depth()-1:z),c); } //! Access to a pixel value, using Neumann boundary conditions for the X,Y and Z-coordinates \const. T atXYZ(const int x, const int y, const int z, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXYZ(): Empty instance.", cimg_instance); return _atXYZ(x,y,z,c); } T _atXYZ(const int x, const int y, const int z, const int c=0) const { return (*this)(x<0?0:(x>=width()?width()-1:x),y<0?0:(y>=height()?height()-1:y), z<0?0:(z>=depth()?depth()-1:z),c); } //! Access to a pixel value, using Dirichlet boundary conditions. /** Similar to atX(int,int,int,int,const T), except that boundary checking is performed on all X,Y,Z and C-coordinates. **/ T& atXYZC(const int x, const int y, const int z, const int c, const T out_value) { return (x<0 || y<0 || z<0 || c<0 || x>=width() || y>=height() || z>=depth() || c>=spectrum())? (cimg::temporary(out_value)=out_value):(*this)(x,y,z,c); } //! Access to a pixel value, using Dirichlet boundary conditions \const. T atXYZC(const int x, const int y, const int z, const int c, const T out_value) const { return (x<0 || y<0 || z<0 || c<0 || x>=width() || y>=height() || z>=depth() || c>=spectrum())?out_value:(*this)(x,y,z,c); } //! Access to a pixel value, using Neumann boundary conditions. /** Similar to atX(int,int,int,int), except that boundary checking is performed on all X,Y,Z and C-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _atXYZC(int,int,int,int). **/ T& atXYZC(const int x, const int y, const int z, const int c) { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXYZC(): Empty instance.", cimg_instance); return _atXYZC(x,y,z,c); } T& _atXYZC(const int x, const int y, const int z, const int c) { return (*this)(x<0?0:(x>=width()?width()-1:x), y<0?0:(y>=height()?height()-1:y), z<0?0:(z>=depth()?depth()-1:z), c<0?0:(c>=spectrum()?spectrum()-1:c)); } //! Access to a pixel value, using Neumann boundary conditions \const. T atXYZC(const int x, const int y, const int z, const int c) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "atXYZC(): Empty instance.", cimg_instance); return _atXYZC(x,y,z,c); } T _atXYZC(const int x, const int y, const int z, const int c) const { return (*this)(x<0?0:(x>=width()?width()-1:x), y<0?0:(y>=height()?height()-1:y), z<0?0:(z>=depth()?depth()-1:z), c<0?0:(c>=spectrum()?spectrum()-1:c)); } //! Return pixel value, using linear interpolation and Dirichlet boundary conditions for the X-coordinate. /** Return a linearly-interpolated pixel value of the image instance located at (\c fx,\c y,\c z,\c c), or a specified default value in case of out-of-bounds access along the X-axis. \param fx X-coordinate of the pixel value (float-valued). \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c (\c fx,\c y,\c z,\c c) is outside image bounds. \note - Similar to atX(int,int,int,int,const T), except that the returned pixel value is approximated by a linear interpolation along the X-axis, if corresponding coordinates are not integers. - The type of the returned pixel value is extended to \c float, if the pixel type \c T is not float-valued. \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ Tfloat linear_atX(const float fx, const int y, const int z, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), nx = x + 1; const float dx = fx - x; const Tfloat Ic = (Tfloat)atX(x,y,z,c,out_value), In = (Tfloat)atXY(nx,y,z,c,out_value); return Ic + dx*(In-Ic); } //! Return pixel value, using linear interpolation and Neumann boundary conditions for the X-coordinate. /** Return a linearly-interpolated pixel value of the image instance located at (\c fx,\c y,\c z,\c c), or the value of the nearest pixel location in the image instance in case of out-of-bounds access along the X-axis. \param fx X-coordinate of the pixel value (float-valued). \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Similar to linear_atX(float,int,int,int,const T) const, except that an out-of-bounds access returns the value of the nearest pixel in the image instance, regarding the specified X-coordinate. - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _linear_atX(float,int,int,int). \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ Tfloat linear_atX(const float fx, const int y=0, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "linear_atX(): Empty instance.", cimg_instance); return _linear_atX(fx,y,z,c); } Tfloat _linear_atX(const float fx, const int y=0, const int z=0, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx); const unsigned int x = (unsigned int)nfx; const float dx = nfx - x; const unsigned int nx = dx>0?x+1:x; const Tfloat Ic = (Tfloat)(*this)(x,y,z,c), In = (Tfloat)(*this)(nx,y,z,c); return Ic + dx*(In-Ic); } //! Return pixel value, using linear interpolation and Dirichlet boundary conditions for the X and Y-coordinates. /** Similar to linear_atX(float,int,int,int,const T) const, except that the linear interpolation and the boundary checking are achieved both for X and Y-coordinates. **/ Tfloat linear_atXY(const float fx, const float fy, const int z, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), nx = x + 1, y = (int)fy - (fy>=0?0:1), ny = y + 1; const float dx = fx - x, dy = fy - y; const Tfloat Icc = (Tfloat)atXY(x,y,z,c,out_value), Inc = (Tfloat)atXY(nx,y,z,c,out_value), Icn = (Tfloat)atXY(x,ny,z,c,out_value), Inn = (Tfloat)atXY(nx,ny,z,c,out_value); return Icc + dx*(Inc-Icc + dy*(Icc+Inn-Icn-Inc)) + dy*(Icn-Icc); } //! Return pixel value, using linear interpolation and Neumann boundary conditions for the X and Y-coordinates. /** Similar to linear_atX(float,int,int,int) const, except that the linear interpolation and the boundary checking are achieved both for X and Y-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _linear_atXY(float,float,int,int). **/ Tfloat linear_atXY(const float fx, const float fy, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "linear_atXY(): Empty instance.", cimg_instance); return _linear_atXY(fx,fy,z,c); } Tfloat _linear_atXY(const float fx, const float fy, const int z=0, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx), nfy = fy<0?0:(fy>_height-1?_height-1:fy); const unsigned int x = (unsigned int)nfx, y = (unsigned int)nfy; const float dx = nfx - x, dy = nfy - y; const unsigned int nx = dx>0?x+1:x, ny = dy>0?y+1:y; const Tfloat Icc = (Tfloat)(*this)(x,y,z,c), Inc = (Tfloat)(*this)(nx,y,z,c), Icn = (Tfloat)(*this)(x,ny,z,c), Inn = (Tfloat)(*this)(nx,ny,z,c); return Icc + dx*(Inc-Icc + dy*(Icc+Inn-Icn-Inc)) + dy*(Icn-Icc); } //! Return pixel value, using linear interpolation and Dirichlet boundary conditions for the X,Y and Z-coordinates. /** Similar to linear_atX(float,int,int,int,const T) const, except that the linear interpolation and the boundary checking are achieved both for X,Y and Z-coordinates. **/ Tfloat linear_atXYZ(const float fx, const float fy, const float fz, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), nx = x + 1, y = (int)fy - (fy>=0?0:1), ny = y + 1, z = (int)fz - (fz>=0?0:1), nz = z + 1; const float dx = fx - x, dy = fy - y, dz = fz - z; const Tfloat Iccc = (Tfloat)atXYZ(x,y,z,c,out_value), Incc = (Tfloat)atXYZ(nx,y,z,c,out_value), Icnc = (Tfloat)atXYZ(x,ny,z,c,out_value), Innc = (Tfloat)atXYZ(nx,ny,z,c,out_value), Iccn = (Tfloat)atXYZ(x,y,nz,c,out_value), Incn = (Tfloat)atXYZ(nx,y,nz,c,out_value), Icnn = (Tfloat)atXYZ(x,ny,nz,c,out_value), Innn = (Tfloat)atXYZ(nx,ny,nz,c,out_value); return Iccc + dx*(Incc-Iccc + dy*(Iccc+Innc-Icnc-Incc + dz*(Iccn+Innn+Icnc+Incc-Icnn-Incn-Iccc-Innc)) + dz*(Iccc+Incn-Iccn-Incc)) + dy*(Icnc-Iccc + dz*(Iccc+Icnn-Iccn-Icnc)) + dz*(Iccn-Iccc); } //! Return pixel value, using linear interpolation and Neumann boundary conditions for the X,Y and Z-coordinates. /** Similar to linear_atX(float,int,int,int) const, except that the linear interpolation and the boundary checking are achieved both for X,Y and Z-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _linear_atXYZ(float,float,float,int). **/ Tfloat linear_atXYZ(const float fx, const float fy=0, const float fz=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "linear_atXYZ(): Empty instance.", cimg_instance); return _linear_atXYZ(fx,fy,fz,c); } Tfloat _linear_atXYZ(const float fx, const float fy=0, const float fz=0, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx), nfy = fy<0?0:(fy>_height-1?_height-1:fy), nfz = fz<0?0:(fz>_depth-1?_depth-1:fz); const unsigned int x = (unsigned int)nfx, y = (unsigned int)nfy, z = (unsigned int)nfz; const float dx = nfx - x, dy = nfy - y, dz = nfz - z; const unsigned int nx = dx>0?x+1:x, ny = dy>0?y+1:y, nz = dz>0?z+1:z; const Tfloat Iccc = (Tfloat)(*this)(x,y,z,c), Incc = (Tfloat)(*this)(nx,y,z,c), Icnc = (Tfloat)(*this)(x,ny,z,c), Innc = (Tfloat)(*this)(nx,ny,z,c), Iccn = (Tfloat)(*this)(x,y,nz,c), Incn = (Tfloat)(*this)(nx,y,nz,c), Icnn = (Tfloat)(*this)(x,ny,nz,c), Innn = (Tfloat)(*this)(nx,ny,nz,c); return Iccc + dx*(Incc-Iccc + dy*(Iccc+Innc-Icnc-Incc + dz*(Iccn+Innn+Icnc+Incc-Icnn-Incn-Iccc-Innc)) + dz*(Iccc+Incn-Iccn-Incc)) + dy*(Icnc-Iccc + dz*(Iccc+Icnn-Iccn-Icnc)) + dz*(Iccn-Iccc); } //! Return pixel value, using linear interpolation and Dirichlet boundary conditions for all X,Y,Z and C-coordinates. /** Similar to linear_atX(float,int,int,int,const T) const, except that the linear interpolation and the boundary checking are achieved for all X,Y,Z and C-coordinates. **/ Tfloat linear_atXYZC(const float fx, const float fy, const float fz, const float fc, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), nx = x + 1, y = (int)fy - (fy>=0?0:1), ny = y + 1, z = (int)fz - (fz>=0?0:1), nz = z + 1, c = (int)fc - (fc>=0?0:1), nc = c + 1; const float dx = fx - x, dy = fy - y, dz = fz - z, dc = fc - c; const Tfloat Icccc = (Tfloat)atXYZC(x,y,z,c,out_value), Inccc = (Tfloat)atXYZC(nx,y,z,c,out_value), Icncc = (Tfloat)atXYZC(x,ny,z,c,out_value), Inncc = (Tfloat)atXYZC(nx,ny,z,c,out_value), Iccnc = (Tfloat)atXYZC(x,y,nz,c,out_value), Incnc = (Tfloat)atXYZC(nx,y,nz,c,out_value), Icnnc = (Tfloat)atXYZC(x,ny,nz,c,out_value), Innnc = (Tfloat)atXYZC(nx,ny,nz,c,out_value), Icccn = (Tfloat)atXYZC(x,y,z,nc,out_value), Inccn = (Tfloat)atXYZC(nx,y,z,nc,out_value), Icncn = (Tfloat)atXYZC(x,ny,z,nc,out_value), Inncn = (Tfloat)atXYZC(nx,ny,z,nc,out_value), Iccnn = (Tfloat)atXYZC(x,y,nz,nc,out_value), Incnn = (Tfloat)atXYZC(nx,y,nz,nc,out_value), Icnnn = (Tfloat)atXYZC(x,ny,nz,nc,out_value), Innnn = (Tfloat)atXYZC(nx,ny,nz,nc,out_value); return Icccc + dx*(Inccc-Icccc + dy*(Icccc+Inncc-Icncc-Inccc + dz*(Iccnc+Innnc+Icncc+Inccc-Icnnc-Incnc-Icccc-Inncc + dc*(Iccnn+Innnn+Icncn+Inccn+Icnnc+Incnc+Icccc+Inncc-Icnnn-Incnn-Icccn-Inncn-Iccnc-Innnc-Icncc-Inccc)) + dc*(Icccn+Inncn+Icncc+Inccc-Icncn-Inccn-Icccc-Inncc)) + dz*(Icccc+Incnc-Iccnc-Inccc + dc*(Icccn+Incnn+Iccnc+Inccc-Iccnn-Inccn-Icccc-Incnc)) + dc*(Icccc+Inccn-Inccc-Icccn)) + dy*(Icncc-Icccc + dz*(Icccc+Icnnc-Iccnc-Icncc + dc*(Icccn+Icnnn+Iccnc+Icncc-Iccnn-Icncn-Icccc-Icnnc)) + dc*(Icccc+Icncn-Icncc-Icccn)) + dz*(Iccnc-Icccc + dc*(Icccc+Iccnn-Iccnc-Icccn)) + dc*(Icccn-Icccc); } //! Return pixel value, using linear interpolation and Neumann boundary conditions for all X,Y,Z and C-coordinates. /** Similar to linear_atX(float,int,int,int) const, except that the linear interpolation and the boundary checking are achieved for all X,Y,Z and C-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _linear_atXYZC(float,float,float,float). **/ Tfloat linear_atXYZC(const float fx, const float fy=0, const float fz=0, const float fc=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "linear_atXYZC(): Empty instance.", cimg_instance); return _linear_atXYZC(fx,fy,fz,fc); } Tfloat _linear_atXYZC(const float fx, const float fy=0, const float fz=0, const float fc=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx), nfy = fy<0?0:(fy>_height-1?_height-1:fy), nfz = fz<0?0:(fz>_depth-1?_depth-1:fz), nfc = fc<0?0:(fc>_spectrum-1?_spectrum-1:fc); const unsigned int x = (unsigned int)nfx, y = (unsigned int)nfy, z = (unsigned int)nfz, c = (unsigned int)nfc; const float dx = nfx - x, dy = nfy - y, dz = nfz - z, dc = nfc - c; const unsigned int nx = dx>0?x+1:x, ny = dy>0?y+1:y, nz = dz>0?z+1:z, nc = dc>0?c+1:c; const Tfloat Icccc = (Tfloat)(*this)(x,y,z,c), Inccc = (Tfloat)(*this)(nx,y,z,c), Icncc = (Tfloat)(*this)(x,ny,z,c), Inncc = (Tfloat)(*this)(nx,ny,z,c), Iccnc = (Tfloat)(*this)(x,y,nz,c), Incnc = (Tfloat)(*this)(nx,y,nz,c), Icnnc = (Tfloat)(*this)(x,ny,nz,c), Innnc = (Tfloat)(*this)(nx,ny,nz,c), Icccn = (Tfloat)(*this)(x,y,z,nc), Inccn = (Tfloat)(*this)(nx,y,z,nc), Icncn = (Tfloat)(*this)(x,ny,z,nc), Inncn = (Tfloat)(*this)(nx,ny,z,nc), Iccnn = (Tfloat)(*this)(x,y,nz,nc), Incnn = (Tfloat)(*this)(nx,y,nz,nc), Icnnn = (Tfloat)(*this)(x,ny,nz,nc), Innnn = (Tfloat)(*this)(nx,ny,nz,nc); return Icccc + dx*(Inccc-Icccc + dy*(Icccc+Inncc-Icncc-Inccc + dz*(Iccnc+Innnc+Icncc+Inccc-Icnnc-Incnc-Icccc-Inncc + dc*(Iccnn+Innnn+Icncn+Inccn+Icnnc+Incnc+Icccc+Inncc-Icnnn-Incnn-Icccn-Inncn-Iccnc-Innnc-Icncc-Inccc)) + dc*(Icccn+Inncn+Icncc+Inccc-Icncn-Inccn-Icccc-Inncc)) + dz*(Icccc+Incnc-Iccnc-Inccc + dc*(Icccn+Incnn+Iccnc+Inccc-Iccnn-Inccn-Icccc-Incnc)) + dc*(Icccc+Inccn-Inccc-Icccn)) + dy*(Icncc-Icccc + dz*(Icccc+Icnnc-Iccnc-Icncc + dc*(Icccn+Icnnn+Iccnc+Icncc-Iccnn-Icncn-Icccc-Icnnc)) + dc*(Icccc+Icncn-Icncc-Icccn)) + dz*(Iccnc-Icccc + dc*(Icccc+Iccnn-Iccnc-Icccn)) + dc*(Icccn-Icccc); } //! Return pixel value, using cubic interpolation and Dirichlet boundary conditions for the X-coordinate. /** Return a cubicly-interpolated pixel value of the image instance located at (\c fx,\c y,\c z,\c c), or a specified default value in case of out-of-bounds access along the X-axis. \param fx d X-coordinate of the pixel value (float-valued). \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c (\c fx,\c y,\c z,\c c) is outside image bounds. \note - Similar to linear_atX(float,int,int,int,const T) const, except that the returned pixel value is approximated by a \e cubic interpolation along the X-axis. - The type of the returned pixel value is extended to \c float, if the pixel type \c T is not float-valued. \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ Tfloat cubic_atX(const float fx, const int y, const int z, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), px = x - 1, nx = x + 1, ax = x + 2; const float dx = fx - x; const Tfloat Ip = (Tfloat)atX(px,y,z,c,out_value), Ic = (Tfloat)atX(x,y,z,c,out_value), In = (Tfloat)atX(nx,y,z,c,out_value), Ia = (Tfloat)atX(ax,y,z,c,out_value); return Ic + 0.5f*(dx*(-Ip+In) + dx*dx*(2*Ip-5*Ic+4*In-Ia) + dx*dx*dx*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Dirichlet boundary conditions for the X-coordinate. /** Similar to cubic_atX(float,int,int,int,const T) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atX(const float fx, const int y, const int z, const int c, const T out_value, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atX(fx,y,z,c,out_value); return valmax_value?max_value:val; } //! Return pixel value, using cubic interpolation and Neumann boundary conditions for the X-coordinate. /** Return a cubicly-interpolated pixel value of the image instance located at (\c fx,\c y,\c z,\c c), or the value of the nearest pixel location in the image instance in case of out-of-bounds access along the X-axis. \param fx X-coordinate of the pixel value (float-valued). \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Similar to cubic_atX(float,int,int,int,const T) const, except that the returned pixel value is approximated by a cubic interpolation along the X-axis. - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _cubic_atX(float,int,int,int). \warning - There is \e no boundary checking performed for the Y,Z and C-coordinates, so they must be inside image bounds. **/ Tfloat cubic_atX(const float fx, const int y=0, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "cubic_atX(): Empty instance.", cimg_instance); return _cubic_atX(fx,y,z,c); } Tfloat _cubic_atX(const float fx, const int y=0, const int z=0, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx); const int x = (int)nfx; const float dx = nfx - x; const int px = x-1<0?0:x-1, nx = dx>0?x+1:x, ax = x+2>=width()?width()-1:x+2; const Tfloat Ip = (Tfloat)(*this)(px,y,z,c), Ic = (Tfloat)(*this)(x,y,z,c), In = (Tfloat)(*this)(nx,y,z,c), Ia = (Tfloat)(*this)(ax,y,z,c); return Ic + 0.5f*(dx*(-Ip+In) + dx*dx*(2*Ip-5*Ic+4*In-Ia) + dx*dx*dx*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Neumann boundary conditions for the X-coordinate. /** Similar to cubic_atX(float,int,int,int) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atX(const float fx, const int y, const int z, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atX(fx,y,z,c); return valmax_value?max_value:val; } Tfloat _cubic_atX(const float fx, const int y, const int z, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = _cubic_atX(fx,y,z,c); return valmax_value?max_value:val; } //! Return pixel value, using cubic interpolation and Dirichlet boundary conditions for the X and Y-coordinates. /** Similar to cubic_atX(float,int,int,int,const T) const, except that the cubic interpolation and boundary checking are achieved both for X and Y-coordinates. **/ Tfloat cubic_atXY(const float fx, const float fy, const int z, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), px = x - 1, nx = x + 1, ax = x + 2, y = (int)fy - (fy>=0?0:1), py = y - 1, ny = y + 1, ay = y + 2; const float dx = fx - x, dy = fy - y; const Tfloat Ipp = (Tfloat)atXY(px,py,z,c,out_value), Icp = (Tfloat)atXY(x,py,z,c,out_value), Inp = (Tfloat)atXY(nx,py,z,c,out_value), Iap = (Tfloat)atXY(ax,py,z,c,out_value), Ip = Icp + 0.5f*(dx*(-Ipp+Inp) + dx*dx*(2*Ipp-5*Icp+4*Inp-Iap) + dx*dx*dx*(-Ipp+3*Icp-3*Inp+Iap)), Ipc = (Tfloat)atXY(px,y,z,c,out_value), Icc = (Tfloat)atXY(x, y,z,c,out_value), Inc = (Tfloat)atXY(nx,y,z,c,out_value), Iac = (Tfloat)atXY(ax,y,z,c,out_value), Ic = Icc + 0.5f*(dx*(-Ipc+Inc) + dx*dx*(2*Ipc-5*Icc+4*Inc-Iac) + dx*dx*dx*(-Ipc+3*Icc-3*Inc+Iac)), Ipn = (Tfloat)atXY(px,ny,z,c,out_value), Icn = (Tfloat)atXY(x,ny,z,c,out_value), Inn = (Tfloat)atXY(nx,ny,z,c,out_value), Ian = (Tfloat)atXY(ax,ny,z,c,out_value), In = Icn + 0.5f*(dx*(-Ipn+Inn) + dx*dx*(2*Ipn-5*Icn+4*Inn-Ian) + dx*dx*dx*(-Ipn+3*Icn-3*Inn+Ian)), Ipa = (Tfloat)atXY(px,ay,z,c,out_value), Ica = (Tfloat)atXY(x,ay,z,c,out_value), Ina = (Tfloat)atXY(nx,ay,z,c,out_value), Iaa = (Tfloat)atXY(ax,ay,z,c,out_value), Ia = Ica + 0.5f*(dx*(-Ipa+Ina) + dx*dx*(2*Ipa-5*Ica+4*Ina-Iaa) + dx*dx*dx*(-Ipa+3*Ica-3*Ina+Iaa)); return Ic + 0.5f*(dy*(-Ip+In) + dy*dy*(2*Ip-5*Ic+4*In-Ia) + dy*dy*dy*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Dirichlet boundary conditions for the X and Y-coordinates. /** Similar to cubic_atXY(float,float,int,int,const T) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atXY(const float fx, const float fy, const int z, const int c, const T out_value, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atXY(fx,fy,z,c,out_value); return valmax_value?max_value:val; } //! Return pixel value, using cubic interpolation and Neumann boundary conditions for the X and Y-coordinates. /** Similar to cubic_atX(float,int,int,int) const, except that the cubic interpolation and boundary checking are achieved for both X and Y-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _cubic_atXY(float,float,int,int). **/ Tfloat cubic_atXY(const float fx, const float fy, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "cubic_atXY(): Empty instance.", cimg_instance); return _cubic_atXY(fx,fy,z,c); } Tfloat _cubic_atXY(const float fx, const float fy, const int z=0, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx), nfy = fy<0?0:(fy>_height-1?_height-1:fy); const int x = (int)nfx, y = (int)nfy; const float dx = nfx - x, dy = nfy - y; const int px = x-1<0?0:x-1, nx = dx>0?x+1:x, ax = x+2>=width()?width()-1:x+2, py = y-1<0?0:y-1, ny = dy>0?y+1:y, ay = y+2>=height()?height()-1:y+2; const Tfloat Ipp = (Tfloat)(*this)(px,py,z,c), Icp = (Tfloat)(*this)(x,py,z,c), Inp = (Tfloat)(*this)(nx,py,z,c), Iap = (Tfloat)(*this)(ax,py,z,c), Ip = Icp + 0.5f*(dx*(-Ipp+Inp) + dx*dx*(2*Ipp-5*Icp+4*Inp-Iap) + dx*dx*dx*(-Ipp+3*Icp-3*Inp+Iap)), Ipc = (Tfloat)(*this)(px,y,z,c), Icc = (Tfloat)(*this)(x, y,z,c), Inc = (Tfloat)(*this)(nx,y,z,c), Iac = (Tfloat)(*this)(ax,y,z,c), Ic = Icc + 0.5f*(dx*(-Ipc+Inc) + dx*dx*(2*Ipc-5*Icc+4*Inc-Iac) + dx*dx*dx*(-Ipc+3*Icc-3*Inc+Iac)), Ipn = (Tfloat)(*this)(px,ny,z,c), Icn = (Tfloat)(*this)(x,ny,z,c), Inn = (Tfloat)(*this)(nx,ny,z,c), Ian = (Tfloat)(*this)(ax,ny,z,c), In = Icn + 0.5f*(dx*(-Ipn+Inn) + dx*dx*(2*Ipn-5*Icn+4*Inn-Ian) + dx*dx*dx*(-Ipn+3*Icn-3*Inn+Ian)), Ipa = (Tfloat)(*this)(px,ay,z,c), Ica = (Tfloat)(*this)(x,ay,z,c), Ina = (Tfloat)(*this)(nx,ay,z,c), Iaa = (Tfloat)(*this)(ax,ay,z,c), Ia = Ica + 0.5f*(dx*(-Ipa+Ina) + dx*dx*(2*Ipa-5*Ica+4*Ina-Iaa) + dx*dx*dx*(-Ipa+3*Ica-3*Ina+Iaa)); return Ic + 0.5f*(dy*(-Ip+In) + dy*dy*(2*Ip-5*Ic+4*In-Ia) + dy*dy*dy*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Neumann boundary conditions for the X and Y-coordinates. /** Similar to cubic_atXY(float,float,int,int) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atXY(const float fx, const float fy, const int z, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atXY(fx,fy,z,c); return valmax_value?max_value:val; } Tfloat _cubic_atXY(const float fx, const float fy, const int z, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = _cubic_atXY(fx,fy,z,c); return valmax_value?max_value:val; } //! Return pixel value, using cubic interpolation and Dirichlet boundary conditions for the X,Y and Z-coordinates. /** Similar to cubic_atX(float,int,int,int,const T) const, except that the cubic interpolation and boundary checking are achieved both for X,Y and Z-coordinates. **/ Tfloat cubic_atXYZ(const float fx, const float fy, const float fz, const int c, const T out_value) const { const int x = (int)fx - (fx>=0?0:1), px = x - 1, nx = x + 1, ax = x + 2, y = (int)fy - (fy>=0?0:1), py = y - 1, ny = y + 1, ay = y + 2, z = (int)fz - (fz>=0?0:1), pz = z - 1, nz = z + 1, az = z + 2; const float dx = fx - x, dy = fy - y, dz = fz - z; const Tfloat Ippp = (Tfloat)atXYZ(px,py,pz,c,out_value), Icpp = (Tfloat)atXYZ(x,py,pz,c,out_value), Inpp = (Tfloat)atXYZ(nx,py,pz,c,out_value), Iapp = (Tfloat)atXYZ(ax,py,pz,c,out_value), Ipp = Icpp + 0.5f*(dx*(-Ippp+Inpp) + dx*dx*(2*Ippp-5*Icpp+4*Inpp-Iapp) + dx*dx*dx*(-Ippp+3*Icpp-3*Inpp+Iapp)), Ipcp = (Tfloat)atXYZ(px,y,pz,c,out_value), Iccp = (Tfloat)atXYZ(x, y,pz,c,out_value), Incp = (Tfloat)atXYZ(nx,y,pz,c,out_value), Iacp = (Tfloat)atXYZ(ax,y,pz,c,out_value), Icp = Iccp + 0.5f*(dx*(-Ipcp+Incp) + dx*dx*(2*Ipcp-5*Iccp+4*Incp-Iacp) + dx*dx*dx*(-Ipcp+3*Iccp-3*Incp+Iacp)), Ipnp = (Tfloat)atXYZ(px,ny,pz,c,out_value), Icnp = (Tfloat)atXYZ(x,ny,pz,c,out_value), Innp = (Tfloat)atXYZ(nx,ny,pz,c,out_value), Ianp = (Tfloat)atXYZ(ax,ny,pz,c,out_value), Inp = Icnp + 0.5f*(dx*(-Ipnp+Innp) + dx*dx*(2*Ipnp-5*Icnp+4*Innp-Ianp) + dx*dx*dx*(-Ipnp+3*Icnp-3*Innp+Ianp)), Ipap = (Tfloat)atXYZ(px,ay,pz,c,out_value), Icap = (Tfloat)atXYZ(x,ay,pz,c,out_value), Inap = (Tfloat)atXYZ(nx,ay,pz,c,out_value), Iaap = (Tfloat)atXYZ(ax,ay,pz,c,out_value), Iap = Icap + 0.5f*(dx*(-Ipap+Inap) + dx*dx*(2*Ipap-5*Icap+4*Inap-Iaap) + dx*dx*dx*(-Ipap+3*Icap-3*Inap+Iaap)), Ip = Icp + 0.5f*(dy*(-Ipp+Inp) + dy*dy*(2*Ipp-5*Icp+4*Inp-Iap) + dy*dy*dy*(-Ipp+3*Icp-3*Inp+Iap)), Ippc = (Tfloat)atXYZ(px,py,z,c,out_value), Icpc = (Tfloat)atXYZ(x,py,z,c,out_value), Inpc = (Tfloat)atXYZ(nx,py,z,c,out_value), Iapc = (Tfloat)atXYZ(ax,py,z,c,out_value), Ipc = Icpc + 0.5f*(dx*(-Ippc+Inpc) + dx*dx*(2*Ippc-5*Icpc+4*Inpc-Iapc) + dx*dx*dx*(-Ippc+3*Icpc-3*Inpc+Iapc)), Ipcc = (Tfloat)atXYZ(px,y,z,c,out_value), Iccc = (Tfloat)atXYZ(x, y,z,c,out_value), Incc = (Tfloat)atXYZ(nx,y,z,c,out_value), Iacc = (Tfloat)atXYZ(ax,y,z,c,out_value), Icc = Iccc + 0.5f*(dx*(-Ipcc+Incc) + dx*dx*(2*Ipcc-5*Iccc+4*Incc-Iacc) + dx*dx*dx*(-Ipcc+3*Iccc-3*Incc+Iacc)), Ipnc = (Tfloat)atXYZ(px,ny,z,c,out_value), Icnc = (Tfloat)atXYZ(x,ny,z,c,out_value), Innc = (Tfloat)atXYZ(nx,ny,z,c,out_value), Ianc = (Tfloat)atXYZ(ax,ny,z,c,out_value), Inc = Icnc + 0.5f*(dx*(-Ipnc+Innc) + dx*dx*(2*Ipnc-5*Icnc+4*Innc-Ianc) + dx*dx*dx*(-Ipnc+3*Icnc-3*Innc+Ianc)), Ipac = (Tfloat)atXYZ(px,ay,z,c,out_value), Icac = (Tfloat)atXYZ(x,ay,z,c,out_value), Inac = (Tfloat)atXYZ(nx,ay,z,c,out_value), Iaac = (Tfloat)atXYZ(ax,ay,z,c,out_value), Iac = Icac + 0.5f*(dx*(-Ipac+Inac) + dx*dx*(2*Ipac-5*Icac+4*Inac-Iaac) + dx*dx*dx*(-Ipac+3*Icac-3*Inac+Iaac)), Ic = Icc + 0.5f*(dy*(-Ipc+Inc) + dy*dy*(2*Ipc-5*Icc+4*Inc-Iac) + dy*dy*dy*(-Ipc+3*Icc-3*Inc+Iac)), Ippn = (Tfloat)atXYZ(px,py,nz,c,out_value), Icpn = (Tfloat)atXYZ(x,py,nz,c,out_value), Inpn = (Tfloat)atXYZ(nx,py,nz,c,out_value), Iapn = (Tfloat)atXYZ(ax,py,nz,c,out_value), Ipn = Icpn + 0.5f*(dx*(-Ippn+Inpn) + dx*dx*(2*Ippn-5*Icpn+4*Inpn-Iapn) + dx*dx*dx*(-Ippn+3*Icpn-3*Inpn+Iapn)), Ipcn = (Tfloat)atXYZ(px,y,nz,c,out_value), Iccn = (Tfloat)atXYZ(x, y,nz,c,out_value), Incn = (Tfloat)atXYZ(nx,y,nz,c,out_value), Iacn = (Tfloat)atXYZ(ax,y,nz,c,out_value), Icn = Iccn + 0.5f*(dx*(-Ipcn+Incn) + dx*dx*(2*Ipcn-5*Iccn+4*Incn-Iacn) + dx*dx*dx*(-Ipcn+3*Iccn-3*Incn+Iacn)), Ipnn = (Tfloat)atXYZ(px,ny,nz,c,out_value), Icnn = (Tfloat)atXYZ(x,ny,nz,c,out_value), Innn = (Tfloat)atXYZ(nx,ny,nz,c,out_value), Iann = (Tfloat)atXYZ(ax,ny,nz,c,out_value), Inn = Icnn + 0.5f*(dx*(-Ipnn+Innn) + dx*dx*(2*Ipnn-5*Icnn+4*Innn-Iann) + dx*dx*dx*(-Ipnn+3*Icnn-3*Innn+Iann)), Ipan = (Tfloat)atXYZ(px,ay,nz,c,out_value), Ican = (Tfloat)atXYZ(x,ay,nz,c,out_value), Inan = (Tfloat)atXYZ(nx,ay,nz,c,out_value), Iaan = (Tfloat)atXYZ(ax,ay,nz,c,out_value), Ian = Ican + 0.5f*(dx*(-Ipan+Inan) + dx*dx*(2*Ipan-5*Ican+4*Inan-Iaan) + dx*dx*dx*(-Ipan+3*Ican-3*Inan+Iaan)), In = Icn + 0.5f*(dy*(-Ipn+Inn) + dy*dy*(2*Ipn-5*Icn+4*Inn-Ian) + dy*dy*dy*(-Ipn+3*Icn-3*Inn+Ian)), Ippa = (Tfloat)atXYZ(px,py,az,c,out_value), Icpa = (Tfloat)atXYZ(x,py,az,c,out_value), Inpa = (Tfloat)atXYZ(nx,py,az,c,out_value), Iapa = (Tfloat)atXYZ(ax,py,az,c,out_value), Ipa = Icpa + 0.5f*(dx*(-Ippa+Inpa) + dx*dx*(2*Ippa-5*Icpa+4*Inpa-Iapa) + dx*dx*dx*(-Ippa+3*Icpa-3*Inpa+Iapa)), Ipca = (Tfloat)atXYZ(px,y,az,c,out_value), Icca = (Tfloat)atXYZ(x, y,az,c,out_value), Inca = (Tfloat)atXYZ(nx,y,az,c,out_value), Iaca = (Tfloat)atXYZ(ax,y,az,c,out_value), Ica = Icca + 0.5f*(dx*(-Ipca+Inca) + dx*dx*(2*Ipca-5*Icca+4*Inca-Iaca) + dx*dx*dx*(-Ipca+3*Icca-3*Inca+Iaca)), Ipna = (Tfloat)atXYZ(px,ny,az,c,out_value), Icna = (Tfloat)atXYZ(x,ny,az,c,out_value), Inna = (Tfloat)atXYZ(nx,ny,az,c,out_value), Iana = (Tfloat)atXYZ(ax,ny,az,c,out_value), Ina = Icna + 0.5f*(dx*(-Ipna+Inna) + dx*dx*(2*Ipna-5*Icna+4*Inna-Iana) + dx*dx*dx*(-Ipna+3*Icna-3*Inna+Iana)), Ipaa = (Tfloat)atXYZ(px,ay,az,c,out_value), Icaa = (Tfloat)atXYZ(x,ay,az,c,out_value), Inaa = (Tfloat)atXYZ(nx,ay,az,c,out_value), Iaaa = (Tfloat)atXYZ(ax,ay,az,c,out_value), Iaa = Icaa + 0.5f*(dx*(-Ipaa+Inaa) + dx*dx*(2*Ipaa-5*Icaa+4*Inaa-Iaaa) + dx*dx*dx*(-Ipaa+3*Icaa-3*Inaa+Iaaa)), Ia = Ica + 0.5f*(dy*(-Ipa+Ina) + dy*dy*(2*Ipa-5*Ica+4*Ina-Iaa) + dy*dy*dy*(-Ipa+3*Ica-3*Ina+Iaa)); return Ic + 0.5f*(dz*(-Ip+In) + dz*dz*(2*Ip-5*Ic+4*In-Ia) + dz*dz*dz*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Dirichlet boundary conditions for the X,Y and Z-coordinates. /** Similar to cubic_atXYZ(float,float,float,int,const T) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atXYZ(const float fx, const float fy, const float fz, const int c, const T out_value, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atXYZ(fx,fy,fz,c,out_value); return valmax_value?max_value:val; } //! Return pixel value, using cubic interpolation and Neumann boundary conditions for the X,Y and Z-coordinates. /** Similar to cubic_atX(float,int,int,int) const, except that the cubic interpolation and boundary checking are achieved both for X,Y and Z-coordinates. \note - If you know your image instance is \e not empty, you may rather use the slightly faster method \c _cubic_atXYZ(float,float,float,int). **/ Tfloat cubic_atXYZ(const float fx, const float fy, const float fz, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "cubic_atXYZ(): Empty instance.", cimg_instance); return _cubic_atXYZ(fx,fy,fz,c); } Tfloat _cubic_atXYZ(const float fx, const float fy, const float fz, const int c=0) const { const float nfx = fx<0?0:(fx>_width-1?_width-1:fx), nfy = fy<0?0:(fy>_height-1?_height-1:fy), nfz = fz<0?0:(fz>_depth-1?_depth-1:fz); const int x = (int)nfx, y = (int)nfy, z = (int)nfz; const float dx = nfx - x, dy = nfy - y, dz = nfz - z; const int px = x-1<0?0:x-1, nx = dx>0?x+1:x, ax = x+2>=width()?width()-1:x+2, py = y-1<0?0:y-1, ny = dy>0?y+1:y, ay = y+2>=height()?height()-1:y+2, pz = z-1<0?0:z-1, nz = dz>0?z+1:z, az = z+2>=depth()?depth()-1:z+2; const Tfloat Ippp = (Tfloat)(*this)(px,py,pz,c), Icpp = (Tfloat)(*this)(x,py,pz,c), Inpp = (Tfloat)(*this)(nx,py,pz,c), Iapp = (Tfloat)(*this)(ax,py,pz,c), Ipp = Icpp + 0.5f*(dx*(-Ippp+Inpp) + dx*dx*(2*Ippp-5*Icpp+4*Inpp-Iapp) + dx*dx*dx*(-Ippp+3*Icpp-3*Inpp+Iapp)), Ipcp = (Tfloat)(*this)(px,y,pz,c), Iccp = (Tfloat)(*this)(x, y,pz,c), Incp = (Tfloat)(*this)(nx,y,pz,c), Iacp = (Tfloat)(*this)(ax,y,pz,c), Icp = Iccp + 0.5f*(dx*(-Ipcp+Incp) + dx*dx*(2*Ipcp-5*Iccp+4*Incp-Iacp) + dx*dx*dx*(-Ipcp+3*Iccp-3*Incp+Iacp)), Ipnp = (Tfloat)(*this)(px,ny,pz,c), Icnp = (Tfloat)(*this)(x,ny,pz,c), Innp = (Tfloat)(*this)(nx,ny,pz,c), Ianp = (Tfloat)(*this)(ax,ny,pz,c), Inp = Icnp + 0.5f*(dx*(-Ipnp+Innp) + dx*dx*(2*Ipnp-5*Icnp+4*Innp-Ianp) + dx*dx*dx*(-Ipnp+3*Icnp-3*Innp+Ianp)), Ipap = (Tfloat)(*this)(px,ay,pz,c), Icap = (Tfloat)(*this)(x,ay,pz,c), Inap = (Tfloat)(*this)(nx,ay,pz,c), Iaap = (Tfloat)(*this)(ax,ay,pz,c), Iap = Icap + 0.5f*(dx*(-Ipap+Inap) + dx*dx*(2*Ipap-5*Icap+4*Inap-Iaap) + dx*dx*dx*(-Ipap+3*Icap-3*Inap+Iaap)), Ip = Icp + 0.5f*(dy*(-Ipp+Inp) + dy*dy*(2*Ipp-5*Icp+4*Inp-Iap) + dy*dy*dy*(-Ipp+3*Icp-3*Inp+Iap)), Ippc = (Tfloat)(*this)(px,py,z,c), Icpc = (Tfloat)(*this)(x,py,z,c), Inpc = (Tfloat)(*this)(nx,py,z,c), Iapc = (Tfloat)(*this)(ax,py,z,c), Ipc = Icpc + 0.5f*(dx*(-Ippc+Inpc) + dx*dx*(2*Ippc-5*Icpc+4*Inpc-Iapc) + dx*dx*dx*(-Ippc+3*Icpc-3*Inpc+Iapc)), Ipcc = (Tfloat)(*this)(px,y,z,c), Iccc = (Tfloat)(*this)(x, y,z,c), Incc = (Tfloat)(*this)(nx,y,z,c), Iacc = (Tfloat)(*this)(ax,y,z,c), Icc = Iccc + 0.5f*(dx*(-Ipcc+Incc) + dx*dx*(2*Ipcc-5*Iccc+4*Incc-Iacc) + dx*dx*dx*(-Ipcc+3*Iccc-3*Incc+Iacc)), Ipnc = (Tfloat)(*this)(px,ny,z,c), Icnc = (Tfloat)(*this)(x,ny,z,c), Innc = (Tfloat)(*this)(nx,ny,z,c), Ianc = (Tfloat)(*this)(ax,ny,z,c), Inc = Icnc + 0.5f*(dx*(-Ipnc+Innc) + dx*dx*(2*Ipnc-5*Icnc+4*Innc-Ianc) + dx*dx*dx*(-Ipnc+3*Icnc-3*Innc+Ianc)), Ipac = (Tfloat)(*this)(px,ay,z,c), Icac = (Tfloat)(*this)(x,ay,z,c), Inac = (Tfloat)(*this)(nx,ay,z,c), Iaac = (Tfloat)(*this)(ax,ay,z,c), Iac = Icac + 0.5f*(dx*(-Ipac+Inac) + dx*dx*(2*Ipac-5*Icac+4*Inac-Iaac) + dx*dx*dx*(-Ipac+3*Icac-3*Inac+Iaac)), Ic = Icc + 0.5f*(dy*(-Ipc+Inc) + dy*dy*(2*Ipc-5*Icc+4*Inc-Iac) + dy*dy*dy*(-Ipc+3*Icc-3*Inc+Iac)), Ippn = (Tfloat)(*this)(px,py,nz,c), Icpn = (Tfloat)(*this)(x,py,nz,c), Inpn = (Tfloat)(*this)(nx,py,nz,c), Iapn = (Tfloat)(*this)(ax,py,nz,c), Ipn = Icpn + 0.5f*(dx*(-Ippn+Inpn) + dx*dx*(2*Ippn-5*Icpn+4*Inpn-Iapn) + dx*dx*dx*(-Ippn+3*Icpn-3*Inpn+Iapn)), Ipcn = (Tfloat)(*this)(px,y,nz,c), Iccn = (Tfloat)(*this)(x, y,nz,c), Incn = (Tfloat)(*this)(nx,y,nz,c), Iacn = (Tfloat)(*this)(ax,y,nz,c), Icn = Iccn + 0.5f*(dx*(-Ipcn+Incn) + dx*dx*(2*Ipcn-5*Iccn+4*Incn-Iacn) + dx*dx*dx*(-Ipcn+3*Iccn-3*Incn+Iacn)), Ipnn = (Tfloat)(*this)(px,ny,nz,c), Icnn = (Tfloat)(*this)(x,ny,nz,c), Innn = (Tfloat)(*this)(nx,ny,nz,c), Iann = (Tfloat)(*this)(ax,ny,nz,c), Inn = Icnn + 0.5f*(dx*(-Ipnn+Innn) + dx*dx*(2*Ipnn-5*Icnn+4*Innn-Iann) + dx*dx*dx*(-Ipnn+3*Icnn-3*Innn+Iann)), Ipan = (Tfloat)(*this)(px,ay,nz,c), Ican = (Tfloat)(*this)(x,ay,nz,c), Inan = (Tfloat)(*this)(nx,ay,nz,c), Iaan = (Tfloat)(*this)(ax,ay,nz,c), Ian = Ican + 0.5f*(dx*(-Ipan+Inan) + dx*dx*(2*Ipan-5*Ican+4*Inan-Iaan) + dx*dx*dx*(-Ipan+3*Ican-3*Inan+Iaan)), In = Icn + 0.5f*(dy*(-Ipn+Inn) + dy*dy*(2*Ipn-5*Icn+4*Inn-Ian) + dy*dy*dy*(-Ipn+3*Icn-3*Inn+Ian)), Ippa = (Tfloat)(*this)(px,py,az,c), Icpa = (Tfloat)(*this)(x,py,az,c), Inpa = (Tfloat)(*this)(nx,py,az,c), Iapa = (Tfloat)(*this)(ax,py,az,c), Ipa = Icpa + 0.5f*(dx*(-Ippa+Inpa) + dx*dx*(2*Ippa-5*Icpa+4*Inpa-Iapa) + dx*dx*dx*(-Ippa+3*Icpa-3*Inpa+Iapa)), Ipca = (Tfloat)(*this)(px,y,az,c), Icca = (Tfloat)(*this)(x, y,az,c), Inca = (Tfloat)(*this)(nx,y,az,c), Iaca = (Tfloat)(*this)(ax,y,az,c), Ica = Icca + 0.5f*(dx*(-Ipca+Inca) + dx*dx*(2*Ipca-5*Icca+4*Inca-Iaca) + dx*dx*dx*(-Ipca+3*Icca-3*Inca+Iaca)), Ipna = (Tfloat)(*this)(px,ny,az,c), Icna = (Tfloat)(*this)(x,ny,az,c), Inna = (Tfloat)(*this)(nx,ny,az,c), Iana = (Tfloat)(*this)(ax,ny,az,c), Ina = Icna + 0.5f*(dx*(-Ipna+Inna) + dx*dx*(2*Ipna-5*Icna+4*Inna-Iana) + dx*dx*dx*(-Ipna+3*Icna-3*Inna+Iana)), Ipaa = (Tfloat)(*this)(px,ay,az,c), Icaa = (Tfloat)(*this)(x,ay,az,c), Inaa = (Tfloat)(*this)(nx,ay,az,c), Iaaa = (Tfloat)(*this)(ax,ay,az,c), Iaa = Icaa + 0.5f*(dx*(-Ipaa+Inaa) + dx*dx*(2*Ipaa-5*Icaa+4*Inaa-Iaaa) + dx*dx*dx*(-Ipaa+3*Icaa-3*Inaa+Iaaa)), Ia = Ica + 0.5f*(dy*(-Ipa+Ina) + dy*dy*(2*Ipa-5*Ica+4*Ina-Iaa) + dy*dy*dy*(-Ipa+3*Ica-3*Ina+Iaa)); return Ic + 0.5f*(dz*(-Ip+In) + dz*dz*(2*Ip-5*Ic+4*In-Ia) + dz*dz*dz*(-Ip+3*Ic-3*In+Ia)); } //! Return damped pixel value, using cubic interpolation and Neumann boundary conditions for the X,Y and Z-coordinates. /** Similar to cubic_atXYZ(float,float,float,int) const, except that you can specify the authorized minimum and maximum of the returned value. **/ Tfloat cubic_atXYZ(const float fx, const float fy, const float fz, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = cubic_atXYZ(fx,fy,fz,c); return valmax_value?max_value:val; } Tfloat _cubic_atXYZ(const float fx, const float fy, const float fz, const int c, const Tfloat min_value, const Tfloat max_value) const { const Tfloat val = _cubic_atXYZ(fx,fy,fz,c); return valmax_value?max_value:val; } //! Set pixel value, using linear interpolation for the X and Y-coordinates. /** Set pixel value at specified coordinates (\c fx,\c fy,\c z,\c c) in the image instance, in a way that the value is spread amongst several neighbors if the pixel coordinates are indeed float-valued. \param value Pixel value to set. \param fx X-coordinate of the pixel value (float-valued). \param fy Y-coordinate of the pixel value (float-valued). \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param is_added Tells if the pixel value is added to (\c true), or simply replace (\c false) the current image pixel(s). \return A reference to the current image instance. \note - If specified coordinates are outside image bounds, no operations are performed. **/ CImg& set_linear_atXY(const T& value, const float fx, const float fy=0, const int z=0, const int c=0, const bool is_added=false) { const int x = (int)fx - (fx>=0?0:1), nx = x + 1, y = (int)fy - (fy>=0?0:1), ny = y + 1; const float dx = fx - x, dy = fy - y; if (z>=0 && z=0 && c=0 && y=0 && x=0 && nx=0 && ny=0 && x=0 && nx& set_linear_atXYZ(const T& value, const float fx, const float fy=0, const float fz=0, const int c=0, const bool is_added=false) { const int x = (int)fx - (fx>=0?0:1), nx = x + 1, y = (int)fy - (fy>=0?0:1), ny = y + 1, z = (int)fz - (fz>=0?0:1), nz = z + 1; const float dx = fx - x, dy = fy - y, dz = fz - z; if (c>=0 && c=0 && z=0 && y=0 && x=0 && nx=0 && ny=0 && x=0 && nx=0 && nz=0 && y=0 && x=0 && nx=0 && ny=0 && x=0 && nx image whose buffer data() is a \c char* string describing the list of all pixel values of the image instance (written in base 10), separated by specified \c separator character. \param separator A \c char character which specifies the separator between values in the returned C-string. \param max_size Maximum size of the returned image. \note - The returned image is never empty. - For an empty image instance, the returned string is "". - If \c max_size is equal to \c 0, there are no limits on the size of the returned string. - Otherwise, if the maximum number of string characters is exceeded, the value string is cut off and terminated by character \c '\0'. In that case, the returned image size is max_size + 1. **/ CImg value_string(const char separator=',', const unsigned int max_size=0) const { if (is_empty()) return CImg::string(""); CImgList items; char s_item[256] = { 0 }; const T *ptrs = _data; unsigned int string_size = 0; for (unsigned long off = 0, siz = (unsigned int)size(); off::format(),cimg::type::format(*(ptrs++))); CImg item(s_item,printed_size); item[printed_size-1] = separator; item.move_to(items); if (max_size) string_size+=printed_size; } CImg res; (items>'x').move_to(res); if (max_size && res._width>max_size) res.crop(0,max_size); res.back() = 0; return res; } //@} //------------------------------------- // //! \name Instance Checking //@{ //------------------------------------- //! Test shared state of the pixel buffer. /** Return \c true if image instance has a shared memory buffer, and \c false otherwise. \note - A shared image do not own his pixel buffer data() and will not deallocate it on destruction. - Most of the time, a \c CImg image instance will \e not be shared. - A shared image can only be obtained by a limited set of constructors and methods (see list below). **/ bool is_shared() const { return _is_shared; } //! Test if image instance is empty. /** Return \c true, if image instance is empty, i.e. does \e not contain any pixel values, has dimensions \c 0 x \c 0 x \c 0 x \c 0 and a pixel buffer pointer set to \c 0 (null pointer), and \c false otherwise. **/ bool is_empty() const { return !(_data && _width && _height && _depth && _spectrum); } //! Test if image instance contains a 'inf' value. /** Return \c true, if image instance contains a 'inf' value, and \c false otherwise. **/ bool is_inf() const { if (cimg::type::is_float()) cimg_for(*this,p,T) if (cimg::type::is_inf((float)*p)) return true; return false; } //! Test if image instance contains a 'nan' value. /** Return \c true, if image instance contains a 'nan' value, and \c false otherwise. **/ bool is_nan() const { if (cimg::type::is_float()) cimg_for(*this,p,T) if (cimg::type::is_nan((float)*p)) return true; return false; } //! Test if image width is equal to specified value. bool is_sameX(const unsigned int size_x) const { return _width==size_x; } //! Test if image width is equal to specified value. template bool is_sameX(const CImg& img) const { return is_sameX(img._width); } //! Test if image width is equal to specified value. bool is_sameX(const CImgDisplay& disp) const { return is_sameX(disp._width); } //! Test if image height is equal to specified value. bool is_sameY(const unsigned int size_y) const { return _height==size_y; } //! Test if image height is equal to specified value. template bool is_sameY(const CImg& img) const { return is_sameY(img._height); } //! Test if image height is equal to specified value. bool is_sameY(const CImgDisplay& disp) const { return is_sameY(disp._height); } //! Test if image depth is equal to specified value. bool is_sameZ(const unsigned int size_z) const { return _depth==size_z; } //! Test if image depth is equal to specified value. template bool is_sameZ(const CImg& img) const { return is_sameZ(img._depth); } //! Test if image spectrum is equal to specified value. bool is_sameC(const unsigned int size_c) const { return _spectrum==size_c; } //! Test if image spectrum is equal to specified value. template bool is_sameC(const CImg& img) const { return is_sameC(img._spectrum); } //! Test if image width and height are equal to specified values. /** Test if is_sameX(unsigned int) const and is_sameY(unsigned int) const are both verified. **/ bool is_sameXY(const unsigned int size_x, const unsigned int size_y) const { return _width==size_x && _height==size_y; } //! Test if image width and height are the same as that of another image. /** Test if is_sameX(const CImg&) const and is_sameY(const CImg&) const are both verified. **/ template bool is_sameXY(const CImg& img) const { return is_sameXY(img._width,img._height); } //! Test if image width and height are the same as that of an existing display window. /** Test if is_sameX(const CImgDisplay&) const and is_sameY(const CImgDisplay&) const are both verified. **/ bool is_sameXY(const CImgDisplay& disp) const { return is_sameXY(disp._width,disp._height); } //! Test if image width and depth are equal to specified values. /** Test if is_sameX(unsigned int) const and is_sameZ(unsigned int) const are both verified. **/ bool is_sameXZ(const unsigned int size_x, const unsigned int size_z) const { return _width==size_x && _depth==size_z; } //! Test if image width and depth are the same as that of another image. /** Test if is_sameX(const CImg&) const and is_sameZ(const CImg&) const are both verified. **/ template bool is_sameXZ(const CImg& img) const { return is_sameXZ(img._width,img._depth); } //! Test if image width and spectrum are equal to specified values. /** Test if is_sameX(unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameXC(const unsigned int size_x, const unsigned int size_c) const { return _width==size_x && _spectrum==size_c; } //! Test if image width and spectrum are the same as that of another image. /** Test if is_sameX(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameXC(const CImg& img) const { return is_sameXC(img._width,img._spectrum); } //! Test if image height and depth are equal to specified values. /** Test if is_sameY(unsigned int) const and is_sameZ(unsigned int) const are both verified. **/ bool is_sameYZ(const unsigned int size_y, const unsigned int size_z) const { return _height==size_y && _depth==size_z; } //! Test if image height and depth are the same as that of another image. /** Test if is_sameY(const CImg&) const and is_sameZ(const CImg&) const are both verified. **/ template bool is_sameYZ(const CImg& img) const { return is_sameYZ(img._height,img._depth); } //! Test if image height and spectrum are equal to specified values. /** Test if is_sameY(unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameYC(const unsigned int size_y, const unsigned int size_c) const { return _height==size_y && _spectrum==size_c; } //! Test if image height and spectrum are the same as that of another image. /** Test if is_sameY(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameYC(const CImg& img) const { return is_sameYC(img._height,img._spectrum); } //! Test if image depth and spectrum are equal to specified values. /** Test if is_sameZ(unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameZC(const unsigned int size_z, const unsigned int size_c) const { return _depth==size_z && _spectrum==size_c; } //! Test if image depth and spectrum are the same as that of another image. /** Test if is_sameZ(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameZC(const CImg& img) const { return is_sameZC(img._depth,img._spectrum); } //! Test if image width, height and depth are equal to specified values. /** Test if is_sameXY(unsigned int,unsigned int) const and is_sameZ(unsigned int) const are both verified. **/ bool is_sameXYZ(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z) const { return is_sameXY(size_x,size_y) && _depth==size_z; } //! Test if image width, height and depth are the same as that of another image. /** Test if is_sameXY(const CImg&) const and is_sameZ(const CImg&) const are both verified. **/ template bool is_sameXYZ(const CImg& img) const { return is_sameXYZ(img._width,img._height,img._depth); } //! Test if image width, height and spectrum are equal to specified values. /** Test if is_sameXY(unsigned int,unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameXYC(const unsigned int size_x, const unsigned int size_y, const unsigned int size_c) const { return is_sameXY(size_x,size_y) && _spectrum==size_c; } //! Test if image width, height and spectrum are the same as that of another image. /** Test if is_sameXY(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameXYC(const CImg& img) const { return is_sameXYC(img._width,img._height,img._spectrum); } //! Test if image width, depth and spectrum are equal to specified values. /** Test if is_sameXZ(unsigned int,unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameXZC(const unsigned int size_x, const unsigned int size_z, const unsigned int size_c) const { return is_sameXZ(size_x,size_z) && _spectrum==size_c; } //! Test if image width, depth and spectrum are the same as that of another image. /** Test if is_sameXZ(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameXZC(const CImg& img) const { return is_sameXZC(img._width,img._depth,img._spectrum); } //! Test if image height, depth and spectrum are equal to specified values. /** Test if is_sameYZ(unsigned int,unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameYZC(const unsigned int size_y, const unsigned int size_z, const unsigned int size_c) const { return is_sameYZ(size_y,size_z) && _spectrum==size_c; } //! Test if image height, depth and spectrum are the same as that of another image. /** Test if is_sameYZ(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameYZC(const CImg& img) const { return is_sameYZC(img._height,img._depth,img._spectrum); } //! Test if image width, height, depth and spectrum are equal to specified values. /** Test if is_sameXYZ(unsigned int,unsigned int,unsigned int) const and is_sameC(unsigned int) const are both verified. **/ bool is_sameXYZC(const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c) const { return is_sameXYZ(size_x,size_y,size_z) && _spectrum==size_c; } //! Test if image width, height, depth and spectrum are the same as that of another image. /** Test if is_sameXYZ(const CImg&) const and is_sameC(const CImg&) const are both verified. **/ template bool is_sameXYZC(const CImg& img) const { return is_sameXYZC(img._width,img._height,img._depth,img._spectrum); } //! Test if specified coordinates are inside image bounds. /** Return \c true if pixel located at (\c x,\c y,\c z,\c c) is inside bounds of the image instance, and \c false otherwise. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note - Return \c true only if all these conditions are verified: - The image instance is \e not empty. - 0<=x<=\ref width()-1. - 0<=y<=\ref height()-1. - 0<=z<=\ref depth()-1. - 0<=c<=\ref spectrum()-1. **/ bool containsXYZC(const int x, const int y=0, const int z=0, const int c=0) const { return !is_empty() && x>=0 && x=0 && y=0 && z=0 && c img(100,100,1,3); // Construct a 100x100 RGB color image. const unsigned long offset = 1249; // Offset to the pixel (49,12,0,0). unsigned int x,y,z,c; if (img.contains(img[offset],x,y,z,c)) { // Convert offset to (x,y,z,c) coordinates. std::printf("Offset %u refers to pixel located at (%u,%u,%u,%u).\n", offset,x,y,z,c); } \endcode **/ template bool contains(const T& pixel, t& x, t& y, t& z, t& c) const { const unsigned long wh = (unsigned long)_width*_height, whd = wh*_depth, siz = whd*_spectrum; const T *const ppixel = &pixel; if (is_empty() || ppixel<_data || ppixel>=_data+siz) return false; unsigned long off = (unsigned long)(ppixel - _data); const unsigned long nc = off/whd; off%=whd; const unsigned long nz = off/wh; off%=wh; const unsigned long ny = off/_width, nx = off%_width; x = (t)nx; y = (t)ny; z = (t)nz; c = (t)nc; return true; } //! Test if pixel value is inside image bounds and get its X,Y and Z-coordinates. /** Similar to contains(const T&,t&,t&,t&,t&) const, except that only the X,Y and Z-coordinates are set. **/ template bool contains(const T& pixel, t& x, t& y, t& z) const { const unsigned long wh = (unsigned long)_width*_height, whd = wh*_depth, siz = whd*_spectrum; const T *const ppixel = &pixel; if (is_empty() || ppixel<_data || ppixel>=_data+siz) return false; unsigned long off = ((unsigned long)(ppixel - _data))%whd; const unsigned long nz = off/wh; off%=wh; const unsigned long ny = off/_width, nx = off%_width; x = (t)nx; y = (t)ny; z = (t)nz; return true; } //! Test if pixel value is inside image bounds and get its X and Y-coordinates. /** Similar to contains(const T&,t&,t&,t&,t&) const, except that only the X and Y-coordinates are set. **/ template bool contains(const T& pixel, t& x, t& y) const { const unsigned long wh = (unsigned long)_width*_height, siz = wh*_depth*_spectrum; const T *const ppixel = &pixel; if (is_empty() || ppixel<_data || ppixel>=_data+siz) return false; unsigned long off = ((unsigned int)(ppixel - _data))%wh; const unsigned long ny = off/_width, nx = off%_width; x = (t)nx; y = (t)ny; return true; } //! Test if pixel value is inside image bounds and get its X-coordinate. /** Similar to contains(const T&,t&,t&,t&,t&) const, except that only the X-coordinate is set. **/ template bool contains(const T& pixel, t& x) const { const T *const ppixel = &pixel; if (is_empty() || ppixel<_data || ppixel>=_data+size()) return false; x = (t)(((unsigned long)(ppixel - _data))%_width); return true; } //! Test if pixel value is inside image bounds. /** Similar to contains(const T&,t&,t&,t&,t&) const, except that no pixel coordinates are set. **/ bool contains(const T& pixel) const { const T *const ppixel = &pixel; return !is_empty() && ppixel>=_data && ppixel<_data + size(); } //! Test if pixel buffers of instance and input images overlap. /** Return \c true, if pixel buffers attached to image instance and input image \c img overlap, and \c false otherwise. \param img Input image to compare with. \note - Buffer overlapping may happen when manipulating \e shared images. - If two image buffers overlap, operating on one of the image will probably modify the other one. - Most of the time, \c CImg instances are \e non-shared and do not overlap between each others. \par Example \code const CImg img1("reference.jpg"), // Load RGB-color image. img2 = img1.get_shared_channel(1); // Get shared version of the green channel. if (img1.is_overlapped(img2)) { // Test succeeds, 'img1' and 'img2' overlaps. std::printf("Buffers overlap!\n"); } \endcode **/ template bool is_overlapped(const CImg& img) const { const unsigned long csiz = size(), isiz = img.size(); return !((void*)(_data + csiz)<=(void*)img._data || (void*)_data>=(void*)(img._data + isiz)); } //! Test if the set {\c *this,\c primitives,\c colors,\c opacities} defines a valid 3d object. /** Return \c true is the 3d object represented by the set {\c *this,\c primitives,\c colors,\c opacities} defines a valid 3d object, and \c false otherwise. The vertex coordinates are defined by the instance image. \param primitives List of primitives of the 3d object. \param colors List of colors of the 3d object. \param opacities List (or image) of opacities of the 3d object. \param is_full_check Tells if full checking of the 3d object must be performed. \param[out] error_message C-string to contain the error message, if the test does not succeed. \note - Set \c is_full_checking to \c false to speed-up the 3d object checking. In this case, only the size of each 3d object component is checked. - Size of the string \c error_message should be at least 128-bytes long, to be able to contain the error message. **/ template bool is_object3d(const CImgList& primitives, const CImgList& colors, const to& opacities, const bool is_full_check=true, char *const error_message=0) const { if (error_message) *error_message = 0; // Check consistency for the particular case of an empty 3d object. if (is_empty()) { if (primitives || colors || opacities) { if (error_message) std::sprintf(error_message, "3d object has no vertices but %u primitives, %u colors and %lu opacities", primitives._width,colors._width,(unsigned long)opacities.size()); return false; } return true; } // Check consistency of vertices. if (_height!=3 || _depth>1 || _spectrum>1) { // Check vertices dimensions. if (error_message) std::sprintf(error_message, "3d object (%u,%u) has invalid vertices dimensions (%u,%u,%u,%u)", _width,primitives._width,_width,_height,_depth,_spectrum); return false; } if (colors._width>primitives._width+1) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) defines %u colors", _width,primitives._width,colors._width); return false; } if (opacities.size()>primitives._width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) defines %lu opacities", _width,primitives._width,(unsigned long)opacities.size()); return false; } if (!is_full_check) return true; // Check consistency of primitives. cimglist_for(primitives,l) { const CImg& primitive = primitives[l]; const unsigned long psiz = primitive.size(); switch (psiz) { case 1 : { // Point. const unsigned int i0 = (unsigned int)primitive(0); if (i0>=_width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) refers to invalid vertex indice %u in point primitive %u", _width,primitives._width,i0,l); return false; } } break; case 5 : { // Sphere. const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); if (i0>=_width || i1>=_width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) refers to invalid vertex indices (%u,%u) in sphere primitive %u", _width,primitives._width,i0,i1,l); return false; } } break; case 2 : // Segment. case 6 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); if (i0>=_width || i1>=_width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) refers to invalid vertex indices (%u,%u) in segment primitive %u", _width,primitives._width,i0,i1,l); return false; } } break; case 3 : // Triangle. case 9 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2); if (i0>=_width || i1>=_width || i2>=_width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) refers to invalid vertex indices (%u,%u,%u) in triangle primitive %u", _width,primitives._width,i0,i1,i2,l); return false; } } break; case 4 : // Quadrangle. case 12 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2), i3 = (unsigned int)primitive(3); if (i0>=_width || i1>=_width || i2>=_width || i3>=_width) { if (error_message) std::sprintf(error_message, "3d object (%u,%u) refers to invalid vertex indices (%u,%u,%u,%u) in quadrangle primitive %u", _width,primitives._width,i0,i1,i2,i3,l); return false; } } break; default : if (error_message) std::sprintf(error_message, "3d object has invalid primitive %u of size %u", l,(unsigned int)psiz); return false; } } // Check consistency of colors. cimglist_for(colors,c) { const CImg& color = colors[c]; if (!color) { if (error_message) std::sprintf(error_message, "3d object has empty color for primitive %u", c); return false; } } // Check consistency of light texture. if (colors._width>primitives._width) { const CImg &light = colors.back(); if (!light || light._depth>1) { if (error_message) std::sprintf(error_message, "3d object has invalid light texture (%u,%u,%u,%u)", light._width,light._height,light._depth,light._spectrum); return false; } } return true; } //! Test if image instance represents a valid serialization of a 3d object. /** Return \c true if the image instance represents a valid serialization of a 3d object, and \c false otherwise. \param is_full_check Tells if full checking of the instance must be performed. \param[out] error_message C-string to contain the error message, if the test does not succeed. \note - Set \c is_full_checking to \c false to speed-up the 3d object checking. In this case, only the size of each 3d object component is checked. - Size of the string \c error_message should be at least 128-bytes long, to be able to contain the error message. **/ bool is_CImg3d(const bool is_full_check=true, char *const error_message=0) const { if (error_message) *error_message = 0; // Check instance dimension and header. if (_width!=1 || _height<8 || _depth!=1 || _spectrum!=1) { if (error_message) std::sprintf(error_message, "CImg3d has invalid dimensions (%u,%u,%u,%u)", _width,_height,_depth,_spectrum); return false; } const T *ptrs = _data, *const ptre = end(); if (!_is_CImg3d(*(ptrs++),'C') || !_is_CImg3d(*(ptrs++),'I') || !_is_CImg3d(*(ptrs++),'m') || !_is_CImg3d(*(ptrs++),'g') || !_is_CImg3d(*(ptrs++),'3') || !_is_CImg3d(*(ptrs++),'d')) { if (error_message) std::sprintf(error_message, "CImg3d header not found"); return false; } const unsigned int nb_points = cimg::float2uint((float)*(ptrs++)), nb_primitives = cimg::float2uint((float)*(ptrs++)); // Check consistency of vertex data. if (!nb_points) { if (nb_primitives) { if (error_message) std::sprintf(error_message, "CImg3d has no vertices but %u primitives", nb_primitives); return false; } if (ptrs!=ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) is empty but contains %u byte%s more than expected", nb_points,nb_primitives,(unsigned int)(ptre-ptrs),(ptre-ptrs)>1?"s":""); return false; } return true; } ptrs+=3*nb_points; if (ptrs>ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has incomplete vertex data", nb_points,nb_primitives); return false; } if (!is_full_check) return true; // Check consistency of primitive data. if (ptrs==ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has no primitive data", nb_points,nb_primitives); return false; } for (unsigned int p = 0; p=nb_points) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid vertex indice %u in point primitive %u", nb_points,nb_primitives,i0,p); return false; } } break; case 5 : { // Sphere. const unsigned int i0 = cimg::float2uint((float)*(ptrs++)), i1 = cimg::float2uint((float)*(ptrs++)); ptrs+=3; if (i0>=nb_points || i1>=nb_points) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u) in sphere primitive %u", nb_points,nb_primitives,i0,i1,p); return false; } } break; case 2 : case 6 : { // Segment. const unsigned int i0 = cimg::float2uint((float)*(ptrs++)), i1 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==6) ptrs+=4; if (i0>=nb_points || i1>=nb_points) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u) in segment primitive %u", nb_points,nb_primitives,i0,i1,p); return false; } } break; case 3 : case 9 : { // Triangle. const unsigned int i0 = cimg::float2uint((float)*(ptrs++)), i1 = cimg::float2uint((float)*(ptrs++)), i2 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==9) ptrs+=6; if (i0>=nb_points || i1>=nb_points || i2>=nb_points) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u,%u) in triangle primitive %u", nb_points,nb_primitives,i0,i1,i2,p); return false; } } break; case 4 : case 12 : { // Quadrangle. const unsigned int i0 = cimg::float2uint((float)*(ptrs++)), i1 = cimg::float2uint((float)*(ptrs++)), i2 = cimg::float2uint((float)*(ptrs++)), i3 = cimg::float2uint((float)*(ptrs++)); if (nb_inds==12) ptrs+=8; if (i0>=nb_points || i1>=nb_points || i2>=nb_points || i3>=nb_points) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid vertex indices (%u,%u,%u,%u) in quadrangle primitive %u", nb_points,nb_primitives,i0,i1,i2,i3,p); return false; } } break; default : if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has invalid primitive %u of size %u", nb_points,nb_primitives,p,nb_inds); return false; } if (ptrs>ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has incomplete primitive data for primitive %u", nb_points,nb_primitives,p); return false; } } // Check consistency of color data. if (ptrs==ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has no color/texture data", nb_points,nb_primitives); return false; } for (unsigned int c = 0; c=c) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid shared sprite/texture indice %u for primitive %u", nb_points,nb_primitives,w,c); return false; } } else ptrs+=w*h*s; } if (ptrs>ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has incomplete color/texture data for primitive %u", nb_points,nb_primitives,c); return false; } } // Check consistency of opacity data. if (ptrs==ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has no opacity data", nb_points,nb_primitives); return false; } for (unsigned int o = 0; o=o) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) refers to invalid shared opacity indice %u for primitive %u", nb_points,nb_primitives,w,o); return false; } } else ptrs+=w*h*s; } if (ptrs>ptre) { if (error_message) std::sprintf(error_message, "CImg3d (%u,%u) has incomplete opacity data for primitive %u", nb_points,nb_primitives,o); return false; } } // Check end of data. if (ptrs1?"s":""); return false; } return true; } static bool _is_CImg3d(const T val, const char c) { return val>=(T)c && val<(T)(c+1); } //@} //------------------------------------- // //! \name Mathematical Functions //@{ //------------------------------------- // Define the math formula parser/compiler and evaluator. struct _cimg_math_parser { CImgList label; CImgList code; CImg level, opcode; const CImg* p_code; CImg mem; CImg expr; const CImg& reference; CImg reference_stats; unsigned int mempos, result; const char *const calling_function; typedef double (_cimg_math_parser::*mp_func)(); const mp_func *mp_funcs; #define _cimg_mp_return(x) { *se = saved_char; return x; } #define _cimg_mp_opcode0(op) _cimg_mp_return(opcode0(op)); #define _cimg_mp_opcode1(op,i1) _cimg_mp_return(opcode1(op,i1)); #define _cimg_mp_opcode2(op,i1,i2) { const unsigned int _i1 = i1, _i2 = i2; _cimg_mp_return(opcode2(op,_i1,_i2)); } #define _cimg_mp_opcode3(op,i1,i2,i3) { const unsigned int _i1 = i1, _i2 = i2, _i3 = i3; _cimg_mp_return(opcode3(op,_i1,_i2,_i3)); } #define _cimg_mp_opcode6(op,i1,i2,i3,i4,i5,i6) { const unsigned int _i1 = i1, _i2 = i2, _i3 = i3, _i4 = i4, _i5 = i5, _i6 = i6; \ _cimg_mp_return(opcode6(op,_i1,_i2,_i3,_i4,_i5,_i6)); } // Constructor - Destructor. _cimg_math_parser(const CImg& img, const char *const expression, const char *const funcname=0): reference(img),calling_function(funcname?funcname:"cimg_math_parser") { unsigned int l = 0; if (expression) { l = (unsigned int)std::strlen(expression); expr.assign(expression,l+1); if (*expr._data) { char *d = expr._data; for (const char *s = expr._data; *s || (bool)(*d=0); ++s) if (*s!=' ') *(d++) = *s; l = (unsigned int)(d - expr._data); } } if (!l) throw CImgArgumentException("[_cimg_math_parser] " "CImg<%s>::%s(): Empty specified expression.", pixel_type(),calling_function); int lv = 0; // Count parenthesis level of expression. level.assign(l); unsigned int *pd = level._data; for (const char *ps = expr._data; *ps && lv>=0; ++ps) *(pd++) = (unsigned int)(*ps=='('?lv++:*ps==')'?--lv:lv); if (lv!=0) { throw CImgArgumentException("[_cimg_math_parser] " "CImg<%s>::%s(): Unbalanced parentheses in specified expression '%s'.", pixel_type(),calling_function, expr._data); } // Init constant values. mem.assign(512); label.assign(512); mem[0] = 0; mem[1] = 1; mem[2] = 2; mem[3] = (double)reference._width; mem[4] = (double)reference._height; mem[5] = (double)reference._depth; mem[6] = (double)reference._spectrum; mem[7] = cimg::PI; mem[8] = std::exp(1.0); // Then [9] = x, [10] = y, [11] = z, [12] = c mempos = 13; result = compile(expr._data,expr._data+l); // Compile formula into a serie of opcodes. } // Insert code instructions. unsigned int opcode0(const char op) { if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(op,pos).move_to(code); return pos; } unsigned int opcode1(const char op, const unsigned int arg1) { if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(op,pos,arg1).move_to(code); return pos; } unsigned int opcode2(const char op, const unsigned int arg1, const unsigned int arg2) { if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(op,pos,arg1,arg2).move_to(code); return pos; } unsigned int opcode3(const char op, const unsigned int arg1, const unsigned int arg2, const unsigned int arg3) { if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(op,pos,arg1,arg2,arg3).move_to(code); return pos; } unsigned int opcode6(const char op, const unsigned int arg1, const unsigned int arg2, const unsigned int arg3, const unsigned int arg4, const unsigned int arg5, const unsigned int arg6) { if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(op,pos,arg1,arg2,arg3,arg4,arg5,arg6).move_to(code); return pos; } // Compilation procedure. unsigned int compile(char *const ss, char *const se) { if (!ss || se<=ss || !*ss) { throw CImgArgumentException("[_cimg_math_parser] " "CImg<%s>::%s(): Missing item in specified expression '%s'.", pixel_type(),calling_function, expr._data); } char *const se1 = se-1, *const se2 = se-2, *const se3 = se-3, *const se4 = se-4, *const ss1 = ss+1, *const ss2 = ss+2, *const ss3 = ss+3, *const ss4 = ss+4, *const ss5 = ss+5, *const ss6 = ss+6, *const ss7 = ss+7; const char saved_char = *se; *se = 0; const unsigned int clevel = level[ss-expr._data], clevel1 = clevel+1; if (*se1==';') return compile(ss,se1); // Look for a single value, variable or variable assignment. char end = 0, sep = 0; double val = 0; const int nb = std::sscanf(ss,"%lf%c%c",&val,&sep,&end); if (nb==1) { if (val==0) _cimg_mp_return(0); if (val==1) _cimg_mp_return(1); if (val==2) _cimg_mp_return(2); if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; mem[pos] = val; _cimg_mp_return(pos); } if (nb==2 && sep=='%') { if (val==0) _cimg_mp_return(0); if (val==100) _cimg_mp_return(1); if (val==200) _cimg_mp_return(2); if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; mem[pos] = val/100; _cimg_mp_return(pos); } if (ss1==se) switch (*ss) { case 'w' : _cimg_mp_return(3); case 'h' : _cimg_mp_return(4); case 'd' : _cimg_mp_return(5); case 's' : _cimg_mp_return(6); case 'x' : _cimg_mp_return(9); case 'y' : _cimg_mp_return(10); case 'z' : _cimg_mp_return(11); case 'c' : _cimg_mp_return(12); case 'e' : _cimg_mp_return(8); case 'u' : case '?' : _cimg_mp_opcode2(0,0,1); case 'g' : _cimg_mp_opcode0(1); case 'i' : _cimg_mp_opcode0(2); } if (ss1==se1) { if (*ss=='p' && *ss1=='i') _cimg_mp_return(7); // pi if (*ss=='i') { if (*ss1=='m') _cimg_mp_opcode0(57); // im if (*ss1=='M') _cimg_mp_opcode0(58); // iM if (*ss1=='a') _cimg_mp_opcode0(59); // ia if (*ss1=='v') _cimg_mp_opcode0(60); // iv } if (*ss1=='m') { if (*ss=='x') _cimg_mp_opcode0(61); // xm if (*ss=='y') _cimg_mp_opcode0(62); // ym if (*ss=='z') _cimg_mp_opcode0(63); // zm if (*ss=='c') _cimg_mp_opcode0(64); // cm } if (*ss1=='M') { if (*ss=='x') _cimg_mp_opcode0(65); // xM if (*ss=='y') _cimg_mp_opcode0(66); // yM if (*ss=='z') _cimg_mp_opcode0(67); // zM if (*ss=='c') _cimg_mp_opcode0(68); // cM } } if (ss3==se) { if (*ss=='x' && *ss1=='/' && *ss2=='w') _cimg_mp_opcode0(3); if (*ss=='y' && *ss1=='/' && *ss2=='h') _cimg_mp_opcode0(4); if (*ss=='z' && *ss1=='/' && *ss2=='d') _cimg_mp_opcode0(5); if (*ss=='c' && *ss1=='/' && *ss2=='s') _cimg_mp_opcode0(6); } // Look for variable declarations. for (char *s = se2; s>ss; --s) if (*s==';' && level[s-expr._data]==clevel) { compile(ss,s); _cimg_mp_return(compile(s+1,se)); } for (char *s = ss1, *ps = ss, *ns = ss2; s variable_name(ss,(unsigned int)(s-ss+1)); variable_name.back() = 0; bool is_valid_name = true; if ((*ss>='0' && *ss<='9') || (s==ss+1 && (*ss=='x' || *ss=='y' || *ss=='z' || *ss=='c' || *ss=='w' || *ss=='h' || *ss=='d' || *ss=='s' || *ss=='e' || *ss=='u' || *ss=='g' || *ss=='i')) || (s==ss+2 && ((*ss=='p' && *(ss+1)=='i') || (*ss=='i' && (*(ss+1)=='m' || *(ss+1)=='M' || *(ss+1)=='a' || *(ss+1)=='v')) || (*ss=='x' && (*(ss+1)=='m' || *(ss+1)=='M')) || (*ss=='y' && (*(ss+1)=='m' || *(ss+1)=='M')) || (*ss=='z' && (*(ss+1)=='m' || *(ss+1)=='M')) || (*ss=='c' && (*(ss+1)=='m' || *(ss+1)=='M'))))) is_valid_name = false; for (const char *ns = ss; ns'z') && (*ns<'A' || *ns>'Z') && (*ns<'0' || *ns>'9') && *ns!='_') { is_valid_name = false; break; } if (!is_valid_name) { *se = saved_char; if (!std::strcmp(variable_name,"x") || !std::strcmp(variable_name,"y") || !std::strcmp(variable_name,"z") || !std::strcmp(variable_name,"c") || !std::strcmp(variable_name,"w") || !std::strcmp(variable_name,"h") || !std::strcmp(variable_name,"d") || !std::strcmp(variable_name,"s") || !std::strcmp(variable_name,"e") || !std::strcmp(variable_name,"u") || !std::strcmp(variable_name,"g") || !std::strcmp(variable_name,"i") || !std::strcmp(variable_name,"pi") || !std::strcmp(variable_name,"im") || !std::strcmp(variable_name,"iM") || !std::strcmp(variable_name,"ia") || !std::strcmp(variable_name,"iv") || !std::strcmp(variable_name,"xm") || !std::strcmp(variable_name,"ym") || !std::strcmp(variable_name,"zm") || !std::strcmp(variable_name,"cm") || !std::strcmp(variable_name,"xM") || !std::strcmp(variable_name,"yM") || !std::strcmp(variable_name,"zM") || !std::strcmp(variable_name,"cM")) throw CImgArgumentException("[_cimg_math_parser] " "CImg<%s>::%s(): Invalid assignment of reserved variable name '%s' in specified expression '%s%s%s'.", pixel_type(),calling_function, variable_name._data, (ss-8)>expr._data?"...":"", (ss-8)>expr._data?ss-8:expr._data, se<&expr.back()?"...":""); else throw CImgArgumentException("[_cimg_math_parser] " "CImg<%s>::%s(): Invalid variable name '%s' in specified expression '%s%s%s'.", pixel_type(),calling_function, variable_name._data, (ss-8)>expr._data?"...":"", (ss-8)>expr._data?ss-8:expr._data, se<&expr.back()?"...":""); } for (unsigned int i = 0; i::%s(): Invalid multiple assignments of variable '%s' in specified expression '%s%s%s'.", pixel_type(),calling_function, variable_name._data, (ss-8)>expr._data?"...":"", (ss-8)>expr._data?ss-8:expr._data, se<&expr.back()?"...":""); } const unsigned int src_pos = compile(s+1,se); if (mempos>=mem.size()) mem.resize(-200,1,1,1,0); const unsigned int dest_pos = mempos++; variable_name.move_to(label[dest_pos]); CImg::vector(7,dest_pos,src_pos).move_to(code); _cimg_mp_return(dest_pos); } // Look for unary/binary operators. The operator precedences is defined as in C++. for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='|' && *ns=='|' && level[s-expr._data]==clevel) { const unsigned int mem_A = compile(ss,s), bp1 = code._width, mem_B = compile(s+2,se); if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(8,pos,mem_A,mem_B,code._width-bp1).move_to(code,bp1); _cimg_mp_return(pos); } for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='&' && *ns=='&' && level[s-expr._data]==clevel) { const unsigned int mem_A = compile(ss,s), bp1 = code._width, mem_B = compile(s+2,se); if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(9,pos,mem_A,mem_B,code._width-bp1).move_to(code,bp1); _cimg_mp_return(pos); } for (char *s = se2; s>ss; --s) if (*s=='|' && level[s-expr._data]==clevel) _cimg_mp_opcode2(10,compile(ss,s),compile(s+1,se)); for (char *s = se2; s>ss; --s) if (*s=='&' && level[s-expr._data]==clevel) _cimg_mp_opcode2(11,compile(ss,s),compile(s+1,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='!' && *ns=='=' && level[s-expr._data]==clevel) _cimg_mp_opcode2(12,compile(ss,s),compile(s+2,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='=' && *ns=='=' && level[s-expr._data]==clevel) _cimg_mp_opcode2(13,compile(ss,s),compile(s+2,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='<' && *ns=='=' && level[s-expr._data]==clevel) _cimg_mp_opcode2(14,compile(ss,s),compile(s+2,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='>' && *ns=='=' && level[s-expr._data]==clevel) _cimg_mp_opcode2(15,compile(ss,s),compile(s+2,se)); for (char *s = se2, *ns = se1, *ps = se3; s>ss; --s, --ns, --ps) if (*s=='<' && *ns!='<' && *ps!='<' && level[s-expr._data]==clevel) _cimg_mp_opcode2(16,compile(ss,s),compile(s+1,se)); for (char *s = se2, *ns = se1, *ps = se3; s>ss; --s, --ns, --ps) if (*s=='>' && *ns!='>' && *ps!='>' && level[s-expr._data]==clevel) _cimg_mp_opcode2(17,compile(ss,s),compile(s+1,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='<' && *ns=='<' && level[s-expr._data]==clevel) _cimg_mp_opcode2(18,compile(ss,s),compile(s+2,se)); for (char *s = se3, *ns = se2; s>ss; --s, --ns) if (*s=='>' && *ns=='>' && level[s-expr._data]==clevel) _cimg_mp_opcode2(19,compile(ss,s),compile(s+2,se)); for (char *s = se2, *ps = se3; s>ss; --s, --ps) if (*s=='+' && *ps!='-' && *ps!='+' && *ps!='*' && *ps!='/' && *ps!='%' && *ps!='&' && *ps!='|' && *ps!='^' && *ps!='!' && *ps!='~' && (*ps!='e' || !(ps>ss && (*(ps-1)=='.' || (*(ps-1)>='0' && *(ps-1)<='9')))) && level[s-expr._data]==clevel) _cimg_mp_opcode2(21,compile(ss,s),compile(s+1,se)); for (char *s = se2, *ps = se3; s>ss; --s, --ps) if (*s=='-' && *ps!='-' && *ps!='+' && *ps!='*' && *ps!='/' && *ps!='%' && *ps!='&' && *ps!='|' && *ps!='^' && *ps!='!' && *ps!='~' && (*ps!='e' || !(ps>ss && (*(ps-1)=='.' || (*(ps-1)>='0' && *(ps-1)<='9')))) && level[s-expr._data]==clevel) _cimg_mp_opcode2(20,compile(ss,s),compile(s+1,se)); for (char *s = se2; s>ss; --s) if (*s=='*' && level[s-expr._data]==clevel) { const unsigned int mem_A = compile(ss,s), bp1 = code._width, mem_B = compile(s+1,se); if (mempos>=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(22,pos,mem_A,mem_B,code._width-bp1).move_to(code,bp1); _cimg_mp_return(pos); } for (char *s = se2; s>ss; --s) if (*s=='/' && level[s-expr._data]==clevel) _cimg_mp_opcode2(23,compile(ss,s),compile(s+1,se)); for (char *s = se2, *ns = se1; s>ss; --s, --ns) if (*s=='%' && *ns!='^' && level[s-expr._data]==clevel) _cimg_mp_opcode2(24,compile(ss,s),compile(s+1,se)); if (ssss; --s) if (*s=='^' && level[s-expr._data]==clevel) _cimg_mp_opcode2(25,compile(ss,s),compile(s+1,se)); // Look for a function call or a parenthesis. if (*se1==')') { if (*ss=='(') _cimg_mp_return(compile(ss1,se1)); if (!std::strncmp(ss,"sin(",4)) _cimg_mp_opcode1(29,compile(ss4,se1)); if (!std::strncmp(ss,"cos(",4)) _cimg_mp_opcode1(30,compile(ss4,se1)); if (!std::strncmp(ss,"tan(",4)) _cimg_mp_opcode1(31,compile(ss4,se1)); if (!std::strncmp(ss,"asin(",5)) _cimg_mp_opcode1(32,compile(ss5,se1)); if (!std::strncmp(ss,"acos(",5)) _cimg_mp_opcode1(33,compile(ss5,se1)); if (!std::strncmp(ss,"atan(",5)) _cimg_mp_opcode1(34,compile(ss5,se1)); if (!std::strncmp(ss,"sinh(",5)) _cimg_mp_opcode1(35,compile(ss5,se1)); if (!std::strncmp(ss,"cosh(",5)) _cimg_mp_opcode1(36,compile(ss5,se1)); if (!std::strncmp(ss,"tanh(",5)) _cimg_mp_opcode1(37,compile(ss5,se1)); if (!std::strncmp(ss,"log10(",6)) _cimg_mp_opcode1(38,compile(ss6,se1)); if (!std::strncmp(ss,"log2(",5)) _cimg_mp_opcode1(71,compile(ss5,se1)); if (!std::strncmp(ss,"log(",4)) _cimg_mp_opcode1(39,compile(ss4,se1)); if (!std::strncmp(ss,"exp(",4)) _cimg_mp_opcode1(40,compile(ss4,se1)); if (!std::strncmp(ss,"sqrt(",5)) _cimg_mp_opcode1(41,compile(ss5,se1)); if (!std::strncmp(ss,"sign(",5)) _cimg_mp_opcode1(42,compile(ss5,se1)); if (!std::strncmp(ss,"abs(",4)) _cimg_mp_opcode1(43,compile(ss4,se1)); if (!std::strncmp(ss,"atan2(",6)) { char *s1 = ss6; while (s1=mem._width) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(45,pos,mem_cond,mem_A,mem_B,bp2-bp1,code._width-bp2).move_to(code,bp1); _cimg_mp_return(pos); } if (!std::strncmp(ss,"round(",6)) { unsigned int value = 0, round = 1, direction = 0; char *s1 = ss6; while (s1 opcode; if (mempos>=mem.size()) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(ss[1]=='i'?48:49,pos).move_to(opcode); for (char *s = ss4; s::vector(compile(s,ns)).move_to(opcode); s = ns; } (opcode>'y').move_to(code); _cimg_mp_return(pos); } if (!std::strncmp(ss,"arg(",4)) { CImgList opcode; if (mempos>=mem.size()) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; CImg::vector(69,pos).move_to(opcode); for (char *s = ss4; s::vector(compile(s,ns)).move_to(opcode); s = ns; } (opcode>'y').move_to(code); _cimg_mp_return(pos); } if (!std::strncmp(ss,"narg(",5)) { if (*ss5==')') _cimg_mp_return(0); unsigned int nb_args = 0; for (char *s = ss5; s=mem.size()) mem.resize(-200,1,1,1,0); const unsigned int pos = mempos++; mem[pos] = nb_args; _cimg_mp_return(pos); } if (!std::strncmp(ss,"isval(",6)) { char sep = 0, end = 0; double val = 0; if (std::sscanf(ss6,"%lf%c%c",&val,&sep,&end)==2 && sep==')') _cimg_mp_return(1); _cimg_mp_return(0); } if (!std::strncmp(ss,"isnan(",6)) _cimg_mp_opcode1(50,compile(ss6,se1)); if (!std::strncmp(ss,"isinf(",6)) _cimg_mp_opcode1(51,compile(ss6,se1)); if (!std::strncmp(ss,"isint(",6)) _cimg_mp_opcode1(52,compile(ss6,se1)); if (!std::strncmp(ss,"isbool(",7)) _cimg_mp_opcode1(53,compile(ss7,se1)); if (!std::strncmp(ss,"rol(",4) || !std::strncmp(ss,"ror(",4)) { unsigned int value = 0, nb = 1; char *s1 = ss4; while (s1 variable_name(ss,(unsigned int)(se-ss+1)); variable_name.back() = 0; for (unsigned int i = 0; i::%s(): Invalid item '%s' in specified expression '%s%s%s'.\n", pixel_type(),calling_function, variable_name._data, (ss-8)>expr._data?"...":"", (ss-8)>expr._data?ss-8:expr._data, se<&expr.back()?"...":""); return 0; } // Evaluation functions, known by the parser. double mp_u() { return mem[opcode(2)] + cimg::rand()*(mem[opcode(3)]-mem[opcode(2)]); } double mp_g() { return cimg::grand(); } double mp_i() { return (double)reference.atXYZC((int)mem[9],(int)mem[10],(int)mem[11],(int)mem[12],0); } double mp_xw() { return mem[9]/reference.width(); } double mp_yh() { return mem[10]/reference.height(); } double mp_zd() { return mem[11]/reference.depth(); } double mp_cs() { return mem[12]/reference.spectrum(); } double mp_equal() { return mem[opcode[2]]; } double mp_logical_and() { const bool is_A = (bool)mem[opcode(2)]; const CImg *const pE = ++p_code + opcode(4); if (!is_A) { p_code = pE - 1; return 0; } const unsigned int mem_B = opcode(3); for ( ; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } --p_code; return (double)(bool)mem[mem_B]; } double mp_logical_or() { const bool is_A = (bool)mem[opcode(2)]; const CImg *const pE = ++p_code + opcode(4); if (is_A) { p_code = pE - 1; return 1; } const unsigned int mem_B = opcode(3); for ( ; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } --p_code; return (double)(bool)mem[mem_B]; } double mp_infeq() { return (double)(mem[opcode(2)]<=mem[opcode(3)]); } double mp_supeq() { return (double)(mem[opcode(2)]>=mem[opcode(3)]); } double mp_noteq() { return (double)(mem[opcode(2)]!=mem[opcode(3)]); } double mp_eqeq() { return (double)(mem[opcode(2)]==mem[opcode(3)]); } double mp_inf() { return (double)(mem[opcode(2)]mem[opcode(3)]); } double mp_add() { return mem[opcode(2)] + mem[opcode(3)]; } double mp_sub() { return mem[opcode(2)] - mem[opcode(3)]; } double mp_mul() { const double A = mem[opcode(2)]; const CImg *const pE = ++p_code + opcode(4); if (!A) { p_code = pE - 1; return 0; } const unsigned int mem_B = opcode(3); for ( ; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } --p_code; return A*(double)mem[mem_B]; } double mp_div() { return mem[opcode(2)] / mem[opcode(3)]; } double mp_minus() { return -mem[opcode(2)]; } double mp_not() { return !mem[opcode(2)]; } double mp_logical_not() { return !mem[opcode(2)]; } double mp_bitwise_not() { return ~(unsigned long)mem[opcode(2)]; } double mp_modulo() { return cimg::mod(mem[opcode(2)],mem[opcode(3)]); } double mp_bitwise_and() { return ((unsigned long)mem[opcode(2)] & (unsigned long)mem[opcode(3)]); } double mp_bitwise_or() { return ((unsigned long)mem[opcode(2)] | (unsigned long)mem[opcode(3)]); } double mp_pow() { const double v = mem[opcode(2)], p = mem[opcode(3)]; if (p==0) return 1; if (p==0.5) return std::sqrt(v); if (p==1) return v; if (p==2) return v*v; if (p==3) return v*v*v; if (p==4) return v*v*v*v; return std::pow(v,p); } double mp_sin() { return std::sin(mem[opcode(2)]); } double mp_cos() { return std::cos(mem[opcode(2)]); } double mp_tan() { return std::tan(mem[opcode(2)]); } double mp_asin() { return std::asin(mem[opcode(2)]); } double mp_acos() { return std::acos(mem[opcode(2)]); } double mp_atan() { return std::atan(mem[opcode(2)]); } double mp_sinh() { return std::sinh(mem[opcode(2)]); } double mp_cosh() { return std::cosh(mem[opcode(2)]); } double mp_tanh() { return std::tanh(mem[opcode(2)]); } double mp_log10() { return std::log10(mem[opcode(2)]); } double mp_log2() { return cimg::log2(mem[opcode(2)]); } double mp_log() { return std::log(mem[opcode(2)]); } double mp_exp() { return std::exp(mem[opcode(2)]); } double mp_sqrt() { return std::sqrt(mem[opcode(2)]); } double mp_sign() { return cimg::sign(mem[opcode(2)]); } double mp_abs() { return cimg::abs(mem[opcode(2)]); } double mp_atan2() { return std::atan2(mem[opcode(2)],mem[opcode(3)]); } double mp_if() { const bool is_cond = (bool)mem[opcode(2)]; const unsigned int mem_A = opcode(3), mem_B = opcode(4); const CImg *const pB = ++p_code + opcode(5), *const pE = pB + opcode(6); if (is_cond) { // Evaluate on-the-fly only the correct argument. for ( ; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } p_code = pE - 1; return mem[mem_A]; } for (p_code = pB; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } --p_code; return mem[mem_B]; } double mp_round() { return cimg::round(mem[opcode(2)],mem[opcode(3)],(int)mem[opcode(4)]); } double mp_ixyzc() { const int i = (int)mem[opcode(6)], b = (int)mem[opcode(7)]; if (i==0) { // Nearest neighbor interpolation. if (b==2) return (double)reference.atXYZC(cimg::mod((int)mem[opcode(2)],reference.width()), cimg::mod((int)mem[opcode(3)],reference.height()), cimg::mod((int)mem[opcode(4)],reference.depth()), cimg::mod((int)mem[opcode(5)],reference.spectrum())); if (b==1) return (double)reference.atXYZC((int)mem[opcode(2)], (int)mem[opcode(3)], (int)mem[opcode(4)], (int)mem[opcode(5)]); return (double)reference.atXYZC((int)mem[opcode(2)], (int)mem[opcode(3)], (int)mem[opcode(4)], (int)mem[opcode(5)],0); } else { // Linear interpolation. if (b==2) return (double)reference.linear_atXYZC(cimg::mod((float)mem[opcode(2)],(float)reference.width()), cimg::mod((float)mem[opcode(3)],(float)reference.height()), cimg::mod((float)mem[opcode(4)],(float)reference.depth()), cimg::mod((float)mem[opcode(5)],(float)reference.spectrum())); if (b==1) return (double)reference.linear_atXYZC((float)mem[opcode(2)], (float)mem[opcode(3)], (float)mem[opcode(4)], (float)mem[opcode(5)]); return (double)reference.linear_atXYZC((float)mem[opcode(2)], (float)mem[opcode(3)], (float)mem[opcode(4)], (float)mem[opcode(5)],0); } } double mp_jxyzc() { const double x = mem[9], y = mem[10], z = mem[11], c = mem[12]; const int i = (int)mem[opcode(6)], b = (int)mem[opcode(7)]; if (i==0) { // Nearest neighbor interpolation. if (b==2) return (double)reference.atXYZC(cimg::mod((int)(x+mem[opcode(2)]),reference.width()), cimg::mod((int)(y+mem[opcode(3)]),reference.height()), cimg::mod((int)(z+mem[opcode(4)]),reference.depth()), cimg::mod((int)(c+mem[opcode(5)]),reference.spectrum())); if (b==1) return (double)reference.atXYZC((int)(x+mem[opcode(2)]), (int)(y+mem[opcode(3)]), (int)(z+mem[opcode(4)]), (int)(c+mem[opcode(5)])); return (double)reference.atXYZC((int)(x+mem[opcode(2)]), (int)(y+mem[opcode(3)]), (int)(z+mem[opcode(4)]), (int)(c+mem[opcode(5)]),0); } else { // Linear interpolation. if (b==2) return (double)reference.linear_atXYZC(cimg::mod((float)(x+mem[opcode(2)]),(float)reference.width()), cimg::mod((float)(y+mem[opcode(3)]),(float)reference.height()), cimg::mod((float)(z+mem[opcode(4)]),(float)reference.depth()), cimg::mod((float)(c+mem[opcode(5)]),(float)reference.spectrum())); if (b==1) return (double)reference.linear_atXYZC((float)(x+mem[opcode(2)]), (float)(y+mem[opcode(3)]), (float)(z+mem[opcode(4)]), (float)(c+mem[opcode(5)])); return (double)reference.linear_atXYZC((float)(x+mem[opcode(2)]), (float)(y+mem[opcode(3)]), (float)(z+mem[opcode(4)]), (float)(c+mem[opcode(5)]),0); } } double mp_min() { double val = mem[opcode(2)]; for (unsigned int i = 3; i>(unsigned int)mem[opcode(3)]; } double mp_sinc() { return cimg::sinc(mem[opcode(2)]); } double mp_im() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[0]:0; } double mp_iM() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[1]:0; } double mp_ia() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[2]:0; } double mp_iv() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[3]:0; } double mp_xm() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[4]:0; } double mp_ym() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[5]:0; } double mp_zm() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[6]:0; } double mp_cm() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[7]:0; } double mp_xM() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[8]:0; } double mp_yM() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[9]:0; } double mp_zM() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[10]:0; } double mp_cM() { if (!reference_stats) reference.get_stats().move_to(reference_stats); return reference_stats?reference_stats[11]:0; } double mp_arg() { const int _ind = (int)mem[opcode(2)]; const unsigned int nb_args = opcode._height-2, ind = _ind<0?_ind+nb_args:(unsigned int)_ind; if (ind>=nb_args) return 0; return mem[opcode(ind+2)]; } double mp_int() { return (double)(long)mem[opcode(2)]; } // Evaluation procedure, with image data. double eval(const double x, const double y, const double z, const double c) { static const mp_func mp_funcs[] = { &_cimg_math_parser::mp_u, // 0 &_cimg_math_parser::mp_g, // 1 &_cimg_math_parser::mp_i, // 2 &_cimg_math_parser::mp_xw, // 3 &_cimg_math_parser::mp_yh, // 4 &_cimg_math_parser::mp_zd, // 5 &_cimg_math_parser::mp_cs, // 6 &_cimg_math_parser::mp_equal, // 7 &_cimg_math_parser::mp_logical_or, // 8 &_cimg_math_parser::mp_logical_and, // 9 &_cimg_math_parser::mp_bitwise_or, // 10 &_cimg_math_parser::mp_bitwise_and, // 11 &_cimg_math_parser::mp_noteq, // 12 &_cimg_math_parser::mp_eqeq, // 13 &_cimg_math_parser::mp_infeq, // 14 &_cimg_math_parser::mp_supeq, // 15 &_cimg_math_parser::mp_inf, // 16 &_cimg_math_parser::mp_sup, // 17 &_cimg_math_parser::mp_lsl, // 18 &_cimg_math_parser::mp_lsr, // 19 &_cimg_math_parser::mp_sub, // 20 &_cimg_math_parser::mp_add, // 21 &_cimg_math_parser::mp_mul, // 22 &_cimg_math_parser::mp_div, // 23 &_cimg_math_parser::mp_modulo, // 24 &_cimg_math_parser::mp_pow, // 25 &_cimg_math_parser::mp_minus, // 26 &_cimg_math_parser::mp_logical_not, // 27 &_cimg_math_parser::mp_bitwise_not, // 28 &_cimg_math_parser::mp_sin, // 29 &_cimg_math_parser::mp_cos, // 30 &_cimg_math_parser::mp_tan, // 31 &_cimg_math_parser::mp_asin, // 32 &_cimg_math_parser::mp_acos, // 33 &_cimg_math_parser::mp_atan, // 34 &_cimg_math_parser::mp_sinh, // 35 &_cimg_math_parser::mp_cosh, // 36 &_cimg_math_parser::mp_tanh, // 37 &_cimg_math_parser::mp_log10, // 38 &_cimg_math_parser::mp_log, // 39 &_cimg_math_parser::mp_exp, // 40 &_cimg_math_parser::mp_sqrt, // 41 &_cimg_math_parser::mp_sign, // 42 &_cimg_math_parser::mp_abs, // 43 &_cimg_math_parser::mp_atan2, // 44 &_cimg_math_parser::mp_if, // 45 &_cimg_math_parser::mp_round, // 46 &_cimg_math_parser::mp_ixyzc, // 47 &_cimg_math_parser::mp_min, // 48 &_cimg_math_parser::mp_max, // 49 &_cimg_math_parser::mp_isnan, // 50 &_cimg_math_parser::mp_isinf, // 51 &_cimg_math_parser::mp_isint, // 52 &_cimg_math_parser::mp_isbool, // 53 &_cimg_math_parser::mp_rol, // 54 &_cimg_math_parser::mp_ror, // 55 &_cimg_math_parser::mp_sinc, // 56 &_cimg_math_parser::mp_im, // 57 &_cimg_math_parser::mp_iM, // 58 &_cimg_math_parser::mp_ia, // 59 &_cimg_math_parser::mp_iv, // 60 &_cimg_math_parser::mp_xm, // 61 &_cimg_math_parser::mp_ym, // 62 &_cimg_math_parser::mp_zm, // 63 &_cimg_math_parser::mp_cm, // 64 &_cimg_math_parser::mp_xM, // 65 &_cimg_math_parser::mp_yM, // 66 &_cimg_math_parser::mp_zM, // 67 &_cimg_math_parser::mp_cM, // 68 &_cimg_math_parser::mp_arg, // 69 &_cimg_math_parser::mp_int, // 70 &_cimg_math_parser::mp_log2, // 71 &_cimg_math_parser::mp_jxyzc // 72 }; if (!mem) return 0; this->mp_funcs = mp_funcs; mem[9] = x; mem[10] = y; mem[11] = z; mem[12] = c; opcode._is_shared = true; opcode._width = opcode._depth = opcode._spectrum = 1; for (p_code = code._data; p_code &op = *p_code; opcode._data = op._data; opcode._height = op._height; // Allows to avoid parameter passing to evaluation functions. mem[opcode(1)] = (this->*mp_funcs[opcode[0]])(); } return mem[result]; } }; //! Compute the square value of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its square value \f$I_{(x,y,z,c)}^2\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. \par Example \code const CImg img("reference.jpg"); (img,img.get_sqr().normalize(0,255)).display(); \endcode \image html ref_sqr.jpg **/ CImg& sqr() { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(val*val); }; return *this; } //! Compute the square value of each pixel value \newinstance. CImg get_sqr() const { return CImg(*this,false).sqr(); } //! Compute the square root of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its square root \f$\sqrt{I_{(x,y,z,c)}}\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. \par Example \code const CImg img("reference.jpg"); (img,img.get_sqrt().normalize(0,255)).display(); \endcode \image html ref_sqrt.jpg **/ CImg& sqrt() { cimg_for(*this,ptrd,T) *ptrd = (T)std::sqrt((double)*ptrd); return *this; } //! Compute the square root of each pixel value \newinstance. CImg get_sqrt() const { return CImg(*this,false).sqrt(); } //! Compute the exponential of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its exponential \f$e^{I_{(x,y,z,c)}}\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& exp() { cimg_for(*this,ptrd,T) *ptrd = (T)std::exp((double)*ptrd); return *this; } //! Compute the exponential of each pixel value \newinstance. CImg get_exp() const { return CImg(*this,false).exp(); } //! Compute the logarithm of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its logarithm \f$\mathrm{log}_{e}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& log() { cimg_for(*this,ptrd,T) *ptrd = (T)std::log((double)*ptrd); return *this; } //! Compute the logarithm of each pixel value \newinstance. CImg get_log() const { return CImg(*this,false).log(); } //! Compute the base-2 logarithm of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its base-2 logarithm \f$\mathrm{log}_{2}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& log2() { cimg_for(*this,ptrd,T) *ptrd = (T)cimg::log2((double)*ptrd); return *this; } //! Compute the base-10 logarithm of each pixel value \newinstance. CImg get_log2() const { return CImg(*this,false).log2(); } //! Compute the base-10 logarithm of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its base-10 logarithm \f$\mathrm{log}_{10}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& log10() { cimg_for(*this,ptrd,T) *ptrd = (T)std::log10((double)*ptrd); return *this; } //! Compute the base-10 logarithm of each pixel value \newinstance. CImg get_log10() const { return CImg(*this,false).log10(); } //! Compute the absolute value of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its absolute value \f$|I_{(x,y,z,c)}|\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& abs() { cimg_for(*this,ptrd,T) *ptrd = cimg::abs(*ptrd); return *this; } //! Compute the absolute value of each pixel value \newinstance. CImg get_abs() const { return CImg(*this,false).abs(); } //! Compute the sign of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its sign \f$\mathrm{sign}(I_{(x,y,z,c)})\f$. \note - The sign is set to: - \c 1 if pixel value is strictly positive. - \c -1 if pixel value is strictly negative. - \c 0 if pixel value is equal to \c 0. - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& sign() { cimg_for(*this,ptrd,T) *ptrd = cimg::sign(*ptrd); return *this; } //! Compute the sign of each pixel value \newinstance. CImg get_sign() const { return CImg(*this,false).sign(); } //! Compute the cosine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its cosine \f$\cos(I_{(x,y,z,c)})\f$. \note - Pixel values are regarded as being in \e radian. - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& cos() { cimg_for(*this,ptrd,T) *ptrd = (T)std::cos((double)*ptrd); return *this; } //! Compute the cosine of each pixel value \newinstance. CImg get_cos() const { return CImg(*this,false).cos(); } //! Compute the sine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its sine \f$\sin(I_{(x,y,z,c)})\f$. \note - Pixel values are regarded as being in \e radian. - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& sin() { cimg_for(*this,ptrd,T) *ptrd = (T)std::sin((double)*ptrd); return *this; } //! Compute the sine of each pixel value \newinstance. CImg get_sin() const { return CImg(*this,false).sin(); } //! Compute the sinc of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its sinc \f$\mathrm{sinc}(I_{(x,y,z,c)})\f$. \note - Pixel values are regarded as being exin \e radian. - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& sinc() { cimg_for(*this,ptrd,T) *ptrd = (T)cimg::sinc((double)*ptrd); return *this; } //! Compute the sinc of each pixel value \newinstance. CImg get_sinc() const { return CImg(*this,false).sinc(); } //! Compute the tangent of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its tangent \f$\tan(I_{(x,y,z,c)})\f$. \note - Pixel values are regarded as being exin \e radian. - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& tan() { cimg_for(*this,ptrd,T) *ptrd = (T)std::tan((double)*ptrd); return *this; } //! Compute the tangent of each pixel value \newinstance. CImg get_tan() const { return CImg(*this,false).tan(); } //! Compute the hyperbolic cosine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its hyperbolic cosine \f$\mathrm{cosh}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& cosh() { cimg_for(*this,ptrd,T) *ptrd = (T)std::cosh((double)*ptrd); return *this; } //! Compute the hyperbolic cosine of each pixel value \newinstance. CImg get_cosh() const { return CImg(*this,false).cosh(); } //! Compute the hyperbolic sine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its hyperbolic sine \f$\mathrm{sinh}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& sinh() { cimg_for(*this,ptrd,T) *ptrd = (T)std::sinh((double)*ptrd); return *this; } //! Compute the hyperbolic sine of each pixel value \newinstance. CImg get_sinh() const { return CImg(*this,false).sinh(); } //! Compute the hyperbolic tangent of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its hyperbolic tangent \f$\mathrm{tanh}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& tanh() { cimg_for(*this,ptrd,T) *ptrd = (T)std::tanh((double)*ptrd); return *this; } //! Compute the hyperbolic tangent of each pixel value \newinstance. CImg get_tanh() const { return CImg(*this,false).tanh(); } //! Compute the arccosine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its arccosine \f$\mathrm{acos}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& acos() { cimg_for(*this,ptrd,T) *ptrd = (T)std::acos((double)*ptrd); return *this; } //! Compute the arccosine of each pixel value \newinstance. CImg get_acos() const { return CImg(*this,false).acos(); } //! Compute the arcsine of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its arcsine \f$\mathrm{asin}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& asin() { cimg_for(*this,ptrd,T) *ptrd = (T)std::asin((double)*ptrd); return *this; } //! Compute the arcsine of each pixel value \newinstance. CImg get_asin() const { return CImg(*this,false).asin(); } //! Compute the arctangent of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its arctangent \f$\mathrm{atan}(I_{(x,y,z,c)})\f$. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. **/ CImg& atan() { cimg_for(*this,ptrd,T) *ptrd = (T)std::atan((double)*ptrd); return *this; } //! Compute the arctangent of each pixel value \newinstance. CImg get_atan() const { return CImg(*this,false).atan(); } //! Compute the arctangent2 of each pixel value. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its arctangent2 \f$\mathrm{atan2}(I_{(x,y,z,c)})\f$. \param img Image whose pixel values specify the second argument of the \c atan2() function. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. \par Example \code const CImg img_x(100,100,1,1,"x-w/2",false), // Define an horizontal centered gradient, from '-width/2' to 'width/2'. img_y(100,100,1,1,"y-h/2",false), // Define a vertical centered gradient, from '-height/2' to 'height/2'. img_atan2 = img_y.get_atan2(img_x); // Compute atan2(y,x) for each pixel value. (img_x,img_y,img_atan2).display(); \endcode **/ template CImg& atan2(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return atan2(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg get_atan2(const CImg& img) const { return CImg(*this,false).atan2(img); } //! In-place pointwise multiplication. /** Compute the pointwise multiplication between the image instance and the specified input image \c img. \param img Input image, as the second operand of the multiplication. \note - Similar to operator+=(const CImg&), except that it performs a pointwise multiplication instead of an addition. - It does \e not perform a \e matrix multiplication. For this purpose, use operator*=(const CImg&) instead. \par Example \code CImg img("reference.jpg"), shade(img.width,img.height(),1,1,"-(x-w/2)^2-(y-h/2)^2",false); shade.normalize(0,1); (img,shade,img.get_mul(shade)).display(); \endcode **/ template CImg& mul(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return mul(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg<_cimg_Tt> get_mul(const CImg& img) const { return CImg<_cimg_Tt>(*this,false).mul(img); } //! In-place pointwise division. /** Similar to mul(const CImg&), except that it performs a pointwise division instead of a multiplication. **/ template CImg& div(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return div(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg<_cimg_Tt> get_div(const CImg& img) const { return CImg<_cimg_Tt>(*this,false).div(img); } //! Raise each pixel value to a specified power. /** Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by its power \f$I_{(x,y,z,c)}^p\f$. \param p Exponent value. \note - The \inplace of this method statically casts the computed values to the pixel type \c T. - The \newinstance returns a \c CImg image, if the pixel type \c T is \e not float-valued. \par Example \code const CImg img0("reference.jpg"), // Load reference color image. img1 = (img0/255).pow(1.8)*=255, // Compute gamma correction, with gamma = 1.8. img2 = (img0/255).pow(0.5)*=255; // Compute gamma correction, with gamma = 0.5. (img0,img1,img2).display(); \endcode **/ CImg& pow(const double p) { if (p==-4) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(1.0/(val*val*val*val)); } return *this; } if (p==-3) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(1.0/(val*val*val)); } return *this; } if (p==-2) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(1.0/(val*val)); } return *this; } if (p==-1) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(1.0/val); } return *this; } if (p==-0.5) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)(1/std::sqrt((double)val)); } return *this; } if (p==0) return fill(1); if (p==0.5) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = (T)std::sqrt((double)val); } return *this; } if (p==1) return *this; if (p==2) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = val*val; } return *this; } if (p==3) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = val*val*val; } return *this; } if (p==4) { cimg_for(*this,ptrd,T) { const T val = *ptrd; *ptrd = val*val*val*val; } return *this; } cimg_for(*this,ptrd,T) *ptrd = (T)std::pow((double)*ptrd,p); return *this; } //! Raise each pixel value to a specified power \newinstance. CImg get_pow(const double p) const { return CImg(*this,false).pow(p); } //! Raise each pixel value to a power, specified from an expression. /** Similar to operator+=(const char*), except it performs a pointwise exponentiation instead of an addition. **/ CImg& pow(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"pow"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)std::pow((double)*ptrd,mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)std::pow((double)*ptrd,mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { CImg values(_width,_height,_depth,_spectrum); try { values.fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; values.load(expression); } pow(values); } cimg::exception_mode() = omode; return *this; } //! Raise each pixel value to a power, specified from an expression \newinstance. CImg get_pow(const char *const expression) const { return CImg(*this,false).pow(expression); } //! Raise each pixel value to a power, pointwisely specified from another image. /** Similar to operator+=(const CImg& img), except that it performs an exponentiation instead of an addition. **/ template CImg& pow(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return pow(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg get_pow(const CImg& img) const { return CImg(*this,false).pow(img); } //! Compute the bitwise left rotation of each pixel value. /** Similar to operator<<=(unsigned int), except that it performs a left rotation instead of a left shift. **/ CImg& rol(const unsigned int n=1) { cimg_for(*this,ptrd,T) *ptrd = (T)cimg::rol(*ptrd,n); return *this; } //! Compute the bitwise left rotation of each pixel value \newinstance. CImg get_rol(const unsigned int n=1) const { return (+*this).rol(n); } //! Compute the bitwise left rotation of each pixel value. /** Similar to operator<<=(const char*), except that it performs a left rotation instead of a left shift. **/ CImg& rol(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"rol"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::rol(*ptrd,(unsigned int)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::rol(*ptrd,(unsigned int)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { CImg values(_width,_height,_depth,_spectrum); try { values.fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; values.load(expression); } rol(values); } cimg::exception_mode() = omode; return *this; } //! Compute the bitwise left rotation of each pixel value \newinstance. CImg get_rol(const char *const expression) const { return (+*this).rol(expression); } //! Compute the bitwise left rotation of each pixel value. /** Similar to operator<<=(const CImg&), except that it performs a left rotation instead of a left shift. **/ template CImg& rol(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return rol(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg get_rol(const CImg& img) const { return (+*this).rol(img); } //! Compute the bitwise right rotation of each pixel value. /** Similar to operator>>=(unsigned int), except that it performs a right rotation instead of a right shift. **/ CImg& ror(const unsigned int n=1) { cimg_for(*this,ptrd,T) *ptrd = (T)cimg::ror(*ptrd,n); return *this; } //! Compute the bitwise right rotation of each pixel value \newinstance. CImg get_ror(const unsigned int n=1) const { return (+*this).ror(n); } //! Compute the bitwise right rotation of each pixel value. /** Similar to operator>>=(const char*), except that it performs a right rotation instead of a right shift. **/ CImg& ror(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"ror"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::ror(*ptrd,(unsigned int)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::ror(*ptrd,(unsigned int)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { CImg values(_width,_height,_depth,_spectrum); try { values.fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; values.load(expression); } ror(values); } cimg::exception_mode() = omode; return *this; } //! Compute the bitwise right rotation of each pixel value \newinstance. CImg get_ror(const char *const expression) const { return (+*this).ror(expression); } //! Compute the bitwise right rotation of each pixel value. /** Similar to operator>>=(const CImg&), except that it performs a right rotation instead of a right shift. **/ template CImg& ror(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return ror(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg get_ror(const CImg& img) const { return (+*this).ror(img); } //! Pointwise min operator between instance image and a value. /** \param val Value used as the reference argument of the min operator. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{min}(I_{(x,y,z,c)},\mathrm{val})\f$. **/ CImg& min(const T val) { cimg_for(*this,ptrd,T) *ptrd = cimg::min(*ptrd,val); return *this; } //! Pointwise min operator between instance image and a value \newinstance. CImg get_min(const T val) const { return (+*this).min(val); } //! Pointwise min operator between two images. /** \param img Image used as the reference argument of the min operator. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{min}(I_{(x,y,z,c)},\mathrm{img}_{(x,y,z,c)})\f$. **/ template CImg& min(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return min(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg<_cimg_Tt> get_min(const CImg& img) const { return CImg<_cimg_Tt>(*this,false).min(img); } //! Pointwise min operator between an image and an expression. /** \param expression Math formula as a C-string. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{min}(I_{(x,y,z,c)},\mathrm{expr}_{(x,y,z,c)})\f$. **/ CImg& min(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"min"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::min(*ptrd,(T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::min(*ptrd,(T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { CImg values(_width,_height,_depth,_spectrum); try { values.fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; values.load(expression); } min(values); } cimg::exception_mode() = omode; return *this; } //! Pointwise min operator between an image and an expression \newinstance. CImg get_min(const char *const expression) const { return CImg(*this,false).min(expression); } //! Pointwise max operator between instance image and a value. /** \param val Value used as the reference argument of the max operator. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{max}(I_{(x,y,z,c)},\mathrm{val})\f$. **/ CImg& max(const T val) { cimg_for(*this,ptrd,T) *ptrd = cimg::max(*ptrd,val); return *this; } //! Pointwise max operator between instance image and a value \newinstance. CImg get_max(const T val) const { return (+*this).max(val); } //! Pointwise max operator between two images. /** \param img Image used as the reference argument of the max operator. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{max}(I_{(x,y,z,c)},\mathrm{img}_{(x,y,z,c)})\f$. **/ template CImg& max(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return max(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg<_cimg_Tt> get_max(const CImg& img) const { return CImg<_cimg_Tt>(*this,false).max(img); } //! Pointwise max operator between an image and an expression. /** \param expression Math formula as a C-string. \note Replace each pixel value \f$I_{(x,y,z,c)}\f$ of the image instance by \f$\mathrm{max}(I_{(x,y,z,c)},\mathrm{expr}_{(x,y,z,c)})\f$. **/ CImg& max(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"max"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::max(*ptrd,(T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)cimg::max(*ptrd,(T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { CImg values(_width,_height,_depth,_spectrum); try { values.fill(expression,true); } catch (CImgException&) { cimg::exception_mode() = omode; values.load(expression); } max(values); } cimg::exception_mode() = omode; return *this; } //! Pointwise max operator between an image and an expression \newinstance. CImg get_max(const char *const expression) const { return CImg(*this,false).max(expression); } //! Return a reference to the minimum pixel value. /** **/ T& min() { if (is_empty()) throw CImgInstanceException(_cimg_instance "min(): Empty instance.", cimg_instance); T *ptr_min = _data; T min_value = *ptr_min; cimg_for(*this,ptrs,T) if (*ptrsmax_value) max_value = *(ptr_max=ptrs); return *ptr_max; } //! Return a reference to the maximum pixel value \const. const T& max() const { if (is_empty()) throw CImgInstanceException(_cimg_instance "max(): Empty instance.", cimg_instance); const T *ptr_max = _data; T max_value = *ptr_max; cimg_for(*this,ptrs,T) if (*ptrs>max_value) max_value = *(ptr_max=ptrs); return *ptr_max; } //! Return a reference to the minimum pixel value as well as the maximum pixel value. /** \param[out] max_val Maximum pixel value. **/ template T& min_max(t& max_val) { if (is_empty()) throw CImgInstanceException(_cimg_instance "min_max(): Empty instance.", cimg_instance); T *ptr_min = _data; T min_value = *ptr_min, max_value = min_value; cimg_for(*this,ptrs,T) { const T val = *ptrs; if (valmax_value) max_value = val; } max_val = (t)max_value; return *ptr_min; } //! Return a reference to the minimum pixel value as well as the maximum pixel value \const. template const T& min_max(t& max_val) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "min_max(): Empty instance.", cimg_instance); const T *ptr_min = _data; T min_value = *ptr_min, max_value = min_value; cimg_for(*this,ptrs,T) { const T val = *ptrs; if (valmax_value) max_value = val; } max_val = (t)max_value; return *ptr_min; } //! Return a reference to the maximum pixel value as well as the minimum pixel value. /** \param[out] min_val Minimum pixel value. **/ template T& max_min(t& min_val) { if (is_empty()) throw CImgInstanceException(_cimg_instance "max_min(): Empty instance.", cimg_instance); T *ptr_max = _data; T max_value = *ptr_max, min_value = max_value; cimg_for(*this,ptrs,T) { const T val = *ptrs; if (val>max_value) { max_value = val; ptr_max = ptrs; } if (val const T& max_min(t& min_val) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "max_min(): Empty instance.", cimg_instance); const T *ptr_max = _data; T max_value = *ptr_max, min_value = max_value; cimg_for(*this,ptrs,T) { const T val = *ptrs; if (val>max_value) { max_value = val; ptr_max = ptrs; } if (val arr(*this); unsigned int l = 0, ir = size() - 1; for (;;) { if (ir<=l+1) { if (ir==l+1 && arr[ir]>1; cimg::swap(arr[mid],arr[l+1]); if (arr[l]>arr[ir]) cimg::swap(arr[l],arr[ir]); if (arr[l+1]>arr[ir]) cimg::swap(arr[l+1],arr[ir]); if (arr[l]>arr[l+1]) cimg::swap(arr[l],arr[l+1]); unsigned int i = l + 1, j = ir; const T pivot = arr[l+1]; for (;;) { do ++i; while (arr[i]pivot); if (j=k) ir = j - 1; if (j<=k) l = i; } } return 0; } //! Return the median pixel value. /** **/ T median() const { if (is_empty()) throw CImgInstanceException(_cimg_instance "median(): Empty instance.", cimg_instance); const unsigned int s = size(); const T res = kth_smallest(s>>1); return (s%2)?res:((res+kth_smallest((s>>1)-1))/2); } //! Return the sum of all the pixel values. /** **/ Tdouble sum() const { if (is_empty()) throw CImgInstanceException(_cimg_instance "sum(): Empty instance.", cimg_instance); Tdouble res = 0; cimg_for(*this,ptrs,T) res+=(Tdouble)*ptrs; return res; } //! Return the average pixel value. /** **/ Tdouble mean() const { if (is_empty()) throw CImgInstanceException(_cimg_instance "mean(): Empty instance.", cimg_instance); Tdouble res = 0; cimg_for(*this,ptrs,T) res+=(Tdouble)*ptrs; return res/size(); } //! Return the variance of the pixel values. /** \param variance_method Method used to estimate the variance. Can be: - \c 0: Second moment, computed as \f$1/N \sum\limits_{k=1}^{N} (x_k - \bar x)^2 = 1/N \left( \sum\limits_{k=1}^N x_k^2 - \left( \sum\limits_{k=1}^N x_k \right)^2 / N \right)\f$ with \f$ \bar x = 1/N \sum\limits_{k=1}^N x_k \f$. - \c 1: Best unbiased estimator, computed as \f$\frac{1}{N-1} \sum\limits_{k=1}^{N} (x_k - \bar x)^2 \f$. - \c 2: Least median of squares. - \c 3: Least trimmed of squares. **/ Tdouble variance(const unsigned int variance_method=1) const { Tdouble foo; return variance_mean(variance_method,foo); } //! Return the variance as well as the average of the pixel values. /** \param variance_method Method used to estimate the variance (see variance(const unsigned int) const). \param[out] mean Average pixel value. **/ template Tdouble variance_mean(const unsigned int variance_method, t& mean) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "variance_mean(): Empty instance.", cimg_instance); Tdouble variance = 0, average = 0; const unsigned long siz = size(); switch (variance_method) { case 0 :{ // Least mean square (standard definition) Tdouble S = 0, S2 = 0; cimg_for(*this,ptrs,T) { const Tdouble val = (Tdouble)*ptrs; S+=val; S2+=val*val; } variance = (S2 - S*S/siz)/siz; average = S; } break; case 1 : { // Least mean square (robust definition) Tdouble S = 0, S2 = 0; cimg_for(*this,ptrs,T) { const Tdouble val = (Tdouble)*ptrs; S+=val; S2+=val*val; } variance = siz>1?(S2 - S*S/siz)/(siz - 1):0; average = S; } break; case 2 : { // Least Median of Squares (MAD) CImg buf(*this,false); buf.sort(); const unsigned long siz2 = siz>>1; const Tdouble med_i = (double)buf[siz2]; cimg_for(buf,ptrs,Tfloat) { const Tdouble val = (Tdouble)*ptrs; *ptrs = (Tfloat)cimg::abs(val - med_i); average+=val; } buf.sort(); const Tdouble sig = (Tdouble)(1.4828*buf[siz2]); variance = sig*sig; } break; default : { // Least trimmed of Squares CImg buf(*this,false); const unsigned long siz2 = siz>>1; cimg_for(buf,ptrs,Tfloat) { const Tdouble val = (Tdouble)*ptrs; (*ptrs)=(Tfloat)((*ptrs)*val); average+=val; } buf.sort(); Tdouble a = 0; const Tfloat *ptrs = buf._data; for (unsigned long j = 0; j0?variance:0; } //! Return estimated variance of the noise. /** \param variance_method Method used to compute the variance (see variance(const unsigned int) const). \note Because of structures such as edges in images it is recommanded to use a robust variance estimation. The variance of the noise is estimated by computing the variance of the Laplacian \f$(\Delta I)^2 \f$ scaled by a factor \f$c\f$ insuring \f$ c E[(\Delta I)^2]= \sigma^2\f$ where \f$\sigma\f$ is the noise variance. **/ Tdouble variance_noise(const unsigned int variance_method=2) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "variance_noise(): Empty instance.", cimg_instance); const unsigned long siz = size(); if (!siz || !_data) return 0; if (variance_method>1) { // Compute a scaled version of the Laplacian. CImg tmp(*this); if (_depth==1) { const Tdouble cste = 1.0/std::sqrt(20.0); // Depends on how the Laplacian is computed. CImg_3x3(I,T); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,T) { tmp(x,y,c) = cste*((Tdouble)Inc + (Tdouble)Ipc + (Tdouble)Icn + (Tdouble)Icp - 4*(Tdouble)Icc); } } else { const Tdouble cste = 1.0/std::sqrt(42.0); // Depends on how the Laplacian is computed. CImg_3x3x3(I,T); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,T) { tmp(x,y,z,c) = cste*( (Tdouble)Incc + (Tdouble)Ipcc + (Tdouble)Icnc + (Tdouble)Icpc + (Tdouble)Iccn + (Tdouble)Iccp - 6*(Tdouble)Iccc); } } return tmp.variance(variance_method); } // Version that doesn't need intermediate images. Tdouble variance = 0, S = 0, S2 = 0; if (_depth==1) { const Tdouble cste = 1.0/std::sqrt(20.0); CImg_3x3(I,T); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,T) { const Tdouble val = cste*((Tdouble)Inc + (Tdouble)Ipc + (Tdouble)Icn + (Tdouble)Icp - 4*(Tdouble)Icc); S+=val; S2+=val*val; } } else { const Tdouble cste = 1.0/std::sqrt(42.0); CImg_3x3x3(I,T); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,T) { const Tdouble val = cste * ((Tdouble)Incc + (Tdouble)Ipcc + (Tdouble)Icnc + (Tdouble)Icpc + (Tdouble)Iccn + (Tdouble)Iccp - 6*(Tdouble)Iccc); S+=val; S2+=val*val; } } if (variance_method) variance = siz>1?(S2 - S*S/siz)/(siz - 1):0; else variance = (S2 - S*S/siz)/siz; return variance>0?variance:0; } //! Compute the MSE (Mean-Squared Error) between two images. /** \param img Image used as the second argument of the MSE operator. **/ template Tdouble MSE(const CImg& img) const { if (img.size()!=size()) throw CImgArgumentException(_cimg_instance "MSE(): Instance and specified image (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, img._width,img._height,img._depth,img._spectrum,img._data); Tdouble vMSE = 0; const t* ptr2 = img._data; cimg_for(*this,ptr1,T) { const Tdouble diff = (Tdouble)*ptr1 - (Tdouble)*(ptr2++); vMSE+=diff*diff; } const unsigned long siz = img.size(); if (siz) vMSE/=siz; return vMSE; } //! Compute the PSNR (Peak Signal-to-Noise Ratio) between two images. /** \param img Image used as the second argument of the PSNR operator. \param max_value Maximum theoretical value of the signal. **/ template Tdouble PSNR(const CImg& img, const Tdouble max_value=255) const { const Tdouble vMSE = (Tdouble)std::sqrt(MSE(img)); return (vMSE!=0)?(Tdouble)(20*std::log10(max_value/vMSE)):(Tdouble)(cimg::type::max()); } //! Evaluate math formula. /** \param expression Math formula, as a C-string. \param x Value of the pre-defined variable \c x. \param y Value of the pre-defined variable \c y. \param z Value of the pre-defined variable \c z. \param c Value of the pre-defined variable \c c. **/ double eval(const char *const expression, const double x=0, const double y=0, const double z=0, const double c=0) const { if (!expression) return 0; return _cimg_math_parser(*this,expression,"eval").eval(x,y,z,c); } //! Evaluate math formula on a set of variables. /** \param expression Math formula, as a C-string. \param xyzc Set of values (x,y,z,c) used for the evaluation. **/ template CImg eval(const char *const expression, const CImg& xyzc) const { CImg res(1,xyzc.size()/4); if (!expression) return res.fill(0); _cimg_math_parser mp(*this,expression,"eval"); const t *ps = xyzc._data; double x, y, z, c; cimg_for(res,pd,double) { x = (double)*(ps++); y = (double)*(ps++); z = (double)*(ps++); c = (double)*(ps++); *pd = mp.eval(x,y,z,c); } return res; } //! Compute statistics vector from the pixel values. /* \param variance_method Method used to compute the variance (see variance(const unsigned int) const). \return Statistics vector as [min; max; mean; variance; xmin; ymin; zmin; cmin; xmax; ymax; zmax; cmax]. **/ CImg get_stats(const unsigned int variance_method=1) const { if (is_empty()) return CImg(); const unsigned long siz = size(); const T *const odata = _data; const T *pm = odata, *pM = odata; Tdouble S = 0, S2 = 0; T m = *pm, M = m; cimg_for(*this,ptrs,T) { const T val = *ptrs; const Tdouble _val = (Tdouble)val; if (valM) { M = val; pM = ptrs; } S+=_val; S2+=_val*_val; } const Tdouble mean_value = S/siz, _variance_value = variance_method==0?(S2 - S*S/siz)/siz: (variance_method==1?(siz>1?(S2 - S*S/siz)/(siz - 1):0): variance(variance_method)), variance_value = _variance_value>0?_variance_value:0; int xm = 0, ym = 0, zm = 0, cm = 0, xM = 0, yM = 0, zM = 0, cM = 0; contains(*pm,xm,ym,zm,cm); contains(*pM,xM,yM,zM,cM); return CImg(1,12).fill((Tdouble)m,(Tdouble)M,mean_value,variance_value, (Tdouble)xm,(Tdouble)ym,(Tdouble)zm,(Tdouble)cm, (Tdouble)xM,(Tdouble)yM,(Tdouble)zM,(Tdouble)cM); } //! Compute statistics vector from the pixel values \inplace. CImg& stats(const unsigned int variance_method=1) { return get_stats(variance_method).move_to(*this); } //@} //------------------------------------- // //! \name Vector / Matrix Operations //@{ //------------------------------------- //! Compute norm of the image, viewed as a matrix. /** \param magnitude_type Norm type. Can be: - \c -1: Linf-norm - \c 0: L2-norm - \c 1: L1-norm **/ Tdouble magnitude(const int magnitude_type=2) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "magnitude(): Empty instance.", cimg_instance); Tdouble res = 0; switch (magnitude_type) { case -1 : { cimg_for(*this,ptrs,T) { const Tdouble val = (Tdouble)cimg::abs(*ptrs); if (val>res) res = val; } } break; case 1 : { cimg_for(*this,ptrs,T) res+=(Tdouble)cimg::abs(*ptrs); } break; default : { cimg_for(*this,ptrs,T) res+=(Tdouble)cimg::sqr(*ptrs); res = (Tdouble)std::sqrt(res); } } return res; } //! Compute the trace of the image, viewed as a matrix. /** **/ Tdouble trace() const { if (is_empty()) throw CImgInstanceException(_cimg_instance "trace(): Empty instance.", cimg_instance); Tdouble res = 0; cimg_forX(*this,k) res+=(Tdouble)(*this)(k,k); return res; } //! Compute the determinant of the image, viewed as a matrix. /** **/ Tdouble det() const { if (is_empty() || _width!=_height || _depth!=1 || _spectrum!=1) throw CImgInstanceException(_cimg_instance "det(): Instance is not a square matrix.", cimg_instance); switch (_width) { case 1 : return (Tdouble)((*this)(0,0)); case 2 : return (Tdouble)((*this)(0,0))*(Tdouble)((*this)(1,1)) - (Tdouble)((*this)(0,1))*(Tdouble)((*this)(1,0)); case 3 : { const Tdouble a = (Tdouble)_data[0], d = (Tdouble)_data[1], g = (Tdouble)_data[2], b = (Tdouble)_data[3], e = (Tdouble)_data[4], h = (Tdouble)_data[5], c = (Tdouble)_data[6], f = (Tdouble)_data[7], i = (Tdouble)_data[8]; return i*a*e - a*h*f - i*b*d + b*g*f + c*d*h - c*g*e; } default : { CImg lu(*this); CImg indx; bool d; lu._LU(indx,d); Tdouble res = d?(Tdouble)1:(Tdouble)-1; cimg_forX(lu,i) res*=lu(i,i); return res; } } return 0; } //! Compute the dot product between instance and argument, viewed as matrices. /** \param img Image used as a second argument of the dot product. **/ template Tdouble dot(const CImg& img) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "dot(): Empty instance.", cimg_instance); if (!img) throw CImgArgumentException(_cimg_instance "dot(): Empty specified image.", cimg_instance); const unsigned int nb = cimg::min(size(),img.size()); Tdouble res = 0; for (unsigned int off = 0; off get_vector_at(const unsigned int x, const unsigned int y=0, const unsigned int z=0) const { CImg res; if (res._height!=_spectrum) res.assign(1,_spectrum); const unsigned long whd = (unsigned long)_width*_height*_depth; const T *ptrs = data(x,y,z); T *ptrd = res._data; cimg_forC(*this,c) { *(ptrd++) = *ptrs; ptrs+=whd; } return res; } //! Get (square) matrix-valued pixel located at specified position. /** \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \note - The spectrum() of the image must be a square. **/ CImg get_matrix_at(const unsigned int x=0, const unsigned int y=0, const unsigned int z=0) const { const int n = (int)std::sqrt((double)_spectrum); const T *ptrs = data(x,y,z,0); const unsigned long whd = (unsigned long)_width*_height*_depth; CImg res(n,n); T *ptrd = res._data; cimg_forC(*this,c) { *(ptrd++) = *ptrs; ptrs+=whd; } return res; } //! Get tensor-valued pixel located at specified position. /** \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. **/ CImg get_tensor_at(const unsigned int x, const unsigned int y=0, const unsigned int z=0) const { const T *ptrs = data(x,y,z,0); const unsigned long whd = (unsigned long)_width*_height*_depth; if (_spectrum==6) return tensor(*ptrs,*(ptrs+whd),*(ptrs+2*whd),*(ptrs+3*whd),*(ptrs+4*whd),*(ptrs+5*whd)); if (_spectrum==3) return tensor(*ptrs,*(ptrs+whd),*(ptrs+2*whd)); return tensor(*ptrs); } //! Set vector-valued pixel at specified position. /** \param vec Vector to put on the instance image. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. **/ template CImg& set_vector_at(const CImg& vec, const unsigned int x, const unsigned int y=0, const unsigned int z=0) { if (x<_width && y<_height && z<_depth) { const t *ptrs = vec._data; const unsigned long whd = (unsigned long)_width*_height*_depth; T *ptrd = data(x,y,z); for (unsigned int k = cimg::min((unsigned int)vec.size(),_spectrum); k; --k) { *ptrd = (T)*(ptrs++); ptrd+=whd; } } return *this; } //! Set (square) matrix-valued pixel at specified position. /** \param mat Matrix to put on the instance image. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. **/ template CImg& set_matrix_at(const CImg& mat, const unsigned int x=0, const unsigned int y=0, const unsigned int z=0) { return set_vector_at(mat,x,y,z); } //! Set tensor-valued pixel at specified position. /** \param ten Tensor to put on the instance image. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. **/ template CImg& set_tensor_at(const CImg& ten, const unsigned int x=0, const unsigned int y=0, const unsigned int z=0) { T *ptrd = data(x,y,z,0); const unsigned long siz = (unsigned long)_width*_height*_depth; if (ten._height==2) { *ptrd = (T)ten[0]; ptrd+=siz; *ptrd = (T)ten[1]; ptrd+=siz; *ptrd = (T)ten[3]; } else { *ptrd = (T)ten[0]; ptrd+=siz; *ptrd = (T)ten[1]; ptrd+=siz; *ptrd = (T)ten[2]; ptrd+=siz; *ptrd = (T)ten[4]; ptrd+=siz; *ptrd = (T)ten[5]; ptrd+=siz; *ptrd = (T)ten[8]; } return *this; } //! Unroll pixel values along axis \c y. /** \note Equivalent to \code unroll('y'); \endcode. **/ CImg& vector() { return unroll('y'); } //! Unroll pixel values along axis \c y \newinstance. CImg get_vector() const { return get_unroll('y'); } //! Resize image to become a scalar square matrix. /** **/ CImg& matrix() { const unsigned long siz = size(); switch (siz) { case 1 : break; case 4 : _width = _height = 2; break; case 9 : _width = _height = 3; break; case 16 : _width = _height = 4; break; case 25 : _width = _height = 5; break; case 36 : _width = _height = 6; break; case 49 : _width = _height = 7; break; case 64 : _width = _height = 8; break; case 81 : _width = _height = 9; break; case 100 : _width = _height = 10; break; default : { unsigned long i = 11, i2 = i*i; while (i2 get_matrix() const { return (+*this).matrix(); } //! Resize image to become a symmetric tensor. /** **/ CImg& tensor() { return get_tensor().move_to(*this); } //! Resize image to become a symmetric tensor \newinstance. CImg get_tensor() const { CImg res; const unsigned long siz = size(); switch (siz) { case 1 : break; case 3 : res.assign(2,2); res(0,0) = (*this)(0); res(1,0) = res(0,1) = (*this)(1); res(1,1) = (*this)(2); break; case 6 : res.assign(3,3); res(0,0) = (*this)(0); res(1,0) = res(0,1) = (*this)(1); res(2,0) = res(0,2) = (*this)(2); res(1,1) = (*this)(3); res(2,1) = res(1,2) = (*this)(4); res(2,2) = (*this)(5); break; default : throw CImgInstanceException(_cimg_instance "tensor(): Invalid instance size (does not define a 1x1, 2x2 or 3x3 tensor).", cimg_instance); } return res; } //! Resize image to become a diagonal matrix. /** \note Transform the image as a diagonal matrix so that each of its initial value becomes a diagonal coefficient. **/ CImg& diagonal() { return get_diagonal().move_to(*this); } //! Resize image to become a diagonal matrix \newinstance. CImg get_diagonal() const { if (is_empty()) return *this; CImg res(size(),size(),1,1,0); cimg_foroff(*this,off) res(off,off) = (*this)(off); return res; } //! Replace the image by an identity matrix. /** \note If the instance image is not square, it is resized to a square matrix using its maximum dimension as a reference. **/ CImg& identity_matrix() { return identity_matrix(cimg::max(_width,_height)).move_to(*this); } //! Replace the image by an identity matrix \newinstance. CImg get_identity_matrix() const { return identity_matrix(cimg::max(_width,_height)); } //! Fill image with a linear sequence of values. /** \param a0 Starting value of the sequence. \param a1 Ending value of the sequence. **/ CImg& sequence(const T a0, const T a1) { if (is_empty()) return *this; const unsigned int siz = size() - 1; T* ptr = _data; if (siz) { const Tdouble delta = (Tdouble)a1 - (Tdouble)a0; cimg_foroff(*this,l) *(ptr++) = (T)(a0 + delta*l/siz); } else *ptr = a0; return *this; } //! Fill image with a linear sequence of values \newinstance. CImg get_sequence(const T a0, const T a1) const { return (+*this).sequence(a0,a1); } //! Transpose the image, viewed as a matrix. /** \note Equivalent to \code permute_axes("yxzc"); \endcode **/ CImg& transpose() { if (_width==1) { _width = _height; _height = 1; return *this; } if (_height==1) { _height = _width; _width = 1; return *this; } if (_width==_height) { cimg_forYZC(*this,y,z,c) for (int x = y; x get_transpose() const { return get_permute_axes("yxzc"); } //! Compute the cross product between two \c 1x3 images, viewed as 3d vectors. /** \param img Image used as the second argument of the cross product. \note The first argument of the cross product is \c *this. **/ template CImg& cross(const CImg& img) { if (_width!=1 || _height<3 || img._width!=1 || img._height<3) throw CImgInstanceException(_cimg_instance "cross(): Instance and/or specified image (%u,%u,%u,%u,%p) are not 3d vectors.", cimg_instance, img._width,img._height,img._depth,img._spectrum,img._data); const T x = (*this)[0], y = (*this)[1], z = (*this)[2]; (*this)[0] = (T)(y*img[2] - z*img[1]); (*this)[1] = (T)(z*img[0] - x*img[2]); (*this)[2] = (T)(x*img[1] - y*img[0]); return *this; } //! Compute the cross product between two \c 1x3 images, viewed as 3d vectors \newinstance. template CImg<_cimg_Tt> get_cross(const CImg& img) const { return CImg<_cimg_Tt>(*this).cross(img); } //! Invert the instance image, viewed as a matrix. /** \param use_LU Choose the inverting algorithm. Can be: - \c true: LU-based matrix inversion. - \c false: SVD-based matrix inversion. **/ CImg& invert(const bool use_LU=true) { if (_width!=_height || _depth!=1 || _spectrum!=1) throw CImgInstanceException(_cimg_instance "invert(): Instance is not a square matrix.", cimg_instance); #ifdef cimg_use_lapack int INFO = (int)use_LU, N = _width, LWORK = 4*N, *const IPIV = new int[N]; Tfloat *const lapA = new Tfloat[N*N], *const WORK = new Tfloat[LWORK]; cimg_forXY(*this,k,l) lapA[k*N+l] = (Tfloat)((*this)(k,l)); cimg::getrf(N,lapA,IPIV,INFO); if (INFO) cimg::warn(_cimg_instance "invert(): LAPACK function dgetrf_() returned error code %d.", cimg_instance, INFO); else { cimg::getri(N,lapA,IPIV,WORK,LWORK,INFO); if (INFO) cimg::warn(_cimg_instance "invert(): LAPACK function dgetri_() returned error code %d.", cimg_instance, INFO); } if (!INFO) cimg_forXY(*this,k,l) (*this)(k,l) = (T)(lapA[k*N+l]); else fill(0); delete[] IPIV; delete[] lapA; delete[] WORK; #else const double dete = _width>3?-1.0:det(); if (dete!=0.0 && _width==2) { const double a = _data[0], c = _data[1], b = _data[2], d = _data[3]; _data[0] = (T)(d/dete); _data[1] = (T)(-c/dete); _data[2] = (T)(-b/dete); _data[3] = (T)(a/dete); } else if (dete!=0.0 && _width==3) { const double a = _data[0], d = _data[1], g = _data[2], b = _data[3], e = _data[4], h = _data[5], c = _data[6], f = _data[7], i = _data[8]; _data[0] = (T)((i*e-f*h)/dete), _data[1] = (T)((g*f-i*d)/dete), _data[2] = (T)((d*h-g*e)/dete); _data[3] = (T)((h*c-i*b)/dete), _data[4] = (T)((i*a-c*g)/dete), _data[5] = (T)((g*b-a*h)/dete); _data[6] = (T)((b*f-e*c)/dete), _data[7] = (T)((d*c-a*f)/dete), _data[8] = (T)((a*e-d*b)/dete); } else { if (use_LU) { // LU-based inverse computation CImg A(*this), indx, col(1,_width); bool d; A._LU(indx,d); cimg_forX(*this,j) { col.fill(0); col(j) = 1; col._solve(A,indx); cimg_forX(*this,i) (*this)(j,i) = (T)col(i); } } else { // SVD-based inverse computation CImg U(_width,_width), S(1,_width), V(_width,_width); SVD(U,S,V,false); U.transpose(); cimg_forY(S,k) if (S[k]!=0) S[k]=1/S[k]; S.diagonal(); *this = V*S*U; } } #endif return *this; } //! Invert the instance image, viewed as a matrix \newinstance. CImg get_invert(const bool use_LU=true) const { return CImg(*this,false).invert(use_LU); } //! Compute the Moore-Penrose pseudo-inverse of the instance image, viewed as a matrix. /** **/ CImg& pseudoinvert() { return get_pseudoinvert().move_to(*this); } //! Compute the Moore-Penrose pseudo-inverse of the instance image, viewed as a matrix \newinstance. CImg get_pseudoinvert() const { CImg U, S, V; SVD(U,S,V); const Tfloat tolerance = (sizeof(Tfloat)<=4?5.96e-8f:1.11e-16f)*cimg::max(_width,_height)*S.max(); cimg_forX(V,x) { const Tfloat s = S(x), invs = s>tolerance?1/s:(Tfloat)0; cimg_forY(V,y) V(x,y)*=invs; } return V*U.transpose(); } //! Solve a system of linear equations. /** \param A Matrix of the linear system. \note Solve \c AX=B where \c B=*this. **/ template CImg& solve(const CImg& A) { if (_width!=1 || _depth!=1 || _spectrum!=1 || _height!=A._height || A._depth!=1 || A._spectrum!=1) throw CImgArgumentException(_cimg_instance "solve(): Instance and specified matrix (%u,%u,%u,%u,%p) have incompatible dimensions.", cimg_instance, A._width,A._height,A._depth,A._spectrum,A._data); typedef _cimg_Ttfloat Ttfloat; if (A._width==A._height) { #ifdef cimg_use_lapack char TRANS = 'N'; int INFO, N = _height, LWORK = 4*N, *const IPIV = new int[N]; Ttfloat *const lapA = new Ttfloat[N*N], *const lapB = new Ttfloat[N], *const WORK = new Ttfloat[LWORK]; cimg_forXY(A,k,l) lapA[k*N+l] = (Ttfloat)(A(k,l)); cimg_forY(*this,i) lapB[i] = (Ttfloat)((*this)(i)); cimg::getrf(N,lapA,IPIV,INFO); if (INFO) cimg::warn(_cimg_instance "solve(): LAPACK library function dgetrf_() returned error code %d.", cimg_instance, INFO); if (!INFO) { cimg::getrs(TRANS,N,lapA,IPIV,lapB,INFO); if (INFO) cimg::warn(_cimg_instance "solve(): LAPACK library function dgetrs_() returned error code %d.", cimg_instance, INFO); } if (!INFO) cimg_forY(*this,i) (*this)(i) = (T)(lapB[i]); else fill(0); delete[] IPIV; delete[] lapA; delete[] lapB; delete[] WORK; #else CImg lu(A,false); CImg indx; bool d; lu._LU(indx,d); _solve(lu,indx); #endif } else { // Least-square solution for non-square systems. #ifdef cimg_use_lapack char TRANS = 'N'; int INFO, N = A._width, M = A._height, LWORK = -1, LDA = M, LDB = M, NRHS = _width; Ttfloat WORK_QUERY; Ttfloat * const lapA = new Ttfloat[M*N], * const lapB = new Ttfloat[M*NRHS]; cimg::sgels(TRANS, M, N, NRHS, lapA, LDA, lapB, LDB, &WORK_QUERY, LWORK, INFO); LWORK = (int) WORK_QUERY; Ttfloat *const WORK = new Ttfloat[LWORK]; cimg_forXY(A,k,l) lapA[k*M+l] = (Ttfloat)(A(k,l)); cimg_forXY(*this,k,l) lapB[k*M+l] = (Ttfloat)((*this)(k,l)); cimg::sgels(TRANS, M, N, NRHS, lapA, LDA, lapB, LDB, WORK, LWORK, INFO); if (INFO != 0) cimg::warn(_cimg_instance "solve(): LAPACK library function sgels() returned error code %d.", cimg_instance, INFO); assign(NRHS, N); if (!INFO != 0) cimg_forXY(*this,k,l) (*this)(k,l) = (T) lapB[k*M+l]; else assign(A.get_pseudoinvert()*(*this)); delete[] lapA; delete[] lapB; delete[] WORK; #else assign(A.get_pseudoinvert()*(*this)); #endif } return *this; } //! Solve a system of linear equations \newinstance. template CImg<_cimg_Ttfloat> get_solve(const CImg& A) const { return CImg<_cimg_Ttfloat>(*this,false).solve(A); } template CImg& _solve(const CImg& A, const CImg& indx) { typedef _cimg_Ttfloat Ttfloat; const int N = size(); int ii = -1; Ttfloat sum; for (int i = 0; i=0) for (int j = ii; j<=i-1; ++j) sum-=A(j,i)*(*this)(j); else if (sum!=0) ii = i; (*this)(i) = (T)sum; } for (int i = N - 1; i>=0; --i) { sum = (*this)(i); for (int j = i + 1; j CImg& solve_tridiagonal(const CImg& A) { const unsigned int siz = (int)size(); if (A._width!=3 || A._height!=siz) throw CImgArgumentException(_cimg_instance "solve_tridiagonal(): Instance and tridiagonal matrix " "(%u,%u,%u,%u,%p) have incompatible dimensions.", cimg_instance, A._width,A._height,A._depth,A._spectrum,A._data); typedef _cimg_Ttfloat Ttfloat; const Ttfloat epsilon = 1e-4; CImg B = A.get_column(1), V(*this,false); for (int i = 1; i<(int)siz; ++i) { const Ttfloat m = A(0,i)/(B[i-1]?B[i-1]:epsilon); B[i] -= m*A(2,i-1); V[i] -= m*V[i-1]; } (*this)[siz-1] = (T)(V[siz-1]/(B[siz-1]?B[siz-1]:epsilon)); for (int i = (int)siz - 2; i>=0; --i) (*this)[i] = (T)((V[i] - A(2,i)*(*this)[i+1])/(B[i]?B[i]:epsilon)); return *this; } //! Solve a tridiagonal system of linear equations \newinstance. template CImg<_cimg_Ttfloat> get_solve_tridiagonal(const CImg& A) const { return CImg<_cimg_Ttfloat>(*this,false).solve_tridiagonal(A); } //! Compute eigenvalues and eigenvectors of the instance image, viewed as a matrix. /** \param[out] val Vector of the estimated eigenvalues, in decreasing order. \param[out] vec Matrix of the estimated eigenvalues, sorted by columns. **/ template const CImg& eigen(CImg& val, CImg &vec) const { if (is_empty()) { val.assign(); vec.assign(); } else { if (_width!=_height || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "eigen(): Instance is not a square matrix.", cimg_instance); if (val.size()<(unsigned long)_width) val.assign(1,_width); if (vec.size()<(unsigned long)_width*_width) vec.assign(_width,_width); switch (_width) { case 1 : { val[0] = (t)(*this)[0]; vec[0] = (t)1; } break; case 2 : { const double a = (*this)[0], b = (*this)[1], c = (*this)[2], d = (*this)[3], e = a + d; double f = e*e - 4*(a*d - b*c); if (f<0) cimg::warn(_cimg_instance "eigen(): Complex eigenvalues found.", cimg_instance); f = std::sqrt(f); const double l1 = 0.5*(e-f), l2 = 0.5*(e+f); const double theta1 = std::atan2(l2-a,b), theta2 = std::atan2(l1-a,b); val[0] = (t)l2; val[1] = (t)l1; vec(0,0) = (t)std::cos(theta1); vec(0,1) = (t)std::sin(theta1); vec(1,0) = (t)std::cos(theta2); vec(1,1) = (t)std::sin(theta2); } break; default : throw CImgInstanceException(_cimg_instance "eigen(): Eigenvalues computation of general matrices is limited to 2x2 matrices.", cimg_instance); } } return *this; } //! Compute eigenvalues and eigenvectors of the instance image, viewed as a matrix. /** \return A list of two images [val; vec], whose meaning is similar as in eigen(CImg&,CImg&) const. **/ CImgList get_eigen() const { CImgList res(2); eigen(res[0],res[1]); return res; } //! Compute eigenvalues and eigenvectors of the instance image, viewed as a symmetric matrix. /** \param[out] val Vector of the estimated eigenvalues, in decreasing order. \param[out] vec Matrix of the estimated eigenvalues, sorted by columns. **/ template const CImg& symmetric_eigen(CImg& val, CImg& vec) const { if (is_empty()) { val.assign(); vec.assign(); } else { #ifdef cimg_use_lapack char JOB = 'V', UPLO = 'U'; int N = _width, LWORK = 4*N, INFO; Tfloat *const lapA = new Tfloat[N*N], *const lapW = new Tfloat[N], *const WORK = new Tfloat[LWORK]; cimg_forXY(*this,k,l) lapA[k*N+l] = (Tfloat)((*this)(k,l)); cimg::syev(JOB,UPLO,N,lapA,lapW,WORK,LWORK,INFO); if (INFO) cimg::warn(_cimg_instance "symmetric_eigen(): LAPACK library function dsyev_() returned error code %d.", cimg_instance, INFO); val.assign(1,N); vec.assign(N,N); if (!INFO) { cimg_forY(val,i) val(i) = (T)lapW[N-1-i]; cimg_forXY(vec,k,l) vec(k,l) = (T)(lapA[(N-1-k)*N+l]); } else { val.fill(0); vec.fill(0); } delete[] lapA; delete[] lapW; delete[] WORK; #else if (_width!=_height || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "eigen(): Instance is not a square matrix.", cimg_instance); val.assign(1,_width); if (vec._data) vec.assign(_width,_width); if (_width<3) { eigen(val,vec); if (_width==2) { vec[1] = -vec[2]; vec[3] = vec[0]; } // Force orthogonality for 2x2 matrices. return *this; } CImg V(_width,_width); SVD(vec,val,V,false); bool is_ambiguous = false; float eig = 0; cimg_forY(val,p) { // check for ambiguous cases. if (val[p]>eig) eig = (float)val[p]; t scal = 0; cimg_forY(vec,y) scal+=vec(p,y)*V(p,y); if (cimg::abs(scal)<0.9f) is_ambiguous = true; if (scal<0) val[p] = -val[p]; } if (is_ambiguous) { ++(eig*=2); SVD(vec,val,V,false,40,eig); val-=eig; } CImg permutations; // sort eigenvalues in decreasing order CImg tmp(_width); val.sort(permutations,false); cimg_forY(vec,k) { cimg_forY(permutations,y) tmp(y) = vec(permutations(y),k); std::memcpy(vec.data(0,k),tmp._data,sizeof(t)*_width); } #endif } return *this; } //! Compute eigenvalues and eigenvectors of the instance image, viewed as a symmetric matrix. /** \return A list of two images [val; vec], whose meaning are similar as in symmetric_eigen(CImg&,CImg&) const. **/ CImgList get_symmetric_eigen() const { CImgList res(2); symmetric_eigen(res[0],res[1]); return res; } //! Sort pixel values and get sorting permutations. /** \param[out] permutations Permutation map used for the sorting. \param is_increasing Tells if pixel values are sorted in an increasing (\c true) or decreasing (\c false) way. **/ template CImg& sort(CImg& permutations, const bool is_increasing=true) { permutations.assign(_width,_height,_depth,_spectrum); if (is_empty()) return *this; cimg_foroff(permutations,off) permutations[off] = (t)off; return _quicksort(0,size()-1,permutations,is_increasing,true); } //! Sort pixel values and get sorting permutations \newinstance. template CImg get_sort(CImg& permutations, const bool is_increasing=true) const { return (+*this).sort(permutations,is_increasing); } //! Sort pixel values. /** \param is_increasing Tells if pixel values are sorted in an increasing (\c true) or decreasing (\c false) way. \param axis Tells if the value sorting must be done along a specific axis. Can be: - \c 0: All pixel values are sorted, independently on their initial position. - \c 'x': Image columns are sorted, according to the first value in each column. - \c 'y': Image rows are sorted, according to the first value in each row. - \c 'z': Image slices are sorted, according to the first value in each slice. - \c 'c': Image channels are sorted, according to the first value in each channel. **/ CImg& sort(const bool is_increasing=true, const char axis=0) { if (is_empty()) return *this; CImg perm; switch (cimg::uncase(axis)) { case 0 : _quicksort(0,size()-1,perm,is_increasing,false); break; case 'x' : { perm.assign(_width); get_crop(0,0,0,0,_width-1,0,0,0).sort(perm,is_increasing); CImg img(*this,false); cimg_forXYZC(*this,x,y,z,c) (*this)(x,y,z,c) = img(perm[x],y,z,c); } break; case 'y' : { perm.assign(_height); get_crop(0,0,0,0,0,_height-1,0,0).sort(perm,is_increasing); CImg img(*this,false); cimg_forXYZC(*this,x,y,z,c) (*this)(x,y,z,c) = img(x,perm[y],z,c); } break; case 'z' : { perm.assign(_depth); get_crop(0,0,0,0,0,0,_depth-1,0).sort(perm,is_increasing); CImg img(*this,false); cimg_forXYZC(*this,x,y,z,c) (*this)(x,y,z,c) = img(x,y,perm[z],c); } break; case 'c' : { perm.assign(_spectrum); get_crop(0,0,0,0,0,0,0,_spectrum-1).sort(perm,is_increasing); CImg img(*this,false); cimg_forXYZC(*this,x,y,z,c) (*this)(x,y,z,c) = img(x,y,z,perm[c]); } break; default : throw CImgArgumentException(_cimg_instance "sort(): Invalid specified axis '%c' " "(should be { x | y | z | c }).", cimg_instance,axis); } return *this; } //! Sort pixel values \newinstance. CImg get_sort(const bool is_increasing=true, const char axis=0) const { return (+*this).sort(is_increasing,axis); } template CImg& _quicksort(const int indm, const int indM, CImg& permutations, const bool is_increasing, const bool is_permutations) { if (indm(*this)[mid]) { cimg::swap((*this)[indm],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indm],permutations[mid]); } if ((*this)[mid]>(*this)[indM]) { cimg::swap((*this)[indM],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indM],permutations[mid]); } if ((*this)[indm]>(*this)[mid]) { cimg::swap((*this)[indm],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indm],permutations[mid]); } } else { if ((*this)[indm]<(*this)[mid]) { cimg::swap((*this)[indm],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indm],permutations[mid]); } if ((*this)[mid]<(*this)[indM]) { cimg::swap((*this)[indM],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indM],permutations[mid]); } if ((*this)[indm]<(*this)[mid]) { cimg::swap((*this)[indm],(*this)[mid]); if (is_permutations) cimg::swap(permutations[indm],permutations[mid]); } } if (indM - indm>=3) { const T pivot = (*this)[mid]; int i = indm, j = indM; if (is_increasing) { do { while ((*this)[i]pivot) --j; if (i<=j) { if (is_permutations) cimg::swap(permutations[i],permutations[j]); cimg::swap((*this)[i++],(*this)[j--]); } } while (i<=j); } else { do { while ((*this)[i]>pivot) ++i; while ((*this)[j] A; // Input matrix (assumed to contain some values). CImg<> U,S,V; A.SVD(U,S,V) \endcode **/ template const CImg& SVD(CImg& U, CImg& S, CImg& V, const bool sorting=true, const unsigned int max_iteration=40, const float lambda=0) const { if (is_empty()) { U.assign(); S.assign(); V.assign(); } else { U = *this; if (lambda!=0) { const unsigned int delta = cimg::min(U._width,U._height); for (unsigned int i = 0; i rv1(_width); t anorm = 0, c, f, g = 0, h, s, scale = 0; int l = 0, nm = 0; cimg_forX(U,i) { l = i+1; rv1[i] = scale*g; g = s = scale = 0; if (i=0?-1:1)*std::sqrt(s)); h=f*g-s; U(i,i) = f-g; for (int j = l; j=0?-1:1)*std::sqrt(s)); h = f*g-s; U(l,i) = f-g; for (int k = l; k=0; --i) { if (i=0; --i) { l = i+1; g = S[i]; for (int j = l; j=0; --k) { for (unsigned int its = 0; its=1; --l) { nm = l-1; if ((cimg::abs(rv1[l])+anorm)==anorm) { flag = false; break; } if ((cimg::abs(S[nm])+anorm)==anorm) break; } if (flag) { c = 0; s = 1; for (int i = l; i<=k; ++i) { f = s*rv1[i]; rv1[i] = c*rv1[i]; if ((cimg::abs(f)+anorm)==anorm) break; g = S[i]; h = (t)cimg::_pythagore(f,g); S[i] = h; h = 1/h; c = g*h; s = -f*h; cimg_forY(U,j) { const t y = U(nm,j), z = U(i,j); U(nm,j) = y*c + z*s; U(i,j) = z*c - y*s; } } } const t z = S[k]; if (l==k) { if (z<0) { S[k] = -z; cimg_forX(U,j) V(k,j) = -V(k,j); } break; } nm = k-1; t x = S[l], y = S[nm]; g = rv1[nm]; h = rv1[k]; f = ((y-z)*(y+z)+(g-h)*(g+h))/(2*h*y); g = (t)cimg::_pythagore(f,1.0); f = ((x-z)*(x+z)+h*((y/(f+ (f>=0?g:-g)))-h))/x; c = s = 1; for (int j = l; j<=nm; ++j) { const int i = j+1; g = rv1[i]; h = s*g; g = c*g; t y = S[i]; t z = (t)cimg::_pythagore(f,h); rv1[j] = z; c = f/z; s = h/z; f = x*c+g*s; g = g*c-x*s; h = y*s; y*=c; cimg_forX(U,jj) { const t x = V(j,jj), z = V(i,jj); V(j,jj) = x*c + z*s; V(i,jj) = z*c - x*s; } z = (t)cimg::_pythagore(f,h); S[j] = z; if (z) { z = 1/z; c = f*z; s = h*z; } f = c*g+s*y; x = c*y-s*g; cimg_forY(U,jj) { const t y = U(j,jj); z = U(i,jj); U(j,jj) = y*c + z*s; U(i,jj) = z*c - y*s; } } rv1[l] = 0; rv1[k]=f; S[k]=x; } } if (sorting) { CImg permutations; CImg tmp(_width); S.sort(permutations,false); cimg_forY(U,k) { cimg_forY(permutations,y) tmp(y) = U(permutations(y),k); std::memcpy(U.data(0,k),tmp._data,sizeof(t)*_width); } cimg_forY(V,k) { cimg_forY(permutations,y) tmp(y) = V(permutations(y),k); std::memcpy(V.data(0,k),tmp._data,sizeof(t)*_width); } } } return *this; } //! Compute the SVD of the instance image, viewed as a general matrix. /** \return A list of three images [U; S; V], whose meaning is similar as in SVD(CImg&,CImg&,CImg&,bool,unsigned int,float) const. **/ CImgList get_SVD(const bool sorting=true, const unsigned int max_iteration=40, const float lambda=0) const { CImgList res(3); SVD(res[0],res[1],res[2],sorting,max_iteration,lambda); return res; } // [internal] Compute the LU decomposition of a permuted matrix. template CImg& _LU(CImg& indx, bool& d) { const int N = width(); int imax = 0; CImg vv(N); indx.assign(N); d = true; cimg_forX(*this,i) { Tfloat vmax = 0; cimg_forX(*this,j) { const Tfloat tmp = cimg::abs((*this)(j,i)); if (tmp>vmax) vmax = tmp; } if (vmax==0) { indx.fill(0); return fill(0); } vv[i] = 1/vmax; } cimg_forX(*this,j) { for (int i = 0; i=vmax) { vmax=tmp; imax=i; } } if (j!=imax) { cimg_forX(*this,k) cimg::swap((*this)(k,imax),(*this)(k,j)); d =!d; vv[imax] = vv[j]; } indx[j] = (t)imax; if ((*this)(j,j)==0) (*this)(j,j) = (T)1e-20; if (j static CImg dijkstra(const tf& distance, const unsigned int nb_nodes, const unsigned int starting_node, const unsigned int ending_node, CImg& previous_node) { if (starting_node>=nb_nodes) throw CImgArgumentException("CImg<%s>::dijkstra(): Specified indice of starting node %u is higher than number of nodes %u.", pixel_type(),starting_node,nb_nodes); CImg dist(1,nb_nodes,1,1,cimg::type::max()); dist(starting_node) = 0; previous_node.assign(1,nb_nodes,1,1,(t)-1); previous_node(starting_node) = (t)starting_node; CImg Q(nb_nodes); cimg_forX(Q,u) Q(u) = u; cimg::swap(Q(starting_node),Q(0)); unsigned int sizeQ = nb_nodes; while (sizeQ) { // Update neighbors from minimal vertex const unsigned int umin = Q(0); if (umin==ending_node) sizeQ = 0; else { const T dmin = dist(umin); const T infty = cimg::type::max(); for (unsigned int q = 1; qdist(Q(left))) || (rightdist(Q(right)));) { if (right static CImg dijkstra(const tf& distance, const unsigned int nb_nodes, const unsigned int starting_node, const unsigned int ending_node=~0U) { CImg foo; return dijkstra(distance,nb_nodes,starting_node,ending_node,foo); } //! Return minimal path in a graph, using the Dijkstra algorithm. /** \param starting_node Indice of the starting node. \param ending_node Indice of the ending node. \param previous_node Array that gives the previous node indice in the path to the starting node (optional parameter). \return Array of distances of each node to the starting node. \note image instance corresponds to the adjacency matrix of the graph. **/ template CImg& dijkstra(const unsigned int starting_node, const unsigned int ending_node, CImg& previous_node) { return get_dijkstra(starting_node,ending_node,previous_node).move_to(*this); } //! Return minimal path in a graph, using the Dijkstra algorithm \newinstance. template CImg get_dijkstra(const unsigned int starting_node, const unsigned int ending_node, CImg& previous_node) const { if (_width!=_height || _depth!=1 || _spectrum!=1) throw CImgInstanceException(_cimg_instance "dijkstra(): Instance is not a graph adjacency matrix.", cimg_instance); return dijkstra(*this,_width,starting_node,ending_node,previous_node); } //! Return minimal path in a graph, using the Dijkstra algorithm. CImg& dijkstra(const unsigned int starting_node, const unsigned int ending_node=~0U) { return get_dijkstra(starting_node,ending_node).move_to(*this); } //! Return minimal path in a graph, using the Dijkstra algorithm \newinstance. CImg get_dijkstra(const unsigned int starting_node, const unsigned int ending_node=~0U) const { CImg foo; return get_dijkstra(starting_node,ending_node,foo); } //! Return an image containing the ascii codes of the specified string. /** \param str input C-string to encode as an image. \param is_last_zero Tells if the ending \c '0' character appear in the resulting image. **/ static CImg string(const char *const str, const bool is_last_zero=true) { if (!str) return CImg(); return CImg(str,std::strlen(str)+(is_last_zero?1:0)); } //! Return a \c 1x1 image containing specified value. /** \param a0 First vector value. **/ static CImg vector(const T& a0) { CImg r(1,1); r[0] = a0; return r; } //! Return a \c 1x2 image containing specified values. /** \param a0 First vector value. \param a1 Second vector value. **/ static CImg vector(const T& a0, const T& a1) { CImg r(1,2); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; return r; } //! Return a \c 1x3 image containing specified values. /** \param a0 First vector value. \param a1 Second vector value. \param a2 Third vector value. **/ static CImg vector(const T& a0, const T& a1, const T& a2) { CImg r(1,3); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; return r; } //! Return a \c 1x4 image containing specified values. /** \param a0 First vector value. \param a1 Second vector value. \param a2 Third vector value. \param a3 Fourth vector value. **/ static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3) { CImg r(1,4); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; return r; } //! Return a \c 1x5 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4) { CImg r(1,5); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; return r; } //! Return a \c 1x6 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5) { CImg r(1,6); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; return r; } //! Return a \c 1x7 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6) { CImg r(1,7); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; return r; } //! Return a \c 1x8 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7) { CImg r(1,8); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; return r; } //! Return a \c 1x9 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8) { CImg r(1,9); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; return r; } //! Return a \c 1x10 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9) { CImg r(1,10); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; return r; } //! Return a \c 1x11 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10) { CImg r(1,11); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; return r; } //! Return a \c 1x12 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11) { CImg r(1,12); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; return r; } //! Return a \c 1x13 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12) { CImg r(1,13); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; return r; } //! Return a \c 1x14 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12, const T& a13) { CImg r(1,14); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; *(ptr++) = a13; return r; } //! Return a \c 1x15 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12, const T& a13, const T& a14) { CImg r(1,15); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; *(ptr++) = a13; *(ptr++) = a14; return r; } //! Return a \c 1x16 image containing specified values. static CImg vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12, const T& a13, const T& a14, const T& a15) { CImg r(1,16); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; *(ptr++) = a13; *(ptr++) = a14; *(ptr++) = a15; return r; } //! Return a 1x1 matrix containing specified coefficients. /** \param a0 First matrix value. \note Equivalent to vector(const T&). **/ static CImg matrix(const T& a0) { return vector(a0); } //! Return a 2x2 matrix containing specified coefficients. /** \param a0 First matrix value. \param a1 Second matrix value. \param a2 Third matrix value. \param a3 Fourth matrix value. **/ static CImg matrix(const T& a0, const T& a1, const T& a2, const T& a3) { CImg r(2,2); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; return r; } //! Return a 3x3 matrix containing specified coefficients. /** \param a0 First matrix value. \param a1 Second matrix value. \param a2 Third matrix value. \param a3 Fourth matrix value. \param a4 Fifth matrix value. \param a5 Sixth matrix value. \param a6 Seventh matrix value. \param a7 Eighth matrix value. \param a8 Nineth matrix value. **/ static CImg matrix(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8) { CImg r(3,3); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; return r; } //! Return a 4x4 matrix containing specified coefficients. static CImg matrix(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12, const T& a13, const T& a14, const T& a15) { CImg r(4,4); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; *(ptr++) = a13; *(ptr++) = a14; *(ptr++) = a15; return r; } //! Return a 5x5 matrix containing specified coefficients. static CImg matrix(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8, const T& a9, const T& a10, const T& a11, const T& a12, const T& a13, const T& a14, const T& a15, const T& a16, const T& a17, const T& a18, const T& a19, const T& a20, const T& a21, const T& a22, const T& a23, const T& a24) { CImg r(5,5); T *ptr = r._data; *(ptr++) = a0; *(ptr++) = a1; *(ptr++) = a2; *(ptr++) = a3; *(ptr++) = a4; *(ptr++) = a5; *(ptr++) = a6; *(ptr++) = a7; *(ptr++) = a8; *(ptr++) = a9; *(ptr++) = a10; *(ptr++) = a11; *(ptr++) = a12; *(ptr++) = a13; *(ptr++) = a14; *(ptr++) = a15; *(ptr++) = a16; *(ptr++) = a17; *(ptr++) = a18; *(ptr++) = a19; *(ptr++) = a20; *(ptr++) = a21; *(ptr++) = a22; *(ptr++) = a23; *(ptr++) = a24; return r; } //! Return a 1x1 symmetric matrix containing specified coefficients. /** \param a0 First matrix value. \note Equivalent to vector(const T&). **/ static CImg tensor(const T& a0) { return matrix(a0); } //! Return a 2x2 symmetric matrix tensor containing specified coefficients. static CImg tensor(const T& a0, const T& a1, const T& a2) { return matrix(a0,a1,a1,a2); } //! Return a 3x3 symmetric matrix containing specified coefficients. static CImg tensor(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5) { return matrix(a0,a1,a2,a1,a3,a4,a2,a4,a5); } //! Return a 1x1 diagonal matrix containing specified coefficients. static CImg diagonal(const T& a0) { return matrix(a0); } //! Return a 2x2 diagonal matrix containing specified coefficients. static CImg diagonal(const T& a0, const T& a1) { return matrix(a0,0,0,a1); } //! Return a 3x3 diagonal matrix containing specified coefficients. static CImg diagonal(const T& a0, const T& a1, const T& a2) { return matrix(a0,0,0,0,a1,0,0,0,a2); } //! Return a 4x4 diagonal matrix containing specified coefficients. static CImg diagonal(const T& a0, const T& a1, const T& a2, const T& a3) { return matrix(a0,0,0,0,0,a1,0,0,0,0,a2,0,0,0,0,a3); } //! Return a 5x5 diagonal matrix containing specified coefficients. static CImg diagonal(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4) { return matrix(a0,0,0,0,0,0,a1,0,0,0,0,0,a2,0,0,0,0,0,a3,0,0,0,0,0,a4); } //! Return a NxN identity matrix. /** \param N Dimension of the matrix. **/ static CImg identity_matrix(const unsigned int N) { CImg res(N,N,1,1,0); cimg_forX(res,x) res(x,x) = 1; return res; } //! Return a N-numbered sequence vector from \p a0 to \p a1. /** \param N Size of the resulting vector. \param a0 Starting value of the sequence. \param a1 Ending value of the sequence. **/ static CImg sequence(const unsigned int N, const T a0, const T a1) { if (N) return CImg(1,N).sequence(a0,a1); return CImg(); } //! Return a 3x3 rotation matrix along the (x,y,z)-axis with an angle w. /** \param x X-coordinate of the rotation axis, or first quaternion coordinate. \param y Y-coordinate of the rotation axis, or second quaternion coordinate. \param z Z-coordinate of the rotation axis, or third quaternion coordinate. \param w Angle of the rotation axis, or fourth quaternion coordinate. \param is_quaternion Tell is the four arguments denotes a set { axis + angle } or a quaternion. **/ static CImg rotation_matrix(const float x, const float y, const float z, const float w, const bool is_quaternion=false) { float X,Y,Z,W; if (!is_quaternion) { const float norm = (float)std::sqrt(x*x + y*y + z*z), nx = norm>0?x/norm:0, ny = norm>0?y/norm:0, nz = norm>0?z/norm:1, nw = norm>0?w:0, sina = (float)std::sin(nw/2), cosa = (float)std::cos(nw/2); X = nx*sina; Y = ny*sina; Z = nz*sina; W = cosa; } else { const float norm = (float)std::sqrt(x*x + y*y + z*z + w*w); if (norm>0) { X = x/norm; Y = y/norm; Z = z/norm; W = w/norm; } else { X = Y = Z = 0; W = 1; } } const float xx = X*X, xy = X*Y, xz = X*Z, xw = X*W, yy = Y*Y, yz = Y*Z, yw = Y*W, zz = Z*Z, zw = Z*W; return CImg::matrix((T)(1-2*(yy+zz)), (T)(2*(xy+zw)), (T)(2*(xz-yw)), (T)(2*(xy-zw)), (T)(1-2*(xx+zz)), (T)(2*(yz+xw)), (T)(2*(xz+yw)), (T)(2*(yz-xw)), (T)(1-2*(xx+yy))); } //@} //----------------------------------- // //! \name Value Manipulation //@{ //----------------------------------- //! Fill all pixel values with specified value. /** \param val Fill value. **/ CImg& fill(const T val) { if (is_empty()) return *this; if (val && sizeof(T)!=1) cimg_for(*this,ptrd,T) *ptrd = val; else std::memset(_data,(int)val,sizeof(T)*size()); return *this; } //! Fill all pixel values with specified value \newinstance. CImg get_fill(const T val) const { return CImg(_width,_height,_depth,_spectrum).fill(val); } //! Fill sequentially all pixel values with specified values. /** \param val0 First fill value. \param val1 Second fill value. **/ CImg& fill(const T val0, const T val1) { if (is_empty()) return *this; T *ptrd, *ptre = end()-1; for (ptrd = _data; ptrd get_fill(const T val0, const T val1) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2) { if (is_empty()) return *this; T *ptrd, *ptre = end()-2; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3) { if (is_empty()) return *this; T *ptrd, *ptre = end()-3; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4) { if (is_empty()) return *this; T *ptrd, *ptre = end()-4; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5) { if (is_empty()) return *this; T *ptrd, *ptre = end()-5; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6) { if (is_empty()) return *this; T *ptrd, *ptre = end()-6; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7) { if (is_empty()) return *this; T *ptrd, *ptre = end()-7; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8) { if (is_empty()) return *this; T *ptrd, *ptre = end()-8; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9) { if (is_empty()) return *this; T *ptrd, *ptre = end()-9; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10) { if (is_empty()) return *this; T *ptrd, *ptre = end()-10; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11) { if (is_empty()) return *this; T *ptrd, *ptre = end()-11; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12) { if (is_empty()) return *this; T *ptrd, *ptre = end()-12; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13) { if (is_empty()) return *this; T *ptrd, *ptre = end()-13; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12, val13); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13, const T val14) { if (is_empty()) return *this; T *ptrd, *ptre = end()-14; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13, const T val14) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12, val13,val14); } //! Fill sequentially all pixel values with specified values \overloading. CImg& fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13, const T val14, const T val15) { if (is_empty()) return *this; T *ptrd, *ptre = end()-15; for (ptrd = _data; ptrd get_fill(const T val0, const T val1, const T val2, const T val3, const T val4, const T val5, const T val6, const T val7, const T val8, const T val9, const T val10, const T val11, const T val12, const T val13, const T val14, const T val15) const { return CImg(_width,_height,_depth,_spectrum).fill(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12, val13,val14,val15); } //! Fill sequentially pixel values according to a given expression. /** \param expression C-string describing a math formula, or a list of values. \param repeat_flag In case a list of values is provided, tells if this list must be repeated for the filling. **/ CImg& fill(const char *const expression, const bool repeat_flag) { if (is_empty() || !expression || !*expression) return *this; const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { // Try to fill values according to a formula. const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"fill"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) *(ptrd--) = (T)mp.eval((double)x,(double)y,(double)z,(double)c); else cimg_forXYZC(*this,x,y,z,c) *(ptrd++) = (T)mp.eval((double)x,(double)y,(double)z,(double)c); } catch (CImgException& e) { // If failed, try to recognize a list of values. char item[16384] = { 0 }, sep = 0; const char *nexpression = expression; unsigned long nb = 0; const unsigned long siz = size(); T *ptrd = _data; for (double val = 0; *nexpression && nb0 && std::sscanf(item,"%lf",&val)==1) { nexpression+=std::strlen(item) + (err>1?1:0); *(ptrd++) = (T)val; } else break; } cimg::exception_mode() = omode; if (nb get_fill(const char *const values, const bool repeat_values) const { return (+*this).fill(values,repeat_values); } //! Fill sequentially pixel values according to the values found in another image. /** \param values Image containing the values used for the filling. \param repeat_values In case there are less values than necessary in \c values, tells if these values must be repeated for the filling. **/ template CImg& fill(const CImg& values, const bool repeat_values=true) { if (is_empty() || !values) return *this; T *ptrd = _data, *ptre = ptrd + size(); for (t *ptrs = values._data, *ptrs_end = ptrs + values.size(); ptrs CImg get_fill(const CImg& values, const bool repeat_values=true) const { return repeat_values?CImg(_width,_height,_depth,_spectrum).fill(values,repeat_values):(+*this).fill(values,repeat_values); } //! Fill pixel values along the X-axis at a specified pixel position. /** \param y Y-coordinate of the filled column. \param z Z-coordinate of the filled column. \param c C-coordinate of the filled column. \param a0 First fill value. **/ CImg& fillX(const unsigned int y, const unsigned int z, const unsigned int c, const int a0, ...) { #define _cimg_fill1(x,y,z,c,off,siz,t) { \ va_list ap; va_start(ap,a0); T *ptrd = data(x,y,z,c); *ptrd = (T)a0; \ for (unsigned long k = 1; k& fillX(const unsigned int y, const unsigned int z, const unsigned int c, const double a0, ...) { if (y<_height && z<_depth && c<_spectrum) _cimg_fill1(0,y,z,c,1,_width,double); return *this; } //! Fill pixel values along the Y-axis at a specified pixel position. /** \param x X-coordinate of the filled row. \param z Z-coordinate of the filled row. \param c C-coordinate of the filled row. \param a0 First fill value. **/ CImg& fillY(const unsigned int x, const unsigned int z, const unsigned int c, const int a0, ...) { if (x<_width && z<_depth && c<_spectrum) _cimg_fill1(x,0,z,c,_width,_height,int); return *this; } //! Fill pixel values along the Y-axis at a specified pixel position \overloading. CImg& fillY(const unsigned int x, const unsigned int z, const unsigned int c, const double a0, ...) { if (x<_width && z<_depth && c<_spectrum) _cimg_fill1(x,0,z,c,_width,_height,double); return *this; } //! Fill pixel values along the Z-axis at a specified pixel position. /** \param x X-coordinate of the filled slice. \param y Y-coordinate of the filled slice. \param c C-coordinate of the filled slice. \param a0 First fill value. **/ CImg& fillZ(const unsigned int x, const unsigned int y, const unsigned int c, const int a0, ...) { const unsigned long wh = (unsigned long)_width*_height; if (x<_width && y<_height && c<_spectrum) _cimg_fill1(x,y,0,c,wh,_depth,int); return *this; } //! Fill pixel values along the Z-axis at a specified pixel position \overloading. CImg& fillZ(const unsigned int x, const unsigned int y, const unsigned int c, const double a0, ...) { const unsigned long wh = (unsigned long)_width*_height; if (x<_width && y<_height && c<_spectrum) _cimg_fill1(x,y,0,c,wh,_depth,double); return *this; } //! Fill pixel values along the C-axis at a specified pixel position. /** \param x X-coordinate of the filled channel. \param y Y-coordinate of the filled channel. \param z Z-coordinate of the filled channel. \param a0 First filling value. **/ CImg& fillC(const unsigned int x, const unsigned int y, const unsigned int z, const int a0, ...) { const unsigned long whd = (unsigned long)_width*_height*_depth; if (x<_width && y<_height && z<_depth) _cimg_fill1(x,y,z,0,whd,_spectrum,int); return *this; } //! Fill pixel values along the C-axis at a specified pixel position \overloading. CImg& fillC(const unsigned int x, const unsigned int y, const unsigned int z, const double a0, ...) { const unsigned long whd = (unsigned long)_width*_height*_depth; if (x<_width && y<_height && z<_depth) _cimg_fill1(x,y,z,0,whd,_spectrum,double); return *this; } //! Discard specified value in the image buffer. /** \param value Value to discard. \note Discarded values will change the image geometry, so the resulting image is returned as a one-column vector. **/ CImg& discard(const T value) { return get_discard(value).move_to(*this); } //! Discard specified value in the image buffer \newinstance. CImg get_discard(const T value) const { CImg res(1,size()); T *pd = res._data; for (const T *ps = _data, *const pse = end(); ps(); return res.resize(1,pd-res._data,1,1,-1); } //! Discard specified sequence of values in the image buffer. /** \param values Sequence of values to discard. \note Discarded values will change the image geometry, so the resulting image is returned as a one-column vector. **/ template CImg& discard(const CImg& values) { return get_discard(values).move_to(*this); } //! Discard specified sequence of values in the image buffer \newinstance. template CImg get_discard(const CImg& values) const { if (!values) return *this; if (values.size()==1) return get_discard(*values); CImg res(1,size()); T *pd = res._data; const t *const pve = values.end(); for (const T *ps = _data, *const pse = end(); ps(); return res.resize(1,pd-res._data,1,1,-1); } //! Invert endianness of all pixel values. /** **/ CImg& invert_endianness() { cimg::invert_endianness(_data,size()); return *this; } //! Invert endianness of all pixel values \newinstance. CImg get_invert_endianness() const { return (+*this).invert_endianness(); } //! Fill image with random values in specified range. /** \param val_min Minimal random value. \param val_max Maximal random value. \note Random samples are following a uniform distribution. **/ CImg& rand(const T val_min, const T val_max) { const float delta = (float)val_max - (float)val_min; cimg_for(*this,ptrd,T) *ptrd = (T)(val_min + cimg::rand()*delta); return *this; } //! Fill image with random values in specified range \newinstance. CImg get_rand(const T val_min, const T val_max) const { return (+*this).rand(val_min,val_max); } //! Round pixel values. /** \param y Rounding precision. \param rounding_type Rounding type. Can be: - \c -1: Backward. - \c 0: Nearest. - \c 1: Forward. **/ CImg& round(const double y=1, const int rounding_type=0) { if (y>0) cimg_for(*this,ptrd,T) *ptrd = cimg::round(*ptrd,y,rounding_type); return *this; } //! Round pixel values \newinstance. CImg get_round(const double y=1, const unsigned int rounding_type=0) const { return (+*this).round(y,rounding_type); } //! Add random noise to pixel values. /** \param sigma Amplitude of the random additive noise. If \p sigma<0, it stands for a percentage of the global value range. \param noise_type Type of additive noise (can be \p 0=gaussian, \p 1=uniform, \p 2=Salt and Pepper, \p 3=Poisson or \p 4=Rician). \return A reference to the modified image instance. \note - For Poisson noise (\p noise_type=3), parameter \p sigma is ignored, as Poisson noise only depends on the image value itself. - Function \p CImg::get_noise() is also defined. It returns a non-shared modified copy of the image instance. \par Example \code const CImg img("reference.jpg"), res = img.get_noise(40); (img,res.normalize(0,255)).display(); \endcode \image html ref_noise.jpg **/ CImg& noise(const double sigma, const unsigned int noise_type=0) { if (!is_empty()) { const Tfloat vmin = (Tfloat)cimg::type::min(), vmax = (Tfloat)cimg::type::max(); Tfloat nsigma = (Tfloat)sigma, m = 0, M = 0; if (nsigma==0 && noise_type!=3) return *this; if (nsigma<0 || noise_type==2) m = (Tfloat)min_max(M); if (nsigma<0) nsigma = (Tfloat)(-nsigma*(M-m)/100.0); switch (noise_type) { case 0 : { // Gaussian noise cimg_for(*this,ptrd,T) { Tfloat val = (Tfloat)(*ptrd + nsigma*cimg::grand()); if (val>vmax) val = vmax; if (valvmax) val = vmax; if (val::is_float()?1:cimg::type::max()); } cimg_for(*this,ptrd,T) if (cimg::rand()*100vmax) val = vmax; if (val get_noise(const double sigma, const unsigned int noise_type=0) const { return (+*this).noise(sigma,noise_type); } //! Linearly normalize pixel values. /** \param min_value Minimum desired value of the resulting image. \param max_value Maximum desired value of the resulting image. \par Example \code const CImg img("reference.jpg"), res = img.get_normalize(160,220); (img,res).display(); \endcode \image html ref_normalize2.jpg **/ CImg& normalize(const T min_value, const T max_value) { if (is_empty()) return *this; const T a = min_value get_normalize(const T min_value, const T max_value) const { return CImg(*this,false).normalize((Tfloat)min_value,(Tfloat)max_value); } //! Normalize multi-valued pixels of the image instance, with respect to their L2-norm. /** \par Example \code const CImg img("reference.jpg"), res = img.get_normalize(); (img,res.normalize(0,255)).display(); \endcode \image html ref_normalize.jpg **/ CImg& normalize() { T *ptrd = _data; const unsigned long whd = (unsigned long)_width*_height*_depth; cimg_forXYZ(*this,x,y,z) { const T *ptrs = ptrd; float n = 0; cimg_forC(*this,c) { n+=cimg::sqr((float)*ptrs); ptrs+=whd; } n = (float)std::sqrt(n); T *_ptrd = ptrd++; if (n>0) cimg_forC(*this,c) { *_ptrd = (T)(*_ptrd/n); _ptrd+=whd; } else cimg_forC(*this,c) { *_ptrd = (T)0; _ptrd+=whd; } } return *this; } //! Normalize multi-valued pixels of the image instance, with respect to their L2-norm \newinstance. CImg get_normalize() const { return CImg(*this,false).normalize(); } //! Compute L2-norm of each multi-valued pixel of the image instance. /** \param norm_type Type of computed vector norm (can be \p 0=Linf, \p 1=L1 or \p 2=L2). \par Example \code const CImg img("reference.jpg"), res = img.get_norm(); (img,res.normalize(0,255)).display(); \endcode \image html ref_norm.jpg **/ CImg& norm(const int norm_type=2) { if (_spectrum==1) return abs(); return get_norm(norm_type).move_to(*this); } //! Compute L2-norm of each multi-valued pixel of the image instance \newinstance. CImg get_norm(const int norm_type=2) const { if (is_empty()) return *this; if (_spectrum==1) return get_abs(); const T *ptrs = _data; const unsigned long whd = (unsigned long)_width*_height*_depth; CImg res(_width,_height,_depth); Tfloat *ptrd = res._data; switch (norm_type) { case -1 : { // Linf norm cimg_forXYZ(*this,x,y,z) { Tfloat n = 0; const T *_ptrs = ptrs++; cimg_forC(*this,c) { const Tfloat val = (Tfloat)cimg::abs(*_ptrs); if (val>n) n = val; _ptrs+=whd; } *(ptrd++) = n; } } break; case 1 : { // L1 norm cimg_forXYZ(*this,x,y,z) { Tfloat n = 0; const T *_ptrs = ptrs++; cimg_forC(*this,c) { n+=cimg::abs(*_ptrs); _ptrs+=whd; } *(ptrd++) = n; } } break; default : { // L2 norm cimg_forXYZ(*this,x,y,z) { Tfloat n = 0; const T *_ptrs = ptrs++; cimg_forC(*this,c) { n+=cimg::sqr((Tfloat)*_ptrs); _ptrs+=whd; } *(ptrd++) = (Tfloat)std::sqrt((Tfloat)n); } } } return res; } //! Cut pixel values in specified range. /** \param min_value Minimum desired value of the resulting image. \param max_value Maximum desired value of the resulting image. \par Example \code const CImg img("reference.jpg"), res = img.get_cut(160,220); (img,res).display(); \endcode \image html ref_cut.jpg **/ CImg& cut(const T min_value, const T max_value) { if (is_empty()) return *this; const T a = min_valueb)?b:*ptrd); return *this; } //! Cut pixel values in specified range \newinstance. CImg get_cut(const T min_value, const T max_value) const { return (+*this).cut(min_value,max_value); } //! Uniformly quantize pixel values. /** \param nb_levels Number of quantization levels. \param keep_range Tells if resulting values keep the same range as the original ones. \par Example \code const CImg img("reference.jpg"), res = img.get_quantize(4); (img,res).display(); \endcode \image html ref_quantize.jpg **/ CImg& quantize(const unsigned int nb_levels, const bool keep_range=true) { if (!nb_levels) throw CImgArgumentException(_cimg_instance "quantize(): Invalid quantization request with 0 values.", cimg_instance); if (is_empty()) return *this; Tfloat m, M = (Tfloat)max_min(m), range = M - m; if (range>0) { if (keep_range) cimg_for(*this,ptrd,T) { const unsigned int val = (unsigned int)((*ptrd-m)*nb_levels/range); *ptrd = (T)(m + cimg::min(val,nb_levels-1)*range/nb_levels); } else cimg_for(*this,ptrd,T) { const unsigned int val = (unsigned int)((*ptrd-m)*nb_levels/range); *ptrd = (T)cimg::min(val,nb_levels-1); } } return *this; } //! Uniformly quantize pixel values \newinstance. CImg get_quantize(const unsigned int n, const bool keep_range=true) const { return (+*this).quantize(n,keep_range); } //! Threshold pixel values. /** \param value Threshold value \param soft_threshold Tells if soft thresholding must be applied (instead of hard one). \param strict_threshold Tells if threshold value is strict. \par Example \code const CImg img("reference.jpg"), res = img.get_threshold(128); (img,res.normalize(0,255)).display(); \endcode \image html ref_threshold.jpg **/ CImg& threshold(const T value, const bool soft_threshold=false, const bool strict_threshold=false) { if (is_empty()) return *this; if (strict_threshold) { if (soft_threshold) cimg_for(*this,ptrd,T) { const T v = *ptrd; *ptrd = v>value?(T)(v-value):v<-(float)value?(T)(v+value):(T)0; } else cimg_for(*this,ptrd,T) *ptrd = *ptrd>value?(T)1:(T)0; } else { if (soft_threshold) cimg_for(*this,ptrd,T) { const T v = *ptrd; *ptrd = v>=value?(T)(v-value):v<=-(float)value?(T)(v+value):(T)0; } else cimg_for(*this,ptrd,T) *ptrd = *ptrd>=value?(T)1:(T)0; } return *this; } //! Threshold pixel values \newinstance. CImg get_threshold(const T value, const bool soft_threshold=false, const bool strict_threshold=false) const { return (+*this).threshold(value,soft_threshold,strict_threshold); } //! Compute the histogram of pixel values. /** \param nb_levels Number of desired histogram levels. \param min_value Minimum pixel value considered for the histogram computation. All pixel values lower than \p min_value will not be counted. \param max_value Maximum pixel value considered for the histogram computation. All pixel values higher than \p max_value will not be counted. \note - The histogram H of an image I is the 1d function where H(x) counts the number of occurences of the value x in the image I. - If \p min_value==max_value==0 (default behavior), the function first estimates the whole range of pixel values then uses it to compute the histogram. - The resulting histogram is always defined in 1d. Histograms of multi-valued images are not multi-dimensional. \par Example \code const CImg img = CImg("reference.jpg").histogram(256); img.display_graph(0,3); \endcode \image html ref_histogram.jpg **/ CImg& histogram(const unsigned int nb_levels, const T min_value=(T)0, const T max_value=(T)0) { return get_histogram(nb_levels,min_value,max_value).move_to(*this); } //! Compute the histogram of pixel values \newinstance. CImg get_histogram(const unsigned int nb_levels, const T min_value=(T)0, const T max_value=(T)0) const { if (!nb_levels || is_empty()) return CImg(); T vmin = min_value res(nb_levels,1,1,1,0); cimg_for(*this,ptrs,T) { const T val = *ptrs; if (val>=vmin && val<=vmax) ++res[val==vmax?nb_levels-1:(unsigned int)((val-vmin)*nb_levels/(vmax-vmin))]; } return res; } //! Equalize histogram of pixel values. /** \param nb_levels Number of histogram levels used for the equalization. \param min_value Minimum pixel value considered for the histogram computation. All pixel values lower than \p min_value will not be counted. \param max_value Maximum pixel value considered for the histogram computation. All pixel values higher than \p max_value will not be counted. \note - If \p min_value==max_value==0 (default behavior), the function first estimates the whole range of pixel values then uses it to equalize the histogram. \par Example \code const CImg img("reference.jpg"), res = img.get_equalize(256); (img,res).display(); \endcode \image html ref_equalize.jpg **/ CImg& equalize(const unsigned int nb_levels, const T min_value=(T)0, const T max_value=(T)0) { if (is_empty()) return *this; T vmin = min_value, vmax = max_value; if (vmin==vmax && vmin==0) vmin = min_max(vmax); if (vmin hist = get_histogram(nb_levels,vmin,vmax); unsigned long cumul = 0; cimg_forX(hist,pos) { cumul+=hist[pos]; hist[pos] = cumul; } cimg_for(*this,ptrd,T) { const int pos = (int)((*ptrd-vmin)*(nb_levels-1)/(vmax-vmin)); if (pos>=0 && pos<(int)nb_levels) *ptrd = (T)(vmin + (vmax-vmin)*hist[pos]/size()); } } return *this; } //! Equalize histogram of pixel values \newinstance. CImg get_equalize(const unsigned int nblevels, const T val_min=(T)0, const T val_max=(T)0) const { return (+*this).equalize(nblevels,val_min,val_max); } //! Index multi-valued pixels regarding to a specified colormap. /** \param colormap Multi-valued colormap used as the basis for multi-valued pixel indexing. \param dithering Level of dithering (0=disable, 1=standard level). \param map_indexes Tell if the values of the resulting image are the colormap indices or the colormap vectors. \note - \p img.index(colormap,dithering,1) is equivalent to img.index(colormap,dithering,0).map(colormap). \par Example \code const CImg img("reference.jpg"), colormap(3,1,1,3, 0,128,255, 0,128,255, 0,128,255); const CImg res = img.get_index(colormap,1,true); (img,res).display(); \endcode \image html ref_index.jpg **/ template CImg& index(const CImg& colormap, const float dithering=1, const bool map_indexes=false) { return get_index(colormap,dithering,map_indexes).move_to(*this); } //! Index multi-valued pixels regarding to a specified colormap \newinstance. template CImg::Tuint> get_index(const CImg& colormap, const float dithering=1, const bool map_indexes=true) const { if (colormap._spectrum!=_spectrum) throw CImgArgumentException(_cimg_instance "index(): Instance and specified colormap (%u,%u,%u,%u,%p) " "have incompatible dimensions.", cimg_instance, colormap._width,colormap._height,colormap._depth,colormap._spectrum,colormap._data); typedef typename CImg::Tuint tuint; if (is_empty()) return CImg(); const unsigned long whd = (unsigned long)_width*_height*_depth, pwhd = (unsigned long)colormap._width*colormap._height*colormap._depth; CImg res(_width,_height,_depth,map_indexes?_spectrum:1); tuint *ptrd = res._data; if (dithering>0) { // Dithered versions. const float ndithering = (dithering<0?0:dithering>1?1:dithering)/16; Tfloat valm = 0, valM = (Tfloat)max_min(valm); if (valm==valM && valm>=0 && valM<=255) { valm = 0; valM = 255; } CImg cache = get_crop(-1,0,0,0,_width,1,0,_spectrum-1); Tfloat *cache_current = cache.data(1,0,0,0), *cache_next = cache.data(1,1,0,0); const unsigned long cwhd = (unsigned long)cache._width*cache._height*cache._depth; switch (_spectrum) { case 1 : { // Optimized for scalars. cimg_forYZ(*this,y,z) { if (yvalM?valM:_val0; Tfloat distmin = cimg::type::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp_end = ptrp0 + pwhd; ptrp0valM?valM:_val0, _val1 = (Tfloat)*ptrs1, val1 = _val1valM?valM:_val1; Tfloat distmin = cimg::type::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp_end = ptrp1; ptrp0valM?valM:_val0, _val1 = (Tfloat)*ptrs1, val1 = _val1valM?valM:_val1, _val2 = (Tfloat)*ptrs2, val2 = _val2valM?valM:_val2; Tfloat distmin = cimg::type::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp2 = ptrp1 + pwhd, *ptrp_end = ptrp1; ptrp0::max(); const t *ptrmin = colormap._data; for (const t *ptrp = colormap._data, *ptrp_end = ptrp + pwhd; ptrpvalM?valM:_val; dist+=cimg::sqr((*_ptrs=val) - (Tfloat)*_ptrp); _ptrs+=cwhd; _ptrp+=pwhd; } if (dist::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp_end = ptrp0 + pwhd; ptrp0::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp_end = ptrp1; ptrp0::max(); const t *ptrmin0 = colormap._data; for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp2 = ptrp1 + pwhd, *ptrp_end = ptrp1; ptrp0::max(); const t *ptrmin = colormap._data; for (const t *ptrp = colormap._data, *ptrp_end = ptrp + pwhd; ptrp img("reference.jpg"), colormap1(3,1,1,3, 0,128,255, 0,128,255, 0,128,255), colormap2(3,1,1,3, 255,0,0, 0,255,0, 0,0,255), res = img.get_index(colormap1,0).map(colormap2); (img,res).display(); \endcode \image html ref_map.jpg **/ template CImg& map(const CImg& colormap) { return get_map(colormap).move_to(*this); } //! Map predefined colormap on the scalar (indexed) image instance \newinstance. template CImg get_map(const CImg& colormap) const { if (_spectrum!=1 && colormap._spectrum!=1) throw CImgArgumentException(_cimg_instance "map(): Instance and specified colormap (%u,%u,%u,%u,%p) " "have incompatible dimensions.", cimg_instance, colormap._width,colormap._height,colormap._depth,colormap._spectrum,colormap._data); const unsigned long whd = (unsigned long)_width*_height*_depth, pwhd = (unsigned long)colormap._width*colormap._height*colormap._depth; CImg res(_width,_height,_depth,colormap._spectrum==1?_spectrum:colormap._spectrum); switch (colormap._spectrum) { case 1 : { // Optimized for scalars. const T *ptrs = _data; cimg_for(res,ptrd,t) { const unsigned long _ind = (unsigned long)*(ptrs++), ind = _ind& label(const bool is_high_connectivity=false, const Tfloat tolerance=0) { return get_label(is_high_connectivity,tolerance).move_to(*this); } //! Label connected components \newinstance. CImg get_label(const bool is_high_connectivity=false, const Tfloat tolerance=0) const { if (is_empty()) return CImg(); // Create neighborhood tables. int dx[13], dy[13], dz[13], nb = 0; dx[nb]=1; dy[nb] = 0; dz[nb++]=0; dx[nb]=0; dy[nb] = 1; dz[nb++]=0; if (is_high_connectivity) { dx[nb]=1; dy[nb] = 1; dz[nb++]=0; dx[nb]=1; dy[nb] = -1; dz[nb++]=0; } if (_depth>1) { // 3d version. dx[nb]=0; dy[nb] = 0; dz[nb++]=1; if (is_high_connectivity) { dx[nb]=1; dy[nb] = 1; dz[nb++]=-1; dx[nb]=1; dy[nb] = 0; dz[nb++]=-1; dx[nb]=1; dy[nb] = -1; dz[nb++]=-1; dx[nb]=0; dy[nb] = 1; dz[nb++]=-1; dx[nb]=0; dy[nb] = 1; dz[nb++]=1; dx[nb]=1; dy[nb] = -1; dz[nb++]=1; dx[nb]=1; dy[nb] = 0; dz[nb++]=1; dx[nb]=1; dy[nb] = 1; dz[nb++]=1; } } return _get_label(nb,dx,dy,dz,tolerance); } //! Label connected components \overloading. /** \param connectivity_mask Mask of the neighboring pixels. \param tolerance Tolerance used to determine if two neighboring pixels belong to the same region. **/ template CImg& label(const CImg& connectivity_mask, const Tfloat tolerance=0) { return get_label(connectivity_mask,tolerance).move_to(*this); } //! Label connected components \newinstance. template CImg get_label(const CImg& connectivity_mask, const Tfloat tolerance=0) const { int nb = 0; cimg_for(connectivity_mask,ptr,t) if (*ptr) ++nb; CImg dx(nb,1,1,1,0), dy(nb,1,1,1,0), dz(nb,1,1,1,0); nb = 0; cimg_forXYZ(connectivity_mask,x,y,z) if ((x || y || z) && connectivity_mask(x,y,z)) { dx[nb] = x; dy[nb] = y; dz[nb++] = z; } return _get_label(nb,dx,dy,dz,tolerance); } CImg _get_label(const unsigned int nb, const int *const dx, const int *const dy, const int *const dz, const Tfloat tolerance) const { CImg res(_width,_height,_depth,_spectrum); cimg_forC(*this,c) { CImg _res = res.get_shared_channel(c); // Init label numbers. unsigned long *ptr = _res.data(); cimg_foroff(_res,p) *(ptr++) = p; // For each neighbour-direction, label. for (unsigned int n = 0; n& _system_strescape() { #define cimg_system_strescape(c,s) case c : if (p!=ptrs) CImg(ptrs,p-ptrs,1,1,1,false).move_to(list); \ CImg(s,std::strlen(s),1,1,1,false).move_to(list); ptrs = p+1; break CImgList list; const T *ptrs = _data; cimg_for(*this,p,T) switch ((int)*p) { cimg_system_strescape('\\',"\\\\"); cimg_system_strescape('\"',"\\\""); cimg_system_strescape('!',"\"\\!\""); cimg_system_strescape('`',"\\`"); cimg_system_strescape('$',"\\$"); } if (ptrs(ptrs,end()-ptrs,1,1,1,false).move_to(list); return (list>'x').move_to(*this); } //@} //--------------------------------- // //! \name Color Base Management //@{ //--------------------------------- //! Return colormap \e "default", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_default.jpg **/ static const CImg& default_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { colormap.assign(1,256,1,3); for (unsigned int index = 0, r = 16; r<256; r+=32) for (unsigned int g = 16; g<256; g+=32) for (unsigned int b = 32; b<256; b+=64) { colormap(0,index,0) = (Tuchar)r; colormap(0,index,1) = (Tuchar)g; colormap(0,index++,2) = (Tuchar)b; } } cimg::mutex(8,0); return colormap; } //! Return colormap \e "HSV", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_hsv.jpg **/ static const CImg& HSV_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { CImg tmp(1,256,1,3,1); tmp.get_shared_channel(0).sequence(0,359); colormap = tmp.HSVtoRGB(); } cimg::mutex(8,0); return colormap; } //! Return colormap \e "lines", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_lines.jpg **/ static const CImg& lines_LUT256() { static const unsigned char pal[] = { 217,62,88,75,1,237,240,12,56,160,165,116,1,1,204,2,15,248,148,185,133,141,46,246,222,116,16,5,207,226, 17,114,247,1,214,53,238,0,95,55,233,235,109,0,17,54,33,0,90,30,3,0,94,27,19,0,68,212,166,130,0,15,7,119, 238,2,246,198,0,3,16,10,13,2,25,28,12,6,2,99,18,141,30,4,3,140,12,4,30,233,7,10,0,136,35,160,168,184,20, 233,0,1,242,83,90,56,180,44,41,0,6,19,207,5,31,214,4,35,153,180,75,21,76,16,202,218,22,17,2,136,71,74, 81,251,244,148,222,17,0,234,24,0,200,16,239,15,225,102,230,186,58,230,110,12,0,7,129,249,22,241,37,219, 1,3,254,210,3,212,113,131,197,162,123,252,90,96,209,60,0,17,0,180,249,12,112,165,43,27,229,77,40,195,12, 87,1,210,148,47,80,5,9,1,137,2,40,57,205,244,40,8,252,98,0,40,43,206,31,187,0,180,1,69,70,227,131,108,0, 223,94,228,35,248,243,4,16,0,34,24,2,9,35,73,91,12,199,51,1,249,12,103,131,20,224,2,70,32, 233,1,165,3,8,154,246,233,196,5,0,6,183,227,247,195,208,36,0,0,226,160,210,198,69,153,210,1,23,8,192,2,4, 137,1,0,52,2,249,241,129,0,0,234,7,238,71,7,32,15,157,157,252,158,2,250,6,13,30,11,162,0,199,21,11,27,224, 4,157,20,181,111,187,218,3,0,11,158,230,196,34,223,22,248,135,254,210,157,219,0,117,239,3,255,4,227,5,247, 11,4,3,188,111,11,105,195,2,0,14,1,21,219,192,0,183,191,113,241,1,12,17,248,0,48,7,19,1,254,212,0,239,246, 0,23,0,250,165,194,194,17,3,253,0,24,6,0,141,167,221,24,212,2,235,243,0,0,205,1,251,133,204,28,4,6,1,10, 141,21,74,12,236,254,228,19,1,0,214,1,186,13,13,6,13,16,27,209,6,216,11,207,251,59,32,9,155,23,19,235,143, 116,6,213,6,75,159,23,6,0,228,4,10,245,249,1,7,44,234,4,102,174,0,19,239,103,16,15,18,8,214,22,4,47,244, 255,8,0,251,173,1,212,252,250,251,252,6,0,29,29,222,233,246,5,149,0,182,180,13,151,0,203,183,0,35,149,0, 235,246,254,78,9,17,203,73,11,195,0,3,5,44,0,0,237,5,106,6,130,16,214,20,168,247,168,4,207,11,5,1,232,251, 129,210,116,231,217,223,214,27,45,38,4,177,186,249,7,215,172,16,214,27,249,230,236,2,34,216,217,0,175,30, 243,225,244,182,20,212,2,226,21,255,20,0,2,13,62,13,191,14,76,64,20,121,4,118,0,216,1,147,0,2,210,1,215, 95,210,236,225,184,46,0,248,24,11,1,9,141,250,243,9,221,233,160,11,147,2,55,8,23,12,253,9,0,54,0,231,6,3, 141,8,2,246,9,180,5,11,8,227,8,43,110,242,1,130,5,97,36,10,6,219,86,133,11,108,6,1,5,244,67,19,28,0,174, 154,16,127,149,252,188,196,196,228,244,9,249,0,0,0,37,170,32,250,0,73,255,23,3,224,234,38,195,198,0,255,87, 33,221,174,31,3,0,189,228,6,153,14,144,14,108,197,0,9,206,245,254,3,16,253,178,248,0,95,125,8,0,3,168,21, 23,168,19,50,240,244,185,0,1,144,10,168,31,82,1,13 }; static const CImg colormap(pal,1,256,1,3,false); return colormap; } //! Return colormap \e "hot", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_hot.jpg **/ static const CImg& hot_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { colormap.assign(1,4,1,3,0); colormap[1] = colormap[2] = colormap[3] = colormap[6] = colormap[7] = colormap[11] = 255; colormap.resize(1,256,1,3,3); } cimg::mutex(8,0); return colormap; } //! Return colormap \e "cool", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_cool.jpg **/ static const CImg& cool_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) colormap.assign(1,2,1,3).fill(0,255,255,0,255,255).resize(1,256,1,3,3); cimg::mutex(8,0); return colormap; } //! Return colormap \e "jet", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_jet.jpg **/ static const CImg& jet_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { colormap.assign(1,4,1,3,0); colormap[2] = colormap[3] = colormap[5] = colormap[6] = colormap[8] = colormap[9] = 255; colormap.resize(1,256,1,3,3); } cimg::mutex(8,0); return colormap; } //! Return colormap \e "flag", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_flag.jpg **/ static const CImg& flag_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { colormap.assign(1,4,1,3,0); colormap[0] = colormap[1] = colormap[5] = colormap[9] = colormap[10] = 255; colormap.resize(1,256,1,3,0,2); } cimg::mutex(8,0); return colormap; } //! Return colormap \e "cube", containing 256 colors entries in RGB. /** \return The following \c 256x1x1x3 colormap is returned: \image html ref_colormap_cube.jpg **/ static const CImg& cube_LUT256() { static CImg colormap; cimg::mutex(8); if (!colormap) { colormap.assign(1,8,1,3,0); colormap[1] = colormap[3] = colormap[5] = colormap[7] = colormap[10] = colormap[11] = colormap[12] = colormap[13] = colormap[20] = colormap[21] = colormap[22] = colormap[23] = 255; colormap.resize(1,256,1,3,3); } cimg::mutex(8,0); return colormap; } //! Convert pixel values from sRGB to RGB color spaces. CImg& sRGBtoRGB() { cimg_for(*this,ptr,T) { const Tfloat sval = (Tfloat)*ptr, nsval = (sval<0?0:sval>255?255:sval)/255, val = (Tfloat)(nsval<=0.04045f?nsval/12.92f:std::pow((nsval+0.055f)/(1.055f),2.4f)); *ptr = (T)(val*255); } return *this; } //! Convert pixel values from sRGB to RGB color spaces \newinstance. CImg get_sRGBtoRGB() const { return CImg(*this,false).sRGBtoRGB(); } //! Convert pixel values from RGB to sRGB color spaces. CImg& RGBtosRGB() { cimg_for(*this,ptr,T) { const Tfloat val = (Tfloat)*ptr, nval = (val<0?0:val>255?255:val)/255, sval = (Tfloat)(nval<=0.0031308f?nval*12.92f:1.055f*std::pow(nval,0.416667f)-0.055f); *ptr = (T)(sval*255); } return *this; } //! Convert pixel values from RGB to sRGB color spaces \newinstance. CImg get_RGBtosRGB() const { return CImg(*this,false).RGBtosRGB(); } //! Convert pixel values from RGB to HSV color spaces. CImg& RGBtoHSV() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoHSV(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1, G = (Tfloat)*p2, B = (Tfloat)*p3, nR = (R<0?0:(R>255?255:R))/255, nG = (G<0?0:(G>255?255:G))/255, nB = (B<0?0:(B>255?255:B))/255, m = cimg::min(nR,nG,nB), M = cimg::max(nR,nG,nB); Tfloat H = 0, S = 0; if (M!=m) { const Tfloat f = (nR==m)?(nG-nB):((nG==m)?(nB-nR):(nR-nG)), i = (Tfloat)((nR==m)?3:((nG==m)?5:1)); H = (i-f/(M-m)); if (H>=6) H-=6; H*=60; S = (M-m)/M; } *(p1++) = (T)H; *(p2++) = (T)S; *(p3++) = (T)M; } return *this; } //! Convert pixel values from RGB to HSV color spaces \newinstance. CImg get_RGBtoHSV() const { return CImg(*this,false).RGBtoHSV(); } //! Convert pixel values from HSV to RGB color spaces. CImg& HSVtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "HSVtoRGB(): Instance is not a HSV image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { Tfloat H = (Tfloat)*p1, S = (Tfloat)*p2, V = (Tfloat)*p3, R = 0, G = 0, B = 0; if (H==0 && S==0) R = G = B = V; else { H/=60; const int i = (int)std::floor(H); const Tfloat f = (i&1)?(H - i):(1 - H + i), m = V*(1 - S), n = V*(1 - S*f); switch (i) { case 6 : case 0 : R = V; G = n; B = m; break; case 1 : R = n; G = V; B = m; break; case 2 : R = m; G = V; B = n; break; case 3 : R = m; G = n; B = V; break; case 4 : R = n; G = m; B = V; break; case 5 : R = V; G = m; B = n; break; } } R*=255; G*=255; B*=255; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from HSV to RGB color spaces \newinstance. CImg get_HSVtoRGB() const { return CImg(*this,false).HSVtoRGB(); } //! Convert pixel values from RGB to HSL color spaces. CImg& RGBtoHSL() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoHSL(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1, G = (Tfloat)*p2, B = (Tfloat)*p3, nR = (R<0?0:(R>255?255:R))/255, nG = (G<0?0:(G>255?255:G))/255, nB = (B<0?0:(B>255?255:B))/255, m = cimg::min(nR,nG,nB), M = cimg::max(nR,nG,nB), L = (m + M)/2; Tfloat H = 0, S = 0; if (M==m) H = S = 0; else { const Tfloat f = (nR==m)?(nG-nB):((nG==m)?(nB-nR):(nR-nG)), i = (nR==m)?3.0f:((nG==m)?5.0f:1.0f); H = (i-f/(M-m)); if (H>=6) H-=6; H*=60; S = (2*L<=1)?((M-m)/(M+m)):((M-m)/(2-M-m)); } *(p1++) = (T)H; *(p2++) = (T)S; *(p3++) = (T)L; } return *this; } //! Convert pixel values from RGB to HSL color spaces \newinstance. CImg get_RGBtoHSL() const { return CImg< Tfloat>(*this,false).RGBtoHSL(); } //! Convert pixel values from HSL to RGB color spaces. CImg& HSLtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "HSLtoRGB(): Instance is not a HSL image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat H = (Tfloat)*p1, S = (Tfloat)*p2, L = (Tfloat)*p3, q = 2*L<1?L*(1+S):(L+S-L*S), p = 2*L-q, h = H/360, tr = h + 1.0f/3, tg = h, tb = h - 1.0f/3, ntr = tr<0?tr+1:(tr>1?tr-1:tr), ntg = tg<0?tg+1:(tg>1?tg-1:tg), ntb = tb<0?tb+1:(tb>1?tb-1:tb), R = 255*(6*ntr<1?p+(q-p)*6*ntr:(2*ntr<1?q:(3*ntr<2?p+(q-p)*6*(2.0f/3-ntr):p))), G = 255*(6*ntg<1?p+(q-p)*6*ntg:(2*ntg<1?q:(3*ntg<2?p+(q-p)*6*(2.0f/3-ntg):p))), B = 255*(6*ntb<1?p+(q-p)*6*ntb:(2*ntb<1?q:(3*ntb<2?p+(q-p)*6*(2.0f/3-ntb):p))); *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from HSL to RGB color spaces \newinstance. CImg get_HSLtoRGB() const { return CImg(*this,false).HSLtoRGB(); } //! Convert pixel values from RGB to HSI color spaces. CImg& RGBtoHSI() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoHSI(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1, G = (Tfloat)*p2, B = (Tfloat)*p3, nR = (R<0?0:(R>255?255:R))/255, nG = (G<0?0:(G>255?255:G))/255, nB = (B<0?0:(B>255?255:B))/255, m = cimg::min(nR,nG,nB), theta = (Tfloat)(std::acos(0.5f*((nR-nG)+(nR-nB))/std::sqrt(std::pow(nR-nG,2)+(nR-nB)*(nG-nB)))*180/cimg::PI), sum = nR + nG + nB; Tfloat H = 0, S = 0, I = 0; if (theta>0) H = (nB<=nG)?theta:360-theta; if (sum>0) S = 1 - 3/sum*m; I = sum/3; *(p1++) = (T)H; *(p2++) = (T)S; *(p3++) = (T)I; } return *this; } //! Convert pixel values from RGB to HSI color spaces \newinstance. CImg get_RGBtoHSI() const { return CImg(*this,false).RGBtoHSI(); } //! Convert pixel values from HSI to RGB color spaces. CImg& HSItoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "HSItoRGB(): Instance is not a HSI image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { Tfloat H = (Tfloat)*p1, S = (Tfloat)*p2, I = (Tfloat)*p3, a = I*(1-S), R = 0, G = 0, B = 0; if (H<120) { B = a; R = (Tfloat)(I*(1+S*std::cos(H*cimg::PI/180)/std::cos((60-H)*cimg::PI/180))); G = 3*I-(R+B); } else if (H<240) { H-=120; R = a; G = (Tfloat)(I*(1+S*std::cos(H*cimg::PI/180)/std::cos((60-H)*cimg::PI/180))); B = 3*I-(R+G); } else { H-=240; G = a; B = (Tfloat)(I*(1+S*std::cos(H*cimg::PI/180)/std::cos((60-H)*cimg::PI/180))); R = 3*I-(G+B); } R*=255; G*=255; B*=255; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from HSI to RGB color spaces \newinstance. CImg get_HSItoRGB() const { return CImg< Tuchar>(*this,false).HSItoRGB(); } //! Convert pixel values from RGB to YCbCr color spaces. CImg& RGBtoYCbCr() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoYCbCr(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1, G = (Tfloat)*p2, B = (Tfloat)*p3, Y = (66*R + 129*G + 25*B + 128)/256 + 16, Cb = (-38*R - 74*G + 112*B + 128)/256 + 128, Cr = (112*R - 94*G - 18*B + 128)/256 + 128; *(p1++) = (T)(Y<0?0:(Y>255?255:Y)); *(p2++) = (T)(Cb<0?0:(Cb>255?255:Cb)); *(p3++) = (T)(Cr<0?0:(Cr>255?255:Cr)); } return *this; } //! Convert pixel values from RGB to YCbCr color spaces \newinstance. CImg get_RGBtoYCbCr() const { return CImg(*this,false).RGBtoYCbCr(); } //! Convert pixel values from RGB to YCbCr color spaces. CImg& YCbCrtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "YCbCrtoRGB(): Instance is not a YCbCr image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat Y = (Tfloat)*p1 - 16, Cb = (Tfloat)*p2 - 128, Cr = (Tfloat)*p3 - 128, R = (298*Y + 409*Cr + 128)/256, G = (298*Y - 100*Cb - 208*Cr + 128)/256, B = (298*Y + 516*Cb + 128)/256; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from RGB to YCbCr color spaces \newinstance. CImg get_YCbCrtoRGB() const { return CImg(*this,false).YCbCrtoRGB(); } //! Convert pixel values from RGB to YUV color spaces. CImg& RGBtoYUV() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoYUV(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1/255, G = (Tfloat)*p2/255, B = (Tfloat)*p3/255, Y = 0.299f*R + 0.587f*G + 0.114f*B; *(p1++) = (T)Y; *(p2++) = (T)(0.492f*(B-Y)); *(p3++) = (T)(0.877*(R-Y)); } return *this; } //! Convert pixel values from RGB to YUV color spaces \newinstance. CImg get_RGBtoYUV() const { return CImg(*this,false).RGBtoYUV(); } //! Convert pixel values from YUV to RGB color spaces. CImg& YUVtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "YUVtoRGB(): Instance is not a YUV image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat Y = (Tfloat)*p1, U = (Tfloat)*p2, V = (Tfloat)*p3, R = (Y + 1.140f*V)*255, G = (Y - 0.395f*U - 0.581f*V)*255, B = (Y + 2.032f*U)*255; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from YUV to RGB color spaces \newinstance. CImg get_YUVtoRGB() const { return CImg< Tuchar>(*this,false).YUVtoRGB(); } //! Convert pixel values from RGB to CMY color spaces. CImg& RGBtoCMY() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoCMY(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1, G = (Tfloat)*p2, B = (Tfloat)*p3, C = 255 - R, M = 255 - G, Y = 255 - B; *(p1++) = (T)(C<0?0:(C>255?255:C)); *(p2++) = (T)(M<0?0:(M>255?255:M)); *(p3++) = (T)(Y<0?0:(Y>255?255:Y)); } return *this; } //! Convert pixel values from RGB to CMY color spaces \newinstance. CImg get_RGBtoCMY() const { return CImg(*this,false).RGBtoCMY(); } //! Convert pixel values from CMY to RGB color spaces. CImg& CMYtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "CMYtoRGB(): Instance is not a CMY image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat C = (Tfloat)*p1, M = (Tfloat)*p2, Y = (Tfloat)*p3, R = 255 - C, G = 255 - M, B = 255 - Y; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from CMY to RGB color spaces \newinstance. CImg get_CMYtoRGB() const { return CImg(*this,false).CMYtoRGB(); } //! Convert pixel values from CMY to CMYK color spaces. CImg& CMYtoCMYK() { return get_CMYtoCMYK().move_to(*this); } //! Convert pixel values from CMY to CMYK color spaces \newinstance. CImg get_CMYtoCMYK() const { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "CMYtoCMYK(): Instance is not a CMY image.", cimg_instance); CImg res(_width,_height,_depth,4); const T *ps1 = data(0,0,0,0), *ps2 = data(0,0,0,1), *ps3 = data(0,0,0,2); Tfloat *pd1 = res.data(0,0,0,0), *pd2 = res.data(0,0,0,1), *pd3 = res.data(0,0,0,2), *pd4 = res.data(0,0,0,3); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { Tfloat C = (Tfloat)*(ps1++), M = (Tfloat)*(ps2++), Y = (Tfloat)*(ps3++), K = cimg::min(C,M,Y); if (K>=255) C = M = Y = 0; else { const Tfloat K1 = 255 - K; C = 255*(C - K)/K1; M = 255*(M - K)/K1; Y = 255*(Y - K)/K1; } *(pd1++) = (Tfloat)(C<0?0:(C>255?255:C)); *(pd2++) = (Tfloat)(M<0?0:(M>255?255:M)); *(pd3++) = (Tfloat)(Y<0?0:(Y>255?255:Y)); *(pd4++) = (Tfloat)(K<0?0:(K>255?255:K)); } return res; } //! Convert pixel values from CMYK to CMY color spaces. CImg& CMYKtoCMY() { return get_CMYKtoCMY().move_to(*this); } //! Convert pixel values from CMYK to CMY color spaces \newinstance. CImg get_CMYKtoCMY() const { if (_spectrum!=4) throw CImgInstanceException(_cimg_instance "CMYKtoCMY(): Instance is not a CMYK image.", cimg_instance); CImg res(_width,_height,_depth,3); const T *ps1 = data(0,0,0,0), *ps2 = data(0,0,0,1), *ps3 = data(0,0,0,2), *ps4 = data(0,0,0,3); Tfloat *pd1 = res.data(0,0,0,0), *pd2 = res.data(0,0,0,1), *pd3 = res.data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat C = (Tfloat)*(ps1++), M = (Tfloat)*(ps2++), Y = (Tfloat)*(ps3++), K = (Tfloat)*(ps4++), K1 = 1 - K/255, nC = C*K1 + K, nM = M*K1 + K, nY = Y*K1 + K; *(pd1++) = (Tfloat)(nC<0?0:(nC>255?255:nC)); *(pd2++) = (Tfloat)(nM<0?0:(nM>255?255:nM)); *(pd3++) = (Tfloat)(nY<0?0:(nY>255?255:nY)); } return res; } //! Convert pixel values from RGB to XYZ_709 color spaces. /** \note Uses the standard D65 white point. **/ CImg& RGBtoXYZ() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoXYZ(): Instance is not a RGB image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat R = (Tfloat)*p1/255, G = (Tfloat)*p2/255, B = (Tfloat)*p3/255; *(p1++) = (T)(0.412453f*R + 0.357580f*G + 0.180423f*B); *(p2++) = (T)(0.212671f*R + 0.715160f*G + 0.072169f*B); *(p3++) = (T)(0.019334f*R + 0.119193f*G + 0.950227f*B); } return *this; } //! Convert pixel values from RGB to XYZ_709 color spaces \newinstance. CImg get_RGBtoXYZ() const { return CImg(*this,false).RGBtoXYZ(); } //! Convert pixel values from XYZ_709 to RGB color spaces. CImg& XYZtoRGB() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "XYZtoRGB(): Instance is not a XYZ image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat X = (Tfloat)*p1*255, Y = (Tfloat)*p2*255, Z = (Tfloat)*p3*255, R = 3.240479f*X - 1.537150f*Y - 0.498535f*Z, G = -0.969256f*X + 1.875992f*Y + 0.041556f*Z, B = 0.055648f*X - 0.204043f*Y + 1.057311f*Z; *(p1++) = (T)(R<0?0:(R>255?255:R)); *(p2++) = (T)(G<0?0:(G>255?255:G)); *(p3++) = (T)(B<0?0:(B>255?255:B)); } return *this; } //! Convert pixel values from XYZ_709 to RGB color spaces \newinstance. CImg get_XYZtoRGB() const { return CImg(*this,false).XYZtoRGB(); } //! Convert pixel values from XYZ_709 to Lab color spaces. CImg& XYZtoLab() { #define _cimg_Labf(x) ((x)>=0.008856f?(std::pow(x,(Tfloat)1/3)):(7.787f*(x)+16.0f/116)) if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "XYZtoLab(): Instance is not a XYZ image.", cimg_instance); const Tfloat Xn = (Tfloat)(0.412453f + 0.357580f + 0.180423f), Yn = (Tfloat)(0.212671f + 0.715160f + 0.072169f), Zn = (Tfloat)(0.019334f + 0.119193f + 0.950227f); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat X = (Tfloat)*p1, Y = (Tfloat)*p2, Z = (Tfloat)*p3, XXn = X/Xn, YYn = Y/Yn, ZZn = Z/Zn, fX = (Tfloat)_cimg_Labf(XXn), fY = (Tfloat)_cimg_Labf(YYn), fZ = (Tfloat)_cimg_Labf(ZZn); *(p1++) = (T)cimg::max(0.0f,116*fY - 16); *(p2++) = (T)(500*(fX - fY)); *(p3++) = (T)(200*(fY - fZ)); } return *this; } //! Convert pixel values from XYZ_709 to Lab color spaces \newinstance. CImg get_XYZtoLab() const { return CImg(*this,false).XYZtoLab(); } //! Convert pixel values from Lab to XYZ_709 color spaces. CImg& LabtoXYZ() { #define _cimg_Labfi(x) ((x)>=0.206893f?((x)*(x)*(x)):(((x)-16.0f/116)/7.787f)) if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "LabtoXYZ(): Instance is not a Lab image.", cimg_instance); const Tfloat Xn = (Tfloat)(0.412453f + 0.357580f + 0.180423f), Yn = (Tfloat)(0.212671f + 0.715160f + 0.072169f), Zn = (Tfloat)(0.019334f + 0.119193f + 0.950227f); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat L = (Tfloat)*p1, a = (Tfloat)*p2, b = (Tfloat)*p3, cY = (L + 16)/116, Y = (Tfloat)(Yn*_cimg_Labfi(cY)), pY = (Tfloat)std::pow(Y/Yn,(Tfloat)1/3), cX = a/500 + pY, X = Xn*cX*cX*cX, cZ = pY - b/200, Z = Zn*cZ*cZ*cZ; *(p1++) = (T)(X); *(p2++) = (T)(Y); *(p3++) = (T)(Z); } return *this; } //! Convert pixel values from Lab to XYZ_709 color spaces \newinstance. CImg get_LabtoXYZ() const { return CImg(*this,false).LabtoXYZ(); } //! Convert pixel values from XYZ_709 to xyY color spaces. CImg& XYZtoxyY() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "XYZtoxyY(): Instance is not a XYZ image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat X = (Tfloat)*p1, Y = (Tfloat)*p2, Z = (Tfloat)*p3, sum = (X+Y+Z), nsum = sum>0?sum:1; *(p1++) = (T)(X/nsum); *(p2++) = (T)(Y/nsum); *(p3++) = (T)Y; } return *this; } //! Convert pixel values from XYZ_709 to xyY color spaces \newinstance. CImg get_XYZtoxyY() const { return CImg(*this,false).XYZtoxyY(); } //! Convert pixel values from xyY pixels to XYZ_709 color spaces. CImg& xyYtoXYZ() { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "xyYtoXYZ(): Instance is not a xyY image.", cimg_instance); T *p1 = data(0,0,0,0), *p2 = data(0,0,0,1), *p3 = data(0,0,0,2); for (unsigned long N = (unsigned long)_width*_height*_depth; N; --N) { const Tfloat px = (Tfloat)*p1, py = (Tfloat)*p2, Y = (Tfloat)*p3, ny = py>0?py:1; *(p1++) = (T)(px*Y/ny); *(p2++) = (T)Y; *(p3++) = (T)((1-px-py)*Y/ny); } return *this; } //! Convert pixel values from xyY pixels to XYZ_709 color spaces \newinstance. CImg get_xyYtoXYZ() const { return CImg(*this,false).xyYtoXYZ(); } //! Convert pixel values from RGB to Lab color spaces. CImg& RGBtoLab() { return RGBtoXYZ().XYZtoLab(); } //! Convert pixel values from RGB to Lab color spaces \newinstance. CImg get_RGBtoLab() const { return CImg(*this,false).RGBtoLab(); } //! Convert pixel values from Lab to RGB color spaces. CImg& LabtoRGB() { return LabtoXYZ().XYZtoRGB(); } //! Convert pixel values from Lab to RGB color spaces \newinstance. CImg get_LabtoRGB() const { return CImg(*this,false).LabtoRGB(); } //! Convert pixel values from RGB to xyY color spaces. CImg& RGBtoxyY() { return RGBtoXYZ().XYZtoxyY(); } //! Convert pixel values from RGB to xyY color spaces \newinstance. CImg get_RGBtoxyY() const { return CImg(*this,false).RGBtoxyY(); } //! Convert pixel values from xyY to RGB color spaces. CImg& xyYtoRGB() { return xyYtoXYZ().XYZtoRGB(); } //! Convert pixel values from xyY to RGB color spaces \newinstance. CImg get_xyYtoRGB() const { return CImg(*this,false).xyYtoRGB(); } //! Convert pixel values from RGB to CMYK color spaces. CImg& RGBtoCMYK() { return RGBtoCMY().CMYtoCMYK(); } //! Convert pixel values from RGB to CMYK color spaces \newinstance. CImg get_RGBtoCMYK() const { return CImg(*this,false).RGBtoCMYK(); } //! Convert pixel values from CMYK to RGB color spaces. CImg& CMYKtoRGB() { return CMYKtoCMY().CMYtoRGB(); } //! Convert pixel values from CMYK to RGB color spaces \newinstance. CImg get_CMYKtoRGB() const { return CImg(*this,false).CMYKtoRGB(); } //! Convert RGB color image to a Bayer-coded scalar image. /** \note First (upper-left) pixel if the red component of the pixel color. **/ CImg& RGBtoBayer() { return get_RGBtoBayer().move_to(*this); } //! Convert RGB color image to a Bayer-coded scalar image \newinstance. CImg get_RGBtoBayer() const { if (_spectrum!=3) throw CImgInstanceException(_cimg_instance "RGBtoBayer(): Instance is not a RGB image.", cimg_instance); CImg res(_width,_height,_depth,1); const T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); T *ptrd = res._data; cimg_forXYZ(*this,x,y,z) { if (y%2) { if (x%2) *(ptrd++) = *ptr_b; else *(ptrd++) = *ptr_g; } else { if (x%2) *(ptrd++) = *ptr_g; else *(ptrd++) = *ptr_r; } ++ptr_r; ++ptr_g; ++ptr_b; } return res; } //! Convert Bayer-coded scalar image to a RGB color image. CImg& BayertoRGB(const unsigned int interpolation_type=3) { return get_BayertoRGB(interpolation_type).move_to(*this); } //! Convert Bayer-coded scalar image to a RGB color image \newinstance. CImg get_BayertoRGB(const unsigned int interpolation_type=3) const { if (_spectrum!=1) throw CImgInstanceException(_cimg_instance "BayertoRGB(): Instance is not a Bayer image.", cimg_instance); CImg res(_width,_height,_depth,3); CImg_3x3(I,T); Tuchar *ptr_r = res.data(0,0,0,0), *ptr_g = res.data(0,0,0,1), *ptr_b = res.data(0,0,0,2); switch (interpolation_type) { case 3 : { // Edge-directed CImg_3x3(R,T); CImg_3x3(G,T); CImg_3x3(B,T); cimg_forXYZ(*this,x,y,z) { const int _p1x = x?x-1:1, _p1y = y?y-1:1, _n1x = x=2) return 0; const float a = (float)cimg::PI*x, b = 0.5f*a; return (float)(x?std::sin(a)*std::sin(b)/(a*b):1); } //! Resize image to new dimensions. /** \param size_x Number of columns (new size along the X-axis). \param size_y Number of rows (new size along the Y-axis). \param size_z Number of slices (new size along the Z-axis). \param size_c Number of vector-channels (new size along the C-axis). \param interpolation_type Method of interpolation: - -1 = no interpolation: raw memory resizing. - 0 = no interpolation: additional space is filled according to \p boundary_conditions. - 1 = nearest-neighbor interpolation. - 2 = moving average interpolation. - 3 = linear interpolation. - 4 = grid interpolation. - 5 = cubic interpolation. - 6 = lanczos interpolation. \param boundary_conditions Border condition type. \param centering_x Set centering type (only if \p interpolation_type=0). \param centering_y Set centering type (only if \p interpolation_type=0). \param centering_z Set centering type (only if \p interpolation_type=0). \param centering_c Set centering type (only if \p interpolation_type=0). \note If pd[x,y,z,v]<0, it corresponds to a percentage of the original size (the default value is -100). **/ CImg& resize(const int size_x, const int size_y=-100, const int size_z=-100, const int size_c=-100, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) { if (!size_x || !size_y || !size_z || !size_c) return assign(); const unsigned int _sx = (unsigned int)(size_x<0?-size_x*width()/100:size_x), _sy = (unsigned int)(size_y<0?-size_y*height()/100:size_y), _sz = (unsigned int)(size_z<0?-size_z*depth()/100:size_z), _sc = (unsigned int)(size_c<0?-size_c*spectrum()/100:size_c), sx = _sx?_sx:1, sy = _sy?_sy:1, sz = _sz?_sz:1, sc = _sc?_sc:1; if (sx==_width && sy==_height && sz==_depth && sc==_spectrum) return *this; if (is_empty()) return assign(sx,sy,sz,sc,(T)0); if (interpolation_type==-1 && sx*sy*sz*sc==size()) { _width = sx; _height = sy; _depth = sz; _spectrum = sc; return *this; } return get_resize(sx,sy,sz,sc,interpolation_type,boundary_conditions,centering_x,centering_y,centering_z,centering_c).move_to(*this); } //! Resize image to new dimensions \newinstance. CImg get_resize(const int size_x, const int size_y = -100, const int size_z = -100, const int size_c = -100, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) const { if (centering_x<0 || centering_x>1 || centering_y<0 || centering_y>1 || centering_z<0 || centering_z>1 || centering_c<0 || centering_c>1) throw CImgArgumentException(_cimg_instance "resize(): Specified centering arguments (%g,%g,%g,%g) are outside range [0,1].", cimg_instance, centering_x,centering_y,centering_z,centering_c); if (!size_x || !size_y || !size_z || !size_c) return CImg(); const unsigned int _sx = (unsigned int)(size_x<0?-size_x*width()/100:size_x), _sy = (unsigned int)(size_y<0?-size_y*height()/100:size_y), _sz = (unsigned int)(size_z<0?-size_z*depth()/100:size_z), _sc = (unsigned int)(size_c<0?-size_c*spectrum()/100:size_c), sx = _sx?_sx:1, sy = _sy?_sy:1, sz = _sz?_sz:1, sc = _sc?_sc:1; if (sx==_width && sy==_height && sz==_depth && sc==_spectrum) return +*this; if (is_empty()) return CImg(sx,sy,sz,sc,0); CImg res; switch (interpolation_type) { // Raw resizing. // case -1 : std::memcpy(res.assign(sx,sy,sz,sc,0)._data,_data,sizeof(T)*cimg::min(size(),sx*sy*sz*sc)); break; // No interpolation. // case 0 : { const int xc = (int)(centering_x*((int)sx - width())), yc = (int)(centering_y*((int)sy - height())), zc = (int)(centering_z*((int)sz - depth())), cc = (int)(centering_c*((int)sc - spectrum())); switch (boundary_conditions) { case 2 : { // Cyclic borders. res.assign(sx,sy,sz,sc); const int x0 = ((int)xc%width()) - width(), y0 = ((int)yc%height()) - height(), z0 = ((int)zc%depth()) - depth(), c0 = ((int)cc%spectrum()) - spectrum(); for (int c = c0; c<(int)sc; c+=spectrum()) for (int z = z0; z<(int)sz; z+=depth()) for (int y = y0; y<(int)sy; y+=height()) for (int x = x0; x<(int)sx; x+=width()) res.draw_image(x,y,z,c,*this); } break; case 1 : { // Neumann borders. res.assign(sx,sy,sz,sc).draw_image(xc,yc,zc,cc,*this); CImg sprite; if (xc>0) { // X-backward res.get_crop(xc,yc,zc,cc,xc,yc+height()-1,zc+depth()-1,cc+spectrum()-1).move_to(sprite); for (int x = xc-1; x>=0; --x) res.draw_image(x,yc,zc,cc,sprite); } if (xc+width()<(int)sx) { // X-forward res.get_crop(xc+width()-1,yc,zc,cc,xc+width()-1,yc+height()-1,zc+depth()-1,cc+spectrum()-1).move_to(sprite); for (int x = xc+width(); x<(int)sx; ++x) res.draw_image(x,yc,zc,cc,sprite); } if (yc>0) { // Y-backward res.get_crop(0,yc,zc,cc,sx-1,yc,zc+depth()-1,cc+spectrum()-1).move_to(sprite); for (int y = yc-1; y>=0; --y) res.draw_image(0,y,zc,cc,sprite); } if (yc+height()<(int)sy) { // Y-forward res.get_crop(0,yc+height()-1,zc,cc,sx-1,yc+height()-1,zc+depth()-1,cc+spectrum()-1).move_to(sprite); for (int y = yc+height(); y<(int)sy; ++y) res.draw_image(0,y,zc,cc,sprite); } if (zc>0) { // Z-backward res.get_crop(0,0,zc,cc,sx-1,sy-1,zc,cc+spectrum()-1).move_to(sprite); for (int z = zc-1; z>=0; --z) res.draw_image(0,0,z,cc,sprite); } if (zc+depth()<(int)sz) { // Z-forward res.get_crop(0,0,zc+depth()-1,cc,sx-1,sy-1,zc+depth()-1,cc+spectrum()-1).move_to(sprite); for (int z = zc+depth(); z<(int)sz; ++z) res.draw_image(0,0,z,cc,sprite); } if (cc>0) { // C-backward res.get_crop(0,0,0,cc,sx-1,sy-1,sz-1,cc).move_to(sprite); for (int c = cc-1; c>=0; --c) res.draw_image(0,0,0,c,sprite); } if (cc+spectrum()<(int)sc) { // C-forward res.get_crop(0,0,0,cc+spectrum()-1,sx-1,sy-1,sz-1,cc+spectrum()-1).move_to(sprite); for (int c = cc+spectrum(); c<(int)sc; ++c) res.draw_image(0,0,0,c,sprite); } } break; default : // Dirichlet borders. res.assign(sx,sy,sz,sc,0).draw_image(xc,yc,zc,cc,*this); } break; } break; // Nearest neighbor interpolation. // case 1 : { res.assign(sx,sy,sz,sc); CImg off_x(sx), off_y(sy+1), off_z(sz+1), off_c(sc+1); unsigned long *poff_x, *poff_y, *poff_z, *poff_c, curr, old; const unsigned long wh = (unsigned long)_width*_height, whd = (unsigned long)_width*_height*_depth, sxy = (unsigned long)sx*sy, sxyz = (unsigned long)sx*sy*sz; if (sx==_width) off_x.fill(1); else { poff_x = off_x._data; curr = 0; cimg_forX(res,x) { old = curr; curr = ((x+1LU)*_width/sx); *(poff_x++) = curr - old; } } if (sy==_height) off_y.fill(_width); else { poff_y = off_y._data; curr = 0; cimg_forY(res,y) { old = curr; curr = ((y+1LU)*_height/sy); *(poff_y++) = _width*(curr - old); } *poff_y = 0; } if (sz==_depth) off_z.fill(wh); else { poff_z = off_z._data; curr = 0; cimg_forZ(res,z) { old = curr; curr = ((z+1LU)*_depth/sz); *(poff_z++) = wh*(curr - old); } *poff_z = 0; } if (sc==_spectrum) off_c.fill(whd); else { poff_c = off_c._data; curr = 0; cimg_forC(res,c) { old = curr; curr = ((c+1LU)*_spectrum/sc); *(poff_c++) = whd*(curr - old); } *poff_c = 0; } T *ptrd = res._data; const T* ptrv = _data; poff_c = off_c._data; for (unsigned int c = 0; c tmp(sx,_height,_depth,_spectrum,0); for (unsigned int a = _width*sx, b = _width, c = sx, s = 0, t = 0; a; ) { const unsigned int d = cimg::min(b,c); a-=d; b-=d; c-=d; cimg_forYZC(tmp,y,z,v) tmp(t,y,z,v)+=(Tfloat)(*this)(s,y,z,v)*d; if (!b) { cimg_forYZC(tmp,y,z,v) tmp(t,y,z,v)/=_width; ++t; b = _width; } if (!c) { ++s; c = sx; } } tmp.move_to(res); instance_first = false; } if (sy!=_height) { CImg tmp(sx,sy,_depth,_spectrum,0); for (unsigned int a = _height*sy, b = _height, c = sy, s = 0, t = 0; a; ) { const unsigned int d = cimg::min(b,c); a-=d; b-=d; c-=d; if (instance_first) cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)+=(Tfloat)(*this)(x,s,z,v)*d; else cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)+=(Tfloat)res(x,s,z,v)*d; if (!b) { cimg_forXZC(tmp,x,z,v) tmp(x,t,z,v)/=_height; ++t; b = _height; } if (!c) { ++s; c = sy; } } tmp.move_to(res); instance_first = false; } if (sz!=_depth) { CImg tmp(sx,sy,sz,_spectrum,0); for (unsigned int a = _depth*sz, b = _depth, c = sz, s = 0, t = 0; a; ) { const unsigned int d = cimg::min(b,c); a-=d; b-=d; c-=d; if (instance_first) cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)+=(Tfloat)(*this)(x,y,s,v)*d; else cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)+=(Tfloat)res(x,y,s,v)*d; if (!b) { cimg_forXYC(tmp,x,y,v) tmp(x,y,t,v)/=_depth; ++t; b = _depth; } if (!c) { ++s; c = sz; } } tmp.move_to(res); instance_first = false; } if (sc!=_spectrum) { CImg tmp(sx,sy,sz,sc,0); for (unsigned int a = _spectrum*sc, b = _spectrum, c = sc, s = 0, t = 0; a; ) { const unsigned int d = cimg::min(b,c); a-=d; b-=d; c-=d; if (instance_first) cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)+=(Tfloat)(*this)(x,y,z,s)*d; else cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)+=(Tfloat)res(x,y,z,s)*d; if (!b) { cimg_forXYZ(tmp,x,y,z) tmp(x,y,z,t)/=_spectrum; ++t; b = _spectrum; } if (!c) { ++s; c = sc; } } tmp.move_to(res); instance_first = false; } } break; // Linear interpolation. // case 3 : { CImg off(cimg::max(sx,sy,sz,sc)); CImg foff(off._width); unsigned int *poff; float *pfoff, old, curr; CImg resx, resy, resz, resc; T *ptrd; if (sx!=_width) { if (_width==1) get_resize(sx,_height,_depth,_spectrum,1).move_to(resx); else { if (_width>sx) get_resize(sx,_height,_depth,_spectrum,2).move_to(resx); else { const float fx = (!boundary_conditions && sx>_width)?(sx>1?(_width-1.0f)/(sx-1):0):(float)_width/sx; resx.assign(sx,_height,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forX(resx,x) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fx; *(poff++) = (unsigned int)curr - (unsigned int)old; } ptrd = resx._data; const T *ptrs0 = _data; cimg_forYZC(resx,y,z,c) { poff = off._data; pfoff = foff._data; const T *ptrs = ptrs0, *const ptrsmax = ptrs0 + (_width-1); cimg_forX(resx,x) { const float alpha = *(pfoff++); const T val1 = *ptrs, val2 = ptrssy) resx.get_resize(sx,sy,_depth,_spectrum,2).move_to(resy); else { const float fy = (!boundary_conditions && sy>_height)?(sy>1?(_height-1.0f)/(sy-1):0):(float)_height/sy; resy.assign(sx,sy,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fy; *(poff++) = sx*((unsigned int)curr-(unsigned int)old); } cimg_forXZC(resy,x,z,c) { ptrd = resy.data(x,0,z,c); const T *ptrs = resx.data(x,0,z,c), *const ptrsmax = ptrs + (_height-1)*sx; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { const float alpha = *(pfoff++); const T val1 = *ptrs, val2 = ptrssz) resy.get_resize(sx,sy,sz,_spectrum,2).move_to(resz); else { const float fz = (!boundary_conditions && sz>_depth)?(sz>1?(_depth-1.0f)/(sz-1):0):(float)_depth/sz; const unsigned int sxy = sx*sy; resz.assign(sx,sy,sz,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fz; *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } cimg_forXYC(resz,x,y,c) { ptrd = resz.data(x,y,0,c); const T *ptrs = resy.data(x,y,0,c), *const ptrsmax = ptrs + (_depth-1)*sxy; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { const float alpha = *(pfoff++); const T val1 = *ptrs, val2 = ptrssc) resz.get_resize(sx,sy,sz,sc,2).move_to(resc); else { const float fc = (!boundary_conditions && sc>_spectrum)?(sc>1?(_spectrum-1.0f)/(sc-1):0):(float)_spectrum/sc; const unsigned int sxyz = sx*sy*sz; resc.assign(sx,sy,sz,sc); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fc; *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } cimg_forXYZ(resc,x,y,z) { ptrd = resc.data(x,y,z,0); const T *ptrs = resz.data(x,y,z,0), *const ptrsmax = ptrs + (_spectrum-1)*sxyz; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { const float alpha = *(pfoff++); const T val1 = *ptrs, val2 = ptrs resx, resy, resz, resc; if (sx!=_width) { if (sx<_width) get_resize(sx,_height,_depth,_spectrum,1).move_to(resx); else { resx.assign(sx,_height,_depth,_spectrum,0); const int dx = sx*2, dy = width()*2; int err = (int)(dy + centering_x*(sx*dy/width() - dy)), xs = 0; cimg_forX(resx,x) if ((err-=dy)<=0) { cimg_forYZC(resx,y,z,c) resx(x,y,z,c) = (*this)(xs,y,z,c); ++xs; err+=dx; } } } else resx.assign(*this,true); if (sy!=_height) { if (sy<_height) resx.get_resize(sx,sy,_depth,_spectrum,1).move_to(resy); else { resy.assign(sx,sy,_depth,_spectrum,0); const int dx = sy*2, dy = height()*2; int err = (int)(dy + centering_y*(sy*dy/height() - dy)), ys = 0; cimg_forY(resy,y) if ((err-=dy)<=0) { cimg_forXZC(resy,x,z,c) resy(x,y,z,c) = resx(x,ys,z,c); ++ys; err+=dx; } } resx.assign(); } else resy.assign(resx,true); if (sz!=_depth) { if (sz<_depth) resy.get_resize(sx,sy,sz,_spectrum,1).move_to(resz); else { resz.assign(sx,sy,sz,_spectrum,0); const int dx = sz*2, dy = depth()*2; int err = (int)(dy + centering_z*(sz*dy/depth() - dy)), zs = 0; cimg_forZ(resz,z) if ((err-=dy)<=0) { cimg_forXYC(resz,x,y,c) resz(x,y,z,c) = resy(x,y,zs,c); ++zs; err+=dx; } } resy.assign(); } else resz.assign(resy,true); if (sc!=_spectrum) { if (sc<_spectrum) resz.get_resize(sx,sy,sz,sc,1).move_to(resc); else { resc.assign(sx,sy,sz,sc,0); const int dx = sc*2, dy = spectrum()*2; int err = (int)(dy + centering_c*(sc*dy/spectrum() - dy)), cs = 0; cimg_forC(resc,c) if ((err-=dy)<=0) { cimg_forXYZ(resc,x,y,z) resc(x,y,z,c) = resz(x,y,z,cs); ++cs; err+=dx; } } resz.assign(); } else resc.assign(resz,true); return resc._is_shared?(resz._is_shared?(resy._is_shared?(resx._is_shared?(+(*this)):resx):resy):resz):resc; } break; // Cubic interpolation. // case 5 : { const Tfloat vmin = (Tfloat)cimg::type::min(), vmax = (Tfloat)cimg::type::max(); CImg off(cimg::max(sx,sy,sz,sc)); CImg foff(off._width); unsigned int *poff; float *pfoff, old, curr; CImg resx, resy, resz, resc; T *ptrd; if (sx!=_width) { if (_width==1) get_resize(sx,_height,_depth,_spectrum,1).move_to(resx); else { if (_width>sx) get_resize(sx,_height,_depth,_spectrum,2).move_to(resx); else { const float fx = (!boundary_conditions && sx>_width)?(sx>1?(_width-1.0f)/(sx-1):0):(float)_width/sx; resx.assign(sx,_height,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forX(resx,x) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fx; *(poff++) = (unsigned int)curr - (unsigned int)old; } ptrd = resx._data; const T *ptrs0 = _data; cimg_forYZC(resx,y,z,c) { poff = off._data; pfoff = foff._data; const T *ptrs = ptrs0, *const ptrsmax = ptrs0 + (_width-2); cimg_forX(resx,x) { const float t = *(pfoff++); const Tfloat val1 = (Tfloat)*ptrs, val0 = ptrs>ptrs0?(Tfloat)*(ptrs-1):val1, val2 = ptrs<=ptrsmax?(Tfloat)*(ptrs+1):val1, val3 = ptrsvmax?vmax:val); ptrs+=*(poff++); } ptrs0+=_width; } } } } else resx.assign(*this,true); if (sy!=_height) { if (_height==1) resx.get_resize(sx,sy,_depth,_spectrum,1).move_to(resy); else { if (_height>sy) resx.get_resize(sx,sy,_depth,_spectrum,2).move_to(resy); else { const float fy = (!boundary_conditions && sy>_height)?(sy>1?(_height-1.0f)/(sy-1):0):(float)_height/sy; resy.assign(sx,sy,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fy; *(poff++) = sx*((unsigned int)curr-(unsigned int)old); } cimg_forXZC(resy,x,z,c) { ptrd = resy.data(x,0,z,c); const T *const ptrs0 = resx.data(x,0,z,c), *ptrs = ptrs0, *const ptrsmax = ptrs0 + (_height-2)*sx; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { const float t = *(pfoff++); const Tfloat val1 = (Tfloat)*ptrs, val0 = ptrs>ptrs0?(Tfloat)*(ptrs-sx):val1, val2 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sx):val1, val3 = ptrsvmax?vmax:val); ptrd+=sx; ptrs+=*(poff++); } } } } resx.assign(); } else resy.assign(resx,true); if (sz!=_depth) { if (_depth==1) resy.get_resize(sx,sy,sz,_spectrum,1).move_to(resz); else { if (_depth>sz) resy.get_resize(sx,sy,sz,_spectrum,2).move_to(resz); else { const float fz = (!boundary_conditions && sz>_depth)?(sz>1?(_depth-1.0f)/(sz-1):0):(float)_depth/sz; const unsigned int sxy = sx*sy; resz.assign(sx,sy,sz,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fz; *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } cimg_forXYC(resz,x,y,c) { ptrd = resz.data(x,y,0,c); const T *const ptrs0 = resy.data(x,y,0,c), *ptrs = ptrs0, *const ptrsmax = ptrs0 + (_depth-2)*sxy; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { const float t = *(pfoff++); const Tfloat val1 = (Tfloat)*ptrs, val0 = ptrs>ptrs0?(Tfloat)*(ptrs-sxy):val1, val2 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sxy):val1, val3 = ptrsvmax?vmax:val); ptrd+=sxy; ptrs+=*(poff++); } } } } resy.assign(); } else resz.assign(resy,true); if (sc!=_spectrum) { if (_spectrum==1) resz.get_resize(sx,sy,sz,sc,1).move_to(resc); else { if (_spectrum>sc) resz.get_resize(sx,sy,sz,sc,2).move_to(resc); else { const float fc = (!boundary_conditions && sc>_spectrum)?(sc>1?(_spectrum-1.0f)/(sc-1):0):(float)_spectrum/sc; const unsigned int sxyz = sx*sy*sz; resc.assign(sx,sy,sz,sc); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fc; *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } cimg_forXYZ(resc,x,y,z) { ptrd = resc.data(x,y,z,0); const T *const ptrs0 = resz.data(x,y,z,0), *ptrs = ptrs0, *const ptrsmax = ptrs + (_spectrum-2)*sxyz; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { const float t = *(pfoff++); const Tfloat val1 = (Tfloat)*ptrs, val0 = ptrs>ptrs0?(Tfloat)*(ptrs-sxyz):val1, val2 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sxyz):val1, val3 = ptrsvmax?vmax:val); ptrd+=sxyz; ptrs+=*(poff++); } } } } resz.assign(); } else resc.assign(resz,true); return resc._is_shared?(resz._is_shared?(resy._is_shared?(resx._is_shared?(+(*this)):resx):resy):resz):resc; } break; // Lanczos interpolation. // case 6 : { const Tfloat vmin = (Tfloat)cimg::type::min(), vmax = (Tfloat)cimg::type::max(); CImg off(cimg::max(sx,sy,sz,sc)); CImg foff(off._width); unsigned int *poff; float *pfoff, old, curr; CImg resx, resy, resz, resc; T *ptrd; if (sx!=_width) { if (_width==1) get_resize(sx,_height,_depth,_spectrum,1).move_to(resx); else { if (_width>sx) get_resize(sx,_height,_depth,_spectrum,2).move_to(resx); else { const float fx = (!boundary_conditions && sx>_width)?(sx>1?(_width-1.0f)/(sx-1):0):(float)_width/sx; resx.assign(sx,_height,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forX(resx,x) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fx; *(poff++) = (unsigned int)curr - (unsigned int)old; } ptrd = resx._data; const T *ptrs0 = _data; cimg_forYZC(resx,y,z,c) { poff = off._data; pfoff = foff._data; const T *ptrs = ptrs0, *const ptrsmin = ptrs0 + 1, *const ptrsmax = ptrs0 + (_width-2); cimg_forX(resx,x) { const float t = *(pfoff++), w0 = _cimg_lanczos(t+2), w1 = _cimg_lanczos(t+1), w2 = _cimg_lanczos(t), w3 = _cimg_lanczos(t-1), w4 = _cimg_lanczos(t-2); const Tfloat val2 = (Tfloat)*ptrs, val1 = ptrs>=ptrsmin?(Tfloat)*(ptrs-1):val2, val0 = ptrs>ptrsmin?(Tfloat)*(ptrs-2):val1, val3 = ptrs<=ptrsmax?(Tfloat)*(ptrs+1):val2, val4 = ptrsvmax?vmax:val); ptrs+=*(poff++); } ptrs0+=_width; } } } } else resx.assign(*this,true); if (sy!=_height) { if (_height==1) resx.get_resize(sx,sy,_depth,_spectrum,1).move_to(resy); else { if (_height>sy) resx.get_resize(sx,sy,_depth,_spectrum,2).move_to(resy); else { const float fy = (!boundary_conditions && sy>_height)?(sy>1?(_height-1.0f)/(sy-1):0):(float)_height/sy; resy.assign(sx,sy,_depth,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fy; *(poff++) = sx*((unsigned int)curr-(unsigned int)old); } cimg_forXZC(resy,x,z,c) { ptrd = resy.data(x,0,z,c); const T *const ptrs0 = resx.data(x,0,z,c), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sx, *const ptrsmax = ptrs0 + (_height-2)*sx; poff = off._data; pfoff = foff._data; cimg_forY(resy,y) { const float t = *(pfoff++), w0 = _cimg_lanczos(t+2), w1 = _cimg_lanczos(t+1), w2 = _cimg_lanczos(t), w3 = _cimg_lanczos(t-1), w4 = _cimg_lanczos(t-2); const Tfloat val2 = (Tfloat)*ptrs, val1 = ptrs>=ptrsmin?(Tfloat)*(ptrs-sx):val2, val0 = ptrs>ptrsmin?(Tfloat)*(ptrs-2*sx):val1, val3 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sx):val2, val4 = ptrsvmax?vmax:val); ptrd+=sx; ptrs+=*(poff++); } } } } resx.assign(); } else resy.assign(resx,true); if (sz!=_depth) { if (_depth==1) resy.get_resize(sx,sy,sz,_spectrum,1).move_to(resz); else { if (_depth>sz) resy.get_resize(sx,sy,sz,_spectrum,2).move_to(resz); else { const float fz = (!boundary_conditions && sz>_depth)?(sz>1?(_depth-1.0f)/(sz-1):0):(float)_depth/sz; const unsigned int sxy = sx*sy; resz.assign(sx,sy,sz,_spectrum); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fz; *(poff++) = sxy*((unsigned int)curr - (unsigned int)old); } cimg_forXYC(resz,x,y,c) { ptrd = resz.data(x,y,0,c); const T *const ptrs0 = resy.data(x,y,0,c), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sxy, *const ptrsmax = ptrs0 + (_depth-2)*sxy; poff = off._data; pfoff = foff._data; cimg_forZ(resz,z) { const float t = *(pfoff++), w0 = _cimg_lanczos(t+2), w1 = _cimg_lanczos(t+1), w2 = _cimg_lanczos(t), w3 = _cimg_lanczos(t-1), w4 = _cimg_lanczos(t-2); const Tfloat val2 = (Tfloat)*ptrs, val1 = ptrs>=ptrsmin?(Tfloat)*(ptrs-sxy):val2, val0 = ptrs>ptrsmin?(Tfloat)*(ptrs-2*sxy):val1, val3 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sxy):val2, val4 = ptrsvmax?vmax:val); ptrd+=sxy; ptrs+=*(poff++); } } } } resy.assign(); } else resz.assign(resy,true); if (sc!=_spectrum) { if (_spectrum==1) resz.get_resize(sx,sy,sz,sc,1).move_to(resc); else { if (_spectrum>sc) resz.get_resize(sx,sy,sz,sc,2).move_to(resc); else { const float fc = (!boundary_conditions && sc>_spectrum)?(sc>1?(_spectrum-1.0f)/(sc-1):0):(float)_spectrum/sc; const unsigned int sxyz = sx*sy*sz; resc.assign(sx,sy,sz,sc); curr = old = 0; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { *(pfoff++) = curr - (unsigned int)curr; old = curr; curr+=fc; *(poff++) = sxyz*((unsigned int)curr - (unsigned int)old); } cimg_forXYZ(resc,x,y,z) { ptrd = resc.data(x,y,z,0); const T *const ptrs0 = resz.data(x,y,z,0), *ptrs = ptrs0, *const ptrsmin = ptrs0 + sxyz, *const ptrsmax = ptrs + (_spectrum-2)*sxyz; poff = off._data; pfoff = foff._data; cimg_forC(resc,c) { const float t = *(pfoff++), w0 = _cimg_lanczos(t+2), w1 = _cimg_lanczos(t+1), w2 = _cimg_lanczos(t), w3 = _cimg_lanczos(t-1), w4 = _cimg_lanczos(t-2); const Tfloat val2 = (Tfloat)*ptrs, val1 = ptrs>=ptrsmin?(Tfloat)*(ptrs-sxyz):val2, val0 = ptrs>ptrsmin?(Tfloat)*(ptrs-2*sxyz):val1, val3 = ptrs<=ptrsmax?(Tfloat)*(ptrs+sxyz):val2, val4 = ptrsvmax?vmax:val); ptrd+=sxyz; ptrs+=*(poff++); } } } } resz.assign(); } else resc.assign(resz,true); return resc._is_shared?(resz._is_shared?(resy._is_shared?(resx._is_shared?(+(*this)):resx):resy):resz):resc; } break; // Unknow interpolation. // default : throw CImgArgumentException(_cimg_instance "resize(): Invalid specified interpolation %d " "(should be { -1=raw | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=cubic | 6=lanczos }).", cimg_instance, interpolation_type); } return res; } //! Resize image to dimensions of another image. /** \param src Reference image used for dimensions. \param interpolation_type Interpolation method. \param boundary_conditions Boundary conditions. \param centering_x Set centering type (only if \p interpolation_type=0). \param centering_y Set centering type (only if \p interpolation_type=0). \param centering_z Set centering type (only if \p interpolation_type=0). \param centering_c Set centering type (only if \p interpolation_type=0). **/ template CImg& resize(const CImg& src, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) { return resize(src._width,src._height,src._depth,src._spectrum,interpolation_type,boundary_conditions, centering_x,centering_y,centering_z,centering_c); } //! Resize image to dimensions of another image \newinstance. template CImg get_resize(const CImg& src, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) const { return get_resize(src._width,src._height,src._depth,src._spectrum,interpolation_type,boundary_conditions, centering_x,centering_y,centering_z,centering_c); } //! Resize image to dimensions of a display window. /** \param disp Reference display window used for dimensions. \param interpolation_type Interpolation method. \param boundary_conditions Boundary conditions. \param centering_x Set centering type (only if \p interpolation_type=0). \param centering_y Set centering type (only if \p interpolation_type=0). \param centering_z Set centering type (only if \p interpolation_type=0). \param centering_c Set centering type (only if \p interpolation_type=0). **/ CImg& resize(const CImgDisplay& disp, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) { return resize(disp.width(),disp.height(),_depth,_spectrum,interpolation_type,boundary_conditions, centering_x,centering_y,centering_z,centering_c); } //! Resize image to dimensions of a display window \newinstance. CImg get_resize(const CImgDisplay& disp, const int interpolation_type=1, const unsigned int boundary_conditions=0, const float centering_x = 0, const float centering_y = 0, const float centering_z = 0, const float centering_c = 0) const { return get_resize(disp.width(),disp.height(),_depth,_spectrum,interpolation_type,boundary_conditions, centering_x,centering_y,centering_z,centering_c); } //! Resize image to half-size along XY axes, using an optimized filter. CImg& resize_halfXY() { return get_resize_halfXY().move_to(*this); } //! Resize image to half-size along XY axes, using an optimized filter \newinstance. CImg get_resize_halfXY() const { if (is_empty()) return *this; const Tfloat mask[9] = { 0.07842776544f, 0.1231940459f, 0.07842776544f, 0.1231940459f, 0.1935127547f, 0.1231940459f, 0.07842776544f, 0.1231940459f, 0.07842776544f }; T I[9] = { 0 }; CImg res(_width/2,_height/2,_depth,_spectrum); T *ptrd = res._data; cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,T) if (x%2 && y%2) *(ptrd++) = (T) (I[0]*mask[0] + I[1]*mask[1] + I[2]*mask[2] + I[3]*mask[3] + I[4]*mask[4] + I[5]*mask[5] + I[6]*mask[6] + I[7]*mask[7] + I[8]*mask[8]); return res; } //! Resize image to double-size, using the Scale2X algorithm. /** \note Use anisotropic upscaling algorithm described here. **/ CImg& resize_doubleXY() { return get_resize_doubleXY().move_to(*this); } //! Resize image to double-size, using the Scale2X algorithm \newinstance. CImg get_resize_doubleXY() const { #define _cimg_gs2x_for3(bound,i) \ for (int i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1; \ _n1##i<(int)(bound) || i==--_n1##i; \ _p1##i = i++, ++_n1##i, ptrd1+=(res)._width, ptrd2+=(res)._width) #define _cimg_gs2x_for3x3(img,x,y,z,c,I,T) \ _cimg_gs2x_for3((img)._height,y) for (int x = 0, \ _p1##x = 0, \ _n1##x = (int)( \ (I[1] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[3] = I[4] = (T)(img)(0,y,z,c)), \ (I[7] = (T)(img)(0,_n1##y,z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x; \ I[1] = I[2], \ I[3] = I[4], I[4] = I[5], \ I[7] = I[8], \ _p1##x = x++, ++_n1##x) if (is_empty()) return *this; CImg res(_width<<1,_height<<1,_depth,_spectrum); CImg_3x3(I,T); cimg_forZC(*this,z,c) { T *ptrd1 = res.data(0,0,z,c), *ptrd2 = ptrd1 + res._width; _cimg_gs2x_for3x3(*this,x,y,z,c,I,T) { if (Icp!=Icn && Ipc!=Inc) { *(ptrd1++) = Ipc==Icp?Ipc:Icc; *(ptrd1++) = Icp==Inc?Inc:Icc; *(ptrd2++) = Ipc==Icn?Ipc:Icc; *(ptrd2++) = Icn==Inc?Inc:Icc; } else { *(ptrd1++) = Icc; *(ptrd1++) = Icc; *(ptrd2++) = Icc; *(ptrd2++) = Icc; } } } return res; } //! Resize image to triple-size, using the Scale3X algorithm. /** \note Use anisotropic upscaling algorithm described here. **/ CImg& resize_tripleXY() { return get_resize_tripleXY().move_to(*this); } //! Resize image to triple-size, using the Scale3X algorithm \newinstance. CImg get_resize_tripleXY() const { #define _cimg_gs3x_for3(bound,i) \ for (int i = 0, _p1##i = 0, \ _n1##i = 1>=(bound)?(int)(bound)-1:1; \ _n1##i<(int)(bound) || i==--_n1##i; \ _p1##i = i++, ++_n1##i, ptrd1+=2*(res)._width, ptrd2+=2*(res)._width, ptrd3+=2*(res)._width) #define _cimg_gs3x_for3x3(img,x,y,z,c,I,T) \ _cimg_gs3x_for3((img)._height,y) for (int x = 0, \ _p1##x = 0, \ _n1##x = (int)( \ (I[0] = I[1] = (T)(img)(_p1##x,_p1##y,z,c)), \ (I[3] = I[4] = (T)(img)(0,y,z,c)), \ (I[6] = I[7] = (T)(img)(0,_n1##y,z,c)), \ 1>=(img)._width?(img).width()-1:1); \ (_n1##x<(img).width() && ( \ (I[2] = (T)(img)(_n1##x,_p1##y,z,c)), \ (I[5] = (T)(img)(_n1##x,y,z,c)), \ (I[8] = (T)(img)(_n1##x,_n1##y,z,c)),1)) || \ x==--_n1##x; \ I[0] = I[1], I[1] = I[2], \ I[3] = I[4], I[4] = I[5], \ I[6] = I[7], I[7] = I[8], \ _p1##x = x++, ++_n1##x) if (is_empty()) return *this; CImg res(3*_width,3*_height,_depth,_spectrum); CImg_3x3(I,T); cimg_forZC(*this,z,c) { T *ptrd1 = res.data(0,0,z,c), *ptrd2 = ptrd1 + res._width, *ptrd3 = ptrd2 + res._width; _cimg_gs3x_for3x3(*this,x,y,z,c,I,T) { if (Icp != Icn && Ipc != Inc) { *(ptrd1++) = Ipc==Icp?Ipc:Icc; *(ptrd1++) = (Ipc==Icp && Icc!=Inp) || (Icp==Inc && Icc!=Ipp)?Icp:Icc; *(ptrd1++) = Icp==Inc?Inc:Icc; *(ptrd2++) = (Ipc==Icp && Icc!=Ipn) || (Ipc==Icn && Icc!=Ipp)?Ipc:Icc; *(ptrd2++) = Icc; *(ptrd2++) = (Icp==Inc && Icc!=Inn) || (Icn==Inc && Icc!=Inp)?Inc:Icc; *(ptrd3++) = Ipc==Icn?Ipc:Icc; *(ptrd3++) = (Ipc==Icn && Icc!=Inn) || (Icn==Inc && Icc!=Ipn)?Icn:Icc; *(ptrd3++) = Icn==Inc?Inc:Icc; } else { *(ptrd1++) = Icc; *(ptrd1++) = Icc; *(ptrd1++) = Icc; *(ptrd2++) = Icc; *(ptrd2++) = Icc; *(ptrd2++) = Icc; *(ptrd3++) = Icc; *(ptrd3++) = Icc; *(ptrd3++) = Icc; } } } return res; } //! Mirror image content along specified axis. /** \param axis Mirror axis **/ CImg& mirror(const char axis) { if (is_empty()) return *this; T *pf, *pb, *buf = 0; switch (cimg::uncase(axis)) { case 'x' : { pf = _data; pb = data(_width-1); const unsigned int width2 = _width/2; for (unsigned int yzv = 0; yzv<_height*_depth*_spectrum; ++yzv) { for (unsigned int x = 0; x get_mirror(const char axis) const { return (+*this).mirror(axis); } //! Mirror image content along specified axes. /** \param axes Mirror axes, as a C-string. \note \c axes may contains multiple character, e.g. \c "xyz" **/ CImg& mirror(const char *const axes) { for (const char *s = axes; *s; s++) mirror(*s); return *this; } //! Mirror image content along specified axes \newinstance. CImg get_mirror(const char *const axes) const { return (+*this).mirror(axes); } //! Shift image content. /** \param delta_x Amount of displacement along the X-axis. \param delta_y Amount of displacement along the Y-axis. \param delta_z Amount of displacement along the Z-axis. \param delta_c Amount of displacement along the C-axis. \param boundary_conditions Border condition. - \c boundary_conditions can be: - 0: Zero border condition (Dirichlet). - 1: Nearest neighbors (Neumann). - 2: Repeat Pattern (Fourier style). **/ CImg& shift(const int delta_x, const int delta_y=0, const int delta_z=0, const int delta_c=0, const int boundary_conditions=0) { if (is_empty()) return *this; if (delta_x) // Shift along X-axis switch (boundary_conditions) { case 0 : if (cimg::abs(delta_x)>=width()) return fill(0); if (delta_x<0) cimg_forYZC(*this,y,z,c) { std::memmove(data(0,y,z,c),data(-delta_x,y,z,c),(_width+delta_x)*sizeof(T)); std::memset(data(_width+delta_x,y,z,c),0,-delta_x*sizeof(T)); } else cimg_forYZC(*this,y,z,c) { std::memmove(data(delta_x,y,z,c),data(0,y,z,c),(_width-delta_x)*sizeof(T)); std::memset(data(0,y,z,c),0,delta_x*sizeof(T)); } break; case 1 : if (delta_x<0) { const int ndelta_x = (-delta_x>=width())?width()-1:-delta_x; if (!ndelta_x) return *this; cimg_forYZC(*this,y,z,c) { std::memmove(data(0,y,z,c),data(ndelta_x,y,z,c),(_width-ndelta_x)*sizeof(T)); T *ptrd = data(_width-1,y,z,c); const T val = *ptrd; for (int l = 0; l=width())?width()-1:delta_x; if (!ndelta_x) return *this; cimg_forYZC(*this,y,z,c) { std::memmove(data(ndelta_x,y,z,c),data(0,y,z,c),(_width-ndelta_x)*sizeof(T)); T *ptrd = data(0,y,z,c); const T val = *ptrd; for (int l = 0; l0) cimg_forYZC(*this,y,z,c) { std::memcpy(buf,data(0,y,z,c),ndelta_x*sizeof(T)); std::memmove(data(0,y,z,c),data(ndelta_x,y,z,c),(_width-ndelta_x)*sizeof(T)); std::memcpy(data(_width-ndelta_x,y,z,c),buf,ndelta_x*sizeof(T)); } else cimg_forYZC(*this,y,z,c) { std::memcpy(buf,data(_width+ndelta_x,y,z,c),-ndelta_x*sizeof(T)); std::memmove(data(-ndelta_x,y,z,c),data(0,y,z,c),(_width+ndelta_x)*sizeof(T)); std::memcpy(data(0,y,z,c),buf,-ndelta_x*sizeof(T)); } delete[] buf; } } if (delta_y) // Shift along Y-axis switch (boundary_conditions) { case 0 : if (cimg::abs(delta_y)>=height()) return fill(0); if (delta_y<0) cimg_forZC(*this,z,c) { std::memmove(data(0,0,z,c),data(0,-delta_y,z,c),_width*(_height+delta_y)*sizeof(T)); std::memset(data(0,_height+delta_y,z,c),0,-delta_y*_width*sizeof(T)); } else cimg_forZC(*this,z,c) { std::memmove(data(0,delta_y,z,c),data(0,0,z,c),_width*(_height-delta_y)*sizeof(T)); std::memset(data(0,0,z,c),0,delta_y*_width*sizeof(T)); } break; case 1 : if (delta_y<0) { const int ndelta_y = (-delta_y>=height())?height()-1:-delta_y; if (!ndelta_y) return *this; cimg_forZC(*this,z,c) { std::memmove(data(0,0,z,c),data(0,ndelta_y,z,c),_width*(_height-ndelta_y)*sizeof(T)); T *ptrd = data(0,_height-ndelta_y,z,c), *ptrs = data(0,_height-1,z,c); for (int l = 0; l=height())?height()-1:delta_y; if (!ndelta_y) return *this; cimg_forZC(*this,z,c) { std::memmove(data(0,ndelta_y,z,c),data(0,0,z,c),_width*(_height-ndelta_y)*sizeof(T)); T *ptrd = data(0,1,z,c), *ptrs = data(0,0,z,c); for (int l = 0; l0) cimg_forZC(*this,z,c) { std::memcpy(buf,data(0,0,z,c),_width*ndelta_y*sizeof(T)); std::memmove(data(0,0,z,c),data(0,ndelta_y,z,c),_width*(_height-ndelta_y)*sizeof(T)); std::memcpy(data(0,_height-ndelta_y,z,c),buf,_width*ndelta_y*sizeof(T)); } else cimg_forZC(*this,z,c) { std::memcpy(buf,data(0,_height+ndelta_y,z,c),-ndelta_y*_width*sizeof(T)); std::memmove(data(0,-ndelta_y,z,c),data(0,0,z,c),_width*(_height+ndelta_y)*sizeof(T)); std::memcpy(data(0,0,z,c),buf,-ndelta_y*_width*sizeof(T)); } delete[] buf; } } if (delta_z) // Shift along Z-axis switch (boundary_conditions) { case 0 : if (cimg::abs(delta_z)>=depth()) return fill(0); if (delta_z<0) cimg_forC(*this,c) { std::memmove(data(0,0,0,c),data(0,0,-delta_z,c),_width*_height*(_depth+delta_z)*sizeof(T)); std::memset(data(0,0,_depth+delta_z,c),0,_width*_height*(-delta_z)*sizeof(T)); } else cimg_forC(*this,c) { std::memmove(data(0,0,delta_z,c),data(0,0,0,c),_width*_height*(_depth-delta_z)*sizeof(T)); std::memset(data(0,0,0,c),0,delta_z*_width*_height*sizeof(T)); } break; case 1 : if (delta_z<0) { const int ndelta_z = (-delta_z>=depth())?depth()-1:-delta_z; if (!ndelta_z) return *this; cimg_forC(*this,c) { std::memmove(data(0,0,0,c),data(0,0,ndelta_z,c),_width*_height*(_depth-ndelta_z)*sizeof(T)); T *ptrd = data(0,0,_depth-ndelta_z,c), *ptrs = data(0,0,_depth-1,c); for (int l = 0; l=depth())?depth()-1:delta_z; if (!ndelta_z) return *this; cimg_forC(*this,c) { std::memmove(data(0,0,ndelta_z,c),data(0,0,0,c),_width*_height*(_depth-ndelta_z)*sizeof(T)); T *ptrd = data(0,0,1,c), *ptrs = data(0,0,0,c); for (int l = 0; l0) cimg_forC(*this,c) { std::memcpy(buf,data(0,0,0,c),_width*_height*ndelta_z*sizeof(T)); std::memmove(data(0,0,0,c),data(0,0,ndelta_z,c),_width*_height*(_depth-ndelta_z)*sizeof(T)); std::memcpy(data(0,0,_depth-ndelta_z,c),buf,_width*_height*ndelta_z*sizeof(T)); } else cimg_forC(*this,c) { std::memcpy(buf,data(0,0,_depth+ndelta_z,c),-ndelta_z*_width*_height*sizeof(T)); std::memmove(data(0,0,-ndelta_z,c),data(0,0,0,c),_width*_height*(_depth+ndelta_z)*sizeof(T)); std::memcpy(data(0,0,0,c),buf,-ndelta_z*_width*_height*sizeof(T)); } delete[] buf; } } if (delta_c) // Shift along C-axis switch (boundary_conditions) { case 0 : if (cimg::abs(delta_c)>=spectrum()) return fill(0); if (delta_c<0) { std::memmove(_data,data(0,0,0,-delta_c),_width*_height*_depth*(_spectrum+delta_c)*sizeof(T)); std::memset(data(0,0,0,_spectrum+delta_c),0,_width*_height*_depth*(-delta_c)*sizeof(T)); } else { std::memmove(data(0,0,0,delta_c),_data,_width*_height*_depth*(_spectrum-delta_c)*sizeof(T)); std::memset(_data,0,delta_c*_width*_height*_depth*sizeof(T)); } break; case 1 : if (delta_c<0) { const int ndelta_c = (-delta_c>=spectrum())?spectrum()-1:-delta_c; if (!ndelta_c) return *this; std::memmove(_data,data(0,0,0,ndelta_c),_width*_height*_depth*(_spectrum-ndelta_c)*sizeof(T)); T *ptrd = data(0,0,0,_spectrum-ndelta_c), *ptrs = data(0,0,0,_spectrum-1); for (int l = 0; l=spectrum())?spectrum()-1:delta_c; if (!ndelta_c) return *this; std::memmove(data(0,0,0,ndelta_c),_data,_width*_height*_depth*(_spectrum-ndelta_c)*sizeof(T)); T *ptrd = data(0,0,0,1); for (int l = 0; l0) { std::memcpy(buf,_data,_width*_height*_depth*ndelta_c*sizeof(T)); std::memmove(_data,data(0,0,0,ndelta_c),_width*_height*_depth*(_spectrum-ndelta_c)*sizeof(T)); std::memcpy(data(0,0,0,_spectrum-ndelta_c),buf,_width*_height*_depth*ndelta_c*sizeof(T)); } else { std::memcpy(buf,data(0,0,0,_spectrum+ndelta_c),-ndelta_c*_width*_height*_depth*sizeof(T)); std::memmove(data(0,0,0,-ndelta_c),_data,_width*_height*_depth*(_spectrum+ndelta_c)*sizeof(T)); std::memcpy(_data,buf,-ndelta_c*_width*_height*_depth*sizeof(T)); } delete[] buf; } } return *this; } //! Shift image content \newinstance. CImg get_shift(const int delta_x, const int delta_y=0, const int delta_z=0, const int delta_c=0, const int boundary_conditions=0) const { return (+*this).shift(delta_x,delta_y,delta_z,delta_c,boundary_conditions); } //! Permute axes order. /** \param order Axes permutations, as a C-string of 4 characters. This function permutes image content regarding the specified axes permutation. **/ CImg& permute_axes(const char *const order) { return get_permute_axes(order).move_to(*this); } //! Permute axes order \newinstance. CImg get_permute_axes(const char *const order) const { const T foo = (T)0; return _get_permute_axes(order,foo); } template CImg _get_permute_axes(const char *const permut, const t&) const { if (is_empty() || !permut) return CImg(*this,false); CImg res; const T* ptrs = _data; if (!cimg::strncasecmp(permut,"xyzc",4)) return +*this; if (!cimg::strncasecmp(permut,"xycz",4)) { res.assign(_width,_height,_spectrum,_depth); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(x,y,c,z,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"xzyc",4)) { res.assign(_width,_depth,_height,_spectrum); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(x,z,y,c,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"xzcy",4)) { res.assign(_width,_depth,_spectrum,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(x,z,c,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"xcyz",4)) { res.assign(_width,_spectrum,_height,_depth); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(x,c,y,z,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"xczy",4)) { res.assign(_width,_spectrum,_depth,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(x,c,z,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"yxzc",4)) { res.assign(_height,_width,_depth,_spectrum); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,x,z,c,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"yxcz",4)) { res.assign(_height,_width,_spectrum,_depth); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,x,c,z,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"yzxc",4)) { res.assign(_height,_depth,_width,_spectrum); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,z,x,c,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"yzcx",4)) { res.assign(_height,_depth,_spectrum,_width); switch (_width) { case 1 : { t *ptr_r = res.data(0,0,0,0); for (unsigned int siz = _height*_depth*_spectrum; siz; --siz) { *(ptr_r++) = (t)*(ptrs++); } } break; case 2 : { t *ptr_r = res.data(0,0,0,0), *ptr_g = res.data(0,0,0,1); for (unsigned int siz = _height*_depth*_spectrum; siz; --siz) { *(ptr_r++) = (t)*(ptrs++); *(ptr_g++) = (t)*(ptrs++); } } break; case 3 : { // Optimization for the classical conversion from interleaved RGB to planar RGB t *ptr_r = res.data(0,0,0,0), *ptr_g = res.data(0,0,0,1), *ptr_b = res.data(0,0,0,2); for (unsigned int siz = _height*_depth*_spectrum; siz; --siz) { *(ptr_r++) = (t)*(ptrs++); *(ptr_g++) = (t)*(ptrs++); *(ptr_b++) = (t)*(ptrs++); } } break; case 4 : { // Optimization for the classical conversion from interleaved RGBA to planar RGBA t *ptr_r = res.data(0,0,0,0), *ptr_g = res.data(0,0,0,1), *ptr_b = res.data(0,0,0,2), *ptr_a = res.data(0,0,0,3); for (unsigned int siz = _height*_depth*_spectrum; siz; --siz) { *(ptr_r++) = (t)*(ptrs++); *(ptr_g++) = (t)*(ptrs++); *(ptr_b++) = (t)*(ptrs++); *(ptr_a++) = (t)*(ptrs++); } } break; default : { const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,z,c,x,wh,whd) = *(ptrs++); return res; } } } if (!cimg::strncasecmp(permut,"ycxz",4)) { res.assign(_height,_spectrum,_width,_depth); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,c,x,z,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"yczx",4)) { res.assign(_height,_spectrum,_depth,_width); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(y,c,z,x,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zxyc",4)) { res.assign(_depth,_width,_height,_spectrum); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,x,y,c,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zxcy",4)) { res.assign(_depth,_width,_spectrum,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,x,c,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zyxc",4)) { res.assign(_depth,_height,_width,_spectrum); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,y,x,c,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zycx",4)) { res.assign(_depth,_height,_spectrum,_width); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,y,c,x,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zcxy",4)) { res.assign(_depth,_spectrum,_width,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,c,x,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"zcyx",4)) { res.assign(_depth,_spectrum,_height,_width); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(z,c,y,x,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"cxyz",4)) { res.assign(_spectrum,_width,_height,_depth); switch (_spectrum) { case 1 : { const T *ptr_r = data(0,0,0,0); t *ptrd = res._data; for (unsigned long siz = (unsigned long)_width*_height*_depth; siz; --siz) *(ptrd++) = (t)*(ptr_r++); } break; case 2 : { const T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1); t *ptrd = res._data; for (unsigned long siz = (unsigned long)_width*_height*_depth; siz; --siz) { *(ptrd++) = (t)*(ptr_r++); *(ptrd++) = (t)*(ptr_g++); } } break; case 3 : { // Optimization for the classical conversion from planar RGB to interleaved RGB const T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); t *ptrd = res._data; for (unsigned long siz = (unsigned long)_width*_height*_depth; siz; --siz) { *(ptrd++) = (t)*(ptr_r++); *(ptrd++) = (t)*(ptr_g++); *(ptrd++) = (t)*(ptr_b++); } } break; case 4 : { // Optimization for the classical conversion from planar RGBA to interleaved RGBA const T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2), *ptr_a = data(0,0,0,3); t *ptrd = res._data; for (unsigned long siz = (unsigned long)_width*_height*_depth; siz; --siz) { *(ptrd++) = (t)*(ptr_r++); *(ptrd++) = (t)*(ptr_g++); *(ptrd++) = (t)*(ptr_b++); *(ptrd++) = (t)*(ptr_a++); } } break; default : { const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,x,y,z,wh,whd) = (t)*(ptrs++); } } } if (!cimg::strncasecmp(permut,"cxzy",4)) { res.assign(_spectrum,_width,_depth,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,x,z,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"cyxz",4)) { res.assign(_spectrum,_height,_width,_depth); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,y,x,z,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"cyzx",4)) { res.assign(_spectrum,_height,_depth,_width); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,y,z,x,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"czxy",4)) { res.assign(_spectrum,_depth,_width,_height); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,z,x,y,wh,whd) = (t)*(ptrs++); } if (!cimg::strncasecmp(permut,"czyx",4)) { res.assign(_spectrum,_depth,_height,_width); const unsigned long wh = (unsigned long)res._width*res._height, whd = wh*res._depth; cimg_forXYZC(*this,x,y,z,c) res(c,z,y,x,wh,whd) = (t)*(ptrs++); } if (!res) throw CImgArgumentException(_cimg_instance "permute_axes(): Invalid specified permutation '%s'.", cimg_instance, permut); return res; } //! Unroll pixel values along specified axis. /** \param axis Unroll axis (can be \c 'x', \c 'y', \c 'z' or c 'c'). **/ CImg& unroll(const char axis) { const unsigned int siz = size(); if (siz) switch (axis) { case 'x' : _width = siz; _height = _depth = _spectrum = 1; break; case 'y' : _height = siz; _width = _depth = _spectrum = 1; break; case 'z' : _depth = siz; _width = _height = _spectrum = 1; break; default : _spectrum = siz; _width = _height = _depth = 1; } return *this; } //! Unroll pixel values along specified axis \newinstance. CImg get_unroll(const char axis) const { return (+*this).unroll(axis); } //! Rotate image with arbitrary angle. /** \param angle Rotation angle, in degrees. \param interpolation Type of interpolation. Can be { 0=nearest | 1=linear | 2=cubic }. \param boundary Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=cyclic }. \note Most of the time, size of the image is modified. **/ CImg& rotate(const float angle, const unsigned int interpolation=1, const unsigned int boundary=0) { return get_rotate(angle,interpolation,boundary).move_to(*this); } //! Rotate image with arbitrary angle \newinstance. CImg get_rotate(const float angle, const unsigned int interpolation=1, const unsigned int boundary=0) const { if (is_empty()) return *this; CImg res; const float nangle = cimg::mod(angle,360.0f); if (boundary!=1 && cimg::mod(nangle,90.0f)==0) { // Optimized version for orthogonal angles. const int wm1 = width() - 1, hm1 = height() - 1; const int iangle = (int)nangle/90; switch (iangle) { case 1 : { // 90 deg. res.assign(_height,_width,_depth,_spectrum); T *ptrd = res._data; cimg_forXYZC(res,x,y,z,c) *(ptrd++) = (*this)(y,hm1-x,z,c); } break; case 2 : { // 180 deg. res.assign(_width,_height,_depth,_spectrum); T *ptrd = res._data; cimg_forXYZC(res,x,y,z,c) *(ptrd++) = (*this)(wm1-x,hm1-y,z,c); } break; case 3 : { // 270 deg. res.assign(_height,_width,_depth,_spectrum); T *ptrd = res._data; cimg_forXYZC(res,x,y,z,c) *(ptrd++) = (*this)(wm1-y,x,z,c); } break; default : // 0 deg. return *this; } } else { // Generic angle. const Tfloat vmin = (Tfloat)cimg::type::min(), vmax = (Tfloat)cimg::type::max(); const float rad = (float)(nangle*cimg::PI/180.0), ca = (float)std::cos(rad), sa = (float)std::sin(rad), ux = cimg::abs(_width*ca), uy = cimg::abs(_width*sa), vx = cimg::abs(_height*sa), vy = cimg::abs(_height*ca), w2 = 0.5f*_width, h2 = 0.5f*_height, dw2 = 0.5f*(ux+vx), dh2 = 0.5f*(uy+vy); res.assign((int)(ux+vx),(int)(uy+vy),_depth,_spectrum); switch (boundary) { case 0 : { // Dirichlet boundaries. switch (interpolation) { case 2 : { // Cubic interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = cubic_atXY(w2 + (x-dw2)*ca + (y-dh2)*sa,h2 - (x-dw2)*sa + (y-dh2)*ca,z,c,0); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { // Linear interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)linear_atXY(w2 + (x-dw2)*ca + (y-dh2)*sa,h2 - (x-dw2)*sa + (y-dh2)*ca,z,c,0); } break; default : { // Nearest-neighbor interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = atXY((int)(w2 + (x-dw2)*ca + (y-dh2)*sa),(int)(h2 - (x-dw2)*sa + (y-dh2)*ca),z,c,0); } } } break; case 1 : { // Neumann boundaries. switch (interpolation) { case 2 : { // Cubic interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = _cubic_atXY(w2 + (x-dw2)*ca + (y-dh2)*sa,h2 - (x-dw2)*sa + (y-dh2)*ca,z,c); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { // Linear interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)_linear_atXY(w2 + (x-dw2)*ca + (y-dh2)*sa,h2 - (x-dw2)*sa + (y-dh2)*ca,z,c); } break; default : { // Nearest-neighbor interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = _atXY((int)(w2 + (x-dw2)*ca + (y-dh2)*sa),(int)(h2 - (x-dw2)*sa + (y-dh2)*ca),z,c); } } } break; case 2 : { // Cyclic boundaries. switch (interpolation) { case 2 : { // Cubic interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = _cubic_atXY(cimg::mod(w2 + (x-dw2)*ca + (y-dh2)*sa,(float)width()), cimg::mod(h2 - (x-dw2)*sa + (y-dh2)*ca,(float)height()),z,c); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { // Linear interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)_linear_atXY(cimg::mod(w2 + (x-dw2)*ca + (y-dh2)*sa,(float)width()), cimg::mod(h2 - (x-dw2)*sa + (y-dh2)*ca,(float)height()),z,c); } break; default : { // Nearest-neighbor interpolation. cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (*this)(cimg::mod((int)(w2 + (x-dw2)*ca + (y-dh2)*sa),width()), cimg::mod((int)(h2 - (x-dw2)*sa + (y-dh2)*ca),height()),z,c); } } } break; default : throw CImgArgumentException(_cimg_instance "rotate(): Invalid specified border conditions %d " "(should be { 0=dirichlet | 1=neumann | 2=cyclic }).", cimg_instance, boundary); } } return res; } //! Rotate image with arbitrary angle, around a center point. /** \param angle Rotation angle, in degrees. \param cx X-coordinate of the rotation center. \param cy Y-coordinate of the rotation center. \param zoom Zoom factor. \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=cyclic }. \param interpolation_type Type of interpolation. Can be { 0=nearest | 1=linear | 2=cubic }. **/ CImg& rotate(const float angle, const float cx, const float cy, const float zoom, const unsigned int interpolation=1, const unsigned int boundary=3) { return get_rotate(angle,cx,cy,zoom,interpolation,boundary).move_to(*this); } //! Rotate image with arbitrary angle, around a center point \newinstance. CImg get_rotate(const float angle, const float cx, const float cy, const float zoom, const unsigned int interpolation=1, const unsigned int boundary=3) const { if (interpolation>2) throw CImgArgumentException(_cimg_instance "rotate(): Invalid specified interpolation type %d " "(should be { 0=none | 1=linear | 2=cubic }).", cimg_instance, interpolation); if (is_empty()) return *this; CImg res(_width,_height,_depth,_spectrum); const Tfloat vmin = (Tfloat)cimg::type::min(), vmax = (Tfloat)cimg::type::max(); const float rad = (float)((angle*cimg::PI)/180.0), ca = (float)std::cos(rad)/zoom, sa = (float)std::sin(rad)/zoom; switch (boundary) { case 0 : { switch (interpolation) { case 2 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = cubic_atXY(cx + (x-cx)*ca + (y-cy)*sa,cy - (x-cx)*sa + (y-cy)*ca,z,c,0); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)linear_atXY(cx + (x-cx)*ca + (y-cy)*sa,cy - (x-cx)*sa + (y-cy)*ca,z,c,0); } break; default : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = atXY((int)(cx + (x-cx)*ca + (y-cy)*sa),(int)(cy - (x-cx)*sa + (y-cy)*ca),z,c,0); } } } break; case 1 : { switch (interpolation) { case 2 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = _cubic_atXY(cx + (x-cx)*ca + (y-cy)*sa,cy - (x-cx)*sa + (y-cy)*ca,z,c); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)_linear_atXY(cx + (x-cx)*ca + (y-cy)*sa,cy - (x-cx)*sa + (y-cy)*ca,z,c); } break; default : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = _atXY((int)(cx + (x-cx)*ca + (y-cy)*sa),(int)(cy - (x-cx)*sa + (y-cy)*ca),z,c); } } } break; case 2 : { switch (interpolation) { case 2 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) { const Tfloat val = _cubic_atXY(cimg::mod(cx + (x-cx)*ca + (y-cy)*sa,(float)width()), cimg::mod(cy - (x-cx)*sa + (y-cy)*ca,(float)height()),z,c); res(x,y,z,c) = (T)(valvmax?vmax:val); } } break; case 1 : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (T)_linear_atXY(cimg::mod(cx + (x-cx)*ca + (y-cy)*sa,(float)width()), cimg::mod(cy - (x-cx)*sa + (y-cy)*ca,(float)height()),z,c); } break; default : { cimg_forXY(res,x,y) cimg_forZC(*this,z,c) res(x,y,z,c) = (*this)(cimg::mod((int)(cx + (x-cx)*ca + (y-cy)*sa),width()), cimg::mod((int)(cy - (x-cx)*sa + (y-cy)*ca),height()),z,c); } } } break; default : throw CImgArgumentException(_cimg_instance "rotate(): Invalid specified border conditions %d " "(should be { 0=dirichlet | 1=neumann | 2=cyclic }).", cimg_instance, boundary); } return res; } //! Warp image content by a warping field. /** \param warp Warping field. \param is_relative Tells if warping field gives absolute or relative warping coordinates. \param interpolation Can be { 0=nearest | 1=linear | 2=cubic }. \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann | 2=cyclic }. **/ template CImg& warp(const CImg& warp, const bool is_relative=false, const unsigned int interpolation=1, const unsigned int boundary_conditions=0) { return get_warp(warp,is_relative,interpolation,boundary_conditions).move_to(*this); } //! Warp image content by a warping field \newinstance template CImg get_warp(const CImg& warp, const bool is_relative=false, const unsigned int interpolation=1, const unsigned int boundary_conditions=0) const { if (is_empty() || !warp) return *this; if (is_relative && !is_sameXYZ(warp)) throw CImgArgumentException(_cimg_instance "warp(): Instance and specified relative warping field (%u,%u,%u,%u,%p) " "have different XYZ dimensions.", cimg_instance, warp._width,warp._height,warp._depth,warp._spectrum,warp._data); CImg res(warp._width,warp._height,warp._depth,_spectrum); T *ptrd = res._data; if (warp._spectrum==1) { // 1d warping. if (is_relative) { // Relative warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atX(cimg::mod(x - (float)*(ptrs0++),(float)_width),y,z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atX(x - (float)*(ptrs0++),y,z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atX(x - (float)*(ptrs0++),y,z,c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atX(cimg::mod(x - (float)*(ptrs0++),(float)_width),y,z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atX(x - (float)*(ptrs0++),y,z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atX(x - (float)*(ptrs0++),y,z,c,0); } } else { // Nearest-neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod(x - (int)*(ptrs0++),(int)_width),y,z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = _atX(x - (int)*(ptrs0++),y,z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = atX(x - (int)*(ptrs0++),y,z,c,0); } } } else { // Absolute warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atX(cimg::mod((float)*(ptrs0++),(float)_width),0,0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atX((float)*(ptrs0++),0,0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atX((float)*(ptrs0++),0,0,c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atX(cimg::mod((float)*(ptrs0++),(float)_width),0,0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atX((float)*(ptrs0++),0,0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atX((float)*(ptrs0++),0,0,c,0); } } else { // Nearest-neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod((int)*(ptrs0++),(int)_width),0,0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = _atX((int)*(ptrs0++),0,0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp._data; cimg_forXYZ(res,x,y,z) *(ptrd++) = atX((int)*(ptrs0++),0,0,c,0); } } } } else if (warp._spectrum==2) { // 2d warping. if (is_relative) { // Relative warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXY(cimg::mod(x - (float)*(ptrs0++),(float)_width), cimg::mod(y - (float)*(ptrs1++),(float)_height),z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXY(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atXY(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z,c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXY(cimg::mod(x - (float)*(ptrs0++),(float)_width), cimg::mod(y - (float)*(ptrs1++),(float)_height),z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXY(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atXY(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z,c,0); } } else { // Nearest-neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod(x - (int)*(ptrs0++),(int)_width), cimg::mod(y - (int)*(ptrs1++),(int)_height),z,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = _atXY(x - (int)*(ptrs0++),y - (int)*(ptrs1++),z,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = atXY(x - (int)*(ptrs0++),y - (int)*(ptrs1++),z,c,0); } } } else { // Absolute warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXY(cimg::mod((float)*(ptrs0++),(float)_width), cimg::mod((float)*(ptrs1++),(float)_height),0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXY((float)*(ptrs0++),(float)*(ptrs1++),0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atXY((float)*(ptrs0++),(float)*(ptrs1++),0,c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXY(cimg::mod((float)*(ptrs0++),(float)_width), cimg::mod((float)*(ptrs1++),(float)_height),0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXY((float)*(ptrs0++),(float)*(ptrs1++),0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atXY((float)*(ptrs0++),(float)*(ptrs1++),0,c,0); } } else { // Nearest-neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod((int)*(ptrs0++),(int)_width), cimg::mod((int)*(ptrs1++),(int)_height),0,c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = _atXY((int)*(ptrs0++),(int)*(ptrs1++),0,c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1); cimg_forXYZ(res,x,y,z) *(ptrd++) = atXY((int)*(ptrs0++),(int)*(ptrs1++),0,c,0); } } } } else if (warp._spectrum==3) { // 3d warping. if (is_relative) { // Relative warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXYZ(cimg::mod(x - (float)*(ptrs0++),(float)_width), cimg::mod(y - (float)*(ptrs1++),(float)_height), cimg::mod(z - (float)*(ptrs2++),(float)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXYZ(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z - (float)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atXYZ(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z - (float)*(ptrs2++),c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXYZ(cimg::mod(x - (float)*(ptrs0++),(float)_width), cimg::mod(y - (float)*(ptrs1++),(float)_height), cimg::mod(z - (float)*(ptrs2++),(float)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXYZ(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z - (float)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atXYZ(x - (float)*(ptrs0++),y - (float)*(ptrs1++),z - (float)*(ptrs2++),c,0); } } else { // Nearest neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod(x - (int)*(ptrs0++),(int)_width), cimg::mod(y - (int)*(ptrs1++),(int)_height), cimg::mod(z - (int)*(ptrs2++),(int)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = _atXYZ(x - (int)*(ptrs0++),y - (int)*(ptrs1++),z - (int)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = atXYZ(x - (int)*(ptrs0++),y - (int)*(ptrs1++),z - (int)*(ptrs2++),c,0); } } } else { // Absolute warp. if (interpolation==2) { // Cubic interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXYZ(cimg::mod((float)*(ptrs0++),(float)_width), cimg::mod((float)*(ptrs1++),(float)_height), cimg::mod((float)*(ptrs2++),(float)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_cubic_atXYZ((float)*(ptrs0++),(float)*(ptrs1++),(float)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)cubic_atXYZ((float)*(ptrs0++),(float)*(ptrs1++),(float)*(ptrs2++),c,0); } } else if (interpolation==1) { // Linear interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXYZ(cimg::mod((float)*(ptrs0++),(float)_width), cimg::mod((float)*(ptrs1++),(float)_height), cimg::mod((float)*(ptrs2++),(float)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)_linear_atXYZ((float)*(ptrs0++),(float)*(ptrs1++),(float)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (T)linear_atXYZ((float)*(ptrs0++),(float)*(ptrs1++),(float)*(ptrs2++),c,0); } } else { // Nearest-neighbor interpolation. if (boundary_conditions==2) // Cyclic boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = (*this)(cimg::mod((int)*(ptrs0++),(int)_width), cimg::mod((int)*(ptrs1++),(int)_height), cimg::mod((int)*(ptrs2++),(int)_depth),c); } else if (boundary_conditions==1) // Neumann boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = _atXYZ((int)*(ptrs0++),(int)*(ptrs1++),(int)*(ptrs2++),c); } else // Dirichlet boundaries. cimg_forC(res,c) { const t *ptrs0 = warp.data(0,0,0,0), *ptrs1 = warp.data(0,0,0,1), *ptrs2 = warp.data(0,0,0,2); cimg_forXYZ(res,x,y,z) *(ptrd++) = atXYZ((int)*(ptrs0++),(int)*(ptrs1++),(int)*(ptrs2++),c,0); } } } } return res; } //! Generate a 2d representation of a 3d image, with XY,XZ and YZ views. /** \param x0 X-coordinate of the projection point. \param y0 Y-coordinate of the projection point. \param z0 Z-coordinate of the projection point. **/ CImg get_projections2d(const unsigned int x0, const unsigned int y0, const unsigned int z0) const { if (is_empty() || _depth<2) return +*this; const unsigned int _x0 = (x0>=_width)?_width - 1:x0, _y0 = (y0>=_height)?_height - 1:y0, _z0 = (z0>=_depth)?_depth - 1:z0; const CImg img_xy = get_crop(0,0,_z0,0,_width-1,_height-1,_z0,_spectrum-1), img_zy = get_crop(_x0,0,0,0,_x0,_height-1,_depth-1,_spectrum-1).permute_axes("xzyc").resize(_depth,_height,1,-100,-1), img_xz = get_crop(0,_y0,0,0,_width-1,_y0,_depth-1,_spectrum-1).resize(_width,_depth,1,-100,-1); return CImg(_width + _depth,_height + _depth,1,_spectrum,cimg::min(img_xy.min(),img_zy.min(),img_xz.min())). draw_image(0,0,img_xy).draw_image(img_xy._width,0,img_zy). draw_image(0,img_xy._height,img_xz); } //! Construct a 2d representation of a 3d image, with XY,XZ and YZ views \inplace. CImg& projections2d(const unsigned int x0, const unsigned int y0, const unsigned int z0) { if (_depth<2) return *this; return get_projections2d(x0,y0,z0).move_to(*this); } //! Crop image region. /** \param x0 = X-coordinate of the upper-left crop rectangle corner. \param y0 = Y-coordinate of the upper-left crop rectangle corner. \param z0 = Z-coordinate of the upper-left crop rectangle corner. \param c0 = C-coordinate of the upper-left crop rectangle corner. \param x1 = X-coordinate of the lower-right crop rectangle corner. \param y1 = Y-coordinate of the lower-right crop rectangle corner. \param z1 = Z-coordinate of the lower-right crop rectangle corner. \param c1 = C-coordinate of the lower-right crop rectangle corner. \param boundary_conditions = Dirichlet (false) or Neumann border conditions. **/ CImg& crop(const int x0, const int y0, const int z0, const int c0, const int x1, const int y1, const int z1, const int c1, const bool boundary_conditions=false) { return get_crop(x0,y0,z0,c0,x1,y1,z1,c1,boundary_conditions).move_to(*this); } //! Crop image region \newinstance. CImg get_crop(const int x0, const int y0, const int z0, const int c0, const int x1, const int y1, const int z1, const int c1, const bool boundary_conditions=false) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "crop(): Empty instance.", cimg_instance); const int nx0 = x0 res(1U + nx1 - nx0,1U + ny1 - ny0,1U + nz1 - nz0,1U + nc1 - nc0); if (nx0<0 || nx1>=width() || ny0<0 || ny1>=height() || nz0<0 || nz1>=depth() || nc0<0 || nc1>=spectrum()) { if (boundary_conditions) cimg_forXYZC(res,x,y,z,c) res(x,y,z,c) = _atXYZC(nx0+x,ny0+y,nz0+z,nc0+c); else res.fill(0).draw_image(-nx0,-ny0,-nz0,-nc0,*this); } else res.draw_image(-nx0,-ny0,-nz0,-nc0,*this); return res; } //! Crop image region \overloading. CImg& crop(const int x0, const int y0, const int z0, const int x1, const int y1, const int z1, const bool boundary_conditions=false) { return crop(x0,y0,z0,0,x1,y1,z1,_spectrum-1,boundary_conditions); } //! Crop image region \newinstance. CImg get_crop(const int x0, const int y0, const int z0, const int x1, const int y1, const int z1, const bool boundary_conditions=false) const { return get_crop(x0,y0,z0,0,x1,y1,z1,_spectrum-1,boundary_conditions); } //! Crop image region \overloading. CImg& crop(const int x0, const int y0, const int x1, const int y1, const bool boundary_conditions=false) { return crop(x0,y0,0,0,x1,y1,_depth - 1,_spectrum - 1,boundary_conditions); } //! Crop image region \newinstance. CImg get_crop(const int x0, const int y0, const int x1, const int y1, const bool boundary_conditions=false) const { return get_crop(x0,y0,0,0,x1,y1,_depth - 1,_spectrum - 1,boundary_conditions); } //! Crop image region \overloading. CImg& crop(const int x0, const int x1, const bool boundary_conditions=false) { return crop(x0,0,0,0,x1,_height-1,_depth-1,_spectrum-1,boundary_conditions); } //! Crop image region \newinstance. CImg get_crop(const int x0, const int x1, const bool boundary_conditions=false) const { return get_crop(x0,0,0,0,x1,_height-1,_depth-1,_spectrum-1,boundary_conditions); } //! Autocrop image region, regarding the specified background value. CImg& autocrop(const T value, const char *const axes="czyx") { if (is_empty()) return *this; for (const char *s = axes; *s; ++s) { const char axis = cimg::uncase(*s); const CImg coords = _autocrop(value,axis); if (coords[0]==-1 && coords[1]==-1) return assign(); // Image has only 'value' pixels. else switch (axis) { case 'x' : { const int x0 = coords[0], x1 = coords[1]; if (x0>=0 && x1>=0) crop(x0,x1); } break; case 'y' : { const int y0 = coords[0], y1 = coords[1]; if (y0>=0 && y1>=0) crop(0,y0,_width-1,y1); } break; case 'z' : { const int z0 = coords[0], z1 = coords[1]; if (z0>=0 && z1>=0) crop(0,0,z0,_width-1,_height-1,z1); } break; default : { const int c0 = coords[0], c1 = coords[1]; if (c0>=0 && c1>=0) crop(0,0,0,c0,_width-1,_height-1,_depth-1,c1); } } } return *this; } //! Autocrop image region, regarding the specified background value \newinstance. CImg get_autocrop(const T value, const char *const axes="czyx") const { return (+*this).autocrop(value,axes); } //! Autocrop image region, regarding the specified background color. /** \param color Color used for the crop. If \c 0, color is guessed. \param axes Axes used for the crop. **/ CImg& autocrop(const T *const color=0, const char *const axes="zyx") { if (is_empty()) return *this; if (!color) { // Guess color. const CImg col1 = get_vector_at(0,0,0); const unsigned int w = _width, h = _height, d = _depth, s = _spectrum; autocrop(col1,axes); if (_width==w && _height==h && _depth==d && _spectrum==s) { const CImg col2 = get_vector_at(w-1,h-1,d-1); autocrop(col2,axes); } return *this; } for (const char *s = axes; *s; ++s) { const char axis = cimg::uncase(*s); switch (axis) { case 'x' : { int x0 = width(), x1 = -1; cimg_forC(*this,c) { const CImg coords = get_shared_channel(c)._autocrop(color[c],'x'); const int nx0 = coords[0], nx1 = coords[1]; if (nx0>=0 && nx1>=0) { x0 = cimg::min(x0,nx0); x1 = cimg::max(x1,nx1); } } if (x0==width() && x1==-1) return assign(); else crop(x0,x1); } break; case 'y' : { int y0 = height(), y1 = -1; cimg_forC(*this,c) { const CImg coords = get_shared_channel(c)._autocrop(color[c],'y'); const int ny0 = coords[0], ny1 = coords[1]; if (ny0>=0 && ny1>=0) { y0 = cimg::min(y0,ny0); y1 = cimg::max(y1,ny1); } } if (y0==height() && y1==-1) return assign(); else crop(0,y0,_width-1,y1); } break; default : { int z0 = depth(), z1 = -1; cimg_forC(*this,c) { const CImg coords = get_shared_channel(c)._autocrop(color[c],'z'); const int nz0 = coords[0], nz1 = coords[1]; if (nz0>=0 && nz1>=0) { z0 = cimg::min(z0,nz0); z1 = cimg::max(z1,nz1); } } if (z0==depth() && z1==-1) return assign(); else crop(0,0,z0,_width-1,_height-1,z1); } } } return *this; } //! Autocrop image region, regarding the specified background color \newinstance. CImg get_autocrop(const T *const color=0, const char *const axes="zyx") const { return (+*this).autocrop(color,axes); } //! Autocrop image region, regarding the specified background color \overloading. template CImg& autocrop(const CImg& color, const char *const axes="zyx") { return get_autocrop(color,axes).move_to(*this); } //! Autocrop image region, regarding the specified background color \newinstance. template CImg get_autocrop(const CImg& color, const char *const axes="zyx") const { return get_autocrop(color._data,axes); } CImg _autocrop(const T value, const char axis) const { CImg res; switch (cimg::uncase(axis)) { case 'x' : { int x0 = -1, x1 = -1; cimg_forX(*this,x) cimg_forYZC(*this,y,z,c) if ((*this)(x,y,z,c)!=value) { x0 = x; x = width(); y = height(); z = depth(); c = spectrum(); } if (x0>=0) { for (int x = width()-1; x>=0; --x) cimg_forYZC(*this,y,z,c) if ((*this)(x,y,z,c)!=value) { x1 = x; x = 0; y = height(); z = depth(); c = spectrum(); } } res = CImg::vector(x0,x1); } break; case 'y' : { int y0 = -1, y1 = -1; cimg_forY(*this,y) cimg_forXZC(*this,x,z,c) if ((*this)(x,y,z,c)!=value) { y0 = y; x = width(); y = height(); z = depth(); c = spectrum(); } if (y0>=0) { for (int y = height()-1; y>=0; --y) cimg_forXZC(*this,x,z,c) if ((*this)(x,y,z,c)!=value) { y1 = y; x = width(); y = 0; z = depth(); c = spectrum(); } } res = CImg::vector(y0,y1); } break; case 'z' : { int z0 = -1, z1 = -1; cimg_forZ(*this,z) cimg_forXYC(*this,x,y,c) if ((*this)(x,y,z,c)!=value) { z0 = z; x = width(); y = height(); z = depth(); c = spectrum(); } if (z0>=0) { for (int z = depth()-1; z>=0; --z) cimg_forXYC(*this,x,y,c) if ((*this)(x,y,z,c)!=value) { z1 = z; x = width(); y = height(); z = 0; c = spectrum(); } } res = CImg::vector(z0,z1); } break; default : { int c0 = -1, c1 = -1; cimg_forC(*this,c) cimg_forXYZ(*this,x,y,z) if ((*this)(x,y,z,c)!=value) { c0 = c; x = width(); y = height(); z = depth(); c = spectrum(); } if (c0>=0) { for (int c = spectrum()-1; c>=0; --c) cimg_forXYZ(*this,x,y,z) if ((*this)(x,y,z,c)!=value) { c1 = c; x = width(); y = height(); z = depth(); c = 0; } } res = CImg::vector(c0,c1); } } return res; } //! Return specified image column. /** \param x0 Image column. **/ CImg get_column(const int x0) const { return get_columns(x0,x0); } //! Return specified image column \inplace. CImg& column(const int x0) { return columns(x0,x0); } //! Return specified range of image columns. /** \param x0 Starting image column. \param x1 Ending image column. **/ CImg& columns(const int x0, const int x1) { return get_columns(x0,x1).move_to(*this); } //! Return specified range of image columns \inplace. CImg get_columns(const int x0, const int x1) const { return get_crop(x0,0,0,0,x1,height()-1,depth()-1,spectrum()-1); } //! Return specified image row. CImg get_row(const int y0) const { return get_rows(y0,y0); } //! Return specified image row \inplace. /** \param y0 Image row. **/ CImg& row(const int y0) { return rows(y0,y0); } //! Return specified range of image rows. /** \param y0 Starting image row. \param y1 Ending image row. **/ CImg get_rows(const int y0, const int y1) const { return get_crop(0,y0,0,0,width()-1,y1,depth()-1,spectrum()-1); } //! Return specified range of image rows \inplace. CImg& rows(const int y0, const int y1) { return get_rows(y0,y1).move_to(*this); } //! Return specified image slice. /** \param z0 Image slice. **/ CImg get_slice(const int z0) const { return get_slices(z0,z0); } //! Return specified image slice \inplace. CImg& slice(const int z0) { return slices(z0,z0); } //! Return specified range of image slices. /** \param z0 Starting image slice. \param z1 Ending image slice. **/ CImg get_slices(const int z0, const int z1) const { return get_crop(0,0,z0,0,width()-1,height()-1,z1,spectrum()-1); } //! Return specified range of image slices \inplace. CImg& slices(const int z0, const int z1) { return get_slices(z0,z1).move_to(*this); } //! Return specified image channel. /** \param c0 Image channel. **/ CImg get_channel(const int c0) const { return get_channels(c0,c0); } //! Return specified image channel \inplace. CImg& channel(const int c0) { return channels(c0,c0); } //! Return specified range of image channels. /** \param c0 Starting image channel. \param c1 Ending image channel. **/ CImg get_channels(const int c0, const int c1) const { return get_crop(0,0,0,c0,width()-1,height()-1,depth()-1,c1); } //! Return specified range of image channels \inplace. CImg& channels(const int c0, const int c1) { return get_channels(c0,c1).move_to(*this); } //! Return stream line of a 2d or 3d vector field. CImg get_streamline(const float x, const float y, const float z, const float L=256, const float dl=0.1f, const unsigned int interpolation_type=2, const bool is_backward_tracking=false, const bool is_oriented_only=false) const { if (_spectrum!=2 && _spectrum!=3) throw CImgInstanceException(_cimg_instance "streamline(): Instance is not a 2d or 3d vector field.", cimg_instance); if (_spectrum==2) { if (is_oriented_only) { typename CImg::_functor4d_streamline2d_oriented func(*this); return streamline(func,x,y,z,L,dl,interpolation_type,is_backward_tracking,true,0,0,0,_width-1.0f,_height-1.0f,0.0f); } else { typename CImg::_functor4d_streamline2d_directed func(*this); return streamline(func,x,y,z,L,dl,interpolation_type,is_backward_tracking,false,0,0,0,_width-1.0f,_height-1.0f,0.0f); } } if (is_oriented_only) { typename CImg::_functor4d_streamline3d_oriented func(*this); return streamline(func,x,y,z,L,dl,interpolation_type,is_backward_tracking,true,0,0,0,_width-1.0f,_height-1.0f,_depth-1.0f); } typename CImg::_functor4d_streamline3d_directed func(*this); return streamline(func,x,y,z,L,dl,interpolation_type,is_backward_tracking,false,0,0,0,_width-1.0f,_height-1.0f,_depth-1.0f); } //! Return stream line of a 3d vector field. /** \param func Vector field function. \param x X-coordinate of the starting point of the streamline. \param y Y-coordinate of the starting point of the streamline. \param z Z-coordinate of the starting point of the streamline. \param L Streamline length. \param dl Streamline length increment. \param interpolation_type Type of interpolation. Can be { 0=nearest int | 1=linear | 2=2nd-order RK | 3=4th-order RK. }. \param is_backward_tracking Tells if the streamline is estimated forward or backward. \param is_oriented_only Tells if the direction of the vectors must be ignored. \param x0 X-coordinate of the first bounding-box vertex. \param y0 Y-coordinate of the first bounding-box vertex. \param z0 Z-coordinate of the first bounding-box vertex. \param x1 X-coordinate of the second bounding-box vertex. \param y1 Y-coordinate of the second bounding-box vertex. \param z1 Z-coordinate of the second bounding-box vertex. **/ template static CImg streamline(const tfunc& func, const float x, const float y, const float z, const float L=256, const float dl=0.1f, const unsigned int interpolation_type=2, const bool is_backward_tracking=false, const bool is_oriented_only=false, const float x0=0, const float y0=0, const float z0=0, const float x1=0, const float y1=0, const float z1=0) { if (dl<=0) throw CImgArgumentException("CImg<%s>::streamline(): Invalid specified integration length %g " "(should be >0).", pixel_type(), dl); const bool is_bounded = (x0!=x1 || y0!=y1 || z0!=z1); if (L<=0 || (is_bounded && (xx1 || yy1 || zz1))) return CImg(); const unsigned int size_L = (unsigned int)cimg::round(L/dl+1); CImg coordinates(size_L,3); const float dl2 = dl/2; float *ptr_x = coordinates.data(0,0), *ptr_y = coordinates.data(0,1), *ptr_z = coordinates.data(0,2), pu = (float)(dl*func(x,y,z,0)), pv = (float)(dl*func(x,y,z,1)), pw = (float)(dl*func(x,y,z,2)), X = x, Y = y, Z = z; switch (interpolation_type) { case 0 : { // Nearest integer interpolation. cimg_forX(coordinates,l) { *(ptr_x++) = X; *(ptr_y++) = Y; *(ptr_z++) = Z; const int xi = (int)(X>0?X+0.5f:X-0.5f), yi = (int)(Y>0?Y+0.5f:Y-0.5f), zi = (int)(Z>0?Z+0.5f:Z-0.5f); float u = (float)(dl*func((float)xi,(float)yi,(float)zi,0)), v = (float)(dl*func((float)xi,(float)yi,(float)zi,1)), w = (float)(dl*func((float)xi,(float)yi,(float)zi,2)); if (is_oriented_only && u*pu + v*pv + w*pw<0) { u = -u; v = -v; w = -w; } if (is_backward_tracking) { X-=(pu=u); Y-=(pv=v); Z-=(pw=w); } else { X+=(pu=u); Y+=(pv=v); Z+=(pw=w); } if (is_bounded && (Xx1 || Yy1 || Zz1)) break; } } break; case 1 : { // First-order interpolation. cimg_forX(coordinates,l) { *(ptr_x++) = X; *(ptr_y++) = Y; *(ptr_z++) = Z; float u = (float)(dl*func(X,Y,Z,0)), v = (float)(dl*func(X,Y,Z,1)), w = (float)(dl*func(X,Y,Z,2)); if (is_oriented_only && u*pu + v*pv + w*pw<0) { u = -u; v = -v; w = -w; } if (is_backward_tracking) { X-=(pu=u); Y-=(pv=v); Z-=(pw=w); } else { X+=(pu=u); Y+=(pv=v); Z+=(pw=w); } if (is_bounded && (Xx1 || Yy1 || Zz1)) break; } } break; case 2 : { // Second order interpolation. cimg_forX(coordinates,l) { *(ptr_x++) = X; *(ptr_y++) = Y; *(ptr_z++) = Z; float u0 = (float)(dl2*func(X,Y,Z,0)), v0 = (float)(dl2*func(X,Y,Z,1)), w0 = (float)(dl2*func(X,Y,Z,2)); if (is_oriented_only && u0*pu + v0*pv + w0*pw<0) { u0 = -u0; v0 = -v0; w0 = -w0; } float u = (float)(dl*func(X+u0,Y+v0,Z+w0,0)), v = (float)(dl*func(X+u0,Y+v0,Z+w0,1)), w = (float)(dl*func(X+u0,Y+v0,Z+w0,2)); if (is_oriented_only && u*pu + v*pv + w*pw<0) { u = -u; v = -v; w = -w; } if (is_backward_tracking) { X-=(pu=u); Y-=(pv=v); Z-=(pw=w); } else { X+=(pu=u); Y+=(pv=v); Z+=(pw=w); } if (is_bounded && (Xx1 || Yy1 || Zz1)) break; } } break; default : { // Fourth order interpolation. cimg_forX(coordinates,x) { *(ptr_x++) = X; *(ptr_y++) = Y; *(ptr_z++) = Z; float u0 = (float)(dl2*func(X,Y,Z,0)), v0 = (float)(dl2*func(X,Y,Z,1)), w0 = (float)(dl2*func(X,Y,Z,2)); if (is_oriented_only && u0*pu + v0*pv + w0*pw<0) { u0 = -u0; v0 = -v0; w0 = -w0; } float u1 = (float)(dl2*func(X+u0,Y+v0,Z+w0,0)), v1 = (float)(dl2*func(X+u0,Y+v0,Z+w0,1)), w1 = (float)(dl2*func(X+u0,Y+v0,Z+w0,2)); if (is_oriented_only && u1*pu + v1*pv + w1*pw<0) { u1 = -u1; v1 = -v1; w1 = -w1; } float u2 = (float)(dl2*func(X+u1,Y+v1,Z+w1,0)), v2 = (float)(dl2*func(X+u1,Y+v1,Z+w1,1)), w2 = (float)(dl2*func(X+u1,Y+v1,Z+w1,2)); if (is_oriented_only && u2*pu + v2*pv + w2*pw<0) { u2 = -u2; v2 = -v2; w2 = -w2; } float u3 = (float)(dl2*func(X+u2,Y+v2,Z+w2,0)), v3 = (float)(dl2*func(X+u2,Y+v2,Z+w2,1)), w3 = (float)(dl2*func(X+u2,Y+v2,Z+w2,2)); if (is_oriented_only && u2*pu + v2*pv + w2*pw<0) { u3 = -u3; v3 = -v3; w3 = -w3; } const float u = (u0 + u3)/3 + (u1 + u2)/1.5f, v = (v0 + v3)/3 + (v1 + v2)/1.5f, w = (w0 + w3)/3 + (w1 + w2)/1.5f; if (is_backward_tracking) { X-=(pu=u); Y-=(pv=v); Z-=(pw=w); } else { X+=(pu=u); Y+=(pv=v); Z+=(pw=w); } if (is_bounded && (Xx1 || Yy1 || Zz1)) break; } } } if (ptr_x!=coordinates.data(0,1)) coordinates.resize((int)(ptr_x-coordinates.data()),3,1,1,0); return coordinates; } //! Return stream line of a 3d vector field \overloading. static CImg streamline(const char *const expression, const float x, const float y, const float z, const float L=256, const float dl=0.1f, const unsigned int interpolation_type=2, const bool is_backward_tracking=true, const bool is_oriented_only=false, const float x0=0, const float y0=0, const float z0=0, const float x1=0, const float y1=0, const float z1=0) { _functor4d_streamline_expr func(expression); return streamline(func,x,y,z,L,dl,interpolation_type,is_backward_tracking,is_oriented_only,x0,y0,z0,x1,y1,z1); } struct _functor4d_streamline2d_directed { const CImg& ref; _functor4d_streamline2d_directed(const CImg& pref):ref(pref) {} float operator()(const float x, const float y, const float z, const unsigned int c) const { return c<2?(float)ref._linear_atXY(x,y,(int)z,c):0; } }; struct _functor4d_streamline3d_directed { const CImg& ref; _functor4d_streamline3d_directed(const CImg& pref):ref(pref) {} float operator()(const float x, const float y, const float z, const unsigned int c) const { return (float)ref._linear_atXYZ(x,y,z,c); } }; struct _functor4d_streamline2d_oriented { const CImg& ref; CImg *pI; _functor4d_streamline2d_oriented(const CImg& pref):ref(pref),pI(0) { pI = new CImg(2,2,1,2); } ~_functor4d_streamline2d_oriented() { delete pI; } float operator()(const float x, const float y, const float z, const unsigned int c) const { #define _cimg_vecalign2d(i,j) if (I(i,j,0)*I(0,0,0)+I(i,j,1)*I(0,0,1)<0) { I(i,j,0) = -I(i,j,0); I(i,j,1) = -I(i,j,1); } int xi = (int)x - (x>=0?0:1), nxi = xi + 1, yi = (int)y - (y>=0?0:1), nyi = yi + 1, zi = (int)z; const float dx = x - xi, dy = y - yi; if (c==0) { CImg& I = *pI; if (xi<0) xi = 0; if (nxi<0) nxi = 0; if (xi>=ref.width()) xi = ref.width()-1; if (nxi>=ref.width()) nxi = ref.width()-1; if (yi<0) yi = 0; if (nyi<0) nyi = 0; if (yi>=ref.height()) yi = ref.height()-1; if (nyi>=ref.height()) nyi = ref.height()-1; I(0,0,0) = (float)ref(xi,yi,zi,0); I(0,0,1) = (float)ref(xi,yi,zi,1); I(1,0,0) = (float)ref(nxi,yi,zi,0); I(1,0,1) = (float)ref(nxi,yi,zi,1); I(1,1,0) = (float)ref(nxi,nyi,zi,0); I(1,1,1) = (float)ref(nxi,nyi,zi,1); I(0,1,0) = (float)ref(xi,nyi,zi,0); I(0,1,1) = (float)ref(xi,nyi,zi,1); _cimg_vecalign2d(1,0); _cimg_vecalign2d(1,1); _cimg_vecalign2d(0,1); } return c<2?(float)pI->_linear_atXY(dx,dy,0,c):0; } }; struct _functor4d_streamline3d_oriented { const CImg& ref; CImg *pI; _functor4d_streamline3d_oriented(const CImg& pref):ref(pref),pI(0) { pI = new CImg(2,2,2,3); } ~_functor4d_streamline3d_oriented() { delete pI; } float operator()(const float x, const float y, const float z, const unsigned int c) const { #define _cimg_vecalign3d(i,j,k) if (I(i,j,k,0)*I(0,0,0,0)+I(i,j,k,1)*I(0,0,0,1)+I(i,j,k,2)*I(0,0,0,2)<0) { \ I(i,j,k,0) = -I(i,j,k,0); I(i,j,k,1) = -I(i,j,k,1); I(i,j,k,2) = -I(i,j,k,2); } int xi = (int)x - (x>=0?0:1), nxi = xi + 1, yi = (int)y - (y>=0?0:1), nyi = yi + 1, zi = (int)z - (z>=0?0:1), nzi = zi + 1; const float dx = x - xi, dy = y - yi, dz = z - zi; if (c==0) { CImg& I = *pI; if (xi<0) xi = 0; if (nxi<0) nxi = 0; if (xi>=ref.width()) xi = ref.width()-1; if (nxi>=ref.width()) nxi = ref.width()-1; if (yi<0) yi = 0; if (nyi<0) nyi = 0; if (yi>=ref.height()) yi = ref.height()-1; if (nyi>=ref.height()) nyi = ref.height()-1; if (zi<0) zi = 0; if (nzi<0) nzi = 0; if (zi>=ref.depth()) zi = ref.depth()-1; if (nzi>=ref.depth()) nzi = ref.depth()-1; I(0,0,0,0) = (float)ref(xi,yi,zi,0); I(0,0,0,1) = (float)ref(xi,yi,zi,1); I(0,0,0,2) = (float)ref(xi,yi,zi,2); I(1,0,0,0) = (float)ref(nxi,yi,zi,0); I(1,0,0,1) = (float)ref(nxi,yi,zi,1); I(1,0,0,2) = (float)ref(nxi,yi,zi,2); I(1,1,0,0) = (float)ref(nxi,nyi,zi,0); I(1,1,0,1) = (float)ref(nxi,nyi,zi,1); I(1,1,0,2) = (float)ref(nxi,nyi,zi,2); I(0,1,0,0) = (float)ref(xi,nyi,zi,0); I(0,1,0,1) = (float)ref(xi,nyi,zi,1); I(0,1,0,2) = (float)ref(xi,yi,zi,2); I(0,0,0,1) = (float)ref(xi,yi,nzi,0); I(0,0,0,1) = (float)ref(xi,yi,nzi,1); I(0,0,0,2) = (float)ref(xi,yi,nzi,2); I(1,0,0,1) = (float)ref(nxi,yi,nzi,0); I(1,0,0,1) = (float)ref(nxi,yi,nzi,1); I(1,0,0,2) = (float)ref(nxi,yi,nzi,2); I(1,1,0,1) = (float)ref(nxi,nyi,nzi,0); I(1,1,0,1) = (float)ref(nxi,nyi,nzi,1); I(1,1,0,2) = (float)ref(nxi,nyi,nzi,2); I(0,1,0,1) = (float)ref(xi,nyi,nzi,0); I(0,1,0,1) = (float)ref(xi,nyi,nzi,1); I(0,1,0,2) = (float)ref(xi,yi,nzi,2); _cimg_vecalign3d(1,0,0); _cimg_vecalign3d(1,1,0); _cimg_vecalign3d(0,1,0); _cimg_vecalign3d(0,0,1); _cimg_vecalign3d(1,0,1); _cimg_vecalign3d(1,1,1); _cimg_vecalign3d(0,1,1); } return (float)pI->_linear_atXYZ(dx,dy,dz,c); } }; struct _functor4d_streamline_expr { _cimg_math_parser *mp; ~_functor4d_streamline_expr() { delete mp; } _functor4d_streamline_expr(const char *const expr):mp(0) { mp = new _cimg_math_parser(CImg::empty(),expr,"streamline"); } float operator()(const float x, const float y, const float z, const unsigned int c) const { return (float)mp->eval(x,y,z,c); } }; //! Return a shared-memory image referencing a range of pixels of the image instance. /** \param x0 X-coordinate of the starting pixel. \param x1 X-coordinate of the ending pixel. \param y0 Y-coordinate. \param z0 Z-coordinate. \param c0 C-coordinate. **/ CImg get_shared_points(const unsigned int x0, const unsigned int x1, const unsigned int y0=0, const unsigned int z0=0, const unsigned int c0=0) { const unsigned int beg = (unsigned int)offset(x0,y0,z0,c0), end = offset(x1,y0,z0,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_points(): Invalid request of a shared-memory subset (%u->%u,%u,%u,%u).", cimg_instance, x0,x1,y0,z0,c0); return CImg(_data+beg,x1-x0+1,1,1,1,true); } //! Return a shared-memory image referencing a range of pixels of the image instance \const. const CImg get_shared_points(const unsigned int x0, const unsigned int x1, const unsigned int y0=0, const unsigned int z0=0, const unsigned int c0=0) const { const unsigned int beg = (unsigned int)offset(x0,y0,z0,c0), end = offset(x1,y0,z0,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_points(): Invalid request of a shared-memory subset (%u->%u,%u,%u,%u).", cimg_instance, x0,x1,y0,z0,c0); return CImg(_data+beg,x1-x0+1,1,1,1,true); } //! Return a shared-memory image referencing a range of rows of the image instance. /** \param y0 Y-coordinate of the starting row. \param y1 Y-coordinate of the ending row. \param z0 Z-coordinate. \param c0 C-coordinate. **/ CImg get_shared_rows(const unsigned int y0, const unsigned int y1, const unsigned int z0=0, const unsigned int c0=0) { const unsigned int beg = offset(0,y0,z0,c0), end = offset(0,y1,z0,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_rows(): Invalid request of a shared-memory subset (0->%u,%u->%u,%u,%u).", cimg_instance, _width-1,y0,y1,z0,c0); return CImg(_data+beg,_width,y1-y0+1,1,1,true); } //! Return a shared-memory image referencing a range of rows of the image instance \const. const CImg get_shared_rows(const unsigned int y0, const unsigned int y1, const unsigned int z0=0, const unsigned int c0=0) const { const unsigned int beg = offset(0,y0,z0,c0), end = offset(0,y1,z0,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_rows(): Invalid request of a shared-memory subset (0->%u,%u->%u,%u,%u).", cimg_instance, _width-1,y0,y1,z0,c0); return CImg(_data+beg,_width,y1-y0+1,1,1,true); } //! Return a shared-memory image referencing one row of the image instance. /** \param y0 Y-coordinate. \param z0 Z-coordinate. \param c0 C-coordinate. **/ CImg get_shared_row(const unsigned int y0, const unsigned int z0=0, const unsigned int c0=0) { return get_shared_rows(y0,y0,z0,c0); } //! Return a shared-memory image referencing one row of the image instance \const. const CImg get_shared_row(const unsigned int y0, const unsigned int z0=0, const unsigned int c0=0) const { return get_shared_rows(y0,y0,z0,c0); } //! Return a shared memory image referencing a range of slices of the image instance. /** \param z0 Z-coordinate of the starting slice. \param z1 Z-coordinate of the ending slice. \param c0 C-coordinate. **/ CImg get_shared_slices(const unsigned int z0, const unsigned int z1, const unsigned int c0=0) { const unsigned int beg = offset(0,0,z0,c0), end = offset(0,0,z1,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_slices(): Invalid request of a shared-memory subset (0->%u,0->%u,%u->%u,%u).", cimg_instance, _width-1,_height-1,z0,z1,c0); return CImg(_data+beg,_width,_height,z1-z0+1,1,true); } //! Return a shared memory image referencing a range of slices of the image instance \const. const CImg get_shared_slices(const unsigned int z0, const unsigned int z1, const unsigned int c0=0) const { const unsigned int beg = offset(0,0,z0,c0), end = offset(0,0,z1,c0); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_slices(): Invalid request of a shared-memory subset (0->%u,0->%u,%u->%u,%u).", cimg_instance, _width-1,_height-1,z0,z1,c0); return CImg(_data+beg,_width,_height,z1-z0+1,1,true); } //! Return a shared-memory image referencing one slice of the image instance. /** \param z0 Z-coordinate. \param c0 C-coordinate. **/ CImg get_shared_slice(const unsigned int z0, const unsigned int c0=0) { return get_shared_slices(z0,z0,c0); } //! Return a shared-memory image referencing one slice of the image instance \const. const CImg get_shared_slice(const unsigned int z0, const unsigned int c0=0) const { return get_shared_slices(z0,z0,c0); } //! Return a shared-memory image referencing a range of channels of the image instance. /** \param c0 C-coordinate of the starting channel. \param c1 C-coordinate of the ending channel. **/ CImg get_shared_channels(const unsigned int c0, const unsigned int c1) { const unsigned int beg = offset(0,0,0,c0), end = offset(0,0,0,c1); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_channels(): Invalid request of a shared-memory subset (0->%u,0->%u,0->%u,%u->%u).", cimg_instance, _width-1,_height-1,_depth-1,c0,c1); return CImg(_data+beg,_width,_height,_depth,c1-c0+1,true); } //! Return a shared-memory image referencing a range of channels of the image instance \const. const CImg get_shared_channels(const unsigned int c0, const unsigned int c1) const { const unsigned int beg = offset(0,0,0,c0), end = offset(0,0,0,c1); if (beg>end || beg>=size() || end>=size()) throw CImgArgumentException(_cimg_instance "get_shared_channels(): Invalid request of a shared-memory subset (0->%u,0->%u,0->%u,%u->%u).", cimg_instance, _width-1,_height-1,_depth-1,c0,c1); return CImg(_data+beg,_width,_height,_depth,c1-c0+1,true); } //! Return a shared-memory image referencing one channel of the image instance. /** \param c0 C-coordinate. **/ CImg get_shared_channel(const unsigned int c0) { return get_shared_channels(c0,c0); } //! Return a shared-memory image referencing one channel of the image instance \const. const CImg get_shared_channel(const unsigned int c0) const { return get_shared_channels(c0,c0); } //! Return a shared-memory version of the image instance. CImg get_shared() { return CImg(_data,_width,_height,_depth,_spectrum,true); } //! Return a shared-memory version of the image instance \const. const CImg get_shared() const { return CImg(_data,_width,_height,_depth,_spectrum,true); } //! Split image into a list along specified axis. /** \param axis Splitting axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param nb Number of splitted parts. \note - If \c nb==0, there are as much splitted parts as the image size along the specified axis. - If \c nb<=0, instance image is splitted into blocs of -\c nb pixel wide. - If \c nb>0, instance image is splitted into \c nb blocs. **/ CImgList get_split(const char axis, const int nb=0) const { CImgList res; const char _axis = cimg::uncase(axis); if (nb<=0) { // Split by bloc size. const unsigned int dp = (unsigned int)(nb?-nb:1); int p = 0; switch (_axis) { case 'x': { for (int pe=_width-dp; psiz) throw CImgArgumentException(_cimg_instance "get_split(): Instance cannot be split along %c-axis into %u blocs.", cimg_instance, axis,nb); int err = (int)siz; unsigned int _p = 0; switch (_axis) { case 'x' : { cimg_forX(*this,p) if ((err-=nb)<=0) { get_crop(_p,0,0,0,p,_height-1,_depth-1,_spectrum-1).move_to(res); err+=(int)siz; _p=p+1; } } break; case 'y' : { cimg_forY(*this,p) if ((err-=nb)<=0) { get_crop(0,_p,0,0,_width-1,p,_depth-1,_spectrum-1).move_to(res); err+=(int)siz; _p=p+1; } } break; case 'z' : { cimg_forZ(*this,p) if ((err-=nb)<=0) { get_crop(0,0,_p,0,_width-1,_height-1,p,_spectrum-1).move_to(res); err+=(int)siz; _p=p+1; } } break; default : { cimg_forC(*this,p) if ((err-=nb)<=0) { get_crop(0,0,0,_p,_width-1,_height-1,_depth-1,p).move_to(res); err+=(int)siz; _p=p+1; } } } } return res; } //! Split image into a list of one-column vectors, according to a specified splitting value. /** \param value Splitting value. \param keep_values Tells if the splitting value must be kept in the splitted blocs. \param is_shared Tells if the splitted blocs have shared memory buffers. **/ CImgList get_split(const T value, const bool keep_values, const bool is_shared) const { CImgList res; for (const T *ps = _data, *_ps = ps, *const pe = end(); ps(ps,1,siz,1,1,is_shared),~0U,is_shared); ps = _ps; while (_ps(ps,1,siz,1,1,is_shared),~0U,is_shared); ps = _ps; } return res; } //! Split image into a list of one-column vectors, according to a specified splitting value sequence. /** \param values Splitting value sequence. \param keep_values Tells if the splitting sequence must be kept in the splitted blocs. \param is_shared Tells if the splitted blocs have shared memory buffers. **/ template CImgList get_split(const CImg& values, const bool keep_values, const bool is_shared) const { if (!values) return CImgList(*this); if (values.size()==1) return get_split(*values,keep_values,is_shared); CImgList res; const t *pve = values.end(); for (const T *ps = _data, *_ps = ps, *const pe = end(); ps(ps,1,siz,1,1,is_shared),~0U,is_shared); // If match found. ps = _ps; // Try to find non-match from current position. do { pv = values._data; while (_ps(ps,1,siz,1,1,is_shared),~0U,is_shared); ps = _ps; } return res; } //! Append two images along specified axis. /** \param img Image to append with instance image. \param axis Appending axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Append alignment in \c [0,1]. **/ template CImg& append(const CImg& img, const char axis='x', const float align=0) { if (is_empty()) return assign(img,false); if (!img) return *this; return CImgList(*this,true).insert(img).get_append(axis,align).move_to(*this); } //! Append two images along specified axis \specialization. CImg& append(const CImg& img, const char axis='x', const float align=0) { if (is_empty()) return assign(img,false); if (!img) return *this; return CImgList(*this,img,true).get_append(axis,align).move_to(*this); } //! Append two images along specified axis \const. template CImg<_cimg_Tt> get_append(const CImg& img, const char axis='x', const float align=0) const { if (is_empty()) return +img; if (!img) return +*this; return CImgList<_cimg_Tt>(*this,true).insert(img).get_append(axis,align); } //! Append two images along specified axis \specialization. CImg get_append(const CImg& img, const char axis='x', const float align=0) const { if (is_empty()) return +img; if (!img) return +*this; return CImgList(*this,img,true).get_append(axis,align); } //@} //--------------------------------------- // //! \name Filtering / Transforms //@{ //--------------------------------------- //! Correlate image by a mask. /** \param mask = the correlation kernel. \param boundary_conditions = the border condition type (0=zero, 1=dirichlet) \param is_normalized = enable local normalization. \note - The correlation of the image instance \p *this by the mask \p mask is defined to be: res(x,y,z) = sum_{i,j,k} (*this)(x+i,y+j,z+k)*mask(i,j,k). **/ template CImg& correlate(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) { if (is_empty() || !mask) return *this; return get_correlate(mask,boundary_conditions,is_normalized).move_to(*this); } //! Correlate image by a mask \newinstance. template CImg<_cimg_Ttfloat> get_correlate(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) const { if (is_empty() || !mask) return *this; typedef _cimg_Ttfloat Ttfloat; CImg res(_width,_height,_depth,cimg::max(_spectrum,mask._spectrum)); if (boundary_conditions && mask._width==mask._height && ((mask._depth==1 && mask._width<=5) || (mask._depth==mask._width && mask._width<=3))) { // A special optimization is done for 2x2, 3x3, 4x4, 5x5, 2x2x2 and 3x3x3 mask (with boundary_conditions=1) Ttfloat *ptrd = res._data; switch (mask._depth) { case 3 : { T I[27] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_for3x3x3(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[ 0]*I[ 0] + I[ 1]*I[ 1] + I[ 2]*I[ 2] + I[ 3]*I[ 3] + I[ 4]*I[ 4] + I[ 5]*I[ 5] + I[ 6]*I[ 6] + I[ 7]*I[ 7] + I[ 8]*I[ 8] + I[ 9]*I[ 9] + I[10]*I[10] + I[11]*I[11] + I[12]*I[12] + I[13]*I[13] + I[14]*I[14] + I[15]*I[15] + I[16]*I[16] + I[17]*I[17] + I[18]*I[18] + I[19]*I[19] + I[20]*I[20] + I[21]*I[21] + I[22]*I[22] + I[23]*I[23] + I[24]*I[24] + I[25]*I[25] + I[26]*I[26]); *(ptrd++) = (Ttfloat)(N?(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24] + I[25]*_mask[25] + I[26]*_mask[26])/std::sqrt(N):0); } } else cimg_for3x3x3(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24] + I[25]*_mask[25] + I[26]*_mask[26]); } } break; case 2 : { T I[8] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_for2x2x2(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[0]*I[0] + I[1]*I[1] + I[2]*I[2] + I[3]*I[3] + I[4]*I[4] + I[5]*I[5] + I[6]*I[6] + I[7]*I[7]); *(ptrd++) = (Ttfloat)(N?(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3] + I[4]*_mask[4] + I[5]*_mask[5] + I[6]*_mask[6] + I[7]*_mask[7])/std::sqrt(N):0); } } else cimg_for2x2x2(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3] + I[4]*_mask[4] + I[5]*_mask[5] + I[6]*_mask[6] + I[7]*_mask[7]); } } break; default : case 1 : switch (mask._width) { case 6 : { T I[36] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_forZ(_img,z) cimg_for6x6(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[ 0]*I[ 0] + I[ 1]*I[ 1] + I[ 2]*I[ 2] + I[ 3]*I[ 3] + I[ 4]*I[ 4] + I[ 5]*I[ 5] + I[ 6]*I[ 6] + I[ 7]*I[ 7] + I[ 8]*I[ 8] + I[ 9]*I[ 9] + I[10]*I[10] + I[11]*I[11] + I[12]*I[12] + I[13]*I[13] + I[14]*I[14] + I[15]*I[15] + I[16]*I[16] + I[17]*I[17] + I[18]*I[18] + I[19]*I[19] + I[20]*I[20] + I[21]*I[21] + I[22]*I[22] + I[23]*I[23] + I[24]*I[24] + I[25]*I[25] + I[26]*I[26] + I[27]*I[27] + I[28]*I[28] + I[29]*I[29] + I[30]*I[30] + I[31]*I[31] + I[32]*I[32] + I[33]*I[33] + I[34]*I[34] + I[35]*I[35]); *(ptrd++) = (Ttfloat)(N?(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24] + I[25]*_mask[25] + I[26]*_mask[26] + I[27]*_mask[27] + I[28]*_mask[28] + I[29]*_mask[29] + I[30]*_mask[30] + I[31]*_mask[31] + I[32]*_mask[32] + I[33]*_mask[33] + I[34]*_mask[34] + I[35]*_mask[35])/std::sqrt(N):0); } } else cimg_forZ(_img,z) cimg_for6x6(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24] + I[25]*_mask[25] + I[26]*_mask[26] + I[27]*_mask[27] + I[28]*_mask[28] + I[29]*_mask[29] + I[30]*_mask[30] + I[31]*_mask[31] + I[32]*_mask[32] + I[33]*_mask[33] + I[34]*_mask[34] + I[35]*_mask[35]); } } break; case 5 : { T I[25] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_forZ(_img,z) cimg_for5x5(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[ 0]*I[ 0] + I[ 1]*I[ 1] + I[ 2]*I[ 2] + I[ 3]*I[ 3] + I[ 4]*I[ 4] + I[ 5]*I[ 5] + I[ 6]*I[ 6] + I[ 7]*I[ 7] + I[ 8]*I[ 8] + I[ 9]*I[ 9] + I[10]*I[10] + I[11]*I[11] + I[12]*I[12] + I[13]*I[13] + I[14]*I[14] + I[15]*I[15] + I[16]*I[16] + I[17]*I[17] + I[18]*I[18] + I[19]*I[19] + I[20]*I[20] + I[21]*I[21] + I[22]*I[22] + I[23]*I[23] + I[24]*I[24]); *(ptrd++) = (Ttfloat)(N?(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24])/std::sqrt(N):0); } } else cimg_forZ(_img,z) cimg_for5x5(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15] + I[16]*_mask[16] + I[17]*_mask[17] + I[18]*_mask[18] + I[19]*_mask[19] + I[20]*_mask[20] + I[21]*_mask[21] + I[22]*_mask[22] + I[23]*_mask[23] + I[24]*_mask[24]); } } break; case 4 : { T I[16] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_forZ(_img,z) cimg_for4x4(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[ 0]*I[ 0] + I[ 1]*I[ 1] + I[ 2]*I[ 2] + I[ 3]*I[ 3] + I[ 4]*I[ 4] + I[ 5]*I[ 5] + I[ 6]*I[ 6] + I[ 7]*I[ 7] + I[ 8]*I[ 8] + I[ 9]*I[ 9] + I[10]*I[10] + I[11]*I[11] + I[12]*I[12] + I[13]*I[13] + I[14]*I[14] + I[15]*I[15]); *(ptrd++) = (Ttfloat)(N?(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15])/std::sqrt(N):0); } } else cimg_forZ(_img,z) cimg_for4x4(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[ 0]*_mask[ 0] + I[ 1]*_mask[ 1] + I[ 2]*_mask[ 2] + I[ 3]*_mask[ 3] + I[ 4]*_mask[ 4] + I[ 5]*_mask[ 5] + I[ 6]*_mask[ 6] + I[ 7]*_mask[ 7] + I[ 8]*_mask[ 8] + I[ 9]*_mask[ 9] + I[10]*_mask[10] + I[11]*_mask[11] + I[12]*_mask[12] + I[13]*_mask[13] + I[14]*_mask[14] + I[15]*_mask[15]); } } break; case 3 : { T I[9] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_forZ(_img,z) cimg_for3x3(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[0]*I[0] + I[1]*I[1] + I[2]*I[2] + I[3]*I[3] + I[4]*I[4] + I[5]*I[5] + I[6]*I[6] + I[7]*I[7] + I[8]*I[8]); *(ptrd++) = (Ttfloat)(N?(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3] + I[4]*_mask[4] + I[5]*_mask[5] + I[6]*_mask[6] + I[7]*_mask[7] + I[8]*_mask[8])/std::sqrt(N):0); } } else cimg_forZ(_img,z) cimg_for3x3(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3] + I[4]*_mask[4] + I[5]*_mask[5] + I[6]*_mask[6] + I[7]*_mask[7] + I[8]*_mask[8]); } } break; case 2 : { T I[4] = { 0 }; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; cimg_forZ(_img,z) cimg_for2x2(_img,x,y,z,0,I,T) { const Ttfloat N = M*(I[0]*I[0] + I[1]*I[1] + I[2]*I[2] + I[3]*I[3]); *(ptrd++) = (Ttfloat)(N?(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3])/std::sqrt(N):0); } } else cimg_forZ(_img,z) cimg_for2x2(_img,x,y,z,0,I,T) *(ptrd++) = (Ttfloat)(I[0]*_mask[0] + I[1]*_mask[1] + I[2]*_mask[2] + I[3]*_mask[3]); } } break; case 1 : if (is_normalized) res.fill(1); else cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); res.get_shared_channel(c).assign(_img)*=_mask[0]; } break; } } } else { // Generic version for other masks and borders conditions. const int mx2 = mask.width()/2, my2 = mask.height()/2, mz2 = mask.depth()/2, mx1 = mx2 - 1 + (mask.width()%2), my1 = my2 - 1 + (mask.height()%2), mz1 = mz2 - 1 + (mask.depth()%2), mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2; cimg_forC(res,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { // Normalized correlation. const Ttfloat _M = (Ttfloat)_mask.magnitude(2), M = _M*_M; for (int z = mz1; z=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Ttfloat val = 0, N = 0; for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const Ttfloat _val = (Ttfloat)_img._atXYZ(x+xm,y+ym,z+zm); val+=_val*_mask(mx1+xm,my1+ym,mz1+zm); N+=_val*_val; } N*=M; res(x,y,z,c) = (Ttfloat)(N?val/std::sqrt(N):0); } else cimg_forYZ(res,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Ttfloat val = 0, N = 0; for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const Ttfloat _val = (Ttfloat)_img.atXYZ(x+xm,y+ym,z+zm,0,0); val+=_val*_mask(mx1+xm,my1+ym,mz1+zm); N+=_val*_val; } N*=M; res(x,y,z,c) = (Ttfloat)(N?val/std::sqrt(N):0); } } else { // Classical correlation. for (int z = mz1; z=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Ttfloat val = 0; for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) val+=_img._atXYZ(x+xm,y+ym,z+zm)*_mask(mx1+xm,my1+ym,mz1+zm); res(x,y,z,c) = (Ttfloat)val; } else cimg_forYZ(res,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Ttfloat val = 0; for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) val+=_img.atXYZ(x+xm,y+ym,z+zm,0,0)*_mask(mx1+xm,my1+ym,mz1+zm); res(x,y,z,c) = (Ttfloat)val; } } } } return res; } //! Convolve image by a mask. /** \param mask = the correlation kernel. \param boundary_conditions = the border condition type (0=zero, 1=dirichlet) \param is_normalized = enable local normalization. \note - The result \p res of the convolution of an image \p img by a mask \p mask is defined to be: res(x,y,z) = sum_{i,j,k} img(x-i,y-j,z-k)*mask(i,j,k) **/ template CImg& convolve(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) { if (is_empty() || !mask) return *this; return get_convolve(mask,boundary_conditions,is_normalized).move_to(*this); } //! Convolve image by a mask \newinstance. template CImg<_cimg_Ttfloat> get_convolve(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) const { if (is_empty() || !mask) return *this; return get_correlate(CImg(mask._data,mask.size(),1,1,1,true).get_mirror('x').resize(mask,-1),boundary_conditions,is_normalized); } //! Erode image by a structuring element. /** \param mask Structuring element. \param boundary_conditions Boundary conditions. \param is_normalized Tells if the erosion is locally normalized. **/ template CImg& erode(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) { if (is_empty() || !mask) return *this; return get_erode(mask,boundary_conditions,is_normalized).move_to(*this); } //! Erode image by a structuring element \newinstance. template CImg<_cimg_Tt> get_erode(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) const { if (is_empty() || !mask) return *this; typedef _cimg_Tt Tt; CImg res(_width,_height,_depth,cimg::max(_spectrum,mask._spectrum)); const int mx2 = mask.width()/2, my2 = mask.height()/2, mz2 = mask.depth()/2, mx1 = mx2 - 1 + (mask.width()%2), my1 = my2 - 1 + (mask.height()%2), mz1 = mz2 - 1 + (mask.depth()%2), mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2; cimg_forC(*this,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { // Normalized erosion. for (int z = mz1; z::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img(x+xm,y+ym,z+zm) + mval); if (mval && cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt min_val = cimg::type::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img._atXYZ(x+xm,y+ym,z+zm) + mval); if (mval && cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt min_val = cimg::type::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img.atXYZ(x+xm,y+ym,z+zm,0,0) + mval); if (mval && cval::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const Tt cval = (Tt)_img(x+xm,y+ym,z+zm); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt min_val = cimg::type::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const T cval = (Tt)_img._atXYZ(x+xm,y+ym,z+zm); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt min_val = cimg::type::max(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const T cval = (Tt)_img.atXYZ(x+xm,y+ym,z+zm,0,0); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval& erode(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { if (is_empty() || (sx==1 && sy==1 && sz==1)) return *this; if (sx>1 && _width>1) { // Along X-axis. const int L = width(), off = 1, s = (int)sx, _s1 = s/2, _s2 = s - _s1, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forYZC(*this,y,z,c) { const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val1 && _height>1) { // Along Y-axis. const int L = height(), off = width(), s = (int)sy, _s1 = s/2, _s2 = s - _s1, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forXZC(*this,x,z,c) { const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val1 && _depth>1) { // Along Z-axis. const int L = depth(), off = width()*height(), s = (int)sz, _s1 = s/2, _s2 = s - _s1, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forXYC(*this,x,y,c) { const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val<=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val get_erode(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) const { return (+*this).erode(sx,sy,sz); } //! Erode the image by a square structuring element of specified size. /** \param s Size of the structuring element. **/ CImg& erode(const unsigned int s) { return erode(s,s,s); } //! Erode the image by a square structuring element of specified size \newinstance. CImg get_erode(const unsigned int s) const { return (+*this).erode(s); } //! Dilate image by a structuring element. /** \param mask Structuring element. \param boundary_conditions Boundary conditions. \param is_normalized Tells if the erosion is locally normalized. **/ template CImg& dilate(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) { if (is_empty() || !mask) return *this; return get_dilate(mask,boundary_conditions,is_normalized).move_to(*this); } //! Dilate image by a structuring element \newinstance. template CImg<_cimg_Tt> get_dilate(const CImg& mask, const unsigned int boundary_conditions=1, const bool is_normalized=false) const { if (is_empty() || !mask) return *this; typedef _cimg_Tt Tt; CImg res(_width,_height,_depth,_spectrum); const int mx2 = mask.width()/2, my2 = mask.height()/2, mz2 = mask.depth()/2, mx1 = mx2 - 1 + (mask.width()%2), my1 = my2 - 1 + (mask.height()%2), mz1 = mz2 - 1 + (mask.depth()%2), mxe = width() - mx2, mye = height() - my2, mze = depth() - mz2; cimg_forC(*this,c) { const CImg _img = get_shared_channel(c%_spectrum); const CImg _mask = mask.get_shared_channel(c%mask._spectrum); if (is_normalized) { // Normalized dilation. for (int z = mz1; z::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img(x+xm,y+ym,z+zm) - mval); if (mval && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } if (boundary_conditions) cimg_forYZ(res,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt max_val = cimg::type::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img._atXYZ(x+xm,y+ym,z+zm) - mval); if (mval && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } else cimg_forYZ(*this,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt max_val = cimg::type::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const t mval = _mask(mx1+xm,my1+ym,mz1+zm); const Tt cval = (Tt)(_img.atXYZ(x+xm,y+ym,z+zm,0,0) - mval); if (mval && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } } else { // Classical dilation. for (int z = mz1; z::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const Tt cval = (Tt)_img(x+xm,y+ym,z+zm); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } if (boundary_conditions) cimg_forYZ(res,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt max_val = cimg::type::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const T cval = (Tt)_img._atXYZ(x+xm,y+ym,z+zm); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } else cimg_forYZ(res,y,z) for (int x = 0; x=mye || z=mze)?++x:((x=mxe)?++x:(x=mxe))) { Tt max_val = cimg::type::min(); for (int zm = -mz1; zm<=mz2; ++zm) for (int ym = -my1; ym<=my2; ++ym) for (int xm = -mx1; xm<=mx2; ++xm) { const T cval = (Tt)_img.atXYZ(x+xm,y+ym,z+zm,0,0); if (_mask(mx1+xm,my1+ym,mz1+zm) && cval>max_val) max_val = cval; } res(x,y,z,c) = max_val; } } } return res; } //! Dilate image by a rectangular structuring element of specified size. /** \param sx Width of the structuring element. \param sy Height of the structuring element. \param sz Depth of the structuring element. **/ CImg& dilate(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) { if (is_empty() || (sx==1 && sy==1 && sz==1)) return *this; if (sx>1 && _width>1) { // Along X-axis. const int L = width(), off = 1, s = (int)sx, _s2 = s/2 + 1, _s1 = s - _s2, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forYZC(*this,y,z,c) { const T *const ptrsb = data(0,y,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs=cur) { cur = val; is_first = false; } *(ptrd++) = cur; } for (int p = L - s - 1; p>0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval>cur) cur = nval; } nptrs-=off; const T nval = *nptrs; if (nval>cur) { cur = nval; is_first = true; } else is_first = false; } else { if (val>=cur) cur = val; else if (cur==*(ptrs-s*off)) is_first = true; } *(ptrd++) = cur; } ptrd = ptrde; ptrs = ptrse; cur = *ptrs; ptrs-=off; for (int p = s1; p>0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val>cur) cur = val; } *(ptrd--) = cur; for (int p = s2-1; p>0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val>cur) cur = val; *(ptrd--) = cur; } T *pd = data(0,y,z,c); cimg_for(buf,ps,T) { *pd = *ps; pd+=off; } } } if (sy>1 && _height>1) { // Along Y-axis. const int L = height(), off = width(), s = (int)sy, _s2 = s/2 + 1, _s1 = s - _s2, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forXZC(*this,x,z,c) { const T *const ptrsb = data(x,0,z,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs=cur) { cur = val; is_first = false; } *(ptrd++) = cur; } for (int p = L - s - 1; p>0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval>cur) cur = nval; } nptrs-=off; const T nval = *nptrs; if (nval>cur) { cur = nval; is_first = true; } else is_first = false; } else { if (val>=cur) cur = val; else if (cur==*(ptrs-s*off)) is_first = true; } *(ptrd++) = cur; } ptrd = ptrde; ptrs = ptrse; cur = *ptrs; ptrs-=off; for (int p = s1; p>0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val>cur) cur = val; } *(ptrd--) = cur; for (int p = s2-1; p>0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val>cur) cur = val; *(ptrd--) = cur; } T *pd = data(x,0,z,c); cimg_for(buf,ps,T) { *pd = *ps; pd+=off; } } } if (sz>1 && _depth>1) { // Along Z-axis. const int L = depth(), off = width()*height(), s = (int)sz, _s2 = s/2 + 1, _s1 = s - _s2, s1 = _s1>L?L:_s1, s2 = _s2>L?L:_s2; CImg buf(L); T *const ptrdb = buf._data, *ptrd = ptrdb, *const ptrde = buf._data + L - 1; cimg_forXYC(*this,x,y,c) { const T *const ptrsb = data(x,y,0,c), *ptrs = ptrsb, *const ptrse = ptrs + L*off - off; ptrd = buf._data; T cur = *ptrs; ptrs+=off; bool is_first = true; for (int p = s2-1; p>0 && ptrs<=ptrse; --p) { const T val = *ptrs; ptrs+=off; if (val>=cur) { cur = val; is_first = false; }} *(ptrd++) = cur; for (int p = s1; p>0 && ptrd<=ptrde; --p) { const T val = *ptrs; if (ptrs=cur) { cur = val; is_first = false; } *(ptrd++) = cur; } for (int p = L - s - 1; p>0; --p) { const T val = *ptrs; ptrs+=off; if (is_first) { const T *nptrs = ptrs - off; cur = val; for (int q = s - 2; q>0; --q) { nptrs-=off; const T nval = *nptrs; if (nval>cur) cur = nval; } nptrs-=off; const T nval = *nptrs; if (nval>cur) { cur = nval; is_first = true; } else is_first = false; } else { if (val>=cur) cur = val; else if (cur==*(ptrs-s*off)) is_first = true; } *(ptrd++) = cur; } ptrd = ptrde; ptrs = ptrse; cur = *ptrs; ptrs-=off; for (int p = s1; p>0 && ptrs>=ptrsb; --p) { const T val = *ptrs; ptrs-=off; if (val>cur) cur = val; } *(ptrd--) = cur; for (int p = s2-1; p>0 && ptrd>=ptrdb; --p) { const T val = *ptrs; if (ptrs>ptrsb) ptrs-=off; if (val>cur) cur = val; *(ptrd--) = cur; } T *pd = data(x,y,0,c); cimg_for(buf,ps,T) { *pd = *ps; pd+=off; } } } return *this; } //! Dilate image by a rectangular structuring element of specified size \newinstance. CImg get_dilate(const unsigned int sx, const unsigned int sy, const unsigned int sz=1) const { return (+*this).dilate(sx,sy,sz); } //! Dilate image by a square structuring element of specified size. /** \param s Size of the structuring element. **/ CImg& dilate(const unsigned int s) { return dilate(s,s,s); } //! Dilate image by a square structuring element of specified size \newinstance. CImg get_dilate(const unsigned int s) const { return (+*this).dilate(s); } //! Compute watershed transform. /** \param priority Priority map. \param fill_lines Tells if watershed lines must be filled or not. \note Non-zero values of the instance instance are propagated to zero-valued ones according to specified the priority map. **/ template CImg& watershed(const CImg& priority, const bool fill_lines=true) { if (is_empty()) return *this; if (!is_sameXYZ(priority)) throw CImgArgumentException(_cimg_instance "watershed(): image instance and specified priority (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance,priority._width,priority._height,priority._depth,priority._spectrum,priority._data); if (_spectrum!=1) { cimg_forC(*this,c) get_shared_channel(c).watershed(priority.get_shared_channel(c%priority._spectrum),fill_lines); return *this; } CImg in_queue(_width,_height,_depth,1,0); CImg::type> Q; unsigned int sizeQ = 0; // Find seed points and insert them in priority queue. const T *ptrs = _data; cimg_forXYZ(*this,x,y,z) if (*(ptrs++)) { if (x-1>=0 && !(*this)(x-1,y,z)) Q._priority_queue_insert(in_queue,sizeQ,priority(x-1,y,z),x-1,y,z); if (x+1=0 && !(*this)(x,y-1,z)) Q._priority_queue_insert(in_queue,sizeQ,priority(x,y-1,z),x,y-1,z); if (y+1=0 && !(*this)(x,y,z-1)) Q._priority_queue_insert(in_queue,sizeQ,priority(x,y,z-1),x,y,z-1); if (z+1=0) { if ((*this)(x-1,y,z)) { if (!label) label = (unsigned int)(*this)(x-1,y,z); else if (label!=(*this)(x-1,y,z)) is_same_label = false; } else Q._priority_queue_insert(in_queue,sizeQ,priority(x-1,y,z),x-1,y,z); } if (x+1=0) { if ((*this)(x,y-1,z)) { if (!label) label = (unsigned int)(*this)(x,y-1,z); else if (label!=(*this)(x,y-1,z)) is_same_label = false; } else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y-1,z),x,y-1,z); } if (y+1=0) { if ((*this)(x,y,z-1)) { if (!label) label = (unsigned int)(*this)(x,y,z-1); else if (label!=(*this)(x,y,z-1)) is_same_label = false; } else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y,z-1),x,y,z-1); } if (z+1=0 && (*this)(x-1,y,z)) || (x+1=0 && (*this)(x,y-1,z)) || (y+1=0 && (*this)(x,y,z-1)) || (z+1>depth() && (*this)(x,y,z+1)))) Q._priority_queue_insert(in_queue,sizeQ,priority(x,y,z),x,y,z); // Start line filling process. while (sizeQ) { const int x = (int)Q(0,1), y = (int)Q(0,2), z = (int)Q(0,3); Q._priority_queue_remove(sizeQ); t pmax = cimg::type::min(); int xmax = 0, ymax = 0, zmax = 0; if (x-1>=0) { if ((*this)(x-1,y,z)) { if (priority(x-1,y,z)>pmax) { pmax = priority(x-1,y,z); xmax = x-1; ymax = y; zmax = z; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x-1,y,z),x-1,y,z); } if (x+1pmax) { pmax = priority(x+1,y,z); xmax = x+1; ymax = y; zmax = z; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x+1,y,z),x+1,y,z); } if (y-1>=0) { if ((*this)(x,y-1,z)) { if (priority(x,y-1,z)>pmax) { pmax = priority(x,y-1,z); xmax = x; ymax = y-1; zmax = z; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y-1,z),x,y-1,z); } if (y+1pmax) { pmax = priority(x,y+1,z); xmax = x; ymax = y+1; zmax = z; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y+1,z),x,y+1,z); } if (z-1>=0) { if ((*this)(x,y,z-1)) { if (priority(x,y,z-1)>pmax) { pmax = priority(x,y,z-1); xmax = x; ymax = y; zmax = z-1; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y,z-1),x,y,z-1); } if (z+1pmax) { pmax = priority(x,y,z+1); xmax = x; ymax = y; zmax = z+1; }} else Q._priority_queue_insert(in_queue,sizeQ,priority(x,y,z+1),x,y,z+1); } (*this)(x,y,z) = (*this)(xmax,ymax,zmax); } } return *this; } //! Compute watershed transform \newinstance. template CImg get_watershed(const CImg& priority, const bool fill_lines=true) const { return (+*this).watershed(priority,fill_lines); } // [internal] Insert/Remove items in priority queue, for watershed/distance transforms. template bool _priority_queue_insert(CImg& in_queue, unsigned int& siz, const t value, const unsigned int x, const unsigned int y, const unsigned int z) { if (in_queue(x,y,z)) return false; in_queue(x,y,z) = true; if (++siz>=_width) { if (!is_empty()) resize(_width*2,4,1,1,0); else assign(64,4); } (*this)(siz-1,0) = (T)value; (*this)(siz-1,1) = (T)x; (*this)(siz-1,2) = (T)y; (*this)(siz-1,3) = (T)z; for (unsigned int pos = siz - 1, par = 0; pos && value>(*this)(par=(pos+1)/2-1,0); pos = par) { cimg::swap((*this)(pos,0),(*this)(par,0)); cimg::swap((*this)(pos,1),(*this)(par,1)); cimg::swap((*this)(pos,2),(*this)(par,2)); cimg::swap((*this)(pos,3),(*this)(par,3)); } return true; } CImg& _priority_queue_remove(unsigned int& siz) { (*this)(0,0) = (*this)(--siz,0); (*this)(0,1) = (*this)(siz,1); (*this)(0,2) = (*this)(siz,2); (*this)(0,3) = (*this)(siz,3); const float value = (*this)(0,0); for (unsigned int pos = 0, left = 0, right = 0; ((right=2*(pos+1),(left=right-1))(*this)(right,0)) { cimg::swap((*this)(pos,0),(*this)(left,0)); cimg::swap((*this)(pos,1),(*this)(left,1)); cimg::swap((*this)(pos,2),(*this)(left,2)); cimg::swap((*this)(pos,3),(*this)(left,3)); pos = left; } else { cimg::swap((*this)(pos,0),(*this)(right,0)); cimg::swap((*this)(pos,1),(*this)(right,1)); cimg::swap((*this)(pos,2),(*this)(right,2)); cimg::swap((*this)(pos,3),(*this)(right,3)); pos = right; } } else { cimg::swap((*this)(pos,0),(*this)(left,0)); cimg::swap((*this)(pos,1),(*this)(left,1)); cimg::swap((*this)(pos,2),(*this)(left,2)); cimg::swap((*this)(pos,3),(*this)(left,3)); pos = left; } } return *this; } //! Apply recursive Deriche filter. /** \param sigma Standard deviation of the filter. \param order Order of the filter. Can be { 0=smooth-filter | 1=1st-derivative | 2=2nd-derivative }. \param axis Axis along which the filter is computed. Can be { 'x' | 'y' | 'z' | 'c' }. \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. **/ CImg& deriche(const float sigma, const int order=0, const char axis='x', const bool boundary_conditions=true) { #define _cimg_deriche_apply \ Tfloat *ptrY = Y._data, yb = 0, yp = 0; \ T xp = (T)0; \ if (boundary_conditions) { xp = *ptrX; yb = yp = (Tfloat)(coefp*xp); } \ for (int m = 0; m=0; --n) { \ const T xc = *(ptrX-=off); \ const Tfloat yc = (Tfloat)(a2*xn + a3*xa - b1*yn - b2*ya); \ xa = xn; xn = xc; ya = yn; yn = yc; \ *ptrX = (T)(*(--ptrY)+yc); \ } const char naxis = cimg::uncase(axis); const float nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width:naxis=='y'?_height:naxis=='z'?_depth:_spectrum)/100; if (is_empty() || (nsigma<0.1f && !order)) return *this; const float nnsigma = nsigma<0.1f?0.1f:nsigma, alpha = 1.695f/nnsigma, ema = (float)std::exp(-alpha), ema2 = (float)std::exp(-2*alpha), b1 = -2*ema, b2 = ema2; float a0 = 0, a1 = 0, a2 = 0, a3 = 0, coefp = 0, coefn = 0; switch (order) { case 0 : { const float k = (1-ema)*(1-ema)/(1+2*alpha*ema-ema2); a0 = k; a1 = k*(alpha-1)*ema; a2 = k*(alpha+1)*ema; a3 = -k*ema2; } break; case 1 : { const float k = -(1-ema)*(1-ema)*(1-ema)/(2*(ema+1)*ema); a0 = a3 = 0; a1 = k*ema; a2 = -a1; } break; case 2 : { const float ea = (float)std::exp(-alpha), k = -(ema2-1)/(2*alpha*ema), kn = (-2*(-1+3*ea-3*ea*ea+ea*ea*ea)/(3*ea+1+3*ea*ea+ea*ea*ea)); a0 = kn; a1 = -kn*(1+k*alpha)*ema; a2 = kn*(1-k*alpha)*ema; a3 = -kn*ema2; } break; default : throw CImgArgumentException(_cimg_instance "deriche(): Invalid specified filter order %u " "(should be { 0=smoothing | 1=1st-derivative | 2=2nd-derivative }).", cimg_instance, order); } coefp = (a0+a1)/(1+b1+b2); coefn = (a2+a3)/(1+b1+b2); switch (naxis) { case 'x' : { const int N = _width; const unsigned long off = 1U; CImg Y(N); cimg_forYZC(*this,y,z,c) { T *ptrX = data(0,y,z,c); _cimg_deriche_apply; } } break; case 'y' : { const int N = _height; const unsigned long off = (unsigned long)_width; CImg Y(N); cimg_forXZC(*this,x,z,c) { T *ptrX = data(x,0,z,c); _cimg_deriche_apply; } } break; case 'z' : { const int N = _depth; const unsigned long off = (unsigned long)_width*_height; CImg Y(N); cimg_forXYC(*this,x,y,c) { T *ptrX = data(x,y,0,c); _cimg_deriche_apply; } } break; default : { const int N = _spectrum; const unsigned long off = (unsigned long)_width*_height*_depth; CImg Y(N); cimg_forXYZ(*this,x,y,z) { T *ptrX = data(x,y,z,0); _cimg_deriche_apply; } } } return *this; } //! Apply recursive Deriche filter \newinstance. CImg get_deriche(const float sigma, const int order=0, const char axis='x', const bool boundary_conditions=true) const { return CImg(*this,false).deriche(sigma,order,axis,boundary_conditions); } // [internal] Apply a recursive filter (used by CImg::vanvliet()). /** \param ptr the pointer of the data \param filter the coefficient of the filter in the following order [n,n-1,n-2,n-3]. \param N size of the data \param off the offset between two data point \param order the order of the filter 0 (smoothing), 1st derivtive, 2nd derivative, 3rd derivative \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. \note dirichlet boundary conditions have a strange behavior. And boundary condition should be corrected using Bill Triggs method (IEEE trans on Sig Proc 2005). **/ template static void _cimg_recursive_apply(T *data, const Tfloat filter[], const int N, const unsigned long off, const int order, const bool boundary_conditions) { Tfloat val[K]; // res[n,n-1,n-2,n-3,..] or res[n,n+1,n+2,n+3,..] switch (order) { case 0 : { for (int pass = 0; pass<2; ++pass) { for (int k = 1; k0; --k) val[k] = val[k-1]; } if (!pass) data-=off; } } break; case 1 : { Tfloat x[3]; // [front,center,back] for (int pass = 0; pass<2; ++pass) { for (int k = 0; k<3; ++k) x[k] = (Tfloat)(boundary_conditions?*data:0); for (int k = 0; k0; --k) x[k] = x[k-1]; } else data-=off; for (int k = K-1; k>0; --k) val[k] = val[k-1]; } *data = (T)0; } } break; case 2: { Tfloat x[3]; // [front,center,back] for (int pass = 0; pass<2; ++pass) { for (int k = 0; k<3; ++k) x[k] = (Tfloat)(boundary_conditions?*data:0); for (int k = 0; k0; --k) x[k] = x[k-1]; for (int k = K-1; k>0; --k) val[k] = val[k-1]; } *data = (T)0; } } break; case 3: { Tfloat x[3]; // [front,center,back] for (int pass = 0; pass<2; ++pass) { for (int k = 0; k<3; ++k) x[k] = (Tfloat)(boundary_conditions?*data:0); for (int k = 0; k0; --k) x[k] = x[k-1]; for (int k = K-1; k>0; --k) val[k] = val[k-1]; } *data = (T)0; } } break; } } //! Van Vliet recursive Gaussian filter. /** \param sigma standard deviation of the Gaussian filter \param order the order of the filter 0,1,2,3 \param axis Axis along which the filter is computed. Can be { 'x' | 'y' | 'z' | 'c' }. \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }. \note dirichlet boundary condition has a strange behavior Ian T. Young, Lucas J. van Vliet, Recursive implementation of the Gaussian filter, Signal Processing, Volume 44, Issue 2, June 1995, Pages 139-151, **/ CImg& vanvliet(const float sigma, const int order, const char axis='x', const bool boundary_conditions=true) { if (is_empty()) return *this; const char naxis = cimg::uncase(axis); const float nsigma = sigma>=0?sigma:-sigma*(naxis=='x'?_width:naxis=='y'?_height:naxis=='z'?_depth:_spectrum)/100; if (is_empty() || (nsigma<0.1f && !order)) return *this; const Tfloat nnsigma = nsigma<0.1f?0.1f:nsigma, q = (Tfloat)(nnsigma<2.5?3.97156-4.14554*std::sqrt(1-0.2689*nnsigma):0.98711*nnsigma-0.96330), b0 = 1.57825f + 2.44413f*q + 1.4281f*q*q + 0.4222205f*q*q*q, b1 = (2.44413f*q + 2.85619f*q*q + 1.26661f*q*q*q), b2 = -(1.4281f*q*q + 1.26661f*q*q*q), b3 = 0.4222205f*q*q*q, B = 1.f - (b1 + b2 + b3)/b0; Tfloat filter[4]; filter[0] = B; filter[1] = b1/b0; filter[2] = b2/b0; filter[3] = b3/b0; switch (naxis) { case 'x' : { #ifdef cimg_use_openmp #pragma omp parallel for collapse(3) #endif cimg_forYZC(*this,y,z,c) _cimg_recursive_apply<4>(data(0,y,z,c),filter,_width,1U,order,boundary_conditions); } break; case 'y' : { #ifdef cimg_use_openmp #pragma omp parallel for collapse(3) #endif cimg_forXZC(*this,x,z,c) _cimg_recursive_apply<4>(data(x,0,z,c),filter,_height,(unsigned long)_width,order,boundary_conditions); } break; case 'z' : { #ifdef cimg_use_openmp #pragma omp parallel for collapse(3) #endif cimg_forXYC(*this,x,y,c) _cimg_recursive_apply<4>(data(x,y,0,c),filter,_depth,(unsigned long)(_width*_height),order,boundary_conditions); } break; default : { #ifdef cimg_use_openmp #pragma omp parallel for collapse(3) #endif cimg_forXYZ(*this,x,y,z) _cimg_recursive_apply<4>(data(x,y,z,0),filter,_spectrum,(unsigned long)(_width*_height*_depth),order,boundary_conditions); } } return *this; } //! Blur image using Van Vliet recursive Gaussian filter. \newinstance. CImg get_vanvliet(const float sigma, const int order, const char axis='x', const bool boundary_conditions=true) const { return CImg(*this,false).vanvliet(sigma,order,axis,boundary_conditions); } //! Blur image. /** \param sigma_x Standard deviation of the blur, along the X-axis. \param sigma_y Standard deviation of the blur, along the Y-axis. \param sigma_z Standard deviation of the blur, along the Z-axis. \param boundary_conditions Boundary conditions. Can be { false=dirichlet | true=neumann }. \param is_gaussian Tells if the blur uses a gaussian (\c true) or quasi-gaussian (\c false) kernel. \note - The blur is computed as a 0-order Deriche filter. This is not a gaussian blur. - This is a recursive algorithm, not depending on the values of the standard deviations. \see deriche(), vanvliet(). **/ CImg& blur(const float sigma_x, const float sigma_y, const float sigma_z, const bool boundary_conditions=true, const bool is_gaussian=false) { if (!is_empty()) { if (is_gaussian) { if (_width>1) vanvliet(sigma_x,0,'x',boundary_conditions); if (_height>1) vanvliet(sigma_y,0,'y',boundary_conditions); if (_depth>1) vanvliet(sigma_z,0,'z',boundary_conditions); } else { if (_width>1) deriche(sigma_x,0,'x',boundary_conditions); if (_height>1) deriche(sigma_y,0,'y',boundary_conditions); if (_depth>1) deriche(sigma_z,0,'z',boundary_conditions); } } return *this; } //! Blur image \newinstance. CImg get_blur(const float sigma_x, const float sigma_y, const float sigma_z, const bool boundary_conditions=true, const bool is_gaussian=false) const { return CImg(*this,false).blur(sigma_x,sigma_y,sigma_z,boundary_conditions,is_gaussian); } //! Blur image isotropically. /** \param sigma Standard deviation of the blur. \param boundary_conditions Boundary conditions. Can be { 0=dirichlet | 1=neumann }.a \see deriche(), vanvliet(). **/ CImg& blur(const float sigma, const bool boundary_conditions=true, const bool is_gaussian=false) { const float nsigma = sigma>=0?sigma:-sigma*cimg::max(_width,_height,_depth)/100; return blur(nsigma,nsigma,nsigma,boundary_conditions,is_gaussian); } //! Blur image isotropically \newinstance. CImg get_blur(const float sigma, const bool boundary_conditions=true, const bool is_gaussian=false) const { return CImg(*this,false).blur(sigma,boundary_conditions,is_gaussian); } //! Blur image anisotropically, directed by a field of diffusion tensors. /** \param G Field of square roots of diffusion tensors/vectors used to drive the smoothing. \param amplitude Amplitude of the smoothing. \param dl Spatial discretization. \param da Angular discretization. \param gauss_prec Precision of the diffusion process. \param interpolation_type Interpolation scheme. Can be { 0=nearest-neighbor | 1=linear | 2=Runge-Kutta }. \param is_fast_approx Tells if a fast approximation of the gaussian function is used or not. **/ template CImg& blur_anisotropic(const CImg& G, const float amplitude=60, const float dl=0.8f, const float da=30, const float gauss_prec=2, const unsigned int interpolation_type=0, const bool is_fast_approx=1) { // Check arguments and init variables if (!is_sameXYZ(G) || (G._spectrum!=3 && G._spectrum!=6)) throw CImgArgumentException(_cimg_instance "blur_anisotropic(): Invalid specified diffusion tensor field (%u,%u,%u,%u,%p).", cimg_instance, G._width,G._height,G._depth,G._spectrum,G._data); if (is_empty() || amplitude<=0 || dl<0) return *this; const bool is_3d = (G._spectrum==6); T val_min, val_max = max_min(val_min); if (da<=0) { // Iterated oriented Laplacians CImg velocity(_width,_height,_depth,_spectrum); for (unsigned int iteration = 0; iteration<(unsigned int)amplitude; ++iteration) { Tfloat *ptrd = velocity._data, veloc_max = 0; if (is_3d) { // 3d version CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat ixx = Incc + Ipcc - 2*Iccc, ixy = (Innc + Ippc - Inpc - Ipnc)/4, ixz = (Incn + Ipcp - Incp - Ipcn)/4, iyy = Icnc + Icpc - 2*Iccc, iyz = (Icnn + Icpp - Icnp - Icpn)/4, izz = Iccn + Iccp - 2*Iccc, veloc = (Tfloat)(G(x,y,z,0)*ixx + 2*G(x,y,z,1)*ixy + 2*G(x,y,z,2)*ixz + G(x,y,z,3)*iyy + 2*G(x,y,z,4)*iyz + G(x,y,z,5)*izz); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } else { // 2d version CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat ixx = Inc + Ipc - 2*Icc, ixy = (Inn + Ipp - Inp - Ipn)/4, iyy = Icn + Icp - 2*Icc, veloc = (Tfloat)(G(x,y,0,0)*ixx + 2*G(x,y,0,1)*ixy + G(x,y,0,2)*iyy); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } if (veloc_max>0) *this+=(velocity*=dl/veloc_max); } } else { // LIC-based smoothing. const unsigned long whd = (unsigned long)_width*_height*_depth; const float sqrt2amplitude = (float)std::sqrt(2*amplitude); const int dx1 = width() - 1, dy1 = height() - 1, dz1 = depth() - 1; CImg res(_width,_height,_depth,_spectrum,0), W(_width,_height,_depth,is_3d?4:3), val(_spectrum); int N = 0; if (is_3d) { // 3d version for (float phi = (180%(int)da)/2.0f; phi<=180; phi+=da) { const float phir = (float)(phi*cimg::PI/180), datmp = (float)(da/std::cos(phir)), da2 = datmp<1?360.0f:datmp; for (float theta = 0; theta<360; (theta+=da2),++N) { const float thetar = (float)(theta*cimg::PI/180), vx = (float)(std::cos(thetar)*std::cos(phir)), vy = (float)(std::sin(thetar)*std::cos(phir)), vz = (float)std::sin(phir); const t *pa = G.data(0,0,0,0), *pb = G.data(0,0,0,1), *pc = G.data(0,0,0,2), *pd = G.data(0,0,0,3), *pe = G.data(0,0,0,4), *pf = G.data(0,0,0,5); Tfloat *pd0 = W.data(0,0,0,0), *pd1 = W.data(0,0,0,1), *pd2 = W.data(0,0,0,2), *pd3 = W.data(0,0,0,3); cimg_forXYZ(G,xg,yg,zg) { const t a = *(pa++), b = *(pb++), c = *(pc++), d = *(pd++), e = *(pe++), f = *(pf++); const float u = (float)(a*vx + b*vy + c*vz), v = (float)(b*vx + d*vy + e*vz), w = (float)(c*vx + e*vy + f*vz), n = (float)std::sqrt(1e-5+u*u+v*v+w*w), dln = dl/n; *(pd0++) = (Tfloat)(u*dln); *(pd1++) = (Tfloat)(v*dln); *(pd2++) = (Tfloat)(w*dln); *(pd3++) = (Tfloat)n; } Tfloat *ptrd = res._data; cimg_forXYZ(*this,x,y,z) { val.fill(0); const float n = (float)W(x,y,z,3), fsigma = (float)(n*sqrt2amplitude), fsigma2 = 2*fsigma*fsigma, length = gauss_prec*fsigma; float S = 0, X = (float)x, Y = (float)y, Z = (float)z; switch (interpolation_type) { case 0 : { // Nearest neighbor for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1 && Z>=0 && Z<=dz1; l+=dl) { const int cx = (int)(X+0.5f), cy = (int)(Y+0.5f), cz = (int)(Z+0.5f); const float u = (float)W(cx,cy,cz,0), v = (float)W(cx,cy,cz,1), w = (float)W(cx,cy,cz,2); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)(*this)(cx,cy,cz,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*(*this)(cx,cy,cz,c)); S+=coef; } X+=u; Y+=v; Z+=w; } } break; case 1 : { // Linear interpolation for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1 && Z>=0 && Z<=dz1; l+=dl) { const float u = (float)(W._linear_atXYZ(X,Y,Z,0)), v = (float)(W._linear_atXYZ(X,Y,Z,1)), w = (float)(W._linear_atXYZ(X,Y,Z,2)); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)_linear_atXYZ(X,Y,Z,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*_linear_atXYZ(X,Y,Z,c)); S+=coef; } X+=u; Y+=v; Z+=w; } } break; default : { // 2nd order Runge Kutta for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1 && Z>=0 && Z<=dz1; l+=dl) { const float u0 = (float)(0.5f*W._linear_atXYZ(X,Y,Z,0)), v0 = (float)(0.5f*W._linear_atXYZ(X,Y,Z,1)), w0 = (float)(0.5f*W._linear_atXYZ(X,Y,Z,2)), u = (float)(W._linear_atXYZ(X+u0,Y+v0,Z+w0,0)), v = (float)(W._linear_atXYZ(X+u0,Y+v0,Z+w0,1)), w = (float)(W._linear_atXYZ(X+u0,Y+v0,Z+w0,2)); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)_linear_atXYZ(X,Y,Z,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*_linear_atXYZ(X,Y,Z,c)); S+=coef; } X+=u; Y+=v; Z+=w; } } break; } Tfloat *_ptrd = ptrd++; if (S>0) cimg_forC(res,c) { *_ptrd+=val[c]/S; _ptrd+=whd; } else cimg_forC(res,c) { *_ptrd+=(Tfloat)((*this)(x,y,z,c)); _ptrd+=whd; } } } } } else { // 2d LIC algorithm for (float theta = (360%(int)da)/2.0f; theta<360; (theta+=da),++N) { const float thetar = (float)(theta*cimg::PI/180), vx = (float)(std::cos(thetar)), vy = (float)(std::sin(thetar)); const t *pa = G.data(0,0,0,0), *pb = G.data(0,0,0,1), *pc = G.data(0,0,0,2); Tfloat *pd0 = W.data(0,0,0,0), *pd1 = W.data(0,0,0,1), *pd2 = W.data(0,0,0,2); cimg_forXY(G,xg,yg) { const t a = *(pa++), b = *(pb++), c = *(pc++); const float u = (float)(a*vx + b*vy), v = (float)(b*vx + c*vy), n = (float)std::sqrt(1e-5+u*u+v*v), dln = dl/n; *(pd0++) = (Tfloat)(u*dln); *(pd1++) = (Tfloat)(v*dln); *(pd2++) = (Tfloat)n; } Tfloat *ptrd = res._data; cimg_forXY(*this,x,y) { val.fill(0); const float n = (float)W(x,y,0,2), fsigma = (float)(n*sqrt2amplitude), fsigma2 = 2*fsigma*fsigma, length = gauss_prec*fsigma; float S = 0, X = (float)x, Y = (float)y; switch (interpolation_type) { case 0 : { // Nearest-neighbor for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1; l+=dl) { const int cx = (int)(X+0.5f), cy = (int)(Y+0.5f); const float u = (float)W(cx,cy,0,0), v = (float)W(cx,cy,0,1); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)(*this)(cx,cy,0,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*(*this)(cx,cy,0,c)); S+=coef; } X+=u; Y+=v; } } break; case 1 : { // Linear interpolation for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1; l+=dl) { const float u = (float)(W._linear_atXY(X,Y,0,0)), v = (float)(W._linear_atXY(X,Y,0,1)); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)_linear_atXY(X,Y,0,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*_linear_atXY(X,Y,0,c)); S+=coef; } X+=u; Y+=v; } } break; default : { // 2nd-order Runge-kutta interpolation for (float l = 0; l=0 && X<=dx1 && Y>=0 && Y<=dy1; l+=dl) { const float u0 = (float)(0.5f*W._linear_atXY(X,Y,0,0)), v0 = (float)(0.5f*W._linear_atXY(X,Y,0,1)), u = (float)(W._linear_atXY(X+u0,Y+v0,0,0)), v = (float)(W._linear_atXY(X+u0,Y+v0,0,1)); if (is_fast_approx) { cimg_forC(*this,c) val[c]+=(Tfloat)_linear_atXY(X,Y,0,c); ++S; } else { const float coef = (float)std::exp(-l*l/fsigma2); cimg_forC(*this,c) val[c]+=(Tfloat)(coef*_linear_atXY(X,Y,0,c)); S+=coef; } X+=u; Y+=v; } } } Tfloat *_ptrd = ptrd++; if (S>0) cimg_forC(res,c) { *_ptrd+=val[c]/S; _ptrd+=whd; } else cimg_forC(res,c) { *_ptrd+=(Tfloat)((*this)(x,y,0,c)); _ptrd+=whd; } } } } const Tfloat *ptrs = res._data; cimg_for(*this,ptrd,T) { const Tfloat val = *(ptrs++)/N; *ptrd = valval_max?val_max:(T)val); } } return *this; } //! Blur image anisotropically, directed by a field of diffusion tensors \newinstance. template CImg get_blur_anisotropic(const CImg& G, const float amplitude=60, const float dl=0.8f, const float da=30, const float gauss_prec=2, const unsigned int interpolation_type=0, const bool is_fast_approx=true) const { return (+*this).blur_anisotropic(G,amplitude,dl,da,gauss_prec,interpolation_type,is_fast_approx); } //! Blur image anisotropically, in an edge-preserving way. /** \param amplitude Amplitude of the smoothing. \param sharpness Sharpness. \param anisotropy Anisotropy. \param alpha Standard deviation of the gradient blur. \param sigma Standard deviation of the structure tensor blur. \param dl Spatial discretization. \param da Angular discretization. \param gauss_prec Precision of the diffusion process. \param interpolation_type Interpolation scheme. Can be { 0=nearest-neighbor | 1=linear | 2=Runge-Kutta }. \param is_fast_approx Tells if a fast approximation of the gaussian function is used or not. **/ CImg& blur_anisotropic(const float amplitude, const float sharpness=0.7f, const float anisotropy=0.6f, const float alpha=0.6f, const float sigma=1.1f, const float dl=0.8f, const float da=30, const float gauss_prec=2, const unsigned int interpolation_type=0, const bool is_fast_approx=true) { return blur_anisotropic(get_diffusion_tensors(sharpness,anisotropy,alpha,sigma,interpolation_type!=3), amplitude,dl,da,gauss_prec,interpolation_type,is_fast_approx); } //! Blur image anisotropically, in an edge-preserving way \newinstance. CImg get_blur_anisotropic(const float amplitude, const float sharpness=0.7f, const float anisotropy=0.6f, const float alpha=0.6f, const float sigma=1.1f, const float dl=0.8f, const float da=30, const float gauss_prec=2, const unsigned int interpolation_type=0, const bool is_fast_approx=true) const { return (+*this).blur_anisotropic(amplitude,sharpness,anisotropy,alpha,sigma,dl,da,gauss_prec,interpolation_type,is_fast_approx); } //! Blur image, with the joint bilateral filter. /** \param guide Image used to model the smoothing weights. \param sigma_x Amount of blur along the X-axis. \param sigma_y Amount of blur along the Y-axis. \param sigma_z Amount of blur along the Z-axis. \param sigma_r Amount of blur along the value axis. \param bgrid_x Size of the bilateral grid along the X-axis. \param bgrid_y Size of the bilateral grid along the Y-axis. \param bgrid_z Size of the bilateral grid along the Z-axis. \param bgrid_r Size of the bilateral grid along the value axis. \param interpolation_type Use interpolation for image slicing. \note This algorithm uses the optimisation technique proposed by S. Paris and F. Durand, in ECCV'2006 (extended for 3d volumetric images). **/ template CImg& blur_bilateral(const CImg& guide, const float sigma_x, const float sigma_y, const float sigma_z, const float sigma_r, const int bgrid_x, const int bgrid_y, const int bgrid_z, const int bgrid_r, const bool interpolation_type=true) { if (!is_sameXYZ(guide)) throw CImgArgumentException(_cimg_instance "blur_bilateral(): Invalid size for specified guide image (%u,%u,%u,%u,%p).", cimg_instance, guide._width,guide._height,guide._depth,guide._spectrum,guide._data); if (is_empty()) return *this; T m, M = guide.max_min(m); const float range = (float)(M - m); const unsigned int bx0 = bgrid_x>=0?bgrid_x:_width*-bgrid_x/100, by0 = bgrid_y>=0?bgrid_y:_height*-bgrid_y/100, bz0 = bgrid_z>=0?bgrid_z:_depth*-bgrid_z/100, br0 = bgrid_r>=0?bgrid_r:(int)(-range*bgrid_r/100), bx = bx0>0?bx0:1, by = by0>0?by0:1, bz = bz0>0?bz0:1, br = br0>0?br0:1; const float _sigma_x = sigma_x>=0?sigma_x:-sigma_x*_width/100, _sigma_y = sigma_y>=0?sigma_y:-sigma_y*_height/100, _sigma_z = sigma_z>=0?sigma_z:-sigma_z*_depth/100, nsigma_x = _sigma_x*bx/_width, nsigma_y = _sigma_y*by/_height, nsigma_z = _sigma_z*bz/_depth, nsigma_r = sigma_r*br/range; if (nsigma_x>0 || nsigma_y>0 || nsigma_z>0 || nsigma_r>0) { const bool is_3d = (_depth>1); if (is_3d) { // 3d version of the algorithm CImg bgrid(bx,by,bz,br), bgridw(bx,by,bz,br); cimg_forC(*this,c) { const CImg _guide = guide.get_shared_channel(c%guide._spectrum); bgrid.fill(0); bgridw.fill(0); cimg_forXYZ(*this,x,y,z) { const T val = (*this)(x,y,z,c); const float gval = (float)_guide(x,y,z); const int X = x*bx/_width, Y = y*by/_height, Z = z*bz/_depth, R = (int)cimg::min(br-1.0f,(gval-m)*br/range); bgrid(X,Y,Z,R) += (float)val; bgridw(X,Y,Z,R) += 1; } bgrid.blur(nsigma_x,nsigma_y,nsigma_z,true).deriche(nsigma_r,0,'c',false); bgridw.blur(nsigma_x,nsigma_y,nsigma_z,true).deriche(nsigma_r,0,'c',false); if (interpolation_type) cimg_forXYZ(*this,x,y,z) { const float gval = (float)_guide(x,y,z), X = (float)x*bx/_width, Y = (float)y*by/_height, Z = (float)z*bz/_depth, R = (float)cimg::min(br-1.0f,(gval-m)*br/range), bval0 = bgrid._linear_atXYZC(X,Y,Z,R), bval1 = bgridw._linear_atXYZC(X,Y,Z,R); (*this)(x,y,z,c) = (T)(bval0/bval1); } else cimg_forXYZ(*this,x,y,z) { const float gval = (float)_guide(x,y,z); const int X = x*bx/_width, Y = y*by/_height, Z = z*bz/_depth, R = (int)cimg::min(br-1.0f,(gval-m)*br/range); const float bval0 = bgrid(X,Y,Z,R), bval1 = bgridw(X,Y,Z,R); (*this)(x,y,z,c) = (T)(bval0/bval1); } } } else { // 2d version of the algorithm CImg bgrid(bx,by,br,2); cimg_forC(*this,c) { const CImg _guide = guide.get_shared_channel(c%guide._spectrum); bgrid.fill(0); cimg_forXY(*this,x,y) { const T val = (*this)(x,y,c); const float gval = (float)_guide(x,y); const int X = x*bx/_width, Y = y*by/_height, R = (int)cimg::min(br-1.0f,(gval-m)*br/range); bgrid(X,Y,R,0) += (float)val; bgrid(X,Y,R,1) += 1; } bgrid.blur(nsigma_x,nsigma_y,0,true).blur(0,0,nsigma_r,false); if (interpolation_type) cimg_forXY(*this,x,y) { const float gval = (float)_guide(x,y), X = (float)x*bx/_width, Y = (float)y*by/_height, R = (float)cimg::min(br-1.0f,(gval-m)*br/range), bval0 = bgrid._linear_atXYZ(X,Y,R,0), bval1 = bgrid._linear_atXYZ(X,Y,R,1); (*this)(x,y,c) = (T)(bval0/bval1); } else cimg_forXY(*this,x,y) { const float gval = (float)_guide(x,y); const int X = x*bx/_width, Y = y*by/_height, R = (int)cimg::min(br-1.0f,(gval-m)*br/range); const float bval0 = bgrid(X,Y,R,0), bval1 = bgrid(X,Y,R,1); (*this)(x,y,c) = (T)(bval0/bval1); } } } } return *this; } //! Blur image, with the joint bilateral filter \newinstance. template CImg get_blur_bilateral(const CImg& guide, const float sigma_x, const float sigma_y, const float sigma_z, const float sigma_r, const int bgrid_x, const int bgrid_y, const int bgrid_z, const int bgrid_r, const bool interpolation_type=true) const { return (+*this).blur_bilateral(guide,sigma_x,sigma_y,sigma_z,sigma_r,bgrid_x,bgrid_y,bgrid_z,bgrid_r,interpolation_type); } //! Blur image using the joint bilateral filter. /** \param guide Image used to model the smoothing weights. \param sigma_s Amount of blur along the XYZ-axes. \param sigma_r Amount of blur along the value axis. \param bgrid_s Size of the bilateral grid along the XYZ-axes. \param bgrid_r Size of the bilateral grid along the value axis. \param interpolation_type Use interpolation for image slicing. **/ template CImg& blur_bilateral(const CImg& guide, const float sigma_s, const float sigma_r, const int bgrid_s=-33, const int bgrid_r=32, const bool interpolation_type=true) { const float nsigma_s = sigma_s>=0?sigma_s:-sigma_s*cimg::max(_width,_height,_depth)/100; return blur_bilateral(guide,nsigma_s,nsigma_s,nsigma_s,sigma_r,bgrid_s,bgrid_s,bgrid_s,bgrid_r,interpolation_type); } //! Blur image using the bilateral filter \newinstance. template CImg get_blur_bilateral(const CImg& guide, const float sigma_s, const float sigma_r, const int bgrid_s=-33, const int bgrid_r=32, const bool interpolation_type=true) const { return (+*this).blur_bilateral(guide,sigma_s,sigma_s,sigma_s,sigma_r,bgrid_s,bgrid_s,bgrid_s,bgrid_r,interpolation_type); } //! Blur image using patch-based space. /** \param sigma_s Amount of blur along the XYZ-axes. \param sigma_p Amount of blur along the value axis. \param patch_size Size of the patchs. \param lookup_size Size of the window to search similar patchs. \param smoothness Smoothness for the patch comparison. \param is_fast_approx Tells if a fast approximation of the gaussian function is used or not. **/ CImg& blur_patch(const float sigma_s, const float sigma_p, const unsigned int patch_size=3, const unsigned int lookup_size=4, const float smoothness=0, const bool is_fast_approx=true) { if (is_empty() || !patch_size || !lookup_size) return *this; return get_blur_patch(sigma_s,sigma_p,patch_size,lookup_size,smoothness,is_fast_approx).move_to(*this); } //! Blur image using patch-based space \newinstance. CImg get_blur_patch(const float sigma_s, const float sigma_p, const unsigned int patch_size=3, const unsigned int lookup_size=4, const float smoothness=0, const bool is_fast_approx=true) const { #define _cimg_blur_patch3d_fast(N) \ cimg_for##N##XYZ(res,x,y,z) { \ T *pP = P._data; cimg_forC(res,c) { cimg_get##N##x##N##x##N(img,x,y,z,c,pP,T); pP+=N3; } \ const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; \ float sum_weights = 0; \ cimg_for_in##N##XYZ(res,x0,y0,z0,x1,y1,z1,p,q,r) if (cimg::abs(img(x,y,z,0) - img(p,q,r,0))3?0.0f:1.0f; \ sum_weights+=weight; \ cimg_forC(res,c) res(x,y,z,c)+=weight*(*this)(p,q,r,c); \ } \ if (sum_weights>0) cimg_forC(res,c) res(x,y,z,c)/=sum_weights; \ else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); \ } #define _cimg_blur_patch3d(N) \ cimg_for##N##XYZ(res,x,y,z) { \ T *pP = P._data; cimg_forC(res,c) { cimg_get##N##x##N##x##N(img,x,y,z,c,pP,T); pP+=N3; } \ const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; \ float sum_weights = 0, weight_max = 0; \ cimg_for_in##N##XYZ(res,x0,y0,z0,x1,y1,z1,p,q,r) if (p!=x || q!=y || r!=z) { \ T *pQ = Q._data; cimg_forC(res,c) { cimg_get##N##x##N##x##N(img,p,q,r,c,pQ,T); pQ+=N3; } \ float distance2 = 0; \ pQ = Q._data; cimg_for(P,pP,T) { const float dI = (float)*pP - (float)*(pQ++); distance2+=dI*dI; } \ distance2/=Pnorm; \ const float dx = (float)p - x, dy = (float)q - y, dz = (float)r - z, \ alldist = distance2 + (dx*dx + dy*dy + dz*dz)/sigma_s2, weight = (float)std::exp(-alldist); \ if (weight>weight_max) weight_max = weight; \ sum_weights+=weight; \ cimg_forC(res,c) res(x,y,z,c)+=weight*(*this)(p,q,r,c); \ } \ sum_weights+=weight_max; cimg_forC(res,c) res(x,y,z,c)+=weight_max*(*this)(x,y,z,c); \ if (sum_weights>0) cimg_forC(res,c) res(x,y,z,c)/=sum_weights; \ else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); \ } #define _cimg_blur_patch2d_fast(N) \ cimg_for##N##XY(res,x,y) { \ T *pP = P._data; cimg_forC(res,c) { cimg_get##N##x##N(img,x,y,0,c,pP,T); pP+=N2; } \ const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; \ float sum_weights = 0; \ cimg_for_in##N##XY(res,x0,y0,x1,y1,p,q) if (cimg::abs(img(x,y,0,0) - img(p,q,0,0))3?0.0f:1.0f; \ sum_weights+=weight; \ cimg_forC(res,c) res(x,y,c)+=weight*(*this)(p,q,c); \ } \ if (sum_weights>0) cimg_forC(res,c) res(x,y,c)/=sum_weights; \ else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); \ } #define _cimg_blur_patch2d(N) \ cimg_for##N##XY(res,x,y) { \ T *pP = P._data; cimg_forC(res,c) { cimg_get##N##x##N(img,x,y,0,c,pP,T); pP+=N2; } \ const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; \ float sum_weights = 0, weight_max = 0; \ cimg_for_in##N##XY(res,x0,y0,x1,y1,p,q) if (p!=x || q!=y) { \ T *pQ = Q._data; cimg_forC(res,c) { cimg_get##N##x##N(img,p,q,0,c,pQ,T); pQ+=N2; } \ float distance2 = 0; \ pQ = Q._data; cimg_for(P,pP,T) { const float dI = (float)*pP - (float)*(pQ++); distance2+=dI*dI; } \ distance2/=Pnorm; \ const float dx = (float)p - x, dy = (float)q - y, \ alldist = distance2 + (dx*dx+dy*dy)/sigma_s2, weight = (float)std::exp(-alldist); \ if (weight>weight_max) weight_max = weight; \ sum_weights+=weight; \ cimg_forC(res,c) res(x,y,c)+=weight*(*this)(p,q,c); \ } \ sum_weights+=weight_max; cimg_forC(res,c) res(x,y,c)+=weight_max*(*this)(x,y,c); \ if (sum_weights>0) cimg_forC(res,c) res(x,y,c)/=sum_weights; \ else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); \ } if (is_empty() || !patch_size || !lookup_size) return +*this; CImg res(_width,_height,_depth,_spectrum,0); const CImg _img = smoothness>0?get_blur(smoothness):CImg(),&img = smoothness>0?_img:*this; CImg P(patch_size*patch_size*_spectrum), Q(P); const float nsigma_s = sigma_s>=0?sigma_s:-sigma_s*cimg::max(_width,_height,_depth)/100, sigma_s2 = nsigma_s*nsigma_s, sigma_p2 = sigma_p*sigma_p, sigma_p3 = 3*sigma_p, Pnorm = P.size()*sigma_p2; const int rsize2 = (int)lookup_size/2, rsize1 = (int)lookup_size - rsize2 - 1; const unsigned int N2 = patch_size*patch_size, N3 = N2*patch_size; if (_depth>1) switch (patch_size) { // 3d case 2 : if (is_fast_approx) _cimg_blur_patch3d_fast(2) else _cimg_blur_patch3d(2) break; case 3 : if (is_fast_approx) _cimg_blur_patch3d_fast(3) else _cimg_blur_patch3d(3) break; default : { const int psize2 = (int)patch_size/2, psize1 = (int)patch_size - psize2 - 1; if (is_fast_approx) cimg_forXYZ(res,x,y,z) { // Fast P = img.get_crop(x - psize1,y - psize1,z - psize1,x + psize2,y + psize2,z + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; float sum_weights = 0; cimg_for_inXYZ(res,x0,y0,z0,x1,y1,z1,p,q,r) if (cimg::abs(img(x,y,z,0)-img(p,q,r,0))3?0.0f:1.0f; sum_weights+=weight; cimg_forC(res,c) res(x,y,z,c)+=weight*(*this)(p,q,r,c); } if (sum_weights>0) cimg_forC(res,c) res(x,y,z,c)/=sum_weights; else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); } else cimg_forXYZ(res,x,y,z) { // Exact P = img.get_crop(x - psize1,y - psize1,z - psize1,x + psize2,y + psize2,z + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, z0 = z - rsize1, x1 = x + rsize2, y1 = y + rsize2, z1 = z + rsize2; float sum_weights = 0, weight_max = 0; cimg_for_inXYZ(res,x0,y0,z0,x1,y1,z1,p,q,r) if (p!=x || q!=y || r!=z) { (Q = img.get_crop(p - psize1,q - psize1,r - psize1,p + psize2,q + psize2,r + psize2,true))-=P; const float dx = (float)x - p, dy = (float)y - q, dz = (float)z - r, distance2 = (float)(Q.pow(2).sum()/Pnorm + (dx*dx + dy*dy + dz*dz)/sigma_s2), weight = (float)std::exp(-distance2); if (weight>weight_max) weight_max = weight; sum_weights+=weight; cimg_forC(res,c) res(x,y,z,c)+=weight*(*this)(p,q,r,c); } sum_weights+=weight_max; cimg_forC(res,c) res(x,y,z,c)+=weight_max*(*this)(x,y,z,c); if (sum_weights>0) cimg_forC(res,c) res(x,y,z,c)/=sum_weights; else cimg_forC(res,c) res(x,y,z,c) = (Tfloat)((*this)(x,y,z,c)); } } } else switch (patch_size) { // 2d case 2 : if (is_fast_approx) _cimg_blur_patch2d_fast(2) else _cimg_blur_patch2d(2) break; case 3 : if (is_fast_approx) _cimg_blur_patch2d_fast(3) else _cimg_blur_patch2d(3) break; case 4 : if (is_fast_approx) _cimg_blur_patch2d_fast(4) else _cimg_blur_patch2d(4) break; case 5 : if (is_fast_approx) _cimg_blur_patch2d_fast(5) else _cimg_blur_patch2d(5) break; case 6 : if (is_fast_approx) _cimg_blur_patch2d_fast(6) else _cimg_blur_patch2d(6) break; case 7 : if (is_fast_approx) _cimg_blur_patch2d_fast(7) else _cimg_blur_patch2d(7) break; case 8 : if (is_fast_approx) _cimg_blur_patch2d_fast(8) else _cimg_blur_patch2d(8) break; case 9 : if (is_fast_approx) _cimg_blur_patch2d_fast(9) else _cimg_blur_patch2d(9) break; default : { // Fast const int psize2 = (int)patch_size/2, psize1 = (int)patch_size - psize2 - 1; if (is_fast_approx) cimg_forXY(res,x,y) { // 2d fast approximation. P = img.get_crop(x - psize1,y - psize1,x + psize2,y + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; float sum_weights = 0; cimg_for_inXY(res,x0,y0,x1,y1,p,q) if (cimg::abs(img(x,y,0)-img(p,q,0))3?0.0f:1.0f; sum_weights+=weight; cimg_forC(res,c) res(x,y,c)+=weight*(*this)(p,q,c); } if (sum_weights>0) cimg_forC(res,c) res(x,y,c)/=sum_weights; else cimg_forC(res,c) res(x,y,c) = (Tfloat)((*this)(x,y,c)); } else cimg_forXY(res,x,y) { // 2d exact algorithm. P = img.get_crop(x - psize1,y - psize1,x + psize2,y + psize2,true); const int x0 = x - rsize1, y0 = y - rsize1, x1 = x + rsize2, y1 = y + rsize2; float sum_weights = 0, weight_max = 0; cimg_for_inXY(res,x0,y0,x1,y1,p,q) if (p!=x || q!=y) { (Q = img.get_crop(p - psize1,q - psize1,p + psize2,q + psize2,true))-=P; const float dx = (float)x - p, dy = (float)y - q, distance2 = (float)(Q.pow(2).sum()/Pnorm + (dx*dx + dy*dy)/sigma_s2), weight = (float)std::exp(-distance2); if (weight>weight_max) weight_max = weight; sum_weights+=weight; cimg_forC(res,c) res(x,y,c)+=weight*(*this)(p,q,c); } sum_weights+=weight_max; cimg_forC(res,c) res(x,y,c)+=weight_max*(*this)(x,y,c); if (sum_weights>0) cimg_forC(res,c) res(x,y,c)/=sum_weights; else cimg_forC(res,c) res(x,y,0,c) = (Tfloat)((*this)(x,y,c)); } } } return res; } //! Blur image with the median filter. /** \param n Size of the median filter. **/ CImg& blur_median(const unsigned int n) { if (!n) return *this; return get_blur_median(n).move_to(*this); } //! Blur image with the median filter \newinstance. CImg get_blur_median(const unsigned int n) const { if (is_empty() || n<=1) return +*this; CImg res(_width,_height,_depth,_spectrum); T *ptrd = res._data; const int hl = n/2, hr = hl - 1 + n%2; if (res._depth!=1) cimg_forXYZC(*this,x,y,z,c) { // 3d const int x0 = x - hl, y0 = y - hl, z0 = z-hl, x1 = x + hr, y1 = y + hr, z1 = z+hr, nx0 = x0<0?0:x0, ny0 = y0<0?0:y0, nz0 = z0<0?0:z0, nx1 = x1>=width()?width()-1:x1, ny1 = y1>=height()?height()-1:y1, nz1 = z1>=depth()?depth()-1:z1; *(ptrd++) = get_crop(nx0,ny0,nz0,c,nx1,ny1,nz1,c).median(); } else { #define _cimg_median_sort(a,b) if ((a)>(b)) cimg::swap(a,b) if (res._height!=1) switch (n) { // 2d case 3 : { T I[9] = { 0 }; CImg_3x3(J,T); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,T) { std::memcpy(J,I,9*sizeof(T)); _cimg_median_sort(Jcp, Jnp); _cimg_median_sort(Jcc, Jnc); _cimg_median_sort(Jcn, Jnn); _cimg_median_sort(Jpp, Jcp); _cimg_median_sort(Jpc, Jcc); _cimg_median_sort(Jpn, Jcn); _cimg_median_sort(Jcp, Jnp); _cimg_median_sort(Jcc, Jnc); _cimg_median_sort(Jcn, Jnn); _cimg_median_sort(Jpp, Jpc); _cimg_median_sort(Jnc, Jnn); _cimg_median_sort(Jcc, Jcn); _cimg_median_sort(Jpc, Jpn); _cimg_median_sort(Jcp, Jcc); _cimg_median_sort(Jnp, Jnc); _cimg_median_sort(Jcc, Jcn); _cimg_median_sort(Jcc, Jnp); _cimg_median_sort(Jpn, Jcc); _cimg_median_sort(Jcc, Jnp); *(ptrd++) = Jcc; } } break; case 5 : { T I[25] = { 0 }; CImg_5x5(J,T); cimg_forC(*this,c) cimg_for5x5(*this,x,y,0,c,I,T) { std::memcpy(J,I,25*sizeof(T)); _cimg_median_sort(Jbb, Jpb); _cimg_median_sort(Jnb, Jab); _cimg_median_sort(Jcb, Jab); _cimg_median_sort(Jcb, Jnb); _cimg_median_sort(Jpp, Jcp); _cimg_median_sort(Jbp, Jcp); _cimg_median_sort(Jbp, Jpp); _cimg_median_sort(Jap, Jbc); _cimg_median_sort(Jnp, Jbc); _cimg_median_sort(Jnp, Jap); _cimg_median_sort(Jcc, Jnc); _cimg_median_sort(Jpc, Jnc); _cimg_median_sort(Jpc, Jcc); _cimg_median_sort(Jbn, Jpn); _cimg_median_sort(Jac, Jpn); _cimg_median_sort(Jac, Jbn); _cimg_median_sort(Jnn, Jan); _cimg_median_sort(Jcn, Jan); _cimg_median_sort(Jcn, Jnn); _cimg_median_sort(Jpa, Jca); _cimg_median_sort(Jba, Jca); _cimg_median_sort(Jba, Jpa); _cimg_median_sort(Jna, Jaa); _cimg_median_sort(Jcb, Jbp); _cimg_median_sort(Jnb, Jpp); _cimg_median_sort(Jbb, Jpp); _cimg_median_sort(Jbb, Jnb); _cimg_median_sort(Jab, Jcp); _cimg_median_sort(Jpb, Jcp); _cimg_median_sort(Jpb, Jab); _cimg_median_sort(Jpc, Jac); _cimg_median_sort(Jnp, Jac); _cimg_median_sort(Jnp, Jpc); _cimg_median_sort(Jcc, Jbn); _cimg_median_sort(Jap, Jbn); _cimg_median_sort(Jap, Jcc); _cimg_median_sort(Jnc, Jpn); _cimg_median_sort(Jbc, Jpn); _cimg_median_sort(Jbc, Jnc); _cimg_median_sort(Jba, Jna); _cimg_median_sort(Jcn, Jna); _cimg_median_sort(Jcn, Jba); _cimg_median_sort(Jpa, Jaa); _cimg_median_sort(Jnn, Jaa); _cimg_median_sort(Jnn, Jpa); _cimg_median_sort(Jan, Jca); _cimg_median_sort(Jnp, Jcn); _cimg_median_sort(Jap, Jnn); _cimg_median_sort(Jbb, Jnn); _cimg_median_sort(Jbb, Jap); _cimg_median_sort(Jbc, Jan); _cimg_median_sort(Jpb, Jan); _cimg_median_sort(Jpb, Jbc); _cimg_median_sort(Jpc, Jba); _cimg_median_sort(Jcb, Jba); _cimg_median_sort(Jcb, Jpc); _cimg_median_sort(Jcc, Jpa); _cimg_median_sort(Jnb, Jpa); _cimg_median_sort(Jnb, Jcc); _cimg_median_sort(Jnc, Jca); _cimg_median_sort(Jab, Jca); _cimg_median_sort(Jab, Jnc); _cimg_median_sort(Jac, Jna); _cimg_median_sort(Jbp, Jna); _cimg_median_sort(Jbp, Jac); _cimg_median_sort(Jbn, Jaa); _cimg_median_sort(Jpp, Jaa); _cimg_median_sort(Jpp, Jbn); _cimg_median_sort(Jcp, Jpn); _cimg_median_sort(Jcp, Jan); _cimg_median_sort(Jnc, Jpa); _cimg_median_sort(Jbn, Jna); _cimg_median_sort(Jcp, Jnc); _cimg_median_sort(Jcp, Jbn); _cimg_median_sort(Jpb, Jap); _cimg_median_sort(Jnb, Jpc); _cimg_median_sort(Jbp, Jcn); _cimg_median_sort(Jpc, Jcn); _cimg_median_sort(Jap, Jcn); _cimg_median_sort(Jab, Jbc); _cimg_median_sort(Jpp, Jcc); _cimg_median_sort(Jcp, Jac); _cimg_median_sort(Jab, Jpp); _cimg_median_sort(Jab, Jcp); _cimg_median_sort(Jcc, Jac); _cimg_median_sort(Jbc, Jac); _cimg_median_sort(Jpp, Jcp); _cimg_median_sort(Jbc, Jcc); _cimg_median_sort(Jpp, Jbc); _cimg_median_sort(Jpp, Jcn); _cimg_median_sort(Jcc, Jcn); _cimg_median_sort(Jcp, Jcn); _cimg_median_sort(Jcp, Jbc); _cimg_median_sort(Jcc, Jnn); _cimg_median_sort(Jcp, Jcc); _cimg_median_sort(Jbc, Jnn); _cimg_median_sort(Jcc, Jba); _cimg_median_sort(Jbc, Jba); _cimg_median_sort(Jbc, Jcc); *(ptrd++) = Jcc; } } break; default : { cimg_forXYC(*this,x,y,c) { const int x0 = x - hl, y0 = y - hl, x1 = x + hr, y1 = y + hr, nx0 = x0<0?0:x0, ny0 = y0<0?0:y0, nx1 = x1>=width()?width()-1:x1, ny1 = y1>=height()?height()-1:y1; *(ptrd++) = get_crop(nx0,ny0,0,c,nx1,ny1,0,c).median(); } } } else switch (n) { // 1d case 2 : { T I[4] = { 0 }; cimg_forC(*this,c) cimg_for2x2(*this,x,y,0,c,I,T) *(ptrd++) = (T)(0.5f*(I[0]+I[1])); } break; case 3 : { T I[9] = { 0 }; cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,T) *(ptrd++) = I[3]=width()?width()-1:x1; *(ptrd++) = get_crop(nx0,0,0,c,nx1,0,0,c).median(); } } } } return res; } //! Sharpen image. /** \param amplitude Sharpening amplitude \param sharpen_type Select sharpening method. Can be { false=inverse diffusion | true=shock filters }. \param edge Edge threshold (shock filters only). \param alpha Gradient smoothness (shock filters only). \param sigma Tensor smoothness (shock filters only). **/ CImg& sharpen(const float amplitude, const bool sharpen_type=false, const float edge=1, const float alpha=0, const float sigma=0) { if (is_empty()) return *this; T val_min, val_max = max_min(val_min); const float nedge = edge/2; CImg val, vec, velocity(_width,_height,_depth,_spectrum); Tfloat *ptrd = velocity._data, veloc_max = 0; if (_depth>1) { // 3d CImg_3x3x3(I,Tfloat); if (sharpen_type) { // Shock filters. CImg G = (alpha>0?get_blur(alpha).get_structure_tensors():get_structure_tensors()); if (sigma>0) G.blur(sigma); Tfloat *ptrG0 = G.data(0,0,0,0), *ptrG1 = G.data(0,0,0,1), *ptrG2 = G.data(0,0,0,2), *ptrG3 = G.data(0,0,0,3); cimg_forXYZ(G,x,y,z) { G.get_tensor_at(x,y,z).symmetric_eigen(val,vec); if (val[0]<0) val[0] = 0; if (val[1]<0) val[1] = 0; if (val[2]<0) val[2] = 0; *(ptrG0++) = vec(0,0); *(ptrG1++) = vec(0,1); *(ptrG2++) = vec(0,2); *(ptrG3++) = 1 - (Tfloat)std::pow(1+val[0]+val[1]+val[2],-(Tfloat)nedge); } cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat u = G(x,y,z,0), v = G(x,y,z,1), w = G(x,y,z,2), amp = G(x,y,z,3), ixx = Incc + Ipcc - 2*Iccc, ixy = (Innc + Ippc - Inpc - Ipnc)/4, ixz = (Incn + Ipcp - Incp - Ipcn)/4, iyy = Icnc + Icpc - 2*Iccc, iyz = (Icnn + Icpp - Icnp - Icpn)/4, izz = Iccn + Iccp - 2*Iccc, ixf = Incc - Iccc, ixb = Iccc - Ipcc, iyf = Icnc - Iccc, iyb = Iccc - Icpc, izf = Iccn - Iccc, izb = Iccc - Iccp, itt = u*u*ixx + v*v*iyy + w*w*izz + 2*u*v*ixy + 2*u*w*ixz + 2*v*w*iyz, it = u*cimg::minmod(ixf,ixb) + v*cimg::minmod(iyf,iyb) + w*cimg::minmod(izf,izb), veloc = -amp*cimg::sign(itt)*cimg::abs(it); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } else cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { // Inverse diffusion. const Tfloat veloc = -Ipcc - Incc - Icpc - Icnc - Iccp - Iccn + 6*Iccc; *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } else { CImg_3x3(I,Tfloat); if (sharpen_type) { // Shock filters. CImg G = (alpha>0?get_blur(alpha).get_structure_tensors():get_structure_tensors()); if (sigma>0) G.blur(sigma); Tfloat *ptrG0 = G.data(0,0,0,0), *ptrG1 = G.data(0,0,0,1), *ptrG2 = G.data(0,0,0,2); cimg_forXY(G,x,y) { G.get_tensor_at(x,y).symmetric_eigen(val,vec); if (val[0]<0) val[0] = 0; if (val[1]<0) val[1] = 0; *(ptrG0++) = vec(0,0); *(ptrG1++) = vec(0,1); *(ptrG2++) = 1 - (Tfloat)std::pow(1 + val[0] + val[1],-(Tfloat)nedge); } cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) { const Tfloat u = G(x,y,0), v = G(x,y,1), amp = G(x,y,2), ixx = Inc + Ipc - 2*Icc, ixy = (Inn + Ipp - Inp - Ipn)/4, iyy = Icn + Icp - 2*Icc, ixf = Inc - Icc, ixb = Icc - Ipc, iyf = Icn - Icc, iyb = Icc - Icp, itt = u*u*ixx + v*v*iyy + 2*u*v*ixy, it = u*cimg::minmod(ixf,ixb) + v*cimg::minmod(iyf,iyb), veloc = -amp*cimg::sign(itt)*cimg::abs(it); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } else cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) { // Inverse diffusion. const Tfloat veloc = -Ipc - Inc - Icp - Icn + 4*Icc; *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } } if (veloc_max<=0) return *this; return ((velocity*=amplitude/veloc_max)+=*this).cut(val_min,val_max).move_to(*this); } //! Sharpen image \newinstance. CImg get_sharpen(const float amplitude, const bool sharpen_type=false, const float edge=1, const float alpha=0, const float sigma=0) const { return (+*this).sharpen(amplitude,sharpen_type,edge,alpha,sigma); } //! Return image gradient. /** \param axes Axes considered for the gradient computation, as a C-string (e.g "xy"). \param scheme = Numerical scheme used for the gradient computation: - -1 = Backward finite differences - 0 = Centered finite differences - 1 = Forward finite differences - 2 = Using Sobel masks - 3 = Using rotation invariant masks - 4 = Using Deriche recusrsive filter. - 5 = Using Van Vliet recusrsive filter. **/ CImgList get_gradient(const char *const axes=0, const int scheme=3) const { CImgList grad(2,_width,_height,_depth,_spectrum); Tfloat *ptrd0 = grad[0]._data, *ptrd1 = grad[1]._data; bool is_3d = false; if (axes) { for (unsigned int a = 0; axes[a]; ++a) { const char axis = cimg::uncase(axes[a]); switch (axis) { case 'x' : case 'y' : break; case 'z' : is_3d = true; break; default : throw CImgArgumentException(_cimg_instance "get_gradient(): Invalid specified axis '%c'.", cimg_instance, axis); } } } else is_3d = (_depth>1); if (is_3d) { CImg(_width,_height,_depth,_spectrum).move_to(grad); Tfloat *ptrd2 = grad[2]._data; switch (scheme) { // 3d. case -1 : { // Backward finite differences. CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = Iccc - Ipcc; *(ptrd1++) = Iccc - Icpc; *(ptrd2++) = Iccc - Iccp; } } break; case 1 : { // Forward finite differences. CImg_2x2x2(I,Tfloat); cimg_forC(*this,c) cimg_for2x2x2(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = Incc - Iccc; *(ptrd1++) = Icnc - Iccc; *(ptrd2++) = Iccn - Iccc; } } break; case 4 : { // Using Deriche filter with low standard variation. grad[0] = get_deriche(0,1,'x'); grad[1] = get_deriche(0,1,'y'); grad[2] = get_deriche(0,1,'z'); } break; case 5 : { // Using Van Vliet filter with low standard variation. grad[0] = get_vanvliet(0,1,'x'); grad[1] = get_vanvliet(0,1,'y'); grad[2] = get_vanvliet(0,1,'z'); } break; default : { // Central finite differences. CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = (Incc - Ipcc)/2; *(ptrd1++) = (Icnc - Icpc)/2; *(ptrd2++) = (Iccn - Iccp)/2; } } } } else switch (scheme) { // 2d. case -1 : { // Backward finite differences. CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = Icc - Ipc; *(ptrd1++) = Icc - Icp; } } break; case 1 : { // Forward finite differences. CImg_2x2(I,Tfloat); cimg_forZC(*this,z,c) cimg_for2x2(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = Inc - Icc; *(ptrd1++) = Icn - Icc; } } break; case 2 : { // Sobel scheme. CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = -Ipp - 2*Ipc - Ipn + Inp + 2*Inc + Inn; *(ptrd1++) = -Ipp - 2*Icp - Inp + Ipn + 2*Icn + Inn; } } break; case 3 : { // Rotation invariant mask. CImg_3x3(I,Tfloat); const Tfloat a = (Tfloat)(0.25f*(2-std::sqrt(2.0f))), b = (Tfloat)(0.5f*(std::sqrt(2.0f)-1)); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = -a*Ipp - b*Ipc - a*Ipn + a*Inp + b*Inc + a*Inn; *(ptrd1++) = -a*Ipp - b*Icp - a*Inp + a*Ipn + b*Icn + a*Inn; } } break; case 4 : { // using Van Vliet filter with low standard variation grad[0] = get_deriche(0,1,'x'); grad[1] = get_deriche(0,1,'y'); } break; case 5 : { // using Deriche filter with low standard variation grad[0] = get_vanvliet(0,1,'x'); grad[1] = get_vanvliet(0,1,'y'); } break; default : { // central finite differences CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = (Inc - Ipc)/2; *(ptrd1++) = (Icn - Icp)/2; } } } if (!axes) return grad; CImgList res; for (unsigned int l = 0; axes[l]; ++l) { const char axis = cimg::uncase(axes[l]); switch (axis) { case 'x' : res.insert(grad[0]); break; case 'y' : res.insert(grad[1]); break; case 'z' : res.insert(grad[2]); break; } } grad.assign(); return res; } //! Return image hessian. /** \param axes Axes considered for the hessian computation, as a C-string (e.g "xy"). **/ CImgList get_hessian(const char *const axes=0) const { CImgList res; const char *naxes = axes, *const def_axes2d = "xxxyyy", *const def_axes3d = "xxxyxzyyyzzz"; if (!axes) naxes = _depth>1?def_axes3d:def_axes2d; const unsigned int lmax = std::strlen(naxes); if (lmax%2) throw CImgArgumentException(_cimg_instance "get_hessian(): Invalid specified axes '%s'.", cimg_instance, naxes); res.assign(lmax/2,_width,_height,_depth,_spectrum); if (!cimg::strcasecmp(naxes,def_axes3d)) { // 3d Tfloat *ptrd0 = res[0]._data, *ptrd1 = res[1]._data, *ptrd2 = res[2]._data, *ptrd3 = res[3]._data, *ptrd4 = res[4]._data, *ptrd5 = res[5]._data; CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { *(ptrd0++) = Ipcc + Incc - 2*Iccc; // Ixx *(ptrd1++) = (Ippc + Innc - Ipnc - Inpc)/4; // Ixy *(ptrd2++) = (Ipcp + Incn - Ipcn - Incp)/4; // Ixz *(ptrd3++) = Icpc + Icnc - 2*Iccc; // Iyy *(ptrd4++) = (Icpp + Icnn - Icpn - Icnp)/4; // Iyz *(ptrd5++) = Iccn + Iccp - 2*Iccc; // Izz } } else if (!cimg::strcasecmp(naxes,def_axes2d)) { // 2d Tfloat *ptrd0 = res[0]._data, *ptrd1 = res[1]._data, *ptrd2 = res[2]._data; CImg_3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) { *(ptrd0++) = Ipc + Inc - 2*Icc; // Ixx *(ptrd1++) = (Ipp + Inn - Ipn - Inp)/4; // Ixy *(ptrd2++) = Icp + Icn - 2*Icc; // Iyy } } else for (unsigned int l = 0; laxis2) cimg::swap(axis1,axis2); bool valid_axis = false; Tfloat *ptrd = res[l2]._data; if (axis1=='x' && axis2=='x') { // Ixx valid_axis = true; CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = Ipc + Inc - 2*Icc; } else if (axis1=='x' && axis2=='y') { // Ixy valid_axis = true; CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = (Ipp + Inn - Ipn - Inp)/4; } else if (axis1=='x' && axis2=='z') { // Ixz valid_axis = true; CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = (Ipcp + Incn - Ipcn - Incp)/4; } else if (axis1=='y' && axis2=='y') { // Iyy valid_axis = true; CImg_3x3(I,Tfloat); cimg_forZC(*this,z,c) cimg_for3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = Icp + Icn - 2*Icc; } else if (axis1=='y' && axis2=='z') { // Iyz valid_axis = true; CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = (Icpp + Icnn - Icpn - Icnp)/4; } else if (axis1=='z' && axis2=='z') { // Izz valid_axis = true; CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = Iccn + Iccp - 2*Iccc; } else if (!valid_axis) throw CImgArgumentException(_cimg_instance "get_hessian(): Invalid specified axes '%s'.", cimg_instance, naxes); } return res; } //! Compute image laplacian. CImg& laplacian() { return get_laplacian().move_to(*this); } //! Compute image laplacian \newinstance. CImg get_laplacian() const { if (is_empty()) return CImg(); CImg res(_width,_height,_depth,_spectrum); Tfloat *ptrd = res._data; if (_depth>1) { // 3d CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) *(ptrd++) = Incc + Ipcc + Icnc + Icpc + Iccn + Iccp - 6*Iccc; } else if (_height>1) { // 2d CImg_3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) *(ptrd++) = Inc + Ipc + Icn + Icp - 4*Icc; } else { // 1d CImg_3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) *(ptrd++) = Inc + Ipc - 2*Icc; } return res; } //! Compute the structure tensor field of an image. /** \param scheme Numerical scheme. Can be { 0=central | 1=fwd/bwd1 | 2=fwd/bwd2 } **/ CImg& structure_tensors(const unsigned int scheme=2) { return get_structure_tensors(scheme).move_to(*this); } //! Compute the structure tensor field of an image \newinstance. CImg get_structure_tensors(const unsigned int scheme=2) const { if (is_empty()) return *this; CImg res; if (_depth>1) { // 3d res.assign(_width,_height,_depth,6,0); CImg_3x3x3(I,Tfloat); switch (scheme) { case 0 : { // classical central finite differences cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2), *ptrd3 = res.data(0,0,0,3), *ptrd4 = res.data(0,0,0,4), *ptrd5 = res.data(0,0,0,5); cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat ix = (Incc - Ipcc)/2, iy = (Icnc - Icpc)/2, iz = (Iccn - Iccp)/2; *(ptrd0++)+=ix*ix; *(ptrd1++)+=ix*iy; *(ptrd2++)+=ix*iz; *(ptrd3++)+=iy*iy; *(ptrd4++)+=iy*iz; *(ptrd5++)+=iz*iz; } } } break; case 1 : { // Forward/backward finite differences (version 1). cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2), *ptrd3 = res.data(0,0,0,3), *ptrd4 = res.data(0,0,0,4), *ptrd5 = res.data(0,0,0,5); cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat ixf = Incc - Iccc, ixb = Iccc - Ipcc, iyf = Icnc - Iccc, iyb = Iccc - Icpc, izf = Iccn - Iccc, izb = Iccc - Iccp; *(ptrd0++)+=(ixf*ixf + ixf*ixb + ixb*ixf + ixb*ixb)/4; *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; *(ptrd2++)+=(ixf*izf + ixf*izb + ixb*izf + ixb*izb)/4; *(ptrd3++)+=(iyf*iyf + iyf*iyb + iyb*iyf + iyb*iyb)/4; *(ptrd4++)+=(iyf*izf + iyf*izb + iyb*izf + iyb*izb)/4; *(ptrd5++)+=(izf*izf + izf*izb + izb*izf + izb*izb)/4; } } } break; default : { // Forward/backward finite differences (version 2). cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2), *ptrd3 = res.data(0,0,0,3), *ptrd4 = res.data(0,0,0,4), *ptrd5 = res.data(0,0,0,5); cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) { const Tfloat ixf = Incc - Iccc, ixb = Iccc - Ipcc, iyf = Icnc - Iccc, iyb = Iccc - Icpc, izf = Iccn - Iccc, izb = Iccc - Iccp; *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; *(ptrd2++)+=(ixf*izf + ixf*izb + ixb*izf + ixb*izb)/4; *(ptrd3++)+=(iyf*iyf + iyb*iyb)/2; *(ptrd4++)+=(iyf*izf + iyf*izb + iyb*izf + iyb*izb)/4; *(ptrd5++)+=(izf*izf + izb*izb)/2; } } } break; } } else { // 2d res.assign(_width,_height,_depth,3,0); CImg_3x3(I,Tfloat); switch (scheme) { case 0 : { // classical central finite differences cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2); cimg_for3x3(*this,x,y,0,c,I,Tfloat) { const Tfloat ix = (Inc - Ipc)/2, iy = (Icn - Icp)/2; *(ptrd0++)+=ix*ix; *(ptrd1++)+=ix*iy; *(ptrd2++)+=iy*iy; } } } break; case 1 : { // Forward/backward finite differences (version 1). cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2); cimg_for3x3(*this,x,y,0,c,I,Tfloat) { const Tfloat ixf = Inc - Icc, ixb = Icc - Ipc, iyf = Icn - Icc, iyb = Icc - Icp; *(ptrd0++)+=(ixf*ixf + ixf*ixb + ixb*iyf + ixb*ixb)/4; *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; *(ptrd2++)+=(iyf*iyf + iyf*iyb + iyb*iyf + iyb*iyb)/4; } } } break; default : { // Forward/backward finite differences (version 2). cimg_forC(*this,c) { Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2); cimg_for3x3(*this,x,y,0,c,I,Tfloat) { const Tfloat ixf = Inc - Icc, ixb = Icc - Ipc, iyf = Icn - Icc, iyb = Icc - Icp; *(ptrd0++)+=(ixf*ixf + ixb*ixb)/2; *(ptrd1++)+=(ixf*iyf + ixf*iyb + ixb*iyf + ixb*iyb)/4; *(ptrd2++)+=(iyf*iyf + iyb*iyb)/2; } } } break; } } return res; } //! Compute field of diffusion tensors for edge-preserving smoothing. /** \param sharpness Sharpness \param anisotropy Anisotropy \param alpha Standard deviation of the gradient blur. \param sigma Standard deviation of the structure tensor blur. \param is_sqrt Tells if the square root of the tensor field is computed instead. **/ CImg& diffusion_tensors(const float sharpness=0.7f, const float anisotropy=0.6f, const float alpha=0.6f, const float sigma=1.1f, const bool is_sqrt=false) { CImg res; const float nsharpness = cimg::max(sharpness,1e-5f), power1 = (is_sqrt?0.5f:1)*nsharpness, power2 = power1/(1e-7f+1-anisotropy); blur(alpha).normalize(0,(T)255); if (_depth>1) { // 3d CImg val(3), vec(3,3); get_structure_tensors().move_to(res).blur(sigma); Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2), *ptrd3 = res.data(0,0,0,3), *ptrd4 = res.data(0,0,0,4), *ptrd5 = res.data(0,0,0,5); cimg_forXYZ(*this,x,y,z) { res.get_tensor_at(x,y,z).symmetric_eigen(val,vec); const float _l1 = val[2], _l2 = val[1], _l3 = val[0], l1 = _l1>0?_l1:0, l2 = _l2>0?_l2:0, l3 = _l3>0?_l3:0, ux = vec(0,0), uy = vec(0,1), uz = vec(0,2), vx = vec(1,0), vy = vec(1,1), vz = vec(1,2), wx = vec(2,0), wy = vec(2,1), wz = vec(2,2), n1 = (float)std::pow(1+l1+l2+l3,-power1), n2 = (float)std::pow(1+l1+l2+l3,-power2); *(ptrd0++) = n1*(ux*ux + vx*vx) + n2*wx*wx; *(ptrd1++) = n1*(ux*uy + vx*vy) + n2*wx*wy; *(ptrd2++) = n1*(ux*uz + vx*vz) + n2*wx*wz; *(ptrd3++) = n1*(uy*uy + vy*vy) + n2*wy*wy; *(ptrd4++) = n1*(uy*uz + vy*vz) + n2*wy*wz; *(ptrd5++) = n1*(uz*uz + vz*vz) + n2*wz*wz; } } else { // for 2d images CImg val(2), vec(2,2); get_structure_tensors().move_to(res).blur(sigma); Tfloat *ptrd0 = res.data(0,0,0,0), *ptrd1 = res.data(0,0,0,1), *ptrd2 = res.data(0,0,0,2); cimg_forXY(*this,x,y) { res.get_tensor_at(x,y).symmetric_eigen(val,vec); const float _l1 = val[1], _l2 = val[0], l1 = _l1>0?_l1:0, l2 = _l2>0?_l2:0, ux = vec(1,0), uy = vec(1,1), vx = vec(0,0), vy = vec(0,1), n1 = (float)std::pow(1+l1+l2,-power1), n2 = (float)std::pow(1+l1+l2,-power2); *(ptrd0++) = n1*ux*ux + n2*vx*vx; *(ptrd1++) = n1*ux*uy + n2*vx*vy; *(ptrd2++) = n1*uy*uy + n2*vy*vy; } } return res.move_to(*this); } //! Compute field of diffusion tensors for edge-preserving smoothing \newinstance. CImg get_diffusion_tensors(const float sharpness=0.7f, const float anisotropy=0.6f, const float alpha=0.6f, const float sigma=1.1f, const bool is_sqrt=false) const { return CImg(*this,false).diffusion_tensors(sharpness,anisotropy,alpha,sigma,is_sqrt); } //! Estimate displacement field between two images. /** \param source Reference image. \param smoothness Smoothness of estimated displacement field. \param precision Precision required for algorithm convergence. \param nb_scales Number of scales used to estimate the displacement field. \param iteration_max Maximum number of iterations allowed for one scale. \param is_backward If false, match I2(X+U(X)) = I1(X), else match I2(X) = I1(X-U(X)). **/ CImg& displacement(const CImg& source, const float smoothness=0.1f, const float precision=5.0f, const unsigned int nb_scales=0, const unsigned int iteration_max=10000, const bool is_backward=false) { return get_displacement(source,smoothness,precision,nb_scales,iteration_max,is_backward).move_to(*this); } //! Estimate displacement field between two images \newinstance. CImg get_displacement(const CImg& source, const float smoothness=0.1f, const float precision=5.0f, const unsigned int nb_scales=0, const unsigned int iteration_max=10000, const bool is_backward=false) const { if (is_empty() || !source) return +*this; if (!is_sameXYZC(source)) throw CImgArgumentException(_cimg_instance "displacement(): Instance and source image (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, source._width,source._height,source._depth,source._spectrum,source._data); if (precision<0) throw CImgArgumentException(_cimg_instance "displacement(): Invalid specified precision %g " "(should be >=0)", cimg_instance, precision); const unsigned int _nb_scales = nb_scales>0?nb_scales:(unsigned int)(2*std::log((double)(cimg::max(_width,_height)))); const float _precision = (float)std::pow(10.0,-(double)precision); float sm, sM = source.max_min(sm), tm, tM = max_min(tm); const float sdelta = sm==sM?1:(sM - sm), tdelta = tm==tM?1:(tM - tm); const bool is_3d = source._depth>1; CImg U; for (int scale = _nb_scales-1; scale>=0; --scale) { const float factor = (float)std::pow(1.5,(double)scale); const unsigned int _sw = (unsigned int)(_width/factor), sw = _sw?_sw:1, _sh = (unsigned int)(_height/factor), sh = _sh?_sh:1, _sd = (unsigned int)(_depth/factor), sd = _sd?_sd:1; if (sw<5 && sh<5 && (!is_3d || sd<5)) continue; // skip too small scales. const CImg I1 = (source.get_resize(sw,sh,sd,-100,2)-=sm)/=sdelta, I2 = (get_resize(I1,2)-=tm)/=tdelta; if (U) (U*=1.5f).resize(I2._width,I2._height,I2._depth,-100,3); else U.assign(I2._width,I2._height,I2._depth,is_3d?3:2,0); float dt = 2, energy = cimg::type::max(); const CImgList dI = is_backward?I1.get_gradient():I2.get_gradient(); for (unsigned int iteration = 0; iteration=0) cimg_for3XYZ(U,x,y,z) { // Isotropic regularization. const float X = is_backward?x - U(x,y,z,0):x + U(x,y,z,0), Y = is_backward?y - U(x,y,z,1):y + U(x,y,z,1), Z = is_backward?z - U(x,y,z,2):z + U(x,y,z,2); float delta_I = 0, _energy_regul = 0; if (is_backward) cimg_forC(I2,c) delta_I+=(float)(I1.linear_atXYZ(X,Y,Z,c) - I2(x,y,z,c)); else cimg_forC(I2,c) delta_I+=(float)(I1(x,y,z,c) - I2.linear_atXYZ(X,Y,Z,c)); cimg_forC(U,c) { const float Ux = 0.5f*(U(_n1x,y,z,c) - U(_p1x,y,z,c)), Uy = 0.5f*(U(x,_n1y,z,c) - U(x,_p1y,z,c)), Uz = 0.5f*(U(x,y,_n1z,c) - U(x,y,_p1z,c)), Uxx = U(_n1x,y,z,c) + U(_p1x,y,z,c), Uyy = U(x,_n1y,z,c) + U(x,_p1y,z,c), Uzz = U(x,y,_n1z,c) + U(x,y,_p1z,c); U(x,y,z,c) = (float)(U(x,y,z,c) + dt*(delta_I*dI[c].linear_atXYZ(X,Y,Z) + smoothness* ( Uxx + Uyy + Uzz)))/(1+6*smoothness*dt); _energy_regul+=Ux*Ux + Uy*Uy + Uz*Uz; } _energy+=delta_I*delta_I + smoothness*_energy_regul; } else { const float nsmoothness = -smoothness; cimg_for3XYZ(U,x,y,z) { // Anisotropic regularization. const float X = is_backward?x - U(x,y,z,0):x + U(x,y,z,0), Y = is_backward?y - U(x,y,z,1):y + U(x,y,z,1), Z = is_backward?z - U(x,y,z,2):z + U(x,y,z,2); float delta_I = 0, _energy_regul = 0; if (is_backward) cimg_forC(I2,c) delta_I+=(float)(I1.linear_atXYZ(X,Y,Z,c) - I2(x,y,z,c)); else cimg_forC(I2,c) delta_I+=(float)(I1(x,y,z,c) - I2.linear_atXYZ(X,Y,Z,c)); cimg_forC(U,c) { const float Ux = 0.5f*(U(_n1x,y,z,c) - U(_p1x,y,z,c)), Uy = 0.5f*(U(x,_n1y,z,c) - U(x,_p1y,z,c)), Uz = 0.5f*(U(x,y,_n1z,c) - U(x,y,_p1z,c)), N2 = Ux*Ux + Uy*Uy + Uz*Uz, N = std::sqrt(N2), N3 = 1e-5 + N2*N, coef_a = (1 - Ux*Ux/N2)/N, coef_b = -2*Ux*Uy/N3, coef_c = -2*Ux*Uz/N3, coef_d = (1 - Uy*Uy/N2)/N, coef_e = -2*Uy*Uz/N3, coef_f = (1 - Uz*Uz/N2)/N, Uxx = U(_n1x,y,z,c) + U(_p1x,y,z,c), Uyy = U(x,_n1y,z,c) + U(x,_p1y,z,c), Uzz = U(x,y,_n1z,c) + U(x,y,_p1z,c), Uxy = 0.25f*(U(_n1x,_n1y,z,c) + U(_p1x,_p1y,z,c) - U(_n1x,_p1y,z,c) - U(_n1x,_p1y,z,c)), Uxz = 0.25f*(U(_n1x,y,_n1z,c) + U(_p1x,y,_p1z,c) - U(_n1x,y,_p1z,c) - U(_n1x,y,_p1z,c)), Uyz = 0.25f*(U(x,_n1y,_n1z,c) + U(x,_p1y,_p1z,c) - U(x,_n1y,_p1z,c) - U(x,_n1y,_p1z,c)); U(x,y,z,c) = (float)(U(x,y,z,c) + dt*(delta_I*dI[c].linear_atXYZ(X,Y,Z) + nsmoothness* ( coef_a*Uxx + coef_b*Uxy + coef_c*Uxz + coef_d*Uyy + coef_e*Uyz + coef_f*Uzz )) )/(1+2*(coef_a+coef_d+coef_f)*nsmoothness*dt); _energy_regul+=N; } _energy+=delta_I*delta_I + nsmoothness*_energy_regul; } } } else { // 2d version. if (smoothness>=0) cimg_for3XY(U,x,y) { // Isotropic regularization. const float X = is_backward?x - U(x,y,0):x + U(x,y,0), Y = is_backward?y - U(x,y,1):y + U(x,y,1); float delta_I = 0, _energy_regul = 0; if (is_backward) cimg_forC(I2,c) delta_I+=(float)(I1.linear_atXY(X,Y,c) - I2(x,y,c)); else cimg_forC(I2,c) delta_I+=(float)(I1(x,y,c) - I2.linear_atXY(X,Y,c)); cimg_forC(U,c) { const float Ux = 0.5f*(U(_n1x,y,c) - U(_p1x,y,c)), Uy = 0.5f*(U(x,_n1y,c) - U(x,_p1y,c)), Uxx = U(_n1x,y,c) + U(_p1x,y,c), Uyy = U(x,_n1y,c) + U(x,_p1y,c); U(x,y,c) = (float)(U(x,y,c) + dt*(delta_I*dI[c].linear_atXY(X,Y) + smoothness*( Uxx + Uyy )))/(1+4*smoothness*dt); _energy_regul+=Ux*Ux + Uy*Uy; } _energy+=delta_I*delta_I + smoothness*_energy_regul; } else { const float nsmoothness = -smoothness; cimg_for3XY(U,x,y) { // Anisotropic regularization. const float X = is_backward?x - U(x,y,0):x + U(x,y,0), Y = is_backward?y - U(x,y,1):y + U(x,y,1); float delta_I = 0, _energy_regul = 0; if (is_backward) cimg_forC(I2,c) delta_I+=(float)(I1.linear_atXY(X,Y,c) - I2(x,y,c)); else cimg_forC(I2,c) delta_I+=(float)(I1(x,y,c) - I2.linear_atXY(X,Y,c)); cimg_forC(U,c) { const float Ux = 0.5f*(U(_n1x,y,c) - U(_p1x,y,c)), Uy = 0.5f*(U(x,_n1y,c) - U(x,_p1y,c)), N2 = Ux*Ux + Uy*Uy, N = std::sqrt(N2), N3 = 1e-5 + N2*N, coef_a = Uy*Uy/N3, coef_b = -2*Ux*Uy/N3, coef_c = Ux*Ux/N3, Uxx = U(_n1x,y,c) + U(_p1x,y,c), Uyy = U(x,_n1y,c) + U(x,_p1y,c), Uxy = 0.25f*(U(_n1x,_n1y,c) + U(_p1x,_p1y,c) - U(_n1x,_p1y,c) - U(_n1x,_p1y,c)); U(x,y,c) = (float)(U(x,y,c) + dt*(delta_I*dI[c].linear_atXY(X,Y) + nsmoothness*( coef_a*Uxx + coef_b*Uxy + coef_c*Uyy )))/(1+2*(coef_a+coef_c)*nsmoothness*dt); _energy_regul+=N; } _energy+=delta_I*delta_I + nsmoothness*_energy_regul; } } } const float d_energy = (_energy - energy)/(sw*sh*sd); if (d_energy<=0 && -d_energy<_precision) break; if (d_energy>0) dt*=0.5f; energy = _energy; } } return U; } //! Compute distance to a specified value. /** \param value Reference value. \param metric Type of metric. Can be { 0=Chebyshev | 1=Manhattan | 2=Euclidean | 3=Squared-euclidean }. \note The distance transform implementation has been submitted by A. Meijster, and implements the article 'W.H. Hesselink, A. Meijster, J.B.T.M. Roerdink, "A general algorithm for computing distance transforms in linear time.", In: Mathematical Morphology and its Applications to Image and Signal Processing, J. Goutsias, L. Vincent, and D.S. Bloomberg (eds.), Kluwer, 2000, pp. 331-340.' The submitted code has then been modified to fit CImg coding style and constraints. **/ CImg& distance(const T value, const unsigned int metric=2) { if (is_empty()) return *this; bool is_value = false; cimg_for(*this,ptr,T) *ptr = *ptr==value?is_value=true,0:(T)999999999; if (!is_value) return fill(cimg::type::max()); switch (metric) { case 0 : return _distance_core(_distance_sep_cdt,_distance_dist_cdt); // Chebyshev. case 1 : return _distance_core(_distance_sep_mdt,_distance_dist_mdt); // Manhattan. case 3 : return _distance_core(_distance_sep_edt,_distance_dist_edt); // Squared Euclidean. default : return _distance_core(_distance_sep_edt,_distance_dist_edt).sqrt(); // Euclidean. } return *this; } //! Compute distance to a specified value \newinstance. CImg get_distance(const T value, const unsigned int metric=2) const { return CImg(*this,false).distance((Tfloat)value,metric); } static long _distance_sep_edt(const long i, const long u, const long *const g) { return (u*u-i*i+g[u]-g[i])/(2*(u-i)); } static long _distance_dist_edt(const long x, const long i, const long *const g) { return (x-i)*(x-i) + g[i]; } static long _distance_sep_mdt(const long i, const long u, const long *const g) { return (u-i<=g[u]-g[i]?999999999:(g[u]-g[i]+u+i)/2); } static long _distance_dist_mdt(const long x, const long i, const long *const g) { return (x=0) && f(t[q],s[q],g)>f(t[q],u,g)) { --q; } if (q<0) { q = 0; s[0] = u; } else { const long w = 1 + sep(s[q], u, g); if (w<(long)len) { ++q; s[q] = u; t[q] = w; }} } for (int u = (int)len-1; u>=0; --u) { dt[u] = f(u,s[q],g); if (u==t[q]) --q; } // Backward scan. } CImg& _distance_core(long (*const sep)(const long, const long, const long *const), long (*const f)(const long, const long, const long *const)) { const unsigned long wh = (unsigned long)_width*_height; cimg_forC(*this,c) { CImg g(_width), dt(_width), s(_width), t(_width); CImg img = get_shared_channel(c); cimg_forYZ(*this,y,z) { // Over X-direction. cimg_forX(*this,x) g[x] = (long)img(x,y,z,0,wh); _distance_scan(_width,g,sep,f,s,t,dt); cimg_forX(*this,x) img(x,y,z,0,wh) = (T)dt[x]; } g.assign(_height); dt.assign(_height); s.assign(_height); t.assign(_height); cimg_forXZ(*this,x,z) { // Over Y-direction. cimg_forY(*this,y) g[y] = (long)img(x,y,z,0,wh); _distance_scan(_height,g,sep,f,s,t,dt); cimg_forY(*this,y) img(x,y,z,0,wh) = (T)dt[y]; } if (_depth>1) { g.assign(_depth); dt.assign(_depth); s.assign(_depth); t.assign(_depth); cimg_forXY(*this,x,y) { // Over Z-direction. cimg_forZ(*this,z) g[z] = (long)img(x,y,z,0,wh); _distance_scan(_depth,g,sep,f,s,t,dt); cimg_forZ(*this,z) img(x,y,z,0,wh) = (T)dt[z]; } } } return *this; } //! Compute chamfer distance to a specified value, with a custom metric. /** \param value Reference value. \param metric_mask Metric mask. \note The algorithm code has been initially proposed by A. Meijster, and modified by D. Tschumperlé. **/ template CImg& distance(const T value, const CImg& metric_mask) { if (is_empty()) return *this; bool is_value = false; cimg_for(*this,ptr,T) *ptr = *ptr==value?is_value=true,0:(T)999999999; if (!is_value) return fill(cimg::type::max()); const unsigned long wh = (unsigned long)_width*_height; cimg_forC(*this,c) { CImg img = get_shared_channel(c); cimg_forXYZ(metric_mask,dx,dy,dz) { const t weight = metric_mask(dx,dy,dz); if (weight) { for (int z = dz, nz = 0; z=0; --z,--nz) { // Backward scan. for (int y = height() - 1 - dy, ny = height() - 1; y>=0; --y,--ny) { for (int x = width() - 1 - dx, nx = width() - 1; x>=0; --x,--nx) { const T dd = img(nx,ny,nz,0,wh) + weight; if (dd CImg get_distance(const T value, const CImg& metric_mask) const { return CImg(*this,false).distance(value,metric_mask); } //! Compute distance map to one source point. /** \param x X-coordinate of the source point. \param y Y-coordinate of the source point. \param z Z-coordinate of the source point. \note At input, image instance represents a field of potentials. **/ CImg& distance_dijkstra(const unsigned int x=0, const unsigned int y=0, const unsigned int z=0) { return get_distance_dijkstra(x,y,z).move_to(*this); } //! Compute distance map to one source point \newinstance. CImg get_distance_dijkstra(const unsigned int x=0, const unsigned int y=0, const unsigned int z=0) const { if (is_empty()) return *this; if (!containsXYZC(x,y,z,0)) throw CImgArgumentException(_cimg_instance "distance_dijkstra(): image instance does not contain specified starting point (%u,%u,%u).", cimg_instance, x,y,z); if (_spectrum!=1) throw CImgInstanceException(_cimg_instance "distance_dijkstra(): image instance is not a scalar image.", cimg_instance); CImg res(_width,_height,_depth,2); CImg in_queue(_width,_height,_depth,1,0); CImg Q; unsigned int sizeQ = 0; // Put specified point in priority queue. Q._priority_queue_insert(in_queue,sizeQ,0,x,y,z); res(x,y,z) = 0; res(x,y,z,1) = 0; // Start distance propagation. while (sizeQ) { // Get and remove point with minimal potential from the queue. const int x = (int)Q(0,1), y = (int)Q(0,2), z = (int)Q(0,3); const Tfloat potential = (Tfloat)-Q(0,0); Q._priority_queue_remove(sizeQ); // Update neighbors. Tfloat npot = 0; if (x-1>=0 && Q._priority_queue_insert(in_queue,sizeQ,-(npot=(*this)(x-1,y,z)+potential),x-1,y,z)) { res(x-1,y,z) = npot; res(x-1,y,z,1) = 2; } if (x+1=0 && Q._priority_queue_insert(in_queue,sizeQ,-(npot=(*this)(x,y-1,z)+potential),x,y-1,z)) { res(x,y-1,z) = npot; res(x,y-1,z,1) = 4; } if (y+1=0 && Q._priority_queue_insert(in_queue,sizeQ,-(npot=(*this)(x,y,z-1)+potential),x,y,z-1)) { res(x,y,z-1) = npot; res(x,y,z-1,1) = 6; } if (z+1& distance_eikonal(const unsigned int nb_iterations, const float band_size=0, const float time_step=0.5f) { if (is_empty()) return *this; CImg velocity(*this); for (unsigned int iteration = 0; iteration1) { // 3d CImg_3x3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3x3(*this,x,y,z,c,I,Tfloat) if (band_size<=0 || cimg::abs(Iccc)0?(Incc - Iccc):(Iccc - Ipcc), iy = gy*sgn>0?(Icnc - Iccc):(Iccc - Icpc), iz = gz*sgn>0?(Iccn - Iccc):(Iccc - Iccp), ng = (Tfloat)(1e-5f + std::sqrt(gx*gx + gy*gy + gz*gz)), ngx = gx/ng, ngy = gy/ng, ngz = gz/ng, veloc = sgn*(ngx*ix + ngy*iy + ngz*iz - 1); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } else *(ptrd++) = 0; } else { // 2d version CImg_3x3(I,Tfloat); cimg_forC(*this,c) cimg_for3x3(*this,x,y,0,c,I,Tfloat) if (band_size<=0 || cimg::abs(Icc)0?(Inc - Icc):(Icc - Ipc), iy = gy*sgn>0?(Icn - Icc):(Icc - Icp), ng = (Tfloat)(1e-5f + std::sqrt(gx*gx + gy*gy)), ngx = gx/ng, ngy = gy/ng, veloc = sgn*(ngx*ix + ngy*iy - 1); *(ptrd++) = veloc; if (veloc>veloc_max) veloc_max = veloc; else if (-veloc>veloc_max) veloc_max = -veloc; } else *(ptrd++) = 0; } if (veloc_max>0) *this+=(velocity*=time_step/veloc_max); } return *this; } //! Compute distance function to 0-valued isophotes, using the Eikonal PDE \newinstance. CImg get_distance_eikonal(const unsigned int nb_iterations, const float band_size=0, const float time_step=0.5f) const { return CImg(*this,false).distance_eikonal(nb_iterations,band_size,time_step); } //! Compute Haar multiscale wavelet transform. /** \param axis Axis considered for the transform. \param invert Set inverse of direct transform. \param nb_scales Number of scales used for the transform. **/ CImg& haar(const char axis, const bool invert=false, const unsigned int nb_scales=1) { return get_haar(axis,invert,nb_scales).move_to(*this); } //! Compute Haar multiscale wavelet transform \newinstance. CImg get_haar(const char axis, const bool invert=false, const unsigned int nb_scales=1) const { if (is_empty() || !nb_scales) return +*this; CImg res; const Tfloat sqrt2 = std::sqrt(2); if (nb_scales==1) { switch (cimg::uncase(axis)) { // Single scale transform case 'x' : { const unsigned int w = _width/2; if (w) { if ((w%2) && w!=1) throw CImgInstanceException(_cimg_instance "haar(): Sub-image width %u is not even.", cimg_instance, w); res.assign(_width,_height,_depth,_spectrum); if (invert) cimg_forYZC(*this,y,z,c) { // Inverse transform along X for (unsigned int x = 0, xw = w, x2 = 0; x& haar(const bool invert=false, const unsigned int nb_scales=1) { return get_haar(invert,nb_scales).move_to(*this); } //! Compute Haar multiscale wavelet transform \newinstance. CImg get_haar(const bool invert=false, const unsigned int nb_scales=1) const { CImg res; if (nb_scales==1) { // Single scale transform if (_width>1) get_haar('x',invert,1).move_to(res); if (_height>1) { if (res) res.haar('y',invert,1); else get_haar('y',invert,1).move_to(res); } if (_depth>1) { if (res) res.haar('z',invert,1); else get_haar('z',invert,1).move_to(res); } if (res) return res; } else { // Multi-scale transform if (invert) { // Inverse transform res.assign(*this); if (_width>1) { if (_height>1) { if (_depth>1) { unsigned int w = _width, h = _height, d = _depth; for (unsigned int s = 1; w && h && d && s1) { unsigned int w = _width, d = _depth; for (unsigned int s = 1; w && d && s1) { if (_depth>1) { unsigned int h = _height, d = _depth; for (unsigned int s = 1; h && d && s1) { unsigned int d = _depth; for (unsigned int s = 1; d && s1) { if (_height>1) { if (_depth>1) for (unsigned int s = 1, w = _width/2, h = _height/2, d = _depth/2; w && h && d && s1) for (unsigned int s = 1, w = _width/2, d = _depth/2; w && d && s1) { if (_depth>1) for (unsigned int s = 1, h = _height/2, d = _depth/2; h && d && s1) for (unsigned int s = 1, d = _depth/2; d && s get_FFT(const char axis, const bool is_invert=false) const { CImgList res(*this,CImg()); CImg::FFT(res[0],res[1],axis,is_invert); return res; } //! Compute n-d Fast Fourier Transform. /* \param is_invert Tells if the forward (\c false) or inverse (\c true) FFT is computed. **/ CImgList get_FFT(const bool is_invert=false) const { CImgList res(*this,CImg()); CImg::FFT(res[0],res[1],is_invert); return res; } //! Compute 1d Fast Fourier Transform, along a specified axis. /** \param[in,out] real Real part of the pixel values. \param[in,out] imag Imaginary part of the pixel values. \param axis Axis along which the FFT is computed. \param is_invert Tells if the forward (\c false) or inverse (\c true) FFT is computed. **/ static void FFT(CImg& real, CImg& imag, const char axis, const bool is_invert=false) { if (!real) throw CImgInstanceException("CImg<%s>::FFT(): Specified real part is empty.", pixel_type()); if (!imag) imag.assign(real._width,real._height,real._depth,real._spectrum,0); if (!real.is_sameXYZC(imag)) throw CImgInstanceException("CImg<%s>::FFT(): Specified real part (%u,%u,%u,%u,%p) and imaginary part (%u,%u,%u,%u,%p) have different dimensions.", pixel_type(), real._width,real._height,real._depth,real._spectrum,real._data, imag._width,imag._height,imag._depth,imag._spectrum,imag._data); #ifdef cimg_use_fftw3 cimg::mutex(12); fftw_complex *data_in; fftw_plan data_plan; switch (cimg::uncase(axis)) { case 'x' : { // Fourier along X, using FFTW library. data_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*real._width); if (!data_in) throw CImgInstanceException("CImgList<%s>::FFT(): Failed to allocate memory (%s) for computing FFT of image (%u,%u,%u,%u) along the X-axis.", pixel_type(), cimg::strbuffersize(sizeof(fftw_complex)*real._width), real._width,real._height,real._depth,real._spectrum); data_plan = fftw_plan_dft_1d(real._width,data_in,data_in,is_invert?FFTW_BACKWARD:FFTW_FORWARD,FFTW_ESTIMATE); cimg_forYZC(real,y,z,c) { T *ptrr = real.data(0,y,z,c), *ptri = imag.data(0,y,z,c); double *ptrd = (double*)data_in; cimg_forX(real,x) { *(ptrd++) = (double)*(ptrr++); *(ptrd++) = (double)*(ptri++); } fftw_execute(data_plan); const unsigned int fact = real._width; if (is_invert) cimg_forX(real,x) { *(--ptri) = (T)(*(--ptrd)/fact); *(--ptrr) = (T)(*(--ptrd)/fact); } else cimg_forX(real,x) { *(--ptri) = (T)*(--ptrd); *(--ptrr) = (T)*(--ptrd); } } } break; case 'y' : { // Fourier along Y, using FFTW library. data_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * real._height); if (!data_in) throw CImgInstanceException("CImgList<%s>::FFT(): Failed to allocate memory (%s) for computing FFT of image (%u,%u,%u,%u) along the Y-axis.", pixel_type(), cimg::strbuffersize(sizeof(fftw_complex)*real._height), real._width,real._height,real._depth,real._spectrum); data_plan = fftw_plan_dft_1d(real._height,data_in,data_in,is_invert?FFTW_BACKWARD:FFTW_FORWARD,FFTW_ESTIMATE); const unsigned int off = real._width; cimg_forXZC(real,x,z,c) { T *ptrr = real.data(x,0,z,c), *ptri = imag.data(x,0,z,c); double *ptrd = (double*)data_in; cimg_forY(real,y) { *(ptrd++) = (double)*ptrr; *(ptrd++) = (double)*ptri; ptrr+=off; ptri+=off; } fftw_execute(data_plan); const unsigned int fact = real._height; if (is_invert) cimg_forY(real,y) { ptrr-=off; ptri-=off; *ptri = (T)(*(--ptrd)/fact); *ptrr = (T)(*(--ptrd)/fact); } else cimg_forY(real,y) { ptrr-=off; ptri-=off; *ptri = (T)*(--ptrd); *ptrr = (T)*(--ptrd); } } } break; case 'z' : { // Fourier along Z, using FFTW library. data_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * real._depth); if (!data_in) throw CImgInstanceException("CImgList<%s>::FFT(): Failed to allocate memory (%s) for computing FFT of image (%u,%u,%u,%u) along the Z-axis.", pixel_type(), cimg::strbuffersize(sizeof(fftw_complex)*real._depth), real._width,real._height,real._depth,real._spectrum); data_plan = fftw_plan_dft_1d(real._depth,data_in,data_in,is_invert?FFTW_BACKWARD:FFTW_FORWARD,FFTW_ESTIMATE); const unsigned long off = (unsigned long)real._width*real._height; cimg_forXYC(real,x,y,c) { T *ptrr = real.data(x,y,0,c), *ptri = imag.data(x,y,0,c); double *ptrd = (double*)data_in; cimg_forZ(real,z) { *(ptrd++) = (double)*ptrr; *(ptrd++) = (double)*ptri; ptrr+=off; ptri+=off; } fftw_execute(data_plan); const unsigned int fact = real._depth; if (is_invert) cimg_forZ(real,z) { ptrr-=off; ptri-=off; *ptri = (T)(*(--ptrd)/fact); *ptrr = (T)(*(--ptrd)/fact); } else cimg_forZ(real,z) { ptrr-=off; ptri-=off; *ptri = (T)*(--ptrd); *ptrr = (T)*(--ptrd); } } } break; default : { // Fourier along C, using FFTW library. data_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * real._spectrum); if (!data_in) throw CImgInstanceException("CImgList<%s>::FFT(): Failed to allocate memory (%s) for computing FFT of image (%u,%u,%u,%u) along the C-axis.", pixel_type(), cimg::strbuffersize(sizeof(fftw_complex)*real._spectrum), real._width,real._height,real._depth,real._spectrum); data_plan = fftw_plan_dft_1d(real._spectrum,data_in,data_in,is_invert?FFTW_BACKWARD:FFTW_FORWARD,FFTW_ESTIMATE); const unsigned long off = (unsigned long)real._width*real._height*real._depth; cimg_forXYZ(real,x,y,z) { T *ptrr = real.data(x,y,z,0), *ptri = imag.data(x,y,z,0); double *ptrd = (double*)data_in; cimg_forC(real,c) { *(ptrd++) = (double)*ptrr; *(ptrd++) = (double)*ptri; ptrr+=off; ptri+=off; } fftw_execute(data_plan); const unsigned int fact = real._spectrum; if (is_invert) cimg_forC(real,c) { ptrr-=off; ptri-=off; *ptri = (T)(*(--ptrd)/fact); *ptrr = (T)(*(--ptrd)/fact); } else cimg_forC(real,c) { ptrr-=off; ptri-=off; *ptri = (T)*(--ptrd); *ptrr = (T)*(--ptrd); } } } } fftw_destroy_plan(data_plan); fftw_free(data_in); cimg::mutex(12,0); #else switch (cimg::uncase(axis)) { case 'x' : { // Fourier along X, using built-in functions. const unsigned int N = real._width, N2 = (N>>1); if (((N-1)&N) && N!=1) throw CImgInstanceException("CImgList<%s>::FFT(): Specified real and imaginary parts (%u,%u,%u,%u) have non 2^N dimension along the X-axis.", pixel_type(), real._width,real._height,real._depth,real._spectrum); for (unsigned int i = 0, j = 0; ii) cimg_forYZC(real,y,z,c) { cimg::swap(real(i,y,z,c),real(j,y,z,c)); cimg::swap(imag(i,y,z,c),imag(j,y,z,c)); if (j=m; j-=m, m = n, n>>=1) {} } for (unsigned int delta = 2; delta<=N; delta<<=1) { const unsigned int delta2 = (delta>>1); for (unsigned int i = 0; i>1); if (((N-1)&N) && N!=1) throw CImgInstanceException("CImgList<%s>::FFT(): Specified real and imaginary parts (%u,%u,%u,%u) have non 2^N dimension along the Y-axis.", pixel_type(), real._width,real._height,real._depth,real._spectrum); for (unsigned int i = 0, j = 0; ii) cimg_forXZC(real,x,z,c) { cimg::swap(real(x,i,z,c),real(x,j,z,c)); cimg::swap(imag(x,i,z,c),imag(x,j,z,c)); if (j=m; j-=m, m = n, n>>=1) {} } for (unsigned int delta = 2; delta<=N; delta<<=1) { const unsigned int delta2 = (delta>>1); for (unsigned int i = 0; i>1); if (((N-1)&N) && N!=1) throw CImgInstanceException("CImgList<%s>::FFT(): Specified real and imaginary parts (%u,%u,%u,%u) have non 2^N dimension along the Z-axis.", pixel_type(), real._width,real._height,real._depth,real._spectrum); for (unsigned int i = 0, j = 0; ii) cimg_forXYC(real,x,y,c) { cimg::swap(real(x,y,i,c),real(x,y,j,c)); cimg::swap(imag(x,y,i,c),imag(x,y,j,c)); if (j=m; j-=m, m = n, n>>=1) {} } for (unsigned int delta = 2; delta<=N; delta<<=1) { const unsigned int delta2 = (delta>>1); for (unsigned int i = 0; i::FFT(): Invalid specified axis '%c' for real and imaginary parts (%u,%u,%u,%u) " "(should be { x | y | z }).", pixel_type(),axis, real._width,real._height,real._depth,real._spectrum); } #endif } //! Compute n-d Fast Fourier Transform. /** \param[in,out] real Real part of the pixel values. \param[in,out] imag Imaginary part of the pixel values. \param is_invert Tells if the forward (\c false) or inverse (\c true) FFT is computed. \param nb_threads Number of parallel threads used for the computation. Use \c 0 to set this to the number of available cpus. **/ static void FFT(CImg& real, CImg& imag, const bool is_invert=false, const unsigned int nb_threads=0) { if (!real) throw CImgInstanceException("CImgList<%s>::FFT(): Empty specified real part.", pixel_type()); if (!imag) imag.assign(real._width,real._height,real._depth,real._spectrum,0); if (!real.is_sameXYZC(imag)) throw CImgInstanceException("CImgList<%s>::FFT(): Specified real part (%u,%u,%u,%u,%p) and imaginary part (%u,%u,%u,%u,%p) have different dimensions.", pixel_type(), real._width,real._height,real._depth,real._spectrum,real._data, imag._width,imag._height,imag._depth,imag._spectrum,imag._data); #ifdef cimg_use_fftw3 cimg::mutex(12); const unsigned int _nb_threads = nb_threads?nb_threads:cimg::nb_cpus(); #ifndef cimg_use_fftw3_singlethread static int fftw_st = fftw_init_threads(); cimg::unused(fftw_st); fftw_plan_with_nthreads(_nb_threads); #endif fftw_complex *data_in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex)*real._width*real._height*real._depth); if (!data_in) throw CImgInstanceException("CImgList<%s>::FFT(): Failed to allocate memory (%s) for computing FFT of image (%u,%u,%u,%u).", pixel_type(), cimg::strbuffersize(sizeof(fftw_complex)*real._width*real._height*real._depth*real._spectrum), real._width,real._height,real._depth,real._spectrum); fftw_plan data_plan; const unsigned long w = (unsigned long)real._width, wh = w*real._height, whd = wh*real._depth; data_plan = fftw_plan_dft_3d(real._width,real._height,real._depth,data_in,data_in,is_invert?FFTW_BACKWARD:FFTW_FORWARD,FFTW_ESTIMATE); cimg_forC(real,c) { T *ptrr = real.data(0,0,0,c), *ptri = imag.data(0,0,0,c); double *ptrd = (double*)data_in; for (unsigned int x = 0; x1) FFT(real,imag,'z',is_invert); if (real._height>1) FFT(real,imag,'y',is_invert); if (real._width>1) FFT(real,imag,'x',is_invert); #endif } //@} //------------------------------------- // //! \name 3d Objects Management //@{ //------------------------------------- //! Shift 3d object's vertices. /** \param tx X-coordinate of the 3d displacement vector. \param ty Y-coordinate of the 3d displacement vector. \param tz Z-coordinate of the 3d displacement vector. **/ CImg& shift_object3d(const float tx, const float ty=0, const float tz=0) { if (_height!=3 || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "shift_object3d(): Instance is not a set of 3d vertices.", cimg_instance); get_shared_row(0)+=tx; get_shared_row(1)+=ty; get_shared_row(2)+=tz; return *this; } //! Shift 3d object's vertices \newinstance. CImg get_shift_object3d(const float tx, const float ty=0, const float tz=0) const { return CImg(*this,false).shift_object3d(tx,ty,tz); } //! Shift 3d object's vertices, so that it becomes centered. /** \note The object center is computed as its barycenter. **/ CImg& shift_object3d() { if (_height!=3 || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "shift_object3d(): Instance is not a set of 3d vertices.", cimg_instance); CImg xcoords = get_shared_row(0), ycoords = get_shared_row(1), zcoords = get_shared_row(2); float xm, xM = (float)xcoords.max_min(xm), ym, yM = (float)ycoords.max_min(ym), zm, zM = (float)zcoords.max_min(zm); xcoords-=(xm + xM)/2; ycoords-=(ym + yM)/2; zcoords-=(zm + zM)/2; return *this; } //! Shift 3d object's vertices, so that it becomes centered \newinstance. CImg get_shift_object3d() const { return CImg(*this,false).shift_object3d(); } //! Resize 3d object. /** \param sx Width of the 3d object's bounding box. \param sy Height of the 3d object's bounding box. \param sz Depth of the 3d object's bounding box. **/ CImg& resize_object3d(const float sx, const float sy=-100, const float sz=-100) { if (_height!=3 || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "resize_object3d(): Instance is not a set of 3d vertices.", cimg_instance); CImg xcoords = get_shared_row(0), ycoords = get_shared_row(1), zcoords = get_shared_row(2); float xm, xM = (float)xcoords.max_min(xm), ym, yM = (float)ycoords.max_min(ym), zm, zM = (float)zcoords.max_min(zm); if (xm0) xcoords*=sx/(xM-xm); else xcoords*=-sx/100; } if (ym0) ycoords*=sy/(yM-ym); else ycoords*=-sy/100; } if (zm0) zcoords*=sz/(zM-zm); else zcoords*=-sz/100; } return *this; } //! Resize 3d object \newinstance. CImg get_resize_object3d(const float sx, const float sy=-100, const float sz=-100) const { return CImg(*this,false).resize_object3d(sx,sy,sz); } //! Resize 3d object to unit size. CImg resize_object3d() { if (_height!=3 || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "resize_object3d(): Instance is not a set of 3d vertices.", cimg_instance); CImg xcoords = get_shared_row(0), ycoords = get_shared_row(1), zcoords = get_shared_row(2); float xm, xM = (float)xcoords.max_min(xm), ym, yM = (float)ycoords.max_min(ym), zm, zM = (float)zcoords.max_min(zm); const float dx = xM - xm, dy = yM - ym, dz = zM - zm, dmax = cimg::max(dx,dy,dz); if (dmax>0) { xcoords/=dmax; ycoords/=dmax; zcoords/=dmax; } return *this; } //! Resize 3d object to unit size \newinstance. CImg get_resize_object3d() const { return CImg(*this,false).resize_object3d(); } //! Merge two 3d objects together. /** \param[in,out] primitives Primitives data of the current 3d object. \param obj_vertices Vertices data of the additional 3d object. \param obj_primitives Primitives data of the additional 3d object. **/ template CImg& append_object3d(CImgList& primitives, const CImg& obj_vertices, const CImgList& obj_primitives) { if (!obj_vertices || !obj_primitives) return *this; if (obj_vertices._height!=3 || obj_vertices._depth>1 || obj_vertices._spectrum>1) throw CImgInstanceException(_cimg_instance "append_object3d(): Specified vertice image (%u,%u,%u,%u,%p) is not a set of 3d vertices.", cimg_instance, obj_vertices._width,obj_vertices._height,obj_vertices._depth,obj_vertices._spectrum,obj_vertices._data); if (is_empty()) { primitives.assign(obj_primitives); return assign(obj_vertices); } if (_height!=3 || _depth>1 || _spectrum>1) throw CImgInstanceException(_cimg_instance "append_object3d(): Instance is not a set of 3d vertices.", cimg_instance); const unsigned int P = _width; append(obj_vertices,'x'); const unsigned int N = primitives._width; primitives.insert(obj_primitives); for (unsigned int i = N; i &p = primitives[i]; switch (p.size()) { case 1 : p[0]+=P; break; // Point. case 5 : p[0]+=P; p[1]+=P; break; // Sphere. case 2 : case 6 : p[0]+=P; p[1]+=P; break; // Segment. case 3 : case 9 : p[0]+=P; p[1]+=P; p[2]+=P; break; // Triangle. case 4 : case 12 : p[0]+=P; p[1]+=P; p[2]+=P; p[3]+=P; break; // Rectangle. } } return *this; } //! Texturize primitives of a 3d object. /** \param[in,out] primitives Primitives data of the 3d object. \param[in,out] colors Colors data of the 3d object. \param texture Texture image to map to 3d object. \param coords Texture-mapping coordinates. **/ template const CImg& texturize_object3d(CImgList& primitives, CImgList& colors, const CImg& texture, const CImg& coords=CImg::empty()) const { if (is_empty()) return *this; if (_height!=3) throw CImgInstanceException(_cimg_instance "texturize_object3d(): image instance is not a set of 3d points.", cimg_instance); if (coords && (coords._width!=_width || coords._height!=2)) throw CImgArgumentException(_cimg_instance "texturize_object3d(): Invalid specified texture coordinates (%u,%u,%u,%u,%p).", cimg_instance, coords._width,coords._height,coords._depth,coords._spectrum,coords._data); CImg _coords; if (!coords) { // If no texture coordinates specified, do a default XY-projection. _coords.assign(_width,2); float xmin, xmax = (float)get_shared_row(0).max_min(xmin), ymin, ymax = (float)get_shared_row(1).max_min(ymin), dx = xmax>xmin?xmax-xmin:1, dy = ymax>ymin?ymax-ymin:1; cimg_forX(*this,p) { _coords(p,0) = (unsigned int)(((*this)(p,0)-xmin)*(texture._width-1)/dx); _coords(p,1) = (unsigned int)(((*this)(p,1)-ymin)*(texture._height-1)/dy); } } else _coords = coords; int texture_ind = -1; cimglist_for(primitives,l) { CImg &p = primitives[l]; const unsigned int siz = p.size(); switch (siz) { case 1 : { // Point. const unsigned int i0 = (unsigned int)p[0], x0 = (unsigned int)_coords(i0,0), y0 = (unsigned int)_coords(i0,1); texture.get_vector_at(x0,y0).move_to(colors[l]); } break; case 2 : case 6 : { // Line. const unsigned int i0 = (unsigned int)p[0], i1 = (unsigned int)p[1], x0 = (unsigned int)_coords(i0,0), y0 = (unsigned int)_coords(i0,1), x1 = (unsigned int)_coords(i1,0), y1 = (unsigned int)_coords(i1,1); if (texture_ind<0) colors[texture_ind=l] = texture; else colors[l].assign(colors[texture_ind],true); CImg::vector(i0,i1,x0,y0,x1,y1).move_to(p); } break; case 3 : case 9 : { // Triangle. const unsigned int i0 = (unsigned int)p[0], i1 = (unsigned int)p[1], i2 = (unsigned int)p[2], x0 = (unsigned int)_coords(i0,0), y0 = (unsigned int)_coords(i0,1), x1 = (unsigned int)_coords(i1,0), y1 = (unsigned int)_coords(i1,1), x2 = (unsigned int)_coords(i2,0), y2 = (unsigned int)_coords(i2,1); if (texture_ind<0) colors[texture_ind=l] = texture; else colors[l].assign(colors[texture_ind],true); CImg::vector(i0,i1,i2,x0,y0,x1,y1,x2,y2).move_to(p); } break; case 4 : case 12 : { // Quadrangle. const unsigned int i0 = (unsigned int)p[0], i1 = (unsigned int)p[1], i2 = (unsigned int)p[2], i3 = (unsigned int)p[3], x0 = (unsigned int)_coords(i0,0), y0 = (unsigned int)_coords(i0,1), x1 = (unsigned int)_coords(i1,0), y1 = (unsigned int)_coords(i1,1), x2 = (unsigned int)_coords(i2,0), y2 = (unsigned int)_coords(i2,1), x3 = (unsigned int)_coords(i3,0), y3 = (unsigned int)_coords(i3,1); if (texture_ind<0) colors[texture_ind=l] = texture; else colors[l].assign(colors[texture_ind],true); CImg::vector(i0,i1,i2,i3,x0,y0,x1,y1,x2,y2,x3,y3).move_to(p); } break; } } return *this; } //! Generate a 3d elevation of the image instance. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param[out] colors The returned list of the 3d object colors. \param elevation The input elevation map. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code const CImg img("reference.jpg"); CImgList faces3d; CImgList colors3d; const CImg points3d = img.get_elevation3d(faces3d,colors3d,img.get_norm()*0.2); CImg().display_object3d("Elevation3d",points3d,faces3d,colors3d); \endcode \image html ref_elevation3d.jpg **/ template CImg get_elevation3d(CImgList& primitives, CImgList& colors, const CImg& elevation) const { if (!is_sameXY(elevation) || elevation._depth>1 || elevation._spectrum>1) throw CImgArgumentException(_cimg_instance "get_elevation3d(): Instance and specified elevation (%u,%u,%u,%u,%p) " "have incompatible dimensions.", cimg_instance, elevation._width,elevation._height,elevation._depth,elevation._spectrum,elevation._data); if (is_empty()) return *this; float m, M = (float)max_min(m); if (M==m) ++M; colors.assign(); const unsigned int size_x1 = _width - 1, size_y1 = _height - 1; for (unsigned int y = 0; y1?(unsigned char)(((*this)(x,y,1) - m)*255/(M-m)):r, b = _spectrum>2?(unsigned char)(((*this)(x,y,2) - m)*255/(M-m)):(_spectrum>1?0:r); CImg::vector((tc)r,(tc)g,(tc)b).move_to(colors); } const typename CImg::_functor2d_int func(elevation); return elevation3d(primitives,func,0,0,_width-1.0f,_height-1.0f,_width,_height); } //! Generate the 3d projection planes of the image instance. /** \param[out] primitives Primitives data of the returned 3d object. \param[out] colors Colors data of the returned 3d object. \param x0 X-coordinate of the projection point. \param y0 Y-coordinate of the projection point. \param z0 Z-coordinate of the projection point. \param normalize_colors Tells if the created textures have normalized colors. **/ template CImg get_projections3d(CImgList& primitives, CImgList& colors, const unsigned int x0, const unsigned int y0, const unsigned int z0, const bool normalize_colors=false) const { float m = 0, M = 0, delta = 1; if (normalize_colors) { m = (float)min_max(M); delta = 255/(m==M?1:M-m); } const unsigned int _x0 = (x0>=_width)?_width - 1:x0, _y0 = (y0>=_height)?_height - 1:y0, _z0 = (z0>=_depth)?_depth - 1:z0; CImg img_xy, img_xz, img_yz; if (normalize_colors) { ((get_crop(0,0,_z0,0,_width-1,_height-1,_z0,_spectrum-1)-=m)*=delta).move_to(img_xy); ((get_crop(0,_y0,0,0,_width-1,_y0,_depth-1,_spectrum-1)-=m)*=delta).resize(_width,_depth,1,-100,-1).move_to(img_xz); ((get_crop(_x0,0,0,0,_x0,_height-1,_depth-1,_spectrum-1)-=m)*=delta).resize(_height,_depth,1,-100,-1).move_to(img_yz); } else { get_crop(0,0,_z0,0,_width-1,_height-1,_z0,_spectrum-1).move_to(img_xy); get_crop(0,_y0,0,0,_width-1,_y0,_depth-1,_spectrum-1).resize(_width,_depth,1,-100,-1).move_to(img_xz); get_crop(_x0,0,0,0,_x0,_height-1,_depth-1,_spectrum-1).resize(_height,_depth,1,-100,-1).move_to(img_yz); } CImg points(12,3,1,1, 0,_width-1,_width-1,0, 0,_width-1,_width-1,0, _x0,_x0,_x0,_x0, 0,0,_height-1,_height-1, _y0,_y0,_y0,_y0, 0,_height-1,_height-1,0, _z0,_z0,_z0,_z0, 0,0,_depth-1,_depth-1, 0,0,_depth-1,_depth-1); primitives.assign(); CImg::vector(0,1,2,3,0,0,img_xy._width-1,0,img_xy._width-1,img_xy._height-1,0,img_xy._height-1).move_to(primitives); CImg::vector(4,5,6,7,0,0,img_xz._width-1,0,img_xz._width-1,img_xz._height-1,0,img_xz._height-1).move_to(primitives); CImg::vector(8,9,10,11,0,0,img_yz._width-1,0,img_yz._width-1,img_yz._height-1,0,img_yz._height-1).move_to(primitives); colors.assign(); img_xy.move_to(colors); img_xz.move_to(colors); img_yz.move_to(colors); return points; } //! Generate a isoline of the image instance as a 3d object. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param isovalue The returned list of the 3d object colors. \param size_x The number of subdivisions along the X-axis. \param size_y The number of subdisivions along the Y-axis. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code const CImg img("reference.jpg"); CImgList faces3d; const CImg points3d = img.get_isoline3d(faces3d,100); CImg().display_object3d("Isoline3d",points3d,faces3d,colors3d); \endcode \image html ref_isoline3d.jpg **/ template CImg get_isoline3d(CImgList& primitives, const float isovalue, const int size_x=-100, const int size_y=-100) const { if (_spectrum>1) throw CImgInstanceException(_cimg_instance "get_isoline3d(): Instance is not a scalar image.", cimg_instance); if (_depth>1) throw CImgInstanceException(_cimg_instance "get_isoline3d(): Instance is not a 2d image.", cimg_instance); primitives.assign(); if (is_empty()) return *this; CImg vertices; if ((size_x==-100 && size_y==-100) || (size_x==width() && size_y==height())) { const _functor2d_int func(*this); vertices = isoline3d(primitives,func,isovalue,0,0,width()-1.0f,height()-1.0f,width(),height()); } else { const _functor2d_float func(*this); vertices = isoline3d(primitives,func,isovalue,0,0,width()-1.0f,height()-1.0f,size_x,size_y); } return vertices; } //! Generate an isosurface of the image instance as a 3d object. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param isovalue The returned list of the 3d object colors. \param size_x Number of subdivisions along the X-axis. \param size_y Number of subdisivions along the Y-axis. \param size_z Number of subdisivions along the Z-axis. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code const CImg img = CImg("reference.jpg").resize(-100,-100,20); CImgList faces3d; const CImg points3d = img.get_isosurface3d(faces3d,100); CImg().display_object3d("Isosurface3d",points3d,faces3d,colors3d); \endcode \image html ref_isosurface3d.jpg **/ template CImg get_isosurface3d(CImgList& primitives, const float isovalue, const int size_x=-100, const int size_y=-100, const int size_z=-100) const { if (_spectrum>1) throw CImgInstanceException(_cimg_instance "get_isosurface3d(): Instance is not a scalar image.", cimg_instance); primitives.assign(); if (is_empty()) return *this; CImg vertices; if ((size_x==-100 && size_y==-100 && size_z==-100) || (size_x==width() && size_y==height() && size_z==depth())) { const _functor3d_int func(*this); vertices = isosurface3d(primitives,func,isovalue,0,0,0,width()-1.0f,height()-1.0f,depth()-1.0f,width(),height(),depth()); } else { const _functor3d_float func(*this); vertices = isosurface3d(primitives,func,isovalue,0,0,0,width()-1.0f,height()-1.0f,depth()-1.0f,size_x,size_y,size_z); } return vertices; } //! Compute 3d elevation of a function as a 3d object. /** \param[out] primitives Primitives data of the resulting 3d object. \param func Elevation function. Is of type float (*func)(const float x,const float y). \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param size_x Resolution of the function along the X-axis. \param size_y Resolution of the function along the Y-axis. **/ template static CImg elevation3d(CImgList& primitives, const tfunc& func, const float x0, const float y0, const float x1, const float y1, const int size_x=256, const int size_y=256) { const float nx0 = x0=0?size_x:(nx1-nx0)*-size_x/100), nsize_x = _nsize_x?_nsize_x:1, nsize_x1 = nsize_x - 1, _nsize_y = (unsigned int)(size_y>=0?size_y:(ny1-ny0)*-size_y/100), nsize_y = _nsize_y?_nsize_y:1, nsize_y1 = nsize_y - 1; if (nsize_x<2 || nsize_y<2) throw CImgArgumentException("CImg<%s>::elevation3d(): Invalid specified size (%d,%d).", pixel_type(), nsize_x,nsize_y); CImg vertices(nsize_x*nsize_y,3); floatT *ptr_x = vertices.data(0,0), *ptr_y = vertices.data(0,1), *ptr_z = vertices.data(0,2); for (unsigned int y = 0; y static CImg elevation3d(CImgList& primitives, const char *const expression, const float x0, const float y0, const float x1, const float y1, const int size_x=256, const int size_y=256) { const _functor2d_expr func(expression); return elevation3d(primitives,func,x0,y0,x1,y1,size_x,size_y); } //! Compute 0-isolines of a function, as a 3d object. /** \param[out] primitives Primitives data of the resulting 3d object. \param func Elevation function. Is of type float (*func)(const float x,const float y). \param isovalue Isovalue to extract from function. \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param size_x Resolution of the function along the X-axis. \param size_y Resolution of the function along the Y-axis. \note Use the marching squares algorithm for extracting the isolines. **/ template static CImg isoline3d(CImgList& primitives, const tfunc& func, const float isovalue, const float x0, const float y0, const float x1, const float y1, const int size_x=256, const int size_y=256) { static const unsigned int edges[16] = { 0x0, 0x9, 0x3, 0xa, 0x6, 0xf, 0x5, 0xc, 0xc, 0x5, 0xf, 0x6, 0xa, 0x3, 0x9, 0x0 }; static const int segments[16][4] = { { -1,-1,-1,-1 }, { 0,3,-1,-1 }, { 0,1,-1,-1 }, { 1,3,-1,-1 }, { 1,2,-1,-1 }, { 0,1,2,3 }, { 0,2,-1,-1 }, { 2,3,-1,-1 }, { 2,3,-1,-1 }, { 0,2,-1,-1}, { 0,3,1,2 }, { 1,2,-1,-1 }, { 1,3,-1,-1 }, { 0,1,-1,-1}, { 0,3,-1,-1}, { -1,-1,-1,-1 } }; const unsigned int _nx = (unsigned int)(size_x>=0?size_x:cimg::round((x1-x0)*-size_x/100 + 1)), _ny = (unsigned int)(size_y>=0?size_y:cimg::round((y1-y0)*-size_y/100 + 1)), nx = _nx?_nx:1, ny = _ny?_ny:1, nxm1 = nx - 1, nym1 = ny - 1; primitives.assign(); if (!nxm1 || !nym1) return CImg(); const float dx = (x1 - x0)/nxm1, dy = (y1 - y0)/nym1; CImgList vertices; CImg indices1(nx,1,1,2,-1), indices2(nx,1,1,2); CImg values1(nx), values2(nx); float X = x0, Y = y0, nX = X + dx, nY = Y + dy; // Fill first line with values cimg_forX(values1,x) { values1(x) = (float)func(X,Y); X+=dx; } // Run the marching squares algorithm for (unsigned int yi = 0, nyi = 1; yi::vector(Xi,Y,0).move_to(vertices); } if ((edge&2) && indices1(nxi,1)<0) { const float Yi = Y + (isovalue-val1)*dy/(val2-val1); indices1(nxi,1) = vertices._width; CImg::vector(nX,Yi,0).move_to(vertices); } if ((edge&4) && indices2(xi,0)<0) { const float Xi = X + (isovalue-val3)*dx/(val2-val3); indices2(xi,0) = vertices._width; CImg::vector(Xi,nY,0).move_to(vertices); } if ((edge&8) && indices1(xi,1)<0) { const float Yi = Y + (isovalue-val0)*dy/(val3-val0); indices1(xi,1) = vertices._width; CImg::vector(X,Yi,0).move_to(vertices); } // Create segments for (const int *segment = segments[configuration]; *segment!=-1; ) { const unsigned int p0 = *(segment++), p1 = *(segment++); const tf i0 = (tf)(_isoline3d_indice(p0,indices1,indices2,xi,nxi)), i1 = (tf)(_isoline3d_indice(p1,indices1,indices2,xi,nxi)); CImg::vector(i0,i1).move_to(primitives); } } } values1.swap(values2); indices1.swap(indices2); } return vertices>'x'; } //! Compute isolines of a function, as a 3d object \overloading. template static CImg isoline3d(CImgList& primitives, const char *const expression, const float isovalue, const float x0, const float y0, const float x1, const float y1, const int size_x=256, const int size_y=256) { const _functor2d_expr func(expression); return isoline3d(primitives,func,isovalue,x0,y0,x1,y1,size_x,size_y); } template static int _isoline3d_indice(const unsigned int edge, const CImg& indices1, const CImg& indices2, const unsigned int x, const unsigned int nx) { switch (edge) { case 0 : return (int)indices1(x,0); case 1 : return (int)indices1(nx,1); case 2 : return (int)indices2(x,0); case 3 : return (int)indices1(x,1); } return 0; } //! Compute isosurface of a function, as a 3d object. /** \param[out] primitives Primitives data of the resulting 3d object. \param func Implicit function. Is of type float (*func)(const float x, const float y, const float z). \param isovalue Isovalue to extract. \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param z0 Z-coordinate of the starting point. \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param z1 Z-coordinate of the ending point. \param size_x Resolution of the elevation function along the X-axis. \param size_y Resolution of the elevation function along the Y-axis. \param size_z Resolution of the elevation function along the Z-axis. \note Use the marching cubes algorithm for extracting the isosurface. **/ template static CImg isosurface3d(CImgList& primitives, const tfunc& func, const float isovalue, const float x0, const float y0, const float z0, const float x1, const float y1, const float z1, const int size_x=32, const int size_y=32, const int size_z=32) { static const unsigned int edges[256] = { 0x000, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00, 0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90, 0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30, 0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0, 0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60, 0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc, 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0, 0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950, 0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc , 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0, 0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc, 0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0, 0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650, 0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0, 0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460, 0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0, 0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230, 0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190, 0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x000 }; static const int triangles[256][16] = { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 8, 3, 9, 8, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 2, 10, 0, 2, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 2, 8, 3, 2, 10, 8, 10, 9, 8, -1, -1, -1, -1, -1, -1, -1 }, { 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 11, 2, 8, 11, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 9, 0, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 11, 2, 1, 9, 11, 9, 8, 11, -1, -1, -1, -1, -1, -1, -1 }, { 3, 10, 1, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 10, 1, 0, 8, 10, 8, 11, 10, -1, -1, -1, -1, -1, -1, -1 }, { 3, 9, 0, 3, 11, 9, 11, 10, 9, -1, -1, -1, -1, -1, -1, -1 }, { 9, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 3, 0, 7, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 9, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 1, 9, 4, 7, 1, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 4, 7, 3, 0, 4, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1 }, { 9, 2, 10, 9, 0, 2, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 }, { 2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4, -1, -1, -1, -1 }, { 8, 4, 7, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 11, 4, 7, 11, 2, 4, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1 }, { 9, 0, 1, 8, 4, 7, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 }, { 4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1, -1, -1, -1, -1 }, { 3, 10, 1, 3, 11, 10, 7, 8, 4, -1, -1, -1, -1, -1, -1, -1 }, { 1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4, -1, -1, -1, -1 }, { 4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3, -1, -1, -1, -1 }, { 4, 7, 11, 4, 11, 9, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1 }, { 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 5, 4, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 5, 4, 1, 5, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 8, 5, 4, 8, 3, 5, 3, 1, 5, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 0, 8, 1, 2, 10, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 }, { 5, 2, 10, 5, 4, 2, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1 }, { 2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8, -1, -1, -1, -1 }, { 9, 5, 4, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 11, 2, 0, 8, 11, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 }, { 0, 5, 4, 0, 1, 5, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 }, { 2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5, -1, -1, -1, -1 }, { 10, 3, 11, 10, 1, 3, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1 }, { 4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10, -1, -1, -1, -1 }, { 5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3, -1, -1, -1, -1 }, { 5, 4, 8, 5, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1 }, { 9, 7, 8, 5, 7, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 3, 0, 9, 5, 3, 5, 7, 3, -1, -1, -1, -1, -1, -1, -1 }, { 0, 7, 8, 0, 1, 7, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1 }, { 1, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 7, 8, 9, 5, 7, 10, 1, 2, -1, -1, -1, -1, -1, -1, -1 }, { 10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3, -1, -1, -1, -1 }, { 8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2, -1, -1, -1, -1 }, { 2, 10, 5, 2, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1 }, { 7, 9, 5, 7, 8, 9, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1 }, { 9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11, -1, -1, -1, -1 }, { 2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7, -1, -1, -1, -1 }, { 11, 2, 1, 11, 1, 7, 7, 1, 5, -1, -1, -1, -1, -1, -1, -1 }, { 9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11, -1, -1, -1, -1 }, { 5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0, -1 }, { 11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0, -1 }, { 11, 10, 5, 7, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 0, 1, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 8, 3, 1, 9, 8, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 }, { 1, 6, 5, 2, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 6, 5, 1, 2, 6, 3, 0, 8, -1, -1, -1, -1, -1, -1, -1 }, { 9, 6, 5, 9, 0, 6, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1 }, { 5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8, -1, -1, -1, -1 }, { 2, 3, 11, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 11, 0, 8, 11, 2, 0, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 9, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 }, { 5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11, -1, -1, -1, -1 }, { 6, 3, 11, 6, 5, 3, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6, -1, -1, -1, -1 }, { 3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9, -1, -1, -1, -1 }, { 6, 5, 9, 6, 9, 11, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1 }, { 5, 10, 6, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 3, 0, 4, 7, 3, 6, 5, 10, -1, -1, -1, -1, -1, -1, -1 }, { 1, 9, 0, 5, 10, 6, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 }, { 10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4, -1, -1, -1, -1 }, { 6, 1, 2, 6, 5, 1, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7, -1, -1, -1, -1 }, { 8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6, -1, -1, -1, -1 }, { 7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9, -1 }, { 3, 11, 2, 7, 8, 4, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 }, { 5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11, -1, -1, -1, -1 }, { 0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1 }, { 9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6, -1 }, { 8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6, -1, -1, -1, -1 }, { 5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11, -1 }, { 0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7, -1 }, { 6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9, -1, -1, -1, -1 }, { 10, 4, 9, 6, 4, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 10, 6, 4, 9, 10, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1 }, { 10, 0, 1, 10, 6, 0, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1 }, { 8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10, -1, -1, -1, -1 }, { 1, 4, 9, 1, 2, 4, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1 }, { 3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4, -1, -1, -1, -1 }, { 0, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 8, 3, 2, 8, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1 }, { 10, 4, 9, 10, 6, 4, 11, 2, 3, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6, -1, -1, -1, -1 }, { 3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10, -1, -1, -1, -1 }, { 6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1, -1 }, { 9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3, -1, -1, -1, -1 }, { 8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1, -1 }, { 3, 11, 6, 3, 6, 0, 0, 6, 4, -1, -1, -1, -1, -1, -1, -1 }, { 6, 4, 8, 11, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 7, 10, 6, 7, 8, 10, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1 }, { 0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10, -1, -1, -1, -1 }, { 10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0, -1, -1, -1, -1 }, { 10, 6, 7, 10, 7, 1, 1, 7, 3, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7, -1, -1, -1, -1 }, { 2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9, -1 }, { 7, 8, 0, 7, 0, 6, 6, 0, 2, -1, -1, -1, -1, -1, -1, -1 }, { 7, 3, 2, 6, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7, -1, -1, -1, -1 }, { 2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7, -1 }, { 1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11, -1 }, { 11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1, -1, -1, -1, -1 }, { 8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6, -1 }, { 0, 9, 1, 11, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0, -1, -1, -1, -1 }, { 7, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 0, 8, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 9, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 8, 1, 9, 8, 3, 1, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 }, { 10, 1, 2, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, 3, 0, 8, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 }, { 2, 9, 0, 2, 10, 9, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 }, { 6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8, -1, -1, -1, -1 }, { 7, 2, 3, 6, 2, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 7, 0, 8, 7, 6, 0, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1 }, { 2, 7, 6, 2, 3, 7, 0, 1, 9, -1, -1, -1, -1, -1, -1, -1 }, { 1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6, -1, -1, -1, -1 }, { 10, 7, 6, 10, 1, 7, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1 }, { 10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8, -1, -1, -1, -1 }, { 0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7, -1, -1, -1, -1 }, { 7, 6, 10, 7, 10, 8, 8, 10, 9, -1, -1, -1, -1, -1, -1, -1 }, { 6, 8, 4, 11, 8, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 6, 11, 3, 0, 6, 0, 4, 6, -1, -1, -1, -1, -1, -1, -1 }, { 8, 6, 11, 8, 4, 6, 9, 0, 1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6, -1, -1, -1, -1 }, { 6, 8, 4, 6, 11, 8, 2, 10, 1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6, -1, -1, -1, -1 }, { 4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9, -1, -1, -1, -1 }, { 10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3, -1 }, { 8, 2, 3, 8, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8, -1, -1, -1, -1 }, { 1, 9, 4, 1, 4, 2, 2, 4, 6, -1, -1, -1, -1, -1, -1, -1 }, { 8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1, -1, -1, -1, -1 }, { 10, 1, 0, 10, 0, 6, 6, 0, 4, -1, -1, -1, -1, -1, -1, -1 }, { 4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3, -1 }, { 10, 9, 4, 6, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 9, 5, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, 4, 9, 5, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 }, { 5, 0, 1, 5, 4, 0, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 }, { 11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5, -1, -1, -1, -1 }, { 9, 5, 4, 10, 1, 2, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 }, { 6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5, -1, -1, -1, -1 }, { 7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2, -1, -1, -1, -1 }, { 3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6, -1 }, { 7, 2, 3, 7, 6, 2, 5, 4, 9, -1, -1, -1, -1, -1, -1, -1 }, { 9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7, -1, -1, -1, -1 }, { 3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0, -1, -1, -1, -1 }, { 6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8, -1 }, { 9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7, -1, -1, -1, -1 }, { 1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4, -1 }, { 4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10, -1 }, { 7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10, -1, -1, -1, -1 }, { 6, 9, 5, 6, 11, 9, 11, 8, 9, -1, -1, -1, -1, -1, -1, -1 }, { 3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5, -1, -1, -1, -1 }, { 0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11, -1, -1, -1, -1 }, { 6, 11, 3, 6, 3, 5, 5, 3, 1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6, -1, -1, -1, -1 }, { 0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10, -1 }, { 11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5, -1 }, { 6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3, -1, -1, -1, -1 }, { 5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2, -1, -1, -1, -1 }, { 9, 5, 6, 9, 6, 0, 0, 6, 2, -1, -1, -1, -1, -1, -1, -1 }, { 1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8, -1 }, { 1, 5, 6, 2, 1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6, -1 }, { 10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0, -1, -1, -1, -1 }, { 0, 3, 8, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 10, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 11, 5, 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 11, 5, 10, 11, 7, 5, 8, 3, 0, -1, -1, -1, -1, -1, -1, -1 }, { 5, 11, 7, 5, 10, 11, 1, 9, 0, -1, -1, -1, -1, -1, -1, -1 }, { 10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1, -1, -1, -1, -1 }, { 11, 1, 2, 11, 7, 1, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11, -1, -1, -1, -1 }, { 9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7, -1, -1, -1, -1 }, { 7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2, -1 }, { 2, 5, 10, 2, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1 }, { 8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5, -1, -1, -1, -1 }, { 9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2, -1, -1, -1, -1 }, { 9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2, -1 }, { 1, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 7, 0, 7, 1, 1, 7, 5, -1, -1, -1, -1, -1, -1, -1 }, { 9, 0, 3, 9, 3, 5, 5, 3, 7, -1, -1, -1, -1, -1, -1, -1 }, { 9, 8, 7, 5, 9, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 5, 8, 4, 5, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1 }, { 5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0, -1, -1, -1, -1 }, { 0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5, -1, -1, -1, -1 }, { 10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4, -1 }, { 2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8, -1, -1, -1, -1 }, { 0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11, -1 }, { 0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5, -1 }, { 9, 4, 5, 2, 11, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4, -1, -1, -1, -1 }, { 5, 10, 2, 5, 2, 4, 4, 2, 0, -1, -1, -1, -1, -1, -1, -1 }, { 3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9, -1 }, { 5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2, -1, -1, -1, -1 }, { 8, 4, 5, 8, 5, 3, 3, 5, 1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 1, 0, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5, -1, -1, -1, -1 }, { 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 11, 7, 4, 9, 11, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1 }, { 0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11, -1, -1, -1, -1 }, { 1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11, -1, -1, -1, -1 }, { 3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4, -1 }, { 4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2, -1, -1, -1, -1 }, { 9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3, -1 }, { 11, 7, 4, 11, 4, 2, 2, 4, 0, -1, -1, -1, -1, -1, -1, -1 }, { 11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4, -1, -1, -1, -1 }, { 2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9, -1, -1, -1, -1 }, { 9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7, -1 }, { 3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10, -1 }, { 1, 10, 2, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 9, 1, 4, 1, 7, 7, 1, 3, -1, -1, -1, -1, -1, -1, -1 }, { 4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1, -1, -1, -1, -1 }, { 4, 0, 3, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 9, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 0, 9, 3, 9, 11, 11, 9, 10, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 10, 0, 10, 8, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1 }, { 3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 2, 11, 1, 11, 9, 9, 11, 8, -1, -1, -1, -1, -1, -1, -1 }, { 3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9, -1, -1, -1, -1 }, { 0, 2, 11, 8, 0, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 2, 3, 8, 2, 8, 10, 10, 8, 9, -1, -1, -1, -1, -1, -1, -1 }, { 9, 10, 2, 0, 9, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8, -1, -1, -1, -1 }, { 1, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 1, 3, 8, 9, 1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } }; const unsigned int _nx = (unsigned int)(size_x>=0?size_x:cimg::round((x1-x0)*-size_x/100 + 1)), _ny = (unsigned int)(size_y>=0?size_y:cimg::round((y1-y0)*-size_y/100 + 1)), _nz = (unsigned int)(size_z>=0?size_z:cimg::round((z1-z0)*-size_z/100 + 1)), nx = _nx?_nx:1, ny = _ny?_ny:1, nz = _nz?_nz:1, nxm1 = nx - 1, nym1 = ny - 1, nzm1 = nz - 1; primitives.assign(); if (!nxm1 || !nym1 || !nzm1) return CImg(); const float dx = (x1 - x0)/nxm1, dy = (y1 - y0)/nym1, dz = (z1 - z0)/nzm1; CImgList vertices; CImg indices1(nx,ny,1,3,-1), indices2(indices1); CImg values1(nx,ny), values2(nx,ny); float X = 0, Y = 0, Z = 0, nX = 0, nY = 0, nZ = 0; // Fill the first plane with function values Y = y0; cimg_forY(values1,y) { X = x0; cimg_forX(values1,x) { values1(x,y) = (float)func(X,Y,z0); X+=dx; } Y+=dy; } // Run Marching Cubes algorithm Z = z0; nZ = Z + dz; for (unsigned int zi = 0; zi::vector(Xi,Y,Z).move_to(vertices); } if ((edge&2) && indices1(nxi,yi,1)<0) { const float Yi = Y + (isovalue-val1)*dy/(val2-val1); indices1(nxi,yi,1) = vertices._width; CImg::vector(nX,Yi,Z).move_to(vertices); } if ((edge&4) && indices1(xi,nyi,0)<0) { const float Xi = X + (isovalue-val3)*dx/(val2-val3); indices1(xi,nyi,0) = vertices._width; CImg::vector(Xi,nY,Z).move_to(vertices); } if ((edge&8) && indices1(xi,yi,1)<0) { const float Yi = Y + (isovalue-val0)*dy/(val3-val0); indices1(xi,yi,1) = vertices._width; CImg::vector(X,Yi,Z).move_to(vertices); } if ((edge&16) && indices2(xi,yi,0)<0) { const float Xi = X + (isovalue-val4)*dx/(val5-val4); indices2(xi,yi,0) = vertices._width; CImg::vector(Xi,Y,nZ).move_to(vertices); } if ((edge&32) && indices2(nxi,yi,1)<0) { const float Yi = Y + (isovalue-val5)*dy/(val6-val5); indices2(nxi,yi,1) = vertices._width; CImg::vector(nX,Yi,nZ).move_to(vertices); } if ((edge&64) && indices2(xi,nyi,0)<0) { const float Xi = X + (isovalue-val7)*dx/(val6-val7); indices2(xi,nyi,0) = vertices._width; CImg::vector(Xi,nY,nZ).move_to(vertices); } if ((edge&128) && indices2(xi,yi,1)<0) { const float Yi = Y + (isovalue-val4)*dy/(val7-val4); indices2(xi,yi,1) = vertices._width; CImg::vector(X,Yi,nZ).move_to(vertices); } if ((edge&256) && indices1(xi,yi,2)<0) { const float Zi = Z+ (isovalue-val0)*dz/(val4-val0); indices1(xi,yi,2) = vertices._width; CImg::vector(X,Y,Zi).move_to(vertices); } if ((edge&512) && indices1(nxi,yi,2)<0) { const float Zi = Z + (isovalue-val1)*dz/(val5-val1); indices1(nxi,yi,2) = vertices._width; CImg::vector(nX,Y,Zi).move_to(vertices); } if ((edge&1024) && indices1(nxi,nyi,2)<0) { const float Zi = Z + (isovalue-val2)*dz/(val6-val2); indices1(nxi,nyi,2) = vertices._width; CImg::vector(nX,nY,Zi).move_to(vertices); } if ((edge&2048) && indices1(xi,nyi,2)<0) { const float Zi = Z + (isovalue-val3)*dz/(val7-val3); indices1(xi,nyi,2) = vertices._width; CImg::vector(X,nY,Zi).move_to(vertices); } // Create triangles for (const int *triangle = triangles[configuration]; *triangle!=-1; ) { const unsigned int p0 = *(triangle++), p1 = *(triangle++), p2 = *(triangle++); const tf i0 = (tf)(_isosurface3d_indice(p0,indices1,indices2,xi,yi,nxi,nyi)), i1 = (tf)(_isosurface3d_indice(p1,indices1,indices2,xi,yi,nxi,nyi)), i2 = (tf)(_isosurface3d_indice(p2,indices1,indices2,xi,yi,nxi,nyi)); CImg::vector(i0,i2,i1).move_to(primitives); } } } } cimg::swap(values1,values2); cimg::swap(indices1,indices2); } return vertices>'x'; } //! Compute isosurface of a function, as a 3d object \overloading. template static CImg isosurface3d(CImgList& primitives, const char *const expression, const float isovalue, const float x0, const float y0, const float z0, const float x1, const float y1, const float z1, const int dx=32, const int dy=32, const int dz=32) { const _functor3d_expr func(expression); return isosurface3d(primitives,func,isovalue,x0,y0,z0,x1,y1,z1,dx,dy,dz); } template static int _isosurface3d_indice(const unsigned int edge, const CImg& indices1, const CImg& indices2, const unsigned int x, const unsigned int y, const unsigned int nx, const unsigned int ny) { switch (edge) { case 0 : return indices1(x,y,0); case 1 : return indices1(nx,y,1); case 2 : return indices1(x,ny,0); case 3 : return indices1(x,y,1); case 4 : return indices2(x,y,0); case 5 : return indices2(nx,y,1); case 6 : return indices2(x,ny,0); case 7 : return indices2(x,y,1); case 8 : return indices1(x,y,2); case 9 : return indices1(nx,y,2); case 10 : return indices1(nx,ny,2); case 11 : return indices1(x,ny,2); } return 0; } // Define functors for accessing image values (used in previous functions). struct _functor2d_int { const CImg& ref; _functor2d_int(const CImg& pref):ref(pref) {} float operator()(const float x, const float y) const { return (float)ref((int)x,(int)y); } }; struct _functor2d_float { const CImg& ref; _functor2d_float(const CImg& pref):ref(pref) {} float operator()(const float x, const float y) const { return (float)ref._linear_atXY(x,y); } }; struct _functor2d_expr { _cimg_math_parser *mp; _functor2d_expr(const char *const expr):mp(0) { mp = new _cimg_math_parser(CImg::empty(),expr,0); } ~_functor2d_expr() { delete mp; } float operator()(const float x, const float y) const { return (float)mp->eval(x,y,0,0); } }; struct _functor3d_int { const CImg& ref; _functor3d_int(const CImg& pref):ref(pref) {} float operator()(const float x, const float y, const float z) const { return (float)ref((int)x,(int)y,(int)z); } }; struct _functor3d_float { const CImg& ref; _functor3d_float(const CImg& pref):ref(pref) {} float operator()(const float x, const float y, const float z) const { return (float)ref._linear_atXYZ(x,y,z); } }; struct _functor3d_expr { _cimg_math_parser *mp; ~_functor3d_expr() { delete mp; } _functor3d_expr(const char *const expr):mp(0) { mp = new _cimg_math_parser(CImg::empty(),expr,0); } float operator()(const float x, const float y, const float z) const { return (float)mp->eval(x,y,z,0); } }; struct _functor4d_int { const CImg& ref; _functor4d_int(const CImg& pref):ref(pref) {} float operator()(const float x, const float y, const float z, const unsigned int c) const { return (float)ref((int)x,(int)y,(int)z,c); } }; //! Generate a 3d box object. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param size_x The width of the box (dimension along the X-axis). \param size_y The height of the box (dimension along the Y-axis). \param size_z The depth of the box (dimension along the Z-axis). \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::box3d(faces3d,10,20,30); CImg().display_object3d("Box3d",points3d,faces3d); \endcode \image html ref_box3d.jpg **/ template static CImg box3d(CImgList& primitives, const float size_x=200, const float size_y=100, const float size_z=100) { primitives.assign(6,1,4,1,1, 0,3,2,1, 4,5,6,7, 0,1,5,4, 3,7,6,2, 0,4,7,3, 1,2,6,5); return CImg(8,3,1,1, 0.,size_x,size_x, 0., 0.,size_x,size_x, 0., 0., 0.,size_y,size_y, 0., 0.,size_y,size_y, 0., 0., 0., 0.,size_z,size_z,size_z,size_z); } //! Generate a 3d cone. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param radius The radius of the cone basis. \param size_z The cone's height. \param subdivisions The number of basis angular subdivisions. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::cone3d(faces3d,50); CImg().display_object3d("Cone3d",points3d,faces3d); \endcode \image html ref_cone3d.jpg **/ template static CImg cone3d(CImgList& primitives, const float radius=50, const float size_z=100, const unsigned int subdivisions=24) { primitives.assign(); if (!subdivisions) return CImg(); CImgList vertices(2,1,3,1,1, 0.,0.,size_z, 0.,0.,0.); for (float delta = 360.0f/subdivisions, angle = 0; angle<360; angle+=delta) { const float a = (float)(angle*cimg::PI/180); CImg::vector((float)(radius*std::cos(a)),(float)(radius*std::sin(a)),0).move_to(vertices); } const unsigned int nbr = vertices._width - 2; for (unsigned int p = 0; p::vector(1,next,curr).move_to(primitives); CImg::vector(0,curr,next).move_to(primitives); } return vertices>'x'; } //! Generate a 3d cylinder. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param radius The radius of the cylinder basis. \param size_z The cylinder's height. \param subdivisions The number of basis angular subdivisions. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::cylinder3d(faces3d,50); CImg().display_object3d("Cylinder3d",points3d,faces3d); \endcode \image html ref_cylinder3d.jpg **/ template static CImg cylinder3d(CImgList& primitives, const float radius=50, const float size_z=100, const unsigned int subdivisions=24) { primitives.assign(); if (!subdivisions) return CImg(); CImgList vertices(2,1,3,1,1, 0.,0.,0., 0.,0.,size_z); for (float delta = 360.0f/subdivisions, angle = 0; angle<360; angle+=delta) { const float a = (float)(angle*cimg::PI/180); CImg::vector((float)(radius*std::cos(a)),(float)(radius*std::sin(a)),0.0f).move_to(vertices); CImg::vector((float)(radius*std::cos(a)),(float)(radius*std::sin(a)),size_z).move_to(vertices); } const unsigned int nbr = (vertices._width - 2)/2; for (unsigned int p = 0; p::vector(0,next,curr).move_to(primitives); CImg::vector(1,curr+1,next+1).move_to(primitives); CImg::vector(curr,next,next+1,curr+1).move_to(primitives); } return vertices>'x'; } //! Generate a 3d torus. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param radius1 The large radius. \param radius2 The small radius. \param subdivisions1 The number of angular subdivisions for the large radius. \param subdivisions2 The number of angular subdivisions for the small radius. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::torus3d(faces3d,20,4); CImg().display_object3d("Torus3d",points3d,faces3d); \endcode \image html ref_torus3d.jpg **/ template static CImg torus3d(CImgList& primitives, const float radius1=100, const float radius2=30, const unsigned int subdivisions1=24, const unsigned int subdivisions2=12) { primitives.assign(); if (!subdivisions1 || !subdivisions2) return CImg(); CImgList vertices; for (unsigned int v = 0; v::vector(x,y,z).move_to(vertices); } } for (unsigned int vv = 0; vv::vector(svv+nu,svv+uu,snv+uu,snv+nu).move_to(primitives); } } return vertices>'x'; } //! Generate a 3d XY-plane. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param size_x The width of the plane (dimension along the X-axis). \param size_y The height of the plane (dimensions along the Y-axis). \param subdivisions_x The number of planar subdivisions along the X-axis. \param subdivisions_y The number of planar subdivisions along the Y-axis. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::plane3d(faces3d,100,50); CImg().display_object3d("Plane3d",points3d,faces3d); \endcode \image html ref_plane3d.jpg **/ template static CImg plane3d(CImgList& primitives, const float size_x=100, const float size_y=100, const unsigned int subdivisions_x=10, const unsigned int subdivisions_y=10) { primitives.assign(); if (!subdivisions_x || !subdivisions_y) return CImg(); CImgList vertices; const unsigned int w = subdivisions_x + 1, h = subdivisions_y + 1; const float fx = (float)size_x/w, fy = (float)size_y/h; for (unsigned int y = 0; y::vector(fx*x,fy*y,0).move_to(vertices); for (unsigned int y = 0; y::vector(off1,off4,off3,off2).move_to(primitives); } return vertices>'x'; } //! Generate a 3d sphere. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param radius The radius of the sphere (dimension along the X-axis). \param subdivisions The number of recursive subdivisions from an initial icosahedron. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg points3d = CImg::sphere3d(faces3d,100,4); CImg().display_object3d("Sphere3d",points3d,faces3d); \endcode \image html ref_sphere3d.jpg **/ template static CImg sphere3d(CImgList& primitives, const float radius=50, const unsigned int subdivisions=3) { // Create initial icosahedron primitives.assign(); const double tmp = (1+std::sqrt(5.0f))/2, a = 1.0/std::sqrt(1+tmp*tmp), b = tmp*a; CImgList vertices(12,1,3,1,1, b,a,0.0, -b,a,0.0, -b,-a,0.0, b,-a,0.0, a,0.0,b, a,0.0,-b, -a,0.0,-b, -a,0.0,b, 0.0,b,a, 0.0,-b,a, 0.0,-b,-a, 0.0,b,-a); primitives.assign(20,1,3,1,1, 4,8,7, 4,7,9, 5,6,11, 5,10,6, 0,4,3, 0,3,5, 2,7,1, 2,1,6, 8,0,11, 8,11,1, 9,10,3, 9,2,10, 8,4,0, 11,0,5, 4,9,3, 5,3,10, 7,8,1, 6,1,11, 7,2,9, 6,10,2); // edge - length/2 float he = (float)a; // Recurse subdivisions for (unsigned int i = 0; i::vector(nx0,ny0,nz0).move_to(vertices); i0 = vertices._width - 1; } if (i1<0) { CImg::vector(nx1,ny1,nz1).move_to(vertices); i1 = vertices._width - 1; } if (i2<0) { CImg::vector(nx2,ny2,nz2).move_to(vertices); i2 = vertices._width - 1; } primitives.remove(0); CImg::vector(p0,i0,i1).move_to(primitives); CImg::vector((tf)i0,(tf)p1,(tf)i2).move_to(primitives); CImg::vector((tf)i1,(tf)i2,(tf)p2).move_to(primitives); CImg::vector((tf)i1,(tf)i0,(tf)i2).move_to(primitives); } } return (vertices>'x')*=radius; } //! Generate a 3d ellipsoid. /** \param[out] primitives The returned list of the 3d object primitives (template type \e tf should be at least \e unsigned \e int). \param tensor The tensor which gives the shape and size of the ellipsoid. \param subdivisions The number of recursive subdivisions from an initial stretched icosahedron. \return The N vertices (xi,yi,zi) of the 3d object as a Nx3 CImg image (0<=i<=N-1). \par Example \code CImgList faces3d; const CImg tensor = CImg::diagonal(10,7,3), points3d = CImg::ellipsoid3d(faces3d,tensor,4); CImg().display_object3d("Ellipsoid3d",points3d,faces3d); \endcode \image html ref_ellipsoid3d.jpg **/ template static CImg ellipsoid3d(CImgList& primitives, const CImg& tensor, const unsigned int subdivisions=3) { primitives.assign(); if (!subdivisions) return CImg(); CImg S, V; tensor.symmetric_eigen(S,V); const float orient = (V(0,1)*V(1,2) - V(0,2)*V(1,1))*V(2,0) + (V(0,2)*V(1,0) - V(0,0)*V(1,2))*V(2,1) + (V(0,0)*V(1,1) - V(0,1)*V(1,0))*V(2,2); if (orient<0) { V(2,0) = -V(2,0); V(2,1) = -V(2,1); V(2,2) = -V(2,2); } const float l0 = S[0], l1 = S[1], l2 = S[2]; CImg vertices = sphere3d(primitives,1.0,subdivisions); vertices.get_shared_row(0)*=l0; vertices.get_shared_row(1)*=l1; vertices.get_shared_row(2)*=l2; return V*vertices; } //! Convert 3d object into a CImg3d representation. /** \param primitives Primitives data of the 3d object. \param colors Colors data of the 3d object. \param opacities Opacities data of the 3d object. **/ template CImg& object3dtoCImg3d(const CImgList& primitives, const CImgList& colors, const to& opacities) { return get_object3dtoCImg3d(primitives,colors,opacities).move_to(*this); } //! Convert 3d object into a CImg3d representation \overloading. template CImg& object3dtoCImg3d(const CImgList& primitives, const CImgList& colors) { return get_object3dtoCImg3d(primitives,colors).move_to(*this); } //! Convert 3d object into a CImg3d representation \overloading. template CImg& object3dtoCImg3d(const CImgList& primitives) { return get_object3dtoCImg3d(primitives).move_to(*this); } //! Convert 3d object into a CImg3d representation \overloading. CImg& object3dtoCImg3d() { return get_object3dtoCImg3d().move_to(*this); } //! Convert 3d object into a CImg3d representation \newinstance. template CImg get_object3dtoCImg3d(const CImgList& primitives, const CImgList& colors, const to& opacities) const { char error_message[1024] = { 0 }; if (!is_object3d(primitives,colors,opacities,true,error_message)) throw CImgInstanceException(_cimg_instance "object3dtoCImg3d(): Invalid specified 3d object (%u,%u) (%s).", cimg_instance,_width,primitives._width,error_message); CImg res(1,_size_object3dtoCImg3d(primitives,colors,opacities)); float *ptrd = res._data; // Put magick number. *(ptrd++) = 'C' + 0.5f; *(ptrd++) = 'I' + 0.5f; *(ptrd++) = 'm' + 0.5f; *(ptrd++) = 'g' + 0.5f; *(ptrd++) = '3' + 0.5f; *(ptrd++) = 'd' + 0.5f; // Put number of vertices and primitives. *(ptrd++) = cimg::uint2float(_width); *(ptrd++) = cimg::uint2float(primitives._width); // Put vertex data. if (is_empty() || !primitives) return res; const T *ptrx = data(0,0), *ptry = data(0,1), *ptrz = data(0,2); cimg_forX(*this,p) { *(ptrd++) = (float)*(ptrx++); *(ptrd++) = (float)*(ptry++); *(ptrd++) = (float)*(ptrz++); } // Put primitive data. cimglist_for(primitives,p) { *(ptrd++) = (float)primitives[p].size(); const tp *ptrp = primitives[p]._data; cimg_foroff(primitives[p],i) *(ptrd++) = cimg::uint2float((unsigned int)*(ptrp++)); } // Put color/texture data. const unsigned int csiz = cimg::min(colors._width,primitives._width); for (int c = 0; c<(int)csiz; ++c) { const CImg& color = colors[c]; const tc *ptrc = color._data; if (color.size()==3) { *(ptrd++) = (float)*(ptrc++); *(ptrd++) = (float)*(ptrc++); *(ptrd++) = (float)*ptrc; } else { *(ptrd++) = -128.0f; int shared_ind = -1; if (color.is_shared()) for (int i = 0; i float* _object3dtoCImg3d(const CImgList& opacities, float *ptrd) const { cimglist_for(opacities,o) { const CImg& opacity = opacities[o]; const to *ptro = opacity._data; if (opacity.size()==1) *(ptrd++) = (float)*ptro; else { *(ptrd++) = -128.0f; int shared_ind = -1; if (opacity.is_shared()) for (int i = 0; i float* _object3dtoCImg3d(const CImg& opacities, float *ptrd) const { const to *ptro = opacities._data; cimg_foroff(opacities,o) *(ptrd++) = (float)*(ptro++); return ptrd; } template unsigned int _size_object3dtoCImg3d(const CImgList& primitives, const CImgList& colors, const CImgList& opacities) const { unsigned int siz = 8 + 3*width(); cimglist_for(primitives,p) siz+=primitives[p].size() + 1; for (int c = cimg::min(primitives._width,colors._width)-1; c>=0; --c) { if (colors[c].is_shared()) siz+=4; else { const unsigned int csiz = colors[c].size(); siz+=(csiz!=3)?4+csiz:3; } } if (colors._width unsigned int _size_object3dtoCImg3d(const CImgList& primitives, const CImgList& colors, const CImg& opacities) const { unsigned int siz = 8 + 3*width(); cimglist_for(primitives,p) siz+=primitives[p].size() + 1; for (int c = cimg::min(primitives._width,colors._width)-1; c>=0; --c) { const unsigned int csiz = colors[c].size(); siz+=(csiz!=3)?4+csiz:3; } if (colors._width CImg get_object3dtoCImg3d(const CImgList& primitives, const CImgList& colors) const { CImgList opacities; return get_object3dtoCImg3d(primitives,colors,opacities); } //! Convert 3d object into a CImg3d representation \overloading. template CImg get_object3dtoCImg3d(const CImgList& primitives) const { CImgList colors, opacities; return get_object3dtoCImg3d(primitives,colors,opacities); } //! Convert 3d object into a CImg3d representation \overloading. CImg get_object3dtoCImg3d() const { CImgList opacities, colors; CImgList primitives(width(),1,1,1,1); cimglist_for(primitives,p) primitives(p,0) = p; return get_object3dtoCImg3d(primitives,colors,opacities); } //! Convert CImg3d representation into a 3d object. /** \param[out] primitives Primitives data of the 3d object. \param[out] colors Colors data of the 3d object. \param[out] opacities Opacities data of the 3d object. **/ template CImg& CImg3dtoobject3d(CImgList& primitives, CImgList& colors, CImgList& opacities) { return get_CImg3dtoobject3d(primitives,colors,opacities).move_to(*this); } //! Convert CImg3d representation into a 3d object \newinstance. template CImg get_CImg3dtoobject3d(CImgList& primitives, CImgList& colors, CImgList& opacities) const { char error_message[1024] = { 0 }; if (!is_CImg3d(true,error_message)) throw CImgInstanceException(_cimg_instance "CImg3dtoobject3d(): image instance is not a CImg3d (%s).", cimg_instance,error_message); const T *ptrs = _data + 6; const unsigned int nb_points = cimg::float2uint((float)*(ptrs++)), nb_primitives = cimg::float2uint((float)*(ptrs++)); const CImg points = CImg(ptrs,3,nb_points,1,1,true).get_transpose(); ptrs+=3*nb_points; primitives.assign(nb_primitives); cimglist_for(primitives,p) { const unsigned int nb_inds = (unsigned int)*(ptrs++); primitives[p].assign(1,nb_inds); tp *ptrp = primitives[p]._data; for (unsigned int i = 0; i CImg& _draw_scanline(const int x0, const int x1, const int y, const tc *const color, const float opacity, const float brightness, const float nopacity, const float copacity, const unsigned long whd) { static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const int nx0 = x0>0?x0:0, nx1 = x1=0) { const tc *col = color; const unsigned long off = whd - dx - 1; T *ptrd = data(nx0,y); if (opacity>=1) { // ** Opaque drawing ** if (brightness==1) { // Brightness==1 if (sizeof(T)!=1) cimg_forC(*this,c) { const T val = (T)*(col++); for (int x = dx; x>=0; --x) *(ptrd++) = val; ptrd+=off; } else cimg_forC(*this,c) { const T val = (T)*(col++); std::memset(ptrd,(int)val,dx+1); ptrd+=whd; } } else if (brightness<1) { // Brightness<1 if (sizeof(T)!=1) cimg_forC(*this,c) { const T val = (T)(*(col++)*brightness); for (int x = dx; x>=0; --x) *(ptrd++) = val; ptrd+=off; } else cimg_forC(*this,c) { const T val = (T)(*(col++)*brightness); std::memset(ptrd,(int)val,dx+1); ptrd+=whd; } } else { // Brightness>1 if (sizeof(T)!=1) cimg_forC(*this,c) { const T val = (T)((2-brightness)**(col++) + (brightness-1)*maxval); for (int x = dx; x>=0; --x) *(ptrd++) = val; ptrd+=off; } else cimg_forC(*this,c) { const T val = (T)((2-brightness)**(col++) + (brightness-1)*maxval); std::memset(ptrd,(int)val,dx+1); ptrd+=whd; } } } else { // ** Transparent drawing ** if (brightness==1) { // Brightness==1 cimg_forC(*this,c) { const T val = (T)*(col++); for (int x = dx; x>=0; --x) { *ptrd = (T)(val*nopacity + *ptrd*copacity); ++ptrd; } ptrd+=off; } } else if (brightness<=1) { // Brightness<1 cimg_forC(*this,c) { const T val = (T)(*(col++)*brightness); for (int x = dx; x>=0; --x) { *ptrd = (T)(val*nopacity + *ptrd*copacity); ++ptrd; } ptrd+=off; } } else { // Brightness>1 cimg_forC(*this,c) { const T val = (T)((2-brightness)**(col++) + (brightness-1)*maxval); for (int x = dx; x>=0; --x) { *ptrd = (T)(val*nopacity + *ptrd*copacity); ++ptrd; } ptrd+=off; } } } } return *this; } //! Draw a 3d point. /** \param x0 X-coordinate of the point. \param y0 Y-coordinate of the point. \param z0 Z-coordinate of the point. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \note - To set pixel values without clipping needs, you should use the faster CImg::operator()() function. \par Example: \code CImg img(100,100,1,3,0); const unsigned char color[] = { 255,128,64 }; img.draw_point(50,50,color); \endcode **/ template CImg& draw_point(const int x0, const int y0, const int z0, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_point(): Specified color is (null).", cimg_instance); if (x0>=0 && y0>=0 && z0>=0 && x0=1) cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=whd; } else cimg_forC(*this,c) { *ptrd = (T)(*(col++)*nopacity + *ptrd*copacity); ptrd+=whd; } } return *this; } //! Draw a 2d point \simplification. template CImg& draw_point(const int x0, const int y0, const tc *const color, const float opacity=1) { return draw_point(x0,y0,0,color,opacity); } // Draw a points cloud. /** \param points Image of vertices coordinates. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_point(const CImg& points, const tc *const color, const float opacity=1) { if (is_empty() || !points) return *this; switch (points._height) { case 0 : case 1 : throw CImgArgumentException(_cimg_instance "draw_point(): Invalid specified point set (%u,%u,%u,%u,%p).", cimg_instance, points._width,points._height,points._depth,points._spectrum,points._data); case 2 : { cimg_forX(points,i) draw_point((int)points(i,0),(int)points(i,1),color,opacity); } break; default : { cimg_forX(points,i) draw_point((int)points(i,0),(int)points(i,1),(int)points(i,2),color,opacity); } } return *this; } //! Draw a 2d line. /** \param x0 X-coordinate of the starting line point. \param y0 Y-coordinate of the starting line point. \param x1 X-coordinate of the ending line point. \param y1 Y-coordinate of the ending line point. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if a reinitialization of the hash state must be done. \note - Line routine uses Bresenham's algorithm. - Set \p init_hatch = false to draw consecutive hatched segments without breaking the line pattern. \par Example: \code CImg img(100,100,1,3,0); const unsigned char color[] = { 255,128,64 }; img.draw_line(40,40,80,70,color); \endcode **/ template CImg& draw_line(const int x0, const int y0, const int x1, const int y1, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_line(): Specified color is (null).", cimg_instance); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); const bool xdir = x0=width()) return *this; if (xleft<0) { yleft-=(int)((float)xleft*((float)yright - yleft)/((float)xright - xleft)); xleft = 0; } if (xright>=width()) { yright-=(int)(((float)xright - width())*((float)yright - yleft)/((float)xright - xleft)); xright = width() - 1; } if (ydown<0 || yup>=height()) return *this; if (yup<0) { xup-=(int)((float)yup*((float)xdown - xup)/((float)ydown - yup)); yup = 0; } if (ydown>=height()) { xdown-=(int)(((float)ydown - height())*((float)xdown - xup)/((float)ydown - yup)); ydown = height() - 1; } T *ptrd0 = data(nx0,ny0); int dx = xright - xleft, dy = ydown - yup; const bool steep = dy>dx; if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy); const long offx = (nx0=1) { if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { T *ptrd = ptrd0; const tc* col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { T *ptrd = ptrd0; const tc* col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { T *ptrd = ptrd0; const tc* col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity**(col++) + *ptrd*copacity); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { T *ptrd = ptrd0; const tc* col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity**(col++) + *ptrd*copacity); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } return *this; } //! Draw a 2d line, with z-buffering. /** \param zbuffer Zbuffer image. \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param z0 Z-coordinate of the starting point \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param z1 Z-coordinate of the ending point. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if a reinitialization of the hash state must be done. **/ template CImg& draw_line(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_line(): Specified color is (null).", cimg_instance); if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_line(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); const bool xdir = x0=width()) return *this; if (xleft<0) { const float D = (float)xright - xleft; yleft-=(int)((float)xleft*((float)yright - yleft)/D); zleft-=(tzfloat)xleft*(zright - zleft)/D; xleft = 0; } if (xright>=width()) { const float d = (float)xright - width(), D = (float)xright - xleft; yright-=(int)(d*((float)yright - yleft)/D); zright-=(tzfloat)d*(zright - zleft)/D; xright = width() - 1; } if (ydown<0 || yup>=height()) return *this; if (yup<0) { const float D = (float)ydown - yup; xup-=(int)((float)yup*((float)xdown - xup)/D); zup-=(tzfloat)yup*(zdown - zup)/D; yup = 0; } if (ydown>=height()) { const float d = (float)ydown - height(), D = (float)ydown - yup; xdown-=(int)(d*((float)xdown - xup)/D); zdown-=(tzfloat)d*(zdown - zup)/D; ydown = height() - 1; } T *ptrd0 = data(nx0,ny0); tz *ptrz = zbuffer.data(nx0,ny0); int dx = xright - xleft, dy = ydown - yup; const bool steep = dy>dx; if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy); const long offx = (nx00?dx:1; if (opacity>=1) { if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz && pattern&hatch) { *ptrz = (tz)z; T *ptrd = ptrd0; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; T *ptrd = ptrd0; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; } } ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz && pattern&hatch) { *ptrz = (tz)z; T *ptrd = ptrd0; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity**(col++) + *ptrd*copacity); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; T *ptrd = ptrd0; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity**(col++) + *ptrd*copacity); ptrd+=wh; } } ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } } return *this; } //! Draw a 3d line. /** \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param z0 Z-coordinate of the starting point \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param z1 Z-coordinate of the ending point. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if a reinitialization of the hash state must be done. **/ template CImg& draw_line(const int x0, const int y0, const int z0, const int x1, const int y1, const int z1, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_line(): Specified color is (null).", cimg_instance); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); int nx0 = x0, ny0 = y0, nz0 = z0, nx1 = x1, ny1 = y1, nz1 = z1; if (nx0>nx1) cimg::swap(nx0,nx1,ny0,ny1,nz0,nz1); if (nx1<0 || nx0>=width()) return *this; if (nx0<0) { const float D = 1.0f + nx1 - nx0; ny0-=(int)((float)nx0*(1.0f + ny1 - ny0)/D); nz0-=(int)((float)nx0*(1.0f + nz1 - nz0)/D); nx0 = 0; } if (nx1>=width()) { const float d = (float)nx1 - width(), D = 1.0f + nx1 - nx0; ny1+=(int)(d*(1.0f + ny0 - ny1)/D); nz1+=(int)(d*(1.0f + nz0 - nz1)/D); nx1 = width() - 1; } if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nz0,nz1); if (ny1<0 || ny0>=height()) return *this; if (ny0<0) { const float D = 1.0f + ny1 - ny0; nx0-=(int)((float)ny0*(1.0f + nx1 - nx0)/D); nz0-=(int)((float)ny0*(1.0f + nz1 - nz0)/D); ny0 = 0; } if (ny1>=height()) { const float d = (float)ny1 - height(), D = 1.0f + ny1 - ny0; nx1+=(int)(d*(1.0f + nx0 - nx1)/D); nz1+=(int)(d*(1.0f + nz0 - nz1)/D); ny1 = height() - 1; } if (nz0>nz1) cimg::swap(nx0,nx1,ny0,ny1,nz0,nz1); if (nz1<0 || nz0>=depth()) return *this; if (nz0<0) { const float D = 1.0f + nz1 - nz0; nx0-=(int)((float)nz0*(1.0f + nx1 - nx0)/D); ny0-=(int)((float)nz0*(1.0f + ny1 - ny0)/D); nz0 = 0; } if (nz1>=depth()) { const float d = (float)nz1 - depth(), D = 1.0f + nz1 - nz0; nx1+=(int)(d*(1.0f + nx0 - nx1)/D); ny1+=(int)(d*(1.0f + ny0 - ny1)/D); nz1 = depth() - 1; } const unsigned int dmax = cimg::max(cimg::abs(nx1 - nx0),cimg::abs(ny1 - ny0),nz1 - nz0); const unsigned long whd = (unsigned long)_width*_height*_depth; const float px = (nx1 - nx0)/(float)dmax, py = (ny1 - ny0)/(float)dmax, pz = (nz1 - nz0)/(float)dmax; float x = (float)nx0, y = (float)ny0, z = (float)nz0; if (opacity>=1) for (unsigned int t = 0; t<=dmax; ++t) { if (!(~pattern) || (~pattern && pattern&hatch)) { T* ptrd = data((unsigned int)x,(unsigned int)y,(unsigned int)z); const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=whd; } } x+=px; y+=py; z+=pz; if (pattern) { hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); for (unsigned int t = 0; t<=dmax; ++t) { if (!(~pattern) || (~pattern && pattern&hatch)) { T* ptrd = data((unsigned int)x,(unsigned int)y,(unsigned int)z); const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(*(col++)*nopacity + *ptrd*copacity); ptrd+=whd; } } x+=px; y+=py; z+=pz; if (pattern) { hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); } } } return *this; } //! Draw a textured 2d line. /** \param x0 X-coordinate of the starting line point. \param y0 Y-coordinate of the starting line point. \param x1 X-coordinate of the ending line point. \param y1 Y-coordinate of the ending line point. \param texture Texture image defining the pixel colors. \param tx0 X-coordinate of the starting texture point. \param ty0 Y-coordinate of the starting texture point. \param tx1 X-coordinate of the ending texture point. \param ty1 Y-coordinate of the ending texture point. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if the hash variable must be reinitialized. \note - Line routine uses the well known Bresenham's algorithm. \par Example: \code CImg img(100,100,1,3,0), texture("texture256x256.ppm"); const unsigned char color[] = { 255,128,64 }; img.draw_line(40,40,80,70,texture,0,0,255,255); \endcode **/ template CImg& draw_line(const int x0, const int y0, const int x1, const int y1, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty()) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_line(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_line(x0,y0,x1,y1,+texture,tx0,ty0,tx1,ty1,opacity,pattern,init_hatch); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); const bool xdir = x0=width()) return *this; if (xleft<0) { const float D = (float)xright - xleft; yleft-=(int)((float)xleft*((float)yright - yleft)/D); txleft-=(int)((float)xleft*((float)txright - txleft)/D); tyleft-=(int)((float)xleft*((float)tyright - tyleft)/D); xleft = 0; } if (xright>=width()) { const float d = (float)xright - width(), D = (float)xright - xleft; yright-=(int)(d*((float)yright - yleft)/D); txright-=(int)(d*((float)txright - txleft)/D); tyright-=(int)(d*((float)tyright - tyleft)/D); xright = width() - 1; } if (ydown<0 || yup>=height()) return *this; if (yup<0) { const float D = (float)ydown - yup; xup-=(int)((float)yup*((float)xdown - xup)/D); txup-=(int)((float)yup*((float)txdown - txup)/D); tyup-=(int)((float)yup*((float)tydown - tyup)/D); yup = 0; } if (ydown>=height()) { const float d = (float)ydown - height(), D = (float)ydown - yup; xdown-=(int)(d*((float)xdown - xup)/D); txdown-=(int)(d*((float)txdown - txup)/D); tydown-=(int)(d*((float)tydown - tyup)/D); ydown = height() - 1; } T *ptrd0 = data(nx0,ny0); int dx = xright - xleft, dy = ydown - yup; const bool steep = dy>dx; if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy); const long offx = (nx00?dx:1; const unsigned long wh = (unsigned long)_width*_height; if (opacity>=1) { if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { T *ptrd = ptrd0; const int tx = tx0 + x*dtx/ndx, ty = ty0 + x*dty/ndx; cimg_forC(*this,c) { *ptrd = (T)texture(tx,ty,0,c); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { T *ptrd = ptrd0; const int tx = tx0 + x*dtx/ndx, ty = ty0 + x*dty/ndx; cimg_forC(*this,c) { *ptrd = (T)texture(tx,ty,0,c); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { T *ptrd = ptrd0; if (pattern&hatch) { const int tx = tx0 + x*dtx/ndx, ty = ty0 + x*dty/ndx; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture(tx,ty,0,c) + *ptrd*copacity); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { T *ptrd = ptrd0; const int tx = tx0 + x*dtx/ndx, ty = ty0 + x*dty/ndx; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture(tx,ty,0,c) + *ptrd*copacity); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } return *this; } //! Draw a textured 2d line, with perspective correction. /** \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param z0 Z-coordinate of the starting point \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param z1 Z-coordinate of the ending point. \param texture Texture image defining the pixel colors. \param tx0 X-coordinate of the starting texture point. \param ty0 Y-coordinate of the starting texture point. \param tx1 X-coordinate of the ending texture point. \param ty1 Y-coordinate of the ending texture point. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if the hash variable must be reinitialized. **/ template CImg& draw_line(const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty() && z0<=0 && z1<=0) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_line(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_line(x0,y0,z0,x1,y1,z1,+texture,tx0,ty0,tx1,ty1,opacity,pattern,init_hatch); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); const bool xdir = x0=width()) return *this; if (xleft<0) { const float D = (float)xright - xleft; yleft-=(int)((float)xleft*((float)yright - yleft)/D); zleft-=(float)xleft*(zright - zleft)/D; txleft-=(float)xleft*(txright - txleft)/D; tyleft-=(float)xleft*(tyright - tyleft)/D; xleft = 0; } if (xright>=width()) { const float d = (float)xright - width(), D = (float)xright - xleft; yright-=(int)(d*((float)yright - yleft)/D); zright-=d*(zright - zleft)/D; txright-=d*(txright - txleft)/D; tyright-=d*(tyright - tyleft)/D; xright = width() - 1; } if (ydown<0 || yup>=height()) return *this; if (yup<0) { const float D = (float)ydown - yup; xup-=(int)((float)yup*((float)xdown - xup)/D); zup-=(float)yup*(zdown - zup)/D; txup-=(float)yup*(txdown - txup)/D; tyup-=(float)yup*(tydown - tyup)/D; yup = 0; } if (ydown>=height()) { const float d = (float)ydown - height(), D = (float)ydown - yup; xdown-=(int)(d*((float)xdown - xup)/D); zdown-=d*(zdown - zup)/D; txdown-=d*(txdown - txup)/D; tydown-=d*(tydown - tyup)/D; ydown = height() - 1; } T *ptrd0 = data(nx0,ny0); int dx = xright - xleft, dy = ydown - yup; const bool steep = dy>dx; if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy); const long offx = (nx00?dx:1; const unsigned long wh = (unsigned long)_width*_height; if (opacity>=1) { if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { const float z = Z0 + x*dz/ndx, tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)texture((int)(tx/z),(int)(ty/z),0,c); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const float z = Z0 + x*dz/ndx, tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)texture((int)(tx/z),(int)(ty/z),0,c); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { const float z = Z0 + x*dz/ndx, tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture((int)(tx/z),(int)(ty/z),0,c) + *ptrd*copacity); ptrd+=wh; } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const float z = Z0 + x*dz/ndx, tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture((int)(tx/z),(int)(ty/z),0,c) + *ptrd*copacity); ptrd+=wh; } ptrd0+=offx; if ((error-=dy)<0) { ptrd0+=offy; error+=dx; } } } return *this; } //! Draw a textured 2d line, with perspective correction and z-buffering. /** \param zbuffer Z-buffer image. \param x0 X-coordinate of the starting point. \param y0 Y-coordinate of the starting point. \param z0 Z-coordinate of the starting point \param x1 X-coordinate of the ending point. \param y1 Y-coordinate of the ending point. \param z1 Z-coordinate of the ending point. \param texture Texture image defining the pixel colors. \param tx0 X-coordinate of the starting texture point. \param ty0 Y-coordinate of the starting texture point. \param tx1 X-coordinate of the ending texture point. \param ty1 Y-coordinate of the ending texture point. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch Tells if the hash variable must be reinitialized. **/ template CImg& draw_line(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0) return *this; if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_line(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_line(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_line(zbuffer,x0,y0,z0,x1,y1,z1,+texture,tx0,ty0,tx1,ty1,opacity,pattern,init_hatch); static unsigned int hatch = ~0U - (~0U>>1); if (init_hatch) hatch = ~0U - (~0U>>1); const bool xdir = x0=width()) return *this; if (xleft<0) { const float D = (float)xright - xleft; yleft-=(int)((float)xleft*((float)yright - yleft)/D); zleft-=(float)xleft*(zright - zleft)/D; txleft-=(float)xleft*(txright - txleft)/D; tyleft-=(float)xleft*(tyright - tyleft)/D; xleft = 0; } if (xright>=width()) { const float d = (float)xright - width(), D = (float)xright - xleft; yright-=(int)(d*((float)yright - yleft)/D); zright-=d*(zright - zleft)/D; txright-=d*(txright - txleft)/D; tyright-=d*(tyright - tyleft)/D; xright = width()-1; } if (ydown<0 || yup>=height()) return *this; if (yup<0) { const float D = (float)ydown - yup; xup-=(int)((float)yup*((float)xdown - xup)/D); zup-=yup*(zdown - zup)/D; txup-=yup*(txdown - txup)/D; tyup-=yup*(tydown - tyup)/D; yup = 0; } if (ydown>=height()) { const float d = (float)ydown - height(), D = (float)ydown - yup; xdown-=(int)(d*((float)xdown - xup)/D); zdown-=d*(zdown - zup)/D; txdown-=d*(txdown - txup)/D; tydown-=d*(tydown - tyup)/D; ydown = height()-1; } T *ptrd0 = data(nx0,ny0); tz *ptrz = zbuffer.data(nx0,ny0); int dx = xright - xleft, dy = ydown - yup; const bool steep = dy>dx; if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy); const long offx = (nx00?dx:1; const unsigned long wh = (unsigned long)_width*_height; if (opacity>=1) { if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; const float tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)texture((int)(tx/z),(int)(ty/z),0,c); ptrd+=wh; } } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; const float tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)texture((int)(tx/z),(int)(ty/z),0,c); ptrd+=wh; } } ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } } else { const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) { if (pattern&hatch) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; const float tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture((int)(tx/z),(int)(ty/z),0,c) + *ptrd*copacity); ptrd+=wh; } } } hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1); ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } else for (int error = dx>>1, x = 0; x<=dx; ++x) { const tzfloat z = Z0 + x*dz/ndx; if (z>=(tzfloat)*ptrz) { *ptrz = (tz)z; const float tx = Tx0 + x*dtx/ndx, ty = Ty0 + x*dty/ndx; T *ptrd = ptrd0; cimg_forC(*this,c) { *ptrd = (T)(nopacity*texture((int)(tx/z),(int)(ty/z),0,c) + *ptrd*copacity); ptrd+=wh; } } ptrd0+=offx; ptrz+=offx; if ((error-=dy)<0) { ptrd0+=offy; ptrz+=offy; error+=dx; } } } return *this; } //! Draw a set of consecutive lines. /** \param points Coordinates of vertices, stored as a list of vectors. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch If set to true, init hatch motif. \note - This function uses several call to the single CImg::draw_line() procedure, depending on the vectors size in \p points. **/ template CImg& draw_line(const CImg& points, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty() || !points || points._width<2) return *this; bool ninit_hatch = init_hatch; switch (points._height) { case 0 : case 1 : throw CImgArgumentException(_cimg_instance "draw_line(): Invalid specified point set (%u,%u,%u,%u,%p).", cimg_instance, points._width,points._height,points._depth,points._spectrum,points._data); case 2 : { const int x0 = (int)points(0,0), y0 = (int)points(0,1); int ox = x0, oy = y0; for (unsigned int i = 1; i CImg& draw_arrow(const int x0, const int y0, const int x1, const int y1, const tc *const color, const float opacity=1, const float angle=30, const float length=-10, const unsigned int pattern=~0U) { if (is_empty()) return *this; const float u = (float)(x0 - x1), v = (float)(y0 - y1), sq = u*u + v*v, deg = (float)(angle*cimg::PI/180), ang = (sq>0)?(float)std::atan2(v,u):0.0f, l = (length>=0)?length:-length*(float)std::sqrt(sq)/100; if (sq>0) { const float cl = (float)std::cos(ang - deg), sl = (float)std::sin(ang - deg), cr = (float)std::cos(ang + deg), sr = (float)std::sin(ang + deg); const int xl = x1 + (int)(l*cl), yl = y1 + (int)(l*sl), xr = x1 + (int)(l*cr), yr = y1 + (int)(l*sr), xc = x1 + (int)((l+1)*(cl+cr))/2, yc = y1 + (int)((l+1)*(sl+sr))/2; draw_line(x0,y0,xc,yc,color,opacity,pattern).draw_triangle(x1,y1,xl,yl,xr,yr,color,opacity); } else draw_point(x0,y0,color,opacity); return *this; } //! Draw a 2d spline. /** \param x0 X-coordinate of the starting curve point \param y0 Y-coordinate of the starting curve point \param u0 X-coordinate of the starting velocity \param v0 Y-coordinate of the starting velocity \param x1 X-coordinate of the ending curve point \param y1 Y-coordinate of the ending curve point \param u1 X-coordinate of the ending velocity \param v1 Y-coordinate of the ending velocity \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param precision Curve drawing precision. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch If \c true, init hatch motif. \note - The curve is a 2d cubic Bezier spline, from the set of specified starting/ending points and corresponding velocity vectors. - The spline is drawn as a serie of connected segments. The \p precision parameter sets the average number of pixels in each drawn segment. - A cubic Bezier curve is sometimes defined by a set of 4 points { (\p x0,\p y0), (\p xa,\p ya), (\p xb,\p yb), (\p x1,\p y1) } where (\p x0,\p y0) is the starting point, (\p x1,\p y1) is the ending point and (\p xa,\p ya), (\p xb,\p yb) are two \e control points. The starting and ending velocities (\p u0,\p v0) and (\p u1,\p v1) can be deduced easily from the control points as \p u0 = (\p xa - \p x0), \p v0 = (\p ya - \p y0), \p u1 = (\p x1 - \p xb) and \p v1 = (\p y1 - \p yb). \par Example: \code CImg img(100,100,1,3,0); const unsigned char color[] = { 255,255,255 }; img.draw_spline(30,30,0,100,90,40,0,-100,color); \endcode **/ template CImg& draw_spline(const int x0, const int y0, const float u0, const float v0, const int x1, const int y1, const float u1, const float v1, const tc *const color, const float opacity=1, const float precision=0.25, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_spline(): Specified color is (null).", cimg_instance); if (x0==x1 && y0==y1) return draw_point(x0,y0,color,opacity); bool ninit_hatch = init_hatch; const float ax = u0 + u1 + 2*(x0 - x1), bx = 3*(x1 - x0) - 2*u0 - u1, ay = v0 + v1 + 2*(y0 - y1), by = 3*(y1 - y0) - 2*v0 - v1, _precision = 1/(std::sqrt(cimg::sqr((float)x0-x1)+cimg::sqr((float)y0-y1))*(precision>0?precision:1)); int ox = x0, oy = y0; for (float t = 0; t<1; t+=_precision) { const float t2 = t*t, t3 = t2*t; const int nx = (int)(ax*t3 + bx*t2 + u0*t + x0), ny = (int)(ay*t3 + by*t2 + v0*t + y0); draw_line(ox,oy,nx,ny,color,opacity,pattern,ninit_hatch); ninit_hatch = false; ox = nx; oy = ny; } return draw_line(ox,oy,x1,y1,color,opacity,pattern,false); } //! Draw a 3d spline \overloading. /** \note - Similar to CImg::draw_spline() for a 3d spline in a volumetric image. **/ template CImg& draw_spline(const int x0, const int y0, const int z0, const float u0, const float v0, const float w0, const int x1, const int y1, const int z1, const float u1, const float v1, const float w1, const tc *const color, const float opacity=1, const float precision=4, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_spline(): Specified color is (null).", cimg_instance); if (x0==x1 && y0==y1 && z0==z1) return draw_point(x0,y0,z0,color,opacity); bool ninit_hatch = init_hatch; const float ax = u0 + u1 + 2*(x0 - x1), bx = 3*(x1 - x0) - 2*u0 - u1, ay = v0 + v1 + 2*(y0 - y1), by = 3*(y1 - y0) - 2*v0 - v1, az = w0 + w1 + 2*(z0 - z1), bz = 3*(z1 - z0) - 2*w0 - w1, _precision = 1/(std::sqrt(cimg::sqr(x0-x1)+cimg::sqr(y0-y1))*(precision>0?precision:1)); int ox = x0, oy = y0, oz = z0; for (float t = 0; t<1; t+=_precision) { const float t2 = t*t, t3 = t2*t; const int nx = (int)(ax*t3 + bx*t2 + u0*t + x0), ny = (int)(ay*t3 + by*t2 + v0*t + y0), nz = (int)(az*t3 + bz*t2 + w0*t + z0); draw_line(ox,oy,oz,nx,ny,nz,color,opacity,pattern,ninit_hatch); ninit_hatch = false; ox = nx; oy = ny; oz = nz; } return draw_line(ox,oy,oz,x1,y1,z1,color,opacity,pattern,false); } //! Draw a textured 2d spline. /** \param x0 X-coordinate of the starting curve point \param y0 Y-coordinate of the starting curve point \param u0 X-coordinate of the starting velocity \param v0 Y-coordinate of the starting velocity \param x1 X-coordinate of the ending curve point \param y1 Y-coordinate of the ending curve point \param u1 X-coordinate of the ending velocity \param v1 Y-coordinate of the ending velocity \param texture Texture image defining line pixel colors. \param tx0 X-coordinate of the starting texture point. \param ty0 Y-coordinate of the starting texture point. \param tx1 X-coordinate of the ending texture point. \param ty1 Y-coordinate of the ending texture point. \param precision Curve drawing precision. \param opacity Drawing opacity. \param pattern An integer whose bits describe the line pattern. \param init_hatch if \c true, reinit hatch motif. **/ template CImg& draw_spline(const int x0, const int y0, const float u0, const float v0, const int x1, const int y1, const float u1, const float v1, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const float opacity=1, const float precision=4, const unsigned int pattern=~0U, const bool init_hatch=true) { if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_spline(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_empty()) return *this; if (is_overlapped(texture)) return draw_spline(x0,y0,u0,v0,x1,y1,u1,v1,+texture,tx0,ty0,tx1,ty1,precision,opacity,pattern,init_hatch); if (x0==x1 && y0==y1) return draw_point(x0,y0,texture.get_vector_at(x0,y0),opacity); bool ninit_hatch = init_hatch; const float ax = u0 + u1 + 2*(x0 - x1), bx = 3*(x1 - x0) - 2*u0 - u1, ay = v0 + v1 + 2*(y0 - y1), by = 3*(y1 - y0) - 2*v0 - v1, _precision = 1/(std::sqrt(cimg::sqr(x0-x1)+cimg::sqr(y0-y1))*(precision>0?precision:1)); int ox = x0, oy = y0, otx = tx0, oty = ty0; for (float t1 = 0; t1<1; t1+=_precision) { const float t2 = t1*t1, t3 = t2*t1; const int nx = (int)(ax*t3 + bx*t2 + u0*t1 + x0), ny = (int)(ay*t3 + by*t2 + v0*t1 + y0), ntx = tx0 + (int)((tx1-tx0)*t1), nty = ty0 + (int)((ty1-ty0)*t1); draw_line(ox,oy,nx,ny,texture,otx,oty,ntx,nty,opacity,pattern,ninit_hatch); ninit_hatch = false; ox = nx; oy = ny; otx = ntx; oty = nty; } return draw_line(ox,oy,x1,y1,texture,otx,oty,tx1,ty1,opacity,pattern,false); } //! Draw a set of consecutive splines. /** \param points Vertices data. \param tangents Tangents data. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param is_closed_set Tells if the drawn spline set is closed. \param precision Precision of the drawing. \param pattern An integer whose bits describe the line pattern. \param init_hatch If \c true, init hatch motif. **/ template CImg& draw_spline(const CImg& points, const CImg& tangents, const tc *const color, const float opacity=1, const bool is_closed_set=false, const float precision=4, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty() || !points || !tangents || points._width<2 || tangents._width<2) return *this; bool ninit_hatch = init_hatch; switch (points._height) { case 0 : case 1 : throw CImgArgumentException(_cimg_instance "draw_spline(): Invalid specified point set (%u,%u,%u,%u,%p).", cimg_instance, points._width,points._height,points._depth,points._spectrum,points._data); case 2 : { const int x0 = (int)points(0,0), y0 = (int)points(0,1); const float u0 = (float)tangents(0,0), v0 = (float)tangents(0,1); int ox = x0, oy = y0; float ou = u0, ov = v0; for (unsigned int i = 1; i CImg& draw_spline(const CImg& points, const tc *const color, const float opacity=1, const bool is_closed_set=false, const float precision=4, const unsigned int pattern=~0U, const bool init_hatch=true) { if (is_empty() || !points || points._width<2) return *this; CImg tangents; switch (points._height) { case 0 : case 1 : throw CImgArgumentException(_cimg_instance "draw_spline(): Invalid specified point set (%u,%u,%u,%u,%p).", cimg_instance, points._width,points._height,points._depth,points._spectrum,points._data); case 2 : { tangents.assign(points._width,points._height); cimg_forX(points,p) { const unsigned int p0 = is_closed_set?(p+points._width-1)%points._width:(p?p-1:0), p1 = is_closed_set?(p+1)%points._width:(p+1=0?x0:(x0-y0*(x2-x0)/(y2-y0)), \ xl = y1>=0?(y0>=0?(y0==y1?x1:x0):(x0-y0*(x1-x0)/(y1-y0))):(x1-y1*(x2-x1)/(y2-y1)), \ _sxn=1, \ _sxr=1, \ _sxl=1, \ _dxn = x2>x1?x2-x1:(_sxn=-1,x1-x2), \ _dxr = x2>x0?x2-x0:(_sxr=-1,x0-x2), \ _dxl = x1>x0?x1-x0:(_sxl=-1,x0-x1), \ _dyn = y2-y1, \ _dyr = y2-y0, \ _dyl = y1-y0, \ _counter = (_dxn-=_dyn?_dyn*(_dxn/_dyn):0, \ _dxr-=_dyr?_dyr*(_dxr/_dyr):0, \ _dxl-=_dyl?_dyl*(_dxl/_dyl):0, \ cimg::min((int)(img)._height-y-1,y2-y)), \ _errn = _dyn/2, \ _errr = _dyr/2, \ _errl = _dyl/2, \ _rxn = _dyn?(x2-x1)/_dyn:0, \ _rxr = _dyr?(x2-x0)/_dyr:0, \ _rxl = (y0!=y1 && y1>0)?(_dyl?(x1-x0)/_dyl:0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxn); \ _counter>=0; --_counter, ++y, \ xr+=_rxr+((_errr-=_dxr)<0?_errr+=_dyr,_sxr:0), \ xl+=(y!=y1)?_rxl+((_errl-=_dxl)<0?(_errl+=_dyl,_sxl):0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxl=_rxn, x1-xl)) #define _cimg_for_triangle2(img,xl,cl,xr,cr,y,x0,y0,c0,x1,y1,c1,x2,y2,c2) \ for (int y = y0<0?0:y0, \ xr = y0>=0?x0:(x0-y0*(x2-x0)/(y2-y0)), \ cr = y0>=0?c0:(c0-y0*(c2-c0)/(y2-y0)), \ xl = y1>=0?(y0>=0?(y0==y1?x1:x0):(x0-y0*(x1-x0)/(y1-y0))):(x1-y1*(x2-x1)/(y2-y1)), \ cl = y1>=0?(y0>=0?(y0==y1?c1:c0):(c0-y0*(c1-c0)/(y1-y0))):(c1-y1*(c2-c1)/(y2-y1)), \ _sxn=1, _scn=1, \ _sxr=1, _scr=1, \ _sxl=1, _scl=1, \ _dxn = x2>x1?x2-x1:(_sxn=-1,x1-x2), \ _dxr = x2>x0?x2-x0:(_sxr=-1,x0-x2), \ _dxl = x1>x0?x1-x0:(_sxl=-1,x0-x1), \ _dcn = c2>c1?c2-c1:(_scn=-1,c1-c2), \ _dcr = c2>c0?c2-c0:(_scr=-1,c0-c2), \ _dcl = c1>c0?c1-c0:(_scl=-1,c0-c1), \ _dyn = y2-y1, \ _dyr = y2-y0, \ _dyl = y1-y0, \ _counter =(_dxn-=_dyn?_dyn*(_dxn/_dyn):0, \ _dxr-=_dyr?_dyr*(_dxr/_dyr):0, \ _dxl-=_dyl?_dyl*(_dxl/_dyl):0, \ _dcn-=_dyn?_dyn*(_dcn/_dyn):0, \ _dcr-=_dyr?_dyr*(_dcr/_dyr):0, \ _dcl-=_dyl?_dyl*(_dcl/_dyl):0, \ cimg::min((int)(img)._height-y-1,y2-y)), \ _errn = _dyn/2, _errcn = _errn, \ _errr = _dyr/2, _errcr = _errr, \ _errl = _dyl/2, _errcl = _errl, \ _rxn = _dyn?(x2-x1)/_dyn:0, \ _rcn = _dyn?(c2-c1)/_dyn:0, \ _rxr = _dyr?(x2-x0)/_dyr:0, \ _rcr = _dyr?(c2-c0)/_dyr:0, \ _rxl = (y0!=y1 && y1>0)?(_dyl?(x1-x0)/_dyl:0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxn), \ _rcl = (y0!=y1 && y1>0)?(_dyl?(c1-c0)/_dyl:0): \ (_errcl=_errcn, _dcl=_dcn, _dyl=_dyn, _scl=_scn, _rcn ); \ _counter>=0; --_counter, ++y, \ xr+=_rxr+((_errr-=_dxr)<0?_errr+=_dyr,_sxr:0), \ cr+=_rcr+((_errcr-=_dcr)<0?_errcr+=_dyr,_scr:0), \ xl+=(y!=y1)?(cl+=_rcl+((_errcl-=_dcl)<0?(_errcl+=_dyl,_scl):0), \ _rxl+((_errl-=_dxl)<0?(_errl+=_dyl,_sxl):0)): \ (_errcl=_errcn, _dcl=_dcn, _dyl=_dyn, _scl=_scn, _rcl=_rcn, cl=c1, \ _errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxl=_rxn, x1-xl)) #define _cimg_for_triangle3(img,xl,txl,tyl,xr,txr,tyr,y,x0,y0,tx0,ty0,x1,y1,tx1,ty1,x2,y2,tx2,ty2) \ for (int y = y0<0?0:y0, \ xr = y0>=0?x0:(x0-y0*(x2-x0)/(y2-y0)), \ txr = y0>=0?tx0:(tx0-y0*(tx2-tx0)/(y2-y0)), \ tyr = y0>=0?ty0:(ty0-y0*(ty2-ty0)/(y2-y0)), \ xl = y1>=0?(y0>=0?(y0==y1?x1:x0):(x0-y0*(x1-x0)/(y1-y0))):(x1-y1*(x2-x1)/(y2-y1)), \ txl = y1>=0?(y0>=0?(y0==y1?tx1:tx0):(tx0-y0*(tx1-tx0)/(y1-y0))):(tx1-y1*(tx2-tx1)/(y2-y1)), \ tyl = y1>=0?(y0>=0?(y0==y1?ty1:ty0):(ty0-y0*(ty1-ty0)/(y1-y0))):(ty1-y1*(ty2-ty1)/(y2-y1)), \ _sxn=1, _stxn=1, _styn=1, \ _sxr=1, _stxr=1, _styr=1, \ _sxl=1, _stxl=1, _styl=1, \ _dxn = x2>x1?x2-x1:(_sxn=-1,x1-x2), \ _dxr = x2>x0?x2-x0:(_sxr=-1,x0-x2), \ _dxl = x1>x0?x1-x0:(_sxl=-1,x0-x1), \ _dtxn = tx2>tx1?tx2-tx1:(_stxn=-1,tx1-tx2), \ _dtxr = tx2>tx0?tx2-tx0:(_stxr=-1,tx0-tx2), \ _dtxl = tx1>tx0?tx1-tx0:(_stxl=-1,tx0-tx1), \ _dtyn = ty2>ty1?ty2-ty1:(_styn=-1,ty1-ty2), \ _dtyr = ty2>ty0?ty2-ty0:(_styr=-1,ty0-ty2), \ _dtyl = ty1>ty0?ty1-ty0:(_styl=-1,ty0-ty1), \ _dyn = y2-y1, \ _dyr = y2-y0, \ _dyl = y1-y0, \ _counter =(_dxn-=_dyn?_dyn*(_dxn/_dyn):0, \ _dxr-=_dyr?_dyr*(_dxr/_dyr):0, \ _dxl-=_dyl?_dyl*(_dxl/_dyl):0, \ _dtxn-=_dyn?_dyn*(_dtxn/_dyn):0, \ _dtxr-=_dyr?_dyr*(_dtxr/_dyr):0, \ _dtxl-=_dyl?_dyl*(_dtxl/_dyl):0, \ _dtyn-=_dyn?_dyn*(_dtyn/_dyn):0, \ _dtyr-=_dyr?_dyr*(_dtyr/_dyr):0, \ _dtyl-=_dyl?_dyl*(_dtyl/_dyl):0, \ cimg::min((int)(img)._height-y-1,y2-y)), \ _errn = _dyn/2, _errtxn = _errn, _errtyn = _errn, \ _errr = _dyr/2, _errtxr = _errr, _errtyr = _errr, \ _errl = _dyl/2, _errtxl = _errl, _errtyl = _errl, \ _rxn = _dyn?(x2-x1)/_dyn:0, \ _rtxn = _dyn?(tx2-tx1)/_dyn:0, \ _rtyn = _dyn?(ty2-ty1)/_dyn:0, \ _rxr = _dyr?(x2-x0)/_dyr:0, \ _rtxr = _dyr?(tx2-tx0)/_dyr:0, \ _rtyr = _dyr?(ty2-ty0)/_dyr:0, \ _rxl = (y0!=y1 && y1>0)?(_dyl?(x1-x0)/_dyl:0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxn), \ _rtxl = (y0!=y1 && y1>0)?(_dyl?(tx1-tx0)/_dyl:0): \ (_errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxn ), \ _rtyl = (y0!=y1 && y1>0)?(_dyl?(ty1-ty0)/_dyl:0): \ (_errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyn ); \ _counter>=0; --_counter, ++y, \ xr+=_rxr+((_errr-=_dxr)<0?_errr+=_dyr,_sxr:0), \ txr+=_rtxr+((_errtxr-=_dtxr)<0?_errtxr+=_dyr,_stxr:0), \ tyr+=_rtyr+((_errtyr-=_dtyr)<0?_errtyr+=_dyr,_styr:0), \ xl+=(y!=y1)?(txl+=_rtxl+((_errtxl-=_dtxl)<0?(_errtxl+=_dyl,_stxl):0), \ tyl+=_rtyl+((_errtyl-=_dtyl)<0?(_errtyl+=_dyl,_styl):0), \ _rxl+((_errl-=_dxl)<0?(_errl+=_dyl,_sxl):0)): \ (_errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxl=_rtxn, txl=tx1, \ _errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyl=_rtyn, tyl=ty1,\ _errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxl=_rxn, x1-xl)) #define _cimg_for_triangle4(img,xl,cl,txl,tyl,xr,cr,txr,tyr,y,x0,y0,c0,tx0,ty0,x1,y1,c1,tx1,ty1,x2,y2,c2,tx2,ty2) \ for (int y = y0<0?0:y0, \ xr = y0>=0?x0:(x0-y0*(x2-x0)/(y2-y0)), \ cr = y0>=0?c0:(c0-y0*(c2-c0)/(y2-y0)), \ txr = y0>=0?tx0:(tx0-y0*(tx2-tx0)/(y2-y0)), \ tyr = y0>=0?ty0:(ty0-y0*(ty2-ty0)/(y2-y0)), \ xl = y1>=0?(y0>=0?(y0==y1?x1:x0):(x0-y0*(x1-x0)/(y1-y0))):(x1-y1*(x2-x1)/(y2-y1)), \ cl = y1>=0?(y0>=0?(y0==y1?c1:c0):(c0-y0*(c1-c0)/(y1-y0))):(c1-y1*(c2-c1)/(y2-y1)), \ txl = y1>=0?(y0>=0?(y0==y1?tx1:tx0):(tx0-y0*(tx1-tx0)/(y1-y0))):(tx1-y1*(tx2-tx1)/(y2-y1)), \ tyl = y1>=0?(y0>=0?(y0==y1?ty1:ty0):(ty0-y0*(ty1-ty0)/(y1-y0))):(ty1-y1*(ty2-ty1)/(y2-y1)), \ _sxn=1, _scn=1, _stxn=1, _styn=1, \ _sxr=1, _scr=1, _stxr=1, _styr=1, \ _sxl=1, _scl=1, _stxl=1, _styl=1, \ _dxn = x2>x1?x2-x1:(_sxn=-1,x1-x2), \ _dxr = x2>x0?x2-x0:(_sxr=-1,x0-x2), \ _dxl = x1>x0?x1-x0:(_sxl=-1,x0-x1), \ _dcn = c2>c1?c2-c1:(_scn=-1,c1-c2), \ _dcr = c2>c0?c2-c0:(_scr=-1,c0-c2), \ _dcl = c1>c0?c1-c0:(_scl=-1,c0-c1), \ _dtxn = tx2>tx1?tx2-tx1:(_stxn=-1,tx1-tx2), \ _dtxr = tx2>tx0?tx2-tx0:(_stxr=-1,tx0-tx2), \ _dtxl = tx1>tx0?tx1-tx0:(_stxl=-1,tx0-tx1), \ _dtyn = ty2>ty1?ty2-ty1:(_styn=-1,ty1-ty2), \ _dtyr = ty2>ty0?ty2-ty0:(_styr=-1,ty0-ty2), \ _dtyl = ty1>ty0?ty1-ty0:(_styl=-1,ty0-ty1), \ _dyn = y2-y1, \ _dyr = y2-y0, \ _dyl = y1-y0, \ _counter =(_dxn-=_dyn?_dyn*(_dxn/_dyn):0, \ _dxr-=_dyr?_dyr*(_dxr/_dyr):0, \ _dxl-=_dyl?_dyl*(_dxl/_dyl):0, \ _dcn-=_dyn?_dyn*(_dcn/_dyn):0, \ _dcr-=_dyr?_dyr*(_dcr/_dyr):0, \ _dcl-=_dyl?_dyl*(_dcl/_dyl):0, \ _dtxn-=_dyn?_dyn*(_dtxn/_dyn):0, \ _dtxr-=_dyr?_dyr*(_dtxr/_dyr):0, \ _dtxl-=_dyl?_dyl*(_dtxl/_dyl):0, \ _dtyn-=_dyn?_dyn*(_dtyn/_dyn):0, \ _dtyr-=_dyr?_dyr*(_dtyr/_dyr):0, \ _dtyl-=_dyl?_dyl*(_dtyl/_dyl):0, \ cimg::min((int)(img)._height-y-1,y2-y)), \ _errn = _dyn/2, _errcn = _errn, _errtxn = _errn, _errtyn = _errn, \ _errr = _dyr/2, _errcr = _errr, _errtxr = _errr, _errtyr = _errr, \ _errl = _dyl/2, _errcl = _errl, _errtxl = _errl, _errtyl = _errl, \ _rxn = _dyn?(x2-x1)/_dyn:0, \ _rcn = _dyn?(c2-c1)/_dyn:0, \ _rtxn = _dyn?(tx2-tx1)/_dyn:0, \ _rtyn = _dyn?(ty2-ty1)/_dyn:0, \ _rxr = _dyr?(x2-x0)/_dyr:0, \ _rcr = _dyr?(c2-c0)/_dyr:0, \ _rtxr = _dyr?(tx2-tx0)/_dyr:0, \ _rtyr = _dyr?(ty2-ty0)/_dyr:0, \ _rxl = (y0!=y1 && y1>0)?(_dyl?(x1-x0)/_dyl:0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxn), \ _rcl = (y0!=y1 && y1>0)?(_dyl?(c1-c0)/_dyl:0): \ (_errcl=_errcn, _dcl=_dcn, _dyl=_dyn, _scl=_scn, _rcn ), \ _rtxl = (y0!=y1 && y1>0)?(_dyl?(tx1-tx0)/_dyl:0): \ (_errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxn ), \ _rtyl = (y0!=y1 && y1>0)?(_dyl?(ty1-ty0)/_dyl:0): \ (_errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyn ); \ _counter>=0; --_counter, ++y, \ xr+=_rxr+((_errr-=_dxr)<0?_errr+=_dyr,_sxr:0), \ cr+=_rcr+((_errcr-=_dcr)<0?_errcr+=_dyr,_scr:0), \ txr+=_rtxr+((_errtxr-=_dtxr)<0?_errtxr+=_dyr,_stxr:0), \ tyr+=_rtyr+((_errtyr-=_dtyr)<0?_errtyr+=_dyr,_styr:0), \ xl+=(y!=y1)?(cl+=_rcl+((_errcl-=_dcl)<0?(_errcl+=_dyl,_scl):0), \ txl+=_rtxl+((_errtxl-=_dtxl)<0?(_errtxl+=_dyl,_stxl):0), \ tyl+=_rtyl+((_errtyl-=_dtyl)<0?(_errtyl+=_dyl,_styl):0), \ _rxl+((_errl-=_dxl)<0?(_errl+=_dyl,_sxl):0)): \ (_errcl=_errcn, _dcl=_dcn, _dyl=_dyn, _scl=_scn, _rcl=_rcn, cl=c1, \ _errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxl=_rtxn, txl=tx1, \ _errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyl=_rtyn, tyl=ty1, \ _errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxl=_rxn, x1-xl)) #define _cimg_for_triangle5(img,xl,txl,tyl,lxl,lyl,xr,txr,tyr,lxr,lyr,y,x0,y0,tx0,ty0,lx0,ly0,x1,y1,tx1,ty1,lx1,ly1,x2,y2,tx2,ty2,lx2,ly2) \ for (int y = y0<0?0:y0, \ xr = y0>=0?x0:(x0-y0*(x2-x0)/(y2-y0)), \ txr = y0>=0?tx0:(tx0-y0*(tx2-tx0)/(y2-y0)), \ tyr = y0>=0?ty0:(ty0-y0*(ty2-ty0)/(y2-y0)), \ lxr = y0>=0?lx0:(lx0-y0*(lx2-lx0)/(y2-y0)), \ lyr = y0>=0?ly0:(ly0-y0*(ly2-ly0)/(y2-y0)), \ xl = y1>=0?(y0>=0?(y0==y1?x1:x0):(x0-y0*(x1-x0)/(y1-y0))):(x1-y1*(x2-x1)/(y2-y1)), \ txl = y1>=0?(y0>=0?(y0==y1?tx1:tx0):(tx0-y0*(tx1-tx0)/(y1-y0))):(tx1-y1*(tx2-tx1)/(y2-y1)), \ tyl = y1>=0?(y0>=0?(y0==y1?ty1:ty0):(ty0-y0*(ty1-ty0)/(y1-y0))):(ty1-y1*(ty2-ty1)/(y2-y1)), \ lxl = y1>=0?(y0>=0?(y0==y1?lx1:lx0):(lx0-y0*(lx1-lx0)/(y1-y0))):(lx1-y1*(lx2-lx1)/(y2-y1)), \ lyl = y1>=0?(y0>=0?(y0==y1?ly1:ly0):(ly0-y0*(ly1-ly0)/(y1-y0))):(ly1-y1*(ly2-ly1)/(y2-y1)), \ _sxn=1, _stxn=1, _styn=1, _slxn=1, _slyn=1, \ _sxr=1, _stxr=1, _styr=1, _slxr=1, _slyr=1, \ _sxl=1, _stxl=1, _styl=1, _slxl=1, _slyl=1, \ _dxn = x2>x1?x2-x1:(_sxn=-1,x1-x2), _dyn = y2-y1, \ _dxr = x2>x0?x2-x0:(_sxr=-1,x0-x2), _dyr = y2-y0, \ _dxl = x1>x0?x1-x0:(_sxl=-1,x0-x1), _dyl = y1-y0, \ _dtxn = tx2>tx1?tx2-tx1:(_stxn=-1,tx1-tx2), \ _dtxr = tx2>tx0?tx2-tx0:(_stxr=-1,tx0-tx2), \ _dtxl = tx1>tx0?tx1-tx0:(_stxl=-1,tx0-tx1), \ _dtyn = ty2>ty1?ty2-ty1:(_styn=-1,ty1-ty2), \ _dtyr = ty2>ty0?ty2-ty0:(_styr=-1,ty0-ty2), \ _dtyl = ty1>ty0?ty1-ty0:(_styl=-1,ty0-ty1), \ _dlxn = lx2>lx1?lx2-lx1:(_slxn=-1,lx1-lx2), \ _dlxr = lx2>lx0?lx2-lx0:(_slxr=-1,lx0-lx2), \ _dlxl = lx1>lx0?lx1-lx0:(_slxl=-1,lx0-lx1), \ _dlyn = ly2>ly1?ly2-ly1:(_slyn=-1,ly1-ly2), \ _dlyr = ly2>ly0?ly2-ly0:(_slyr=-1,ly0-ly2), \ _dlyl = ly1>ly0?ly1-ly0:(_slyl=-1,ly0-ly1), \ _counter =(_dxn-=_dyn?_dyn*(_dxn/_dyn):0, \ _dxr-=_dyr?_dyr*(_dxr/_dyr):0, \ _dxl-=_dyl?_dyl*(_dxl/_dyl):0, \ _dtxn-=_dyn?_dyn*(_dtxn/_dyn):0, \ _dtxr-=_dyr?_dyr*(_dtxr/_dyr):0, \ _dtxl-=_dyl?_dyl*(_dtxl/_dyl):0, \ _dtyn-=_dyn?_dyn*(_dtyn/_dyn):0, \ _dtyr-=_dyr?_dyr*(_dtyr/_dyr):0, \ _dtyl-=_dyl?_dyl*(_dtyl/_dyl):0, \ _dlxn-=_dyn?_dyn*(_dlxn/_dyn):0, \ _dlxr-=_dyr?_dyr*(_dlxr/_dyr):0, \ _dlxl-=_dyl?_dyl*(_dlxl/_dyl):0, \ _dlyn-=_dyn?_dyn*(_dlyn/_dyn):0, \ _dlyr-=_dyr?_dyr*(_dlyr/_dyr):0, \ _dlyl-=_dyl?_dyl*(_dlyl/_dyl):0, \ cimg::min((int)(img)._height-y-1,y2-y)), \ _errn = _dyn/2, _errtxn = _errn, _errtyn = _errn, _errlxn = _errn, _errlyn = _errn, \ _errr = _dyr/2, _errtxr = _errr, _errtyr = _errr, _errlxr = _errr, _errlyr = _errr, \ _errl = _dyl/2, _errtxl = _errl, _errtyl = _errl, _errlxl = _errl, _errlyl = _errl, \ _rxn = _dyn?(x2-x1)/_dyn:0, \ _rtxn = _dyn?(tx2-tx1)/_dyn:0, \ _rtyn = _dyn?(ty2-ty1)/_dyn:0, \ _rlxn = _dyn?(lx2-lx1)/_dyn:0, \ _rlyn = _dyn?(ly2-ly1)/_dyn:0, \ _rxr = _dyr?(x2-x0)/_dyr:0, \ _rtxr = _dyr?(tx2-tx0)/_dyr:0, \ _rtyr = _dyr?(ty2-ty0)/_dyr:0, \ _rlxr = _dyr?(lx2-lx0)/_dyr:0, \ _rlyr = _dyr?(ly2-ly0)/_dyr:0, \ _rxl = (y0!=y1 && y1>0)?(_dyl?(x1-x0)/_dyl:0): \ (_errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxn), \ _rtxl = (y0!=y1 && y1>0)?(_dyl?(tx1-tx0)/_dyl:0): \ (_errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxn ), \ _rtyl = (y0!=y1 && y1>0)?(_dyl?(ty1-ty0)/_dyl:0): \ (_errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyn ), \ _rlxl = (y0!=y1 && y1>0)?(_dyl?(lx1-lx0)/_dyl:0): \ (_errlxl=_errlxn, _dlxl=_dlxn, _dyl=_dyn, _slxl=_slxn, _rlxn ), \ _rlyl = (y0!=y1 && y1>0)?(_dyl?(ly1-ly0)/_dyl:0): \ (_errlyl=_errlyn, _dlyl=_dlyn, _dyl=_dyn, _slyl=_slyn, _rlyn ); \ _counter>=0; --_counter, ++y, \ xr+=_rxr+((_errr-=_dxr)<0?_errr+=_dyr,_sxr:0), \ txr+=_rtxr+((_errtxr-=_dtxr)<0?_errtxr+=_dyr,_stxr:0), \ tyr+=_rtyr+((_errtyr-=_dtyr)<0?_errtyr+=_dyr,_styr:0), \ lxr+=_rlxr+((_errlxr-=_dlxr)<0?_errlxr+=_dyr,_slxr:0), \ lyr+=_rlyr+((_errlyr-=_dlyr)<0?_errlyr+=_dyr,_slyr:0), \ xl+=(y!=y1)?(txl+=_rtxl+((_errtxl-=_dtxl)<0?(_errtxl+=_dyl,_stxl):0), \ tyl+=_rtyl+((_errtyl-=_dtyl)<0?(_errtyl+=_dyl,_styl):0), \ lxl+=_rlxl+((_errlxl-=_dlxl)<0?(_errlxl+=_dyl,_slxl):0), \ lyl+=_rlyl+((_errlyl-=_dlyl)<0?(_errlyl+=_dyl,_slyl):0), \ _rxl+((_errl-=_dxl)<0?(_errl+=_dyl,_sxl):0)): \ (_errtxl=_errtxn, _dtxl=_dtxn, _dyl=_dyn, _stxl=_stxn, _rtxl=_rtxn, txl=tx1, \ _errtyl=_errtyn, _dtyl=_dtyn, _dyl=_dyn, _styl=_styn, _rtyl=_rtyn, tyl=ty1, \ _errlxl=_errlxn, _dlxl=_dlxn, _dyl=_dyn, _slxl=_slxn, _rlxl=_rlxn, lxl=lx1, \ _errlyl=_errlyn, _dlyl=_dlyn, _dyl=_dyn, _slyl=_slyn, _rlyl=_rlyn, lyl=ly1, \ _errl=_errn, _dxl=_dxn, _dyl=_dyn, _sxl=_sxn, _rxl=_rxn, x1-xl)) // [internal] Draw a filled triangle. template CImg& _draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc *const color, const float opacity, const float brightness) { cimg_init_scanline(color,opacity); const float nbrightness = brightness<0?0:(brightness>2?2:brightness); int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2); if (ny0=0) { if ((nx1 - nx0)*(ny2 - ny0) - (nx2 - nx0)*(ny1 - ny0)<0) _cimg_for_triangle1(*this,xl,xr,y,nx0,ny0,nx1,ny1,nx2,ny2) cimg_draw_scanline(xl,xr,y,color,opacity,nbrightness); else _cimg_for_triangle1(*this,xl,xr,y,nx0,ny0,nx1,ny1,nx2,ny2) cimg_draw_scanline(xr,xl,y,color,opacity,nbrightness); } return *this; } //! Draw a filled 2d triangle. /** \param x0 X-coordinate of the first vertex. \param y0 Y-coordinate of the first vertex. \param x1 X-coordinate of the second vertex. \param y1 Y-coordinate of the second vertex. \param x2 X-coordinate of the third vertex. \param y2 Y-coordinate of the third vertex. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); _draw_triangle(x0,y0,x1,y1,x2,y2,color,opacity,1); return *this; } //! Draw a outlined 2d triangle. /** \param x0 X-coordinate of the first vertex. \param y0 Y-coordinate of the first vertex. \param x1 X-coordinate of the second vertex. \param y1 Y-coordinate of the second vertex. \param x2 X-coordinate of the third vertex. \param y2 Y-coordinate of the third vertex. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the outline pattern. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc *const color, const float opacity, const unsigned int pattern) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); draw_line(x0,y0,x1,y1,color,opacity,pattern,true). draw_line(x1,y1,x2,y2,color,opacity,pattern,false). draw_line(x2,y2,x0,y0,color,opacity,pattern,false); return *this; } //! Draw a filled 2d triangle, with z-buffering. /** \param zbuffer Z-buffer image. \param x0 X-coordinate of the first vertex. \param y0 Y-coordinate of the first vertex. \param z0 Z-coordinate of the first vertex. \param x1 X-coordinate of the second vertex. \param y1 Y-coordinate of the second vertex. \param z1 Z-coordinate of the second vertex. \param x2 X-coordinate of the third vertex. \param y2 Y-coordinate of the third vertex. \param z2 Z-coordinate of the third vertex. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. \param brightness Brightness factor. **/ template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const tc *const color, const float opacity=1, const float brightness=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0), nbrightness = brightness<0?0:(brightness>2?2:brightness); const long whd = (long)_width*_height*_depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2; tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle1(*this,xleft0,xright0,y,nx0,ny0,nx1,ny1,nx2,ny2) { if (y==ny1) { zl = nz1; pzl = pzn; } int xleft = xleft0, xright = xright0; tzfloat zleft = zl, zright = zr; if (xright=width()-1) xright = width() - 1; T* ptrd = data(xleft,y,0,0); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) { if (nbrightness==1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(nbrightness*(*col++)); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)((2-nbrightness)**(col++) + (nbrightness-1)*maxval); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } } else { if (nbrightness==1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity**(col++) + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(nopacity*nbrightness**(col++) + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { const T val = (T)((2-nbrightness)**(col++) + (nbrightness-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; } } zr+=pzr; zl+=pzl; } return *this; } //! Draw a Gouraud-shaded 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param brightness0 Brightness factor of the first vertex (in [0,2]). \param brightness1 brightness factor of the second vertex (in [0,2]). \param brightness2 brightness factor of the third vertex (in [0,2]). \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc *const color, const float brightness0, const float brightness1, const float brightness2, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nc0 = (int)((brightness0<0.0f?0.0f:(brightness0>2.0f?2.0f:brightness0))*256.0f), nc1 = (int)((brightness1<0.0f?0.0f:(brightness1>2.0f?2.0f:brightness1))*256.0f), nc2 = (int)((brightness2<0.0f?0.0f:(brightness2>2.0f?2.0f:brightness2))*256.0f); if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nc0,nc1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,nc0,nc2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,nc1,nc2); if (ny0>=height() || ny2<0) return *this; _cimg_for_triangle2(*this,xleft0,cleft0,xright0,cright0,y,nx0,ny0,nc0,nx1,ny1,nc1,nx2,ny2,nc2) { int xleft = xleft0, xright = xright0, cleft = cleft0, cright = cright0; if (xrightcleft?cright - cleft:cleft - cright, rc = dx?(cright - cleft)/dx:0, sc = cright>cleft?1:-1, ndc = dc-(dx?dx*(dc/dx):0); int errc = dx>>1; if (xleft<0 && dx) cleft-=xleft*(cright - cleft)/dx; if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width() - 1; T* ptrd = data(xleft,y); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(cleft<256?cleft**(col++)/256:((512-cleft)**(col++)+(cleft-256)*maxval)/256); ptrd+=whd; } ptrd-=offx; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = color; cimg_forC(*this,c) { const T val = (T)(cleft<256?cleft**(col++)/256:((512-cleft)**(col++)+(cleft-256)*maxval)/256); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } } return *this; } //! Draw a Gouraud-shaded 2d triangle, with z-buffering \overloading. template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const tc *const color, const float brightness0, const float brightness1, const float brightness2, const float opacity=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nc0 = (int)((brightness0<0.0f?0.0f:(brightness0>2.0f?2.0f:brightness0))*256.0f), nc1 = (int)((brightness1<0.0f?0.0f:(brightness1>2.0f?2.0f:brightness1))*256.0f), nc2 = (int)((brightness2<0.0f?0.0f:(brightness2>2.0f?2.0f:brightness2))*256.0f); tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nz0,nz1,nc0,nc1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,nz0,nz2,nc0,nc2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,nz1,nz2,nc1,nc2); if (ny0>=height() || ny2<0) return *this; tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle2(*this,xleft0,cleft0,xright0,cright0,y,nx0,ny0,nc0,nx1,ny1,nc1,nx2,ny2,nc2) { if (y==ny1) { zl = nz1; pzl = pzn; } int xleft = xleft0, xright = xright0, cleft = cleft0, cright = cright0; tzfloat zleft = zl, zright = zr; if (xrightcleft?cright - cleft:cleft - cright, rc = dx?(cright-cleft)/dx:0, sc = cright>cleft?1:-1, ndc = dc-(dx?dx*(dc/dx):0); const tzfloat pentez = (zright - zleft)/dx; int errc = dx>>1; if (xleft<0 && dx) { cleft-=xleft*(cright - cleft)/dx; zleft-=xleft*(zright - zleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T *ptrd = data(xleft,y); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) for (int x = xleft; x<=xright; ++x, ++ptrd, ++ptrz) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { *ptrd = (T)(cleft<256?cleft**(col++)/256:((512-cleft)**(col++)+(cleft-256)*maxval)/256); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } else for (int x = xleft; x<=xright; ++x, ++ptrd, ++ptrz) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { const T val = (T)(cleft<256?cleft**(col++)/256:((512-cleft)**(col++)+(cleft-256)*maxval)/256); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } zr+=pzr; zl+=pzl; } return *this; } //! Draw a color-interpolated 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param color1 Pointer to \c spectrum() consecutive values of type \c T, defining the color of the first vertex. \param color2 Pointer to \c spectrum() consecutive values of type \c T, defining the color of the seconf vertex. \param color3 Pointer to \c spectrum() consecutive values of type \c T, defining the color of the third vertex. \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc1 *const color1, const tc2 *const color2, const tc3 *const color3, const float opacity=1) { const unsigned char one = 1; cimg_forC(*this,c) get_shared_channel(c).draw_triangle(x0,y0,x1,y1,x2,y2,&one,color1[c],color2[c],color3[c],opacity); return *this; } //! Draw a textured 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param texture Texture image used to fill the triangle. \param tx0 X-coordinate of the first vertex in the texture image. \param ty0 Y-coordinate of the first vertex in the texture image. \param tx1 X-coordinate of the second vertex in the texture image. \param ty1 Y-coordinate of the second vertex in the texture image. \param tx2 X-coordinate of the third vertex in the texture image. \param ty2 Y-coordinate of the third vertex in the texture image. \param opacity Drawing opacity. \param brightness Brightness factor of the drawing (in [0,2]). **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float opacity=1, const float brightness=1) { if (is_empty()) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,x1,y1,x2,y2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,opacity,brightness); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0), nbrightness = brightness<0?0:(brightness>2?2:brightness); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, ntx0 = tx0, nty0 = ty0, ntx1 = tx1, nty1 = ty1, ntx2 = tx2, nty2 = ty2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2); if (ny0>=height() || ny2<0) return *this; _cimg_for_triangle3(*this,xleft0,txleft0,tyleft0,xright0,txright0,tyright0,y, nx0,ny0,ntx0,nty0,nx1,ny1,ntx1,nty1,nx2,ny2,ntx2,nty2) { int xleft = xleft0, xright = xright0, txleft = txleft0, txright = txright0, tyleft = tyleft0, tyright = tyright0; if (xrighttxleft?txright - txleft:txleft - txright, dty = tyright>tyleft?tyright - tyleft:tyleft - tyright, rtx = dx?(txright - txleft)/dx:0, rty = dx?(tyright - tyleft)/dx:0, stx = txright>txleft?1:-1, sty = tyright>tyleft?1:-1, ndtx = dtx - (dx?dx*(dtx/dx):0), ndty = dty - (dx?dx*(dty/dx):0); int errtx = dx>>1, errty = errtx; if (xleft<0 && dx) { txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) { if (nbrightness==1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)*col; ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)(nbrightness**col); ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)((2-nbrightness)**(col++) + (nbrightness-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } } else { if (nbrightness==1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)(nopacity**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)(nopacity*nbrightness**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { const T val = (T)((2-nbrightness)**(col++) + (nbrightness-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } } } return *this; } //! Draw a 2d textured triangle, with perspective correction. template CImg& draw_triangle(const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float opacity=1, const float brightness=1) { if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,opacity,brightness); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0), nbrightness = brightness<0?0:(brightness>2?2:brightness); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2; float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2, nz0 = 1/z0, nz1 = 1/z1, nz2 = 1/z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); _cimg_for_triangle1(*this,xleft0,xright0,y,nx0,ny0,nx1,ny1,nx2,ny2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0; float zleft = zl, zright = zr, txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; if (xright=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) { if (nbrightness==1) for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)*col; ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else if (nbrightness<1) for (int x=xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nbrightness**col); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)((2-nbrightness)**col + (nbrightness-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } } else { if (nbrightness==1) for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nopacity**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nopacity*nbrightness**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const T val = (T)((2-nbrightness)**col + (nbrightness-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a textured 2d triangle, with perspective correction and z-buffering. template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float opacity=1, const float brightness=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,opacity,brightness); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0), nbrightness = brightness<0?0:(brightness>2?2:brightness); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2; float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2; tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle1(*this,xleft0,xright0,y,nx0,ny0,nx1,ny1,nx2,ny2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0; float txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; tzfloat zleft = zl, zright = zr; if (xright=width()-1) xright = width()-1; T *ptrd = data(xleft,y,0,0); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) { if (nbrightness==1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)*col; ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nbrightness**col); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)((2-nbrightness)**col + (nbrightness-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } } else { if (nbrightness==1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nopacity**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else if (nbrightness<1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(nopacity*nbrightness**col + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const T val = (T)((2-nbrightness)**col + (nbrightness-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; } } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a Phong-shaded 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param light Light image. \param lx0 X-coordinate of the first vertex in the light image. \param ly0 Y-coordinate of the first vertex in the light image. \param lx1 X-coordinate of the second vertex in the light image. \param ly1 Y-coordinate of the second vertex in the light image. \param lx2 X-coordinate of the third vertex in the light image. \param ly2 Y-coordinate of the third vertex in the light image. \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const tc *const color, const CImg& light, const int lx0, const int ly0, const int lx1, const int ly1, const int lx2, const int ly2, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); if (light._depth>1 || light._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified light texture (%u,%u,%u,%u,%p).", cimg_instance,light._width,light._height,light._depth,light._spectrum,light._data); if (is_overlapped(light)) return draw_triangle(x0,y0,x1,y1,x2,y2,color,+light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nlx0 = lx0, nly0 = ly0, nlx1 = lx1, nly1 = ly1, nlx2 = lx2, nly2 = ly2; const long whd = (long)_width*_height*_depth, offx = _spectrum*whd-1; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nlx0,nlx1,nly0,nly1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,nlx0,nlx2,nly0,nly2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,nlx1,nlx2,nly1,nly2); if (ny0>=height() || ny2<0) return *this; _cimg_for_triangle3(*this,xleft0,lxleft0,lyleft0,xright0,lxright0,lyright0,y, nx0,ny0,nlx0,nly0,nx1,ny1,nlx1,nly1,nx2,ny2,nlx2,nly2) { int xleft = xleft0, xright = xright0, lxleft = lxleft0, lxright = lxright0, lyleft = lyleft0, lyright = lyright0; if (xrightlxleft?lxright - lxleft:lxleft - lxright, dly = lyright>lyleft?lyright - lyleft:lyleft - lyright, rlx = dx?(lxright - lxleft)/dx:0, rly = dx?(lyright - lyleft)/dx:0, slx = lxright>lxleft?1:-1, sly = lyright>lyleft?1:-1, ndlx = dlx - (dx?dx*(dlx/dx):0), ndly = dly - (dx?dx*(dly/dx):0); int errlx = dx>>1, errly = errlx; if (xleft<0 && dx) { lxleft-=xleft*(lxright - lxleft)/dx; lyleft-=xleft*(lyright - lyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const tc *col = color; cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); *ptrd = (T)(l<1?l**(col++):((2-l)**(col++)+(l-1)*maxval)); ptrd+=whd; } ptrd-=offx; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = color; cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const T val = (T)(l<1?l**(col++):((2-l)**(col++)+(l-1)*maxval)); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } } return *this; } //! Draw a Phong-shaded 2d triangle, with z-buffering. template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const tc *const color, const CImg& light, const int lx0, const int ly0, const int lx1, const int ly1, const int lx2, const int ly2, const float opacity=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_triangle(): Specified color is (null).", cimg_instance); if (light._depth>1 || light._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified light texture (%u,%u,%u,%u,%p).", cimg_instance,light._width,light._height,light._depth,light._spectrum,light._data); if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); if (is_overlapped(light)) return draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color, +light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nlx0 = lx0, nly0 = ly0, nlx1 = lx1, nly1 = ly1, nlx2 = lx2, nly2 = ly2; tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,nlx0,nlx1,nly0,nly1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,nlx0,nlx2,nly0,nly2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,nlx1,nlx2,nly1,nly2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle3(*this,xleft0,lxleft0,lyleft0,xright0,lxright0,lyright0,y, nx0,ny0,nlx0,nly0,nx1,ny1,nlx1,nly1,nx2,ny2,nlx2,nly2) { if (y==ny1) { zl = nz1; pzl = pzn; } int xleft = xleft0, xright = xright0, lxleft = lxleft0, lxright = lxright0, lyleft = lyleft0, lyright = lyright0; tzfloat zleft = zl, zright = zr; if (xrightlxleft?lxright - lxleft:lxleft - lxright, dly = lyright>lyleft?lyright - lyleft:lyleft - lyright, rlx = dx?(lxright - lxleft)/dx:0, rly = dx?(lyright - lyleft)/dx:0, slx = lxright>lxleft?1:-1, sly = lyright>lyleft?1:-1, ndlx = dlx - (dx?dx*(dlx/dx):0), ndly = dly - (dx?dx*(dly/dx):0); const tzfloat pentez = (zright - zleft)/dx; int errlx = dx>>1, errly = errlx; if (xleft<0 && dx) { zleft-=xleft*(zright - zleft)/dx; lxleft-=xleft*(lxright - lxleft)/dx; lyleft-=xleft*(lyright - lyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T *ptrd = data(xleft,y,0,0); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const tc cval = *(col++); *ptrd = (T)(l<1?l*cval:(2-l)*cval+(l-1)*maxval); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tc *col = color; cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const tc cval = *(col++); const T val = (T)(l<1?l*cval:(2-l)*cval+(l-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; } ptrd-=offx; } zleft+=pentez; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } zr+=pzr; zl+=pzl; } return *this; } //! Draw a textured Gouraud-shaded 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param texture Texture image used to fill the triangle. \param tx0 X-coordinate of the first vertex in the texture image. \param ty0 Y-coordinate of the first vertex in the texture image. \param tx1 X-coordinate of the second vertex in the texture image. \param ty1 Y-coordinate of the second vertex in the texture image. \param tx2 X-coordinate of the third vertex in the texture image. \param ty2 Y-coordinate of the third vertex in the texture image. \param brightness0 Brightness factor of the first vertex. \param brightness1 Brightness factor of the second vertex. \param brightness2 Brightness factor of the third vertex. \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float brightness0, const float brightness1, const float brightness2, const float opacity=1) { if (is_empty()) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,x1,y1,x2,y2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,brightness0,brightness1,brightness2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, ntx0 = tx0, nty0 = ty0, ntx1 = tx1, nty1 = ty1, ntx2 = tx2, nty2 = ty2, nc0 = (int)((brightness0<0.0f?0.0f:(brightness0>2.0f?2.0f:brightness0))*256.0f), nc1 = (int)((brightness1<0.0f?0.0f:(brightness1>2.0f?2.0f:brightness1))*256.0f), nc2 = (int)((brightness2<0.0f?0.0f:(brightness2>2.0f?2.0f:brightness2))*256.0f); if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nc0,nc1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nc0,nc2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nc1,nc2); if (ny0>=height() || ny2<0) return *this; _cimg_for_triangle4(*this,xleft0,cleft0,txleft0,tyleft0,xright0,cright0,txright0,tyright0,y, nx0,ny0,nc0,ntx0,nty0,nx1,ny1,nc1,ntx1,nty1,nx2,ny2,nc2,ntx2,nty2) { int xleft = xleft0, xright = xright0, cleft = cleft0, cright = cright0, txleft = txleft0, txright = txright0, tyleft = tyleft0, tyright = tyright0; if (xrightcleft?cright - cleft:cleft - cright, dtx = txright>txleft?txright - txleft:txleft - txright, dty = tyright>tyleft?tyright - tyleft:tyleft - tyright, rc = dx?(cright - cleft)/dx:0, rtx = dx?(txright - txleft)/dx:0, rty = dx?(tyright - tyleft)/dx:0, sc = cright>cleft?1:-1, stx = txright>txleft?1:-1, sty = tyright>tyleft?1:-1, ndc = dc - (dx?dx*(dc/dx):0), ndtx = dtx - (dx?dx*(dtx/dx):0), ndty = dty - (dx?dx*(dty/dx):0); int errc = dx>>1, errtx = errc, errty = errc; if (xleft<0 && dx) { cleft-=xleft*(cright - cleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { *ptrd = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); ptrd+=whd; col+=twhd; } ptrd-=offx; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { const T val = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } } return *this; } //! Draw a textured Gouraud-shaded 2d triangle, with perspective correction \overloading. template CImg& draw_triangle(const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float brightness0, const float brightness1, const float brightness2, const float opacity=1) { if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,+texture,tx0,ty0,tx1,ty1,tx2,ty2, brightness0,brightness1,brightness2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nc0 = (int)((brightness0<0.0f?0.0f:(brightness0>2.0f?2.0f:brightness0))*256.0f), nc1 = (int)((brightness1<0.0f?0.0f:(brightness1>2.0f?2.0f:brightness1))*256.0f), nc2 = (int)((brightness2<0.0f?0.0f:(brightness2>2.0f?2.0f:brightness2))*256.0f); float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2, nz0 = 1/z0, nz1 = 1/z1, nz2 = 1/z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nz0,nz1,nc0,nc1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nz0,nz2,nc0,nc2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nz1,nz2,nc1,nc2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); _cimg_for_triangle2(*this,xleft0,cleft0,xright0,cright0,y,nx0,ny0,nc0,nx1,ny1,nc1,nx2,ny2,nc2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0, cleft = cleft0, cright = cright0; float zleft = zl, zright = zr, txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; if (xrightcleft?cright - cleft:cleft - cright, rc = dx?(cright - cleft)/dx:0, sc = cright>cleft?1:-1, ndc = dc - (dx?dx*(dc/dx):0); const float pentez = (zright - zleft)/dx, pentetx = (txright - txleft)/dx, pentety = (tyright - tyleft)/dx; int errc = dx>>1; if (xleft<0 && dx) { cleft-=xleft*(cright - cleft)/dx; zleft-=xleft*(zright - zleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } else for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const T val = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a textured Gouraud-shaded 2d triangle, with perspective correction and z-buffering \overloading. template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const float brightness0, const float brightness1, const float brightness2, const float opacity=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (is_overlapped(texture)) return draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,+texture,tx0,ty0,tx1,ty1,tx2,ty2, brightness0,brightness1,brightness2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nc0 = (int)((brightness0<0.0f?0.0f:(brightness0>2.0f?2.0f:brightness0))*256.0f), nc1 = (int)((brightness1<0.0f?0.0f:(brightness1>2.0f?2.0f:brightness1))*256.0f), nc2 = (int)((brightness2<0.0f?0.0f:(brightness2>2.0f?2.0f:brightness2))*256.0f); float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2; tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nz0,nz1,nc0,nc1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nz0,nz2,nc0,nc2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nz1,nz2,nc1,nc2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle2(*this,xleft0,cleft0,xright0,cright0,y,nx0,ny0,nc0,nx1,ny1,nc1,nx2,ny2,nc2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0, cleft = cleft0, cright = cright0; float txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; tzfloat zleft = zl, zright = zr; if (xrightcleft?cright - cleft:cleft - cright, rc = dx?(cright - cleft)/dx:0, sc = cright>cleft?1:-1, ndc = dc - (dx?dx*(dc/dx):0); float pentetx = (txright - txleft)/dx, pentety = (tyright - tyleft)/dx; const tzfloat pentez = (zright - zleft)/dx; int errc = dx>>1; if (xleft<0 && dx) { cleft-=xleft*(cright - cleft)/dx; zleft-=xleft*(zright - zleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) for (int x = xleft; x<=xright; ++x, ++ptrd, ++ptrz) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { *ptrd = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } else for (int x = xleft; x<=xright; ++x, ++ptrd, ++ptrz) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const T val = (T)(cleft<256?cleft**col/256:((512-cleft)**col+(cleft-256)*maxval)/256); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; cleft+=rc+((errc-=ndc)<0?errc+=dx,sc:0); } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a textured Phong-shaded 2d triangle. /** \param x0 X-coordinate of the first vertex in the image instance. \param y0 Y-coordinate of the first vertex in the image instance. \param x1 X-coordinate of the second vertex in the image instance. \param y1 Y-coordinate of the second vertex in the image instance. \param x2 X-coordinate of the third vertex in the image instance. \param y2 Y-coordinate of the third vertex in the image instance. \param texture Texture image used to fill the triangle. \param tx0 X-coordinate of the first vertex in the texture image. \param ty0 Y-coordinate of the first vertex in the texture image. \param tx1 X-coordinate of the second vertex in the texture image. \param ty1 Y-coordinate of the second vertex in the texture image. \param tx2 X-coordinate of the third vertex in the texture image. \param ty2 Y-coordinate of the third vertex in the texture image. \param light Light image. \param lx0 X-coordinate of the first vertex in the light image. \param ly0 Y-coordinate of the first vertex in the light image. \param lx1 X-coordinate of the second vertex in the light image. \param ly1 Y-coordinate of the second vertex in the light image. \param lx2 X-coordinate of the third vertex in the light image. \param ly2 Y-coordinate of the third vertex in the light image. \param opacity Drawing opacity. **/ template CImg& draw_triangle(const int x0, const int y0, const int x1, const int y1, const int x2, const int y2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const CImg& light, const int lx0, const int ly0, const int lx1, const int ly1, const int lx2, const int ly2, const float opacity=1) { if (is_empty()) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (light._depth>1 || light._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified light texture (%u,%u,%u,%u,%p).", cimg_instance,light._width,light._height,light._depth,light._spectrum,light._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,x1,y1,x2,y2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); if (is_overlapped(light)) return draw_triangle(x0,y0,x1,y1,x2,y2,texture,tx0,ty0,tx1,ty1,tx2,ty2,+light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, ntx0 = tx0, nty0 = ty0, ntx1 = tx1, nty1 = ty1, ntx2 = tx2, nty2 = ty2, nlx0 = lx0, nly0 = ly0, nlx1 = lx1, nly1 = ly1, nlx2 = lx2, nly2 = ly2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nlx0,nlx1,nly0,nly1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nlx0,nlx2,nly0,nly2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nlx1,nlx2,nly1,nly2); if (ny0>=height() || ny2<0) return *this; _cimg_for_triangle5(*this,xleft0,lxleft0,lyleft0,txleft0,tyleft0,xright0,lxright0,lyright0,txright0,tyright0,y, nx0,ny0,nlx0,nly0,ntx0,nty0,nx1,ny1,nlx1,nly1,ntx1,nty1,nx2,ny2,nlx2,nly2,ntx2,nty2) { int xleft = xleft0, xright = xright0, lxleft = lxleft0, lxright = lxright0, lyleft = lyleft0, lyright = lyright0, txleft = txleft0, txright = txright0, tyleft = tyleft0, tyright = tyright0; if (xrightlxleft?lxright - lxleft:lxleft - lxright, dly = lyright>lyleft?lyright - lyleft:lyleft - lyright, dtx = txright>txleft?txright - txleft:txleft - txright, dty = tyright>tyleft?tyright - tyleft:tyleft - tyright, rlx = dx?(lxright - lxleft)/dx:0, rly = dx?(lyright - lyleft)/dx:0, rtx = dx?(txright - txleft)/dx:0, rty = dx?(tyright - tyleft)/dx:0, slx = lxright>lxleft?1:-1, sly = lyright>lyleft?1:-1, stx = txright>txleft?1:-1, sty = tyright>tyleft?1:-1, ndlx = dlx - (dx?dx*(dlx/dx):0), ndly = dly - (dx?dx*(dly/dx):0), ndtx = dtx - (dx?dx*(dtx/dx):0), ndty = dty - (dx?dx*(dty/dx):0); int errlx = dx>>1, errly = errlx, errtx = errlx, errty = errlx; if (xleft<0 && dx) { lxleft-=xleft*(lxright - lxleft)/dx; lyleft-=xleft*(lyright - lyleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); *ptrd = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } else for (int x = xleft; x<=xright; ++x) { const tc *col = texture.data(txleft,tyleft); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const T val = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); txleft+=rtx+((errtx-=ndtx)<0?errtx+=dx,stx:0); tyleft+=rty+((errty-=ndty)<0?errty+=dx,sty:0); } } return *this; } //! Draw a textured Phong-shaded 2d triangle, with perspective correction. template CImg& draw_triangle(const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const CImg& light, const int lx0, const int ly0, const int lx1, const int ly1, const int lx2, const int ly2, const float opacity=1) { if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (light._depth>1 || light._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified light texture (%u,%u,%u,%u,%p).", cimg_instance,light._width,light._height,light._depth,light._spectrum,light._data); if (is_overlapped(texture)) return draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,+texture,tx0,ty0,tx1,ty1,tx2,ty2,light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); if (is_overlapped(light)) return draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,texture,tx0,ty0,tx1,ty1,tx2,ty2,+light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd-1; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nlx0 = lx0, nly0 = ly0, nlx1 = lx1, nly1 = ly1, nlx2 = lx2, nly2 = ly2; float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2, nz0 = 1/z0, nz1 = 1/z1, nz2 = 1/z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nlx0,nlx1,nly0,nly1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nlx0,nlx2,nly0,nly2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nlx1,nlx2,nly1,nly2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); _cimg_for_triangle3(*this,xleft0,lxleft0,lyleft0,xright0,lxright0,lyright0,y, nx0,ny0,nlx0,nly0,nx1,ny1,nlx1,nly1,nx2,ny2,nlx2,nly2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0, lxleft = lxleft0, lxright = lxright0, lyleft = lyleft0, lyright = lyright0; float zleft = zl, zright = zr, txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; if (xrightlxleft?lxright - lxleft:lxleft - lxright, dly = lyright>lyleft?lyright - lyleft:lyleft - lyright, rlx = dx?(lxright - lxleft)/dx:0, rly = dx?(lyright - lyleft)/dx:0, slx = lxright>lxleft?1:-1, sly = lyright>lyleft?1:-1, ndlx = dlx - (dx?dx*(dlx/dx):0), ndly = dly - (dx?dx*(dly/dx):0); const float pentez = (zright - zleft)/dx, pentetx = (txright - txleft)/dx, pentety = (tyright - tyleft)/dx; int errlx = dx>>1, errly = errlx; if (xleft<0 && dx) { zleft-=xleft*(zright - zleft)/dx; lxleft-=xleft*(lxright - lxleft)/dx; lyleft-=xleft*(lyright - lyleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y,0,0); if (opacity>=1) for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); *ptrd = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } else for (int x = xleft; x<=xright; ++x) { const float invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const T val = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; zleft+=pentez; txleft+=pentetx; tyleft+=pentety; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a textured Phong-shaded 2d triangle, with perspective correction and z-buffering. template CImg& draw_triangle(CImg& zbuffer, const int x0, const int y0, const float z0, const int x1, const int y1, const float z1, const int x2, const int y2, const float z2, const CImg& texture, const int tx0, const int ty0, const int tx1, const int ty1, const int tx2, const int ty2, const CImg& light, const int lx0, const int ly0, const int lx1, const int ly1, const int lx2, const int ly2, const float opacity=1) { typedef typename cimg::superset::type tzfloat; if (is_empty() || z0<=0 || z1<=0 || z2<=0) return *this; if (!is_sameXY(zbuffer)) throw CImgArgumentException(_cimg_instance "draw_triangle(): Instance and specified Z-buffer (%u,%u,%u,%u,%p) have different dimensions.", cimg_instance, zbuffer._width,zbuffer._height,zbuffer._depth,zbuffer._spectrum,zbuffer._data); if (texture._depth>1 || texture._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified texture (%u,%u,%u,%u,%p).", cimg_instance, texture._width,texture._height,texture._depth,texture._spectrum,texture._data); if (light._depth>1 || light._spectrum<_spectrum) throw CImgArgumentException(_cimg_instance "draw_triangle(): Invalid specified light texture (%u,%u,%u,%u,%p).", cimg_instance,light._width,light._height,light._depth,light._spectrum,light._data); if (is_overlapped(texture)) return draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2, +texture,tx0,ty0,tx1,ty1,tx2,ty2,light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); if (is_overlapped(light)) return draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2, texture,tx0,ty0,tx1,ty1,tx2,ty2,+light,lx0,ly0,lx1,ly1,lx2,ly2,opacity); static const T maxval = (T)cimg::min(cimg::type::max(),cimg::type::max()); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const long whd = (long)_width*_height*_depth, twhd = (long)texture._width*texture._height*texture._depth, offx = _spectrum*whd; int nx0 = x0, ny0 = y0, nx1 = x1, ny1 = y1, nx2 = x2, ny2 = y2, nlx0 = lx0, nly0 = ly0, nlx1 = lx1, nly1 = ly1, nlx2 = lx2, nly2 = ly2; float ntx0 = tx0/z0, nty0 = ty0/z0, ntx1 = tx1/z1, nty1 = ty1/z1, ntx2 = tx2/z2, nty2 = ty2/z2; tzfloat nz0 = 1/(tzfloat)z0, nz1 = 1/(tzfloat)z1, nz2 = 1/(tzfloat)z2; if (ny0>ny1) cimg::swap(nx0,nx1,ny0,ny1,ntx0,ntx1,nty0,nty1,nlx0,nlx1,nly0,nly1,nz0,nz1); if (ny0>ny2) cimg::swap(nx0,nx2,ny0,ny2,ntx0,ntx2,nty0,nty2,nlx0,nlx2,nly0,nly2,nz0,nz2); if (ny1>ny2) cimg::swap(nx1,nx2,ny1,ny2,ntx1,ntx2,nty1,nty2,nlx1,nlx2,nly1,nly2,nz1,nz2); if (ny0>=height() || ny2<0) return *this; float ptxl = (ntx1 - ntx0)/(ny1 - ny0), ptxr = (ntx2 - ntx0)/(ny2 - ny0), ptxn = (ntx2 - ntx1)/(ny2 - ny1), ptyl = (nty1 - nty0)/(ny1 - ny0), ptyr = (nty2 - nty0)/(ny2 - ny0), ptyn = (nty2 - nty1)/(ny2 - ny1), txr = ny0>=0?ntx0:(ntx0 - ny0*(ntx2 - ntx0)/(ny2 - ny0)), tyr = ny0>=0?nty0:(nty0 - ny0*(nty2 - nty0)/(ny2 - ny0)), txl = ny1>=0?(ny0>=0?ntx0:(ntx0 - ny0*(ntx1 - ntx0)/(ny1 - ny0))):(ptxl=ptxn,(ntx1 - ny1*(ntx2 - ntx1)/(ny2 - ny1))), tyl = ny1>=0?(ny0>=0?nty0:(nty0 - ny0*(nty1 - nty0)/(ny1 - ny0))):(ptyl=ptyn,(nty1 - ny1*(nty2 - nty1)/(ny2 - ny1))); tzfloat pzl = (nz1 - nz0)/(ny1 - ny0), pzr = (nz2 - nz0)/(ny2 - ny0), pzn = (nz2 - nz1)/(ny2 - ny1), zr = ny0>=0?nz0:(nz0 - ny0*(nz2 - nz0)/(ny2 - ny0)), zl = ny1>=0?(ny0>=0?nz0:(nz0 - ny0*(nz1 - nz0)/(ny1 - ny0))):(pzl=pzn,(nz1 - ny1*(nz2 - nz1)/(ny2 - ny1))); _cimg_for_triangle3(*this,xleft0,lxleft0,lyleft0,xright0,lxright0,lyright0,y, nx0,ny0,nlx0,nly0,nx1,ny1,nlx1,nly1,nx2,ny2,nlx2,nly2) { if (y==ny1) { zl = nz1; txl = ntx1; tyl = nty1; pzl = pzn; ptxl = ptxn; ptyl = ptyn; } int xleft = xleft0, xright = xright0, lxleft = lxleft0, lxright = lxright0, lyleft = lyleft0, lyright = lyright0; float txleft = txl, txright = txr, tyleft = tyl, tyright = tyr; tzfloat zleft = zl, zright = zr; if (xrightlxleft?lxright - lxleft:lxleft - lxright, dly = lyright>lyleft?lyright - lyleft:lyleft - lyright, rlx = dx?(lxright - lxleft)/dx:0, rly = dx?(lyright - lyleft)/dx:0, slx = lxright>lxleft?1:-1, sly = lyright>lyleft?1:-1, ndlx = dlx - (dx?dx*(dlx/dx):0), ndly = dly - (dx?dx*(dly/dx):0); float pentetx = (txright - txleft)/dx, pentety = (tyright - tyleft)/dx; const tzfloat pentez = (zright - zleft)/dx; int errlx = dx>>1, errly = errlx; if (xleft<0 && dx) { zleft-=xleft*(zright - zleft)/dx; lxleft-=xleft*(lxright - lxleft)/dx; lyleft-=xleft*(lyright - lyleft)/dx; txleft-=xleft*(txright - txleft)/dx; tyleft-=xleft*(tyright - tyleft)/dx; } if (xleft<0) xleft = 0; if (xright>=width()-1) xright = width()-1; T* ptrd = data(xleft,y); tz *ptrz = zbuffer.data(xleft,y); if (opacity>=1) for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); *ptrd = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } else for (int x = xleft; x<=xright; ++x, ++ptrz, ++ptrd) { if (zleft>=(tzfloat)*ptrz) { *ptrz = (tz)zleft; const tzfloat invz = 1/zleft; const tc *col = texture.data((int)(txleft*invz),(int)(tyleft*invz)); cimg_forC(*this,c) { const tl l = light(lxleft,lyleft,c); const T val = (T)(l<1?l**col:(2-l)**col+(l-1)*maxval); *ptrd = (T)(nopacity*val + *ptrd*copacity); ptrd+=whd; col+=twhd; } ptrd-=offx; } zleft+=pentez; txleft+=pentetx; tyleft+=pentety; lxleft+=rlx+((errlx-=ndlx)<0?errlx+=dx,slx:0); lyleft+=rly+((errly-=ndly)<0?errly+=dx,sly:0); } zr+=pzr; txr+=ptxr; tyr+=ptyr; zl+=pzl; txl+=ptxl; tyl+=ptyl; } return *this; } //! Draw a filled 4d rectangle. /** \param x0 X-coordinate of the upper-left rectangle corner. \param y0 Y-coordinate of the upper-left rectangle corner. \param z0 Z-coordinate of the upper-left rectangle corner. \param c0 C-coordinate of the upper-left rectangle corner. \param x1 X-coordinate of the lower-right rectangle corner. \param y1 Y-coordinate of the lower-right rectangle corner. \param z1 Z-coordinate of the lower-right rectangle corner. \param c1 C-coordinate of the lower-right rectangle corner. \param val Scalar value used to fill the rectangle area. \param opacity Drawing opacity. **/ CImg& draw_rectangle(const int x0, const int y0, const int z0, const int c0, const int x1, const int y1, const int z1, const int c1, const T val, const float opacity=1) { if (is_empty()) return *this; const bool bx = (x0=width()?width() - 1 - nx1:0) + (nx0<0?nx0:0), lY = (1 + ny1 - ny0) + (ny1>=height()?height() - 1 - ny1:0) + (ny0<0?ny0:0), lZ = (1 + nz1 - nz0) + (nz1>=depth()?depth() - 1 - nz1:0) + (nz0<0?nz0:0), lC = (1 + nc1 - nc0) + (nc1>=spectrum()?spectrum() - 1 - nc1:0) + (nc0<0?nc0:0); const unsigned long offX = (unsigned long)_width - lX, offY = (unsigned long)_width*(_height - lY), offZ = (unsigned long)_width*_height*(_depth - lZ); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); T *ptrd = data(nx0<0?0:nx0,ny0<0?0:ny0,nz0<0?0:nz0,nc0<0?0:nc0); if (lX>0 && lY>0 && lZ>0 && lC>0) for (int v = 0; v=1) { if (sizeof(T)!=1) { for (int x = 0; x CImg& draw_rectangle(const int x0, const int y0, const int z0, const int x1, const int y1, const int z1, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_rectangle(): Specified color is (null).", cimg_instance); cimg_forC(*this,c) draw_rectangle(x0,y0,z0,c,x1,y1,z1,c,(T)color[c],opacity); return *this; } //! Draw an outlined 3d rectangle \overloading. template CImg& draw_rectangle(const int x0, const int y0, const int z0, const int x1, const int y1, const int z1, const tc *const color, const float opacity, const unsigned int pattern) { return draw_line(x0,y0,z0,x1,y0,z0,color,opacity,pattern,true). draw_line(x1,y0,z0,x1,y1,z0,color,opacity,pattern,false). draw_line(x1,y1,z0,x0,y1,z0,color,opacity,pattern,false). draw_line(x0,y1,z0,x0,y0,z0,color,opacity,pattern,false). draw_line(x0,y0,z1,x1,y0,z1,color,opacity,pattern,true). draw_line(x1,y0,z1,x1,y1,z1,color,opacity,pattern,false). draw_line(x1,y1,z1,x0,y1,z1,color,opacity,pattern,false). draw_line(x0,y1,z1,x0,y0,z1,color,opacity,pattern,false). draw_line(x0,y0,z0,x0,y0,z1,color,opacity,pattern,true). draw_line(x1,y0,z0,x1,y0,z1,color,opacity,pattern,true). draw_line(x1,y1,z0,x1,y1,z1,color,opacity,pattern,true). draw_line(x0,y1,z0,x0,y1,z1,color,opacity,pattern,true); } //! Draw a filled 2d rectangle. /** \param x0 X-coordinate of the upper-left rectangle corner. \param y0 Y-coordinate of the upper-left rectangle corner. \param x1 X-coordinate of the lower-right rectangle corner. \param y1 Y-coordinate of the lower-right rectangle corner. \param color Pointer to \c spectrum() consecutive values of type \c T, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_rectangle(const int x0, const int y0, const int x1, const int y1, const tc *const color, const float opacity=1) { return draw_rectangle(x0,y0,0,x1,y1,_depth-1,color,opacity); } //! Draw a outlined 2d rectangle \overloading. template CImg& draw_rectangle(const int x0, const int y0, const int x1, const int y1, const tc *const color, const float opacity, const unsigned int pattern) { if (is_empty()) return *this; if (y0==y1) return draw_line(x0,y0,x1,y0,color,opacity,pattern,true); if (x0==x1) return draw_line(x0,y0,x0,y1,color,opacity,pattern,true); const bool bx = (x0 CImg& draw_polygon(const CImg& points, const tc *const color, const float opacity=1) { if (is_empty() || !points) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_polygon(): Specified color is (null).", cimg_instance); // Normalize 2d input coordinates (remove adjacent duplicates). CImg npoints(points._width,2); unsigned int nb_points = 1, p = 0; int cx = npoints(0,0) = (int)points(0,0), cy = npoints(0,1) = (int)points(0,1); const int cx0 = cx, cy0 = cy; for (p = 1; p npoints_x = npoints.get_shared_row(0), npoints_y = npoints.get_shared_row(1); int xmax = 0, xmin = (int)npoints_x.min_max(xmax), ymax = 0, ymin = (int)npoints_y.min_max(ymax); if (xmax<0 || xmin>=width() || ymax<0 || ymin>=height()) return *this; if (ymin==ymax) return cimg_draw_scanline(xmin,xmax,ymin,color,opacity,1); const unsigned int nxmin = xmin<0?0:(unsigned int)xmin, nxmax = xmax>=width()?_width-1:(unsigned int)xmax, nymin = ymin<0?0:(unsigned int)ymin, nymax = ymax>=height()?_height-1:(unsigned int)ymax, dx = 1 + nxmax - nxmin, dy = 1 + nymax - nymin; npoints_x-=nxmin; npoints_y-=nymin; unsigned char one = 1; const CImg mask = CImg(dx,dy,1,1,0).draw_polygon(npoints,&one,1); CImg _color(dx,dy,1,spectrum()); cimg_forC(_color,c) _color.get_shared_channel(c).fill(color[c]); return draw_image(nxmin,nymin,0,0,_color,mask,opacity,1); } // Draw polygon segments. int xmax = 0, xmin = (int)npoints.get_shared_points(0,nb_points-1,0).min_max(xmax), ymax = 0, ymin = (int)npoints.get_shared_points(0,nb_points-1,1).min_max(ymax); if (xmax<0 || xmin>=width() || ymax<0 || ymin>=height()) return *this; if (ymin==ymax) return cimg_draw_scanline(xmin,xmax,ymin,color,1,1); const unsigned int nymin = ymin<0?0:(unsigned int)ymin, nymax = ymax>=height()?_height-1:(unsigned int)ymax, dy = 1 + nymax - nymin; CImg X(1+2*nb_points,dy,1,1,0), tmp; cx = (int)npoints(0,0), cy = (int)npoints(0,1); unsigned int cp = 0; for (unsigned int p = 0; pay && cy>ny))?1:0; for (int x = cx, y = y0, _sx = 1, _sy = 1, _dx = nx>cx?nx-cx:((_sx=-1),cx-nx), _dy = y1>y0?y1-y0:((_sy=-1),y0-y1), _counter = ((_dx-=_dy?_dy*(_dx/_dy):0),_dy), _err = _dx>>1, _rx = _dy?(nx-cx)/_dy:0; _counter>=countermin; --_counter, y+=_sy, x+=_rx + ((_err-=_dx)<0?_err+=_dy,_sx:0)) if (y>=0 && y<(int)dy) X(++X(0,y),y) = x; cp = np; cx = nx; cy = ny; } else { const int pp = (cp?cp-1:nb_points-1), py = (int)npoints(pp,1); if (y0>=0 && y0<(int)dy) { cimg_draw_scanline(cxpy && ay>cy) || (cy CImg& draw_polygon(const CImg& points, const tc *const color, const float opacity, const unsigned int pattern) { if (is_empty() || !points || points._width<3) return *this; bool ninit_hatch = true; switch (points._height) { case 0 : case 1 : throw CImgArgumentException(_cimg_instance "draw_polygon(): Invalid specified point set.", cimg_instance); case 2 : { // 2d version. CImg npoints(points._width,2); int x = npoints(0,0) = (int)points(0,0), y = npoints(0,1) = (int)points(0,1); unsigned int nb_points = 1; for (unsigned int p = 1; p npoints(points._width,3); int x = npoints(0,0) = (int)points(0,0), y = npoints(0,1) = (int)points(0,1), z = npoints(0,2) = (int)points(0,2); unsigned int nb_points = 1; for (unsigned int p = 1; p CImg& draw_ellipse(const int x0, const int y0, const float r1, const float r2, const float angle, const tc *const color, const float opacity=1) { return _draw_ellipse(x0,y0,r1,r2,angle,color,opacity,0U); } //! Draw a filled 2d ellipse \overloading. /** \param x0 X-coordinate of the ellipse center. \param y0 Y-coordinate of the ellipse center. \param tensor Diffusion tensor describing the ellipse. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_ellipse(const int x0, const int y0, const CImg &tensor, const tc *const color, const float opacity=1) { CImgList eig = tensor.get_symmetric_eigen(); const CImg &val = eig[0], &vec = eig[1]; return draw_ellipse(x0,y0,std::sqrt(val(0)),std::sqrt(val(1)), std::atan2(vec(0,1),vec(0,0))*180/cimg::PI, color,opacity); } //! Draw an outlined 2d ellipse. /** \param x0 X-coordinate of the ellipse center. \param y0 Y-coordinate of the ellipse center. \param r1 First radius of the ellipse. \param r2 Second radius of the ellipse. \param angle Angle of the first radius. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the outline pattern. **/ template CImg& draw_ellipse(const int x0, const int y0, const float r1, const float r2, const float angle, const tc *const color, const float opacity, const unsigned int pattern) { if (pattern) _draw_ellipse(x0,y0,r1,r2,angle,color,opacity,pattern); return *this; } //! Draw an outlined 2d ellipse \overloading. /** \param x0 X-coordinate of the ellipse center. \param y0 Y-coordinate of the ellipse center. \param tensor Diffusion tensor describing the ellipse. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern An integer whose bits describe the outline pattern. **/ template CImg& draw_ellipse(const int x0, const int y0, const CImg &tensor, const tc *const color, const float opacity, const unsigned int pattern) { CImgList eig = tensor.get_symmetric_eigen(); const CImg &val = eig[0], &vec = eig[1]; return draw_ellipse(x0,y0,std::sqrt(val(0)),std::sqrt(val(1)), std::atan2(vec(0,1),vec(0,0))*180/cimg::PI, color,opacity,pattern); } template CImg& _draw_ellipse(const int x0, const int y0, const float r1, const float r2, const float angle, const tc *const color, const float opacity, const unsigned int pattern) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_ellipse(): Specified color is (null).", cimg_instance); if (r1<=0 || r2<=0) return draw_point(x0,y0,color,opacity); cimg_init_scanline(color,opacity); const float nr1 = cimg::abs(r1), nr2 = cimg::abs(r2), nangle = (float)(angle*cimg::PI/180), u = (float)std::cos(nangle), v = (float)std::sin(nangle), rmax = cimg::max(nr1,nr2), l1 = (float)std::pow(rmax/(nr1>0?nr1:1e-6),2), l2 = (float)std::pow(rmax/(nr2>0?nr2:1e-6),2), a = l1*u*u + l2*v*v, b = u*v*(l1-l2), c = l1*v*v + l2*u*u; const int yb = (int)std::sqrt(a*rmax*rmax/(a*c - b*b)), tymin = y0 - yb - 1, tymax = y0 + yb + 1, ymin = tymin<0?0:tymin, ymax = tymax>=height()?height()-1:tymax; int oxmin = 0, oxmax = 0; bool first_line = true; for (int y = ymin; y<=ymax; ++y) { const float Y = y - y0 + (y0?(float)std::sqrt(delta)/a:0.0f, bY = b*Y/a, fxmin = x0 - 0.5f - bY - sdelta, fxmax = x0 + 0.5f - bY + sdelta; const int xmin = (int)fxmin, xmax = (int)fxmax; if (!pattern) cimg_draw_scanline(xmin,xmax,y,color,opacity,1); else { if (first_line) { if (y0-yb>=0) cimg_draw_scanline(xmin,xmax,y,color,opacity,1); else draw_point(xmin,y,color,opacity).draw_point(xmax,y,color,opacity); first_line = false; } else { if (xmin CImg& draw_circle(const int x0, const int y0, int radius, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_circle(): Specified color is (null).", cimg_instance); cimg_init_scanline(color,opacity); if (radius<0 || x0-radius>=width() || y0+radius<0 || y0-radius>=height()) return *this; if (y0>=0 && y0=0) { const int x1 = x0-x, x2 = x0+x, y1 = y0-y, y2 = y0+y; if (y1>=0 && y1=0 && y2=0 && y1=0 && y2 CImg& draw_circle(const int x0, const int y0, int radius, const tc *const color, const float opacity, const unsigned int pattern) { cimg::unused(pattern); if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_circle(): Specified color is (null).", cimg_instance); if (radius<0 || x0-radius>=width() || y0+radius<0 || y0-radius>=height()) return *this; if (!radius) return draw_point(x0,y0,color,opacity); draw_point(x0-radius,y0,color,opacity).draw_point(x0+radius,y0,color,opacity). draw_point(x0,y0-radius,color,opacity).draw_point(x0,y0+radius,color,opacity); if (radius==1) return *this; for (int f = 1-radius, ddFx = 0, ddFy = -(radius<<1), x = 0, y = radius; x=0) { f+=(ddFy+=2); --y; } ++x; ++(f+=(ddFx+=2)); if (x!=y+1) { const int x1 = x0-y, x2 = x0+y, y1 = y0-x, y2 = y0+x, x3 = x0-x, x4 = x0+x, y3 = y0-y, y4 = y0+y; draw_point(x1,y1,color,opacity).draw_point(x1,y2,color,opacity). draw_point(x2,y1,color,opacity).draw_point(x2,y2,color,opacity); if (x!=y) draw_point(x3,y3,color,opacity).draw_point(x4,y4,color,opacity). draw_point(x4,y3,color,opacity).draw_point(x3,y4,color,opacity); } } return *this; } //! Draw an image. /** \param sprite Sprite image. \param x0 X-coordinate of the sprite position. \param y0 Y-coordinate of the sprite position. \param z0 Z-coordinate of the sprite position. \param c0 C-coordinate of the sprite position. \param opacity Drawing opacity. **/ template CImg& draw_image(const int x0, const int y0, const int z0, const int c0, const CImg& sprite, const float opacity=1) { if (is_empty() || !sprite) return *this; if (is_overlapped(sprite)) return draw_image(x0,y0,z0,c0,+sprite,opacity); if (x0==0 && y0==0 && z0==0 && c0==0 && is_sameXYZC(sprite) && opacity>=1 && !is_shared()) return assign(sprite,false); const bool bx = (x0<0), by = (y0<0), bz = (z0<0), bc = (c0<0); const int lX = sprite.width() - (x0 + sprite.width()>width()?x0 + sprite.width() - width():0) + (bx?x0:0), lY = sprite.height() - (y0 + sprite.height()>height()?y0 + sprite.height() - height():0) + (by?y0:0), lZ = sprite.depth() - (z0 + sprite.depth()>depth()?z0 + sprite.depth() - depth():0) + (bz?z0:0), lC = sprite.spectrum() - (c0 + sprite.spectrum()>spectrum()?c0 + sprite.spectrum() - spectrum():0) + (bc?c0:0); const t *ptrs = sprite._data - (bx?x0:0) - (by?y0*sprite.width():0) - (bz?z0*sprite.width()*sprite.height():0) - (bc?c0*sprite.width()*sprite.height()*sprite.depth():0); const unsigned long offX = (unsigned long)_width - lX, soffX = (unsigned long)sprite._width - lX, offY = (unsigned long)_width*(_height - lY), soffY = (unsigned long)sprite._width*(sprite._height - lY), offZ = (unsigned long)_width*_height*(_depth - lZ), soffZ = (unsigned long)sprite._width*sprite._height*(sprite._depth - lZ); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (lX>0 && lY>0 && lZ>0 && lC>0) { T *ptrd = data(x0<0?0:x0,y0<0?0:y0,z0<0?0:z0,c0<0?0:c0); for (int v = 0; v=1) for (int x = 0; x& draw_image(const int x0, const int y0, const int z0, const int c0, const CImg& sprite, const float opacity=1) { if (is_empty() || !sprite) return *this; if (is_overlapped(sprite)) return draw_image(x0,y0,z0,c0,+sprite,opacity); if (x0==0 && y0==0 && z0==0 && c0==0 && is_sameXYZC(sprite) && opacity>=1 && !is_shared()) return assign(sprite,false); const bool bx = (x0<0), by = (y0<0), bz = (z0<0), bc = (c0<0); const int lX = sprite.width() - (x0 + sprite.width()>width()?x0 + sprite.width() - width():0) + (bx?x0:0), lY = sprite.height() - (y0 + sprite.height()>height()?y0 + sprite.height() - height():0) + (by?y0:0), lZ = sprite.depth() - (z0 + sprite.depth()>depth()?z0 + sprite.depth() - depth():0) + (bz?z0:0), lC = sprite.spectrum() - (c0 + sprite.spectrum()>spectrum()?c0 + sprite.spectrum() - spectrum():0) + (bc?c0:0); const T *ptrs = sprite._data - (bx?x0:0) - (by?y0*sprite.width():0) - (bz?z0*sprite.width()*sprite.height():0) - (bc?c0*sprite.width()*sprite.height()*sprite.depth():0); const unsigned long offX = (unsigned long)_width - lX, soffX = (unsigned long)sprite._width - lX, offY = (unsigned long)_width*(_height - lY), soffY = (unsigned long)sprite._width*(sprite._height - lY), offZ = (unsigned long)_width*_height*(_depth - lZ), soffZ = (unsigned long)sprite._width*sprite._height*(sprite._depth - lZ), slX = lX*sizeof(T); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); if (lX>0 && lY>0 && lZ>0 && lC>0) { T *ptrd = data(x0<0?0:x0,y0<0?0:y0,z0<0?0:z0,c0<0?0:c0); for (int v = 0; v=1) for (int y = 0; y CImg& draw_image(const int x0, const int y0, const int z0, const CImg& sprite, const float opacity=1) { return draw_image(x0,y0,z0,0,sprite,opacity); } //! Draw an image \overloading. template CImg& draw_image(const int x0, const int y0, const CImg& sprite, const float opacity=1) { return draw_image(x0,y0,0,sprite,opacity); } //! Draw an image \overloading. template CImg& draw_image(const int x0, const CImg& sprite, const float opacity=1) { return draw_image(x0,0,sprite,opacity); } //! Draw an image \overloading. template CImg& draw_image(const CImg& sprite, const float opacity=1) { return draw_image(0,sprite,opacity); } //! Draw a masked image. /** \param sprite Sprite image. \param mask Mask image. \param x0 X-coordinate of the sprite position in the image instance. \param y0 Y-coordinate of the sprite position in the image instance. \param z0 Z-coordinate of the sprite position in the image instance. \param c0 C-coordinate of the sprite position in the image instance. \param mask_max_value Maximum pixel value of the mask image \c mask. \param opacity Drawing opacity. \note - Pixel values of \c mask set the opacity of the corresponding pixels in \c sprite. - Dimensions along x,y and z of \p sprite and \p mask must be the same. **/ template CImg& draw_image(const int x0, const int y0, const int z0, const int c0, const CImg& sprite, const CImg& mask, const float opacity=1, const float mask_max_value=1) { if (is_empty() || !sprite || !mask) return *this; if (is_overlapped(sprite)) return draw_image(x0,y0,z0,c0,+sprite,mask,opacity,mask_max_value); if (is_overlapped(mask)) return draw_image(x0,y0,z0,c0,sprite,+mask,opacity,mask_max_value); if (mask._width!=sprite._width || mask._height!=sprite._height || mask._depth!=sprite._depth) throw CImgArgumentException(_cimg_instance "draw_image(): Sprite (%u,%u,%u,%u,%p) and mask (%u,%u,%u,%u,%p) have incompatible dimensions.", cimg_instance, sprite._width,sprite._height,sprite._depth,sprite._spectrum,sprite._data, mask._width,mask._height,mask._depth,mask._spectrum,mask._data); const bool bx = (x0<0), by = (y0<0), bz = (z0<0), bc = (c0<0); const int lX = sprite.width() - (x0 + sprite.width()>width()?x0 + sprite.width() - width():0) + (bx?x0:0), lY = sprite.height() - (y0 + sprite.height()>height()?y0 + sprite.height() - height():0) + (by?y0:0), lZ = sprite.depth() - (z0 + sprite.depth()>depth()?z0 + sprite.depth() - depth():0) + (bz?z0:0), lC = sprite.spectrum() - (c0 + sprite.spectrum()>spectrum()?c0 + sprite.spectrum() - spectrum():0) + (bc?c0:0); const int coff = -(bx?x0:0)-(by?y0*mask.width():0)-(bz?z0*mask.width()*mask.height():0)-(bc?c0*mask.width()*mask.height()*mask.depth():0), ssize = mask.width()*mask.height()*mask.depth()*mask.spectrum(); const ti *ptrs = sprite._data + coff; const tm *ptrm = mask._data + coff; const unsigned long offX = (unsigned long)_width - lX, soffX = (unsigned long)sprite._width - lX, offY = (unsigned long)_width*(_height - lY), soffY = (unsigned long)sprite._width*(sprite._height - lY), offZ = (unsigned long)_width*_height*(_depth - lZ), soffZ = (unsigned long)sprite._width*sprite._height*(sprite._depth - lZ); if (lX>0 && lY>0 && lZ>0 && lC>0) { T *ptrd = data(x0<0?0:x0,y0<0?0:y0,z0<0?0:z0,c0<0?0:c0); for (int c = 0; c CImg& draw_image(const int x0, const int y0, const int z0, const CImg& sprite, const CImg& mask, const float opacity=1, const float mask_max_value=1) { return draw_image(x0,y0,z0,0,sprite,mask,opacity,mask_max_value); } //! Draw a image \overloading. template CImg& draw_image(const int x0, const int y0, const CImg& sprite, const CImg& mask, const float opacity=1, const float mask_max_value=1) { return draw_image(x0,y0,0,sprite,mask,opacity,mask_max_value); } //! Draw a image \overloading. template CImg& draw_image(const int x0, const CImg& sprite, const CImg& mask, const float opacity=1, const float mask_max_value=1) { return draw_image(x0,0,sprite,mask,opacity,mask_max_value); } //! Draw an image. template CImg& draw_image(const CImg& sprite, const CImg& mask, const float opacity=1, const float mask_max_value=1) { return draw_image(0,sprite,mask,opacity,mask_max_value); } //! Draw a text string. /** \param x0 X-coordinate of the text in the image instance. \param y0 Y-coordinate of the text in the image instance. \param text Format of the text ('printf'-style format string). \param foreground_color Pointer to \c spectrum() consecutive values, defining the foreground drawing color. \param background_color Pointer to \c spectrum() consecutive values, defining the background drawing color. \param opacity Drawing opacity. \param font Font used for drawing text. **/ template CImg& draw_text(const int x0, const int y0, const char *const text, const tc1 *const foreground_color, const tc2 *const background_color, const float opacity, const CImgList& font, ...) { if (!font) return *this; char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); return _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,font); } //! Draw a text string \overloading. /** \note A transparent background is used for the text. **/ template CImg& draw_text(const int x0, const int y0, const char *const text, const tc *const foreground_color, const int, const float opacity, const CImgList& font, ...) { if (!font) return *this; char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); return _draw_text(x0,y0,tmp,foreground_color,(tc*)0,opacity,font); } //! Draw a text string \overloading. /** \note A transparent foreground is used for the text. **/ template CImg& draw_text(const int x0, const int y0, const char *const text, const int, const tc *const background_color, const float opacity, const CImgList& font, ...) { if (!font) return *this; char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); return _draw_text(x0,y0,tmp,(tc*)0,background_color,opacity,font); } //! Draw a text string \overloading. /** \param x0 X-coordinate of the text in the image instance. \param y0 Y-coordinate of the text in the image instance. \param text Format of the text ('printf'-style format string). \param foreground_color Array of spectrum() values of type \c T, defining the foreground color (0 means 'transparent'). \param background_color Array of spectrum() values of type \c T, defining the background color (0 means 'transparent'). \param opacity Drawing opacity. \param font_height Height of the text font (exact match for 13,24,32,57, interpolated otherwise). **/ template CImg& draw_text(const int x0, const int y0, const char *const text, const tc1 *const foreground_color, const tc2 *const background_color, const float opacity=1, const unsigned int font_height=13, ...) { if (!font_height) return *this; cimg::mutex(9); char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); static CImgList font; const unsigned int ref_height = font_height<=13?13:font_height<=28?24:font_height<=32?32:57, padding_x = font_height<=18?1:font_height<=32?2:3; if (!font || font[0]._height!=font_height) { font = CImgList::font(ref_height,true); font[0].assign(1,font_height); if (ref_height==font_height) cimglist_for(font,l) font[l].resize(font[l]._width + padding_x,-100,-100,-100,0); } if (is_empty()) { if (font[0]._spectrum!=1) cimglist_for_in(font,0,255,l) font[l].channel(0); } else if (font[0]._spectrum<_spectrum) cimglist_for_in(font,0,255,l) font[l].resize(-100,-100,1,_spectrum); if (ref_height!=font_height) for (const char *ptrs = tmp; *ptrs; ++ptrs) { const unsigned int __c = (unsigned int)(unsigned char)*ptrs, _c = (__c=='\t')?' ':__c; if (_c &c = font[_c]; if (c._height!=font_height) { c.resize(cimg::max(1U,c._width*font_height/c._height),font_height,-100,-100,c._height>font_height?2:3); c.resize(c._width + padding_x,-100,-100,-100,0); } } if (_c+256U &c = font[_c+256]; if (c._height!=font_height) { c.resize(cimg::max(1U,c._width*font_height/c._height),font_height,-100,-100,c._height>font_height?2:3); c.resize(c._width + padding_x,-100,-100,-100,0); } } } _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,font); cimg::mutex(9,0); return *this; } //! Draw a text string \overloading. template CImg& draw_text(const int x0, const int y0, const char *const text, const tc *const foreground_color, const int background_color=0, const float opacity=1, const unsigned int font_height=13, ...) { if (!font_height) return *this; cimg::unused(background_color); char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); return draw_text(x0,y0,"%s",foreground_color,(const tc*)0,opacity,font_height,tmp); } //! Draw a text string \overloading. template CImg& draw_text(const int x0, const int y0, const char *const text, const int, const tc *const background_color, const float opacity=1, const unsigned int font_height=13, ...) { if (!font_height) return *this; char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap); return draw_text(x0,y0,"%s",(tc*)0,background_color,opacity,font_height,tmp); } template CImg& _draw_text(const int x0, const int y0, const char *const text, const tc1 *const foreground_color, const tc2 *const background_color, const float opacity, const CImgList& font) { if (!text) return *this; if (!font) throw CImgArgumentException(_cimg_instance "draw_text(): Empty specified font.", cimg_instance); const unsigned int text_length = (unsigned int)std::strlen(text); if (is_empty()) { // If needed, pre-compute necessary size of the image int x = 0, y = 0, w = 0; unsigned char c = 0; for (unsigned int i = 0; iw) w = x; x = 0; break; case '\t' : x+=4*font[' ']._width; break; default : if (cw) w=x; y+=font[0]._height; } assign(x0+w,y0+y,1,font[0]._spectrum,0); if (background_color) cimg_forC(*this,c) get_shared_channel(c).fill((T)background_color[c]); } int x = x0, y = y0; CImg letter; for (unsigned int i = 0; i& mask = (c+256)<(int)font._width?font[c+256]:font[c]; if (foreground_color) for (unsigned long p = 0; p<(unsigned long)letter._width*letter._height; ++p) if (mask(p)) for (unsigned int c = 0; c=512) draw_image(x,y,letter,mask,opacity,(T)1); else draw_image(x,y,letter,opacity); x+=letter._width; } } } return *this; } //! Draw a 2d vector field. /** \param flow Image of 2d vectors used as input data. \param color Image of spectrum()-D vectors corresponding to the color of each arrow. \param opacity Drawing opacity. \param sampling Length (in pixels) between each arrow. \param factor Length factor of each arrow (if <0, computed as a percentage of the maximum length). \param is_arrow Tells if arrows must be drawn, instead of oriented segments. \param pattern Used pattern to draw lines. \note Clipping is supported. **/ template CImg& draw_quiver(const CImg& flow, const t2 *const color, const float opacity=1, const unsigned int sampling=25, const float factor=-20, const bool is_arrow=true, const unsigned int pattern=~0U) { return draw_quiver(flow,CImg(color,_spectrum,1,1,1,true),opacity,sampling,factor,is_arrow,pattern); } //! Draw a 2d vector field, using a field of colors. /** \param flow Image of 2d vectors used as input data. \param color Image of spectrum()-D vectors corresponding to the color of each arrow. \param opacity Opacity of the drawing. \param sampling Length (in pixels) between each arrow. \param factor Length factor of each arrow (if <0, computed as a percentage of the maximum length). \param is_arrow Tells if arrows must be drawn, instead of oriented segments. \param pattern Used pattern to draw lines. \note Clipping is supported. **/ template CImg& draw_quiver(const CImg& flow, const CImg& color, const float opacity=1, const unsigned int sampling=25, const float factor=-20, const bool is_arrow=true, const unsigned int pattern=~0U) { if (is_empty()) return *this; if (!flow || flow._spectrum!=2) throw CImgArgumentException(_cimg_instance "draw_quiver(): Invalid dimensions of specified flow (%u,%u,%u,%u,%p).", cimg_instance, flow._width,flow._height,flow._depth,flow._spectrum,flow._data); if (sampling<=0) throw CImgArgumentException(_cimg_instance "draw_quiver(): Invalid sampling value %g " "(should be >0)", cimg_instance, sampling); const bool colorfield = (color._width==flow._width && color._height==flow._height && color._depth==1 && color._spectrum==_spectrum); if (is_overlapped(flow)) return draw_quiver(+flow,color,opacity,sampling,factor,is_arrow,pattern); float vmax,fact; if (factor<=0) { float m, M = (float)flow.get_norm(2).max_min(m); vmax = (float)cimg::max(cimg::abs(m),cimg::abs(M)); if (!vmax) vmax = 1; fact = -factor; } else { fact = factor; vmax = 1; } for (unsigned int y = sampling/2; y<_height; y+=sampling) for (unsigned int x = sampling/2; x<_width; x+=sampling) { const unsigned int X = x*flow._width/_width, Y = y*flow._height/_height; float u = (float)flow(X,Y,0,0)*fact/vmax, v = (float)flow(X,Y,0,1)*fact/vmax; if (is_arrow) { const int xx = x+(int)u, yy = y+(int)v; if (colorfield) draw_arrow(x,y,xx,yy,color.get_vector_at(X,Y)._data,opacity,45,sampling/5.0f,pattern); else draw_arrow(x,y,xx,yy,color._data,opacity,45,sampling/5.0f,pattern); } else { if (colorfield) draw_line((int)(x-0.5*u),(int)(y-0.5*v),(int)(x+0.5*u),(int)(y+0.5*v),color.get_vector_at(X,Y)._data,opacity,pattern); else draw_line((int)(x-0.5*u),(int)(y-0.5*v),(int)(x+0.5*u),(int)(y+0.5*v),color._data,opacity,pattern); } } return *this; } //! Draw a labeled horizontal axis. /** \param values_x Values along the horizontal axis. \param y Y-coordinate of the horizontal axis in the image instance. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern Drawing pattern. \param font_height Height of the labels (exact match for 13,24,32,57, interpolated otherwise). \param allow_zero Enable/disable the drawing of label '0' if found. **/ template CImg& draw_axis(const CImg& values_x, const int y, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const unsigned int font_height=13, const bool allow_zero=true) { if (is_empty()) return *this; const int yt = (y+3+font_height)<_height?(y+3):(y-2-font_height); const int siz = (int)values_x.size()-1; char txt[32] = { 0 }; CImg label; if (siz<=0) { // Degenerated case. draw_line(0,y,_width-1,y,color,opacity,pattern); if (!siz) { cimg_snprintf(txt,sizeof(txt),"%g",(double)*values_x); label.assign().draw_text(0,0,txt,color,(tc*)0,opacity,font_height); const int _xt = (width() - label.width())/2, xt = _xt<3?3:_xt+label.width()>=width()-2?width()-3-label.width():_xt; draw_point(width()/2,y-1,color,opacity).draw_point(width()/2,y+1,color,opacity); if (allow_zero || txt[0]!='0' || txt[1]!=0) draw_text(xt,yt,txt,color,(tc*)0,opacity,font_height); } } else { // Regular case. if (values_x[0]=width()-2?width()-3-label.width():_xt; draw_point(xi,y-1,color,opacity).draw_point(xi,y+1,color,opacity); if (allow_zero || txt[0]!='0' || txt[1]!=0) draw_text(xt,yt,txt,color,(tc*)0,opacity,font_height); } } return *this; } //! Draw a labeled vertical axis. /** \param x X-coordinate of the vertical axis in the image instance. \param values_y Values along the Y-axis. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern Drawing pattern. \param font_height Height of the labels (exact match for 13,24,32,57, interpolated otherwise). \param allow_zero Enable/disable the drawing of label '0' if found. **/ template CImg& draw_axis(const int x, const CImg& values_y, const tc *const color, const float opacity=1, const unsigned int pattern=~0U, const unsigned int font_height=13, const bool allow_zero=true) { if (is_empty()) return *this; int siz = (int)values_y.size()-1; char txt[32] = { 0 }; CImg label; if (siz<=0) { // Degenerated case. draw_line(x,0,x,_height-1,color,opacity,pattern); if (!siz) { cimg_snprintf(txt,sizeof(txt),"%g",(double)*values_y); label.assign().draw_text(0,0,txt,color,(tc*)0,opacity,font_height); const int _yt = (height() - label.height())/2, yt = _yt<0?0:_yt+label.height()>=height()?height()-1-label.height():_yt, _xt = x - 2 - label.width(), xt = _xt>=0?_xt:x+3; draw_point(x-1,height()/2,color,opacity).draw_point(x+1,height()/2,color,opacity); if (allow_zero || txt[0]!='0' || txt[1]!=0) draw_text(xt,yt,txt,color,(tc*)0,opacity,font_height); } } else { // Regular case. if (values_y[0]=height()?height()-1-label.height():_yt, _xt = x - 2 - label.width(), xt = _xt>=0?_xt:x+3; draw_point(x-1,yi,color,opacity).draw_point(x+1,yi,color,opacity); if (allow_zero || txt[0]!='0' || txt[1]!=0) draw_text(xt,yt,txt,color,(tc*)0,opacity,font_height); } } return *this; } //! Draw labeled horizontal and vertical axes. /** \param values_x Values along the X-axis. \param values_y Values along the Y-axis. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern_x Drawing pattern for the X-axis. \param pattern_y Drawing pattern for the Y-axis. \param font_height Height of the labels (exact match for 13,24,32,57, interpolated otherwise). \param allow_zero Enable/disable the drawing of label '0' if found. **/ template CImg& draw_axes(const CImg& values_x, const CImg& values_y, const tc *const color, const float opacity=1, const unsigned int pattern_x=~0U, const unsigned int pattern_y=~0U, const unsigned int font_height=13, const bool allow_zero=true) { if (is_empty()) return *this; const CImg nvalues_x(values_x._data,values_x.size(),1,1,1,true); const int sizx = (int)values_x.size()-1, wm1 = width()-1; if (sizx>=0) { float ox = (float)*nvalues_x; for (unsigned int x = sizx?1:0; x<_width; ++x) { const float nx = (float)nvalues_x._linear_atX((float)x*sizx/wm1); if (nx*ox<=0) { draw_axis(nx==0?x:x-1,values_y,color,opacity,pattern_y,font_height,allow_zero); break; } ox = nx; } } const CImg nvalues_y(values_y._data,values_y.size(),1,1,1,true); const int sizy = (int)values_y.size()-1, hm1 = height()-1; if (sizy>0) { float oy = (float)nvalues_y[0]; for (unsigned int y = sizy?1:0; y<_height; ++y) { const float ny = (float)nvalues_y._linear_atX((float)y*sizy/hm1); if (ny*oy<=0) { draw_axis(values_x,ny==0?y:y-1,color,opacity,pattern_x,font_height,allow_zero); break; } oy = ny; } } return *this; } //! Draw labeled horizontal and vertical axes \overloading. template CImg& draw_axes(const float x0, const float x1, const float y0, const float y1, const tc *const color, const float opacity=1, const int subdivisionx=-60, const int subdivisiony=-60, const float precisionx=0, const float precisiony=0, const unsigned int pattern_x=~0U, const unsigned int pattern_y=~0U, const unsigned int font_height=13) { if (is_empty()) return *this; const bool allow_zero = (x0*x1>0) || (y0*y1>0); const float dx = cimg::abs(x1-x0), dy = cimg::abs(y1-y0), px = dx<=0?1:precisionx==0?(float)std::pow(10.0,(int)std::log10(dx)-2.0):precisionx, py = dy<=0?1:precisiony==0?(float)std::pow(10.0,(int)std::log10(dy)-2.0):precisiony; if (x0!=x1 && y0!=y1) draw_axes(CImg::sequence(subdivisionx>0?subdivisionx:1-width()/subdivisionx,x0,x1).round(px), CImg::sequence(subdivisiony>0?subdivisiony:1-height()/subdivisiony,y0,y1).round(py), color,opacity,pattern_x,pattern_y,font_height,allow_zero); else if (x0==x1 && y0!=y1) draw_axis((int)x0,CImg::sequence(subdivisiony>0?subdivisiony:1-height()/subdivisiony,y0,y1).round(py), color,opacity,pattern_y,font_height); else if (x0!=x1 && y0==y1) draw_axis(CImg::sequence(subdivisionx>0?subdivisionx:1-width()/subdivisionx,x0,x1).round(px),(int)y0, color,opacity,pattern_x,font_height); return *this; } //! Draw 2d grid. /** \param values_x X-coordinates of the vertical lines. \param values_y Y-coordinates of the horizontal lines. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param pattern_x Drawing pattern for vertical lines. \param pattern_y Drawing pattern for horizontal lines. **/ template CImg& draw_grid(const CImg& values_x, const CImg& values_y, const tc *const color, const float opacity=1, const unsigned int pattern_x=~0U, const unsigned int pattern_y=~0U) { if (is_empty()) return *this; if (values_x) cimg_foroff(values_x,x) { const int xi = (int)values_x[x]; if (xi>=0 && xi=0 && yi CImg& draw_grid(const float delta_x, const float delta_y, const float offsetx, const float offsety, const bool invertx, const bool inverty, const tc *const color, const float opacity=1, const unsigned int pattern_x=~0U, const unsigned int pattern_y=~0U) { if (is_empty()) return *this; CImg seqx, seqy; if (delta_x!=0) { const float dx = delta_x>0?delta_x:_width*-delta_x/100; const unsigned int nx = (unsigned int)(_width/dx); seqx = CImg::sequence(1+nx,0,(unsigned int)(dx*nx)); if (offsetx) cimg_foroff(seqx,x) seqx(x) = (unsigned int)cimg::mod(seqx(x)+offsetx,(float)_width); if (invertx) cimg_foroff(seqx,x) seqx(x) = _width - 1 - seqx(x); } if (delta_y!=0) { const float dy = delta_y>0?delta_y:_height*-delta_y/100; const unsigned int ny = (unsigned int)(_height/dy); seqy = CImg::sequence(1+ny,0,(unsigned int)(dy*ny)); if (offsety) cimg_foroff(seqy,y) seqy(y) = (unsigned int)cimg::mod(seqy(y)+offsety,(float)_height); if (inverty) cimg_foroff(seqy,y) seqy(y) = _height - 1 - seqy(y); } return draw_grid(seqx,seqy,color,opacity,pattern_x,pattern_y); } //! Draw 1d graph. /** \param data Image containing the graph values I = f(x). \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. \param plot_type Define the type of the plot: - 0 = No plot. - 1 = Plot using segments. - 2 = Plot using cubic splines. - 3 = Plot with bars. \param vertex_type Define the type of points: - 0 = No points. - 1 = Point. - 2 = Straight cross. - 3 = Diagonal cross. - 4 = Filled circle. - 5 = Outlined circle. - 6 = Square. - 7 = Diamond. \param ymin Lower bound of the y-range. \param ymax Upper bound of the y-range. \param pattern Drawing pattern. \note - if \c ymin==ymax==0, the y-range is computed automatically from the input samples. **/ template CImg& draw_graph(const CImg& data, const tc *const color, const float opacity=1, const unsigned int plot_type=1, const int vertex_type=1, const double ymin=0, const double ymax=0, const unsigned int pattern=~0U) { if (is_empty() || _height<=1) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_graph(): Specified color is (null).", cimg_instance); // Create shaded colors for displaying bar plots. CImg color1, color2; if (plot_type==3) { color1.assign(_spectrum); color2.assign(_spectrum); cimg_forC(*this,c) { color1[c] = (tc)cimg::min((float)cimg::type::max(),color[c]*1.2f); color2[c] = (tc)(color[c]*0.4f); } } // Compute min/max and normalization factors. const unsigned long siz = data.size(), _siz1 = siz - (plot_type!=3?1:0), siz1 = _siz1?_siz1:1; const unsigned int _width1 = _width - (plot_type!=3?1:0), width1 = _width1?_width1:1; double m = ymin, M = ymax; if (ymin==ymax) m = (double)data.max_min(M); if (m==M) { --m; ++M; } const float ca = (float)(M-m)/(_height-1); bool init_hatch = true; // Draw graph edges switch (plot_type%4) { case 1 : { // Segments int oX = 0, oY = (int)((data[0]-m)/ca); if (siz==1) { const int Y = (int)((*data-m)/ca); draw_line(0,Y,width()-1,Y,color,opacity,pattern); } else for (unsigned long off = 1; off ndata(data._data,siz,1,1,1,true); int oY = (int)((data[0]-m)/ca); cimg_forX(*this,x) { const int Y = (int)((ndata._cubic_atX((float)x*siz1/width1)-m)/ca); if (x>0) draw_line(x,oY,x+1,Y,color,opacity,pattern,init_hatch); init_hatch = false; oY = Y; } } break; case 3 : { // Bars const int Y0 = (int)(-m/ca); int oX = 0; cimg_foroff(data,off) { const int X = (off+1)*_width/siz-1, Y = (int)((data[off]-m)/ca); draw_rectangle(oX,Y0,X,Y,color,opacity). draw_line(oX,Y,oX,Y0,color2.data(),opacity). draw_line(oX,Y0,X,Y0,Y<=Y0?color2.data():color1.data(),opacity). draw_line(X,Y,X,Y0,color1.data(),opacity). draw_line(oX,Y,X,Y,Y<=Y0?color1.data():color2.data(),opacity); oX = X+1; } } break; default : break; // No edges } // Draw graph points const unsigned int wb2 = plot_type==3?_width1/(2*siz):0; switch (vertex_type%8) { case 1 : { // Point cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_point(X,Y,color,opacity); } } break; case 2 : { // Straight Cross cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_line(X-3,Y,X+3,Y,color,opacity).draw_line(X,Y-3,X,Y+3,color,opacity); } } break; case 3 : { // Diagonal Cross cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_line(X-3,Y-3,X+3,Y+3,color,opacity).draw_line(X-3,Y+3,X+3,Y-3,color,opacity); } } break; case 4 : { // Filled Circle cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_circle(X,Y,3,color,opacity); } } break; case 5 : { // Outlined circle cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_circle(X,Y,3,color,opacity,0U); } } break; case 6 : { // Square cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_rectangle(X-3,Y-3,X+3,Y+3,color,opacity,~0U); } } break; case 7 : { // Diamond cimg_foroff(data,off) { const int X = off*_width1/siz1 + wb2, Y = (int)((data[off]-m)/ca); draw_line(X,Y-4,X+4,Y,color,opacity). draw_line(X+4,Y,X,Y+4,color,opacity). draw_line(X,Y+4,X-4,Y,color,opacity). draw_line(X-4,Y,X,Y-4,color,opacity); } } break; default : break; // No points } return *this; } //! Draw filled 3d region with the flood fill algorithm. /** \param x X-coordinate of the starting point of the region to fill. \param y Y-coordinate of the starting point of the region to fill. \param z Z-coordinate of the starting point of the region to fill. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param[out] region Image that will contain the mask of the filled region mask, as an output. \param sigma Tolerance concerning neighborhood values. \param opacity Opacity of the drawing. \param is_high_connexity Tells if 8-connexity must be used (only for 2d images). \return \c region is initialized with the binary mask of the filled region. **/ template CImg& draw_fill(const int x, const int y, const int z, const tc *const color, const float opacity, CImg& region, const float sigma=0, const bool is_high_connexity=false) { #define _cimg_draw_fill_test(x,y,z,res) if (region(x,y,z)) res = false; else { \ res = true; \ const T *reference_col = reference_color._data + _spectrum, *ptrs = data(x,y,z) + siz; \ for (unsigned int i = _spectrum; res && i; --i) { ptrs-=whd; res = (cimg::abs(*ptrs - *(--reference_col))<=sigma); } \ region(x,y,z) = (t)(res?1:noregion); \ } #define _cimg_draw_fill_set(x,y,z) { \ const tc *col = color; \ T *ptrd = data(x,y,z); \ if (opacity>=1) cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=whd; } \ else cimg_forC(*this,c) { *ptrd = (T)(*(col++)*nopacity + *ptrd*copacity); ptrd+=whd; } \ } #define _cimg_draw_fill_insert(x,y,z) { \ if (posr1>=remaining._height) remaining.resize(3,remaining._height<<1,1,1,0); \ unsigned int *ptrr = remaining.data(0,posr1); \ *(ptrr++) = x; *(ptrr++) = y; *(ptrr++) = z; ++posr1; \ } #define _cimg_draw_fill_test_neighbor(x,y,z,cond) if (cond) { \ const unsigned int tx = x, ty = y, tz = z; \ _cimg_draw_fill_test(tx,ty,tz,res); if (res) _cimg_draw_fill_insert(tx,ty,tz); \ } if (!color) throw CImgArgumentException(_cimg_instance "draw_fill(): Specified color is (null).", cimg_instance); region.assign(_width,_height,_depth,1,(t)0); if (x>=0 && x=0 && y=0 && z1); const CImg reference_color = get_vector_at(x,y,z); CImg remaining(3,512,1,1,0); remaining(0,0) = x; remaining(1,0) = y; remaining(2,0) = z; unsigned int posr0 = 0, posr1 = 1; region(x,y,z) = (t)1; const t noregion = ((t)1==(t)2)?(t)0:(t)(-1); if (is_3d) do { // 3d version of the filling algorithm const unsigned int *pcurr = remaining.data(0,posr0++), xc = *(pcurr++), yc = *(pcurr++), zc = *(pcurr++); if (posr0>=512) { remaining.shift(0,-(int)posr0); posr1-=posr0; posr0 = 0; } bool cont, res; unsigned int nxc = xc; do { // X-backward _cimg_draw_fill_set(nxc,yc,zc); _cimg_draw_fill_test_neighbor(nxc,yc-1,zc,yc!=0); _cimg_draw_fill_test_neighbor(nxc,yc+1,zc,ycposr0); else do { // 2d version of the filling algorithm const unsigned int *pcurr = remaining.data(0,posr0++), xc = *(pcurr++), yc = *(pcurr++); if (posr0>=512) { remaining.shift(0,-(int)posr0); posr1-=posr0; posr0 = 0; } bool cont, res; unsigned int nxc = xc; do { // X-backward _cimg_draw_fill_set(nxc,yc,0); _cimg_draw_fill_test_neighbor(nxc,yc-1,0,yc!=0); _cimg_draw_fill_test_neighbor(nxc,yc+1,0,ycposr0); if (noregion) cimg_for(region,ptrd,t) if (*ptrd==noregion) *ptrd = (t)0; } return *this; } //! Draw filled 3d region with the flood fill algorithm \simplification. template CImg& draw_fill(const int x, const int y, const int z, const tc *const color, const float opacity=1, const float sigma=0, const bool is_high_connexity=false) { CImg tmp; return draw_fill(x,y,z,color,opacity,tmp,sigma,is_high_connexity); } //! Draw filled 2d region with the flood fill algorithm \simplification. template CImg& draw_fill(const int x, const int y, const tc *const color, const float opacity=1, const float sigma=0, const bool is_high_connexity=false) { CImg tmp; return draw_fill(x,y,0,color,opacity,tmp,sigma,is_high_connexity); } //! Draw a random plasma texture. /** \param alpha Alpha-parameter. \param beta Beta-parameter. \param scale Scale-parameter. \note Use the mid-point algorithm to render. **/ CImg& draw_plasma(const float alpha=1, const float beta=0, const unsigned int scale=8) { if (is_empty()) return *this; const int w = width(), h = height(); const Tfloat m = (Tfloat)cimg::type::min(), M = (Tfloat)cimg::type::max(); cimg_forZC(*this,z,c) { CImg ref = get_shared_slice(z,c); for (int d=1<1; d>>=1) { const int d2 = d>>1; const float r = alpha*d + beta; for (int y0=0; y0M?M:val); } for (int y=-d2; yM?M:val); } for (int y0=0; y0M?M:val); } for (int y=-d2; yM?M:val); } } } return *this; } //! Draw a quadratic Mandelbrot or Julia 2d fractal. /** \param x0 X-coordinate of the upper-left pixel. \param y0 Y-coordinate of the upper-left pixel. \param x1 X-coordinate of the lower-right pixel. \param y1 Y-coordinate of the lower-right pixel. \param colormap Colormap. \param opacity Drawing opacity. \param z0r Real part of the upper-left fractal vertex. \param z0i Imaginary part of the upper-left fractal vertex. \param z1r Real part of the lower-right fractal vertex. \param z1i Imaginary part of the lower-right fractal vertex. \param iteration_max Maximum number of iterations for each estimated point. \param is_normalized_iteration Tells if iterations are normalized. \param is_julia_set Tells if the Mandelbrot or Julia set is rendered. \param param_r Real part of the Julia set parameter. \param param_i Imaginary part of the Julia set parameter. \note Fractal rendering is done by the Escape Time Algorithm. **/ template CImg& draw_mandelbrot(const int x0, const int y0, const int x1, const int y1, const CImg& colormap, const float opacity=1, const double z0r=-2, const double z0i=-2, const double z1r=2, const double z1i=2, const unsigned int iteration_max=255, const bool is_normalized_iteration=false, const bool is_julia_set=false, const double param_r=0, const double param_i=0) { if (is_empty()) return *this; CImg palette; if (colormap) palette.assign(colormap._data,colormap.size()/colormap._spectrum,1,1,colormap._spectrum,true); if (palette && palette._spectrum!=_spectrum) throw CImgArgumentException(_cimg_instance "draw_mandelbrot(): Instance and specified colormap (%u,%u,%u,%u,%p) have incompatible dimensions.", cimg_instance, colormap._width,colormap._height,colormap._depth,colormap._spectrum,colormap._data); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0), ln2 = (float)std::log(2.0); unsigned int iteration = 0; cimg_for_inXY(*this,x0,y0,x1,y1,p,q) { const double x = z0r + p*(z1r-z0r)/_width, y = z0i + q*(z1i-z0i)/_height; double zr, zi, cr, ci; if (is_julia_set) { zr = x; zi = y; cr = param_r; ci = param_i; } else { zr = param_r; zi = param_i; cr = x; ci = y; } for (iteration=1; zr*zr + zi*zi<=4 && iteration<=iteration_max; ++iteration) { const double temp = zr*zr - zi*zi + cr; zi = 2*zr*zi + ci; zr = temp; } if (iteration>iteration_max) { if (palette) { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)palette(0,c); else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)(palette(0,c)*nopacity + (*this)(p,q,0,c)*copacity); } else { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)0; else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)((*this)(p,q,0,c)*copacity); } } else if (is_normalized_iteration) { const float normz = (float)cimg::abs(zr*zr+zi*zi), niteration = (float)(iteration + 1 - std::log(std::log(normz))/ln2); if (palette) { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)palette._linear_atX(niteration,c); else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)(palette._linear_atX(niteration,c)*nopacity + (*this)(p,q,0,c)*copacity); } else { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)niteration; else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)(niteration*nopacity + (*this)(p,q,0,c)*copacity); } } else { if (palette) { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)palette._atX(iteration,c); else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)(palette(iteration,c)*nopacity + (*this)(p,q,0,c)*copacity); } else { if (opacity>=1) cimg_forC(*this,c) (*this)(p,q,0,c) = (T)iteration; else cimg_forC(*this,c) (*this)(p,q,0,c) = (T)(iteration*nopacity + (*this)(p,q,0,c)*copacity); } } } return *this; } //! Draw a quadratic Mandelbrot or Julia 2d fractal \overloading. template CImg& draw_mandelbrot(const CImg& colormap, const float opacity=1, const double z0r=-2, const double z0i=-2, const double z1r=2, const double z1i=2, const unsigned int iteration_max=255, const bool is_normalized_iteration=false, const bool is_julia_set=false, const double param_r=0, const double param_i=0) { return draw_mandelbrot(0,0,_width-1,_height-1,colormap,opacity, z0r,z0i,z1r,z1i,iteration_max,is_normalized_iteration,is_julia_set,param_r,param_i); } //! Draw a 1d gaussian function. /** \param xc X-coordinate of the gaussian center. \param sigma Standard variation of the gaussian distribution. \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_gaussian(const float xc, const float sigma, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (!color) throw CImgArgumentException(_cimg_instance "draw_gaussian(): Specified color is (null).", cimg_instance); const float sigma2 = 2*sigma*sigma, nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const unsigned long whd = (unsigned long)_width*_height*_depth; const tc *col = color; cimg_forX(*this,x) { const float dx = (x - xc), val = (float)std::exp(-dx*dx/sigma2); T *ptrd = data(x,0,0,0); if (opacity>=1) cimg_forC(*this,c) { *ptrd = (T)(val*(*col++)); ptrd+=whd; } else cimg_forC(*this,c) { *ptrd = (T)(nopacity*val*(*col++) + *ptrd*copacity); ptrd+=whd; } col-=_spectrum; } return *this; } //! Draw a 2d gaussian function. /** \param xc X-coordinate of the gaussian center. \param yc Y-coordinate of the gaussian center. \param tensor Covariance matrix (must be 2x2). \param color Pointer to \c spectrum() consecutive values, defining the drawing color. \param opacity Drawing opacity. **/ template CImg& draw_gaussian(const float xc, const float yc, const CImg& tensor, const tc *const color, const float opacity=1) { if (is_empty()) return *this; if (tensor._width!=2 || tensor._height!=2 || tensor._depth!=1 || tensor._spectrum!=1) throw CImgArgumentException(_cimg_instance "draw_gaussian(): Specified tensor (%u,%u,%u,%u,%p) is not a 2x2 matrix.", cimg_instance, tensor._width,tensor._height,tensor._depth,tensor._spectrum,tensor._data); if (!color) throw CImgArgumentException(_cimg_instance "draw_gaussian(): Specified color is (null).", cimg_instance); typedef typename CImg::Tfloat tfloat; const CImg invT = tensor.get_invert(), invT2 = (invT*invT)/(-2.0); const tfloat a = invT2(0,0), b = 2*invT2(1,0), c = invT2(1,1); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const unsigned long whd = (unsigned long)_width*_height*_depth; const tc *col = color; float dy = -yc; cimg_forY(*this,y) { float dx = -xc; cimg_forX(*this,x) { const float val = (float)std::exp(a*dx*dx + b*dx*dy + c*dy*dy); T *ptrd = data(x,y,0,0); if (opacity>=1) cimg_forC(*this,c) { *ptrd = (T)(val*(*col++)); ptrd+=whd; } else cimg_forC(*this,c) { *ptrd = (T)(nopacity*val*(*col++) + *ptrd*copacity); ptrd+=whd; } col-=_spectrum; ++dx; } ++dy; } return *this; } //! Draw a 2d gaussian function \overloading. template CImg& draw_gaussian(const int xc, const int yc, const float r1, const float r2, const float ru, const float rv, const tc *const color, const float opacity=1) { const double a = r1*ru*ru + r2*rv*rv, b = (r1-r2)*ru*rv, c = r1*rv*rv + r2*ru*ru; const CImg tensor(2,2,1,1, a,b,b,c); return draw_gaussian(xc,yc,tensor,color,opacity); } //! Draw a 2d gaussian function \overloading. template CImg& draw_gaussian(const float xc, const float yc, const float sigma, const tc *const color, const float opacity=1) { return draw_gaussian(xc,yc,CImg::diagonal(sigma,sigma),color,opacity); } //! Draw a 3d gaussian function \overloading. template CImg& draw_gaussian(const float xc, const float yc, const float zc, const CImg& tensor, const tc *const color, const float opacity=1) { if (is_empty()) return *this; typedef typename CImg::Tfloat tfloat; if (tensor._width!=3 || tensor._height!=3 || tensor._depth!=1 || tensor._spectrum!=1) throw CImgArgumentException(_cimg_instance "draw_gaussian(): Specified tensor (%u,%u,%u,%u,%p) is not a 3x3 matrix.", cimg_instance, tensor._width,tensor._height,tensor._depth,tensor._spectrum,tensor._data); const CImg invT = tensor.get_invert(), invT2 = (invT*invT)/(-2.0); const tfloat a = invT2(0,0), b = 2*invT2(1,0), c = 2*invT2(2,0), d = invT2(1,1), e = 2*invT2(2,1), f = invT2(2,2); const float nopacity = cimg::abs(opacity), copacity = 1 - cimg::max(opacity,0); const unsigned long whd = (unsigned long)_width*_height*_depth; const tc *col = color; cimg_forXYZ(*this,x,y,z) { const float dx = (x - xc), dy = (y - yc), dz = (z - zc), val = (float)std::exp(a*dx*dx + b*dx*dy + c*dx*dz + d*dy*dy + e*dy*dz + f*dz*dz); T *ptrd = data(x,y,z,0); if (opacity>=1) cimg_forC(*this,c) { *ptrd = (T)(val*(*col++)); ptrd+=whd; } else cimg_forC(*this,c) { *ptrd = (T)(nopacity*val*(*col++) + *ptrd*copacity); ptrd+=whd; } col-=_spectrum; } return *this; } //! Draw a 3d gaussian function \overloading. template CImg& draw_gaussian(const float xc, const float yc, const float zc, const float sigma, const tc *const color, const float opacity=1) { return draw_gaussian(xc,yc,zc,CImg::diagonal(sigma,sigma,sigma),color,opacity); } //! Draw a 3d object. /** \param x0 X-coordinate of the 3d object position \param y0 Y-coordinate of the 3d object position \param z0 Z-coordinate of the 3d object position \param vertices Image Nx3 describing 3d point coordinates \param primitives List of P primitives \param colors List of P color (or textures) \param opacities Image or list of P opacities \param render_type d Render type (0=Points, 1=Lines, 2=Faces (no light), 3=Faces (flat), 4=Faces(Gouraud) \param is_double_sided Tells if object faces have two sides or are oriented. \param focale length of the focale (0 for parallel projection) \param lightx X-coordinate of the light \param lighty Y-coordinate of the light \param lightz Z-coordinate of the light \param specular_lightness Amount of specular light. \param specular_shininess Shininess of the object **/ template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImg& opacities, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,opacities,render_type,is_double_sided,focale,lightx,lighty,lightz, specular_lightness,specular_shininess,CImg::empty()); } //! Draw a 3d object \simplification. template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImg& opacities, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return _draw_object3d(0,zbuffer,x0,y0,z0,vertices,primitives,colors,opacities, render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,1); } #ifdef cimg_use_board template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImg& opacities, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(board,x0,y0,z0,vertices,primitives,colors,opacities,render_type,is_double_sided,focale,lightx,lighty,lightz, specular_lightness,specular_shininess,CImg::empty()); } template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImg& opacities, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return _draw_object3d((void*)&board,zbuffer,x0,y0,z0,vertices,primitives,colors,opacities, render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,1); } #endif //! Draw a 3d object \simplification. template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImgList& opacities, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,opacities,render_type,is_double_sided,focale,lightx,lighty,lightz, specular_lightness,specular_shininess,CImg::empty()); } //! Draw a 3d object \simplification. template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImgList& opacities, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return _draw_object3d(0,zbuffer,x0,y0,z0,vertices,primitives,colors,opacities, render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,1); } #ifdef cimg_use_board template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImgList& opacities, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(board,x0,y0,z0,vertices,primitives,colors,opacities,render_type,is_double_sided,focale,lightx,lighty,lightz, specular_lightness,specular_shininess,CImg::empty()); } template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImgList& opacities, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return _draw_object3d((void*)&board,zbuffer,x0,y0,z0,vertices,primitives,colors,opacities, render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,1); } #endif //! Draw a 3d object \simplification. template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,CImg::empty(), render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,CImg::empty()); } //! Draw a 3d object \simplification. template CImg& draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,CImg::empty(), render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,zbuffer); } #ifdef cimg_use_board template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const unsigned int render_type=4, const bool is_double_sided=false, const float focale=700, const float lightx=0, const float lighty=0, const float lightz=-5e8, const float specular_lightness=0.2f, const float specular_shininess=0.1f) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,CImg::empty(), render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,CImg::empty()); } template CImg& draw_object3d(LibBoard::Board& board, const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, CImg& zbuffer) { return draw_object3d(x0,y0,z0,vertices,primitives,colors,CImg::empty(), render_type,is_double_sided,focale,lightx,lighty,lightz,specular_lightness,specular_shininess,zbuffer); } #endif template static float __draw_object3d(const CImgList& opacities, const unsigned int n_primitive, CImg& opacity) { if (n_primitive>=opacities._width || opacities[n_primitive].is_empty()) { opacity.assign(); return 1; } if (opacities[n_primitive].size()==1) { opacity.assign(); return opacities(n_primitive,0); } opacity.assign(opacities[n_primitive],true); return 1.0f; } template static float __draw_object3d(const CImg& opacities, const unsigned int n_primitive, CImg& opacity) { opacity.assign(); return n_primitive>=opacities._width?1.0f:(float)opacities[n_primitive]; } template CImg& _draw_object3d(void *const pboard, CImg& zbuffer, const float X, const float Y, const float Z, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const to& opacities, const unsigned int render_type, const bool is_double_sided, const float focale, const float lightx, const float lighty, const float lightz, const float specular_lightness, const float specular_shininess, const float sprite_scale) { typedef typename cimg::superset2::type tpfloat; if (is_empty() || !vertices || !primitives) return *this; char error_message[1024] = { 0 }; if (!vertices.is_object3d(primitives,colors,opacities,false,error_message)) throw CImgArgumentException(_cimg_instance "draw_object3d(): Invalid specified 3d object (%u,%u) (%s).", cimg_instance,vertices._width,primitives._width,error_message); if (render_type==5) cimg::mutex(10); // Static variable used in this case, breaks thread-safety. #ifndef cimg_use_board if (pboard) return *this; #endif const float nspec = 1 - (specular_lightness<0.0f?0.0f:(specular_lightness>1.0f?1.0f:specular_lightness)), nspec2 = 1 + (specular_shininess<0.0f?0.0f:specular_shininess), nsl1 = (nspec2 - 1)/cimg::sqr(nspec - 1), nsl2 = 1 - 2*nsl1*nspec, nsl3 = nspec2 - nsl1 - nsl2; // Create light texture for phong-like rendering. CImg light_texture; if (render_type==5) { if (colors._width>primitives._width) { static CImg default_light_texture; static const tc *lptr = 0; static tc ref_values[64] = { 0 }; const CImg& img = colors.back(); bool is_same_texture = (lptr==img._data); if (is_same_texture) for (unsigned int r = 0, j = 0; j<8; ++j) for (unsigned int i = 0; i<8; ++i) if (ref_values[r++]!=img(i*img._width/9,j*img._height/9,0,(i+j)%img._spectrum)) { is_same_texture = false; break; } if (!is_same_texture || default_light_texture._spectrum<_spectrum) { (default_light_texture.assign(img,false)/=255).resize(-100,-100,1,_spectrum); lptr = colors.back().data(); for (unsigned int r = 0, j = 0; j<8; ++j) for (unsigned int i = 0; i<8; ++i) ref_values[r++] = img(i*img._width/9,j*img._height/9,0,(i+j)%img._spectrum); } light_texture.assign(default_light_texture,true); } else { static CImg default_light_texture; static float olightx = 0, olighty = 0, olightz = 0, ospecular_shininess = 0; if (!default_light_texture || lightx!=olightx || lighty!=olighty || lightz!=olightz || specular_shininess!=ospecular_shininess || default_light_texture._spectrum<_spectrum) { default_light_texture.assign(512,512); const float dlx = lightx - X, dly = lighty - Y, dlz = lightz - Z, nl = (float)std::sqrt(dlx*dlx + dly*dly + dlz*dlz), nlx = default_light_texture._width/2*(1 + dlx/nl), nly = default_light_texture._height/2*(1 + dly/nl), white[] = { 1 }; default_light_texture.draw_gaussian(nlx,nly,default_light_texture._width/3.0f,white); cimg_forXY(default_light_texture,x,y) { const float factor = default_light_texture(x,y); if (factor>nspec) default_light_texture(x,y) = cimg::min(2,nsl1*factor*factor + nsl2*factor + nsl3); } default_light_texture.resize(-100,-100,1,_spectrum); olightx = lightx; olighty = lighty; olightz = lightz; ospecular_shininess = specular_shininess; } light_texture.assign(default_light_texture,true); } } // Compute 3d to 2d projection. CImg projections(vertices._width,2); tpfloat parallzmin = cimg::type::max(); const float absfocale = focale?cimg::abs(focale):0; if (absfocale) cimg_forX(projections,l) { // Perspective projection const tpfloat x = (tpfloat)vertices(l,0), y = (tpfloat)vertices(l,1), z = (tpfloat)vertices(l,2); const tpfloat projectedz = z + Z + absfocale; projections(l,1) = Y + absfocale*y/projectedz; projections(l,0) = X + absfocale*x/projectedz; } else cimg_forX(projections,l) { // Parallel projection const tpfloat x = (tpfloat)vertices(l,0), y = (tpfloat)vertices(l,1), z = (tpfloat)vertices(l,2); if (z visibles(primitives._width); CImg zrange(primitives._width); unsigned int nb_visibles = 0; const tpfloat zmin = absfocale?(tpfloat)(1.5f - absfocale):cimg::type::min(); cimglist_for(primitives,l) { const CImg& primitive = primitives[l]; switch (primitive.size()) { case 1 : { // Point const unsigned int i0 = (unsigned int)primitive(0); const tpfloat z0 = Z + vertices(i0,2); if (z0>zmin) { visibles(nb_visibles) = (unsigned int)l; zrange(nb_visibles++) = z0; } } break; case 5 : { // Sphere const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); const tpfloat Xc = 0.5f*((float)vertices(i0,0) + (float)vertices(i1,0)), Yc = 0.5f*((float)vertices(i0,1) + (float)vertices(i1,1)), Zc = 0.5f*((float)vertices(i0,2) + (float)vertices(i1,2)), _zc = Z + Zc, zc = _zc + _focale, xc = X + Xc*(absfocale?absfocale/zc:1), yc = Y + Yc*(absfocale?absfocale/zc:1), radius = 0.5f*std::sqrt(cimg::sqr(vertices(i1,0) - vertices(i0,0)) + cimg::sqr(vertices(i1,1) - vertices(i0,1)) + cimg::sqr(vertices(i1,2) - vertices(i0,2)))*(absfocale?absfocale/zc:1), xm = xc - radius, ym = yc - radius, xM = xc + radius, yM = yc + radius; if (xM>=0 && xm<_width && yM>=0 && ym<_height && _zc>zmin) { visibles(nb_visibles) = (unsigned int)l; zrange(nb_visibles++) = _zc; } } break; case 2 : // Segment case 6 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1); const tpfloat x0 = projections(i0,0), y0 = projections(i0,1), z0 = Z + vertices(i0,2), x1 = projections(i1,0), y1 = projections(i1,1), z1 = Z + vertices(i1,2); tpfloat xm, xM, ym, yM; if (x0=0 && xm<_width && yM>=0 && ym<_height && z0>zmin && z1>zmin) { visibles(nb_visibles) = (unsigned int)l; zrange(nb_visibles++) = (z0 + z1)/2; } } break; case 3 : // Triangle case 9 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2); const tpfloat x0 = projections(i0,0), y0 = projections(i0,1), z0 = Z + vertices(i0,2), x1 = projections(i1,0), y1 = projections(i1,1), z1 = Z + vertices(i1,2), x2 = projections(i2,0), y2 = projections(i2,1), z2 = Z + vertices(i2,2); tpfloat xm, xM, ym, yM; if (x0xM) xM = x2; if (y0yM) yM = y2; if (xM>=0 && xm<_width && yM>=0 && ym<_height && z0>zmin && z1>zmin && z2>zmin) { const tpfloat d = (x1-x0)*(y2-y0) - (x2-x0)*(y1-y0); if (is_double_sided || d<0) { visibles(nb_visibles) = (unsigned int)l; zrange(nb_visibles++) = (z0 + z1 + z2)/3; } } } break; case 4 : // Rectangle case 12 : { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2), i3 = (unsigned int)primitive(3); const tpfloat x0 = projections(i0,0), y0 = projections(i0,1), z0 = Z + vertices(i0,2), x1 = projections(i1,0), y1 = projections(i1,1), z1 = Z + vertices(i1,2), x2 = projections(i2,0), y2 = projections(i2,1), z2 = Z + vertices(i2,2), x3 = projections(i3,0), y3 = projections(i3,1), z3 = Z + vertices(i3,2); tpfloat xm, xM, ym, yM; if (x0xM) xM = x2; if (x3xM) xM = x3; if (y0yM) yM = y2; if (y3yM) yM = y3; if (xM>=0 && xm<_width && yM>=0 && ym<_height && z0>zmin && z1>zmin && z2>zmin) { const float d = (x1 - x0)*(y2 - y0) - (x2 - x0)*(y1 - y0); if (is_double_sided || d<0) { visibles(nb_visibles) = (unsigned int)l; zrange(nb_visibles++) = (z0 + z1 + z2 + z3)/4; } } } break; default : throw CImgArgumentException(_cimg_instance "draw_object3d(): Invalid primitive[%u] with size %u " "(should have size 1,2,3,4,5,6,9 or 12).", cimg_instance, l,primitive.size()); } } if (nb_visibles<=0) return *this; CImg permutations; CImg(zrange._data,nb_visibles,1,1,1,true).sort(permutations,false); // Compute light properties CImg lightprops; switch (render_type) { case 3 : { // Flat Shading lightprops.assign(nb_visibles); cimg_forX(lightprops,l) { const CImg& primitive = primitives(visibles(permutations(l))); const unsigned int psize = primitive.size(); if (psize==3 || psize==4 || psize==9 || psize==12) { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2); const tpfloat x0 = (tpfloat)vertices(i0,0), y0 = (tpfloat)vertices(i0,1), z0 = (tpfloat)vertices(i0,2), x1 = (tpfloat)vertices(i1,0), y1 = (tpfloat)vertices(i1,1), z1 = (tpfloat)vertices(i1,2), x2 = (tpfloat)vertices(i2,0), y2 = (tpfloat)vertices(i2,1), z2 = (tpfloat)vertices(i2,2), dx1 = x1 - x0, dy1 = y1 - y0, dz1 = z1 - z0, dx2 = x2 - x0, dy2 = y2 - y0, dz2 = z2 - z0, nx = dy1*dz2 - dz1*dy2, ny = dz1*dx2 - dx1*dz2, nz = dx1*dy2 - dy1*dx2, norm = (tpfloat)std::sqrt(1e-5f + nx*nx + ny*ny + nz*nz), lx = X + (x0 + x1 + x2)/3 - lightx, ly = Y + (y0 + y1 + y2)/3 - lighty, lz = Z + (z0 + z1 + z2)/3 - lightz, nl = (tpfloat)std::sqrt(1e-5f + lx*lx + ly*ly + lz*lz), factor = cimg::max(cimg::abs(-lx*nx-ly*ny-lz*nz)/(norm*nl),0); lightprops[l] = factor<=nspec?factor:(nsl1*factor*factor + nsl2*factor + nsl3); } else lightprops[l] = 1; } } break; case 4 : // Gouraud Shading case 5 : { // Phong-Shading CImg vertices_normals(vertices._width,3,1,1,0); for (unsigned int l = 0; l& primitive = primitives[visibles(l)]; const unsigned int psize = primitive.size(); const bool triangle_flag = (psize==3) || (psize==9), rectangle_flag = (psize==4) || (psize==12); if (triangle_flag || rectangle_flag) { const unsigned int i0 = (unsigned int)primitive(0), i1 = (unsigned int)primitive(1), i2 = (unsigned int)primitive(2), i3 = rectangle_flag?(unsigned int)primitive(3):0; const tpfloat x0 = (tpfloat)vertices(i0,0), y0 = (tpfloat)vertices(i0,1), z0 = (tpfloat)vertices(i0,2), x1 = (tpfloat)vertices(i1,0), y1 = (tpfloat)vertices(i1,1), z1 = (tpfloat)vertices(i1,2), x2 = (tpfloat)vertices(i2,0), y2 = (tpfloat)vertices(i2,1), z2 = (tpfloat)vertices(i2,2), dx1 = x1 - x0, dy1 = y1 - y0, dz1 = z1 - z0, dx2 = x2 - x0, dy2 = y2 - y0, dz2 = z2 - z0, nnx = dy1*dz2 - dz1*dy2, nny = dz1*dx2 - dx1*dz2, nnz = dx1*dy2 - dy1*dx2, norm = (tpfloat)(1e-5f + std::sqrt(nnx*nnx + nny*nny + nnz*nnz)), nx = nnx/norm, ny = nny/norm, nz = nnz/norm; vertices_normals(i0,0)+=nx; vertices_normals(i0,1)+=ny; vertices_normals(i0,2)+=nz; vertices_normals(i1,0)+=nx; vertices_normals(i1,1)+=ny; vertices_normals(i1,2)+=nz; vertices_normals(i2,0)+=nx; vertices_normals(i2,1)+=ny; vertices_normals(i2,2)+=nz; if (rectangle_flag) { vertices_normals(i3,0)+=nx; vertices_normals(i3,1)+=ny; vertices_normals(i3,2)+=nz; } } } if (is_double_sided) cimg_forX(vertices_normals,p) if (vertices_normals(p,2)>0) { vertices_normals(p,0) = -vertices_normals(p,0); vertices_normals(p,1) = -vertices_normals(p,1); vertices_normals(p,2) = -vertices_normals(p,2); } if (render_type==4) { lightprops.assign(vertices._width); cimg_forX(lightprops,l) { const tpfloat nx = vertices_normals(l,0), ny = vertices_normals(l,1), nz = vertices_normals(l,2), norm = (tpfloat)std::sqrt(1e-5f + nx*nx + ny*ny + nz*nz), lx = X + vertices(l,0) - lightx, ly = Y + vertices(l,1) - lighty, lz = Z + vertices(l,2) - lightz, nl = (tpfloat)std::sqrt(1e-5f + lx*lx + ly*ly + lz*lz), factor = cimg::max((-lx*nx-ly*ny-lz*nz)/(norm*nl),0); lightprops[l] = factor<=nspec?factor:(nsl1*factor*factor + nsl2*factor + nsl3); } } else { const unsigned int lw2 = light_texture._width/2 - 1, lh2 = light_texture._height/2 - 1; lightprops.assign(vertices._width,2); cimg_forX(lightprops,l) { const tpfloat nx = vertices_normals(l,0), ny = vertices_normals(l,1), nz = vertices_normals(l,2), norm = (tpfloat)std::sqrt(1e-5f + nx*nx + ny*ny + nz*nz), nnx = nx/norm, nny = ny/norm; lightprops(l,0) = lw2*(1 + nnx); lightprops(l,1) = lh2*(1 + nny); } } } break; } // Draw visible primitives const CImg default_color(1,_spectrum,1,1,(tc)200); typedef typename to::value_type _to; CImg<_to> _opacity; for (unsigned int l = 0; l& primitive = primitives[n_primitive]; const CImg &__color = n_primitive(), _color = (__color && __color.size()!=_spectrum && __color._spectrum<_spectrum)?__color.get_resize(-100,-100,-100,_spectrum,0):CImg(), &color = _color?_color:(__color?__color:default_color); const tc *const pcolor = color._data; const float opacity = __draw_object3d(opacities,n_primitive,_opacity); #ifdef cimg_use_board LibBoard::Board &board = *(LibBoard::Board*)pboard; #endif switch (primitive.size()) { case 1 : { // Colored point or sprite const unsigned int n0 = (unsigned int)primitive[0]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1); if (_opacity.is_empty()) { // Scalar opacity. if (color.size()==_spectrum) { // Colored point. draw_point(x0,y0,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.fillCircle((float)x0,height()-(float)y0,0); } #endif } else { // Sprite. const tpfloat z = Z + vertices(n0,2); const float factor = focale<0?1:sprite_scale*(absfocale?absfocale/(z + absfocale):1); const unsigned int _sw = (unsigned int)(color._width*factor), _sh = (unsigned int)(color._height*factor), sw = _sw?_sw:1, sh = _sh?_sh:1; const int nx0 = x0 - (int)sw/2, ny0 = y0 - (int)sh/2; if (sw<=3*_width/2 && sh<=3*_height/2 && (nx0+(int)sw/2>=0 || nx0-(int)sw/2=0 || ny0-(int)sh/2 _sprite = (sw!=color._width || sh!=color._height)?color.get_resize(sw,sh,1,-100,render_type<=3?1:3):CImg(), &sprite = _sprite?_sprite:color; draw_image(nx0,ny0,sprite,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128); board.setFillColor(LibBoard::Color::None); board.drawRectangle((float)nx0,height()-(float)ny0,sw,sh); } #endif } } } else { // Opacity mask. const tpfloat z = Z + vertices(n0,2); const float factor = focale<0?1:sprite_scale*(absfocale?absfocale/(z + absfocale):1); const unsigned int _sw = (unsigned int)(cimg::max(color._width,_opacity._width)*factor), _sh = (unsigned int)(cimg::max(color._height,_opacity._height)*factor), sw = _sw?_sw:1, sh = _sh?_sh:1; const int nx0 = x0 - (int)sw/2, ny0 = y0 - (int)sh/2; if (sw<=3*_width/2 && sh<=3*_height/2 && (nx0+(int)sw/2>=0 || nx0-(int)sw/2=0 || ny0-(int)sh/2 _sprite = (sw!=color._width || sh!=color._height)?color.get_resize(sw,sh,1,-100,render_type<=3?1:3):CImg(), &sprite = _sprite?_sprite:color; const CImg<_to> _nopacity = (sw!=_opacity._width || sh!=_opacity._height)?_opacity.get_resize(sw,sh,1,-100,render_type<=3?1:3):CImg<_to>(), &nopacity = _nopacity?_nopacity:_opacity; draw_image(nx0,ny0,sprite,nopacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128); board.setFillColor(LibBoard::Color::None); board.drawRectangle((float)nx0,height()-(float)ny0,sw,sh); } #endif } } } break; case 2 : { // Colored line const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale; if (render_type) { if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,pcolor,opacity); else draw_line(x0,y0,x1,y1,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,x1,height()-(float)y1); } #endif } else { draw_point(x0,y0,pcolor,opacity).draw_point(x1,y1,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); } #endif } } break; case 5 : { // Colored sphere const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1]; const float Xc = 0.5f*((float)vertices(n0,0) + (float)vertices(n1,0)), Yc = 0.5f*((float)vertices(n0,1) + (float)vertices(n1,1)), Zc = 0.5f*((float)vertices(n0,2) + (float)vertices(n1,2)), zc = Z + Zc + _focale, xc = X + Xc*(absfocale?absfocale/zc:1), yc = Y + Yc*(absfocale?absfocale/zc:1), radius = 0.5f*std::sqrt(cimg::sqr(vertices(n1,0) - vertices(n0,0)) + cimg::sqr(vertices(n1,1) - vertices(n0,1)) + cimg::sqr(vertices(n1,2) - vertices(n0,2)))*(absfocale?absfocale/zc:1); switch (render_type) { case 0 : draw_point((int)xc,(int)yc,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.fillCircle(xc,height()-yc,0); } #endif break; case 1 : draw_circle((int)xc,(int)yc,(int)radius,pcolor,opacity,~0U); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.setFillColor(LibBoard::Color::None); board.drawCircle(xc,height()-yc,radius); } #endif break; default : draw_circle((int)xc,(int)yc,(int)radius,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.fillCircle(xc,height()-yc,radius); } #endif break; } } break; case 6 : { // Textured line if (!__color) throw CImgArgumentException(_cimg_instance "draw_object3d(): Undefined texture for line primitive [%u].", cimg_instance,n_primitive); const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1], tx0 = (unsigned int)primitive[2], ty0 = (unsigned int)primitive[3], tx1 = (unsigned int)primitive[4], ty1 = (unsigned int)primitive[5]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale; if (render_type) { if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,color,tx0,ty0,tx1,ty1,opacity); else draw_line(x0,y0,x1,y1,color,tx0,ty0,tx1,ty1,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,(float)x1,height()-(float)y1); } #endif } else { draw_point(x0,y0,color.get_vector_at(tx0,ty0)._data,opacity). draw_point(x1,y1,color.get_vector_at(tx1,ty1)._data,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); } #endif } } break; case 3 : { // Colored triangle const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1], n2 = (unsigned int)primitive[2]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1), x2 = (int)projections(n2,0), y2 = (int)projections(n2,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale, z2 = vertices(n2,2) + Z + _focale; switch (render_type) { case 0 : draw_point(x0,y0,pcolor,opacity).draw_point(x1,y1,pcolor,opacity).draw_point(x2,y2,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); board.drawCircle((float)x2,height()-(float)y2,0); } #endif break; case 1 : if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,pcolor,opacity).draw_line(zbuffer,x0,y0,z0,x2,y2,z2,pcolor,opacity). draw_line(zbuffer,x1,y1,z1,x2,y2,z2,pcolor,opacity); else draw_line(x0,y0,x1,y1,pcolor,opacity).draw_line(x0,y0,x2,y2,pcolor,opacity). draw_line(x1,y1,x2,y2,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,(float)x1,height()-(float)y1); board.drawLine((float)x0,height()-(float)y0,(float)x2,height()-(float)y2); board.drawLine((float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 2 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 3 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,opacity,lightprops(l)); else _draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,opacity,lightprops(l)); #ifdef cimg_use_board if (pboard) { const float lp = cimg::min(lightprops(l),1); board.setPenColorRGBi((unsigned char)(color[0]*lp), (unsigned char)(color[1]*lp), (unsigned char)(color[2]*lp), (unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 4 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,lightprops(n0),lightprops(n1),lightprops(n2),opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,lightprops(n0),lightprops(n1),lightprops(n2),opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi((unsigned char)(color[0]), (unsigned char)(color[1]), (unsigned char)(color[2]), (unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprops(n0), (float)x1,height()-(float)y1,lightprops(n1), (float)x2,height()-(float)y2,lightprops(n2)); } #endif break; case 5 : { const unsigned int lx0 = (unsigned int)lightprops(n0,0), ly0 = (unsigned int)lightprops(n0,1), lx1 = (unsigned int)lightprops(n1,0), ly1 = (unsigned int)lightprops(n1,1), lx2 = (unsigned int)lightprops(n2,0), ly2 = (unsigned int)lightprops(n2,1); if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity); #ifdef cimg_use_board if (pboard) { const float l0 = light_texture((int)(light_texture.width()/2*(1+lightprops(n0,0))), (int)(light_texture.height()/2*(1+lightprops(n0,1)))), l1 = light_texture((int)(light_texture.width()/2*(1+lightprops(n1,0))), (int)(light_texture.height()/2*(1+lightprops(n1,1)))), l2 = light_texture((int)(light_texture.width()/2*(1+lightprops(n2,0))), (int)(light_texture.height()/2*(1+lightprops(n2,1)))); board.setPenColorRGBi((unsigned char)(color[0]), (unsigned char)(color[1]), (unsigned char)(color[2]), (unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0, (float)x1,height()-(float)y1,l1, (float)x2,height()-(float)y2,l2); } #endif } break; } } break; case 4 : { // Colored rectangle const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1], n2 = (unsigned int)primitive[2], n3 = (unsigned int)primitive[3]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1), x2 = (int)projections(n2,0), y2 = (int)projections(n2,1), x3 = (int)projections(n3,0), y3 = (int)projections(n3,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale, z2 = vertices(n2,2) + Z + _focale, z3 = vertices(n3,2) + Z + _focale; switch (render_type) { case 0 : draw_point(x0,y0,pcolor,opacity).draw_point(x1,y1,pcolor,opacity). draw_point(x2,y2,pcolor,opacity).draw_point(x3,y3,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); board.drawCircle((float)x2,height()-(float)y2,0); board.drawCircle((float)x3,height()-(float)y3,0); } #endif break; case 1 : if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,pcolor,opacity).draw_line(zbuffer,x1,y1,z1,x2,y2,z2,pcolor,opacity). draw_line(zbuffer,x2,y2,z2,x3,y3,z3,pcolor,opacity).draw_line(zbuffer,x3,y3,z3,x0,y0,z0,pcolor,opacity); else draw_line(x0,y0,x1,y1,pcolor,opacity).draw_line(x1,y1,x2,y2,pcolor,opacity). draw_line(x2,y2,x3,y3,pcolor,opacity).draw_line(x3,y3,x0,y0,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,(float)x1,height()-(float)y1); board.drawLine((float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.drawLine((float)x2,height()-(float)y2,(float)x3,height()-(float)y3); board.drawLine((float)x3,height()-(float)y3,(float)x0,height()-(float)y0); } #endif break; case 2 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,opacity).draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,opacity).draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(color[0],color[1],color[2],(unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.fillTriangle((float)x0,height()-(float)y0,(float)x2,height()-(float)y2,(float)x3,height()-(float)y3); } #endif break; case 3 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,opacity,lightprops(l)). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,opacity,lightprops(l)); else _draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,opacity,lightprops(l)). _draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,opacity,lightprops(l)); #ifdef cimg_use_board if (pboard) { const float lp = cimg::min(lightprops(l),1); board.setPenColorRGBi((unsigned char)(color[0]*lp), (unsigned char)(color[1]*lp), (unsigned char)(color[2]*lp),(unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.fillTriangle((float)x0,height()-(float)y0,(float)x2,height()-(float)y2,(float)x3,height()-(float)y3); } #endif break; case 4 : { const float lightprop0 = lightprops(n0), lightprop1 = lightprops(n1), lightprop2 = lightprops(n2), lightprop3 = lightprops(n3); if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,lightprop0,lightprop2,lightprop3,opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,lightprop0,lightprop2,lightprop3,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi((unsigned char)(color[0]), (unsigned char)(color[1]), (unsigned char)(color[2]), (unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprop0, (float)x1,height()-(float)y1,lightprop1, (float)x2,height()-(float)y2,lightprop2); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprop0, (float)x2,height()-(float)y2,lightprop2, (float)x3,height()-(float)y3,lightprop3); } #endif } break; case 5 : { const unsigned int lx0 = (unsigned int)lightprops(n0,0), ly0 = (unsigned int)lightprops(n0,1), lx1 = (unsigned int)lightprops(n1,0), ly1 = (unsigned int)lightprops(n1,1), lx2 = (unsigned int)lightprops(n2,0), ly2 = (unsigned int)lightprops(n2,1), lx3 = (unsigned int)lightprops(n3,0), ly3 = (unsigned int)lightprops(n3,1); if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,pcolor,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); else draw_triangle(x0,y0,x1,y1,x2,y2,pcolor,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(x0,y0,x2,y2,x3,y3,pcolor,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); #ifdef cimg_use_board if (pboard) { const float l0 = light_texture((int)(light_texture.width()/2*(1+lx0)), (int)(light_texture.height()/2*(1+ly0))), l1 = light_texture((int)(light_texture.width()/2*(1+lx1)), (int)(light_texture.height()/2*(1+ly1))), l2 = light_texture((int)(light_texture.width()/2*(1+lx2)), (int)(light_texture.height()/2*(1+ly2))), l3 = light_texture((int)(light_texture.width()/2*(1+lx3)), (int)(light_texture.height()/2*(1+ly3))); board.setPenColorRGBi((unsigned char)(color[0]), (unsigned char)(color[1]), (unsigned char)(color[2]), (unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0, (float)x1,height()-(float)y1,l1, (float)x2,height()-(float)y2,l2); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0, (float)x2,height()-(float)y2,l2, (float)x3,height()-(float)y3,l3); } #endif } break; } } break; case 9 : { // Textured triangle if (!__color) throw CImgArgumentException(_cimg_instance "draw_object3d(): Undefined texture for triangle primitive [%u].", cimg_instance,n_primitive); const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1], n2 = (unsigned int)primitive[2], tx0 = (unsigned int)primitive[3], ty0 = (unsigned int)primitive[4], tx1 = (unsigned int)primitive[5], ty1 = (unsigned int)primitive[6], tx2 = (unsigned int)primitive[7], ty2 = (unsigned int)primitive[8]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1), x2 = (int)projections(n2,0), y2 = (int)projections(n2,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale, z2 = vertices(n2,2) + Z + _focale; switch (render_type) { case 0 : draw_point(x0,y0,color.get_vector_at(tx0,ty0)._data,opacity). draw_point(x1,y1,color.get_vector_at(tx1,ty1)._data,opacity). draw_point(x2,y2,color.get_vector_at(tx2,ty2)._data,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); board.drawCircle((float)x2,height()-(float)y2,0); } #endif break; case 1 : if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,color,tx0,ty0,tx1,ty1,opacity). draw_line(zbuffer,x0,y0,z0,x2,y2,z2,color,tx0,ty0,tx2,ty2,opacity). draw_line(zbuffer,x1,y1,z1,x2,y2,z2,color,tx1,ty1,tx2,ty2,opacity); else draw_line(x0,y0,z0,x1,y1,z1,color,tx0,ty0,tx1,ty1,opacity). draw_line(x0,y0,z0,x2,y2,z2,color,tx0,ty0,tx2,ty2,opacity). draw_line(x1,y1,z1,x2,y2,z2,color,tx1,ty1,tx2,ty2,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,(float)x1,height()-(float)y1); board.drawLine((float)x0,height()-(float)y0,(float)x2,height()-(float)y2); board.drawLine((float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 2 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 3 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity,lightprops(l)); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity,lightprops(l)); #ifdef cimg_use_board if (pboard) { const float lp = cimg::min(lightprops(l),1); board.setPenColorRGBi((unsigned char)(128*lp), (unsigned char)(128*lp), (unsigned char)(128*lp), (unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); } #endif break; case 4 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,lightprops(n0),lightprops(n1),lightprops(n2),opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,lightprops(n0),lightprops(n1),lightprops(n2),opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprops(n0), (float)x1,height()-(float)y1,lightprops(n1), (float)x2,height()-(float)y2,lightprops(n2)); } #endif break; case 5 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,light_texture, (unsigned int)lightprops(n0,0),(unsigned int)lightprops(n0,1), (unsigned int)lightprops(n1,0),(unsigned int)lightprops(n1,1), (unsigned int)lightprops(n2,0),(unsigned int)lightprops(n2,1), opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,light_texture, (unsigned int)lightprops(n0,0),(unsigned int)lightprops(n0,1), (unsigned int)lightprops(n1,0),(unsigned int)lightprops(n1,1), (unsigned int)lightprops(n2,0),(unsigned int)lightprops(n2,1), opacity); #ifdef cimg_use_board if (pboard) { const float l0 = light_texture((int)(light_texture.width()/2*(1+lightprops(n0,0))), (int)(light_texture.height()/2*(1+lightprops(n0,1)))), l1 = light_texture((int)(light_texture.width()/2*(1+lightprops(n1,0))), (int)(light_texture.height()/2*(1+lightprops(n1,1)))), l2 = light_texture((int)(light_texture.width()/2*(1+lightprops(n2,0))), (int)(light_texture.height()/2*(1+lightprops(n2,1)))); board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0,(float)x1,height()-(float)y1,l1,(float)x2,height()-(float)y2,l2); } #endif break; } } break; case 12 : { // Textured quadrangle if (!__color) throw CImgArgumentException(_cimg_instance "draw_object3d(): Undefined texture for quadrangle primitive [%u].", cimg_instance,n_primitive); const unsigned int n0 = (unsigned int)primitive[0], n1 = (unsigned int)primitive[1], n2 = (unsigned int)primitive[2], n3 = (unsigned int)primitive[3], tx0 = (unsigned int)primitive[4], ty0 = (unsigned int)primitive[5], tx1 = (unsigned int)primitive[6], ty1 = (unsigned int)primitive[7], tx2 = (unsigned int)primitive[8], ty2 = (unsigned int)primitive[9], tx3 = (unsigned int)primitive[10], ty3 = (unsigned int)primitive[11]; const int x0 = (int)projections(n0,0), y0 = (int)projections(n0,1), x1 = (int)projections(n1,0), y1 = (int)projections(n1,1), x2 = (int)projections(n2,0), y2 = (int)projections(n2,1), x3 = (int)projections(n3,0), y3 = (int)projections(n3,1); const float z0 = vertices(n0,2) + Z + _focale, z1 = vertices(n1,2) + Z + _focale, z2 = vertices(n2,2) + Z + _focale, z3 = vertices(n3,2) + Z + _focale; switch (render_type) { case 0 : draw_point(x0,y0,color.get_vector_at(tx0,ty0)._data,opacity). draw_point(x1,y1,color.get_vector_at(tx1,ty1)._data,opacity). draw_point(x2,y2,color.get_vector_at(tx2,ty2)._data,opacity). draw_point(x3,y3,color.get_vector_at(tx3,ty3)._data,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawCircle((float)x0,height()-(float)y0,0); board.drawCircle((float)x1,height()-(float)y1,0); board.drawCircle((float)x2,height()-(float)y2,0); board.drawCircle((float)x3,height()-(float)y3,0); } #endif break; case 1 : if (zbuffer) draw_line(zbuffer,x0,y0,z0,x1,y1,z1,color,tx0,ty0,tx1,ty1,opacity). draw_line(zbuffer,x1,y1,z1,x2,y2,z2,color,tx1,ty1,tx2,ty2,opacity). draw_line(zbuffer,x2,y2,z2,x3,y3,z3,color,tx2,ty2,tx3,ty3,opacity). draw_line(zbuffer,x3,y3,z3,x0,y0,z0,color,tx3,ty3,tx0,ty0,opacity); else draw_line(x0,y0,z0,x1,y1,z1,color,tx0,ty0,tx1,ty1,opacity). draw_line(x1,y1,z1,x2,y2,z2,color,tx1,ty1,tx2,ty2,opacity). draw_line(x2,y2,z2,x3,y3,z3,color,tx2,ty2,tx3,ty3,opacity). draw_line(x3,y3,z3,x0,y0,z0,color,tx3,ty3,tx0,ty0,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.drawLine((float)x0,height()-(float)y0,(float)x1,height()-(float)y1); board.drawLine((float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.drawLine((float)x2,height()-(float)y2,(float)x3,height()-(float)y3); board.drawLine((float)x3,height()-(float)y3,(float)x0,height()-(float)y0); } #endif break; case 2 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity). draw_triangle(x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.fillTriangle((float)x0,height()-(float)y0,(float)x2,height()-(float)y2,(float)x3,height()-(float)y3); } #endif break; case 3 : if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity,lightprops(l)). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,opacity,lightprops(l)); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,opacity,lightprops(l)). draw_triangle(x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,opacity,lightprops(l)); #ifdef cimg_use_board if (pboard) { const float lp = cimg::min(lightprops(l),1); board.setPenColorRGBi((unsigned char)(128*lp), (unsigned char)(128*lp), (unsigned char)(128*lp), (unsigned char)(opacity*255)); board.fillTriangle((float)x0,height()-(float)y0,(float)x1,height()-(float)y1,(float)x2,height()-(float)y2); board.fillTriangle((float)x0,height()-(float)y0,(float)x2,height()-(float)y2,(float)x3,height()-(float)y3); } #endif break; case 4 : { const float lightprop0 = lightprops(n0), lightprop1 = lightprops(n1), lightprop2 = lightprops(n2), lightprop3 = lightprops(n3); if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,lightprop0,lightprop2,lightprop3,opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,lightprop0,lightprop1,lightprop2,opacity). draw_triangle(x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,lightprop0,lightprop2,lightprop3,opacity); #ifdef cimg_use_board if (pboard) { board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprop0, (float)x1,height()-(float)y1,lightprop1, (float)x2,height()-(float)y2,lightprop2); board.fillGouraudTriangle((float)x0,height()-(float)y0,lightprop0, (float)x2,height()-(float)y2,lightprop2, (float)x3,height()-(float)y3,lightprop3); } #endif } break; case 5 : { const unsigned int lx0 = (unsigned int)lightprops(n0,0), ly0 = (unsigned int)lightprops(n0,1), lx1 = (unsigned int)lightprops(n1,0), ly1 = (unsigned int)lightprops(n1,1), lx2 = (unsigned int)lightprops(n2,0), ly2 = (unsigned int)lightprops(n2,1), lx3 = (unsigned int)lightprops(n3,0), ly3 = (unsigned int)lightprops(n3,1); if (zbuffer) draw_triangle(zbuffer,x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(zbuffer,x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); else draw_triangle(x0,y0,z0,x1,y1,z1,x2,y2,z2,color,tx0,ty0,tx1,ty1,tx2,ty2,light_texture,lx0,ly0,lx1,ly1,lx2,ly2,opacity). draw_triangle(x0,y0,z0,x2,y2,z2,x3,y3,z3,color,tx0,ty0,tx2,ty2,tx3,ty3,light_texture,lx0,ly0,lx2,ly2,lx3,ly3,opacity); #ifdef cimg_use_board if (pboard) { const float l0 = light_texture((int)(light_texture.width()/2*(1+lx0)), (int)(light_texture.height()/2*(1+ly0))), l1 = light_texture((int)(light_texture.width()/2*(1+lx1)), (int)(light_texture.height()/2*(1+ly1))), l2 = light_texture((int)(light_texture.width()/2*(1+lx2)), (int)(light_texture.height()/2*(1+ly2))), l3 = light_texture((int)(light_texture.width()/2*(1+lx3)), (int)(light_texture.height()/2*(1+ly3))); board.setPenColorRGBi(128,128,128,(unsigned char)(opacity*255)); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0, (float)x1,height()-(float)y1,l1, (float)x2,height()-(float)y2,l2); board.fillGouraudTriangle((float)x0,height()-(float)y0,l0, (float)x2,height()-(float)y2,l2, (float)x3,height()-(float)y3,l3); } #endif } break; } } break; } } if (render_type==5) cimg::mutex(10,0); return *this; } //@} //--------------------------- // //! \name Data Input //@{ //--------------------------- //! Launch simple interface to select a shape from an image. /** \param disp Display window to use. \param feature_type Type of feature to select. Can be { 0=point | 1=line | 2=rectangle | 3=ellipse }. \param XYZ Pointer to 3 values X,Y,Z which tells about the projection point coordinates, for volumetric images. **/ CImg& select(CImgDisplay &disp, const unsigned int feature_type=2, unsigned int *const XYZ=0) { return get_select(disp,feature_type,XYZ).move_to(*this); } //! Simple interface to select a shape from an image \overloading. CImg& select(const char *const title, const unsigned int feature_type=2, unsigned int *const XYZ=0) { return get_select(title,feature_type,XYZ).move_to(*this); } //! Simple interface to select a shape from an image \newinstance. CImg get_select(CImgDisplay &disp, const unsigned int feature_type=2, unsigned int *const XYZ=0) const { return _get_select(disp,0,feature_type,XYZ,0,0,0,true,false); } //! Simple interface to select a shape from an image \newinstance. CImg get_select(const char *const title, const unsigned int feature_type=2, unsigned int *const XYZ=0) const { CImgDisplay disp; return _get_select(disp,title,feature_type,XYZ,0,0,0,true,false); } CImg _get_select(CImgDisplay &disp, const char *const title, const unsigned int feature_type, unsigned int *const XYZ, const int origX, const int origY, const int origZ, const bool reset_view3d, const bool force_display_z_coord) const { if (is_empty()) return CImg(1,feature_type==0?3:6,1,1,-1); if (!disp) { disp.assign(cimg_fitscreen(_width,_height,_depth),title?title:0,1); if (!title) disp.set_title("CImg<%s> (%ux%ux%ux%u)",pixel_type(),_width,_height,_depth,_spectrum); } else if (title) disp.set_title("%s",title); const unsigned int old_normalization = disp.normalization(); bool old_is_resized = disp.is_resized(); disp._normalization = 0; disp.show().set_key(0).set_wheel(); unsigned char foreground_color[] = { 255,255,255 }, background_color[] = { 0,0,0 }; int area = 0, starting_area = 0, clicked_area = 0, phase = 0, X0 = (int)((XYZ?XYZ[0]:_width/2)%_width), Y0 = (int)((XYZ?XYZ[1]:_height/2)%_height), Z0 = (int)((XYZ?XYZ[2]:_depth/2)%_depth), X1 =-1, Y1 = -1, Z1 = -1, X = -1, Y = -1, Z = -1, X3d = -1, Y3d = -1, oX = X, oY = Y, oZ = Z, oX3d = X3d, oY3d = -1; unsigned int old_button = 0, key = 0; bool shape_selected = false, text_down = false; static CImg pose3d; static bool is_view3d = false; if (reset_view3d) { pose3d.assign(); is_view3d = false; } CImg points3d, opacities3d, sel_opacities3d; CImgList primitives3d, sel_primitives3d; CImgList colors3d, sel_colors3d; CImg visu, visu0, view3d; char text[1024] = { 0 }; while (!key && !disp.is_closed() && !shape_selected) { // Handle mouse motion and selection oX = X; oY = Y; oZ = Z; int mx = disp.mouse_x(), my = disp.mouse_y(); const int mX = mx<0?-1:mx*(width()+(depth()>1?depth():0))/disp.width(), mY = my<0?-1:my*(height()+(depth()>1?depth():0))/disp.height(); area = 0; if (mX>=0 && mY>=0 && mX=0 && mX=height()) { area = 2; X = mX; Z = mY - _height; Y = phase?Y1:Y0; } if (mY>=0 && mX>=width() && mY=width() && mY>=height()) area = 4; if (disp.button()) { if (!clicked_area) clicked_area = area; } else clicked_area = 0; switch (key = disp.key()) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : #endif case 0 : case cimg::keyCTRLLEFT : key = 0; break; case cimg::keyPAGEUP : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_wheel(1); key = 0; } break; case cimg::keyPAGEDOWN : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_wheel(-1); key = 0; } break; case cimg::keyD : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,false), CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,true),false). _is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyC : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1),false)._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyR : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(_width,_height,_depth),false)._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyF : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.resize(disp.screen_width(),disp.screen_height(),false).toggle_fullscreen()._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyV : is_view3d = !is_view3d; disp.set_key(key,false); key = 0; visu0.assign(); break; case cimg::keyS : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.bmp",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); if (visu0) { visu.draw_text(0,0," Saving snapshot... ",foreground_color,background_color,1,13).display(disp); visu0.save(filename); visu.draw_text(0,0," Snapshot '%s' saved. ",foreground_color,background_color,1,13,filename).display(disp); } disp.set_key(key,false); key = 0; } break; case cimg::keyO : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { #ifdef cimg_use_zlib cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimgz",snap_number++); #else cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimg",snap_number++); #endif if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving instance... ",foreground_color,background_color,1,13).display(disp); save(filename); visu.draw_text(0,0," Instance '%s' saved. ",foreground_color,background_color,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; } switch (area) { case 0 : // When mouse is out of image range. mx = my = X = Y = Z = -1; break; case 1 : case 2 : case 3 : // When mouse is over the XY,XZ or YZ projections. if (disp.button()&1 && phase<2 && clicked_area==area) { // When selection has been started (1st step). if (_depth>1 && (X1!=X || Y1!=Y || Z1!=Z)) visu0.assign(); X1 = X; Y1 = Y; Z1 = Z; } if (!(disp.button()&1) && phase>=2 && clicked_area!=area) { // When selection is at 2nd step (for volumes). switch (starting_area) { case 1 : if (Z1!=Z) visu0.assign(); Z1 = Z; break; case 2 : if (Y1!=Y) visu0.assign(); Y1 = Y; break; case 3 : if (X1!=X) visu0.assign(); X1 = X; break; } } if (disp.button()&2 && clicked_area==area) { // When moving through the image/volume. if (phase) { if (_depth>1 && (X1!=X || Y1!=Y || Z1!=Z)) visu0.assign(); X1 = X; Y1 = Y; Z1 = Z; } else { if (_depth>1 && (X0!=X || Y0!=Y || Z0!=Z)) visu0.assign(); X0 = X; Y0 = Y; Z0 = Z; } } if (disp.button()&4) { // Reset positions. oX = X = X0; oY = Y = Y0; oZ = Z = Z0; phase = area = clicked_area = starting_area = 0; visu0.assign(); } if (disp.wheel()) { // When moving through the slices of the volume (with mouse wheel). if (_depth>1 && !disp.is_keyCTRLLEFT() && !disp.is_keyCTRLRIGHT() && !disp.is_keySHIFTLEFT() && !disp.is_keySHIFTRIGHT() && !disp.is_keyALT() && !disp.is_keyALTGR()) { switch (area) { case 1 : if (phase) Z = (Z1+=disp.wheel()); else Z = (Z0+=disp.wheel()); visu0.assign(); break; case 2 : if (phase) Y = (Y1+=disp.wheel()); else Y = (Y0+=disp.wheel()); visu0.assign(); break; case 3 : if (phase) X = (X1+=disp.wheel()); else X = (X0+=disp.wheel()); visu0.assign(); break; } disp.set_wheel(); } else key = ~0U; } if ((disp.button()&1)!=old_button) { // When left button has just been pressed or released. switch (phase) { case 0 : if (area==clicked_area) { X0 = X1 = X; Y0 = Y1 = Y; Z0 = Z1 = Z; starting_area = area; ++phase; } break; case 1 : if (area==starting_area) { X1 = X; Y1 = Y; Z1 = Z; ++phase; } else if (!(disp.button()&1)) { oX = X = X0; oY = Y = Y0; oZ = Z = Z0; phase = 0; visu0.assign(); } break; case 2 : ++phase; break; } old_button = disp.button()&1; } break; case 4 : // When mouse is over the 3d view. if (is_view3d && points3d) { X3d = mx - _width*disp.width()/(_width+(_depth>1?_depth:0)); Y3d = my - _height*disp.height()/(_height+(_depth>1?_depth:0)); if (oX3d<0) { oX3d = X3d; oY3d = Y3d; } if ((disp.button()&3)==3) { pose3d.assign(); view3d.assign(); oX3d = oY3d = X3d = Y3d = -1; } // Left + right buttons: reset. else if (disp.button()&1 && pose3d && (oX3d!=X3d || oY3d!=Y3d)) { // Left button: rotate. const float R = 0.45f*cimg::min(view3d._width,view3d._height), R2 = R*R, u0 = (float)(oX3d-view3d.width()/2), v0 = (float)(oY3d-view3d.height()/2), u1 = (float)(X3d-view3d.width()/2), v1 = (float)(Y3d-view3d.height()/2), n0 = (float)std::sqrt(u0*u0+v0*v0), n1 = (float)std::sqrt(u1*u1+v1*v1), nu0 = n0>R?(u0*R/n0):u0, nv0 = n0>R?(v0*R/n0):v0, nw0 = (float)std::sqrt(cimg::max(0,R2-nu0*nu0-nv0*nv0)), nu1 = n1>R?(u1*R/n1):u1, nv1 = n1>R?(v1*R/n1):v1, nw1 = (float)std::sqrt(cimg::max(0,R2-nu1*nu1-nv1*nv1)), u = nv0*nw1 - nw0*nv1, v = nw0*nu1 - nu0*nw1, w = nv0*nu1 - nu0*nv1, n = (float)std::sqrt(u*u+v*v+w*w), alpha = (float)std::asin(n/R2); pose3d.draw_image(CImg::rotation_matrix(u,v,w,alpha)*pose3d.get_crop(0,0,2,2)); view3d.assign(); } else if (disp.button()&2 && pose3d && oY3d!=Y3d) { // Right button: zoom. pose3d(3,2)-=(oY3d - Y3d)*1.5f; view3d.assign(); } if (disp.wheel()) { // Wheel: zoom pose3d(3,2)-=disp.wheel()*15; view3d.assign(); disp.set_wheel(); } if (disp.button()&4 && pose3d && (oX3d!=X3d || oY3d!=Y3d)) { // Middle button: shift. pose3d(3,0)-=oX3d - X3d; pose3d(3,1)-=oY3d - Y3d; view3d.assign(); } oX3d = X3d; oY3d = Y3d; } mx = my = X = Y = Z = -1; break; } if (phase) { if (!feature_type) shape_selected = phase?true:false; else { if (_depth>1) shape_selected = (phase==3)?true:false; else shape_selected = (phase==2)?true:false; } } if (X0<0) X0 = 0; if (X0>=width()) X0 = width() - 1; if (Y0<0) Y0 = 0; if (Y0>=height()) Y0 = height() - 1; if (Z0<0) Z0 = 0; if (Z0>=depth()) Z0 = depth() - 1; if (X1<1) X1 = 0; if (X1>=width()) X1 = width() - 1; if (Y1<0) Y1 = 0; if (Y1>=height()) Y1 = height() - 1; if (Z1<0) Z1 = 0; if (Z1>=depth()) Z1 = depth() - 1; // Draw visualization image on the display if (oX!=X || oY!=Y || oZ!=Z || !visu0 || (_depth>1 && !view3d)) { if (!visu0) { // Create image of projected planes. CImg tmp, tmp0; if (_depth!=1) { tmp0 = get_projections2d(phase?X1:X0,phase?Y1:Y0,phase?Z1:Z0); tmp = tmp0.get_channels(0,cimg::min(2,spectrum() - 1)); } else tmp = get_channels(0,cimg::min(2,spectrum() - 1)); if (cimg::type::is_float()) { // Replace +-inf values. Tuchar m = cimg::type::max(), M = cimg::type::min(); bool is_inf = false; cimg_for(tmp,ptr,Tuchar) if (cimg::type::is_inf(*ptr)) is_inf = true; else if (*ptrM) M = *ptr; if (is_inf) { const Tuchar minf = m - (M-m)*20 - 1, pinf = M + (M-m)*20 + 1; cimg_for(tmp,ptr,Tuchar) if (cimg::type::is_inf(*ptr)) *ptr = (float)*ptr<0?minf:pinf; } } switch (old_normalization) { case 0 : tmp.move_to(visu0); break; case 1 : tmp.normalize(0,255).move_to(visu0); break; case 2 : { const float m = disp._min, M = disp._max; ((tmp-=m)*=255.0f/(M-m>0?M-m:1)).move_to(visu0); } case 3 : if (cimg::type::is_float()) (tmp.normalize(0,255)).move_to(visu0); else { const float m = (float)cimg::type::min(), M = (float)cimg::type::max(); ((tmp-=m)*=255.0f/(M-m)).move_to(visu0); } break; } visu0.resize(disp); view3d.assign(); points3d.assign(); } if (is_view3d && _depth>1 && !view3d) { // Create 3d view for volumetric images. const unsigned int _x3d = (unsigned int)cimg::round((float)_width*visu0._width/(_width+_depth),1,1), _y3d = (unsigned int)cimg::round((float)_height*visu0._height/(_height+_depth),1,1), x3d = _x3d>=visu0._width?visu0._width-1:_x3d, y3d = _y3d>=visu0._height?visu0._height-1:_y3d; CImg(1,2,1,1,64,128).resize(visu0._width-x3d,visu0._height-y3d,1,visu0._spectrum,3).move_to(view3d); if (!points3d) { get_projections3d(primitives3d,colors3d,phase?X1:X0,phase?Y1:Y0,phase?Z1:Z0,true).move_to(points3d); points3d.append(CImg(8,3,1,1, 0,_width-1,_width-1,0,0,_width-1,_width-1,0, 0,0,_height-1,_height-1,0,0,_height-1,_height-1, 0,0,0,0,_depth-1,_depth-1,_depth-1,_depth-1),'x'); CImg::vector(12,13).move_to(primitives3d); CImg::vector(13,14).move_to(primitives3d); CImg::vector(14,15).move_to(primitives3d); CImg::vector(15,12).move_to(primitives3d); CImg::vector(16,17).move_to(primitives3d); CImg::vector(17,18).move_to(primitives3d); CImg::vector(18,19).move_to(primitives3d); CImg::vector(19,16).move_to(primitives3d); CImg::vector(12,16).move_to(primitives3d); CImg::vector(13,17).move_to(primitives3d); CImg::vector(14,18).move_to(primitives3d); CImg::vector(15,19).move_to(primitives3d); colors3d.insert(12,CImg::vector(255,255,255)); opacities3d.assign(primitives3d.width(),1,1,1,0.5f); if (!phase) { opacities3d[0] = opacities3d[1] = opacities3d[2] = 0.8f; sel_primitives3d.assign(); sel_colors3d.assign(); sel_opacities3d.assign(); } else { if (feature_type==2) { points3d.append(CImg(8,3,1,1, X0,X1,X1,X0,X0,X1,X1,X0, Y0,Y0,Y1,Y1,Y0,Y0,Y1,Y1, Z0,Z0,Z0,Z0,Z1,Z1,Z1,Z1),'x'); sel_primitives3d.assign(); CImg::vector(20,21).move_to(sel_primitives3d); CImg::vector(21,22).move_to(sel_primitives3d); CImg::vector(22,23).move_to(sel_primitives3d); CImg::vector(23,20).move_to(sel_primitives3d); CImg::vector(24,25).move_to(sel_primitives3d); CImg::vector(25,26).move_to(sel_primitives3d); CImg::vector(26,27).move_to(sel_primitives3d); CImg::vector(27,24).move_to(sel_primitives3d); CImg::vector(20,24).move_to(sel_primitives3d); CImg::vector(21,25).move_to(sel_primitives3d); CImg::vector(22,26).move_to(sel_primitives3d); CImg::vector(23,27).move_to(sel_primitives3d); } else { points3d.append(CImg(2,3,1,1, X0,X1, Y0,Y1, Z0,Z1),'x'); sel_primitives3d.assign(CImg::vector(20,21)); } sel_colors3d.assign(sel_primitives3d._width,CImg::vector(255,255,255)); sel_opacities3d.assign(sel_primitives3d._width,1,1,1,0.8f); } points3d.shift_object3d(-0.5f*_width,-0.5f*_height,-0.5f*_depth).resize_object3d(); points3d*=0.75f*cimg::min(view3d._width,view3d._height); } if (!pose3d) CImg(4,3,1,1, 1,0,0,0, 0,1,0,0, 0,0,1,0).move_to(pose3d); CImg zbuffer3d(view3d._width,view3d._height,1,1,0); const CImg rotated_points3d = pose3d.get_crop(0,0,2,2)*points3d; if (sel_primitives3d) view3d.draw_object3d(pose3d(3,0) + 0.5f*view3d._width, pose3d(3,1) + 0.5f*view3d._height, pose3d(3,2), rotated_points3d,sel_primitives3d,sel_colors3d,sel_opacities3d, 2,true,500,0,0,0,0,0,zbuffer3d); view3d.draw_object3d(pose3d(3,0) + 0.5f*view3d._width, pose3d(3,1) + 0.5f*view3d._height, pose3d(3,2), rotated_points3d,primitives3d,colors3d,opacities3d, 2,true,500,0,0,0,0,0,zbuffer3d); visu0.draw_image(x3d,y3d,view3d); } visu = visu0; const int d = (_depth>1)?_depth:0; if (phase) switch (feature_type) { case 1 : { const int x0 = (int)((X0+0.5f)*disp.width()/(_width+d)), y0 = (int)((Y0+0.5f)*disp.height()/(_height+d)), x1 = (int)((X1+0.5f)*disp.width()/(_width+d)), y1 = (int)((Y1+0.5f)*disp.height()/(_height+d)); visu.draw_arrow(x0,y0,x1,y1,background_color,0.9f,30,5,0x55555555). draw_arrow(x0,y0,x1,y1,foreground_color,0.9f,30,5,0xAAAAAAAA); if (d) { const int zx0 = (int)((_width+Z0+0.5f)*disp.width()/(_width+d)), zx1 = (int)((_width+Z1+0.5f)*disp.width()/(_width+d)), zy0 = (int)((_height+Z0+0.5f)*disp.height()/(_height+d)), zy1 = (int)((_height+Z1+0.5f)*disp.height()/(_height+d)); visu.draw_arrow(zx0,y0,zx1,y1,foreground_color,0.9f,30,5,0x55555555). draw_arrow(x0,zy0,x1,zy1,foreground_color,0.9f,30,5,0x55555555). draw_arrow(zx0,y0,zx1,y1,foreground_color,0.9f,30,5,0xAAAAAAAA). draw_arrow(x0,zy0,x1,zy1,foreground_color,0.9f,30,5,0xAAAAAAAA); } } break; case 2 : { const int x0 = (X0=4 && y1-y0>=4) visu.draw_rectangle(x0,y0,x1,y1,background_color,0.2f). draw_rectangle(x0,y0,x1,y1,foreground_color,0.6f,~0U); if (_depth>1) { if (y1-y0>=4 && zx1-zx0>=4) visu.draw_rectangle(zx0,y0,zx1,y1,background_color,0.2f). draw_rectangle(zx0,y0,zx1,y1,foreground_color,0.6f,~0U); if (x1-x0>=4 && zy1-zy0>=4) visu.draw_rectangle(x0,zy0,x1,zy1,background_color,0.2f). draw_rectangle(x0,zy0,x1,zy1,foreground_color,0.6f,~0U); } } if (my>=0 && my<13) text_down = true; else if (my>=visu.height()-13) text_down = false; if (!feature_type || !phase) { if (X>=0 && Y>=0 && Z>=0 && X1 || force_display_z_coord) cimg_snprintf(text,sizeof(text)," Point (%d,%d,%d) = [ ",origX+X,origY+Y,origZ+Z); else cimg_snprintf(text,sizeof(text)," Point (%d,%d) = [ ",origX+X,origY+Y); char *ctext = text + std::strlen(text), *const ltext = text + 512; for (unsigned int c = 0; c<_spectrum && ctext::format(),cimg::type::format((*this)(X,Y,Z,c))); ctext = text + std::strlen(text); *(ctext++) = ' '; *ctext = 0; } std::strcpy(text + std::strlen(text),"] "); } } else switch (feature_type) { case 1 : { const double dX = (double)(X0 - X1), dY = (double)(Y0 - Y1), dZ = (double)(Z0 - Z1), norm = std::sqrt(dX*dX+dY*dY+dZ*dZ); if (_depth>1 || force_display_z_coord) cimg_snprintf(text,sizeof(text)," Vect (%d,%d,%d)-(%d,%d,%d), Norm = %g ", origX+X0,origY+Y0,origZ+Z0,origX+X1,origY+Y1,origZ+Z1,norm); else cimg_snprintf(text,sizeof(text)," Vect (%d,%d)-(%d,%d), Norm = %g ", origX+X0,origY+Y0,origX+X1,origY+Y1,norm); } break; case 2 : if (_depth>1 || force_display_z_coord) cimg_snprintf(text,sizeof(text)," Box (%d,%d,%d)-(%d,%d,%d), Size = (%d,%d,%d) ", origX+(X01 || force_display_z_coord) cimg_snprintf(text,sizeof(text)," Ellipse (%d,%d,%d)-(%d,%d,%d), Radii = (%d,%d,%d) ", origX+X0,origY+Y0,origZ+Z0,origX+X1,origY+Y1,origZ+Z1, 1+cimg::abs(X0-X1),1+cimg::abs(Y0-Y1),1+cimg::abs(Z0-Z1)); else cimg_snprintf(text,sizeof(text)," Ellipse (%d,%d)-(%d,%d), Radii = (%d,%d) ", origX+X0,origY+Y0,origX+X1,origY+Y1,1+cimg::abs(X0-X1),1+cimg::abs(Y0-Y1)); } if (phase || (mx>=0 && my>=0)) visu.draw_text(0,text_down?visu.height()-13:0,text,foreground_color,background_color,0.7f,13); disp.display(visu).wait(); } else if (!shape_selected) disp.wait(); if (disp.is_resized()) { disp.resize(false)._is_resized = false; old_is_resized = true; visu0.assign(); } } // Return result CImg res(1,feature_type==0?3:6,1,1,-1); if (XYZ) { XYZ[0] = (unsigned int)X0; XYZ[1] = (unsigned int)Y0; XYZ[2] = (unsigned int)Z0; } if (shape_selected) { if (feature_type==2) { if (X0>X1) cimg::swap(X0,X1); if (Y0>Y1) cimg::swap(Y0,Y1); if (Z0>Z1) cimg::swap(Z0,Z1); } if (X1<0 || Y1<0 || Z1<0) X0 = Y0 = Z0 = X1 = Y1 = Z1 = -1; switch (feature_type) { case 1 : case 2 : res[0] = X0; res[1] = Y0; res[2] = Z0; res[3] = X1; res[4] = Y1; res[5] = Z1; break; case 3 : res[3] = cimg::abs(X1-X0); res[4] = cimg::abs(Y1-Y0); res[5] = cimg::abs(Z1-Z0); // keep no break here! default : res[0] = X0; res[1] = Y0; res[2] = Z0; } } disp.set_button(); disp._normalization = old_normalization; disp._is_resized = old_is_resized; if (key!=~0U) disp.set_key(key); return res; } //! Select sub-graph in a graph. CImg get_select_graph(CImgDisplay &disp, const unsigned int plot_type=1, const unsigned int vertex_type=1, const char *const labelx=0, const double xmin=0, const double xmax=0, const char *const labely=0, const double ymin=0, const double ymax=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "select_graph(): Empty instance.", cimg_instance); if (!disp) disp.assign(cimg_fitscreen(640,480,1),0,0).set_title("CImg<%s>",pixel_type()); const unsigned long siz = (unsigned long)_width*_height*_depth; const unsigned int old_normalization = disp.normalization(); disp.show().set_button().set_wheel()._normalization = 0; double nymin = ymin, nymax = ymax, nxmin = xmin, nxmax = xmax; if (nymin==nymax) { nymin = (Tfloat)min_max(nymax); const double dy = nymax - nymin; nymin-=dy/20; nymax+=dy/20; } if (nymin==nymax) { --nymin; ++nymax; } if (nxmin==nxmax && nxmin==0) { nxmin = 0; nxmax = siz - 1.0; } const unsigned char black[] = { 0, 0, 0 }, white[] = { 255, 255, 255 }, gray[] = { 220, 220, 220 }; const unsigned char gray2[] = { 110, 110, 110 }, ngray[] = { 35, 35, 35 }; static unsigned int odimv = 0; static CImg colormap; if (odimv!=_spectrum) { odimv = _spectrum; colormap = CImg(3,_spectrum,1,1,120).noise(70,1); if (_spectrum==1) { colormap[0] = colormap[1] = 120; colormap[2] = 200; } else { colormap(0,0) = 220; colormap(1,0) = 10; colormap(2,0) = 10; if (_spectrum>1) { colormap(0,1) = 10; colormap(1,1) = 220; colormap(2,1) = 10; } if (_spectrum>2) { colormap(0,2) = 10; colormap(1,2) = 10; colormap(2,2) = 220; } } } CImg visu0, visu, graph, text, axes; int x0 = -1, x1 = -1, y0 = -1, y1 = -1, omouse_x = -2, omouse_y = -2; const unsigned int one = plot_type==3?0:1; unsigned int okey = 0, obutton = 0; char message[1024] = { 0 }; CImg_3x3(I,unsigned char); for (bool selected = false; !selected && !disp.is_closed() && !okey && !disp.wheel(); ) { const int mouse_x = disp.mouse_x(), mouse_y = disp.mouse_y(); const unsigned int key = disp.key(), button = disp.button(); // Generate graph representation. if (!visu0) { visu0.assign(disp.width(),disp.height(),1,3,220); const int gdimx = disp.width() - 32, gdimy = disp.height() - 32; if (gdimx>0 && gdimy>0) { graph.assign(gdimx,gdimy,1,3,255); if (siz<32) { if (siz>1) graph.draw_grid(gdimx/(float)(siz - one),gdimy/(float)(siz - one),0,0,false,true,black,0.2f,0x33333333,0x33333333); } else graph.draw_grid(-10,-10,0,0,false,true,black,0.2f,0x33333333,0x33333333); cimg_forC(*this,c) graph.draw_graph(get_shared_channel(c),&colormap(0,c),(plot_type!=3 || _spectrum==1)?1:0.6f, plot_type,vertex_type,nymax,nymin); axes.assign(gdimx,gdimy,1,1,0); const float dx = (float)cimg::abs(nxmax-nxmin), dy = (float)cimg::abs(nymax-nymin), px = (float)std::pow(10.0,(int)std::log10(dx?dx:1)-2.0), py = (float)std::pow(10.0,(int)std::log10(dy?dy:1)-2.0); const CImg seqx = dx<=0?CImg::vector(nxmin):CImg::sequence(1 + gdimx/60,nxmin,one?nxmax:nxmin+(nxmax-nxmin)*(siz+1)/siz).round(px), seqy = CImg::sequence(1 + gdimy/60,nymax,nymin).round(py); const bool allow_zero = (nxmin*nxmax>0) || (nymin*nymax>0); axes.draw_axes(seqx,seqy,white,1,~0U,~0U,13,allow_zero); if (nymin>0) axes.draw_axis(seqx,gdimy-1,gray,1,~0U,13,allow_zero); if (nymax<0) axes.draw_axis(seqx,0,gray,1,~0U,13,allow_zero); if (nxmin>0) axes.draw_axis(0,seqy,gray,1,~0U,13,allow_zero); if (nxmax<0) axes.draw_axis(gdimx-1,seqy,gray,1,~0U,13,allow_zero); cimg_for3x3(axes,x,y,0,0,I,unsigned char) if (Icc) { if (Icc==255) cimg_forC(graph,c) graph(x,y,c) = 0; else cimg_forC(graph,c) graph(x,y,c) = (unsigned char)(2*graph(x,y,c)/3); } else if (Ipc || Inc || Icp || Icn || Ipp || Inn || Ipn || Inp) cimg_forC(graph,c) graph(x,y,c) = (graph(x,y,c)+511)/3; visu0.draw_image(16,16,graph); visu0.draw_line(15,15,16+gdimx,15,gray2).draw_line(16+gdimx,15,16+gdimx,16+gdimy,gray2). draw_line(16+gdimx,16+gdimy,15,16+gdimy,white).draw_line(15,16+gdimy,15,15,white); } else graph.assign(); text.assign().draw_text(0,0,labelx?labelx:"X-axis",white,ngray,1,13).resize(-100,-100,1,3); visu0.draw_image((visu0.width()-text.width())/2,visu0.height()-14,~text); text.assign().draw_text(0,0,labely?labely:"Y-axis",white,ngray,1,13).rotate(-90).resize(-100,-100,1,3); visu0.draw_image(1,(visu0.height()-text.height())/2,~text); visu.assign(); } // Generate and display current view. if (!visu) { visu.assign(visu0); if (graph && x0>=0 && x1>=0) { const int nx0 = x0<=x1?x0:x1, nx1 = x0<=x1?x1:x0, ny0 = y0<=y1?y0:y1, ny1 = y0<=y1?y1:y0, sx0 = 16 + nx0*(visu.width()-32)/cimg::max(1U,siz-one), sx1 = 15 + (nx1+1)*(visu.width()-32)/cimg::max(1U,siz-one), sy0 = 16 + ny0, sy1 = 16 + ny1; if (y0>=0 && y1>=0) visu.draw_rectangle(sx0,sy0,sx1,sy1,gray,0.5f).draw_rectangle(sx0,sy0,sx1,sy1,black,0.5f,0xCCCCCCCCU); else visu.draw_rectangle(sx0,0,sx1,visu.height()-17,gray,0.5f). draw_line(sx0,16,sx0,visu.height()-17,black,0.5f,0xCCCCCCCCU). draw_line(sx1,16,sx1,visu.height()-17,black,0.5f,0xCCCCCCCCU); } if (mouse_x>=16 && mouse_y>=16 && mouse_x=7) cimg_snprintf(message,sizeof(message),"Value[%u:%g] = ( %g %g %g ... %g %g %g )",x,cx, (double)(*this)(x,0,0,0),(double)(*this)(x,0,0,1),(double)(*this)(x,0,0,2), (double)(*this)(x,0,0,_spectrum-4),(double)(*this)(x,0,0,_spectrum-3),(double)(*this)(x,0,0,_spectrum-1)); else { cimg_snprintf(message,sizeof(message),"Value[%u:%g] = ( ",x,cx); cimg_forC(*this,c) std::sprintf(message + std::strlen(message),"%g ",(double)(*this)(x,0,0,c)); std::sprintf(message + std::strlen(message),")"); } if (x0>=0 && x1>=0) { const unsigned int nx0 = x0<=x1?x0:x1, nx1 = x0<=x1?x1:x0, ny0 = y0<=y1?y0:y1, ny1 = y0<=y1?y1:y0; const double cx0 = nxmin + nx0*(nxmax-nxmin)/cimg::max(1U,siz-1), cx1 = nxmin + (nx1+one)*(nxmax-nxmin)/cimg::max(1U,siz-1), cy0 = nymax - ny0*(nymax-nymin)/(visu._height-32), cy1 = nymax - ny1*(nymax-nymin)/(visu._height-32); if (y0>=0 && y1>=0) std::sprintf(message + std::strlen(message)," - Range ( %u:%g, %g ) - ( %u:%g, %g )",x0,cx0,cy0,x1+one,cx1,cy1); else std::sprintf(message + std::strlen(message)," - Range [ %u:%g - %u:%g ]",x0,cx0,x1+one,cx1); } text.assign().draw_text(0,0,message,white,ngray,1,13).resize(-100,-100,1,3); visu.draw_image((visu.width()-text.width())/2,1,~text); } visu.display(disp); } // Test keys. switch (okey = key) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : case cimg::keySHIFTRIGHT : #endif case cimg::keyCTRLLEFT : case cimg::keySHIFTLEFT : okey = 0; break; case cimg::keyD : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,false), CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,true),false). _is_resized = true; disp.set_key(key,false); okey = 0; } break; case cimg::keyC : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1),false)._is_resized = true; disp.set_key(key,false); okey = 0; } break; case cimg::keyR : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(640,480,1),false)._is_resized = true; disp.set_key(key,false); okey = 0; } break; case cimg::keyF : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.resize(disp.screen_width(),disp.screen_height(),false).toggle_fullscreen()._is_resized = true; disp.set_key(key,false); okey = 0; } break; case cimg::keyS : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; if (visu || visu0) { CImg &screen = visu?visu:visu0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.bmp",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); (+screen).draw_text(0,0," Saving snapshot... ",black,gray,1,13).display(disp); screen.save(filename); screen.draw_text(0,0," Snapshot '%s' saved. ",black,gray,1,13,filename).display(disp); } disp.set_key(key,false); okey = 0; } break; case cimg::keyO : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; if (visu || visu0) { CImg &screen = visu?visu:visu0; char filename[32] = { 0 }; std::FILE *file; do { #ifdef cimg_use_zlib cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimgz",snap_number++); #else cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimg",snap_number++); #endif if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); (+screen).draw_text(0,0," Saving instance... ",black,gray,1,13).display(disp); save(filename); screen.draw_text(0,0," Instance '%s' saved. ",black,gray,1,13,filename).display(disp); } disp.set_key(key,false); okey = 0; } break; } // Handle mouse motion and mouse buttons if (obutton!=button || omouse_x!=mouse_x || omouse_y!=mouse_y) { visu.assign(); if (disp.mouse_x()>=0 && disp.mouse_y()>=0) { const int mx = (mouse_x -16)*(int)(siz-one)/(disp.width()-32), cx = mx<0?0:(mx>=(int)(siz-one)?(int)(siz-1-one):mx), my = mouse_y - 16, cy = my<=0?0:(my>=(disp.height()-32)?(disp.height()-32):my); if (button&1) { if (!obutton) { x0 = cx; y0 = -1; } else { x1 = cx; y1 = -1; } } else if (button&2) { if (!obutton) { x0 = cx; y0 = cy; } else { x1 = cx; y1 = cy; } } else if (obutton) { x1 = x1>=0?cx:-1; y1 = y1>=0?cy:-1; selected = true; } } else if (!button && obutton) selected = true; obutton = button; omouse_x = mouse_x; omouse_y = mouse_y; } if (disp.is_resized()) { disp.resize(false); visu0.assign(); } if (visu && visu0) disp.wait(); } disp._normalization = old_normalization; if (x1>=0 && x1(4,1,1,1,x0,y0,x1>=0?x1+(int)one:-1,y1); } //! Load image from a file. /** \param filename Filename, as a C-string. \note The extension of \c filename defines the file format. If no filename extension is provided, CImg::get_load() will try to load the file as a .cimg or .cimgz file. **/ CImg& load(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load(): Specified filename is (null).", cimg_instance); if (!cimg::strncasecmp(filename,"http://",7) || !cimg::strncasecmp(filename,"https://",8)) { char filename_local[1024] = { 0 }; load(cimg::load_network_external(filename,filename_local)); std::remove(filename_local); return *this; } const char *const ext = cimg::split_filename(filename); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { #ifdef cimg_load_plugin cimg_load_plugin(filename); #endif #ifdef cimg_load_plugin1 cimg_load_plugin1(filename); #endif #ifdef cimg_load_plugin2 cimg_load_plugin2(filename); #endif #ifdef cimg_load_plugin3 cimg_load_plugin3(filename); #endif #ifdef cimg_load_plugin4 cimg_load_plugin4(filename); #endif #ifdef cimg_load_plugin5 cimg_load_plugin5(filename); #endif #ifdef cimg_load_plugin6 cimg_load_plugin6(filename); #endif #ifdef cimg_load_plugin7 cimg_load_plugin7(filename); #endif #ifdef cimg_load_plugin8 cimg_load_plugin8(filename); #endif // Ascii formats if (!cimg::strcasecmp(ext,"asc")) load_ascii(filename); else if (!cimg::strcasecmp(ext,"dlm") || !cimg::strcasecmp(ext,"txt")) load_dlm(filename); // 2d binary formats else if (!cimg::strcasecmp(ext,"bmp")) load_bmp(filename); else if (!cimg::strcasecmp(ext,"jpg") || !cimg::strcasecmp(ext,"jpeg") || !cimg::strcasecmp(ext,"jpe") || !cimg::strcasecmp(ext,"jfif") || !cimg::strcasecmp(ext,"jif")) load_jpeg(filename); else if (!cimg::strcasecmp(ext,"png")) load_png(filename); else if (!cimg::strcasecmp(ext,"ppm") || !cimg::strcasecmp(ext,"pgm") || !cimg::strcasecmp(ext,"pnm") || !cimg::strcasecmp(ext,"pbm") || !cimg::strcasecmp(ext,"pnk")) load_pnm(filename); else if (!cimg::strcasecmp(ext,"pfm")) load_pfm(filename); else if (!cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff")) load_tiff(filename); else if (!cimg::strcasecmp(ext,"exr")) load_exr(filename); else if (!cimg::strcasecmp(ext,"cr2") || !cimg::strcasecmp(ext,"crw") || !cimg::strcasecmp(ext,"dcr") || !cimg::strcasecmp(ext,"mrw") || !cimg::strcasecmp(ext,"nef") || !cimg::strcasecmp(ext,"orf") || !cimg::strcasecmp(ext,"pix") || !cimg::strcasecmp(ext,"ptx") || !cimg::strcasecmp(ext,"raf") || !cimg::strcasecmp(ext,"srf")) load_dcraw_external(filename); else if (!cimg::strcasecmp(ext,"gif")) load_gif_external(filename); // 3d binary formats else if (!cimg::strcasecmp(ext,"dcm") || !cimg::strcasecmp(ext,"dicom")) load_medcon_external(filename); else if (!cimg::strcasecmp(ext,"hdr") || !cimg::strcasecmp(ext,"nii")) load_analyze(filename); else if (!cimg::strcasecmp(ext,"par") || !cimg::strcasecmp(ext,"rec")) load_parrec(filename); else if (!cimg::strcasecmp(ext,"mnc")) load_minc2(filename); else if (!cimg::strcasecmp(ext,"inr")) load_inr(filename); else if (!cimg::strcasecmp(ext,"pan")) load_pandore(filename); else if (!cimg::strcasecmp(ext,"cimg") || !cimg::strcasecmp(ext,"cimgz") || !*ext) return load_cimg(filename); // Archive files else if (!cimg::strcasecmp(ext,"gz")) load_gzip_external(filename); // Image sequences else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) load_ffmpeg(filename); else throw CImgIOException("CImg<%s>::load()", pixel_type()); } catch (CImgIOException&) { std::FILE *file = 0; try { file = cimg::fopen(filename,"rb"); } catch (CImgIOException&) { cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load(): Failed to open file '%s'.", cimg_instance, filename); } try { const char *const f_type = cimg::file_type(file,filename); std::fclose(file); if (!cimg::strcasecmp(f_type,"pnm")) load_pnm(filename); else if (!cimg::strcasecmp(f_type,"pfm")) load_pfm(filename); else if (!cimg::strcasecmp(f_type,"bmp")) load_bmp(filename); else if (!cimg::strcasecmp(f_type,"jpg")) load_jpeg(filename); else if (!cimg::strcasecmp(f_type,"pan")) load_pandore(filename); else if (!cimg::strcasecmp(f_type,"png")) load_png(filename); else if (!cimg::strcasecmp(f_type,"tif")) load_tiff(filename); else if (!cimg::strcasecmp(f_type,"inr")) load_inr(filename); else if (!cimg::strcasecmp(f_type,"dcm")) load_medcon_external(filename); else throw CImgIOException("CImg<%s>::load()", pixel_type()); } catch (CImgIOException&) { try { load_other(filename); } catch (CImgIOException&) { cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load(): Failed to recognize format of file '%s'.", cimg_instance, filename); } } } cimg::exception_mode() = omode; return *this; } //! Load image from a file \newinstance. static CImg get_load(const char *const filename) { return CImg().load(filename); } //! Load image from an ascii file. /** \param filename Filename, as a C -string. **/ CImg& load_ascii(const char *const filename) { return _load_ascii(0,filename); } //! Load image from an ascii file \inplace. static CImg get_load_ascii(const char *const filename) { return CImg().load_ascii(filename); } //! Load image from an ascii file \overloading. CImg& load_ascii(std::FILE *const file) { return _load_ascii(file,0); } //! Loadimage from an ascii file \newinstance. static CImg get_load_ascii(std::FILE *const file) { return CImg().load_ascii(file); } CImg& _load_ascii(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_ascii(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); char line[256] = { 0 }; int err = std::fscanf(nfile,"%255[^\n]",line); unsigned int dx = 0, dy = 1, dz = 1, dc = 1; std::sscanf(line,"%u%*c%u%*c%u%*c%u",&dx,&dy,&dz,&dc); err = std::fscanf(nfile,"%*[^0-9.eE+-]"); if (!dx || !dy || !dz || !dc) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_ascii(): Invalid ascii header in file '%s', image dimensions are set to (%u,%u,%u,%u).", cimg_instance, filename?filename:"(FILE*)",dx,dy,dz,dc); } assign(dx,dy,dz,dc); const unsigned long siz = size(); unsigned long off = 0; double val; T *ptr = _data; for (err = 1, off = 0; off& load_dlm(const char *const filename) { return _load_dlm(0,filename); } //! Load image from a DLM file \newinstance. static CImg get_load_dlm(const char *const filename) { return CImg().load_dlm(filename); } //! Load image from a DLM file \overloading. CImg& load_dlm(std::FILE *const file) { return _load_dlm(file,0); } //! Load image from a DLM file \newinstance. static CImg get_load_dlm(std::FILE *const file) { return CImg().load_dlm(file); } CImg& _load_dlm(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_dlm(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"r"); char delimiter[256] = { 0 }, tmp[256] = { 0 }; unsigned int cdx = 0, dx = 0, dy = 0; int err = 0; double val; assign(256,256); while ((err = std::fscanf(nfile,"%lf%255[^0-9.+-]",&val,delimiter))>0) { if (err>0) (*this)(cdx++,dy) = (T)val; if (cdx>=_width) resize(3*_width/2,_height,1,1,0); char c = 0; if (!std::sscanf(delimiter,"%255[^\n]%c",tmp,&c) || c=='\n') { dx = cimg::max(cdx,dx); if (++dy>=_height) resize(_width,3*_height/2,1,1,0); cdx = 0; } } if (cdx && err==1) { dx = cdx; ++dy; } if (!dx || !dy) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_dlm(): Invalid DLM file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } resize(dx,dy,1,1,0); if (!file) cimg::fclose(nfile); return *this; } //! Load image from a BMP file. /** \param filename Filename, as a C-string. **/ CImg& load_bmp(const char *const filename) { return _load_bmp(0,filename); } //! Load image from a BMP file \newinstance. static CImg get_load_bmp(const char *const filename) { return CImg().load_bmp(filename); } //! Load image from a BMP file \overloading. CImg& load_bmp(std::FILE *const file) { return _load_bmp(file,0); } //! Load image from a BMP file \newinstance. static CImg get_load_bmp(std::FILE *const file) { return CImg().load_bmp(file); } CImg& _load_bmp(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_bmp(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); unsigned char header[64] = { 0 }; cimg::fread(header,54,nfile); if (*header!='B' || header[1]!='M') { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_bmp(): Invalid BMP file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } // Read header and pixel buffer int file_size = header[0x02] + (header[0x03]<<8) + (header[0x04]<<16) + (header[0x05]<<24), offset = header[0x0A] + (header[0x0B]<<8) + (header[0x0C]<<16) + (header[0x0D]<<24), dx = header[0x12] + (header[0x13]<<8) + (header[0x14]<<16) + (header[0x15]<<24), dy = header[0x16] + (header[0x17]<<8) + (header[0x18]<<16) + (header[0x19]<<24), compression = header[0x1E] + (header[0x1F]<<8) + (header[0x20]<<16) + (header[0x21]<<24), nb_colors = header[0x2E] + (header[0x2F]<<8) + (header[0x30]<<16) + (header[0x31]<<24), bpp = header[0x1C] + (header[0x1D]<<8); if (!file_size || file_size==offset) { std::fseek(nfile,0,SEEK_END); file_size = (int)std::ftell(nfile); std::fseek(nfile,54,SEEK_SET); } const int cimg_iobuffer = 12*1024*1024, dx_bytes = (bpp==1)?(dx/8+(dx%8?1:0)):((bpp==4)?(dx/2+(dx%2?1:0)):(dx*bpp/8)), align_bytes = (4-dx_bytes%4)%4, buf_size = cimg::min(cimg::abs(dy)*(dx_bytes + align_bytes),file_size - offset); CImg colormap; if (bpp<16) { if (!nb_colors) nb_colors = 1<0) std::fseek(nfile,xoffset,SEEK_CUR); CImg buffer; if (buf_size=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } unsigned char mask = 0x80, val = 0; cimg_forX(*this,x) { if (mask==0x80) val = *(ptrs++); const unsigned char *col = (unsigned char*)(colormap._data + (val&mask?1:0)); (*this)(x,y,2) = (T)*(col++); (*this)(x,y,1) = (T)*(col++); (*this)(x,y,0) = (T)*(col++); mask = cimg::ror(mask); } ptrs+=align_bytes; } } break; case 4 : { // 16 colors for (int y = height()-1; y>=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } unsigned char mask = 0xF0, val = 0; cimg_forX(*this,x) { if (mask==0xF0) val = *(ptrs++); const unsigned char color = (unsigned char)((mask<16)?(val&mask):((val&mask)>>4)); const unsigned char *col = (unsigned char*)(colormap._data + color); (*this)(x,y,2) = (T)*(col++); (*this)(x,y,1) = (T)*(col++); (*this)(x,y,0) = (T)*(col++); mask = cimg::ror(mask,4); } ptrs+=align_bytes; } } break; case 8 : { // 256 colors for (int y = height()-1; y>=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } cimg_forX(*this,x) { const unsigned char *col = (unsigned char*)(colormap._data + *(ptrs++)); (*this)(x,y,2) = (T)*(col++); (*this)(x,y,1) = (T)*(col++); (*this)(x,y,0) = (T)*(col++); } ptrs+=align_bytes; } } break; case 16 : { // 16 bits colors for (int y = height()-1; y>=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } cimg_forX(*this,x) { const unsigned char c1 = *(ptrs++), c2 = *(ptrs++); const unsigned short col = (unsigned short)(c1|(c2<<8)); (*this)(x,y,2) = (T)(col&0x1F); (*this)(x,y,1) = (T)((col>>5)&0x1F); (*this)(x,y,0) = (T)((col>>10)&0x1F); } ptrs+=align_bytes; } } break; case 24 : { // 24 bits colors for (int y = height()-1; y>=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } cimg_forX(*this,x) { (*this)(x,y,2) = (T)*(ptrs++); (*this)(x,y,1) = (T)*(ptrs++); (*this)(x,y,0) = (T)*(ptrs++); } ptrs+=align_bytes; } } break; case 32 : { // 32 bits colors for (int y = height()-1; y>=0; --y) { if (buf_size>=cimg_iobuffer) { cimg::fread(ptrs=buffer._data,dx_bytes,nfile); std::fseek(nfile,align_bytes,SEEK_CUR); } cimg_forX(*this,x) { (*this)(x,y,2) = (T)*(ptrs++); (*this)(x,y,1) = (T)*(ptrs++); (*this)(x,y,0) = (T)*(ptrs++); ++ptrs; } ptrs+=align_bytes; } } break; } if (dy<0) mirror('y'); if (!file) cimg::fclose(nfile); return *this; } //! Load image from a JPEG file. /** \param filename Filename, as a C-string. **/ CImg& load_jpeg(const char *const filename) { return _load_jpeg(0,filename); } //! Load image from a JPEG file \newinstance. static CImg get_load_jpeg(const char *const filename) { return CImg().load_jpeg(filename); } //! Load image from a JPEG file \overloading. CImg& load_jpeg(std::FILE *const file) { return _load_jpeg(file,0); } //! Load image from a JPEG file \newinstance. static CImg get_load_jpeg(std::FILE *const file) { return CImg().load_jpeg(file); } // Custom error handler for libjpeg. #ifdef cimg_use_jpeg struct _cimg_error_mgr { struct jpeg_error_mgr original; jmp_buf setjmp_buffer; char message[JMSG_LENGTH_MAX]; }; typedef struct _cimg_error_mgr *_cimg_error_ptr; METHODDEF(void) _cimg_jpeg_error_exit(j_common_ptr cinfo) { _cimg_error_ptr c_err = (_cimg_error_ptr) cinfo->err; // Return control to the setjmp point (*cinfo->err->format_message)(cinfo,c_err->message); jpeg_destroy(cinfo); // Clean memory and temp files. longjmp(c_err->setjmp_buffer,1); } #endif CImg& _load_jpeg(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_jpeg(): Specified filename is (null).", cimg_instance); #ifndef cimg_use_jpeg if (file) throw CImgIOException(_cimg_instance "load_jpeg(): Unable to load data from '(FILE*)' unless libjpeg is enabled.", cimg_instance); else return load_other(filename); #else struct jpeg_decompress_struct cinfo; struct _cimg_error_mgr jerr; cinfo.err = jpeg_std_error(&jerr.original); jerr.original.error_exit = _cimg_jpeg_error_exit; if (setjmp(jerr.setjmp_buffer)) { // JPEG error throw CImgIOException(_cimg_instance "load_jpeg(): Error message returned by libjpeg: %s.", cimg_instance,jerr.message); } std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); jpeg_create_decompress(&cinfo); jpeg_stdio_src(&cinfo,nfile); jpeg_read_header(&cinfo,TRUE); jpeg_start_decompress(&cinfo); if (cinfo.output_components!=1 && cinfo.output_components!=3 && cinfo.output_components!=4) { if (!file) { cimg::fclose(nfile); return load_other(filename); } else throw CImgIOException(_cimg_instance "load_jpeg(): Failed to load JPEG data from file '%s'.", cimg_instance,filename?filename:"(FILE*)"); } CImg buffer(cinfo.output_width*cinfo.output_components); JSAMPROW row_pointer[1]; assign(cinfo.output_width,cinfo.output_height,1,cinfo.output_components); T *ptr_r = _data, *ptr_g = _data + 1UL*_width*_height, *ptr_b = _data + 2UL*_width*_height, *ptr_a = _data + 3UL*_width*_height; while (cinfo.output_scanline // This is experimental code, not much tested, use with care. CImg& load_magick(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_magick(): Specified filename is (null).", cimg_instance); #ifdef cimg_use_magick Magick::Image image(filename); const unsigned int W = image.size().width(), H = image.size().height(); switch (image.type()) { case Magick::PaletteMatteType : case Magick::TrueColorMatteType : case Magick::ColorSeparationType : { assign(W,H,1,4); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2), *ptr_a = data(0,0,0,3); Magick::PixelPacket *pixels = image.getPixels(0,0,W,H); for (unsigned long off = (unsigned long)W*H; off; --off) { *(ptr_r++) = (T)(pixels->red); *(ptr_g++) = (T)(pixels->green); *(ptr_b++) = (T)(pixels->blue); *(ptr_a++) = (T)(pixels->opacity); ++pixels; } } break; case Magick::PaletteType : case Magick::TrueColorType : { assign(W,H,1,3); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); Magick::PixelPacket *pixels = image.getPixels(0,0,W,H); for (unsigned long off = (unsigned long)W*H; off; --off) { *(ptr_r++) = (T)(pixels->red); *(ptr_g++) = (T)(pixels->green); *(ptr_b++) = (T)(pixels->blue); ++pixels; } } break; case Magick::GrayscaleMatteType : { assign(W,H,1,2); T *ptr_r = data(0,0,0,0), *ptr_a = data(0,0,0,1); Magick::PixelPacket *pixels = image.getPixels(0,0,W,H); for (unsigned long off = (unsigned long)W*H; off; --off) { *(ptr_r++) = (T)(pixels->red); *(ptr_a++) = (T)(pixels->opacity); ++pixels; } } break; default : { assign(W,H,1,1); T *ptr_r = data(0,0,0,0); Magick::PixelPacket *pixels = image.getPixels(0,0,W,H); for (unsigned long off = (unsigned long)W*H; off; --off) { *(ptr_r++) = (T)(pixels->red); ++pixels; } } } #else throw CImgIOException(_cimg_instance "load_magick(): Unable to load file '%s' unless libMagick++ is enabled.", cimg_instance, filename); #endif return *this; } //! Load image from a file, using Magick++ library \newinstance. static CImg get_load_magick(const char *const filename) { return CImg().load_magick(filename); } //! Load image from a PNG file. /** \param filename Filename, as a C-string. **/ CImg& load_png(const char *const filename) { return _load_png(0,filename); } //! Load image from a PNG file \newinstance. static CImg get_load_png(const char *const filename) { return CImg().load_png(filename); } //! Load image from a PNG file \overloading. CImg& load_png(std::FILE *const file) { return _load_png(file,0); } //! Load image from a PNG file \newinstance. static CImg get_load_png(std::FILE *const file) { return CImg().load_png(file); } // (Note: Most of this function has been written by Eric Fausett) CImg& _load_png(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_png(): Specified filename is (null).", cimg_instance); #ifndef cimg_use_png if (file) throw CImgIOException(_cimg_instance "load_png(): Unable to load data from '(FILE*)' unless libpng is enabled.", cimg_instance); else return load_other(filename); #else // Open file and check for PNG validity const char *volatile nfilename = filename; // two 'volatile' here to remove a g++ warning due to 'setjmp'. std::FILE *volatile nfile = file?file:cimg::fopen(nfilename,"rb"); unsigned char pngCheck[8] = { 0 }; cimg::fread(pngCheck,8,(std::FILE*)nfile); if (png_sig_cmp(pngCheck,0,8)) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_png(): Invalid PNG file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } // Setup PNG structures for read png_voidp user_error_ptr = 0; png_error_ptr user_error_fn = 0, user_warning_fn = 0; png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,user_error_ptr,user_error_fn,user_warning_fn); if (!png_ptr) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_png(): Failed to initialize 'png_ptr' structure for file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_infop info_ptr = png_create_info_struct(png_ptr); if (!info_ptr) { if (!file) cimg::fclose(nfile); png_destroy_read_struct(&png_ptr,(png_infopp)0,(png_infopp)0); throw CImgIOException(_cimg_instance "load_png(): Failed to initialize 'info_ptr' structure for file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_infop end_info = png_create_info_struct(png_ptr); if (!end_info) { if (!file) cimg::fclose(nfile); png_destroy_read_struct(&png_ptr,&info_ptr,(png_infopp)0); throw CImgIOException(_cimg_instance "load_png(): Failed to initialize 'end_info' structure for file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } // Error handling callback for png file reading if (setjmp(png_jmpbuf(png_ptr))) { if (!file) cimg::fclose((std::FILE*)nfile); png_destroy_read_struct(&png_ptr, &end_info, (png_infopp)0); throw CImgIOException(_cimg_instance "load_png(): Encountered unknown fatal error in libpng for file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_init_io(png_ptr, nfile); png_set_sig_bytes(png_ptr, 8); // Get PNG Header Info up to data block png_read_info(png_ptr,info_ptr); png_uint_32 W, H; int bit_depth, color_type, interlace_type; bool is_gray = false; png_get_IHDR(png_ptr,info_ptr,&W,&H,&bit_depth,&color_type,&interlace_type,(int*)0,(int*)0); // Transforms to unify image data if (color_type==PNG_COLOR_TYPE_PALETTE) { png_set_palette_to_rgb(png_ptr); color_type = PNG_COLOR_TYPE_RGB; bit_depth = 8; } if (color_type==PNG_COLOR_TYPE_GRAY && bit_depth<8) { png_set_expand_gray_1_2_4_to_8(png_ptr); is_gray = true; bit_depth = 8; } if (png_get_valid(png_ptr,info_ptr,PNG_INFO_tRNS)) { png_set_tRNS_to_alpha(png_ptr); color_type |= PNG_COLOR_MASK_ALPHA; } if (color_type==PNG_COLOR_TYPE_GRAY || color_type==PNG_COLOR_TYPE_GRAY_ALPHA) { png_set_gray_to_rgb(png_ptr); color_type |= PNG_COLOR_MASK_COLOR; is_gray = true; } if (color_type==PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,0xffffU,PNG_FILLER_AFTER); png_read_update_info(png_ptr,info_ptr); if (bit_depth!=8 && bit_depth!=16) { if (!file) cimg::fclose(nfile); png_destroy_read_struct(&png_ptr,&end_info,(png_infopp)0); throw CImgIOException(_cimg_instance "load_png(): Invalid bit depth %u in file '%s'.", cimg_instance, bit_depth,nfilename?nfilename:"(FILE*)"); } const int byte_depth = bit_depth>>3; // Allocate Memory for Image Read png_bytep *const imgData = new png_bytep[H]; for (unsigned int row = 0; row& load_pnm(const char *const filename) { return _load_pnm(0,filename); } //! Load image from a PNM file \newinstance. static CImg get_load_pnm(const char *const filename) { return CImg().load_pnm(filename); } //! Load image from a PNM file \overloading. CImg& load_pnm(std::FILE *const file) { return _load_pnm(file,0); } //! Load image from a PNM file \newinstance. static CImg get_load_pnm(std::FILE *const file) { return CImg().load_pnm(file); } CImg& _load_pnm(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_pnm(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); unsigned int ppm_type, W, H, D = 1, colormax = 255; CImg item(16384,1,1,1,0); int err, rval, gval, bval; const long cimg_iobuffer = 12*1024*1024; while ((err=std::fscanf(nfile,"%16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if (std::sscanf(item," P%u",&ppm_type)!=1) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pnm(): PNM header not found in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } while ((err=std::fscanf(nfile," %16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if ((err=std::sscanf(item," %u %u %u %u",&W,&H,&D,&colormax))<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pnm(): WIDTH and HEIGHT fields undefined in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } if (ppm_type!=1 && ppm_type!=4) { if (err==2 || (err==3 && (ppm_type==5 || ppm_type==7 || ppm_type==8 || ppm_type==9))) { while ((err=std::fscanf(nfile," %16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if (std::sscanf(item,"%u",&colormax)!=1) cimg::warn(_cimg_instance "load_pnm(): COLORMAX field is undefined in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } else { colormax = D; D = 1; } } std::fgetc(nfile); switch (ppm_type) { case 1 : { // 2d b&w ascii. assign(W,H,1,1); T* ptrd = _data; cimg_foroff(*this,off) { if (std::fscanf(nfile,"%d",&rval)>0) *(ptrd++) = (T)(rval?0:255); else break; } } break; case 2 : { // 2d grey ascii. assign(W,H,1,1); T* ptrd = _data; cimg_foroff(*this,off) { if (std::fscanf(nfile,"%d",&rval)>0) *(ptrd++) = (T)rval; else break; } } break; case 3 : { // 2d color ascii. assign(W,H,1,3); T *ptrd = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); cimg_forXY(*this,x,y) { if (std::fscanf(nfile,"%d %d %d",&rval,&gval,&bval)==3) { *(ptrd++) = (T)rval; *(ptr_g++) = (T)gval; *(ptr_b++) = (T)bval; } else break; } } break; case 4 : { // 2d b&w binary (support 3D PINK extension). CImg raw; assign(W,H,D,1); T *ptrd = data(0,0,0,0); unsigned int w = 0, h = 0, d = 0; for (long to_read = (long)((W/8 + (W%8?1:0))*H*D); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const unsigned char *ptrs = raw._data; unsigned char mask = 0, val = 0; for (unsigned long off = (unsigned long)raw._width; off || mask; mask>>=1) { if (!mask) { if (off--) val = *(ptrs++); mask = 128; } *(ptrd++) = (T)((val&mask)?0:255); if (++w==W) { w = 0; mask = 0; if (++h==H) { h = 0; if (++d==D) break; }} } } } break; case 5 : case 7 : { // 2d/3d grey binary (support 3D PINK extension). if (colormax<256) { // 8 bits. CImg raw; assign(W,H,D,1); T *ptrd = data(0,0,0,0); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const unsigned char *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); } } else { // 16 bits. CImg raw; assign(W,H,D,1); T *ptrd = data(0,0,0,0); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer/2)); cimg::fread(raw._data,raw._width,nfile); if (!cimg::endianness()) cimg::invert_endianness(raw._data,raw._width); to_read-=raw._width; const unsigned short *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); } } } break; case 6 : { // 2d color binary. if (colormax<256) { // 8 bits. CImg raw; assign(W,H,1,3); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const unsigned char *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width/3; off; --off) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); } } } else { // 16 bits. CImg raw; assign(W,H,1,3); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); for (long to_read = (int)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer/2)); cimg::fread(raw._data,raw._width,nfile); if (!cimg::endianness()) cimg::invert_endianness(raw._data,raw._width); to_read-=raw._width; const unsigned short *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width/3; off; --off) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); } } } } break; case 8 : { // 2d/3d grey binary with int32 integers (PINK extension). CImg raw; assign(W,H,D,1); T *ptrd = data(0,0,0,0); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const int *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); } } break; case 9 : { // 2d/3d grey binary with float values (PINK extension). CImg raw; assign(W,H,D,1); T *ptrd = data(0,0,0,0); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const float *ptrs = raw._data; for (unsigned long off = (unsigned long)raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); } } break; default : assign(); if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pnm(): PNM type 'P%d' found, but type is not supported.", cimg_instance, filename?filename:"(FILE*)",ppm_type); } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a PFM file. /** \param filename Filename, as a C-string. **/ CImg& load_pfm(const char *const filename) { return _load_pfm(0,filename); } //! Load image from a PFM file \newinstance. static CImg get_load_pfm(const char *const filename) { return CImg().load_pfm(filename); } //! Load image from a PFM file \overloading. CImg& load_pfm(std::FILE *const file) { return _load_pfm(file,0); } //! Load image from a PFM file \newinstance. static CImg get_load_pfm(std::FILE *const file) { return CImg().load_pfm(file); } CImg& _load_pfm(std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_pfm(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); char pfm_type; CImg item(16384,1,1,1,0); int W = 0, H = 0, err = 0; double scale = 0; while ((err=std::fscanf(nfile,"%16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if (std::sscanf(item," P%c",&pfm_type)!=1) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pfm(): PFM header not found in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } while ((err=std::fscanf(nfile," %16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if ((err=std::sscanf(item," %d %d",&W,&H))<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pfm(): WIDTH and HEIGHT fields are undefined in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } if (err==2) { while ((err=std::fscanf(nfile," %16383[^\n]",item.data()))!=EOF && (*item=='#' || !err)) std::fgetc(nfile); if (std::sscanf(item,"%lf",&scale)!=1) cimg::warn(_cimg_instance "load_pfm(): SCALE field is undefined in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } std::fgetc(nfile); const bool is_color = (pfm_type=='F'), is_inverted = (scale>0)!=cimg::endianness(); if (is_color) { assign(W,H,1,3,0); CImg buf(3*W); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); cimg_forY(*this,y) { cimg::fread(buf._data,3*W,nfile); if (is_inverted) cimg::invert_endianness(buf._data,3*W); const float *ptrs = buf._data; cimg_forX(*this,x) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); } } } else { assign(W,H,1,1,0); CImg buf(W); T *ptrd = data(0,0,0,0); cimg_forY(*this,y) { cimg::fread(buf._data,W,nfile); if (is_inverted) cimg::invert_endianness(buf._data,W); const float *ptrs = buf._data; cimg_forX(*this,x) *(ptrd++) = (T)*(ptrs++); } } if (!file) cimg::fclose(nfile); return mirror('y'); // Most of the .pfm files are flipped along the y-axis. } //! Load image from a RGB file. /** \param filename Filename, as a C-string. \param dimw Width of the image buffer. \param dimh Height of the image buffer. **/ CImg& load_rgb(const char *const filename, const unsigned int dimw, const unsigned int dimh=1) { return _load_rgb(0,filename,dimw,dimh); } //! Load image from a RGB file \newinstance. static CImg get_load_rgb(const char *const filename, const unsigned int dimw, const unsigned int dimh=1) { return CImg().load_rgb(filename,dimw,dimh); } //! Load image from a RGB file \overloading. CImg& load_rgb(std::FILE *const file, const unsigned int dimw, const unsigned int dimh=1) { return _load_rgb(file,0,dimw,dimh); } //! Load image from a RGB file \newinstance. static CImg get_load_rgb(std::FILE *const file, const unsigned int dimw, const unsigned int dimh=1) { return CImg().load_rgb(file,dimw,dimh); } CImg& _load_rgb(std::FILE *const file, const char *const filename, const unsigned int dimw, const unsigned int dimh) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_rgb(): Specified filename is (null).", cimg_instance); if (!dimw || !dimh) return assign(); const long cimg_iobuffer = 12*1024*1024; std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); CImg raw; assign(dimw,dimh,1,3); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const unsigned char *ptrs = raw._data; for (unsigned long off = raw._width/3UL; off; --off) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); } } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a RGBA file. /** \param filename Filename, as a C-string. \param dimw Width of the image buffer. \param dimh Height of the image buffer. **/ CImg& load_rgba(const char *const filename, const unsigned int dimw, const unsigned int dimh=1) { return _load_rgba(0,filename,dimw,dimh); } //! Load image from a RGBA file \newinstance. static CImg get_load_rgba(const char *const filename, const unsigned int dimw, const unsigned int dimh=1) { return CImg().load_rgba(filename,dimw,dimh); } //! Load image from a RGBA file \overloading. CImg& load_rgba(std::FILE *const file, const unsigned int dimw, const unsigned int dimh=1) { return _load_rgba(file,0,dimw,dimh); } //! Load image from a RGBA file \newinstance. static CImg get_load_rgba(std::FILE *const file, const unsigned int dimw, const unsigned int dimh=1) { return CImg().load_rgba(file,dimw,dimh); } CImg& _load_rgba(std::FILE *const file, const char *const filename, const unsigned int dimw, const unsigned int dimh) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_rgba(): Specified filename is (null).", cimg_instance); if (!dimw || !dimh) return assign(); const long cimg_iobuffer = 12*1024*1024; std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); CImg raw; assign(dimw,dimh,1,4); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2), *ptr_a = data(0,0,0,3); for (long to_read = (long)size(); to_read>0; ) { raw.assign(cimg::min(to_read,cimg_iobuffer)); cimg::fread(raw._data,raw._width,nfile); to_read-=raw._width; const unsigned char *ptrs = raw._data; for (unsigned long off = raw._width/4UL; off; --off) { *(ptr_r++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_b++) = (T)*(ptrs++); *(ptr_a++) = (T)*(ptrs++); } } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a TIFF file. /** \param filename Filename, as a C-string. \param first_frame First frame to read (for multi-pages tiff). \param last_frame Last frame to read (for multi-pages tiff). \param step_frame Step value of frame reading. \note - libtiff support is enabled by defining the precompilation directive \c cimg_use_tif. - When libtiff is enabled, 2D and 3D (multipage) several channel per pixel are supported for char,uchar,short,ushort,float and \c double pixel types. - If \c cimg_use_tif is not defined at compilation time the function uses CImg& load_other(const char*). **/ CImg& load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1) { if (!filename) throw CImgArgumentException(_cimg_instance "load_tiff(): Specified filename is (null).", cimg_instance); const unsigned int nfirst_frame = first_frame1) throw CImgArgumentException(_cimg_instance "load_tiff(): Unable to read sub-images from file '%s' unless libtiff is enabled.", cimg_instance, filename); return load_other(filename); #else TIFF *tif = TIFFOpen(filename,"r"); if (tif) { unsigned int nb_images = 0; do ++nb_images; while (TIFFReadDirectory(tif)); if (nfirst_frame>=nb_images || (nlast_frame!=~0U && nlast_frame>=nb_images)) cimg::warn(_cimg_instance "load_tiff(): File '%s' contains %u image(s) while specified frame range is [%u,%u] (step %u).", cimg_instance, filename,nb_images,nfirst_frame,nlast_frame,nstep_frame); if (nfirst_frame>=nb_images) return assign(); if (nlast_frame>=nb_images) nlast_frame = nb_images-1; TIFFSetDirectory(tif,0); CImg frame; for (unsigned int l = nfirst_frame; l<=nlast_frame; l+=nstep_frame) { frame._load_tiff(tif,l); if (l==nfirst_frame) assign(frame._width,frame._height,1+(nlast_frame-nfirst_frame)/nstep_frame,frame._spectrum); if (frame._width>_width || frame._height>_height || frame._spectrum>_spectrum) resize(cimg::max(frame._width,_width),cimg::max(frame._height,_height),-100,cimg::max(frame._spectrum,_spectrum),0); draw_image(0,0,(l-nfirst_frame)/nstep_frame,frame); } TIFFClose(tif); } else throw CImgIOException(_cimg_instance "load_tiff(): Failed to open file '%s'.", cimg_instance, filename); return *this; #endif } //! Load image from a TIFF file \newinstance. static CImg get_load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1) { return CImg().load_tiff(filename,first_frame,last_frame,step_frame); } // (Original contribution by Jerome Boulanger). #ifdef cimg_use_tiff template void _load_tiff_tiled_contig(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny, const uint32 tw, const uint32 th) { t *const buf = (t*)_TIFFmalloc(TIFFTileSize(tif)); if (buf) { for (unsigned int row = 0; row void _load_tiff_tiled_separate(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny, const uint32 tw, const uint32 th) { t *const buf = (t*)_TIFFmalloc(TIFFTileSize(tif)); if (buf) { for (unsigned int vv = 0; vv void _load_tiff_contig(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny) { t *const buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { uint32 row, rowsperstrip = (uint32)-1; TIFFGetField(tif,TIFFTAG_ROWSPERSTRIP,&rowsperstrip); for (row = 0; rowny?ny-row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif, row, 0); if ((TIFFReadEncodedStrip(tif,strip,buf,-1))<0) { _TIFFfree(buf); TIFFClose(tif); throw CImgIOException(_cimg_instance "load_tiff(): Invalid strip in file '%s'.", cimg_instance, TIFFFileName(tif)); } const t *ptr = buf; for (unsigned int rr = 0; rr void _load_tiff_separate(TIFF *const tif, const uint16 samplesperpixel, const uint32 nx, const uint32 ny) { t *buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { uint32 row, rowsperstrip = (uint32)-1; TIFFGetField(tif,TIFFTAG_ROWSPERSTRIP,&rowsperstrip); for (unsigned int vv = 0; vvny?ny-row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif, row, vv); if ((TIFFReadEncodedStrip(tif,strip,buf,-1))<0) { _TIFFfree(buf); TIFFClose(tif); throw CImgIOException(_cimg_instance "load_tiff(): Invalid strip in file '%s'.", cimg_instance, TIFFFileName(tif)); } const t *ptr = buf; for (unsigned int rr = 0;rr& _load_tiff(TIFF *const tif, const unsigned int directory) { if (!TIFFSetDirectory(tif,directory)) return assign(); uint16 samplesperpixel = 1, bitspersample, photo; uint16 sampleformat = SAMPLEFORMAT_UINT; uint32 nx,ny; const char *const filename = TIFFFileName(tif); TIFFGetField(tif,TIFFTAG_IMAGEWIDTH,&nx); TIFFGetField(tif,TIFFTAG_IMAGELENGTH,&ny); TIFFGetField(tif,TIFFTAG_SAMPLESPERPIXEL,&samplesperpixel); TIFFGetField(tif, TIFFTAG_SAMPLEFORMAT, &sampleformat); TIFFGetFieldDefaulted(tif,TIFFTAG_BITSPERSAMPLE,&bitspersample); TIFFGetField(tif,TIFFTAG_PHOTOMETRIC,&photo); int spectrum = samplesperpixel; if (photo == 3) spectrum = 3; assign(nx,ny,1,spectrum); if ((photo < 3) && ( bitspersample!=8 || !(samplesperpixel==3 || samplesperpixel==4))) { uint16 config; TIFFGetField(tif,TIFFTAG_PLANARCONFIG,&config); if (TIFFIsTiled(tif)) { uint32 tw, th; TIFFGetField(tif,TIFFTAG_TILEWIDTH,&tw); TIFFGetField(tif,TIFFTAG_TILELENGTH,&th); if (config==PLANARCONFIG_CONTIG) switch (bitspersample) { case 8 : { if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); } break; case 16 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); break; case 32 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); else if (sampleformat==SAMPLEFORMAT_INT) _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_contig(tif,samplesperpixel,nx,ny,tw,th); break; } else switch (bitspersample) { case 8 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); break; case 16 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); break; case 32 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); else if (sampleformat==SAMPLEFORMAT_INT) _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); else _load_tiff_tiled_separate(tif,samplesperpixel,nx,ny,tw,th); break; } } else { if (config==PLANARCONFIG_CONTIG) switch (bitspersample) { case 8 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_contig(tif,samplesperpixel,nx,ny); else _load_tiff_contig(tif,samplesperpixel,nx,ny); break; case 16 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_contig(tif,samplesperpixel,nx,ny); else _load_tiff_contig(tif,samplesperpixel,nx,ny); break; case 32 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_contig(tif,samplesperpixel,nx,ny); else if (sampleformat==SAMPLEFORMAT_INT) _load_tiff_contig(tif,samplesperpixel,nx,ny); else _load_tiff_contig(tif,samplesperpixel,nx,ny); break; } else switch (bitspersample){ case 8 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_separate(tif,samplesperpixel,nx,ny); else _load_tiff_separate(tif,samplesperpixel,nx,ny); break; case 16 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_separate(tif,samplesperpixel,nx,ny); else _load_tiff_separate(tif,samplesperpixel,nx,ny); break; case 32 : if (sampleformat==SAMPLEFORMAT_UINT) _load_tiff_separate(tif,samplesperpixel,nx,ny); else if (sampleformat==SAMPLEFORMAT_INT) _load_tiff_separate(tif,samplesperpixel,nx,ny); else _load_tiff_separate(tif,samplesperpixel,nx,ny); break; } } } else { uint32 *const raster = (uint32*)_TIFFmalloc(nx*ny*sizeof(uint32)); if (!raster) { _TIFFfree(raster); TIFFClose(tif); throw CImgException(_cimg_instance "load_tiff(): Failed to allocate memory (%s) for file '%s'.", cimg_instance, cimg::strbuffersize(nx*ny*sizeof(uint32)),filename); } TIFFReadRGBAImage(tif,nx,ny,raster,0); switch (spectrum) { case 1 : { cimg_forXY(*this,x,y) (*this)(x,y) = (T)(float)((raster[nx*(ny-1-y)+x] + 128)/257); } break; case 3 : { cimg_forXY(*this,x,y) { (*this)(x,y,0) = (T)(float)TIFFGetR(raster[nx*(ny-1-y)+x]); (*this)(x,y,1) = (T)(float)TIFFGetG(raster[nx*(ny-1-y)+x]); (*this)(x,y,2) = (T)(float)TIFFGetB(raster[nx*(ny-1-y)+x]); } } break; case 4 : { cimg_forXY(*this,x,y) { (*this)(x,y,0) = (T)(float)TIFFGetR(raster[nx*(ny-1-y)+x]); (*this)(x,y,1) = (T)(float)TIFFGetG(raster[nx*(ny-1-y)+x]); (*this)(x,y,2) = (T)(float)TIFFGetB(raster[nx*(ny-1-y)+x]); (*this)(x,y,3) = (T)(float)TIFFGetA(raster[nx*(ny-1-y)+x]); } } break; } _TIFFfree(raster); } return *this; } #endif //! Load image from a MINC2 file. /** \param filename Filename, as a C-string. **/ // (Original code by Haz-Edine Assemlal). CImg& load_minc2(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_minc2(): Specified filename is (null).", cimg_instance); #ifndef cimg_use_minc2 return load_other(filename); #else minc::minc_1_reader rdr; rdr.open(filename); assign(rdr.ndim(1)?rdr.ndim(1):1, rdr.ndim(2)?rdr.ndim(2):1, rdr.ndim(3)?rdr.ndim(3):1, rdr.ndim(4)?rdr.ndim(4):1); if(typeid(T)==typeid(unsigned char)) rdr.setup_read_byte(); else if(typeid(T)==typeid(int)) rdr.setup_read_int(); else if(typeid(T)==typeid(double)) rdr.setup_read_double(); else rdr.setup_read_float(); minc::load_standard_volume(rdr, this->_data); return *this; #endif } //! Load image from a MINC2 file \newinstance. static CImg get_load_minc2(const char *const filename) { return CImg().load_analyze(filename); } //! Load image from an ANALYZE7.5/NIFTI file. /** \param filename Filename, as a C-string. \param[out] voxel_size Pointer to the three voxel sizes read from the file. **/ CImg& load_analyze(const char *const filename, float *const voxel_size=0) { return _load_analyze(0,filename,voxel_size); } //! Load image from an ANALYZE7.5/NIFTI file \newinstance. static CImg get_load_analyze(const char *const filename, float *const voxel_size=0) { return CImg().load_analyze(filename,voxel_size); } //! Load image from an ANALYZE7.5/NIFTI file \overloading. CImg& load_analyze(std::FILE *const file, float *const voxel_size=0) { return _load_analyze(file,0,voxel_size); } //! Load image from an ANALYZE7.5/NIFTI file \newinstance. static CImg get_load_analyze(std::FILE *const file, float *const voxel_size=0) { return CImg().load_analyze(file,voxel_size); } CImg& _load_analyze(std::FILE *const file, const char *const filename, float *const voxel_size=0) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_analyze(): Specified filename is (null).", cimg_instance); std::FILE *nfile_header = 0, *nfile = 0; if (!file) { char body[1024] = { 0 }; const char *const ext = cimg::split_filename(filename,body); if (!cimg::strcasecmp(ext,"hdr")) { // File is an Analyze header file. nfile_header = cimg::fopen(filename,"rb"); std::sprintf(body + std::strlen(body),".img"); nfile = cimg::fopen(body,"rb"); } else if (!cimg::strcasecmp(ext,"img")) { // File is an Analyze data file. nfile = cimg::fopen(filename,"rb"); std::sprintf(body + std::strlen(body),".hdr"); nfile_header = cimg::fopen(body,"rb"); } else nfile_header = nfile = cimg::fopen(filename,"rb"); // File is a Niftii file. } else nfile_header = nfile = file; // File is a Niftii file. if (!nfile || !nfile_header) throw CImgIOException(_cimg_instance "load_analyze(): Invalid Analyze7.5 or NIFTI header in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); // Read header. bool endian = false; unsigned int header_size; cimg::fread(&header_size,1,nfile_header); if (!header_size) throw CImgIOException(_cimg_instance "load_analyze(): Invalid zero-sized header in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (header_size>=4096) { endian = true; cimg::invert_endianness(header_size); } unsigned char *const header = new unsigned char[header_size]; cimg::fread(header+4,header_size-4,nfile_header); if (!file && nfile_header!=nfile) cimg::fclose(nfile_header); if (endian) { cimg::invert_endianness((short*)(header+40),5); cimg::invert_endianness((short*)(header+70),1); cimg::invert_endianness((short*)(header+72),1); cimg::invert_endianness((float*)(header+76),4); cimg::invert_endianness((float*)(header+112),1); } unsigned short *dim = (unsigned short*)(header+40), dimx = 1, dimy = 1, dimz = 1, dimv = 1; if (!dim[0]) cimg::warn(_cimg_instance "load_analyze(): File '%s' defines an image with zero dimensions.", cimg_instance, filename?filename:"(FILE*)"); if (dim[0]>4) cimg::warn(_cimg_instance "load_analyze(): File '%s' defines an image with %u dimensions, reading only the 4 first.", cimg_instance, filename?filename:"(FILE*)",dim[0]); if (dim[0]>=1) dimx = dim[1]; if (dim[0]>=2) dimy = dim[2]; if (dim[0]>=3) dimz = dim[3]; if (dim[0]>=4) dimv = dim[4]; float scalefactor = *(float*)(header+112); if (scalefactor==0) scalefactor=1; const unsigned short datatype = *(short*)(header+70); if (voxel_size) { const float *vsize = (float*)(header+76); voxel_size[0] = vsize[1]; voxel_size[1] = vsize[2]; voxel_size[2] = vsize[3]; } delete[] header; // Read pixel data. assign(dimx,dimy,dimz,dimv); switch (datatype) { case 2 : { unsigned char *const buffer = new unsigned char[dimx*dimy*dimz*dimv]; cimg::fread(buffer,dimx*dimy*dimz*dimv,nfile); cimg_foroff(*this,off) _data[off] = (T)(buffer[off]*scalefactor); delete[] buffer; } break; case 4 : { short *const buffer = new short[dimx*dimy*dimz*dimv]; cimg::fread(buffer,dimx*dimy*dimz*dimv,nfile); if (endian) cimg::invert_endianness(buffer,dimx*dimy*dimz*dimv); cimg_foroff(*this,off) _data[off] = (T)(buffer[off]*scalefactor); delete[] buffer; } break; case 8 : { int *const buffer = new int[dimx*dimy*dimz*dimv]; cimg::fread(buffer,dimx*dimy*dimz*dimv,nfile); if (endian) cimg::invert_endianness(buffer,dimx*dimy*dimz*dimv); cimg_foroff(*this,off) _data[off] = (T)(buffer[off]*scalefactor); delete[] buffer; } break; case 16 : { float *const buffer = new float[dimx*dimy*dimz*dimv]; cimg::fread(buffer,dimx*dimy*dimz*dimv,nfile); if (endian) cimg::invert_endianness(buffer,dimx*dimy*dimz*dimv); cimg_foroff(*this,off) _data[off] = (T)(buffer[off]*scalefactor); delete[] buffer; } break; case 64 : { double *const buffer = new double[dimx*dimy*dimz*dimv]; cimg::fread(buffer,dimx*dimy*dimz*dimv,nfile); if (endian) cimg::invert_endianness(buffer,dimx*dimy*dimz*dimv); cimg_foroff(*this,off) _data[off] = (T)(buffer[off]*scalefactor); delete[] buffer; } break; default : if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_analyze(): Unable to load datatype %d in file '%s'", cimg_instance, datatype,filename?filename:"(FILE*)"); } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a .cimg[z] file. /** \param filename Filename, as a C-string. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_cimg(const char *const filename, const char axis='z', const float align=0) { CImgList list; list.load_cimg(filename); if (list._width==1) return list[0].move_to(*this); return assign(list.get_append(axis,align)); } //! Load image from a .cimg[z] file \newinstance static CImg get_load_cimg(const char *const filename, const char axis='z', const float align=0) { return CImg().load_cimg(filename,axis,align); } //! Load image from a .cimg[z] file \overloading. CImg& load_cimg(std::FILE *const file, const char axis='z', const float align=0) { CImgList list; list.load_cimg(file); if (list._width==1) return list[0].move_to(*this); return assign(list.get_append(axis,align)); } //! Load image from a .cimg[z] file \newinstance static CImg get_load_cimg(std::FILE *const file, const char axis='z', const float align=0) { return CImg().load_cimg(file,axis,align); } //! Load sub-images of a .cimg file. /** \param filename Filename, as a C-string. \param n0 Starting frame. \param n1 Ending frame. \param x0 X-coordinate of the starting sub-image vertex. \param y0 Y-coordinate of the starting sub-image vertex. \param z0 Z-coordinate of the starting sub-image vertex. \param c0 C-coordinate of the starting sub-image vertex. \param x1 X-coordinate of the ending sub-image vertex. \param y1 Y-coordinate of the ending sub-image vertex. \param z1 Z-coordinate of the ending sub-image vertex. \param c1 C-coordinate of the ending sub-image vertex. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_cimg(const char *const filename, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1, const char axis='z', const float align=0) { CImgList list; list.load_cimg(filename,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); if (list._width==1) return list[0].move_to(*this); return assign(list.get_append(axis,align)); } //! Load sub-images of a .cimg file \newinstance. static CImg get_load_cimg(const char *const filename, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1, const char axis='z', const float align=0) { return CImg().load_cimg(filename,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1,axis,align); } //! Load sub-images of a .cimg file \overloading. CImg& load_cimg(std::FILE *const file, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1, const char axis='z', const float align=0) { CImgList list; list.load_cimg(file,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); if (list._width==1) return list[0].move_to(*this); return assign(list.get_append(axis,align)); } //! Load sub-images of a .cimg file \newinstance. static CImg get_load_cimg(std::FILE *const file, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1, const char axis='z', const float align=0) { return CImg().load_cimg(file,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1,axis,align); } //! Load image from an INRIMAGE-4 file. /** \param filename Filename, as a C-string. \param[out] voxel_size Pointer to the three voxel sizes read from the file. **/ CImg& load_inr(const char *const filename, float *const voxel_size=0) { return _load_inr(0,filename,voxel_size); } //! Load image from an INRIMAGE-4 file \newinstance. static CImg get_load_inr(const char *const filename, float *const voxel_size=0) { return CImg().load_inr(filename,voxel_size); } //! Load image from an INRIMAGE-4 file \overloading. CImg& load_inr(std::FILE *const file, float *const voxel_size=0) { return _load_inr(file,0,voxel_size); } //! Load image from an INRIMAGE-4 file \newinstance. static CImg get_load_inr(std::FILE *const file, float *voxel_size=0) { return CImg().load_inr(file,voxel_size); } static void _load_inr_header(std::FILE *file, int out[8], float *const voxel_size) { char item[1024] = { 0 }, tmp1[64] = { 0 }, tmp2[64] = { 0 }; out[0] = std::fscanf(file,"%63s",item); out[0] = out[1] = out[2] = out[3] = out[5] = 1; out[4] = out[6] = out[7] = -1; if(cimg::strncasecmp(item,"#INRIMAGE-4#{",13)!=0) throw CImgIOException("CImg<%s>::load_inr(): INRIMAGE-4 header not found.", pixel_type()); while (std::fscanf(file," %63[^\n]%*c",item)!=EOF && std::strncmp(item,"##}",3)) { std::sscanf(item," XDIM%*[^0-9]%d",out); std::sscanf(item," YDIM%*[^0-9]%d",out+1); std::sscanf(item," ZDIM%*[^0-9]%d",out+2); std::sscanf(item," VDIM%*[^0-9]%d",out+3); std::sscanf(item," PIXSIZE%*[^0-9]%d",out+6); if (voxel_size) { std::sscanf(item," VX%*[^0-9.+-]%f",voxel_size); std::sscanf(item," VY%*[^0-9.+-]%f",voxel_size+1); std::sscanf(item," VZ%*[^0-9.+-]%f",voxel_size+2); } if (std::sscanf(item," CPU%*[ =]%s",tmp1)) out[7]=cimg::strncasecmp(tmp1,"sun",3)?0:1; switch (std::sscanf(item," TYPE%*[ =]%s %s",tmp1,tmp2)) { case 0 : break; case 2 : out[5] = cimg::strncasecmp(tmp1,"unsigned",8)?1:0; std::strncpy(tmp1,tmp2,sizeof(tmp1)-1); case 1 : if (!cimg::strncasecmp(tmp1,"int",3) || !cimg::strncasecmp(tmp1,"fixed",5)) out[4] = 0; if (!cimg::strncasecmp(tmp1,"float",5) || !cimg::strncasecmp(tmp1,"double",6)) out[4] = 1; if (!cimg::strncasecmp(tmp1,"packed",6)) out[4] = 2; if (out[4]>=0) break; default : throw CImgIOException("CImg<%s>::load_inr(): Invalid pixel type '%s' defined in header.", pixel_type(), tmp2); } } if(out[0]<0 || out[1]<0 || out[2]<0 || out[3]<0) throw CImgIOException("CImg<%s>::load_inr(): Invalid dimensions (%d,%d,%d,%d) defined in header.", pixel_type(), out[0],out[1],out[2],out[3]); if(out[4]<0 || out[5]<0) throw CImgIOException("CImg<%s>::load_inr(): Incomplete pixel type defined in header.", pixel_type()); if(out[6]<0) throw CImgIOException("CImg<%s>::load_inr(): Incomplete PIXSIZE field defined in header.", pixel_type()); if(out[7]<0) throw CImgIOException("CImg<%s>::load_inr(): Big/Little Endian coding type undefined in header.", pixel_type()); } CImg& _load_inr(std::FILE *const file, const char *const filename, float *const voxel_size) { #define _cimg_load_inr_case(Tf,sign,pixsize,Ts) \ if (!loaded && fopt[6]==pixsize && fopt[4]==Tf && fopt[5]==sign) { \ Ts *xval, *const val = new Ts[fopt[0]*fopt[3]]; \ cimg_forYZ(*this,y,z) { \ cimg::fread(val,fopt[0]*fopt[3],nfile); \ if (fopt[7]!=endian) cimg::invert_endianness(val,fopt[0]*fopt[3]); \ xval = val; cimg_forX(*this,x) cimg_forC(*this,c) (*this)(x,y,z,c) = (T)*(xval++); \ } \ delete[] val; \ loaded = true; \ } if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_inr(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); int fopt[8], endian=cimg::endianness()?1:0; bool loaded = false; if (voxel_size) voxel_size[0] = voxel_size[1] = voxel_size[2] = 1; _load_inr_header(nfile,fopt,voxel_size); assign(fopt[0],fopt[1],fopt[2],fopt[3]); _cimg_load_inr_case(0,0,8,unsigned char); _cimg_load_inr_case(0,1,8,char); _cimg_load_inr_case(0,0,16,unsigned short); _cimg_load_inr_case(0,1,16,short); _cimg_load_inr_case(0,0,32,unsigned int); _cimg_load_inr_case(0,1,32,int); _cimg_load_inr_case(1,0,32,float); _cimg_load_inr_case(1,1,32,float); _cimg_load_inr_case(1,0,64,double); _cimg_load_inr_case(1,1,64,double); if (!loaded) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_inr(): Unknown pixel type defined in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a EXR file. /** \param filename Filename, as a C-string. **/ CImg& load_exr(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_exr(): Specified filename is (null).", cimg_instance); #ifndef cimg_use_openexr return load_other(filename); #else Imf::RgbaInputFile file(filename); Imath::Box2i dw = file.dataWindow(); const int inwidth = dw.max.x - dw.min.x + 1, inheight = dw.max.y - dw.min.y + 1; Imf::Array2D pixels; pixels.resizeErase(inheight,inwidth); file.setFrameBuffer(&pixels[0][0] - dw.min.x - dw.min.y*inwidth, 1, inwidth); file.readPixels(dw.min.y, dw.max.y); assign(inwidth,inheight,1,4); T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2), *ptr_a = data(0,0,0,3); cimg_forXY(*this,x,y) { *(ptr_r++) = (T)pixels[y][x].r; *(ptr_g++) = (T)pixels[y][x].g; *(ptr_b++) = (T)pixels[y][x].b; *(ptr_a++) = (T)pixels[y][x].a; } return *this; #endif } //! Load image from a EXR file \newinstance. static CImg get_load_exr(const char *const filename) { return CImg().load_exr(filename); } //! Load image from a PANDORE-5 file. /** \param filename Filename, as a C-string. **/ CImg& load_pandore(const char *const filename) { return _load_pandore(0,filename); } //! Load image from a PANDORE-5 file \newinstance. static CImg get_load_pandore(const char *const filename) { return CImg().load_pandore(filename); } //! Load image from a PANDORE-5 file \overloading. CImg& load_pandore(std::FILE *const file) { return _load_pandore(file,0); } //! Load image from a PANDORE-5 file \newinstance. static CImg get_load_pandore(std::FILE *const file) { return CImg().load_pandore(file); } CImg& _load_pandore(std::FILE *const file, const char *const filename) { #define __cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,ndim,stype) \ cimg::fread(dims,nbdim,nfile); \ if (endian) cimg::invert_endianness(dims,nbdim); \ assign(nwidth,nheight,ndepth,ndim); \ const unsigned int siz = size(); \ stype *buffer = new stype[siz]; \ cimg::fread(buffer,siz,nfile); \ if (endian) cimg::invert_endianness(buffer,siz); \ T *ptrd = _data; \ cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); \ buffer-=siz; \ delete[] buffer #define _cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,dim,stype1,stype2,stype3,ltype) { \ if (sizeof(stype1)==ltype) { __cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,dim,stype1); } \ else if (sizeof(stype2)==ltype) { __cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,dim,stype2); } \ else if (sizeof(stype3)==ltype) { __cimg_load_pandore_case(nbdim,nwidth,nheight,ndepth,dim,stype3); } \ else throw CImgIOException(_cimg_instance \ "load_pandore(): Unknown pixel datatype in file '%s'.", \ cimg_instance, \ filename?filename:"(FILE*)"); } if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_pandore(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); char header[32] = { 0 }; cimg::fread(header,12,nfile); if (cimg::strncasecmp("PANDORE",header,7)) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pandore(): PANDORE header not found in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } unsigned int imageid, dims[8] = { 0 }; cimg::fread(&imageid,1,nfile); const bool endian = (imageid>255); if (endian) cimg::invert_endianness(imageid); cimg::fread(header,20,nfile); switch (imageid) { case 2: _cimg_load_pandore_case(2,dims[1],1,1,1,unsigned char,unsigned char,unsigned char,1); break; case 3: _cimg_load_pandore_case(2,dims[1],1,1,1,long,int,short,4); break; case 4: _cimg_load_pandore_case(2,dims[1],1,1,1,double,float,float,4); break; case 5: _cimg_load_pandore_case(3,dims[2],dims[1],1,1,unsigned char,unsigned char,unsigned char,1); break; case 6: _cimg_load_pandore_case(3,dims[2],dims[1],1,1,long,int,short,4); break; case 7: _cimg_load_pandore_case(3,dims[2],dims[1],1,1,double,float,float,4); break; case 8: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],1,unsigned char,unsigned char,unsigned char,1); break; case 9: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],1,long,int,short,4); break; case 10: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],1,double,float,float,4); break; case 11 : { // Region 1d cimg::fread(dims,3,nfile); if (endian) cimg::invert_endianness(dims,3); assign(dims[1],1,1,1); const unsigned siz = size(); if (dims[2]<256) { unsigned char *buffer = new unsigned char[siz]; cimg::fread(buffer,siz,nfile); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { if (dims[2]<65536) { unsigned short *buffer = new unsigned short[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { unsigned int *buffer = new unsigned int[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } } } break; case 12 : { // Region 2d cimg::fread(dims,4,nfile); if (endian) cimg::invert_endianness(dims,4); assign(dims[2],dims[1],1,1); const unsigned int siz = size(); if (dims[3]<256) { unsigned char *buffer = new unsigned char[siz]; cimg::fread(buffer,siz,nfile); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { if (dims[3]<65536) { unsigned short *buffer = new unsigned short[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { unsigned long *buffer = new unsigned long[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } } } break; case 13 : { // Region 3d cimg::fread(dims,5,nfile); if (endian) cimg::invert_endianness(dims,5); assign(dims[3],dims[2],dims[1],1); const unsigned int siz = size(); if (dims[4]<256) { unsigned char *buffer = new unsigned char[siz]; cimg::fread(buffer,siz,nfile); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { if (dims[4]<65536) { unsigned short *buffer = new unsigned short[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } else { unsigned int *buffer = new unsigned int[siz]; cimg::fread(buffer,siz,nfile); if (endian) cimg::invert_endianness(buffer,siz); T *ptrd = _data; cimg_foroff(*this,off) *(ptrd++) = (T)*(buffer++); buffer-=siz; delete[] buffer; } } } break; case 16: _cimg_load_pandore_case(4,dims[2],dims[1],1,3,unsigned char,unsigned char,unsigned char,1); break; case 17: _cimg_load_pandore_case(4,dims[2],dims[1],1,3,long,int,short,4); break; case 18: _cimg_load_pandore_case(4,dims[2],dims[1],1,3,double,float,float,4); break; case 19: _cimg_load_pandore_case(5,dims[3],dims[2],dims[1],3,unsigned char,unsigned char,unsigned char,1); break; case 20: _cimg_load_pandore_case(5,dims[3],dims[2],dims[1],3,long,int,short,4); break; case 21: _cimg_load_pandore_case(5,dims[3],dims[2],dims[1],3,double,float,float,4); break; case 22: _cimg_load_pandore_case(2,dims[1],1,1,dims[0],unsigned char,unsigned char,unsigned char,1); break; case 23: _cimg_load_pandore_case(2,dims[1],1,1,dims[0],long,int,short,4); case 24: _cimg_load_pandore_case(2,dims[1],1,1,dims[0],unsigned long,unsigned int,unsigned short,4); break; case 25: _cimg_load_pandore_case(2,dims[1],1,1,dims[0],double,float,float,4); break; case 26: _cimg_load_pandore_case(3,dims[2],dims[1],1,dims[0],unsigned char,unsigned char,unsigned char,1); break; case 27: _cimg_load_pandore_case(3,dims[2],dims[1],1,dims[0],long,int,short,4); break; case 28: _cimg_load_pandore_case(3,dims[2],dims[1],1,dims[0],unsigned long,unsigned int,unsigned short,4); break; case 29: _cimg_load_pandore_case(3,dims[2],dims[1],1,dims[0],double,float,float,4); break; case 30: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],dims[0],unsigned char,unsigned char,unsigned char,1); break; case 31: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],dims[0],long,int,short,4); break; case 32: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],dims[0],unsigned long,unsigned int,unsigned short,4); break; case 33: _cimg_load_pandore_case(4,dims[3],dims[2],dims[1],dims[0],double,float,float,4); break; case 34 : { // Points 1d int ptbuf[4] = { 0 }; cimg::fread(ptbuf,1,nfile); if (endian) cimg::invert_endianness(ptbuf,1); assign(1); (*this)(0) = (T)ptbuf[0]; } break; case 35 : { // Points 2d int ptbuf[4] = { 0 }; cimg::fread(ptbuf,2,nfile); if (endian) cimg::invert_endianness(ptbuf,2); assign(2); (*this)(0) = (T)ptbuf[1]; (*this)(1) = (T)ptbuf[0]; } break; case 36 : { // Points 3d int ptbuf[4] = { 0 }; cimg::fread(ptbuf,3,nfile); if (endian) cimg::invert_endianness(ptbuf,3); assign(3); (*this)(0) = (T)ptbuf[2]; (*this)(1) = (T)ptbuf[1]; (*this)(2) = (T)ptbuf[0]; } break; default : if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_pandore(): Unable to load data with ID_type %u in file '%s'.", cimg_instance, imageid,filename?filename:"(FILE*)"); } if (!file) cimg::fclose(nfile); return *this; } //! Load image from a PAR-REC (Philips) file. /** \param filename Filename, as a C-string. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_parrec(const char *const filename, const char axis='c', const float align=0) { CImgList list; list.load_parrec(filename); if (list._width==1) return list[0].move_to(*this); return assign(list.get_append(axis,align)); } //! Load image from a PAR-REC (Philips) file \newinstance. static CImg get_load_parrec(const char *const filename, const char axis='c', const float align=0) { return CImg().load_parrec(filename,axis,align); } //! Load image from a raw binary file. /** \param filename Filename, as a C-string. \param size_x Width of the image buffer. \param size_y Height of the image buffer. \param size_z Depth of the image buffer. \param size_c Spectrum of the image buffer. \param is_multiplexed Tells if the image values are multiplexed along the C-axis. \param invert_endianness Tells if the endianness of the image buffer must be inverted. **/ CImg& load_raw(const char *const filename, const unsigned int size_x=0, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_multiplexed=false, const bool invert_endianness=false) { return _load_raw(0,filename,size_x,size_y,size_z,size_c,is_multiplexed,invert_endianness); } //! Load image from a raw binary file \newinstance. static CImg get_load_raw(const char *const filename, const unsigned int size_x=0, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_multiplexed=false, const bool invert_endianness=false) { return CImg().load_raw(filename,size_x,size_y,size_z,size_c,is_multiplexed,invert_endianness); } //! Load image from a raw binary file \overloading. CImg& load_raw(std::FILE *const file, const unsigned int size_x=0, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_multiplexed=false, const bool invert_endianness=false) { return _load_raw(file,0,size_x,size_y,size_z,size_c,is_multiplexed,invert_endianness); } //! Load image from a raw binary file \newinstance. static CImg get_load_raw(std::FILE *const file, const unsigned int size_x=0, const unsigned int size_y=1, const unsigned int size_z=1, const unsigned int size_c=1, const bool is_multiplexed=false, const bool invert_endianness=false) { return CImg().load_raw(file,size_x,size_y,size_z,size_c,is_multiplexed,invert_endianness); } CImg& _load_raw(std::FILE *const file, const char *const filename, const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const unsigned int size_c, const bool is_multiplexed, const bool invert_endianness) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_raw(): Specified filename is (null).", cimg_instance); unsigned int siz = size_x*size_y*size_z*size_c, _size_x = size_x, _size_y = size_y, _size_z = size_z, _size_c = size_c; std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); if (!siz) { // Retrieve file size. const long fpos = std::ftell(nfile); if (fpos<0) throw CImgArgumentException(_cimg_instance "load_raw(): Cannot determine size of input file '%s'.", cimg_instance,filename?filename:"(FILE*)"); std::fseek(nfile,0,SEEK_END); siz = _size_y = (unsigned int)std::ftell(nfile)/sizeof(T); _size_x = _size_z = _size_c = 1; std::fseek(nfile,fpos,SEEK_SET); } assign(_size_x,_size_y,_size_z,_size_c,0); if (!is_multiplexed || size_c==1) { cimg::fread(_data,siz,nfile); if (invert_endianness) cimg::invert_endianness(_data,siz); } else { CImg buf(1,1,1,_size_c); cimg_forXYZ(*this,x,y,z) { cimg::fread(buf._data,_size_c,nfile); if (invert_endianness) cimg::invert_endianness(buf._data,_size_c); set_vector_at(buf,x,y,z); } } if (!file) cimg::fclose(nfile); return *this; } //! Load image sequence using FFMPEG av's libraries. /** \param filename Filename, as a C-string. \param first_frame Index of the first frame to read. \param last_frame Index of the last frame to read. \param step_frame Step value for frame reading. \param pixel_format To be documented. \param resume To be documented. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_ffmpeg(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool pixel_format=true, const bool resume=false, const char axis='z', const float align=0) { return get_load_ffmpeg(filename,first_frame,last_frame,step_frame,pixel_format,resume,axis,align).move_to(*this); } //! Load image sequence using FFMPEG av's libraries \newinstance. static CImg get_load_ffmpeg(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool pixel_format=true, const bool resume=false, const char axis='z', const float align=0) { return CImgList().load_ffmpeg(filename,first_frame,last_frame,step_frame,pixel_format,resume).get_append(axis,align); } //! Load image sequence from a YUV file. /** \param filename Filename, as a C-string. \param size_x Width of the frames. \param size_y Height of the frames. \param first_frame Index of the first frame to read. \param last_frame Index of the last frame to read. \param step_frame Step value for frame reading. \param yuv2rgb Tells if the YUV to RGB transform must be applied. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. **/ CImg& load_yuv(const char *const filename, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true, const char axis='z') { return get_load_yuv(filename,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb,axis).move_to(*this); } //! Load image sequence from a YUV file \newinstance. static CImg get_load_yuv(const char *const filename, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true, const char axis='z') { return CImgList().load_yuv(filename,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb).get_append(axis); } //! Load image sequence from a YUV file \overloading. CImg& load_yuv(std::FILE *const file, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true, const char axis='z') { return get_load_yuv(file,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb,axis).move_to(*this); } //! Load image sequence from a YUV file \newinstance. static CImg get_load_yuv(std::FILE *const file, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true, const char axis='z') { return CImgList().load_yuv(file,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb).get_append(axis); } //! Load 3d object from a .OFF file. /** \param[out] primitives Primitives data of the 3d object. \param[out] colors Colors data of the 3d object. \param filename Filename, as a C-string. **/ template CImg& load_off(CImgList& primitives, CImgList& colors, const char *const filename) { return _load_off(primitives,colors,0,filename); } //! Load 3d object from a .OFF file \newinstance. template static CImg get_load_off(CImgList& primitives, CImgList& colors, const char *const filename) { return CImg().load_off(primitives,colors,filename); } //! Load 3d object from a .OFF file \overloading. template CImg& load_off(CImgList& primitives, CImgList& colors, std::FILE *const file) { return _load_off(primitives,colors,file,0); } //! Load 3d object from a .OFF file \newinstance. template static CImg get_load_off(CImgList& primitives, CImgList& colors, std::FILE *const file) { return CImg().load_off(primitives,colors,file); } template CImg& _load_off(CImgList& primitives, CImgList& colors, std::FILE *const file, const char *const filename) { if (!file && !filename) throw CImgArgumentException(_cimg_instance "load_off(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"r"); unsigned int nb_points = 0, nb_primitives = 0, nb_read = 0; char line[256] = { 0 }; int err; // Skip comments, and read magic string OFF do { err = std::fscanf(nfile,"%255[^\n] ",line); } while (!err || (err==1 && *line=='#')); if (cimg::strncasecmp(line,"OFF",3) && cimg::strncasecmp(line,"COFF",4)) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_off(): OFF header not found in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } do { err = std::fscanf(nfile,"%255[^\n] ",line); } while (!err || (err==1 && *line=='#')); if ((err = std::sscanf(line,"%u%u%*[^\n] ",&nb_points,&nb_primitives))!=2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_off(): Invalid number of vertices or primitives specified in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); } // Read points data assign(nb_points,3); float X = 0, Y = 0, Z = 0; cimg_forX(*this,l) { do { err = std::fscanf(nfile,"%255[^\n] ",line); } while (!err || (err==1 && *line=='#')); if ((err = std::sscanf(line,"%f%f%f%*[^\n] ",&X,&Y,&Z))!=3) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "load_off(): Failed to read vertex %u/%u in file '%s'.", cimg_instance, l+1,nb_points,filename?filename:"(FILE*)"); } (*this)(l,0) = (T)X; (*this)(l,1) = (T)Y; (*this)(l,2) = (T)Z; } // Read primitive data primitives.assign(); colors.assign(); bool stopflag = false; while (!stopflag) { float c0 = 0.7f, c1 = 0.7f, c2 = 0.7f; unsigned int prim = 0, i0 = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; *line = 0; if ((err = std::fscanf(nfile,"%u",&prim))!=1) stopflag=true; else { ++nb_read; switch (prim) { case 1 : { if ((err = std::fscanf(nfile,"%u%255[^\n] ",&i0,line))<2) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0).move_to(primitives); CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255)).move_to(colors); } } break; case 2 : { if ((err = std::fscanf(nfile,"%u%u%255[^\n] ",&i0,&i1,line))<2) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i1).move_to(primitives); CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255)).move_to(colors); } } break; case 3 : { if ((err = std::fscanf(nfile,"%u%u%u%255[^\n] ",&i0,&i1,&i2,line))<3) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i2,i1).move_to(primitives); CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255)).move_to(colors); } } break; case 4 : { if ((err = std::fscanf(nfile,"%u%u%u%u%255[^\n] ",&i0,&i1,&i2,&i3,line))<4) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i3,i2,i1).move_to(primitives); CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255)).move_to(colors); } } break; case 5 : { if ((err = std::fscanf(nfile,"%u%u%u%u%u%255[^\n] ",&i0,&i1,&i2,&i3,&i4,line))<5) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i3,i2,i1).move_to(primitives); CImg::vector(i0,i4,i3).move_to(primitives); colors.insert(2,CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255))); ++nb_primitives; } } break; case 6 : { if ((err = std::fscanf(nfile,"%u%u%u%u%u%u%255[^\n] ",&i0,&i1,&i2,&i3,&i4,&i5,line))<6) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i3,i2,i1).move_to(primitives); CImg::vector(i0,i5,i4,i3).move_to(primitives); colors.insert(2,CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255))); ++nb_primitives; } } break; case 7 : { if ((err = std::fscanf(nfile,"%u%u%u%u%u%u%u%255[^\n] ",&i0,&i1,&i2,&i3,&i4,&i5,&i6,line))<7) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i4,i3,i1).move_to(primitives); CImg::vector(i0,i6,i5,i4).move_to(primitives); CImg::vector(i3,i2,i1).move_to(primitives); colors.insert(3,CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255))); ++(++nb_primitives); } } break; case 8 : { if ((err = std::fscanf(nfile,"%u%u%u%u%u%u%u%u%255[^\n] ",&i0,&i1,&i2,&i3,&i4,&i5,&i6,&i7,line))<7) { cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u from file '%s'.", cimg_instance, nb_read,nb_primitives,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } else { err = std::sscanf(line,"%f%f%f",&c0,&c1,&c2); CImg::vector(i0,i3,i2,i1).move_to(primitives); CImg::vector(i0,i5,i4,i3).move_to(primitives); CImg::vector(i0,i7,i6,i5).move_to(primitives); colors.insert(3,CImg::vector((tc)(c0*255),(tc)(c1*255),(tc)(c2*255))); ++(++nb_primitives); } } break; default : cimg::warn(_cimg_instance "load_off(): Failed to read primitive %u/%u (%u vertices) from file '%s'.", cimg_instance, nb_read,nb_primitives,prim,filename?filename:"(FILE*)"); err = std::fscanf(nfile,"%*[^\n] "); } } } if (!file) cimg::fclose(nfile); if (primitives._width!=nb_primitives) cimg::warn(_cimg_instance "load_off(): Only %u/%u primitives read from file '%s'.", cimg_instance, primitives._width,nb_primitives,filename?filename:"(FILE*)"); return *this; } //! Load image sequence using FFMPEG's external tool 'ffmpeg'. /** \param filename Filename, as a C-string. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_ffmpeg_external(const char *const filename, const char axis='z', const float align=0) { return get_load_ffmpeg_external(filename,axis,align).move_to(*this); } //! Load image sequence using FFMPEG's external tool 'ffmpeg' \newinstance. static CImg get_load_ffmpeg_external(const char *const filename, const char axis='z', const float align=0) { return CImgList().load_ffmpeg_external(filename).get_append(axis,align); } //! Load gif file, using Imagemagick or GraphicsMagicks's external tools. /** \param filename Filename, as a C-string. \param use_graphicsmagick Tells if GraphicsMagick's tool 'gm' is used instead of ImageMagick's tool 'convert'. \param axis Appending axis, if file contains multiple images. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg& load_gif_external(const char *const filename, const char axis='z', const float align=0) { return get_load_gif_external(filename,axis,align).move_to(*this); } //! Load gif file, using ImageMagick or GraphicsMagick's external tool 'convert' \newinstance. static CImg get_load_gif_external(const char *const filename, const char axis='z', const float align=0) { return CImgList().load_gif_external(filename).get_append(axis,align); } //! Load image using GraphicsMagick's external tool 'gm'. /** \param filename Filename, as a C-string. **/ CImg& load_graphicsmagick_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_graphicsmagick_external(): Specified filename is (null).", cimg_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file = 0; const CImg s_filename = CImg::string(filename)._system_strescape(); #if cimg_OS==1 cimg_snprintf(command,sizeof(command),"%s convert \"%s\" pnm:-", cimg::graphicsmagick_path(),s_filename.data()); file = popen(command,"r"); if (file) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { load_pnm(file); } catch (...) { pclose(file); cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load_graphicsmagick_external(): Failed to load file '%s' with external command 'gm'.", cimg_instance, filename); } pclose(file); return *this; } #endif do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.pnm",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s convert \"%s\" \"%s\"", cimg::graphicsmagick_path(),s_filename.data(),CImg::string(filetmp)._system_strescape().data()); cimg::system(command,cimg::graphicsmagick_path()); if (!(file = std::fopen(filetmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimg_instance "load_graphicsmagick_external(): Failed to load file '%s' with external command 'gm'.", cimg_instance, filename); } else cimg::fclose(file); load_pnm(filetmp); std::remove(filetmp); return *this; } //! Load image using GraphicsMagick's external tool 'gm' \newinstance. static CImg get_load_graphicsmagick_external(const char *const filename) { return CImg().load_graphicsmagick_external(filename); } //! Load gzipped image file, using external tool 'gunzip'. /** \param filename Filename, as a C-string. **/ CImg& load_gzip_external(const char *const filename) { if (!filename) throw CImgIOException(_cimg_instance "load_gzip_external(): Specified filename is (null).", cimg_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; const char *const ext = cimg::split_filename(filename,body), *const ext2 = cimg::split_filename(body,0); std::FILE *file = 0; do { if (!cimg::strcasecmp(ext,"gz")) { if (*ext2) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext2); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } else { if (*ext) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s -c \"%s\" > \"%s\"", cimg::gunzip_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); cimg::system(command); if (!(file = std::fopen(filetmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimg_instance "load_gzip_external(): Failed to load file '%s' with external command 'gunzip'.", cimg_instance, filename); } else cimg::fclose(file); load(filetmp); std::remove(filetmp); return *this; } //! Load gzipped image file, using external tool 'gunzip' \newinstance. static CImg get_load_gzip_external(const char *const filename) { return CImg().load_gzip_external(filename); } //! Load image using ImageMagick's external tool 'convert'. /** \param filename Filename, as a C-string. **/ CImg& load_imagemagick_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_imagemagick_external(): Specified filename is (null).", cimg_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file = 0; const CImg s_filename = CImg::string(filename)._system_strescape(); #if cimg_OS==1 cimg_snprintf(command,sizeof(command),"%s%s \"%s\" pnm:-", cimg::imagemagick_path(), !cimg::strcasecmp(cimg::split_filename(filename),"pdf")?" -density 400x400":"", s_filename.data()); file = popen(command,"r"); if (file) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { load_pnm(file); } catch (...) { pclose(file); cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load_imagemagick_external(): Failed to load file '%s' with external command 'convert'.", cimg_instance, filename); } pclose(file); return *this; } #endif do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.pnm",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s%s \"%s\" \"%s\"", cimg::imagemagick_path(), !cimg::strcasecmp(cimg::split_filename(filename),"pdf")?" -density 400x400":"", s_filename.data(),CImg::string(filetmp)._system_strescape().data()); cimg::system(command,cimg::imagemagick_path()); if (!(file = std::fopen(filetmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimg_instance "load_imagemagick_external(): Failed to load file '%s' with external command 'convert'.", cimg_instance, filename); } else cimg::fclose(file); load_pnm(filetmp); std::remove(filetmp); return *this; } //! Load image using ImageMagick's external tool 'convert' \newinstance. static CImg get_load_imagemagick_external(const char *const filename) { return CImg().load_imagemagick_external(filename); } //! Load image from a DICOM file, using XMedcon's external tool 'medcon'. /** \param filename Filename, as a C-string. **/ CImg& load_medcon_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_medcon_external(): Specified filename is (null).", cimg_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; cimg::fclose(cimg::fopen(filename,"r")); std::FILE *file = 0; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s.hdr",cimg::filenamerand()); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s -w -c anlz -o \"%s\" -f \"%s\"", cimg::medcon_path(), CImg::string(filetmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); cimg::system(command); cimg::split_filename(filetmp,body); cimg_snprintf(command,sizeof(command),"%s.hdr",body); file = std::fopen(command,"rb"); if (!file) { cimg_snprintf(command,sizeof(command),"m000-%s.hdr",body); file = std::fopen(command,"rb"); if (!file) { throw CImgIOException(_cimg_instance "load_medcon_external(): Failed to load file '%s' with external command 'medcon'.", cimg_instance, filename); } } cimg::fclose(file); load_analyze(command); std::remove(command); cimg::split_filename(command,body); cimg_snprintf(command,sizeof(command),"%s.img",body); std::remove(command); return *this; } //! Load image from a DICOM file, using XMedcon's external tool 'medcon' \newinstance. static CImg get_load_medcon_external(const char *const filename) { return CImg().load_medcon_external(filename); } //! Load image from a RAW Color Camera file, using external tool 'dcraw'. /** \param filename Filename, as a C-string. **/ CImg& load_dcraw_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_dcraw_external(): Specified filename is (null).", cimg_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file = 0; const CImg s_filename = CImg::string(filename)._system_strescape(); #if cimg_OS==1 cimg_snprintf(command,sizeof(command),"%s -w -4 -c \"%s\"", cimg::dcraw_path(),s_filename.data()); file = popen(command,"r"); if (file) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { load_pnm(file); } catch (...) { pclose(file); cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load_dcraw_external(): Failed to load file '%s' with external command 'dcraw'.", cimg_instance, filename); } pclose(file); return *this; } #endif do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.ppm",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s -w -4 -c \"%s\" > \"%s\"", cimg::dcraw_path(),s_filename.data(),CImg::string(filetmp)._system_strescape().data()); cimg::system(command,cimg::dcraw_path()); if (!(file = std::fopen(filetmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimg_instance "load_dcraw_external(): Failed to load file '%s' with external command 'dcraw'.", cimg_instance, filename); } else cimg::fclose(file); load_pnm(filetmp); std::remove(filetmp); return *this; } //! Load image from a RAW Color Camera file, using external tool 'dcraw' \newinstance. static CImg get_load_dcraw_external(const char *const filename) { return CImg().load_dcraw_external(filename); } //! Load image from a camera stream, using OpenCV. /** \param camera_index Index of the camera to capture images from. \param skip_frames Number of frames to skip before the capture. \param release_camera Tells if the camera ressource must be released at the end of the method. **/ CImg& load_camera(const unsigned int camera_index=0, const unsigned int skip_frames=0, const bool release_camera=false, const unsigned int capture_width=0, const unsigned int capture_height=0) { #ifdef cimg_use_opencv if (camera_index>255) throw CImgArgumentException(_cimg_instance "load_camera(): Invalid request for camera #%u (no more than 256 cameras can be managed).", cimg_instance, camera_index); static CvCapture *capture[256] = { 0 }; if (release_camera) { if (capture[camera_index]) cvReleaseCapture(&(capture[camera_index])); capture[camera_index] = 0; return *this; } if (!capture[camera_index]) { capture[camera_index] = cvCreateCameraCapture(camera_index); if (!capture[camera_index]) { throw CImgIOException(_cimg_instance "load_camera(): Failed to initialize camera #%u.", cimg_instance, camera_index); } } if (capture_width) cvSetCaptureProperty(capture[camera_index],CV_CAP_PROP_FRAME_WIDTH,capture_width); if (capture_height) cvSetCaptureProperty(capture[camera_index],CV_CAP_PROP_FRAME_HEIGHT,capture_height); const IplImage *img = 0; for (unsigned int i = 0; iwidthStep - 3*img->width); assign(img->width,img->height,1,3); const unsigned char* ptrs = (unsigned char*)img->imageData; T *ptr_r = data(0,0,0,0), *ptr_g = data(0,0,0,1), *ptr_b = data(0,0,0,2); if (step>0) cimg_forY(*this,y) { cimg_forX(*this,x) { *(ptr_b++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_r++) = (T)*(ptrs++); } ptrs+=step; } else for (unsigned long siz = (unsigned long)img->width*img->height; siz; --siz) { *(ptr_b++) = (T)*(ptrs++); *(ptr_g++) = (T)*(ptrs++); *(ptr_r++) = (T)*(ptrs++); } } #else cimg::unused(camera_index,skip_frames,release_camera,capture_width,capture_height); throw CImgIOException(_cimg_instance "load_camera(): This function requires the OpenCV library to run " "(macro 'cimg_use_opencv' must be defined).", cimg_instance); #endif return *this; } //! Load image from a camera stream, using OpenCV \newinstance. static CImg get_load_camera(const unsigned int camera_index=0, const unsigned int skip_frames=0, const bool release_camera=false, const unsigned int capture_width=0, const unsigned int capture_height=0) { return CImg().load_camera(camera_index,skip_frames,release_camera,capture_width,capture_height); } //! Load image using various non-native ways. /** \param filename Filename, as a C-string. **/ CImg& load_other(const char *const filename) { if (!filename) throw CImgArgumentException(_cimg_instance "load_other(): Specified filename is (null).", cimg_instance); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { load_magick(filename); } catch (CImgException&) { try { load_imagemagick_external(filename); } catch (CImgException&) { try { load_graphicsmagick_external(filename); } catch (CImgException&) { try { load_cimg(filename); } catch (CImgException&) { try { std::fclose(cimg::fopen(filename,"rb")); } catch (CImgException&) { cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load_other(): Failed to open file '%s'.", cimg_instance, filename); } cimg::exception_mode() = omode; throw CImgIOException(_cimg_instance "load_other(): Failed to recognize format of file '%s'.", cimg_instance, filename); } } } } cimg::exception_mode() = omode; return *this; } //! Load image using various non-native ways \newinstance. static CImg get_load_other(const char *const filename) { return CImg().load_other(filename); } //@} //--------------------------- // //! \name Data Output //@{ //--------------------------- //! Display informations about the image data. /** \param title Name for the considered image. \param display_stats Tells to compute and display image statistics. **/ const CImg& print(const char *const title=0, const bool display_stats=true) const { int xm = 0, ym = 0, zm = 0, vm = 0, xM = 0, yM = 0, zM = 0, vM = 0; CImg st; if (!is_empty() && display_stats) { st = get_stats(); xm = (int)st[4]; ym = (int)st[5], zm = (int)st[6], vm = (int)st[7]; xM = (int)st[8]; yM = (int)st[9], zM = (int)st[10], vM = (int)st[11]; } const unsigned long siz = size(), msiz = siz*sizeof(T), siz1 = siz-1, mdisp = msiz<8*1024?0:(msiz<8*1024*1024?1:2), width1 = _width-1; char _title[64] = { 0 }; if (!title) cimg_snprintf(_title,sizeof(_title),"CImg<%s>",pixel_type()); std::fprintf(cimg::output(),"%s%s%s%s: %sthis%s = %p, %ssize%s = (%u,%u,%u,%u) [%lu %s], %sdata%s = (%s*)%p", cimg::t_magenta,cimg::t_bold,title?title:_title,cimg::t_normal, cimg::t_bold,cimg::t_normal,(void*)this, cimg::t_bold,cimg::t_normal,_width,_height,_depth,_spectrum, mdisp==0?msiz:(mdisp==1?(msiz>>10):(msiz>>20)), mdisp==0?"b":(mdisp==1?"Kio":"Mio"), cimg::t_bold,cimg::t_normal,pixel_type(),(void*)begin()); if (_data) std::fprintf(cimg::output(),"..%p (%s) = [ ",(void*)((char*)end()-1),_is_shared?"shared":"non-shared"); else std::fprintf(cimg::output()," (%s) = [ ",_is_shared?"shared":"non-shared"); if (!is_empty()) cimg_foroff(*this,off) { std::fprintf(cimg::output(),cimg::type::format(),cimg::type::format(_data[off])); if (off!=siz1) std::fprintf(cimg::output(),"%s",off%_width==width1?" ; ":" "); if (off==7 && siz>16) { off = siz1-8; std::fprintf(cimg::output(),"... "); } } if (!is_empty() && display_stats) std::fprintf(cimg::output()," ], %smin%s = %g, %smax%s = %g, %smean%s = %g, %sstd%s = %g, %scoords_min%s = (%u,%u,%u,%u), %scoords_max%s = (%u,%u,%u,%u).\n", cimg::t_bold,cimg::t_normal,st[0], cimg::t_bold,cimg::t_normal,st[1], cimg::t_bold,cimg::t_normal,st[2], cimg::t_bold,cimg::t_normal,std::sqrt(st[3]), cimg::t_bold,cimg::t_normal,xm,ym,zm,vm, cimg::t_bold,cimg::t_normal,xM,yM,zM,vM); else std::fprintf(cimg::output(),"%s].\n",is_empty()?"":" "); std::fflush(cimg::output()); return *this; } //! Display image into a CImgDisplay window. /** \param disp Display window. **/ const CImg& display(CImgDisplay& disp) const { disp.display(*this); return *this; } //! Display image into a CImgDisplay window, in an interactive way. /** \param disp Display window. \param display_info Tells if image informations are displayed on the standard output. **/ const CImg& display(CImgDisplay &disp, const bool display_info, unsigned int *const XYZ=0) const { return _display(disp,0,display_info,XYZ,false); } //! Display image into an interactive window. /** \param title Window title \param display_info Tells if image informations are displayed on the standard output. **/ const CImg& display(const char *const title=0, const bool display_info=true, unsigned int *const XYZ=0) const { CImgDisplay disp; return _display(disp,title,display_info,XYZ,false); } const CImg& _display(CImgDisplay &disp, const char *const title, const bool display_info, unsigned int *const XYZ, const bool exit_on_simpleclick) const { unsigned int oldw = 0, oldh = 0, _XYZ[3], key = 0; int x0 = 0, y0 = 0, z0 = 0, x1 = width()-1, y1 = height()-1, z1 = depth()-1; if (!disp) { disp.assign(cimg_fitscreen(_width,_height,_depth),title?title:0,1); if (!title) disp.set_title("CImg<%s> (%ux%ux%ux%u)",pixel_type(),_width,_height,_depth,_spectrum); else disp.set_title("%s",title); } else if (title) disp.set_title("%s",title); disp.show().flush(); const CImg dtitle = CImg::string(disp.title()); if (display_info) print(dtitle); CImg zoom; for (bool reset_view = true, resize_disp = false, is_first_select = true; !key && !disp.is_closed(); ) { if (reset_view) { if (XYZ) { _XYZ[0] = XYZ[0]; _XYZ[1] = XYZ[1]; _XYZ[2] = XYZ[2]; } else { _XYZ[0] = (x0 + x1)/2; _XYZ[1] = (y0 + y1)/2; _XYZ[2] = (z0 + z1)/2; } x0 = 0; y0 = 0; z0 = 0; x1 = width()-1; y1 = height()-1; z1 = depth()-1; oldw = disp.width(); oldh = disp.height(); reset_view = false; } if (!x0 && !y0 && !z0 && x1==width()-1 && y1==height()-1 && z1==depth()-1) { if (is_empty()) zoom.assign(1,1,1,1,0); else zoom.assign(); } else zoom = get_crop(x0,y0,z0,x1,y1,z1); const unsigned int dx = 1 + x1 - x0, dy = 1 + y1 - y0, dz = 1 + z1 - z0, tw = dx + (dz>1?dz:0), th = dy + (dz>1?dz:0); if (!is_empty() && !disp.is_fullscreen() && resize_disp) { const unsigned int ttw = tw*disp.width()/oldw, tth = th*disp.height()/oldh, dM = cimg::max(ttw,tth), diM = (unsigned int)cimg::max(disp.width(),disp.height()), imgw = cimg::max(16U,ttw*diM/dM), imgh = cimg::max(16U,tth*diM/dM); disp.set_fullscreen(false).resize(cimg_fitscreen(imgw,imgh,1),false); resize_disp = false; } oldw = tw; oldh = th; bool go_up = false, go_down = false, go_left = false, go_right = false, go_inc = false, go_dec = false, go_in = false, go_out = false, go_in_center = false; const CImg& visu = zoom?zoom:*this; disp.set_title(dtitle._data); if (_width>1 && visu._width==1) disp.set_title("%s | x=%u",disp._title,x0); if (_height>1 && visu._height==1) disp.set_title("%s | y=%u",disp._title,y0); if (_depth>1 && visu._depth==1) disp.set_title("%s | z=%u",disp._title,z0); const CImg selection = visu._get_select(disp,0,2,_XYZ,x0,y0,z0,is_first_select,_depth>1); is_first_select = false; if (disp.wheel()) { if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { go_out = !(go_in = disp.wheel()>0); go_in_center = false; } else if (disp.is_keySHIFTLEFT() || disp.is_keySHIFTRIGHT()) { go_right = !(go_left = disp.wheel()>0); } else if (disp.is_keyALT() || disp.is_keyALTGR() || _depth==1) { go_down = !(go_up = disp.wheel()>0); } disp.set_wheel(); } const int sx0 = selection(0), sy0 = selection(1), sz0 = selection(2), sx1 = selection(3), sy1 = selection(4), sz1 = selection(5); if (sx0>=0 && sy0>=0 && sz0>=0 && sx1>=0 && sy1>=0 && sz1>=0) { x1 = x0 + sx1; y1 = y0 + sy1; z1 = z0 + sz1; x0+=sx0; y0+=sy0; z0+=sz0; if (sx0==sx1 && sy0==sy1 && sz0==sz1) { if (exit_on_simpleclick && (!zoom || is_empty())) break; else reset_view = true; } resize_disp = true; } else switch (key = disp.key()) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : case cimg::keySHIFTRIGHT : #endif case 0 : case cimg::keyCTRLLEFT : case cimg::keyPAD5 : case cimg::keySHIFTLEFT : #if cimg_OS!=2 case cimg::keyALTGR : #endif case cimg::keyALT : key = 0; break; case cimg::keyP : if (visu._depth>1 && (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT())) { // Special mode: play stack of frames const unsigned int w1 = visu._width*disp.width()/(visu._width+(visu._depth>1?visu._depth:0)), h1 = visu._height*disp.height()/(visu._height+(visu._depth>1?visu._depth:0)); float frame_timing = 5; bool is_stopped = false; disp.set_key(key,false).set_wheel().resize(cimg_fitscreen(w1,h1,1),false); key = 0; for (unsigned int timer = 0; !key && !disp.is_closed() && !disp.button(); ) { if (disp.is_resized()) disp.resize(false); if (!timer) { visu.get_slice((int)_XYZ[2]).display(disp.set_title("%s | z=%d",dtitle.data(),_XYZ[2])); (++_XYZ[2])%=visu._depth; } if (!is_stopped) { if (++timer>(unsigned int)frame_timing) timer = 0; } else timer = ~0U; if (disp.wheel()) { frame_timing-=disp.wheel()/3.0f; disp.set_wheel(); } switch (key = disp.key()) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : #endif case cimg::keyCTRLLEFT : key = 0; break; case cimg::keyPAGEUP : frame_timing-=0.3f; key = 0; break; case cimg::keyPAGEDOWN : frame_timing+=0.3f; key = 0; break; case cimg::keySPACE : is_stopped = !is_stopped; disp.set_key(key,false); key = 0; break; case cimg::keyARROWLEFT : case cimg::keyARROWUP : is_stopped = true; timer = 0; key = 0; break; case cimg::keyARROWRIGHT : case cimg::keyARROWDOWN : is_stopped = true; (_XYZ[2]+=visu._depth-2)%=visu._depth; timer = 0; key = 0; break; case cimg::keyD : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,false), CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,true),false); disp.set_key(key,false); key = 0; } break; case cimg::keyC : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1),false).set_key(key,false); key = 0; } break; case cimg::keyR : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(_width,_height,_depth),false).set_key(key,false); key = 0; } break; case cimg::keyF : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.resize(disp.screen_width(),disp.screen_height(),false).toggle_fullscreen().set_key(key,false); key = 0; } break; } frame_timing = frame_timing<1?1:(frame_timing>39?39:frame_timing); disp.wait(20); } const unsigned int w2 = (visu._width + (visu._depth>1?visu._depth:0))*disp.width()/visu._width, h2 = (visu._height + (visu._depth>1?visu._depth:0))*disp.height()/visu._height; disp.resize(cimg_fitscreen(w2,h2,1),false).set_title(dtitle.data()).set_key().set_button().set_wheel(); key = 0; } break; case cimg::keyHOME : reset_view = resize_disp = true; key = 0; break; case cimg::keyPADADD : go_in = true; go_in_center = true; key = 0; break; case cimg::keyPADSUB : go_out = true; key = 0; break; case cimg::keyARROWLEFT : case cimg::keyPAD4: go_left = true; key = 0; break; case cimg::keyARROWRIGHT : case cimg::keyPAD6: go_right = true; key = 0; break; case cimg::keyARROWUP : case cimg::keyPAD8: go_up = true; key = 0; break; case cimg::keyARROWDOWN : case cimg::keyPAD2: go_down = true; key = 0; break; case cimg::keyPAD7 : go_up = go_left = true; key = 0; break; case cimg::keyPAD9 : go_up = go_right = true; key = 0; break; case cimg::keyPAD1 : go_down = go_left = true; key = 0; break; case cimg::keyPAD3 : go_down = go_right = true; key = 0; break; case cimg::keyPAGEUP : go_inc = true; key = 0; break; case cimg::keyPAGEDOWN : go_dec = true; key = 0; break; } if (go_in) { const int mx = go_in_center?disp.width()/2:disp.mouse_x(), my = go_in_center?disp.height()/2:disp.mouse_y(), mX = mx*(_width+(_depth>1?_depth:0))/disp.width(), mY = my*(_height+(_depth>1?_depth:0))/disp.height(); int X = _XYZ[0], Y = _XYZ[1], Z = _XYZ[2]; if (mX=height()) { X = x0 + mX*(1+x1-x0)/_width; Z = z0 + (mY-_height)*(1+z1-z0)/_depth; Y = _XYZ[1]; } if (mX>=width() && mY4) { x0 = X - 7*(X-x0)/8; x1 = X + 7*(x1-X)/8; } if (y1-y0>4) { y0 = Y - 7*(Y-y0)/8; y1 = Y + 7*(y1-Y)/8; } if (z1-z0>4) { z0 = Z - 7*(Z-z0)/8; z1 = Z + 7*(z1-Z)/8; } } if (go_out) { const int delta_x = (x1-x0)/8, delta_y = (y1-y0)/8, delta_z = (z1-z0)/8, ndelta_x = delta_x?delta_x:(_width>1?1:0), ndelta_y = delta_y?delta_y:(_height>1?1:0), ndelta_z = delta_z?delta_z:(_depth>1?1:0); x0-=ndelta_x; y0-=ndelta_y; z0-=ndelta_z; x1+=ndelta_x; y1+=ndelta_y; z1+=ndelta_z; if (x0<0) { x1-=x0; x0 = 0; if (x1>=width()) x1 = width() - 1; } if (y0<0) { y1-=y0; y0 = 0; if (y1>=height()) y1 = height() - 1; } if (z0<0) { z1-=z0; z0 = 0; if (z1>=depth()) z1 = depth() - 1; } if (x1>=width()) { x0-=(x1-width()+1); x1 = width()-1; if (x0<0) x0 = 0; } if (y1>=height()) { y0-=(y1-height()+1); y1 = height()-1; if (y0<0) y0 = 0; } if (z1>=depth()) { z0-=(z1-depth()+1); z1 = depth()-1; if (z0<0) z0 = 0; } } if (go_left) { const int delta = (x1-x0)/5, ndelta = delta?delta:(_width>1?1:0); if (x0-ndelta>=0) { x0-=ndelta; x1-=ndelta; } else { x1-=x0; x0 = 0; } } if (go_right) { const int delta = (x1-x0)/5, ndelta = delta?delta:(_width>1?1:0); if (x1+ndelta1?1:0); if (y0-ndelta>=0) { y0-=ndelta; y1-=ndelta; } else { y1-=y0; y0 = 0; } } if (go_down) { const int delta = (y1-y0)/5, ndelta = delta?delta:(_height>1?1:0); if (y1+ndelta1?1:0); if (z0-ndelta>=0) { z0-=ndelta; z1-=ndelta; } else { z1-=z0; z0 = 0; } } if (go_dec) { const int delta = (z1-z0)/5, ndelta = delta?delta:(_depth>1?1:0); if (z1+ndelta const CImg& display_object3d(CImgDisplay& disp, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const to& opacities, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return _display_object3d(disp,0,vertices,primitives,colors,opacities,centering,render_static, render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(const char *const title, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const to& opacities, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { CImgDisplay disp; return _display_object3d(disp,title,vertices,primitives,colors,opacities,centering,render_static, render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(CImgDisplay &disp, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(disp,vertices,primitives,colors,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(const char *const title, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(title,vertices,primitives,colors,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(CImgDisplay &disp, const CImg& vertices, const CImgList& primitives, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(disp,vertices,primitives,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(const char *const title, const CImg& vertices, const CImgList& primitives, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(title,vertices,primitives,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(CImgDisplay &disp, const CImg& vertices, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(disp,vertices,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } //! Display object 3d in an interactive window \simplification. template const CImg& display_object3d(const char *const title, const CImg& vertices, const bool centering=true, const int render_static=4, const int render_motion=1, const bool is_double_sided=true, const float focale=700, const float light_x=0, const float light_y=0, const float light_z=-5000, const float specular_lightness=0.2f, const float specular_shininess=0.1f, const bool display_axes=true, float *const pose_matrix=0) const { return display_object3d(title,vertices,CImgList(),centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } template const CImg& _display_object3d(CImgDisplay& disp, const char *const title, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const to& opacities, const bool centering, const int render_static, const int render_motion, const bool is_double_sided, const float focale, const float light_x, const float light_y, const float light_z, const float specular_lightness, const float specular_shininess, const bool display_axes, float *const pose_matrix) const { typedef typename cimg::superset::type tpfloat; // Check input arguments if (is_empty()) { if (disp) return CImg(disp.width(),disp.height(),1,(colors && colors[0].size()==1)?1:3,0). _display_object3d(disp,title,vertices,primitives,colors,opacities,centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); else return CImg(1,2,1,1,64,128).resize(cimg_fitscreen(640,480,1),1,(colors && colors[0].size()==1)?1:3,3). _display_object3d(disp,title,vertices,primitives,colors,opacities,centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } else { if (disp) disp.resize(*this,false); } char error_message[1024] = { 0 }; if (!vertices.is_object3d(primitives,colors,opacities,true,error_message)) throw CImgArgumentException(_cimg_instance "display_object3d(): Invalid specified 3d object (%u,%u) (%s).", cimg_instance,vertices._width,primitives._width,error_message); if (vertices._width && !primitives) { CImgList nprimitives(vertices._width,1,1,1,1); cimglist_for(nprimitives,l) nprimitives(l,0) = l; return _display_object3d(disp,title,vertices,nprimitives,colors,opacities,centering, render_static,render_motion,is_double_sided,focale, light_x,light_y,light_z,specular_lightness,specular_shininess, display_axes,pose_matrix); } if (!disp) { disp.assign(cimg_fitscreen(_width,_height,_depth),title?title:0,3); if (!title) disp.set_title("CImg<%s> (%u vertices, %u primitives)",pixel_type(),vertices._width,primitives._width); } else if (title) disp.set_title("%s",title); // Init 3d objects and compute object statistics CImg pose, rotated_vertices(vertices._width,3), bbox_vertices, rotated_bbox_vertices, axes_vertices, rotated_axes_vertices, bbox_opacities, axes_opacities; CImgList bbox_primitives, axes_primitives; CImgList reverse_primitives; CImgList bbox_colors, bbox_colors2, axes_colors; unsigned int ns_width = 0, ns_height = 0; int _is_double_sided = (int)is_double_sided; bool ndisplay_axes = display_axes; const CImg background_color(1,1,1,_spectrum,0), foreground_color(1,1,1,_spectrum,255); float Xoff = 0, Yoff = 0, Zoff = 0, sprite_scale = 1, xm = 0, xM = vertices?vertices.get_shared_row(0).max_min(xm):0, ym = 0, yM = vertices?vertices.get_shared_row(1).max_min(ym):0, zm = 0, zM = vertices?vertices.get_shared_row(2).max_min(zm):0; const float delta = cimg::max(xM-xm,yM-ym,zM-zm); rotated_bbox_vertices = bbox_vertices.assign(8,3,1,1, xm,xM,xM,xm,xm,xM,xM,xm, ym,ym,yM,yM,ym,ym,yM,yM, zm,zm,zm,zm,zM,zM,zM,zM); bbox_primitives.assign(6,1,4,1,1, 0,3,2,1, 4,5,6,7, 1,2,6,5, 0,4,7,3, 0,1,5,4, 2,3,7,6); bbox_colors.assign(6,_spectrum,1,1,1,background_color[0]); bbox_colors2.assign(6,_spectrum,1,1,1,foreground_color[0]); bbox_opacities.assign(bbox_colors._width,1,1,1,0.3f); rotated_axes_vertices = axes_vertices.assign(7,3,1,1, 0,20,0,0,22,-6,-6, 0,0,20,0,-6,22,-6, 0,0,0,20,0,0,22); axes_opacities.assign(3,1,1,1,1); axes_colors.assign(3,_spectrum,1,1,1,foreground_color[0]); axes_primitives.assign(3,1,2,1,1, 0,1, 0,2, 0,3); // Begin user interaction loop CImg visu0(*this), visu; CImg zbuffer(visu0.width(),visu0.height(),1,1,0); bool init_pose = true, clicked = false, redraw = true; unsigned int key = 0; int x0 = 0, y0 = 0, x1 = 0, y1 = 0, nrender_static = render_static, nrender_motion = render_motion; disp.show().flush(); while (!disp.is_closed() && !key) { // Init object pose if (init_pose) { const float ratio = delta>0?(2.0f*cimg::min(disp.width(),disp.height())/(3.0f*delta)):1, dx = (xM + xm)/2, dy = (yM + ym)/2, dz = (zM + zm)/2; if (centering) CImg(4,3,1,1, ratio,0.,0.,-ratio*dx, 0.,ratio,0.,-ratio*dy, 0.,0.,ratio,-ratio*dz).move_to(pose); else CImg(4,3,1,1, 1,0,0,0, 0,1,0,0, 0,0,1,0).move_to(pose); if (pose_matrix) { CImg pose0(pose_matrix,4,3,1,1,false); pose0.resize(4,4,1,1,0); pose.resize(4,4,1,1,0); pose0(3,3) = pose(3,3) = 1; (pose0*pose).get_crop(0,0,3,2).move_to(pose); Xoff = pose_matrix[12]; Yoff = pose_matrix[13]; Zoff = pose_matrix[14]; sprite_scale = pose_matrix[15]; } else { Xoff = Yoff = Zoff = 0; sprite_scale = 1; } init_pose = false; redraw = true; } // Rotate and draw 3d object if (redraw) { const float r00 = pose(0,0), r10 = pose(1,0), r20 = pose(2,0), r30 = pose(3,0), r01 = pose(0,1), r11 = pose(1,1), r21 = pose(2,1), r31 = pose(3,1), r02 = pose(0,2), r12 = pose(1,2), r22 = pose(2,2), r32 = pose(3,2); if ((clicked && nrender_motion>=0) || (!clicked && nrender_static>=0)) cimg_forX(vertices,l) { const float x = (float)vertices(l,0), y = (float)vertices(l,1), z = (float)vertices(l,2); rotated_vertices(l,0) = r00*x + r10*y + r20*z + r30; rotated_vertices(l,1) = r01*x + r11*y + r21*z + r31; rotated_vertices(l,2) = r02*x + r12*y + r22*z + r32; } else cimg_forX(bbox_vertices,l) { const float x = bbox_vertices(l,0), y = bbox_vertices(l,1), z = bbox_vertices(l,2); rotated_bbox_vertices(l,0) = r00*x + r10*y + r20*z + r30; rotated_bbox_vertices(l,1) = r01*x + r11*y + r21*z + r31; rotated_bbox_vertices(l,2) = r02*x + r12*y + r22*z + r32; } // Draw object visu = visu0; if ((clicked && nrender_motion<0) || (!clicked && nrender_static<0)) visu.draw_object3d(Xoff + visu._width/2.0f,Yoff + visu._height/2.0f,Zoff, rotated_bbox_vertices,bbox_primitives,bbox_colors,bbox_opacities,2,false,focale). draw_object3d(Xoff + visu._width/2.0f,Yoff + visu._height/2.0f,Zoff, rotated_bbox_vertices,bbox_primitives,bbox_colors2,1,false,focale); else visu._draw_object3d((void*)0,(!clicked && nrender_static>0)?zbuffer.fill(0):CImg::empty(), Xoff + visu._width/2.0f,Yoff + visu._height/2.0f,Zoff, rotated_vertices,reverse_primitives?reverse_primitives:primitives, colors,opacities,clicked?nrender_motion:nrender_static,_is_double_sided==1,focale, width()/2.0f+light_x,height()/2.0f+light_y,light_z,specular_lightness,specular_shininess, sprite_scale); // Draw axes if (ndisplay_axes) { const float n = (float)std::sqrt(1e-8 + r00*r00 + r01*r01 + r02*r02), _r00 = r00/n, _r10 = r10/n, _r20 = r20/n, _r01 = r01/n, _r11 = r11/n, _r21 = r21/n, _r02 = r01/n, _r12 = r12/n, _r22 = r22/n, Xaxes = 25, Yaxes = visu._height - 38.0f; cimg_forX(axes_vertices,l) { const float x = axes_vertices(l,0), y = axes_vertices(l,1), z = axes_vertices(l,2); rotated_axes_vertices(l,0) = _r00*x + _r10*y + _r20*z; rotated_axes_vertices(l,1) = _r01*x + _r11*y + _r21*z; rotated_axes_vertices(l,2) = _r02*x + _r12*y + _r22*z; } axes_opacities(0,0) = (rotated_axes_vertices(1,2)>0)?0.5f:1.0f; axes_opacities(1,0) = (rotated_axes_vertices(2,2)>0)?0.5f:1.0f; axes_opacities(2,0) = (rotated_axes_vertices(3,2)>0)?0.5f:1.0f; visu.draw_object3d(Xaxes,Yaxes,0,rotated_axes_vertices,axes_primitives,axes_colors,axes_opacities,1,false,focale). draw_text((int)(Xaxes+rotated_axes_vertices(4,0)), (int)(Yaxes+rotated_axes_vertices(4,1)), "X",axes_colors[0]._data,0,axes_opacities(0,0),13). draw_text((int)(Xaxes+rotated_axes_vertices(5,0)), (int)(Yaxes+rotated_axes_vertices(5,1)), "Y",axes_colors[1]._data,0,axes_opacities(1,0),13). draw_text((int)(Xaxes+rotated_axes_vertices(6,0)), (int)(Yaxes+rotated_axes_vertices(6,1)), "Z",axes_colors[2]._data,0,axes_opacities(2,0),13); } visu.display(disp); if (!clicked || nrender_motion==nrender_static) redraw = false; } // Handle user interaction disp.wait(); if ((disp.button() || disp.wheel()) && disp.mouse_x()>=0 && disp.mouse_y()>=0) { redraw = true; if (!clicked) { x0 = x1 = disp.mouse_x(); y0 = y1 = disp.mouse_y(); if (!disp.wheel()) clicked = true; } else { x1 = disp.mouse_x(); y1 = disp.mouse_y(); } if (disp.button()&1) { const float R = 0.45f*cimg::min(disp.width(),disp.height()), R2 = R*R, u0 = (float)(x0-disp.width()/2), v0 = (float)(y0-disp.height()/2), u1 = (float)(x1-disp.width()/2), v1 = (float)(y1-disp.height()/2), n0 = (float)std::sqrt(u0*u0+v0*v0), n1 = (float)std::sqrt(u1*u1+v1*v1), nu0 = n0>R?(u0*R/n0):u0, nv0 = n0>R?(v0*R/n0):v0, nw0 = (float)std::sqrt(cimg::max(0,R2-nu0*nu0-nv0*nv0)), nu1 = n1>R?(u1*R/n1):u1, nv1 = n1>R?(v1*R/n1):v1, nw1 = (float)std::sqrt(cimg::max(0,R2-nu1*nu1-nv1*nv1)), u = nv0*nw1-nw0*nv1, v = nw0*nu1-nu0*nw1, w = nv0*nu1-nu0*nv1, n = (float)std::sqrt(u*u+v*v+w*w), alpha = (float)std::asin(n/R2); (CImg::rotation_matrix(u,v,w,alpha)*pose).move_to(pose); x0 = x1; y0 = y1; } if (disp.button()&2) { if (focale>0) Zoff-=(y0-y1)*focale/400; else { const float s = std::exp((y0-y1)/400.0f); pose*=s; sprite_scale*=s; } x0 = x1; y0 = y1; } if (disp.wheel()) { if (focale>0) Zoff-=disp.wheel()*focale/20; else { const float s = std::exp(disp.wheel()/20.0f); pose*=s; sprite_scale*=s; } disp.set_wheel(); } if (disp.button()&4) { Xoff+=(x1-x0); Yoff+=(y1-y0); x0 = x1; y0 = y1; } if ((disp.button()&1) && (disp.button()&2)) { init_pose = true; disp.set_button(); x0 = x1; y0 = y1; pose = CImg(4,3,1,1, 1,0,0,0, 0,1,0,0, 0,0,1,0); } } else if (clicked) { x0 = x1; y0 = y1; clicked = false; redraw = true; } switch (key = disp.key()) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : #endif case 0 : case cimg::keyCTRLLEFT : key = 0; break; case cimg::keyD: if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,false), CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,true),false). _is_resized = true; disp.set_key(key,false); key = 0; } break; case cimg::keyC : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1),false)._is_resized = true; disp.set_key(key,false); key = 0; } break; case cimg::keyR : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(_width,_height,_depth),false)._is_resized = true; disp.set_key(key,false); key = 0; } break; case cimg::keyF : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { if (!ns_width || !ns_height || ns_width>(unsigned int)disp.screen_width() || ns_height>(unsigned int)disp.screen_height()) { ns_width = disp.screen_width()*3U/4; ns_height = disp.screen_height()*3U/4; } if (disp.is_fullscreen()) disp.resize(ns_width,ns_height,false); else { ns_width = (unsigned int)disp.width(); ns_height = disp.height(); disp.resize(disp.screen_width(),disp.screen_height(),false); } disp.toggle_fullscreen()._is_resized = true; disp.set_key(key,false); key = 0; } break; case cimg::keyT : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Switch single/double-sided primitives. if (--_is_double_sided==-2) _is_double_sided = 1; if (_is_double_sided>=0) reverse_primitives.assign(); else primitives.get_reverse_object3d().move_to(reverse_primitives); disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyZ : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Enable/disable Z-buffer if (zbuffer) zbuffer.assign(); else zbuffer.assign(visu0.width(),visu0.height(),1,1,0); disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyA : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Show/hide 3d axes. ndisplay_axes = !ndisplay_axes; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF1 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to points. nrender_motion = (nrender_static==0 && nrender_motion!=0)?0:-1; nrender_static = 0; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF2 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to lines. nrender_motion = (nrender_static==1 && nrender_motion!=1)?1:-1; nrender_static = 1; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF3 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to flat. nrender_motion = (nrender_static==2 && nrender_motion!=2)?2:-1; nrender_static = 2; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF4 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to flat-shaded. nrender_motion = (nrender_static==3 && nrender_motion!=3)?3:-1; nrender_static = 3; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF5 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to gouraud-shaded. nrender_motion = (nrender_static==4 && nrender_motion!=4)?4:-1; nrender_static = 4; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyF6 : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Set rendering mode to phong-shaded. nrender_motion = (nrender_static==5 && nrender_motion!=5)?5:-1; nrender_static = 5; disp.set_key(key,false); key = 0; redraw = true; } break; case cimg::keyS : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Save snapshot static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.bmp",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); (+visu).draw_text(0,0," Saving snapshot... ",foreground_color._data,background_color._data,1,13).display(disp); visu.save(filename); visu.draw_text(0,0," Snapshot '%s' saved. ",foreground_color._data,background_color._data,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; case cimg::keyG : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Save object as a .off file static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.off",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving object... ",foreground_color._data,background_color._data,1,13).display(disp); vertices.save_off(reverse_primitives?reverse_primitives:primitives,colors,filename); visu.draw_text(0,0," Object '%s' saved. ",foreground_color._data,background_color._data,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; case cimg::keyO : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Save object as a .cimg file static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { #ifdef cimg_use_zlib cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimgz",snap_number++); #else cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimg",snap_number++); #endif if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving object... ",foreground_color._data,background_color._data,1,13).display(disp); vertices.get_object3dtoCImg3d(reverse_primitives?reverse_primitives:primitives,colors,opacities).save(filename); visu.draw_text(0,0," Object '%s' saved. ",foreground_color._data,background_color._data,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; #ifdef cimg_use_board case cimg::keyP : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Save object as a .EPS file static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.eps",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving EPS snapshot... ",foreground_color._data,background_color._data,1,13).display(disp); LibBoard::Board board; (+visu)._draw_object3d(&board,zbuffer.fill(0), Xoff + visu._width/2.0f,Yoff + visu._height/2.0f,Zoff, rotated_vertices,reverse_primitives?reverse_primitives:primitives, colors,opacities,clicked?nrender_motion:nrender_static, _is_double_sided==1,focale, visu.width()/2.0f+light_x,visu.height()/2.0f+light_y,light_z,specular_lightness,specular_shininess, sprite_scale); board.saveEPS(filename); visu.draw_text(0,0," Object '%s' saved. ",foreground_color._data,background_color._data,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; case cimg::keyV : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { // Save object as a .SVG file static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.svg",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving SVG snapshot... ",foreground_color._data,background_color._data,1,13).display(disp); LibBoard::Board board; (+visu)._draw_object3d(&board,zbuffer.fill(0), Xoff + visu._width/2.0f,Yoff + visu._height/2.0f,Zoff, rotated_vertices,reverse_primitives?reverse_primitives:primitives, colors,opacities,clicked?nrender_motion:nrender_static, _is_double_sided==1,focale, visu.width()/2.0f+light_x,visu.height()/2.0f+light_y,light_z,specular_lightness,specular_shininess, sprite_scale); board.saveSVG(filename); visu.draw_text(0,0," Object '%s' saved. ",foreground_color._data,background_color._data,1,13,filename).display(disp); disp.set_key(key,false); key = 0; } break; #endif } if (disp.is_resized()) { disp.resize(false); visu0 = get_resize(disp,1); if (zbuffer) zbuffer.assign(disp.width(),disp.height()); redraw = true; } } if (pose_matrix) { std::memcpy(pose_matrix,pose._data,12*sizeof(float)); pose_matrix[12] = Xoff; pose_matrix[13] = Yoff; pose_matrix[14] = Zoff; pose_matrix[15] = sprite_scale; } disp.set_button().set_key(key); return *this; } //! Display 1d graph in an interactive window. /** \param disp Display window. \param plot_type Plot type. Can be { 0=points | 1=segments | 2=splines | 3=bars }. \param vertex_type Vertex type. \param labelx Title for the horizontal axis, as a C-string. \param xmin Minimum value along the X-axis. \param xmax Maximum value along the X-axis. \param labely Title for the vertical axis, as a C-string. \param ymin Minimum value along the X-axis. \param ymax Maximum value along the X-axis. **/ const CImg& display_graph(CImgDisplay &disp, const unsigned int plot_type=1, const unsigned int vertex_type=1, const char *const labelx=0, const double xmin=0, const double xmax=0, const char *const labely=0, const double ymin=0, const double ymax=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "display_graph(): Empty instance.", cimg_instance); if (!disp) disp.assign(cimg_fitscreen(640,480,1),0,0).set_title("CImg<%s>",pixel_type()); const unsigned long siz = (unsigned long)_width*_height*_depth, siz1 = cimg::max(1U,siz-1); const unsigned int old_normalization = disp.normalization(); disp.show().flush()._normalization = 0; double y0 = ymin, y1 = ymax, nxmin = xmin, nxmax = xmax; if (nxmin==nxmax) { nxmin = 0; nxmax = siz1; } int x0 = 0, x1 = width()*height()*depth() - 1, key = 0; for (bool reset_view = true, resize_disp = false; !key && !disp.is_closed(); ) { if (reset_view) { x0 = 0; x1 = width()*height()*depth()-1; y0 = ymin; y1 = ymax; reset_view = false; } CImg zoom(x1-x0+1,1,1,spectrum()); cimg_forC(*this,c) zoom.get_shared_channel(c) = CImg(data(x0,0,0,c),x1-x0+1,1,1,1,true); if (y0==y1) { y0 = zoom.min_max(y1); const double dy = y1 - y0; y0-=dy/20; y1+=dy/20; } if (y0==y1) { --y0; ++y1; } const CImg selection = zoom.get_select_graph(disp,plot_type,vertex_type, labelx, nxmin + x0*(nxmax-nxmin)/siz1, nxmin + x1*(nxmax-nxmin)/siz1, labely,y0,y1); const int mouse_x = disp.mouse_x(), mouse_y = disp.mouse_y(); if (selection[0]>=0) { if (selection[2]<0) reset_view = true; else { x1 = x0 + selection[2]; x0+=selection[0]; if (selection[1]>=0 && selection[3]>=0) { y0 = y1 - selection[3]*(y1-y0)/(disp.height()-32); y1-=selection[1]*(y1-y0)/(disp.height()-32); } } } else { bool go_in = false, go_out = false, go_left = false, go_right = false, go_up = false, go_down = false; switch (key = disp.key()) { case cimg::keyHOME : reset_view = resize_disp = true; key = 0; disp.set_key(); break; case cimg::keyPADADD : go_in = true; go_out = false; key = 0; disp.set_key(); break; case cimg::keyPADSUB : go_out = true; go_in = false; key = 0; disp.set_key(); break; case cimg::keyARROWLEFT : case cimg::keyPAD4 : go_left = true; go_right = false; key = 0; disp.set_key(); break; case cimg::keyARROWRIGHT : case cimg::keyPAD6 : go_right = true; go_left = false; key = 0; disp.set_key(); break; case cimg::keyARROWUP : case cimg::keyPAD8 : go_up = true; go_down = false; key = 0; disp.set_key(); break; case cimg::keyARROWDOWN : case cimg::keyPAD2 : go_down = true; go_up = false; key = 0; disp.set_key(); break; case cimg::keyPAD7 : go_left = true; go_up = true; key = 0; disp.set_key(); break; case cimg::keyPAD9 : go_right = true; go_up = true; key = 0; disp.set_key(); break; case cimg::keyPAD1 : go_left = true; go_down = true; key = 0; disp.set_key(); break; case cimg::keyPAD3 : go_right = true; go_down = true; key = 0; disp.set_key(); break; } if (disp.wheel()) { if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) go_out = !(go_in = disp.wheel()>0); else if (disp.is_keySHIFTLEFT() || disp.is_keySHIFTRIGHT()) go_left = !(go_right = disp.wheel()>0); else go_up = !(go_down = disp.wheel()<0); key = 0; } if (go_in) { const int xsiz = x1 - x0, mx = (mouse_x-16)*xsiz/(disp.width()-32), cx = x0 + (mx<0?0:(mx>=xsiz?xsiz:mx)); if (x1-x0>4) { x0 = cx - 7*(cx-x0)/8; x1 = cx + 7*(x1-cx)/8; if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { const double ysiz = y1 - y0, my = (mouse_y-16)*ysiz/(disp.height()-32), cy = y1 - (my<0?0:(my>=ysiz?ysiz:my)); y0 = cy - 7*(cy-y0)/8; y1 = cy + 7*(y1-cy)/8; } else y0 = y1 = 0; } } if (go_out) { if (x0>0 || x1<(int)siz1) { const int delta_x = (x1-x0)/8, ndelta_x = delta_x?delta_x:(siz>1?1:0); const double ndelta_y = (y1-y0)/8; x0-=ndelta_x; x1+=ndelta_x; y0-=ndelta_y; y1+=ndelta_y; if (x0<0) { x1-=x0; x0 = 0; if (x1>=(int)siz) x1 = (int)siz1; } if (x1>=(int)siz) { x0-=(x1-siz1); x1 = (int)siz1; if (x0<0) x0 = 0; } } } if (go_left) { const int delta = (x1-x0)/5, ndelta = delta?delta:1; if (x0-ndelta>=0) { x0-=ndelta; x1-=ndelta; } else { x1-=x0; x0 = 0; } go_left = false; } if (go_right) { const int delta = (x1-x0)/5, ndelta = delta?delta:1; if (x1+ndelta<(int)siz) { x0+=ndelta; x1+=ndelta; } else { x0+=(siz1-x1); x1 = siz1; } go_right = false; } if (go_up) { const double delta = (y1-y0)/10, ndelta = delta?delta:1; y0+=ndelta; y1+=ndelta; go_up = false; } if (go_down) { const double delta = (y1-y0)/10, ndelta = delta?delta:1; y0-=ndelta; y1-=ndelta; go_down = false; } } } disp._normalization = old_normalization; return *this; } //! Display 1d graph in an interactive window \overloading. const CImg& display_graph(const char *const title=0, const unsigned int plot_type=1, const unsigned int vertex_type=1, const char *const labelx=0, const double xmin=0, const double xmax=0, const char *const labely=0, const double ymin=0, const double ymax=0) const { if (is_empty()) throw CImgInstanceException(_cimg_instance "display_graph(): Empty instance.", cimg_instance); CImgDisplay disp; return display_graph(disp.set_title("%s",title),plot_type,vertex_type,labelx,xmin,xmax,labely,ymin,ymax); } //! Save image as a file. /** \param filename Filename, as a C-string. \param number When positive, represents an index added to the filename. \note - The used file format is defined by the file extension in the filename \p filename. - Parameter \p number can be used to add a 6-digit number to the filename before saving. **/ const CImg& save(const char *const filename, const int number=-1) const { if (!filename) throw CImgArgumentException(_cimg_instance "save(): Specified filename is (null).", cimg_instance); // Do not test for empty instances, since .cimg format is able to manage empty instances. const char *const ext = cimg::split_filename(filename); char nfilename[1024] = { 0 }; const char *const fn = (number>=0)?cimg::number_filename(filename,number,6,nfilename):filename; #ifdef cimg_save_plugin cimg_save_plugin(fn); #endif #ifdef cimg_save_plugin1 cimg_save_plugin1(fn); #endif #ifdef cimg_save_plugin2 cimg_save_plugin2(fn); #endif #ifdef cimg_save_plugin3 cimg_save_plugin3(fn); #endif #ifdef cimg_save_plugin4 cimg_save_plugin4(fn); #endif #ifdef cimg_save_plugin5 cimg_save_plugin5(fn); #endif #ifdef cimg_save_plugin6 cimg_save_plugin6(fn); #endif #ifdef cimg_save_plugin7 cimg_save_plugin7(fn); #endif #ifdef cimg_save_plugin8 cimg_save_plugin8(fn); #endif // Ascii formats if (!cimg::strcasecmp(ext,"asc")) return save_ascii(fn); else if (!cimg::strcasecmp(ext,"dlm") || !cimg::strcasecmp(ext,"txt")) return save_dlm(fn); else if (!cimg::strcasecmp(ext,"cpp") || !cimg::strcasecmp(ext,"hpp") || !cimg::strcasecmp(ext,"h") || !cimg::strcasecmp(ext,"c")) return save_cpp(fn); // 2d binary formats else if (!cimg::strcasecmp(ext,"bmp")) return save_bmp(fn); else if (!cimg::strcasecmp(ext,"jpg") || !cimg::strcasecmp(ext,"jpeg") || !cimg::strcasecmp(ext,"jpe") || !cimg::strcasecmp(ext,"jfif") || !cimg::strcasecmp(ext,"jif")) return save_jpeg(fn); else if (!cimg::strcasecmp(ext,"rgb")) return save_rgb(fn); else if (!cimg::strcasecmp(ext,"rgba")) return save_rgba(fn); else if (!cimg::strcasecmp(ext,"png")) return save_png(fn); else if (!cimg::strcasecmp(ext,"pgm") || !cimg::strcasecmp(ext,"ppm") || !cimg::strcasecmp(ext,"pnm")) return save_pnm(fn); else if (!cimg::strcasecmp(ext,"pnk")) return save_pnk(fn); else if (!cimg::strcasecmp(ext,"pfm")) return save_pfm(fn); else if (!cimg::strcasecmp(ext,"exr")) return save_exr(fn); else if (!cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff")) return save_tiff(fn); // 3d binary formats else if (!cimg::strcasecmp(ext,"cimgz")) return save_cimg(fn,true); else if (!cimg::strcasecmp(ext,"cimg") || !*ext) return save_cimg(fn,false); else if (!cimg::strcasecmp(ext,"dcm")) return save_medcon_external(fn); else if (!cimg::strcasecmp(ext,"hdr") || !cimg::strcasecmp(ext,"nii")) return save_analyze(fn); else if (!cimg::strcasecmp(ext,"inr")) return save_inr(fn); else if (!cimg::strcasecmp(ext,"mnc")) return save_minc2(fn); else if (!cimg::strcasecmp(ext,"pan")) return save_pandore(fn); else if (!cimg::strcasecmp(ext,"raw")) return save_raw(fn); // Archive files else if (!cimg::strcasecmp(ext,"gz")) return save_gzip_external(fn); // Image sequences else if (!cimg::strcasecmp(ext,"yuv")) return save_yuv(fn,true); else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) return save_ffmpeg(fn); return save_other(fn); } //! Save image as an ascii file. /** \param filename Filename, as a C-string. **/ const CImg& save_ascii(const char *const filename) const { return _save_ascii(0,filename); } //! Save image as an ascii file \overloading. const CImg& save_ascii(std::FILE *const file) const { return _save_ascii(file,0); } const CImg& _save_ascii(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_ascii(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"w"); std::fprintf(nfile,"%u %u %u %u\n",_width,_height,_depth,_spectrum); const T* ptrs = _data; cimg_forYZC(*this,y,z,c) { cimg_forX(*this,x) std::fprintf(nfile,"%.16g ",(double)*(ptrs++)); std::fputc('\n',nfile); } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a .cpp source file. /** \param filename Filename, as a C-string. **/ const CImg& save_cpp(const char *const filename) const { return _save_cpp(0,filename); } //! Save image as a .cpp source file \overloading. const CImg& save_cpp(std::FILE *const file) const { return _save_cpp(file,0); } const CImg& _save_cpp(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_cpp(): Specified filename is (null).", cimg_instance); std::FILE *const nfile = file?file:cimg::fopen(filename,"w"); char varname[1024] = { 0 }; if (filename) std::sscanf(cimg::basename(filename),"%1023[a-zA-Z0-9_]",varname); if (!*varname) cimg_snprintf(varname,sizeof(varname),"unnamed"); std::fprintf(nfile, "/* Define image '%s' of size %ux%ux%ux%u and type '%s' */\n" "%s data_%s[] = { %s\n ", varname,_width,_height,_depth,_spectrum,pixel_type(),pixel_type(),varname, is_empty()?"};":""); if (!is_empty()) for (unsigned long off = 0, siz = size()-1; off<=siz; ++off) { std::fprintf(nfile,cimg::type::format(),cimg::type::format((*this)[off])); if (off==siz) std::fprintf(nfile," };\n"); else if (!((off+1)%16)) std::fprintf(nfile,",\n "); else std::fprintf(nfile,", "); } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a DLM file. /** \param filename Filename, as a C-string. **/ const CImg& save_dlm(const char *const filename) const { return _save_dlm(0,filename); } //! Save image as a DLM file \overloading. const CImg& save_dlm(std::FILE *const file) const { return _save_dlm(file,0); } const CImg& _save_dlm(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_dlm(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_depth>1) cimg::warn(_cimg_instance "save_dlm(): Instance is volumetric, values along Z will be unrolled in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (_spectrum>1) cimg::warn(_cimg_instance "save_dlm(): Instance is multispectral, values along C will be unrolled in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"w"); const T* ptrs = _data; cimg_forYZC(*this,y,z,c) { cimg_forX(*this,x) std::fprintf(nfile,"%.16g%s",(double)*(ptrs++),(x==width()-1)?"":","); std::fputc('\n',nfile); } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a BMP file. /** \param filename Filename, as a C-string. **/ const CImg& save_bmp(const char *const filename) const { return _save_bmp(0,filename); } //! Save image as a BMP file \overloading. const CImg& save_bmp(std::FILE *const file) const { return _save_bmp(file,0); } const CImg& _save_bmp(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_bmp(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_depth>1) cimg::warn(_cimg_instance "save_bmp(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (_spectrum>3) cimg::warn(_cimg_instance "save_bmp(): Instance is multispectral, only the three first channels will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); unsigned char header[54] = { 0 }, align_buf[4] = { 0 }; const unsigned int align = (4 - (3*_width)%4)%4, buf_size = (3*_width + align)*height(), file_size = 54 + buf_size; header[0] = 'B'; header[1] = 'M'; header[0x02] = file_size&0xFF; header[0x03] = (file_size>>8)&0xFF; header[0x04] = (file_size>>16)&0xFF; header[0x05] = (file_size>>24)&0xFF; header[0x0A] = 0x36; header[0x0E] = 0x28; header[0x12] = _width&0xFF; header[0x13] = (_width>>8)&0xFF; header[0x14] = (_width>>16)&0xFF; header[0x15] = (_width>>24)&0xFF; header[0x16] = _height&0xFF; header[0x17] = (_height>>8)&0xFF; header[0x18] = (_height>>16)&0xFF; header[0x19] = (_height>>24)&0xFF; header[0x1A] = 1; header[0x1B] = 0; header[0x1C] = 24; header[0x1D] = 0; header[0x22] = buf_size&0xFF; header[0x23] = (buf_size>>8)&0xFF; header[0x24] = (buf_size>>16)&0xFF; header[0x25] = (buf_size>>24)&0xFF; header[0x27] = 0x1; header[0x2B] = 0x1; cimg::fwrite(header,54,nfile); const T *ptr_r = data(0,_height-1,0,0), *ptr_g = (_spectrum>=2)?data(0,_height-1,0,1):0, *ptr_b = (_spectrum>=3)?data(0,_height-1,0,2):0; switch (_spectrum) { case 1 : { cimg_forY(*this,y) { cimg_forX(*this,x) { const unsigned char val = (unsigned char)*(ptr_r++); std::fputc(val,nfile); std::fputc(val,nfile); std::fputc(val,nfile); } cimg::fwrite(align_buf,align,nfile); ptr_r-=2*_width; } } break; case 2 : { cimg_forY(*this,y) { cimg_forX(*this,x) { std::fputc(0,nfile); std::fputc((unsigned char)(*(ptr_g++)),nfile); std::fputc((unsigned char)(*(ptr_r++)),nfile); } cimg::fwrite(align_buf,align,nfile); ptr_r-=2*_width; ptr_g-=2*_width; } } break; default : { cimg_forY(*this,y) { cimg_forX(*this,x) { std::fputc((unsigned char)(*(ptr_b++)),nfile); std::fputc((unsigned char)(*(ptr_g++)),nfile); std::fputc((unsigned char)(*(ptr_r++)),nfile); } cimg::fwrite(align_buf,align,nfile); ptr_r-=2*_width; ptr_g-=2*_width; ptr_b-=2*_width; } } } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a JPEG file. /** \param filename Filename, as a C-string. \param quality Image quality (in %) **/ const CImg& save_jpeg(const char *const filename, const unsigned int quality=100) const { return _save_jpeg(0,filename,quality); } //! Save image as a JPEG file \overloading. const CImg& save_jpeg(std::FILE *const file, const unsigned int quality=100) const { return _save_jpeg(file,0,quality); } const CImg& _save_jpeg(std::FILE *const file, const char *const filename, const unsigned int quality) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_jpeg(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_depth>1) cimg::warn(_cimg_instance "save_jpeg(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); #ifndef cimg_use_jpeg if (!file) return save_other(filename,quality); else throw CImgIOException(_cimg_instance "save_jpeg(): Unable to save data in '(*FILE)' unless libjpeg is enabled.", cimg_instance); #else unsigned int dimbuf = 0; J_COLOR_SPACE colortype = JCS_RGB; switch(_spectrum) { case 1 : dimbuf = 1; colortype = JCS_GRAYSCALE; break; case 2 : dimbuf = 3; colortype = JCS_RGB; break; case 3 : dimbuf = 3; colortype = JCS_RGB; break; default : dimbuf = 4; colortype = JCS_CMYK; break; } // Call libjpeg functions struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; cinfo.err = jpeg_std_error(&jerr); jpeg_create_compress(&cinfo); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); jpeg_stdio_dest(&cinfo,nfile); cinfo.image_width = _width; cinfo.image_height = _height; cinfo.input_components = dimbuf; cinfo.in_color_space = colortype; jpeg_set_defaults(&cinfo); jpeg_set_quality(&cinfo,quality<100?quality:100,TRUE); jpeg_start_compress(&cinfo,TRUE); JSAMPROW row_pointer[1]; CImg buffer((unsigned long)_width*dimbuf); while (cinfo.next_scanline& save_magick(const char *const filename, const unsigned int bytes_per_pixel=0) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_magick(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifdef cimg_use_magick double stmin, stmax = (double)max_min(stmin); if (_depth>1) cimg::warn(_cimg_instance "save_magick(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename); if (_spectrum>3) cimg::warn(_cimg_instance "save_magick(): Instance is multispectral, only the three first channels will be saved in file '%s'.", cimg_instance, filename); if (stmin<0 || (bytes_per_pixel==1 && stmax>=256) || stmax>=65536) cimg::warn(_cimg_instance "save_magick(): Instance has pixel values in [%g,%g], probable type overflow in file '%s'.", cimg_instance, filename,stmin,stmax); Magick::Image image(Magick::Geometry(_width,_height),"black"); image.type(Magick::TrueColorType); image.depth(bytes_per_pixel?(8*bytes_per_pixel):(stmax>=256?16:8)); const T *ptr_r = data(0,0,0,0), *ptr_g = _spectrum>1?data(0,0,0,1):0, *ptr_b = _spectrum>2?data(0,0,0,2):0; Magick::PixelPacket *pixels = image.getPixels(0,0,_width,_height); switch (_spectrum) { case 1 : // Scalar images for (unsigned long off = (unsigned long)_width*_height; off; --off) { pixels->red = pixels->green = pixels->blue = (Magick::Quantum)*(ptr_r++); ++pixels; } break; case 2 : // RG images for (unsigned long off = (unsigned long)_width*_height; off; --off) { pixels->red = (Magick::Quantum)*(ptr_r++); pixels->green = (Magick::Quantum)*(ptr_g++); pixels->blue = 0; ++pixels; } break; default : // RGB images for (unsigned long off = (unsigned long)_width*_height; off; --off) { pixels->red = (Magick::Quantum)*(ptr_r++); pixels->green = (Magick::Quantum)*(ptr_g++); pixels->blue = (Magick::Quantum)*(ptr_b++); ++pixels; } } image.syncPixels(); image.write(filename); #else cimg::unused(bytes_per_pixel); throw CImgIOException(_cimg_instance "save_magick(): Unable to save file '%s' unless libMagick++ is enabled.", cimg_instance, filename); #endif return *this; } //! Save image as a PNG file. /** \param filename Filename, as a C-string. \param bytes_per_pixel Force the number of bytes per pixels for the saving, when possible. **/ const CImg& save_png(const char *const filename, const unsigned int bytes_per_pixel=0) const { return _save_png(0,filename,bytes_per_pixel); } //! Save image as a PNG file \overloading. const CImg& save_png(std::FILE *const file, const unsigned int bytes_per_pixel=0) const { return _save_png(file,0,bytes_per_pixel); } const CImg& _save_png(std::FILE *const file, const char *const filename, const unsigned int bytes_per_pixel=0) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_png(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } #ifndef cimg_use_png cimg::unused(bytes_per_pixel); if (!file) return save_other(filename); else throw CImgIOException(_cimg_instance "save_png(): Unable to save data in '(*FILE)' unless libpng is enabled.", cimg_instance); #else const char *volatile nfilename = filename; // two 'volatile' here to remove a g++ warning due to 'setjmp'. std::FILE *volatile nfile = file?file:cimg::fopen(nfilename,"wb"); double stmin, stmax = (double)max_min(stmin); if (_depth>1) cimg::warn(_cimg_instance "save_png(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename); if (_spectrum>4) cimg::warn(_cimg_instance "save_png(): Instance is multispectral, only the three first channels will be saved in file '%s'.", cimg_instance, filename); if (stmin<0 || (bytes_per_pixel==1 && stmax>=256) || stmax>=65536) cimg::warn(_cimg_instance "save_png(): Instance has pixel values in [%g,%g], probable type overflow in file '%s'.", cimg_instance, filename,stmin,stmax); // Setup PNG structures for write png_voidp user_error_ptr = 0; png_error_ptr user_error_fn = 0, user_warning_fn = 0; png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,user_error_ptr, user_error_fn, user_warning_fn); if(!png_ptr){ if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "save_png(): Failed to initialize 'png_ptr' structure when saving file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_infop info_ptr = png_create_info_struct(png_ptr); if (!info_ptr) { png_destroy_write_struct(&png_ptr,(png_infopp)0); if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "save_png(): Failed to initialize 'info_ptr' structure when saving file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_write_struct(&png_ptr, &info_ptr); if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "save_png(): Encountered unknown fatal error in libpng when saving file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_init_io(png_ptr, nfile); const int bit_depth = bytes_per_pixel?(bytes_per_pixel*8):(stmax>=256?16:8); int color_type; switch (spectrum()) { case 1 : color_type = PNG_COLOR_TYPE_GRAY; break; case 2 : color_type = PNG_COLOR_TYPE_GRAY_ALPHA; break; case 3 : color_type = PNG_COLOR_TYPE_RGB; break; default : color_type = PNG_COLOR_TYPE_RGB_ALPHA; } const int interlace_type = PNG_INTERLACE_NONE; const int compression_type = PNG_COMPRESSION_TYPE_DEFAULT; const int filter_method = PNG_FILTER_TYPE_DEFAULT; png_set_IHDR(png_ptr,info_ptr,_width,_height,bit_depth,color_type,interlace_type,compression_type,filter_method); png_write_info(png_ptr,info_ptr); const int byte_depth = bit_depth>>3; const int numChan = spectrum()>4?4:spectrum(); const int pixel_bit_depth_flag = numChan * (bit_depth-1); // Allocate Memory for Image Save and Fill pixel data png_bytep *const imgData = new png_byte*[_height]; for (unsigned int row = 0; row<_height; ++row) imgData[row] = new png_byte[byte_depth*numChan*_width]; const T *pC0 = data(0,0,0,0); switch (pixel_bit_depth_flag) { case 7 : { // Gray 8-bit cimg_forY(*this,y) { unsigned char *ptrd = imgData[y]; cimg_forX(*this,x) *(ptrd++) = (unsigned char)*(pC0++); } } break; case 14 : { // Gray w/ Alpha 8-bit const T *pC1 = data(0,0,0,1); cimg_forY(*this,y) { unsigned char *ptrd = imgData[y]; cimg_forX(*this,x) { *(ptrd++) = (unsigned char)*(pC0++); *(ptrd++) = (unsigned char)*(pC1++); } } } break; case 21 : { // RGB 8-bit const T *pC1 = data(0,0,0,1), *pC2 = data(0,0,0,2); cimg_forY(*this,y) { unsigned char *ptrd = imgData[y]; cimg_forX(*this,x) { *(ptrd++) = (unsigned char)*(pC0++); *(ptrd++) = (unsigned char)*(pC1++); *(ptrd++) = (unsigned char)*(pC2++); } } } break; case 28 : { // RGB x/ Alpha 8-bit const T *pC1 = data(0,0,0,1), *pC2 = data(0,0,0,2), *pC3 = data(0,0,0,3); cimg_forY(*this,y){ unsigned char *ptrd = imgData[y]; cimg_forX(*this,x){ *(ptrd++) = (unsigned char)*(pC0++); *(ptrd++) = (unsigned char)*(pC1++); *(ptrd++) = (unsigned char)*(pC2++); *(ptrd++) = (unsigned char)*(pC3++); } } } break; case 15 : { // Gray 16-bit cimg_forY(*this,y){ unsigned short *ptrd = (unsigned short*)(imgData[y]); cimg_forX(*this,x) *(ptrd++) = (unsigned short)*(pC0++); if (!cimg::endianness()) cimg::invert_endianness((unsigned short*)imgData[y],_width); } } break; case 30 : { // Gray w/ Alpha 16-bit const T *pC1 = data(0,0,0,1); cimg_forY(*this,y){ unsigned short *ptrd = (unsigned short*)(imgData[y]); cimg_forX(*this,x) { *(ptrd++) = (unsigned short)*(pC0++); *(ptrd++) = (unsigned short)*(pC1++); } if (!cimg::endianness()) cimg::invert_endianness((unsigned short*)imgData[y],2*_width); } } break; case 45 : { // RGB 16-bit const T *pC1 = data(0,0,0,1), *pC2 = data(0,0,0,2); cimg_forY(*this,y) { unsigned short *ptrd = (unsigned short*)(imgData[y]); cimg_forX(*this,x) { *(ptrd++) = (unsigned short)*(pC0++); *(ptrd++) = (unsigned short)*(pC1++); *(ptrd++) = (unsigned short)*(pC2++); } if (!cimg::endianness()) cimg::invert_endianness((unsigned short*)imgData[y],3*_width); } } break; case 60 : { // RGB w/ Alpha 16-bit const T *pC1 = data(0,0,0,1), *pC2 = data(0,0,0,2), *pC3 = data(0,0,0,3); cimg_forY(*this,y) { unsigned short *ptrd = (unsigned short*)(imgData[y]); cimg_forX(*this,x) { *(ptrd++) = (unsigned short)*(pC0++); *(ptrd++) = (unsigned short)*(pC1++); *(ptrd++) = (unsigned short)*(pC2++); *(ptrd++) = (unsigned short)*(pC3++); } if (!cimg::endianness()) cimg::invert_endianness((unsigned short*)imgData[y],4*_width); } } break; default : if (!file) cimg::fclose(nfile); throw CImgIOException(_cimg_instance "save_png(): Encountered unknown fatal error in libpng when saving file '%s'.", cimg_instance, nfilename?nfilename:"(FILE*)"); } png_write_image(png_ptr,imgData); png_write_end(png_ptr,info_ptr); png_destroy_write_struct(&png_ptr, &info_ptr); // Deallocate Image Write Memory cimg_forY(*this,n) delete[] imgData[n]; delete[] imgData; if (!file) cimg::fclose(nfile); return *this; #endif } //! Save image as a PNM file. /** \param filename Filename, as a C-string. \param bytes_per_pixel Force the number of bytes per pixels for the saving. **/ const CImg& save_pnm(const char *const filename, const unsigned int bytes_per_pixel=0) const { return _save_pnm(0,filename,bytes_per_pixel); } //! Save image as a PNM file \overloading. const CImg& save_pnm(std::FILE *const file, const unsigned int bytes_per_pixel=0) const { return _save_pnm(file,0,bytes_per_pixel); } const CImg& _save_pnm(std::FILE *const file, const char *const filename, const unsigned int bytes_per_pixel=0) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_pnm(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } double stmin, stmax = (double)max_min(stmin); if (_depth>1) cimg::warn(_cimg_instance "save_pnm(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (_spectrum>3) cimg::warn(_cimg_instance "save_pnm(): Instance is multispectral, only the three first channels will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (stmin<0 || (bytes_per_pixel==1 && stmax>=256) || stmax>=65536) cimg::warn(_cimg_instance "save_pnm(): Instance has pixel values in [%g,%g], probable type overflow in file '%s'.", cimg_instance, stmin,stmax,filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const T *ptr_r = data(0,0,0,0), *ptr_g = (_spectrum>=2)?data(0,0,0,1):0, *ptr_b = (_spectrum>=3)?data(0,0,0,2):0; const unsigned long buf_size = cimg::min(1024*1024UL,_width*_height*(_spectrum==1?1UL:3UL)); std::fprintf(nfile,"P%c\n%u %u\n%u\n", (_spectrum==1?'5':'6'),_width,_height,stmax<256?255:(stmax<4096?4095:65535)); switch (_spectrum) { case 1 : { // Scalar image if (bytes_per_pixel==1 || (!bytes_per_pixel && stmax<256)) { // Binary PGM 8 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); unsigned char *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (unsigned char)*(ptr_r++); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } else { // Binary PGM 16 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); unsigned short *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (unsigned short)*(ptr_r++); if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } } break; case 2 : { // RG image if (bytes_per_pixel==1 || (!bytes_per_pixel && stmax<256)) { // Binary PPM 8 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size/3); unsigned char *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (unsigned char)*(ptr_r++); *(ptrd++) = (unsigned char)*(ptr_g++); *(ptrd++) = 0; } cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } else { // Binary PPM 16 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size/3); unsigned short *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (unsigned short)*(ptr_r++); *(ptrd++) = (unsigned short)*(ptr_g++); *(ptrd++) = 0; } if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } } break; default : { // RGB image if (bytes_per_pixel==1 || (!bytes_per_pixel && stmax<256)) { // Binary PPM 8 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size/3); unsigned char *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (unsigned char)*(ptr_r++); *(ptrd++) = (unsigned char)*(ptr_g++); *(ptrd++) = (unsigned char)*(ptr_b++); } cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } else { // Binary PPM 16 bits CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size/3); unsigned short *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (unsigned short)*(ptr_r++); *(ptrd++) = (unsigned short)*(ptr_g++); *(ptrd++) = (unsigned short)*(ptr_b++); } if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } } } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a PNK file. /** \param filename Filename, as a C-string. **/ const CImg& save_pnk(const char *const filename) const { return _save_pnk(0,filename); } //! Save image as a PNK file \overloading. const CImg& save_pnk(std::FILE *const file) const { return _save_pnk(file,0); } const CImg& _save_pnk(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_pnk(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_spectrum>1) cimg::warn(_cimg_instance "save_pnk(): Instance is multispectral, only the first channel will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); const unsigned long buf_size = cimg::min(1024*1024LU,_width*_height*_depth); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const T *ptr = data(0,0,0,0); if (!cimg::type::is_float() && sizeof(T)==1 && _depth<2) _save_pnm(file,filename,0); // Can be saved as regular PNM file. else if (!cimg::type::is_float() && sizeof(T)==1) { // Save as extended P5 file: Binary byte-valued 3d. std::fprintf(nfile,"P5\n%u %u %u\n255\n",_width,_height,_depth); CImg buf(buf_size); for (long to_write = (long)_width*_height*_depth; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); unsigned char *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (unsigned char)*(ptr++); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } else if (!cimg::type::is_float()) { // Save as P8: Binary int32-valued 3d. if (_depth>1) std::fprintf(nfile,"P8\n%u %u %u\n%d\n",_width,_height,_depth,(int)max()); else std::fprintf(nfile,"P8\n%u %u\n%d\n",_width,_height,(int)max()); CImg buf(buf_size); for (long to_write = (long)_width*_height*_depth; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); int *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (int)*(ptr++); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } else { // Save as P9: Binary float-valued 3d. if (_depth>1) std::fprintf(nfile,"P9\n%u %u %u\n%g\n",_width,_height,_depth,(double)max()); else std::fprintf(nfile,"P9\n%u %u\n%g\n",_width,_height,(double)max()); CImg buf(buf_size); for (long to_write = (long)_width*_height*_depth; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); float *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (float)*(ptr++); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a PFM file. /** \param filename Filename, as a C-string. **/ const CImg& save_pfm(const char *const filename) const { return get_mirror('y')._save_pfm(0,filename); } //! Save image as a PFM file \overloading. const CImg& save_pfm(std::FILE *const file) const { return get_mirror('y')._save_pfm(file,0); } const CImg& _save_pfm(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_pfm(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_depth>1) cimg::warn(_cimg_instance "save_pfm(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); if (_spectrum>3) cimg::warn(_cimg_instance "save_pfm(): image instance is multispectral, only the three first channels will be saved in file '%s'.", cimg_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const T *ptr_r = data(0,0,0,0), *ptr_g = (_spectrum>=2)?data(0,0,0,1):0, *ptr_b = (_spectrum>=3)?data(0,0,0,2):0; const unsigned int buf_size = cimg::min(1024*1024U,_width*_height*(_spectrum==1?1:3)); std::fprintf(nfile,"P%c\n%u %u\n1.0\n", (_spectrum==1?'f':'F'),_width,_height); switch (_spectrum) { case 1 : { // Scalar image CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned long N = cimg::min((unsigned long)to_write,buf_size); float *ptrd = buf._data; for (unsigned long i = N; i>0; --i) *(ptrd++) = (float)*(ptr_r++); if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,N,nfile); to_write-=N; } } break; case 2 : { // RG image CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned int N = cimg::min((unsigned int)to_write,buf_size/3); float *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (float)*(ptr_r++); *(ptrd++) = (float)*(ptr_g++); *(ptrd++) = 0; } if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } break; default : { // RGB image CImg buf(buf_size); for (long to_write = (long)_width*_height; to_write>0; ) { const unsigned int N = cimg::min((unsigned int)to_write,buf_size/3); float *ptrd = buf._data; for (unsigned long i = N; i>0; --i) { *(ptrd++) = (float)*(ptr_r++); *(ptrd++) = (float)*(ptr_g++); *(ptrd++) = (float)*(ptr_b++); } if (!cimg::endianness()) cimg::invert_endianness(buf._data,buf_size); cimg::fwrite(buf._data,3*N,nfile); to_write-=N; } } } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a RGB file. /** \param filename Filename, as a C-string. **/ const CImg& save_rgb(const char *const filename) const { return _save_rgb(0,filename); } //! Save image as a RGB file \overloading. const CImg& save_rgb(std::FILE *const file) const { return _save_rgb(file,0); } const CImg& _save_rgb(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_rgb(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_spectrum!=3) cimg::warn(_cimg_instance "save_rgb(): image instance has not exactly 3 channels, for file '%s'.", cimg_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const unsigned long wh = (unsigned long)_width*_height; unsigned char *const buffer = new unsigned char[3*wh], *nbuffer = buffer; const T *ptr1 = data(0,0,0,0), *ptr2 = _spectrum>1?data(0,0,0,1):0, *ptr3 = _spectrum>2?data(0,0,0,2):0; switch (_spectrum) { case 1 : { // Scalar image for (unsigned long k = 0; k& save_rgba(const char *const filename) const { return _save_rgba(0,filename); } //! Save image as a RGBA file \overloading. const CImg& save_rgba(std::FILE *const file) const { return _save_rgba(file,0); } const CImg& _save_rgba(std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_rgba(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if (_spectrum!=4) cimg::warn(_cimg_instance "save_rgba(): image instance has not exactly 4 channels, for file '%s'.", cimg_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const unsigned long wh = (unsigned long)_width*_height; unsigned char *const buffer = new unsigned char[4*wh], *nbuffer = buffer; const T *ptr1 = data(0,0,0,0), *ptr2 = _spectrum>1?data(0,0,0,1):0, *ptr3 = _spectrum>2?data(0,0,0,2):0, *ptr4 = _spectrum>3?data(0,0,0,3):0; switch (_spectrum) { case 1 : { // Scalar images for (unsigned long k = 0; k{ 1=None | 2=CCITTRLE | 3=CCITTFAX3 | 4=CCITTFAX4 | 5=LZW | 6=JPEG }. \note - libtiff support is enabled by defining the precompilation directive \c cimg_use_tif. - When libtiff is enabled, 2D and 3D (multipage) several channel per pixel are supported for char,uchar,short,ushort,float and \c double pixel types. - If \c cimg_use_tif is not defined at compilation time the function uses CImg&save_other(const char*). **/ const CImg& save_tiff(const char *const filename, const unsigned int compression_type=0) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_tiff(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifdef cimg_use_tiff TIFF *tif = TIFFOpen(filename,"w"); if (tif) { cimg_forZ(*this,z) get_slice(z)._save_tiff(tif,z,compression_type); TIFFClose(tif); } else throw CImgIOException(_cimg_instance "save_tiff(): Failed to open file '%s' for writing.", cimg_instance, filename); #else cimg::unused(compression_type); return save_other(filename); #endif return *this; } #ifdef cimg_use_tiff #define _cimg_save_tiff(types,typed,compression_type) \ if (!std::strcmp(types,pixel_type())) { const typed foo = (typed)0; return _save_tiff(tif,directory,foo,compression_type); } // [internal] Save a plane into a tiff file template const CImg& _save_tiff(TIFF *tif, const unsigned int directory, const t& pixel_t, const unsigned int compression_type) const { if (is_empty() || !tif || pixel_t) return *this; const char *const filename = TIFFFileName(tif); uint32 rowsperstrip = (uint32)-1; uint16 spp = _spectrum, bpp = sizeof(t)*8, photometric; if (spp==3 || spp==4) photometric = PHOTOMETRIC_RGB; else photometric = PHOTOMETRIC_MINISBLACK; TIFFSetDirectory(tif,directory); TIFFSetField(tif,TIFFTAG_IMAGEWIDTH,_width); TIFFSetField(tif,TIFFTAG_IMAGELENGTH,_height); TIFFSetField(tif,TIFFTAG_ORIENTATION,ORIENTATION_TOPLEFT); TIFFSetField(tif,TIFFTAG_SAMPLESPERPIXEL,spp); if (cimg::type::is_float()) TIFFSetField(tif,TIFFTAG_SAMPLEFORMAT,3); else if (cimg::type::min()==0) TIFFSetField(tif,TIFFTAG_SAMPLEFORMAT,1); else TIFFSetField(tif,TIFFTAG_SAMPLEFORMAT,2); TIFFSetField(tif,TIFFTAG_BITSPERSAMPLE,bpp); TIFFSetField(tif,TIFFTAG_PLANARCONFIG,PLANARCONFIG_CONTIG); TIFFSetField(tif,TIFFTAG_PHOTOMETRIC,photometric); TIFFSetField(tif,TIFFTAG_COMPRESSION,compression_type?(compression_type-1):COMPRESSION_NONE); rowsperstrip = TIFFDefaultStripSize(tif,rowsperstrip); TIFFSetField(tif,TIFFTAG_ROWSPERSTRIP,rowsperstrip); TIFFSetField(tif,TIFFTAG_FILLORDER,FILLORDER_MSB2LSB); TIFFSetField(tif,TIFFTAG_SOFTWARE,"CImg"); t *const buf = (t*)_TIFFmalloc(TIFFStripSize(tif)); if (buf) { for (unsigned int row = 0; row<_height; row+=rowsperstrip) { uint32 nrow = (row + rowsperstrip>_height?_height-row:rowsperstrip); tstrip_t strip = TIFFComputeStrip(tif,row,0); tsize_t i = 0; for (unsigned int rr = 0; rr& _save_tiff(TIFF *tif, const unsigned int directory, const unsigned int compression_type) const { _cimg_save_tiff("bool",unsigned char,compression_type); _cimg_save_tiff("char",char,compression_type); _cimg_save_tiff("unsigned char",unsigned char,compression_type); _cimg_save_tiff("short",short,compression_type); _cimg_save_tiff("unsigned short",unsigned short,compression_type); _cimg_save_tiff("int",int,compression_type); _cimg_save_tiff("unsigned int",unsigned int,compression_type); _cimg_save_tiff("long",int,compression_type); _cimg_save_tiff("unsigned long",unsigned int,compression_type); _cimg_save_tiff("float",float,compression_type); _cimg_save_tiff("double",float,compression_type); const char *const filename = TIFFFileName(tif); throw CImgInstanceException(_cimg_instance "save_tiff(): Unsupported pixel type '%s' for file '%s'.", cimg_instance, pixel_type(),filename?filename:"(FILE*)"); return *this; } #endif //! Save image as a MINC2 file. /** \param filename Filename, as a C-string. \param imitate_file If non-zero, reference filename, as a C-string, to borrow header from. **/ const CImg& save_minc2(const char *const filename, const char *const imitate_file=0) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_minc2(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifndef cimg_use_minc2 cimg::unused(imitate_file); return save_other(filename); #else minc::minc_1_writer wtr; if (imitate_file) wtr.open(filename, imitate_file); else { minc::minc_info di; if(width()) di.push_back(minc::dim_info(width(), width()*0.5, -1, minc::dim_info::DIM_X)); if(height()) di.push_back(minc::dim_info(height(), height()*0.5, -1, minc::dim_info::DIM_Y)); if(depth()) di.push_back(minc::dim_info(depth(), depth()*0.5, -1, minc::dim_info::DIM_Z)); if(spectrum()) di.push_back(minc::dim_info(spectrum(), spectrum()*0.5, -1, minc::dim_info::DIM_TIME)); wtr.open(filename, di, 1, NC_FLOAT, 0); } if(typeid(T)==typeid(unsigned char)) wtr.setup_write_byte(); else if(typeid(T)==typeid(int)) wtr.setup_write_int(); else if(typeid(T)==typeid(double)) wtr.setup_write_double(); else wtr.setup_write_float(); minc::save_standard_volume(wtr, this->_data); return *this; #endif } //! Save image as an ANALYZE7.5 or NIFTI file. /** \param filename Filename, as a C-string. \param voxel_size Pointer to 3 consecutive values that tell about the voxel sizes along the X,Y and Z dimensions. **/ const CImg& save_analyze(const char *const filename, const float *const voxel_size=0) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_analyze(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } std::FILE *file; char header[348] = { 0 }, hname[1024] = { 0 }, iname[1024] = { 0 }; const char *const ext = cimg::split_filename(filename); short datatype=-1; std::memset(header,0,348); if (!*ext) { cimg_snprintf(hname,sizeof(hname),"%s.hdr",filename); cimg_snprintf(iname,sizeof(iname),"%s.img",filename); } if (!cimg::strncasecmp(ext,"hdr",3)) { std::strcpy(hname,filename); std::strncpy(iname,filename,sizeof(iname)-1); std::sprintf(iname + std::strlen(iname)-3,"img"); } if (!cimg::strncasecmp(ext,"img",3)) { std::strcpy(hname,filename); std::strncpy(iname,filename,sizeof(iname)-1); std::sprintf(hname + std::strlen(iname)-3,"hdr"); } if (!cimg::strncasecmp(ext,"nii",3)) { std::strncpy(hname,filename,sizeof(hname)-1); *iname = 0; } int *const iheader = (int*)header; *iheader = 348; std::strcpy(header + 4,"CImg"); std::strcpy(header + 14," "); ((short*)(header + 36))[0] = 4096; ((char*)(header + 38))[0] = 114; ((short*)(header + 40))[0] = 4; ((short*)(header + 40))[1] = _width; ((short*)(header + 40))[2] = _height; ((short*)(header + 40))[3] = _depth; ((short*)(header + 40))[4] = _spectrum; if (!cimg::strcasecmp(pixel_type(),"bool")) datatype = 2; if (!cimg::strcasecmp(pixel_type(),"unsigned char")) datatype = 2; if (!cimg::strcasecmp(pixel_type(),"char")) datatype = 2; if (!cimg::strcasecmp(pixel_type(),"unsigned short")) datatype = 4; if (!cimg::strcasecmp(pixel_type(),"short")) datatype = 4; if (!cimg::strcasecmp(pixel_type(),"unsigned int")) datatype = 8; if (!cimg::strcasecmp(pixel_type(),"int")) datatype = 8; if (!cimg::strcasecmp(pixel_type(),"unsigned long")) datatype = 8; if (!cimg::strcasecmp(pixel_type(),"long")) datatype = 8; if (!cimg::strcasecmp(pixel_type(),"float")) datatype = 16; if (!cimg::strcasecmp(pixel_type(),"double")) datatype = 64; if (datatype<0) throw CImgIOException(_cimg_instance "save_analyze(): Unsupported pixel type '%s' for file '%s'.", cimg_instance, pixel_type(),filename); ((short*)(header+70))[0] = datatype; ((short*)(header+72))[0] = sizeof(T); ((float*)(header+112))[0] = 1; ((float*)(header+76))[0] = 0; if (voxel_size) { ((float*)(header+76))[1] = voxel_size[0]; ((float*)(header+76))[2] = voxel_size[1]; ((float*)(header+76))[3] = voxel_size[2]; } else ((float*)(header+76))[1] = ((float*)(header+76))[2] = ((float*)(header+76))[3] = 1; file = cimg::fopen(hname,"wb"); cimg::fwrite(header,348,file); if (*iname) { cimg::fclose(file); file = cimg::fopen(iname,"wb"); } cimg::fwrite(_data,size(),file); cimg::fclose(file); return *this; } //! Save image as a .cimg file. /** \param filename Filename, as a C-string. \param is_compressed Tells if the file contains compressed image data. **/ const CImg& save_cimg(const char *const filename, const bool is_compressed=false) const { CImgList(*this,true).save_cimg(filename,is_compressed); return *this; } //! Save image as a .cimg file \overloading. const CImg& save_cimg(std::FILE *const file, const bool is_compressed=false) const { CImgList(*this,true).save_cimg(file,is_compressed); return *this; } //! Save image as a sub-image into an existing .cimg file. /** \param filename Filename, as a C-string. \param n0 Index of the image inside the file. \param x0 X-coordinate of the sub-image location. \param y0 Y-coordinate of the sub-image location. \param z0 Z-coordinate of the sub-image location. \param c0 C-coordinate of the sub-image location. **/ const CImg& save_cimg(const char *const filename, const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { CImgList(*this,true).save_cimg(filename,n0,x0,y0,z0,c0); return *this; } //! Save image as a sub-image into an existing .cimg file \overloading. const CImg& save_cimg(std::FILE *const file, const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { CImgList(*this,true).save_cimg(file,n0,x0,y0,z0,c0); return *this; } //! Save blank image as a .cimg file. /** \param filename Filename, as a C-string. \param dx Width of the image. \param dy Height of the image. \param dz Depth of the image. \param dc Number of channels of the image. \note - All pixel values of the saved image are set to \c 0. - Use this method to save large images without having to instanciate and allocate them. **/ static void save_empty_cimg(const char *const filename, const unsigned int dx, const unsigned int dy=1, const unsigned int dz=1, const unsigned int dc=1) { return CImgList::save_empty_cimg(filename,1,dx,dy,dz,dc); } //! Save blank image as a .cimg file \overloading. /** Same as save_empty_cimg(const char *,unsigned int,unsigned int,unsigned int,unsigned int) with a file stream argument instead of a filename string. **/ static void save_empty_cimg(std::FILE *const file, const unsigned int dx, const unsigned int dy=1, const unsigned int dz=1, const unsigned int dc=1) { return CImgList::save_empty_cimg(file,1,dx,dy,dz,dc); } //! Save image as an INRIMAGE-4 file. /** \param filename Filename, as a C-string. \param voxel_size Pointer to 3 values specifying the voxel sizes along the X,Y and Z dimensions. **/ const CImg& save_inr(const char *const filename, const float *const voxel_size=0) const { return _save_inr(0,filename,voxel_size); } //! Save image as an INRIMAGE-4 file \overloading. const CImg& save_inr(std::FILE *const file, const float *const voxel_size=0) const { return _save_inr(file,0,voxel_size); } const CImg& _save_inr(std::FILE *const file, const char *const filename, const float *const voxel_size) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_inr(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } int inrpixsize=-1; const char *inrtype = "unsigned fixed\nPIXSIZE=8 bits\nSCALE=2**0"; if (!cimg::strcasecmp(pixel_type(),"unsigned char")) { inrtype = "unsigned fixed\nPIXSIZE=8 bits\nSCALE=2**0"; inrpixsize = 1; } if (!cimg::strcasecmp(pixel_type(),"char")) { inrtype = "fixed\nPIXSIZE=8 bits\nSCALE=2**0"; inrpixsize = 1; } if (!cimg::strcasecmp(pixel_type(),"unsigned short")) { inrtype = "unsigned fixed\nPIXSIZE=16 bits\nSCALE=2**0";inrpixsize = 2; } if (!cimg::strcasecmp(pixel_type(),"short")) { inrtype = "fixed\nPIXSIZE=16 bits\nSCALE=2**0"; inrpixsize = 2; } if (!cimg::strcasecmp(pixel_type(),"unsigned int")) { inrtype = "unsigned fixed\nPIXSIZE=32 bits\nSCALE=2**0";inrpixsize = 4; } if (!cimg::strcasecmp(pixel_type(),"int")) { inrtype = "fixed\nPIXSIZE=32 bits\nSCALE=2**0"; inrpixsize = 4; } if (!cimg::strcasecmp(pixel_type(),"float")) { inrtype = "float\nPIXSIZE=32 bits"; inrpixsize = 4; } if (!cimg::strcasecmp(pixel_type(),"double")) { inrtype = "float\nPIXSIZE=64 bits"; inrpixsize = 8; } if (inrpixsize<=0) throw CImgIOException(_cimg_instance "save_inr(): Unsupported pixel type '%s' for file '%s'", cimg_instance, pixel_type(),filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); char header[257] = { 0 }; int err = cimg_snprintf(header,sizeof(header),"#INRIMAGE-4#{\nXDIM=%u\nYDIM=%u\nZDIM=%u\nVDIM=%u\n",_width,_height,_depth,_spectrum); if (voxel_size) err+=std::sprintf(header + err,"VX=%g\nVY=%g\nVZ=%g\n",voxel_size[0],voxel_size[1],voxel_size[2]); err+=std::sprintf(header + err,"TYPE=%s\nCPU=%s\n",inrtype,cimg::endianness()?"sun":"decm"); std::memset(header + err,'\n',252 - err); std::memcpy(header + 252,"##}\n",4); cimg::fwrite(header,256,nfile); cimg_forXYZ(*this,x,y,z) cimg_forC(*this,c) cimg::fwrite(&((*this)(x,y,z,c)),1,nfile); if (!file) cimg::fclose(nfile); return *this; } //! Save image as an OpenEXR file. /** \param filename Filename, as a C-string. \note The OpenEXR file format is described here. **/ const CImg& save_exr(const char *const filename) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_exr(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } if (_depth>1) cimg::warn(_cimg_instance "save_exr(): Instance is volumetric, only the first slice will be saved in file '%s'.", cimg_instance, filename); #ifndef cimg_use_openexr return save_other(filename); #else Imf::Rgba *const ptrd0 = new Imf::Rgba[(unsigned long)_width*_height], *ptrd = ptrd0, rgba; switch (_spectrum) { case 1 : { // Grayscale image. for (const T *ptr_r = data(), *const ptr_e = ptr_r + (unsigned long)_width*_height; ptr_rPandore file specifications for more informations). **/ const CImg& save_pandore(const char *const filename, const unsigned int colorspace=0) const { return _save_pandore(0,filename,colorspace); } //! Save image as a Pandore-5 file \overloading. /** Same as save_pandore(const char *,unsigned int) const with a file stream argument instead of a filename string. **/ const CImg& save_pandore(std::FILE *const file, const unsigned int colorspace=0) const { return _save_pandore(file,0,colorspace); } unsigned int _save_pandore_header_length(unsigned int id, unsigned int *dims, const unsigned int colorspace) const { unsigned int nbdims = 0; if (id==2 || id==3 || id==4) { dims[0] = 1; dims[1] = _width; nbdims = 2; } if (id==5 || id==6 || id==7) { dims[0] = 1; dims[1] = _height; dims[2] = _width; nbdims=3; } if (id==8 || id==9 || id==10) { dims[0] = _spectrum; dims[1] = _depth; dims[2] = _height; dims[3] = _width; nbdims = 4; } if (id==16 || id==17 || id==18) { dims[0] = 3; dims[1] = _height; dims[2] = _width; dims[3] = colorspace; nbdims = 4; } if (id==19 || id==20 || id==21) { dims[0] = 3; dims[1] = _depth; dims[2] = _height; dims[3] = _width; dims[4] = colorspace; nbdims = 5; } if (id==22 || id==23 || id==25) { dims[0] = _spectrum; dims[1] = _width; nbdims = 2; } if (id==26 || id==27 || id==29) { dims[0] = _spectrum; dims[1] = _height; dims[2] = _width; nbdims=3; } if (id==30 || id==31 || id==33) { dims[0] = _spectrum; dims[1] = _depth; dims[2] = _height; dims[3] = _width; nbdims = 4; } return nbdims; } const CImg& _save_pandore(std::FILE *const file, const char *const filename, const unsigned int colorspace) const { #define __cimg_save_pandore_case(dtype) \ dtype *buffer = new dtype[size()]; \ const T *ptrs = _data; \ cimg_foroff(*this,off) *(buffer++) = (dtype)(*(ptrs++)); \ buffer-=size(); \ cimg::fwrite(buffer,size(),nfile); \ delete[] buffer #define _cimg_save_pandore_case(sy,sz,sv,stype,id) \ if (!saved && (sy?(sy==_height):true) && (sz?(sz==_depth):true) && (sv?(sv==_spectrum):true) && !std::strcmp(stype,pixel_type())) { \ unsigned int *iheader = (unsigned int*)(header+12); \ nbdims = _save_pandore_header_length((*iheader=id),dims,colorspace); \ cimg::fwrite(header,36,nfile); \ if (sizeof(unsigned long)==4) { unsigned long ndims[5] = { 0 }; for (int d = 0; d<5; ++d) ndims[d] = (unsigned long)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \ else if (sizeof(unsigned int)==4) { unsigned int ndims[5] = { 0 }; for (int d = 0; d<5; ++d) ndims[d] = (unsigned int)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \ else if (sizeof(unsigned short)==4) { unsigned short ndims[5] = { 0 }; for (int d = 0; d<5; ++d) ndims[d] = (unsigned short)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \ else throw CImgIOException(_cimg_instance \ "save_pandore(): Unsupported datatype for file '%s'.",\ cimg_instance, \ filename?filename:"(FILE*)"); \ if (id==2 || id==5 || id==8 || id==16 || id==19 || id==22 || id==26 || id==30) { \ __cimg_save_pandore_case(unsigned char); \ } else if (id==3 || id==6 || id==9 || id==17 || id==20 || id==23 || id==27 || id==31) { \ if (sizeof(unsigned long)==4) { __cimg_save_pandore_case(unsigned long); } \ else if (sizeof(unsigned int)==4) { __cimg_save_pandore_case(unsigned int); } \ else if (sizeof(unsigned short)==4) { __cimg_save_pandore_case(unsigned short); } \ else throw CImgIOException(_cimg_instance \ "save_pandore(): Unsupported datatype for file '%s'.",\ cimg_instance, \ filename?filename:"(FILE*)"); \ } else if (id==4 || id==7 || id==10 || id==18 || id==21 || id==25 || id==29 || id==33) { \ if (sizeof(double)==4) { __cimg_save_pandore_case(double); } \ else if (sizeof(float)==4) { __cimg_save_pandore_case(float); } \ else throw CImgIOException(_cimg_instance \ "save_pandore(): Unsupported datatype for file '%s'.",\ cimg_instance, \ filename?filename:"(FILE*)"); \ } \ saved = true; \ } if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_pandore(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); unsigned char header[36] = { 'P','A','N','D','O','R','E','0','4',0,0,0, 0,0,0,0,'C','I','m','g',0,0,0,0,0,'N','o',' ','d','a','t','e',0,0,0,0 }; unsigned int nbdims, dims[5] = { 0 }; bool saved = false; _cimg_save_pandore_case(1,1,1,"unsigned char",2); _cimg_save_pandore_case(1,1,1,"char",3); _cimg_save_pandore_case(1,1,1,"short",3); _cimg_save_pandore_case(1,1,1,"unsigned short",3); _cimg_save_pandore_case(1,1,1,"unsigned int",3); _cimg_save_pandore_case(1,1,1,"int",3); _cimg_save_pandore_case(1,1,1,"unsigned long",4); _cimg_save_pandore_case(1,1,1,"long",3); _cimg_save_pandore_case(1,1,1,"float",4); _cimg_save_pandore_case(1,1,1,"double",4); _cimg_save_pandore_case(0,1,1,"unsigned char",5); _cimg_save_pandore_case(0,1,1,"char",6); _cimg_save_pandore_case(0,1,1,"short",6); _cimg_save_pandore_case(0,1,1,"unsigned short",6); _cimg_save_pandore_case(0,1,1,"unsigned int",6); _cimg_save_pandore_case(0,1,1,"int",6); _cimg_save_pandore_case(0,1,1,"unsigned long",7); _cimg_save_pandore_case(0,1,1,"long",6); _cimg_save_pandore_case(0,1,1,"float",7); _cimg_save_pandore_case(0,1,1,"double",7); _cimg_save_pandore_case(0,0,1,"unsigned char",8); _cimg_save_pandore_case(0,0,1,"char",9); _cimg_save_pandore_case(0,0,1,"short",9); _cimg_save_pandore_case(0,0,1,"unsigned short",9); _cimg_save_pandore_case(0,0,1,"unsigned int",9); _cimg_save_pandore_case(0,0,1,"int",9); _cimg_save_pandore_case(0,0,1,"unsigned long",10); _cimg_save_pandore_case(0,0,1,"long",9); _cimg_save_pandore_case(0,0,1,"float",10); _cimg_save_pandore_case(0,0,1,"double",10); _cimg_save_pandore_case(0,1,3,"unsigned char",16); _cimg_save_pandore_case(0,1,3,"char",17); _cimg_save_pandore_case(0,1,3,"short",17); _cimg_save_pandore_case(0,1,3,"unsigned short",17); _cimg_save_pandore_case(0,1,3,"unsigned int",17); _cimg_save_pandore_case(0,1,3,"int",17); _cimg_save_pandore_case(0,1,3,"unsigned long",18); _cimg_save_pandore_case(0,1,3,"long",17); _cimg_save_pandore_case(0,1,3,"float",18); _cimg_save_pandore_case(0,1,3,"double",18); _cimg_save_pandore_case(0,0,3,"unsigned char",19); _cimg_save_pandore_case(0,0,3,"char",20); _cimg_save_pandore_case(0,0,3,"short",20); _cimg_save_pandore_case(0,0,3,"unsigned short",20); _cimg_save_pandore_case(0,0,3,"unsigned int",20); _cimg_save_pandore_case(0,0,3,"int",20); _cimg_save_pandore_case(0,0,3,"unsigned long",21); _cimg_save_pandore_case(0,0,3,"long",20); _cimg_save_pandore_case(0,0,3,"float",21); _cimg_save_pandore_case(0,0,3,"double",21); _cimg_save_pandore_case(1,1,0,"unsigned char",22); _cimg_save_pandore_case(1,1,0,"char",23); _cimg_save_pandore_case(1,1,0,"short",23); _cimg_save_pandore_case(1,1,0,"unsigned short",23); _cimg_save_pandore_case(1,1,0,"unsigned int",23); _cimg_save_pandore_case(1,1,0,"int",23); _cimg_save_pandore_case(1,1,0,"unsigned long",25); _cimg_save_pandore_case(1,1,0,"long",23); _cimg_save_pandore_case(1,1,0,"float",25); _cimg_save_pandore_case(1,1,0,"double",25); _cimg_save_pandore_case(0,1,0,"unsigned char",26); _cimg_save_pandore_case(0,1,0,"char",27); _cimg_save_pandore_case(0,1,0,"short",27); _cimg_save_pandore_case(0,1,0,"unsigned short",27); _cimg_save_pandore_case(0,1,0,"unsigned int",27); _cimg_save_pandore_case(0,1,0,"int",27); _cimg_save_pandore_case(0,1,0,"unsigned long",29); _cimg_save_pandore_case(0,1,0,"long",27); _cimg_save_pandore_case(0,1,0,"float",29); _cimg_save_pandore_case(0,1,0,"double",29); _cimg_save_pandore_case(0,0,0,"unsigned char",30); _cimg_save_pandore_case(0,0,0,"char",31); _cimg_save_pandore_case(0,0,0,"short",31); _cimg_save_pandore_case(0,0,0,"unsigned short",31); _cimg_save_pandore_case(0,0,0,"unsigned int",31); _cimg_save_pandore_case(0,0,0,"int",31); _cimg_save_pandore_case(0,0,0,"unsigned long",33); _cimg_save_pandore_case(0,0,0,"long",31); _cimg_save_pandore_case(0,0,0,"float",33); _cimg_save_pandore_case(0,0,0,"double",33); if (!file) cimg::fclose(nfile); return *this; } //! Save image as a raw data file. /** \param filename Filename, as a C-string. \param is_multiplexed Tells if the image channels are stored in a multiplexed way (\c true) or not (\c false). \note The .raw format does not store the image dimensions in the output file, so you have to keep track of them somewhere to be able to read the file correctly afterwards. **/ const CImg& save_raw(const char *const filename, const bool is_multiplexed=false) const { return _save_raw(0,filename,is_multiplexed); } //! Save image as a raw data file \overloading. /** Same as save_raw(const char *,bool) const with a file stream argument instead of a filename string. **/ const CImg& save_raw(std::FILE *const file, const bool is_multiplexed=false) const { return _save_raw(file,0,is_multiplexed); } const CImg& _save_raw(std::FILE *const file, const char *const filename, const bool is_multiplexed) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_raw(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); if (!is_multiplexed) cimg::fwrite(_data,size(),nfile); else { CImg buf(_spectrum); cimg_forXYZ(*this,x,y,z) { cimg_forC(*this,c) buf[c] = (*this)(x,y,z,c); cimg::fwrite(buf._data,_spectrum,nfile); } } if (!file) cimg::fclose(nfile); return *this; } //! Save image as a video file, using the FFmpeg library. /** \param filename Filename, as a C-string. \param fps Video framerate. \param bitrate Video bitrate. \note - Each slice of the instance image is considered to be a single frame of the output video file. - This method uses functions provided by the FFmpeg library. Configuration macro \c cimg_use_ffmpeg must be set for the method to succeed natively. Otherwise, the method calls save_ffmpeg_external(const char*,unsigned int,unsigned int,const char*,unsigned int,unsigned int) const. **/ const CImg& save_ffmpeg(const char *const filename, const unsigned int fps=25, const unsigned int bitrate=2048) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_ffmpeg(): Specified filename is (null).", cimg_instance); if (!fps) throw CImgArgumentException(_cimg_instance "save_ffmpeg(): Invalid specified framerate 0, for file '%s'.", cimg_instance, filename); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifndef cimg_use_ffmpeg return save_ffmpeg_external(filename,0,fps,bitrate); #else CImgList list; get_split('z').move_to(list); list.save_ffmpeg(filename,fps,bitrate); #endif return *this; } //! Save image as a .yuv video file. /** \param filename Filename, as a C-string. \param is_rgb Tells if pixel values of the instance image are RGB-coded (\c true) or YUV-coded (\c false). \note Each slice of the instance image is considered to be a single frame of the output video file. **/ const CImg& save_yuv(const char *const filename, const bool is_rgb=true) const { get_split('z').save_yuv(filename,is_rgb); return *this; } //! Save image as a .yuv video file \overloading. /** Same as save_yuv(const char*,bool) const with a file stream argument instead of a filename string. **/ const CImg& save_yuv(std::FILE *const file, const bool is_rgb=true) const { get_split('z').save_yuv(file,is_rgb); return *this; } //! Save 3d object as an Object File Format (.off) file. /** \param filename Filename, as a C-string. \param primitives List of 3d object primitives. \param colors List of 3d object colors. \note - Instance image contains the vertices data of the 3d object. - Textured, transparent or sphere-shaped primitives cannot be managed by the .off file format. Such primitives will be lost or simplified during file saving. - The .off file format is described here. **/ template const CImg& save_off(const CImgList& primitives, const CImgList& colors, const char *const filename) const { return _save_off(primitives,colors,0,filename); } //! Save 3d object as an Object File Format (.off) file \overloading. /** Same as save_off(const CImgList&,const CImgList&,const char*) const with a file stream argument instead of a filename string. **/ template const CImg& save_off(const CImgList& primitives, const CImgList& colors, std::FILE *const file) const { return _save_off(primitives,colors,file,0); } template const CImg& _save_off(const CImgList& primitives, const CImgList& colors, std::FILE *const file, const char *const filename) const { if (!file && !filename) throw CImgArgumentException(_cimg_instance "save_off(): Specified filename is (null).", cimg_instance); if (is_empty()) throw CImgInstanceException(_cimg_instance "save_off(): Empty instance, for file '%s'.", cimg_instance, filename?filename:"(FILE*)"); CImgList opacities; char error_message[1024] = { 0 }; if (!is_object3d(primitives,colors,opacities,true,error_message)) throw CImgInstanceException(_cimg_instance "save_off(): Invalid specified 3d object, for file '%s' (%s).", cimg_instance, filename?filename:"(FILE*)",error_message); const CImg default_color(1,3,1,1,200); std::FILE *const nfile = file?file:cimg::fopen(filename,"w"); unsigned int supported_primitives = 0; cimglist_for(primitives,l) if (primitives[l].size()!=5) ++supported_primitives; std::fprintf(nfile,"OFF\n%u %u %u\n",_width,supported_primitives,3*primitives._width); cimg_forX(*this,i) std::fprintf(nfile,"%f %f %f\n",(float)((*this)(i,0)),(float)((*this)(i,1)),(float)((*this)(i,2))); cimglist_for(primitives,l) { const CImg& color = l1?color[1]:r)/255.0f, b = (csiz>2?color[2]:g)/255.0f; switch (psiz) { case 1 : std::fprintf(nfile,"1 %u %f %f %f\n",(unsigned int)primitives(l,0),r,g,b); break; case 2 : std::fprintf(nfile,"2 %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,1),r,g,b); break; case 3 : std::fprintf(nfile,"3 %u %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,2), (unsigned int)primitives(l,1),r,g,b); break; case 4 : std::fprintf(nfile,"4 %u %u %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,3), (unsigned int)primitives(l,2),(unsigned int)primitives(l,1),r,g,b); break; case 5 : std::fprintf(nfile,"2 %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,1),r,g,b); break; case 6 : { const unsigned int xt = (unsigned int)primitives(l,2), yt = (unsigned int)primitives(l,3); const float rt = color.atXY(xt,yt,0)/255.0f, gt = (csiz>1?color.atXY(xt,yt,1):r)/255.0f, bt = (csiz>2?color.atXY(xt,yt,2):g)/255.0f; std::fprintf(nfile,"2 %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,1),rt,gt,bt); } break; case 9 : { const unsigned int xt = (unsigned int)primitives(l,3), yt = (unsigned int)primitives(l,4); const float rt = color.atXY(xt,yt,0)/255.0f, gt = (csiz>1?color.atXY(xt,yt,1):r)/255.0f, bt = (csiz>2?color.atXY(xt,yt,2):g)/255.0f; std::fprintf(nfile,"3 %u %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,2), (unsigned int)primitives(l,1),rt,gt,bt); } break; case 12 : { const unsigned int xt = (unsigned int)primitives(l,4), yt = (unsigned int)primitives(l,5); const float rt = color.atXY(xt,yt,0)/255.0f, gt = (csiz>1?color.atXY(xt,yt,1):r)/255.0f, bt = (csiz>2?color.atXY(xt,yt,2):g)/255.0f; std::fprintf(nfile,"4 %u %u %u %u %f %f %f\n",(unsigned int)primitives(l,0),(unsigned int)primitives(l,3), (unsigned int)primitives(l,2),(unsigned int)primitives(l,1),rt,gt,bt); } break; } } if (!file) cimg::fclose(nfile); return *this; } //! Save volumetric image as a video, using ffmpeg external binary. /** \param filename Filename, as a C-string. \param codec Video codec, as a C-string. \param fps Video framerate. \param bitrate Video bitrate. \note - Each slice of the instance image is considered to be a single frame of the output video file. - This method uses \c ffmpeg, an external executable binary provided by FFmpeg. It must be installed for the method to succeed. **/ const CImg& save_ffmpeg_external(const char *const filename, const char *const codec=0, const unsigned int fps=25, const unsigned int bitrate=2048) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_ffmpeg_external(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } CImgList list; get_split('z').move_to(list); list.save_ffmpeg_external(filename,codec,fps,bitrate); return *this; } //! Save image using gzip external binary. /** \param filename Filename, as a C-string. \note This method uses \c gzip, an external executable binary provided by gzip. It must be installed for the method to succeed. **/ const CImg& save_gzip_external(const char *const filename) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_gzip_external(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; const char *ext = cimg::split_filename(filename,body), *ext2 = cimg::split_filename(body,0); std::FILE *file; do { if (!cimg::strcasecmp(ext,"gz")) { if (*ext2) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext2); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.cimg",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } else { if (*ext) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.cimg",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); save(filetmp); cimg_snprintf(command,sizeof(command),"%s -c \"%s\" > \"%s\"", cimg::gzip_path(), CImg::string(filetmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); cimg::system(command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance "save_gzip_external(): Failed to save file '%s' with external command 'gzip'.", cimg_instance, filename); else cimg::fclose(file); std::remove(filetmp); return *this; } //! Save image using GraphicsMagick's external binary. /** \param filename Filename, as a C-string. \param quality Image quality (expressed in percent), when the file format supports it. \note This method uses \c gm, an external executable binary provided by GraphicsMagick. It must be installed for the method to succeed. **/ const CImg& save_graphicsmagick_external(const char *const filename, const unsigned int quality=100) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_graphicsmagick_external(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifdef cimg_use_png #define _cimg_sge_ext1 "png" #define _cimg_sge_ext2 "png" #else #define _cimg_sge_ext1 "pgm" #define _cimg_sge_ext2 "ppm" #endif char command[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),_spectrum==1?_cimg_sge_ext1:_cimg_sge_ext2); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); #ifdef cimg_use_png save_png(filetmp); #else save_pnm(filetmp); #endif cimg_snprintf(command,sizeof(command),"%s convert -quality %u \"%s\" \"%s\"", cimg::graphicsmagick_path(),quality, CImg::string(filetmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); cimg::system(command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance "save_graphicsmagick_external(): Failed to save file '%s' with external command 'gm'.", cimg_instance, filename); if (file) cimg::fclose(file); std::remove(filetmp); return *this; } //! Save image using ImageMagick's external binary. /** \param filename Filename, as a C-string. \param quality Image quality (expressed in percent), when the file format supports it. \note This method uses \c convert, an external executable binary provided by ImageMagick. It must be installed for the method to succeed. **/ const CImg& save_imagemagick_external(const char *const filename, const unsigned int quality=100) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_imagemagick_external(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifdef cimg_use_png #define _cimg_sie_ext1 "png" #define _cimg_sie_ext2 "png" #else #define _cimg_sie_ext1 "pgm" #define _cimg_sie_ext2 "ppm" #endif char command[1024] = { 0 }, filetmp[512] = { 0 }; std::FILE *file; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),_spectrum==1?_cimg_sie_ext1:_cimg_sie_ext2); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); #ifdef cimg_use_png save_png(filetmp); #else save_pnm(filetmp); #endif cimg_snprintf(command,sizeof(command),"%s -quality %u \"%s\" \"%s\"", cimg::imagemagick_path(),quality, CImg::string(filetmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); cimg::system(command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimg_instance "save_imagemagick_external(): Failed to save file '%s' with external command 'convert'.", cimg_instance, filename); if (file) cimg::fclose(file); std::remove(filetmp); return *this; } //! Save image as a Dicom file. /** \param filename Filename, as a C-string. \note This method uses \c medcon, an external executable binary provided by (X)Medcon. It must be installed for the method to succeed. **/ const CImg& save_medcon_external(const char *const filename) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_medcon_external(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; std::FILE *file; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s.hdr",cimg::filenamerand()); if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); save_analyze(filetmp); cimg_snprintf(command,sizeof(command),"%s -w -c dicom -o \"%s\" -f \"%s\"", cimg::medcon_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); cimg::system(command); std::remove(filetmp); cimg::split_filename(filetmp,body); cimg_snprintf(filetmp,sizeof(filetmp),"%s.img",body); std::remove(filetmp); file = std::fopen(filename,"rb"); if (!file) { cimg_snprintf(command,sizeof(command),"m000-%s",filename); file = std::fopen(command,"rb"); if (!file) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimg_instance "save_medcon_external(): Failed to save file '%s' with external command 'medcon'.", cimg_instance, filename); } } cimg::fclose(file); std::rename(command,filename); return *this; } // Save image for non natively supported formats. /** \param filename Filename, as a C-string. \param quality Image quality (expressed in percent), when the file format supports it. \note - The filename extension tells about the desired file format. - This method tries to save the instance image as a file, using external tools from ImageMagick or GraphicsMagick. At least one of these tool must be installed for the method to succeed. - It is recommended to use the generic method save(const char*, int) const instead, as it can handle some file formats natively. **/ const CImg& save_other(const char *const filename, const unsigned int quality=100) const { if (!filename) throw CImgArgumentException(_cimg_instance "save_other(): Specified filename is (null).", cimg_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } const unsigned int omode = cimg::exception_mode(); bool is_saved = true; cimg::exception_mode() = 0; try { save_magick(filename); } catch (CImgException&) { try { save_imagemagick_external(filename,quality); } catch (CImgException&) { try { save_graphicsmagick_external(filename,quality); } catch (CImgException&) { is_saved = false; } } } cimg::exception_mode() = omode; if (!is_saved) throw CImgIOException(_cimg_instance "save_other(): Failed to save file '%s'. Format is not natively supported, and no external commands succeeded.", cimg_instance, filename); return *this; } // [internal] Return a 40x38 color logo of a 'danger' item. static CImg _logo40x38() { CImg res(40,38,1,3); const unsigned char *ptrs = cimg::logo40x38; T *ptr1 = res.data(0,0,0,0), *ptr2 = res.data(0,0,0,1), *ptr3 = res.data(0,0,0,2); for (unsigned long off = 0; off<(unsigned long)res._width*res._height;) { const unsigned char n = *(ptrs++), r = *(ptrs++), g = *(ptrs++), b = *(ptrs++); for (unsigned int l = 0; l structure # # # #------------------------------------------ */ //! Represent a list of images CImg. template struct CImgList { unsigned int _width, _allocated_width; CImg *_data; //! Simple iterator type, to loop through each image of a list. /** \note - The \c CImgList::iterator type is defined as a CImg*. - You may use it like this: \code CImgList<> list; // Assuming this image list is not empty. for (CImgList<>::iterator it = list.begin(); it* iterator; //! Simple const iterator type, to loop through each image of a \c const list instance. /** \note - The \c CImgList::const_iterator type is defined to be a const CImg*. - Similar to CImgList::iterator, but for constant list instances. **/ typedef const CImg* const_iterator; //! Pixel value type. /** Refer to the pixels value type of the images in the list. \note - The \c CImgList::value_type type of a \c CImgList is defined to be a \c T. It is then similar to CImg::value_type. - \c CImgList::value_type is actually not used in %CImg methods. It has been mainly defined for compatibility with STL naming conventions. **/ typedef T value_type; // Define common T-dependant types. typedef typename cimg::superset::type Tbool; typedef typename cimg::superset::type Tuchar; typedef typename cimg::superset::type Tchar; typedef typename cimg::superset::type Tushort; typedef typename cimg::superset::type Tshort; typedef typename cimg::superset::type Tuint; typedef typename cimg::superset::type Tint; typedef typename cimg::superset::type Tulong; typedef typename cimg::superset::type Tlong; typedef typename cimg::superset::type Tfloat; typedef typename cimg::superset::type Tdouble; typedef typename cimg::last::type boolT; typedef typename cimg::last::type ucharT; typedef typename cimg::last::type charT; typedef typename cimg::last::type ushortT; typedef typename cimg::last::type shortT; typedef typename cimg::last::type uintT; typedef typename cimg::last::type intT; typedef typename cimg::last::type ulongT; typedef typename cimg::last::type longT; typedef typename cimg::last::type floatT; typedef typename cimg::last::type doubleT; //@} //--------------------------- // //! \name Plugins //@{ //--------------------------- #ifdef cimglist_plugin #include cimglist_plugin #endif #ifdef cimglist_plugin1 #include cimglist_plugin1 #endif #ifdef cimglist_plugin2 #include cimglist_plugin2 #endif #ifdef cimglist_plugin3 #include cimglist_plugin3 #endif #ifdef cimglist_plugin4 #include cimglist_plugin4 #endif #ifdef cimglist_plugin5 #include cimglist_plugin5 #endif #ifdef cimglist_plugin6 #include cimglist_plugin6 #endif #ifdef cimglist_plugin7 #include cimglist_plugin7 #endif #ifdef cimglist_plugin8 #include cimglist_plugin8 #endif //@} //-------------------------------------------------------- // //! \name Constructors / Destructor / Instance Management //@{ //-------------------------------------------------------- //! Destructor. /** Destroy current list instance. \note - Any allocated buffer is deallocated. - Destroying an empty list does nothing actually. **/ ~CImgList() { delete[] _data; } //! Default constructor. /** Construct a new empty list instance. \note - An empty list has no pixel data and its dimension width() is set to \c 0, as well as its image buffer pointer data(). - An empty list may be reassigned afterwards, with the family of the assign() methods. In all cases, the type of pixels stays \c T. **/ CImgList(): _width(0),_allocated_width(0),_data(0) {} //! Construct list containing empty images. /** \param n Number of empty images. \note Useful when you know by advance the number of images you want to manage, as it will allocate the right amount of memory for the list, without needs for reallocation (that may occur when starting from an empty list and inserting several images in it). **/ explicit CImgList(const unsigned int n):_width(n) { if (n) _data = new CImg[_allocated_width = cimg::max(16UL,cimg::nearest_pow2(n))]; else { _allocated_width = 0; _data = 0; } } //! Construct list containing images of specified size. /** \param n Number of images. \param width Width of images. \param height Height of images. \param depth Depth of images. \param spectrum Number of channels of images. \note Pixel values are not initialized and may probably contain garbage. **/ CImgList(const unsigned int n, const unsigned int width, const unsigned int height=1, const unsigned int depth=1, const unsigned int spectrum=1): _width(0),_allocated_width(0),_data(0) { assign(n); cimglist_apply(*this,assign)(width,height,depth,spectrum); } //! Construct list containing images of specified size, and initialize pixel values. /** \param n Number of images. \param width Width of images. \param height Height of images. \param depth Depth of images. \param spectrum Number of channels of images. \param val Initialization value for images pixels. **/ CImgList(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const T val): _width(0),_allocated_width(0),_data(0) { assign(n); cimglist_apply(*this,assign)(width,height,depth,spectrum,val); } //! Construct list containing images of specified size, and initialize pixel values from a sequence of integers. /** \param n Number of images. \param width Width of images. \param height Height of images. \param depth Depth of images. \param spectrum Number of channels of images. \param val0 First value of the initializing integers sequence. \param val1 Second value of the initializing integers sequence. \warning You must specify at least width*height*depth*spectrum values in your argument list, or you will probably segfault. **/ CImgList(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const int val0, const int val1, ...): _width(0),_allocated_width(0),_data(0) { #define _CImgList_stdarg(t) { \ assign(n,width,height,depth,spectrum); \ const unsigned long siz = (unsigned long)width*height*depth*spectrum, nsiz = siz*n; \ T *ptrd = _data->_data; \ va_list ap; \ va_start(ap,val1); \ for (unsigned long l = 0, s = 0, i = 0; iwidth*height*depth*spectrum values in your argument list, or you will probably segfault. **/ CImgList(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const double val0, const double val1, ...): _width(0),_allocated_width(0),_data(0) { _CImgList_stdarg(double); } //! Construct list containing copies of an input image. /** \param n Number of images. \param img Input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of \c img. **/ template CImgList(const unsigned int n, const CImg& img, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(n); cimglist_apply(*this,assign)(img,is_shared); } //! Construct list from one image. /** \param img Input image to copy in the constructed list. \param is_shared Tells if the element of the list is a shared or non-shared copy of \c img. **/ template explicit CImgList(const CImg& img, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(1); _data[0].assign(img,is_shared); } //! Construct list from two images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(2); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); } //! Construct list from three images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(3); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); } //! Construct list from four images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param img4 Fourth input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(4); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); } //! Construct list from five images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param img4 Fourth input image to copy in the constructed list. \param img5 Fifth input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(5); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); } //! Construct list from six images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param img4 Fourth input image to copy in the constructed list. \param img5 Fifth input image to copy in the constructed list. \param img6 Sixth input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(6); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); } //! Construct list from seven images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param img4 Fourth input image to copy in the constructed list. \param img5 Fifth input image to copy in the constructed list. \param img6 Sixth input image to copy in the constructed list. \param img7 Seventh input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const CImg& img7, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(7); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); _data[6].assign(img7,is_shared); } //! Construct list from eight images. /** \param img1 First input image to copy in the constructed list. \param img2 Second input image to copy in the constructed list. \param img3 Third input image to copy in the constructed list. \param img4 Fourth input image to copy in the constructed list. \param img5 Fifth input image to copy in the constructed list. \param img6 Sixth input image to copy in the constructed list. \param img7 Seventh input image to copy in the constructed list. \param img8 Eighth input image to copy in the constructed list. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const CImg& img7, const CImg& img8, const bool is_shared=false): _width(0),_allocated_width(0),_data(0) { assign(8); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); _data[6].assign(img7,is_shared); _data[7].assign(img8,is_shared); } //! Construct list copy. /** \param list Input list to copy. \note The shared state of each element of the constructed list is kept the same as in \c list. **/ template CImgList(const CImgList& list):_width(0),_allocated_width(0),_data(0) { assign(list._width); cimglist_for(*this,l) _data[l].assign(list[l],false); } //! Construct list copy \specialization. CImgList(const CImgList& list):_width(0),_allocated_width(0),_data(0) { assign(list._width); cimglist_for(*this,l) _data[l].assign(list[l],list[l]._is_shared); } //! Construct list copy, and force the shared state of the list elements. /** \param list Input list to copy. \param is_shared Tells if the elements of the list are shared or non-shared copies of input images. **/ template CImgList(const CImgList& list, const bool is_shared):_width(0),_allocated_width(0),_data(0) { assign(list._width); cimglist_for(*this,l) _data[l].assign(list[l],is_shared); } //! Construct list by reading the content of a file. /** \param filename Filename, as a C-string. **/ explicit CImgList(const char *const filename):_width(0),_allocated_width(0),_data(0) { assign(filename); } //! Construct list from the content of a display window. /** \param disp Display window to get content from. \note Constructed list contains a single image only. **/ explicit CImgList(const CImgDisplay& disp):_width(0),_allocated_width(0),_data(0) { assign(disp); } //! Return a list with elements being shared copies of images in the list instance. /** \note list2 = list1.get_shared() is equivalent to list2.assign(list1,true). **/ CImgList get_shared() { CImgList res(_width); cimglist_for(*this,l) res[l].assign(_data[l],true); return res; } //! Return a list with elements being shared copies of images in the list instance \const. const CImgList get_shared() const { CImgList res(_width); cimglist_for(*this,l) res[l].assign(_data[l],true); return res; } //! Destructor \inplace. /** \see CImgList(). **/ CImgList& assign() { delete[] _data; _width = _allocated_width = 0; _data = 0; return *this; } //! Destructor \inplace. /** Equivalent to assign(). \note Only here for compatibility with STL naming conventions. **/ CImgList& clear() { return assign(); } //! Construct list containing empty images \inplace. /** \see CImgList(unsigned int). **/ CImgList& assign(const unsigned int n) { if (!n) return assign(); if (_allocated_width(n<<2)) { delete[] _data; _data = new CImg[_allocated_width=cimg::max(16UL,cimg::nearest_pow2(n))]; } _width = n; return *this; } //! Construct list containing images of specified size \inplace. /** \see CImgList(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int). **/ CImgList& assign(const unsigned int n, const unsigned int width, const unsigned int height=1, const unsigned int depth=1, const unsigned int spectrum=1) { assign(n); cimglist_apply(*this,assign)(width,height,depth,spectrum); return *this; } //! Construct list containing images of specified size, and initialize pixel values \inplace. /** \see CImgList(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, const T). **/ CImgList& assign(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const T val) { assign(n); cimglist_apply(*this,assign)(width,height,depth,spectrum,val); return *this; } //! Construct list containing images of specified size, and initialize pixel values from a sequence of integers \inplace. /** \see CImgList(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, const int, const int, ...). **/ CImgList& assign(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const int val0, const int val1, ...) { _CImgList_stdarg(int); return *this; } //! Construct list containing images of specified size, and initialize pixel values from a sequence of doubles \inplace. /** \see CImgList(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, const double, const double, ...). **/ CImgList& assign(const unsigned int n, const unsigned int width, const unsigned int height, const unsigned int depth, const unsigned int spectrum, const double val0, const double val1, ...) { _CImgList_stdarg(double); return *this; } //! Construct list containing copies of an input image \inplace. /** \see CImgList(unsigned int, const CImg&, bool). **/ template CImgList& assign(const unsigned int n, const CImg& img, const bool is_shared=false) { assign(n); cimglist_apply(*this,assign)(img,is_shared); return *this; } //! Construct list from one image \inplace. /** \see CImgList(const CImg&, bool). **/ template CImgList& assign(const CImg& img, const bool is_shared=false) { assign(1); _data[0].assign(img,is_shared); return *this; } //! Construct list from two images \inplace. /** \see CImgList(const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const bool is_shared=false) { assign(2); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); return *this; } //! Construct list from three images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const bool is_shared=false) { assign(3); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); return *this; } //! Construct list from four images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const bool is_shared=false) { assign(4); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); return *this; } //! Construct list from five images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const bool is_shared=false) { assign(5); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); return *this; } //! Construct list from six images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const bool is_shared=false) { assign(6); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); return *this; } //! Construct list from seven images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const CImg& img7, const bool is_shared=false) { assign(7); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); _data[6].assign(img7,is_shared); return *this; } //! Construct list from eight images \inplace. /** \see CImgList(const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, const CImg&, bool). **/ template CImgList& assign(const CImg& img1, const CImg& img2, const CImg& img3, const CImg& img4, const CImg& img5, const CImg& img6, const CImg& img7, const CImg& img8, const bool is_shared=false) { assign(8); _data[0].assign(img1,is_shared); _data[1].assign(img2,is_shared); _data[2].assign(img3,is_shared); _data[3].assign(img4,is_shared); _data[4].assign(img5,is_shared); _data[5].assign(img6,is_shared); _data[6].assign(img7,is_shared); _data[7].assign(img8,is_shared); return *this; } //! Construct list as a copy of an existing list and force the shared state of the list elements \inplace. /** \see CImgList(const CImgList&, bool is_shared). **/ template CImgList& assign(const CImgList& list, const bool is_shared=false) { cimg::unused(is_shared); assign(list._width); cimglist_for(*this,l) _data[l].assign(list[l],false); return *this; } //! Construct list as a copy of an existing list and force the shared state of the list elements \inplace \specialization. CImgList& assign(const CImgList& list, const bool is_shared=false) { if (this==&list) return *this; CImgList res(list._width); cimglist_for(res,l) res[l].assign(list[l],is_shared); return res.move_to(*this); } //! Construct list by reading the content of a file \inplace. /** \see CImgList(const char *const). **/ CImgList& assign(const char *const filename) { return load(filename); } //! Construct list from the content of a display window \inplace. /** \see CImgList(const CImgDisplay&). **/ CImgList& assign(const CImgDisplay &disp) { return assign(CImg(disp)); } //! Transfer the content of the list instance to another list. /** \param list Destination list. \note When returning, the current list instance is empty and the initial content of \c list is destroyed. **/ template CImgList& move_to(CImgList& list) { list.assign(_width); bool is_one_shared_element = false; cimglist_for(*this,l) is_one_shared_element|=_data[l]._is_shared; if (is_one_shared_element) cimglist_for(*this,l) list[l].assign(_data[l]); else cimglist_for(*this,l) _data[l].move_to(list[l]); assign(); return list; } //! Transfer the content of the list instance at a specified position in another list. /** \param list Destination list. \param pos Index of the insertion in the list. \note When returning, the list instance is empty and the initial content of \c list is preserved (only images indexes may be modified). **/ template CImgList& move_to(CImgList& list, const unsigned int pos) { if (is_empty()) return list; const unsigned int npos = pos>list._width?list._width:pos; list.insert(_width,npos); bool is_one_shared_element = false; cimglist_for(*this,l) is_one_shared_element|=_data[l]._is_shared; if (is_one_shared_element) cimglist_for(*this,l) list[npos+l].assign(_data[l]); else cimglist_for(*this,l) _data[l].move_to(list[npos+l]); assign(); return list; } //! Swap all fields between two list instances. /** \param list List to swap fields with. \note Can be used to exchange the content of two lists in a fast way. **/ CImgList& swap(CImgList& list) { cimg::swap(_width,list._width); cimg::swap(_allocated_width,list._allocated_width); cimg::swap(_data,list._data); return list; } //! Return a reference to an empty list. /** \note Can be used to define default values in a function taking a CImgList as an argument. \code void f(const CImgList& list=CImgList::empty()); \endcode **/ static CImgList& empty() { static CImgList _empty; return _empty.assign(); } //@} //------------------------------------------ // //! \name Overloaded Operators //@{ //------------------------------------------ //! Return a reference to one image element of the list. /** \param pos Indice of the image element. **/ CImg& operator()(const unsigned int pos) { #if cimg_verbosity>=3 if (pos>=_width) { cimg::warn(_cimglist_instance "operator(): Invalid image request, at position [%u].", cimglist_instance, pos); return *_data; } #endif return _data[pos]; } //! Return a reference to one image of the list. /** \param pos Indice of the image element. **/ const CImg& operator()(const unsigned int pos) const { return const_cast*>(this)->operator()(pos); } //! Return a reference to one pixel value of one image of the list. /** \param pos Indice of the image element. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list(n,x,y,z,c) is equivalent to list[n](x,y,z,c). **/ T& operator()(const unsigned int pos, const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) { return (*this)[pos](x,y,z,c); } //! Return a reference to one pixel value of one image of the list \const. const T& operator()(const unsigned int pos, const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int c=0) const { return (*this)[pos](x,y,z,c); } //! Return pointer to the first image of the list. /** \note Images in a list are stored as a buffer of \c CImg. **/ operator CImg*() { return _data; } //! Return pointer to the first image of the list \const. operator const CImg*() const { return _data; } //! Construct list from one image \inplace. /** \param img Input image to copy in the constructed list. \note list = img; is equivalent to list.assign(img);. **/ template CImgList& operator=(const CImg& img) { return assign(img); } //! Construct list from another list. /** \param list Input list to copy. \note list1 = list2 is equivalent to list1.assign(list2);. **/ template CImgList& operator=(const CImgList& list) { return assign(list); } //! Construct list from another list \specialization. CImgList& operator=(const CImgList& list) { return assign(list); } //! Construct list by reading the content of a file \inplace. /** \see CImgList(const char *const). **/ CImgList& operator=(const char *const filename) { return assign(filename); } //! Construct list from the content of a display window \inplace. /** \see CImgList(const CImgDisplay&). **/ CImgList& operator=(const CImgDisplay& disp) { return assign(disp); } //! Return a non-shared copy of a list. /** \note +list is equivalent to CImgList(list,false). It forces the copy to have non-shared elements. **/ CImgList operator+() const { return CImgList(*this,false); } //! Return a copy of the list instance, where image \c img has been inserted at the end. /** \param img Image inserted at the end of the instance copy. \note Define a convenient way to create temporary lists of images, as in the following code: \code (img1,img2,img3,img4).display("My four images"); \endcode **/ template CImgList& operator,(const CImg& img) { return insert(img); } //! Return a copy of the list instance, where all elements of input list \c list have been inserted at the end. /** \param list List inserted at the end of the instance copy. **/ template CImgList& operator,(const CImgList& list) { return insert(list); } //! Return image corresponding to the appending of all images of the instance list along specified axis. /** \param axis Appending axis. Can be { 'x' | 'y' | 'z' | 'c' }. \note list>'x' is equivalent to list.get_append('x'). **/ CImg operator>(const char axis) const { return get_append(axis,0); } //! Return list corresponding to the splitting of all images of the instance list along specified axis. /** \param axis Axis used for image splitting. \note list<'x' is equivalent to list.get_split('x'). **/ CImgList operator<(const char axis) const { return get_split(axis); } //@} //------------------------------------- // //! \name Instance Characteristics //@{ //------------------------------------- //! Return the type of image pixel values as a C string. /** Return a \c char* string containing the usual type name of the image pixel values (i.e. a stringified version of the template parameter \c T). \note - The returned string may contain spaces (as in \c "unsigned char"). - If the pixel type \c T does not correspond to a registered type, the string "unknown" is returned. **/ static const char* pixel_type() { return cimg::type::string(); } //! Return the size of the list, i.e. the number of images contained in it. /** \note Similar to size() but returns result as a (signed) integer. **/ int width() const { return (int)_width; } //! Return the size of the list, i.e. the number of images contained in it. /** \note Similar to width() but returns result as an unsigned integer. **/ unsigned int size() const { return _width; } //! Return pointer to the first image of the list. /** \note Images in a list are stored as a buffer of \c CImg. **/ CImg *data() { return _data; } //! Return pointer to the first image of the list \const. const CImg *data() const { return _data; } //! Return pointer to the pos-th image of the list. /** \param pos Indice of the image element to access. \note list.data(n); is equivalent to list.data + n;. **/ #if cimg_verbosity>=3 CImg *data(const unsigned int pos) { if (pos>=size()) cimg::warn(_cimglist_instance "data(): Invalid pointer request, at position [%u].", cimglist_instance, pos); return _data + pos; } const CImg *data(const unsigned int l) const { return const_cast*>(this)->data(l); } #else CImg *data(const unsigned int l) { return _data + l; } //! Return pointer to the pos-th image of the list \const. const CImg *data(const unsigned int l) const { return _data + l; } #endif //! Return iterator to the first image of the list. /** **/ iterator begin() { return _data; } //! Return iterator to the first image of the list \const. const_iterator begin() const { return _data; } //! Return iterator to one position after the last image of the list. /** **/ iterator end() { return _data + _width; } //! Return iterator to one position after the last image of the list \const. const_iterator end() const { return _data + _width; } //! Return reference to the first image of the list. /** **/ CImg& front() { return *_data; } //! Return reference to the first image of the list \const. const CImg& front() const { return *_data; } //! Return a reference to the last image of the list. /** **/ const CImg& back() const { return *(_data + _width - 1); } //! Return a reference to the last image of the list \const. CImg& back() { return *(_data + _width - 1); } //! Return pos-th image of the list. /** \param pos Indice of the image element to access. **/ CImg& at(const int pos) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "at(): Empty instance.", cimglist_instance); return _data[pos<0?0:pos>=(int)_width?(int)_width-1:pos]; } //! Access to pixel value with Dirichlet boundary conditions. /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note list.atNXYZC(p,x,y,z,c); is equivalent to list[p].atXYZC(x,y,z,c);. **/ T& atNXYZC(const int pos, const int x, const int y, const int z, const int c, const T out_value) { return (pos<0 || pos>=(int)_width)?(cimg::temporary(out_value)=out_value):_data[pos].atXYZC(x,y,z,c,out_value); } //! Access to pixel value with Dirichlet boundary conditions \const. T atNXYZC(const int pos, const int x, const int y, const int z, const int c, const T out_value) const { return (pos<0 || pos>=(int)_width)?out_value:_data[pos].atXYZC(x,y,z,c,out_value); } //! Access to pixel value with Neumann boundary conditions. /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list.atNXYZC(p,x,y,z,c); is equivalent to list[p].atXYZC(x,y,z,c);. **/ T& atNXYZC(const int pos, const int x, const int y, const int z, const int c) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXYZC(): Empty instance.", cimglist_instance); return _atNXYZC(pos,x,y,z,c); } //! Access to pixel value with Neumann boundary conditions \const. T atNXYZC(const int pos, const int x, const int y, const int z, const int c) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXYZC(): Empty instance.", cimglist_instance); return _atNXYZC(pos,x,y,z,c); } T& _atNXYZC(const int pos, const int x, const int y, const int z, const int c) { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXYZC(x,y,z,c); } T _atNXYZC(const int pos, const int x, const int y, const int z, const int c) const { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXYZC(x,y,z,c); } //! Access to pixel value with Dirichlet boundary conditions for the three first coordinates (\c pos, \c x,\c y,\c z). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNXYZ(const int pos, const int x, const int y, const int z, const int c, const T out_value) { return (pos<0 || pos>=(int)_width)?(cimg::temporary(out_value)=out_value):_data[pos].atXYZ(x,y,z,c,out_value); } //! Access to pixel value with Dirichlet boundary conditions for the three first coordinates (\c pos, \c x,\c y,\c z) \const. T atNXYZ(const int pos, const int x, const int y, const int z, const int c, const T out_value) const { return (pos<0 || pos>=(int)_width)?out_value:_data[pos].atXYZ(x,y,z,c,out_value); } //! Access to pixel value with Neumann boundary conditions for the four first coordinates (\c pos, \c x,\c y,\c z). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNXYZ(const int pos, const int x, const int y, const int z, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXYZ(): Empty instance.", cimglist_instance); return _atNXYZ(pos,x,y,z,c); } //! Access to pixel value with Neumann boundary conditions for the four first coordinates (\c pos, \c x,\c y,\c z) \const. T atNXYZ(const int pos, const int x, const int y, const int z, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXYZ(): Empty instance.", cimglist_instance); return _atNXYZ(pos,x,y,z,c); } T& _atNXYZ(const int pos, const int x, const int y, const int z, const int c=0) { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXYZ(x,y,z,c); } T _atNXYZ(const int pos, const int x, const int y, const int z, const int c=0) const { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXYZ(x,y,z,c); } //! Access to pixel value with Dirichlet boundary conditions for the three first coordinates (\c pos, \c x,\c y). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNXY(const int pos, const int x, const int y, const int z, const int c, const T out_value) { return (pos<0 || pos>=(int)_width)?(cimg::temporary(out_value)=out_value):_data[pos].atXY(x,y,z,c,out_value); } //! Access to pixel value with Dirichlet boundary conditions for the three first coordinates (\c pos, \c x,\c y) \const. T atNXY(const int pos, const int x, const int y, const int z, const int c, const T out_value) const { return (pos<0 || pos>=(int)_width)?out_value:_data[pos].atXY(x,y,z,c,out_value); } //! Access to pixel value with Neumann boundary conditions for the three first coordinates (\c pos, \c x,\c y). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNXY(const int pos, const int x, const int y, const int z=0, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXY(): Empty instance.", cimglist_instance); return _atNXY(pos,x,y,z,c); } //! Access to pixel value with Neumann boundary conditions for the three first coordinates (\c pos, \c x,\c y) \const. T atNXY(const int pos, const int x, const int y, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNXY(): Empty instance.", cimglist_instance); return _atNXY(pos,x,y,z,c); } T& _atNXY(const int pos, const int x, const int y, const int z=0, const int c=0) { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXY(x,y,z,c); } T _atNXY(const int pos, const int x, const int y, const int z=0, const int c=0) const { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atXY(x,y,z,c); } //! Access to pixel value with Dirichlet boundary conditions for the two first coordinates (\c pos,\c x). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNX(const int pos, const int x, const int y, const int z, const int c, const T out_value) { return (pos<0 || pos>=(int)_width)?(cimg::temporary(out_value)=out_value):_data[pos].atX(x,y,z,c,out_value); } //! Access to pixel value with Dirichlet boundary conditions for the two first coordinates (\c pos,\c x) \const. T atNX(const int pos, const int x, const int y, const int z, const int c, const T out_value) const { return (pos<0 || pos>=(int)_width)?out_value:_data[pos].atX(x,y,z,c,out_value); } //! Access to pixel value with Neumann boundary conditions for the two first coordinates (\c pos, \c x). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atNX(const int pos, const int x, const int y=0, const int z=0, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNX(): Empty instance.", cimglist_instance); return _atNX(pos,x,y,z,c); } //! Access to pixel value with Neumann boundary conditions for the two first coordinates (\c pos, \c x) \const. T atNX(const int pos, const int x, const int y=0, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atNX(): Empty instance.", cimglist_instance); return _atNX(pos,x,y,z,c); } T& _atNX(const int pos, const int x, const int y=0, const int z=0, const int c=0) { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atX(x,y,z,c); } T _atNX(const int pos, const int x, const int y=0, const int z=0, const int c=0) const { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)].atX(x,y,z,c); } //! Access to pixel value with Dirichlet boundary conditions for the first coordinates (\c pos). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \param out_value Default value returned if \c offset is outside image bounds. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atN(const int pos, const int x, const int y, const int z, const int c, const T out_value) { return (pos<0 || pos>=(int)_width)?(cimg::temporary(out_value)=out_value):(*this)(pos,x,y,z,c); } //! Access to pixel value with Dirichlet boundary conditions for the first coordinates (\c pos) \const. T atN(const int pos, const int x, const int y, const int z, const int c, const T out_value) const { return (pos<0 || pos>=(int)_width)?out_value:(*this)(pos,x,y,z,c); } //! Return pixel value with Neumann boundary conditions for the first coordinates (\c pos). /** \param pos Indice of the image element to access. \param x X-coordinate of the pixel value. \param y Y-coordinate of the pixel value. \param z Z-coordinate of the pixel value. \param c C-coordinate of the pixel value. \note list.atNXYZ(p,x,y,z,c); is equivalent to list[p].atXYZ(x,y,z,c);. **/ T& atN(const int pos, const int x=0, const int y=0, const int z=0, const int c=0) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atN(): Empty instance.", cimglist_instance); return _atN(pos,x,y,z,c); } //! Return pixel value with Neumann boundary conditions for the first coordinates (\c pos) \const. T atN(const int pos, const int x=0, const int y=0, const int z=0, const int c=0) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "atN(): Empty instance.", cimglist_instance); return _atN(pos,x,y,z,c); } T& _atN(const int pos, const int x=0, const int y=0, const int z=0, const int c=0) { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)](x,y,z,c); } T _atN(const int pos, const int x=0, const int y=0, const int z=0, const int c=0) const { return _data[pos<0?0:(pos>=(int)_width?(int)_width-1:pos)](x,y,z,c); } //! Return a C-string containing the values of all images in the instance list. /** \param separator Character separator set between consecutive pixel values. \param max_size Maximum size of the returned string. \note The result is returne as a CImg image whose pixel buffer contains the desired C-string. **/ CImg value_string(const char separator=',', const unsigned int max_size=0) const { if (is_empty()) return CImg(1,1,1,1,0); CImgList items; for (unsigned int l = 0; l<_width-1; ++l) { CImg item = _data[l].value_string(separator,0); item.back() = separator; item.move_to(items); } _data[_width-1].value_string(separator,0).move_to(items); CImg res; (items>'x').move_to(res); if (max_size) { res.crop(0,max_size); res(max_size) = 0; } return res; } //@} //------------------------------------- // //! \name Instance Checking //@{ //------------------------------------- //! Return \c true if list is empty. /** **/ bool is_empty() const { return (!_data || !_width); } //! Test if number of image elements is equal to specified value. /** \param size_n Number of image elements to test. **/ bool is_sameN(const unsigned int size_n) const { return _width==size_n; } //! Test if number of image elements is equal between two images lists. /** \param list Input list to compare with. **/ template bool is_sameN(const CImgList& list) const { return is_sameN(list._width); } // Define useful functions to check list dimensions. // (cannot be documented because macro-generated). #define _cimglist_def_is_same1(axis) \ bool is_same##axis(const unsigned int val) const { \ bool res = true; for (unsigned int l = 0; l<_width && res; ++l) res = _data[l].is_same##axis(val); return res; \ } \ bool is_sameN##axis(const unsigned int n, const unsigned int val) const { \ return is_sameN(n) && is_same##axis(val); \ } \ #define _cimglist_def_is_same2(axis1,axis2) \ bool is_same##axis1##axis2(const unsigned int val1, const unsigned int val2) const { \ bool res = true; for (unsigned int l = 0; l<_width && res; ++l) res = _data[l].is_same##axis1##axis2(val1,val2); return res; \ } \ bool is_sameN##axis1##axis2(const unsigned int n, const unsigned int val1, const unsigned int val2) const { \ return is_sameN(n) && is_same##axis1##axis2(val1,val2); \ } \ #define _cimglist_def_is_same3(axis1,axis2,axis3) \ bool is_same##axis1##axis2##axis3(const unsigned int val1, const unsigned int val2, const unsigned int val3) const { \ bool res = true; for (unsigned int l = 0; l<_width && res; ++l) res = _data[l].is_same##axis1##axis2##axis3(val1,val2,val3); return res; \ } \ bool is_sameN##axis1##axis2##axis3(const unsigned int n, const unsigned int val1, const unsigned int val2, const unsigned int val3) const { \ return is_sameN(n) && is_same##axis1##axis2##axis3(val1,val2,val3); \ } \ #define _cimglist_def_is_same(axis) \ template bool is_same##axis(const CImg& img) const { \ bool res = true; for (unsigned int l = 0; l<_width && res; ++l) res = _data[l].is_same##axis(img); return res; \ } \ template bool is_same##axis(const CImgList& list) const { \ const unsigned int lmin = cimg::min(_width,list._width); \ bool res = true; for (unsigned int l = 0; l bool is_sameN##axis(const unsigned int n, const CImg& img) const { \ return (is_sameN(n) && is_same##axis(img)); \ } \ template bool is_sameN##axis(const CImgList& list) const { \ return (is_sameN(list) && is_same##axis(list)); \ } _cimglist_def_is_same(XY) _cimglist_def_is_same(XZ) _cimglist_def_is_same(XC) _cimglist_def_is_same(YZ) _cimglist_def_is_same(YC) _cimglist_def_is_same(XYZ) _cimglist_def_is_same(XYC) _cimglist_def_is_same(YZC) _cimglist_def_is_same(XYZC) _cimglist_def_is_same1(X) _cimglist_def_is_same1(Y) _cimglist_def_is_same1(Z) _cimglist_def_is_same1(C) _cimglist_def_is_same2(X,Y) _cimglist_def_is_same2(X,Z) _cimglist_def_is_same2(X,C) _cimglist_def_is_same2(Y,Z) _cimglist_def_is_same2(Y,C) _cimglist_def_is_same2(Z,C) _cimglist_def_is_same3(X,Y,Z) _cimglist_def_is_same3(X,Y,C) _cimglist_def_is_same3(X,Z,C) _cimglist_def_is_same3(Y,Z,C) //! Test if dimensions of each image of the list match specified arguments. /** \param dx Checked image width. \param dy Checked image height. \param dz Checked image depth. \param dc Checked image spectrum. **/ bool is_sameXYZC(const unsigned int dx, const unsigned int dy, const unsigned int dz, const unsigned int dc) const { bool res = true; for (unsigned int l = 0; l<_width && res; ++l) res = _data[l].is_sameXYZC(dx,dy,dz,dc); return res; } //! Test if list dimensions match specified arguments. /** \param n Number of images in the list. \param dx Checked image width. \param dy Checked image height. \param dz Checked image depth. \param dc Checked image spectrum. **/ bool is_sameNXYZC(const unsigned int n, const unsigned int dx, const unsigned int dy, const unsigned int dz, const unsigned int dc) const { return is_sameN(n) && is_sameXYZC(dx,dy,dz,dc); } //! Test if list contains one particular pixel location. /** \param n Index of the image whom checked pixel value belong to. \param x X-coordinate of the checked pixel value. \param y Y-coordinate of the checked pixel value. \param z Z-coordinate of the checked pixel value. \param c C-coordinate of the checked pixel value. **/ bool containsNXYZC(const int n, const int x=0, const int y=0, const int z=0, const int c=0) const { if (is_empty()) return false; return n>=0 && n<(int)_width && x>=0 && x<_data[n].width() && y>=0 && y<_data[n].height() && z>=0 && z<_data[n].depth() && c>=0 && c<_data[n].spectrum(); } //! Test if list contains image with specified indice. /** \param n Index of the checked image. **/ bool containsN(const int n) const { if (is_empty()) return false; return n>=0 && n<(int)_width; } //! Test if one image of the list contains the specified referenced value. /** \param pixel Reference to pixel value to test. \param[out] n Index of image containing the pixel value, if test succeeds. \param[out] x X-coordinate of the pixel value, if test succeeds. \param[out] y Y-coordinate of the pixel value, if test succeeds. \param[out] z Z-coordinate of the pixel value, if test succeeds. \param[out] c C-coordinate of the pixel value, if test succeeds. \note If true, set coordinates (n,x,y,z,c). **/ template bool contains(const T& pixel, t& n, t& x, t&y, t& z, t& c) const { if (is_empty()) return false; cimglist_for(*this,l) if (_data[l].contains(pixel,x,y,z,c)) { n = (t)l; return true; } return false; } //! Test if one of the image list contains the specified referenced value. /** \param pixel Reference to pixel value to test. \param[out] n Index of image containing the pixel value, if test succeeds. \param[out] x X-coordinate of the pixel value, if test succeeds. \param[out] y Y-coordinate of the pixel value, if test succeeds. \param[out] z Z-coordinate of the pixel value, if test succeeds. \note If true, set coordinates (n,x,y,z). **/ template bool contains(const T& pixel, t& n, t& x, t&y, t& z) const { t c; return contains(pixel,n,x,y,z,c); } //! Test if one of the image list contains the specified referenced value. /** \param pixel Reference to pixel value to test. \param[out] n Index of image containing the pixel value, if test succeeds. \param[out] x X-coordinate of the pixel value, if test succeeds. \param[out] y Y-coordinate of the pixel value, if test succeeds. \note If true, set coordinates (n,x,y). **/ template bool contains(const T& pixel, t& n, t& x, t&y) const { t z, c; return contains(pixel,n,x,y,z,c); } //! Test if one of the image list contains the specified referenced value. /** \param pixel Reference to pixel value to test. \param[out] n Index of image containing the pixel value, if test succeeds. \param[out] x X-coordinate of the pixel value, if test succeeds. \note If true, set coordinates (n,x). **/ template bool contains(const T& pixel, t& n, t& x) const { t y, z, c; return contains(pixel,n,x,y,z,c); } //! Test if one of the image list contains the specified referenced value. /** \param pixel Reference to pixel value to test. \param[out] n Index of image containing the pixel value, if test succeeds. \note If true, set coordinates (n). **/ template bool contains(const T& pixel, t& n) const { t x, y, z, c; return contains(pixel,n,x,y,z,c); } //! Test if one of the image list contains the specified referenced value. /** \param pixel Reference to pixel value to test. **/ bool contains(const T& pixel) const { unsigned int n, x, y, z, c; return contains(pixel,n,x,y,z,c); } //! Test if the list contains the image 'img'. /** \param img Reference to image to test. \param[out] n Index of image in the list, if test succeeds. \note If true, returns the position (n) of the image in the list. **/ template bool contains(const CImg& img, t& n) const { if (is_empty()) return false; const CImg *const ptr = &img; cimglist_for(*this,i) if (_data+i==ptr) { n = (t)i; return true; } return false; } //! Test if the list contains the image img. /** \param img Reference to image to test. **/ bool contains(const CImg& img) const { unsigned int n; return contains(img,n); } //@} //------------------------------------- // //! \name Mathematical Functions //@{ //------------------------------------- //! Return a reference to the minimum pixel value of the instance list. /** **/ T& min() { if (is_empty()) throw CImgInstanceException(_cimglist_instance "min(): Empty instance.", cimglist_instance); T *ptr_min = _data->_data; T min_value = *ptr_min; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) if (*ptrs_data; T min_value = *ptr_min; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) if (*ptrs_data; T max_value = *ptr_max; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) if (*ptrs>max_value) max_value = *(ptr_max=ptrs); } return *ptr_max; } //! Return a reference to the maximum pixel value of the instance list \const. const T& max() const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "max(): Empty instance.", cimglist_instance); const T *ptr_max = _data->_data; T max_value = *ptr_max; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) if (*ptrs>max_value) max_value = *(ptr_max=ptrs); } return *ptr_max; } //! Return a reference to the minimum pixel value of the instance list and return the maximum vvalue as well. /** \param[out] max_val Value of the maximum value found. **/ template T& min_max(t& max_val) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "min_max(): Empty instance.", cimglist_instance); T *ptr_min = _data->_data; T min_value = *ptr_min, max_value = min_value; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) { const T val = *ptrs; if (valmax_value) max_value = val; } } max_val = (t)max_value; return *ptr_min; } //! Return a reference to the minimum pixel value of the instance list and return the maximum vvalue as well \const. /** \param[out] max_val Value of the maximum value found. **/ template const T& min_max(t& max_val) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "min_max(): Empty instance.", cimglist_instance); const T *ptr_min = _data->_data; T min_value = *ptr_min, max_value = min_value; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) { const T val = *ptrs; if (valmax_value) max_value = val; } } max_val = (t)max_value; return *ptr_min; } //! Return a reference to the minimum pixel value of the instance list and return the minimum value as well. /** \param[out] min_val Value of the minimum value found. **/ template T& max_min(t& min_val) { if (is_empty()) throw CImgInstanceException(_cimglist_instance "max_min(): Empty instance.", cimglist_instance); T *ptr_max = _data->_data; T min_value = *ptr_max, max_value = min_value; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) { const T val = *ptrs; if (val>max_value) { max_value = val; ptr_max = ptrs; } if (val const T& max_min(t& min_val) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "max_min(): Empty instance.", cimglist_instance); const T *ptr_max = _data->_data; T min_value = *ptr_max, max_value = min_value; cimglist_for(*this,l) { const CImg& img = _data[l]; cimg_for(img,ptrs,T) { const T val = *ptrs; if (val>max_value) { max_value = val; ptr_max = ptrs; } if (val CImgList& insert(const CImg& img, const unsigned int pos=~0U, const bool is_shared=false) { const unsigned int npos = pos==~0U?_width:pos; if (npos>_width) throw CImgArgumentException(_cimglist_instance "insert(): Invalid insertion request of specified image (%u,%u,%u,%u,%p) at position %u.", cimglist_instance, img._width,img._height,img._depth,img._spectrum,img._data,npos); if (is_shared) throw CImgArgumentException(_cimglist_instance "insert(): Invalid insertion request of specified shared image CImg<%s>(%u,%u,%u,%u,%p) at position %u " "(pixel types are different).", cimglist_instance, img.pixel_type(),img._width,img._height,img._depth,img._spectrum,img._data,npos); CImg *const new_data = (++_width>_allocated_width)?new CImg[_allocated_width?(_allocated_width<<=1):(_allocated_width=16)]:0; if (!_data) { // Insert new element into empty list. _data = new_data; *_data = img; } else { if (new_data) { // Insert with re-allocation. if (npos) std::memcpy(new_data,_data,sizeof(CImg)*npos); if (npos!=_width-1) std::memcpy(new_data+npos+1,_data+npos,sizeof(CImg)*(_width-1-npos)); std::memset(_data,0,sizeof(CImg)*(_width-1)); delete[] _data; _data = new_data; } else if (npos!=_width-1) std::memmove(_data+npos+1,_data+npos,sizeof(CImg)*(_width-1-npos)); // Insert without re-allocation. _data[npos]._width = _data[npos]._height = _data[npos]._depth = _data[npos]._spectrum = 0; _data[npos]._data = 0; _data[npos] = img; } return *this; } //! Insert a copy of the image \c img into the current image list, at position \c pos \specialization. CImgList& insert(const CImg& img, const unsigned int pos=~0U, const bool is_shared=false) { const unsigned int npos = pos==~0U?_width:pos; if (npos>_width) throw CImgArgumentException(_cimglist_instance "insert(): Invalid insertion request of specified image (%u,%u,%u,%u,%p) at position %u.", cimglist_instance, img._width,img._height,img._depth,img._spectrum,img._data,npos); CImg *const new_data = (++_width>_allocated_width)?new CImg[_allocated_width?(_allocated_width<<=1):(_allocated_width=16)]:0; if (!_data) { // Insert new element into empty list. _data = new_data; if (is_shared && img) { _data->_width = img._width; _data->_height = img._height; _data->_depth = img._depth; _data->_spectrum = img._spectrum; _data->_is_shared = true; _data->_data = img._data; } else *_data = img; } else { if (new_data) { // Insert with re-allocation. if (npos) std::memcpy(new_data,_data,sizeof(CImg)*npos); if (npos!=_width-1) std::memcpy(new_data+npos+1,_data+npos,sizeof(CImg)*(_width-1-npos)); if (is_shared && img) { new_data[npos]._width = img._width; new_data[npos]._height = img._height; new_data[npos]._depth = img._depth; new_data[npos]._spectrum = img._spectrum; new_data[npos]._is_shared = true; new_data[npos]._data = img._data; } else { new_data[npos]._width = new_data[npos]._height = new_data[npos]._depth = new_data[npos]._spectrum = 0; new_data[npos]._data = 0; new_data[npos] = img; } std::memset(_data,0,sizeof(CImg)*(_width-1)); delete[] _data; _data = new_data; } else { // Insert without re-allocation. if (npos!=_width-1) std::memmove(_data+npos+1,_data+npos,sizeof(CImg)*(_width-1-npos)); if (is_shared && img) { _data[npos]._width = img._width; _data[npos]._height = img._height; _data[npos]._depth = img._depth; _data[npos]._spectrum = img._spectrum; _data[npos]._is_shared = true; _data[npos]._data = img._data; } else { _data[npos]._width = _data[npos]._height = _data[npos]._depth = _data[npos]._spectrum = 0; _data[npos]._data = 0; _data[npos] = img; } } } return *this; } //! Insert a copy of the image \c img into the current image list, at position \c pos \newinstance. template CImgList get_insert(const CImg& img, const unsigned int pos=~0U, const bool is_shared=false) const { return (+*this).insert(img,pos,is_shared); } //! Insert n empty images img into the current image list, at position \p pos. /** \param n Number of empty images to insert. \param pos Index of the insertion. **/ CImgList& insert(const unsigned int n, const unsigned int pos=~0U) { CImg empty; if (!n) return *this; const unsigned int npos = pos==~0U?_width:pos; for (unsigned int i = 0; i get_insert(const unsigned int n, const unsigned int pos=~0U) const { return (+*this).insert(n,pos); } //! Insert \c n copies of the image \c img into the current image list, at position \c pos. /** \param n Number of image copies to insert. \param img Image to insert by copy. \param pos Index of the insertion. \param is_shared Tells if inserted images are shared copies of \c img or not. **/ template CImgList& insert(const unsigned int n, const CImg& img, const unsigned int pos=~0U, const bool is_shared=false) { if (!n) return *this; const unsigned int npos = pos==~0U?_width:pos; insert(img,npos,is_shared); for (unsigned int i = 1; i CImgList get_insert(const unsigned int n, const CImg& img, const unsigned int pos=~0U, const bool is_shared=false) const { return (+*this).insert(n,img,pos,is_shared); } //! Insert a copy of the image list \c list into the current image list, starting from position \c pos. /** \param list Image list to insert. \param pos Index of the insertion. \param is_shared Tells if inserted images are shared copies of images of \c list or not. **/ template CImgList& insert(const CImgList& list, const unsigned int pos=~0U, const bool is_shared=false) { const unsigned int npos = pos==~0U?_width:pos; if ((void*)this!=(void*)&list) cimglist_for(list,l) insert(list[l],npos+l,is_shared); else insert(CImgList(list),npos,is_shared); return *this; } //! Insert a copy of the image list \c list into the current image list, starting from position \c pos \newinstance. template CImgList get_insert(const CImgList& list, const unsigned int pos=~0U, const bool is_shared=false) const { return (+*this).insert(list,pos,is_shared); } //! Insert n copies of the list \c list at position \c pos of the current list. /** \param n Number of list copies to insert. \param list Image list to insert. \param pos Index of the insertion. \param is_shared Tells if inserted images are shared copies of images of \c list or not. **/ template CImgList& insert(const unsigned int n, const CImgList& list, const unsigned int pos=~0U, const bool is_shared=false) { if (!n) return *this; const unsigned int npos = pos==~0U?_width:pos; for (unsigned int i = 0; i CImgList get_insert(const unsigned int n, const CImgList& list, const unsigned int pos=~0U, const bool is_shared=false) const { return (+*this).insert(n,list,pos,is_shared); } //! Remove all images between from indexes. /** \param pos1 Starting index of the removal. \param pos2 Ending index of the removal. **/ CImgList& remove(const unsigned int pos1, const unsigned int pos2) { const unsigned int npos1 = pos1=_width) throw CImgArgumentException(_cimglist_instance "remove(): Invalid remove request at positions %u->%u.", cimglist_instance, npos1,tpos2); else { if (tpos2>=_width) throw CImgArgumentException(_cimglist_instance "remove(): Invalid remove request at positions %u->%u.", cimglist_instance, npos1,tpos2); for (unsigned int k = npos1; k<=npos2; ++k) _data[k].assign(); const unsigned int nb = 1 + npos2 - npos1; if (!(_width-=nb)) return assign(); if (_width>(_allocated_width>>2) || _allocated_width<=16) { // Removing items without reallocation. if (npos1!=_width) std::memmove(_data+npos1,_data+npos2+1,sizeof(CImg)*(_width - npos1)); std::memset(_data + _width,0,sizeof(CImg)*nb); } else { // Removing items with reallocation. _allocated_width>>=2; while (_allocated_width>16 && _width<(_allocated_width>>1)) _allocated_width>>=1; CImg *const new_data = new CImg[_allocated_width]; if (npos1) std::memcpy(new_data,_data,sizeof(CImg)*npos1); if (npos1!=_width) std::memcpy(new_data+npos1,_data+npos2+1,sizeof(CImg)*(_width-npos1)); if (_width!=_allocated_width) std::memset(new_data+_width,0,sizeof(_allocated_width - _width)); std::memset(_data,0,sizeof(CImg)*(_width+nb)); delete[] _data; _data = new_data; } } return *this; } //! Remove all images between from indexes \newinstance. CImgList get_remove(const unsigned int pos1, const unsigned int pos2) const { return (+*this).remove(pos1,pos2); } //! Remove image at index \c pos from the image list. /** \param pos Index of the image to remove. **/ CImgList& remove(const unsigned int pos) { return remove(pos,pos); } //! Remove image at index \c pos from the image list \newinstance. CImgList get_remove(const unsigned int pos) const { return (+*this).remove(pos); } //! Remove last image. /** **/ CImgList& remove() { return remove(_width-1); } //! Remove last image \newinstance. CImgList get_remove() const { return (+*this).remove(); } //! Reverse list order. CImgList& reverse() { for (unsigned int l = 0; l<_width/2; ++l) (*this)[l].swap((*this)[_width-1-l]); return *this; } //! Reverse list order \newinstance. CImgList get_reverse() const { return (+*this).reverse(); } //! Return a sublist. /** \param pos0 Starting index of the sublist. \param pos1 Ending index of the sublist. **/ CImgList& images(const unsigned int pos0, const unsigned int pos1) { return get_images(pos0,pos1).move_to(*this); } //! Return a sublist \newinstance. CImgList get_images(const unsigned int pos0, const unsigned int pos1) const { if (pos0>pos1 || pos1>=_width) throw CImgArgumentException(_cimglist_instance "images(): Specified sub-list indices (%u->%u) are out of bounds.", cimglist_instance, pos0,pos1); CImgList res(pos1-pos0+1); cimglist_for(res,l) res[l].assign(_data[pos0+l]); return res; } //! Return a shared sublist. /** \param pos0 Starting index of the sublist. \param pos1 Ending index of the sublist. **/ CImgList get_shared_images(const unsigned int pos0, const unsigned int pos1) { if (pos0>pos1 || pos1>=_width) throw CImgArgumentException(_cimglist_instance "get_shared_images(): Specified sub-list indices (%u->%u) are out of bounds.", cimglist_instance, pos0,pos1); CImgList res(pos1-pos0+1); cimglist_for(res,l) res[l].assign(_data[pos0+l],_data[pos0+l]?true:false); return res; } //! Return a shared sublist \newinstance. const CImgList get_shared_images(const unsigned int pos0, const unsigned int pos1) const { if (pos0>pos1 || pos1>=_width) throw CImgArgumentException(_cimglist_instance "get_shared_images(): Specified sub-list indices (%u->%u) are out of bounds.", cimglist_instance, pos0,pos1); CImgList res(pos1-pos0+1); cimglist_for(res,l) res[l].assign(_data[pos0+l],_data[pos0+l]?true:false); return res; } //! Return a single image which is the appending of all images of the current CImgList instance. /** \param axis Appending axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ CImg get_append(const char axis, const float align=0) const { if (is_empty()) return CImg(); if (_width==1) return +((*this)[0]); unsigned int dx = 0, dy = 0, dz = 0, dc = 0, pos = 0; CImg res; switch (cimg::uncase(axis)) { case 'x' : { // Along the X-axis. cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) { dx+=img._width; dy = cimg::max(dy,img._height); dz = cimg::max(dz,img._depth); dc = cimg::max(dc,img._spectrum); } } res.assign(dx,dy,dz,dc,0); if (res) cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) res.draw_image(pos, (int)(align*(dy-img._height)), (int)(align*(dz-img._depth)), (int)(align*(dc-img._spectrum)), img); pos+=img._width; } } break; case 'y' : { // Along the Y-axis. cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) { dx = cimg::max(dx,img._width); dy+=img._height; dz = cimg::max(dz,img._depth); dc = cimg::max(dc,img._spectrum); } } res.assign(dx,dy,dz,dc,0); if (res) cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) res.draw_image((int)(align*(dx-img._width)), pos, (int)(align*(dz-img._depth)), (int)(align*(dc-img._spectrum)), img); pos+=img._height; } } break; case 'z' : { // Along the Z-axis. cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) { dx = cimg::max(dx,img._width); dy = cimg::max(dy,img._height); dz+=img._depth; dc = cimg::max(dc,img._spectrum); } } res.assign(dx,dy,dz,dc,0); if (res) cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) res.draw_image((int)(align*(dx-img._width)), (int)(align*(dy-img._height)), pos, (int)(align*(dc-img._spectrum)), img); pos+=img._depth; } } break; default : { // Along the C-axis. cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) { dx = cimg::max(dx,img._width); dy = cimg::max(dy,img._height); dz = cimg::max(dz,img._depth); dc+=img._spectrum; } } res.assign(dx,dy,dz,dc,0); if (res) cimglist_for(*this,l) { const CImg& img = (*this)[l]; if (img) res.draw_image((int)(align*(dx-img._width)), (int)(align*(dy-img._height)), (int)(align*(dz-img._depth)), pos, img); pos+=img._spectrum; } } } return res; } //! Return a list where each image has been split along the specified axis. /** \param axis Axis to split images along. \param nb Number of spliting parts for each image. **/ CImgList& split(const char axis, const int nb=0) { return get_split(axis,nb).move_to(*this); } //! Return a list where each image has been split along the specified axis \newinstance. CImgList get_split(const char axis, const int nb=0) const { CImgList res; cimglist_for(*this,l) _data[l].get_split(axis,nb).move_to(res,~0U); return res; } //! Insert image at the end of the list. /** \param img Image to insert. **/ template CImgList& push_back(const CImg& img) { return insert(img); } //! Insert image at the front of the list. /** \param img Image to insert. **/ template CImgList& push_front(const CImg& img) { return insert(img,0); } //! Insert list at the end of the current list. /** \param list List to insert. **/ template CImgList& push_back(const CImgList& list) { return insert(list); } //! Insert list at the front of the current list. /** \param list List to insert. **/ template CImgList& push_front(const CImgList& list) { return insert(list,0); } //! Remove last image. /** **/ CImgList& pop_back() { return remove(_width-1); } //! Remove first image. /** **/ CImgList& pop_front() { return remove(0); } //! Remove image pointed by iterator. /** \param iter Iterator pointing to the image to remove. **/ CImgList& erase(const iterator iter) { return remove(iter-_data); } //@} //---------------------------------- // //! \name Data Input //@{ //---------------------------------- //! Display a simple interactive interface to select images or sublists. /** \param disp Window instance to display selection and user interface. \param feature_type Can be \c false to select a single image, or \c true to select a sublist. \param axis Axis along whom images are appended for visualization. \param align Alignment setting when images have not all the same size. \return A one-column vector containing the selected image indexes. **/ CImg get_select(CImgDisplay &disp, const bool feature_type=true, const char axis='x', const float align=0) const { return _get_select(disp,0,feature_type,axis,align,0,false,false,false); } //! Display a simple interactive interface to select images or sublists. /** \param title Title of a new window used to display selection and user interface. \param feature_type Can be \c false to select a single image, or \c true to select a sublist. \param axis Axis along whom images are appended for visualization. \param align Alignment setting when images have not all the same size. \return A one-column vector containing the selected image indexes. **/ CImg get_select(const char *const title, const bool feature_type=true, const char axis='x', const float align=0) const { CImgDisplay disp; return _get_select(disp,title,feature_type,axis,align,0,false,false,false); } CImg _get_select(CImgDisplay &disp, const char *const title, const bool feature_type, const char axis, const float align, const unsigned int orig, const bool resize_disp, const bool exit_on_rightbutton, const bool exit_on_wheel) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "select(): Empty instance.", cimglist_instance); // Create image correspondence table and get list dimensions for visualization. CImgList _indices; unsigned int max_width = 0, max_height = 0, sum_width = 0, sum_height = 0; cimglist_for(*this,l) { const CImg& img = _data[l]; const unsigned int w = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,false), h = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,true); if (w>max_width) max_width = w; if (h>max_height) max_height = h; sum_width+=w; sum_height+=h; if (axis=='x') CImg(w,1,1,1,(unsigned int)l).move_to(_indices); else CImg(h,1,1,1,(unsigned int)l).move_to(_indices); } const CImg indices0 = _indices>'x'; // Create display window. if (!disp) { if (axis=='x') disp.assign(cimg_fitscreen(sum_width,max_height,1),title?title:0,1); else disp.assign(cimg_fitscreen(max_width,sum_height,1),title?title:0,1); if (!title) disp.set_title("CImgList<%s> (%u)",pixel_type(),_width); } else if (title) disp.set_title("%s",title); if (resize_disp) { if (axis=='x') disp.resize(cimg_fitscreen(sum_width,max_height,1),false); else disp.resize(cimg_fitscreen(max_width,sum_height,1),false); } const unsigned int old_normalization = disp.normalization(); bool old_is_resized = disp.is_resized(); disp._normalization = 0; disp.show().set_key(0); const unsigned char foreground_color[] = { 255,255,255 }, background_color[] = { 0,0,0 }; // Enter event loop. CImg visu0, visu; CImg indices; CImg positions(_width,4,1,1,-1); int oindice0 = -1, oindice1 = -1, indice0 = -1, indice1 = -1; bool is_clicked = false, is_selected = false, text_down = false, update_display = true; unsigned int key = 0; while (!is_selected && !disp.is_closed() && !key) { // Create background image. if (!visu0) { visu0.assign(disp._width,disp._height,1,3,0); visu.assign(); (indices0.get_resize(axis=='x'?visu0._width:visu0._height,1)).move_to(indices); unsigned int ind = 0; if (axis=='x') for (unsigned int x = 0; x onexone(1,1,1,1,0), &src = _data[ind]?_data[ind]:onexone, _img2d = src._depth>1?src.get_projections2d(src._width/2,src._height/2,src._depth/2):CImg(), &img2d = _img2d?_img2d:src; CImg res = old_normalization==1 || (old_normalization==3 && cimg::type::string()!=cimg::type::string())? CImg(img2d.get_channels(0,cimg::min(2,img2d.spectrum()-1)).normalize(0,255)): CImg(img2d.get_channels(0,cimg::min(2,img2d.spectrum()-1))); const unsigned int h = CImgDisplay::_fitscreen(res._width,res._height,1,128,-85,true); res.resize(x - x0,cimg::max(32U,h*disp._height/max_height),1,res._spectrum==1?3:-100); positions(ind,0) = positions(ind,2) = (int)x0; positions(ind,1) = positions(ind,3) = (int)(align*(visu0.height()-res.height())); positions(ind,2)+=res._width; positions(ind,3)+=res._height - 1; visu0.draw_image(positions(ind,0),positions(ind,1),res); } else for (unsigned int y = 0; y &src = _data[ind], _img2d = src._depth>1?src.get_projections2d(src._width/2,src._height/2,src._depth/2):CImg(), &img2d = _img2d?_img2d:src; CImg res = old_normalization==1 || (old_normalization==3 && cimg::type::string()!=cimg::type::string())? CImg(img2d.get_normalize(0,255)): CImg(img2d); if (res._spectrum>3) res.channels(0,2); const unsigned int w = CImgDisplay::_fitscreen(res._width,res._height,1,128,-85,false); res.resize(cimg::max(32U,w*disp._width/max_width),y - y0,1,res._spectrum==1?3:-100); positions(ind,0) = positions(ind,2) = (int)(align*(visu0.width()-res.width())); positions(ind,1) = positions(ind,3) = (int)y0; positions(ind,2)+=res._width - 1; positions(ind,3)+=res._height; visu0.draw_image(positions(ind,0),positions(ind,1),res); } if (axis=='x') --positions(ind,2); else --positions(ind,3); update_display = true; } if (!visu || oindice0!=indice0 || oindice1!=indice1) { if (indice0>=0 && indice1>=0) { visu.assign(visu0,false); const int indm = cimg::min(indice0,indice1), indM = cimg::max(indice0,indice1); for (int ind = indm; ind<=indM; ++ind) if (positions(ind,0)>=0) { visu.draw_rectangle(positions(ind,0),positions(ind,1),positions(ind,2),positions(ind,3),background_color,0.2f); if ((axis=='x' && positions(ind,2) - positions(ind,0)>=8) || (axis!='x' && positions(ind,3) - positions(ind,1)>=8)) visu.draw_rectangle(positions(ind,0),positions(ind,1),positions(ind,2),positions(ind,3),foreground_color,0.9f,0x55555555); } const int yt = (int)text_down?visu.height()-13:0; if (is_clicked) visu.draw_text(0,yt," Images %u - %u, Size = %u",foreground_color,background_color,0.7f,13, orig + indm,orig + indM,indM - indm + 1); else visu.draw_text(0,yt," Image %u",foreground_color,background_color,0.7f,13, orig + indice0); update_display = true; } else visu.assign(); } if (!visu) { visu.assign(visu0,true); update_display = true; } if (update_display) { visu.display(disp); update_display = false; } disp.wait(); // Manage user events. const int xm = disp.mouse_x(), ym = disp.mouse_y(); int indice = -1; if (xm>=0) { indice = (int)indices(axis=='x'?xm:ym); if (disp.button()&1) { if (!is_clicked) { is_clicked = true; oindice0 = indice0; indice0 = indice; } oindice1 = indice1; indice1 = indice; if (!feature_type) is_selected = true; } else { if (!is_clicked) { oindice0 = oindice1 = indice0; indice0 = indice1 = indice; } else is_selected = true; } } else { if (is_clicked) { if (!(disp.button()&1)) { is_clicked = is_selected = false; indice0 = indice1 = -1; } else indice1 = -1; } else indice0 = indice1 = -1; } if (disp.button()&4) { is_clicked = is_selected = false; indice0 = indice1 = -1; } if (disp.button()&2 && exit_on_rightbutton) { is_selected = true; indice1 = indice0 = -1; } if (disp.wheel() && exit_on_wheel) is_selected = true; switch (key = disp.key()) { #if cimg_OS!=2 case cimg::keyCTRLRIGHT : #endif case 0 : case cimg::keyCTRLLEFT : key = 0; break; case cimg::keyD : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,false), CImgDisplay::_fitscreen(3*disp.width()/2,3*disp.height()/2,1,128,-100,true),false). _is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyC : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1),false)._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyR : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.set_fullscreen(false).resize(cimg_fitscreen(axis=='x'?sum_width:max_width,axis=='x'?max_height:sum_height,1),false)._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyF : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { disp.resize(disp.screen_width(),disp.screen_height(),false).toggle_fullscreen()._is_resized = true; disp.set_key(key,false); key = 0; visu0.assign(); } break; case cimg::keyS : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.bmp",snap_number++); if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); if (visu0) { visu.draw_text(0,0," Saving snapshot... ",foreground_color,background_color,1,13).display(disp); visu0.save(filename); visu.draw_text(0,0," Snapshot '%s' saved. ",foreground_color,background_color,1,13,filename).display(disp); } disp.set_key(key,false).wait(); key = 0; } break; case cimg::keyO : if (disp.is_keyCTRLLEFT() || disp.is_keyCTRLRIGHT()) { static unsigned int snap_number = 0; char filename[32] = { 0 }; std::FILE *file; do { #ifdef cimg_use_zlib cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimgz",snap_number++); #else cimg_snprintf(filename,sizeof(filename),cimg_appname "_%.4u.cimg",snap_number++); #endif if ((file=std::fopen(filename,"r"))!=0) cimg::fclose(file); } while (file); visu.draw_text(0,0," Saving instance... ",foreground_color,background_color,1,13).display(disp); save(filename); visu.draw_text(0,0," Instance '%s' saved. ",foreground_color,background_color,1,13,filename).display(disp); disp.set_key(key,false).wait(); key = 0; } break; } if (disp.is_resized()) { disp.resize(false); visu0.assign(); } if (ym>=0 && ym<13) { if (!text_down) { visu.assign(); text_down = true; }} else if (ym>=visu.height()-13) { if(text_down) { visu.assign(); text_down = false; }} } CImg res(1,2,1,1,-1); if (is_selected) { if (feature_type) res.fill(cimg::min(indice0,indice1),cimg::max(indice0,indice1)); else res.fill(indice0); } if (!(disp.button()&2)) disp.set_button(); disp._normalization = old_normalization; disp._is_resized = old_is_resized; disp.set_key(key); return res; } //! Load a list from a file. /** \param filename Filename to read data from. **/ CImgList& load(const char *const filename) { if (!filename) throw CImgArgumentException(_cimglist_instance "load(): Specified filename is (null).", cimglist_instance); if (!cimg::strncasecmp(filename,"http://",7) || !cimg::strncasecmp(filename,"https://",8)) { char filename_local[1024] = { 0 }; load(cimg::load_network_external(filename,filename_local)); std::remove(filename_local); return *this; } const char *const ext = cimg::split_filename(filename); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { #ifdef cimglist_load_plugin cimglist_load_plugin(filename); #endif #ifdef cimglist_load_plugin1 cimglist_load_plugin1(filename); #endif #ifdef cimglist_load_plugin2 cimglist_load_plugin2(filename); #endif #ifdef cimglist_load_plugin3 cimglist_load_plugin3(filename); #endif #ifdef cimglist_load_plugin4 cimglist_load_plugin4(filename); #endif #ifdef cimglist_load_plugin5 cimglist_load_plugin5(filename); #endif #ifdef cimglist_load_plugin6 cimglist_load_plugin6(filename); #endif #ifdef cimglist_load_plugin7 cimglist_load_plugin7(filename); #endif #ifdef cimglist_load_plugin8 cimglist_load_plugin8(filename); #endif if (!cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff")) load_tiff(filename); else if (!cimg::strcasecmp(ext,"gif")) load_gif_external(filename); else if (!cimg::strcasecmp(ext,"cimg") || !cimg::strcasecmp(ext,"cimgz") || !*ext) load_cimg(filename); else if (!cimg::strcasecmp(ext,"rec") || !cimg::strcasecmp(ext,"par")) load_parrec(filename); else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) load_ffmpeg(filename); else if (!cimg::strcasecmp(ext,"gz")) load_gzip_external(filename); else throw CImgIOException("CImgList<%s>::load()", pixel_type()); } catch (CImgIOException&) { try { cimg::fclose(cimg::fopen(filename,"rb")); } catch (CImgIOException&) { cimg::exception_mode() = omode; throw CImgIOException(_cimglist_instance "load(): Failed to open file '%s'.", cimglist_instance, filename); } assign(1); try { _data->load(filename); } catch (CImgIOException&) { cimg::exception_mode() = omode; throw CImgIOException(_cimglist_instance "load(): Failed to recognize format of file '%s'.", cimglist_instance, filename); } } cimg::exception_mode() = omode; return *this; } //! Load a list from a file \newinstance. static CImgList get_load(const char *const filename) { return CImgList().load(filename); } //! Load a list from a .cimg file. /** \param filename Filename to read data from. **/ CImgList& load_cimg(const char *const filename) { return _load_cimg(0,filename); } //! Load a list from a .cimg file \newinstance. static CImgList get_load_cimg(const char *const filename) { return CImgList().load_cimg(filename); } //! Load a list from a .cimg file. /** \param file File to read data from. **/ CImgList& load_cimg(std::FILE *const file) { return _load_cimg(file,0); } //! Load a list from a .cimg file \newinstance. static CImgList get_load_cimg(std::FILE *const file) { return CImgList().load_cimg(file); } CImgList& _load_cimg(std::FILE *const file, const char *const filename) { #ifdef cimg_use_zlib #define _cimgz_load_cimg_case(Tss) { \ Bytef *const cbuf = new Bytef[csiz]; \ cimg::fread(cbuf,csiz,nfile); \ raw.assign(W,H,D,C); \ unsigned long destlen = (unsigned long)raw.size()*sizeof(Tss); \ uncompress((Bytef*)raw._data,&destlen,cbuf,csiz); \ delete[] cbuf; \ const Tss *ptrs = raw._data; \ for (unsigned long off = raw.size(); off; --off) *(ptrd++) = (T)*(ptrs++); \ } #else #define _cimgz_load_cimg_case(Tss) \ throw CImgIOException(_cimglist_instance \ "load_cimg(): Unable to load compressed data from file '%s' unless zlib is enabled.", \ cimglist_instance, \ filename?filename:"(FILE*)"); #endif #define _cimg_load_cimg_case(Ts,Tss) \ if (!loaded && !cimg::strcasecmp(Ts,str_pixeltype)) { \ for (unsigned int l = 0; l=0) tmp[j++] = (char)i; tmp[j] = 0; \ W = H = D = C = 0; csiz = 0; \ if ((err = std::sscanf(tmp,"%u %u %u %u #%u",&W,&H,&D,&C,&csiz))<4) \ throw CImgIOException(_cimglist_instance \ "load_cimg(): Invalid specified size (%u,%u,%u,%u) of image %u in file '%s'", \ cimglist_instance, \ W,H,D,C,l,filename?filename:("(FILE*)")); \ if (W*H*D*C>0) { \ CImg raw; \ CImg &img = _data[l]; \ img.assign(W,H,D,C); \ T *ptrd = img._data; \ if (err==5) _cimgz_load_cimg_case(Tss) \ else for (long to_read = (long)img.size(); to_read>0; ) { \ raw.assign(cimg::min(to_read,cimg_iobuffer)); \ cimg::fread(raw._data,raw._width,nfile); \ if (endian!=cimg::endianness()) cimg::invert_endianness(raw._data,raw._width); \ to_read-=raw._width; \ const Tss *ptrs = raw._data; \ for (unsigned long off = (unsigned long)raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); \ } \ } \ } \ loaded = true; \ } if (!filename && !file) throw CImgArgumentException(_cimglist_instance "load_cimg(): Specified filename is (null).", cimglist_instance); const int cimg_iobuffer = 12*1024*1024; std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); bool loaded = false, endian = cimg::endianness(); char tmp[256] = { 0 }, str_pixeltype[256] = { 0 }, str_endian[256] = { 0 }; unsigned int j, err, N = 0, W, H, D, C, csiz; int i; do { j = 0; while ((i=std::fgetc(nfile))!='\n' && i!=EOF && j<256) tmp[j++] = (char)i; tmp[j] = 0; } while (*tmp=='#' && i!=EOF); err = std::sscanf(tmp,"%u%*c%255[A-Za-z_]%*c%255[sA-Za-z_ ]",&N,str_pixeltype,str_endian); if (err<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "load_cimg(): CImg header not found in file '%s'.", cimglist_instance, filename?filename:"(FILE*)"); } if (!cimg::strncasecmp("little",str_endian,6)) endian = false; else if (!cimg::strncasecmp("big",str_endian,3)) endian = true; assign(N); _cimg_load_cimg_case("bool",bool); _cimg_load_cimg_case("unsigned_char",unsigned char); _cimg_load_cimg_case("uchar",unsigned char); _cimg_load_cimg_case("char",char); _cimg_load_cimg_case("unsigned_short",unsigned short); _cimg_load_cimg_case("ushort",unsigned short); _cimg_load_cimg_case("short",short); _cimg_load_cimg_case("unsigned_int",unsigned int); _cimg_load_cimg_case("uint",unsigned int); _cimg_load_cimg_case("int",int); _cimg_load_cimg_case("unsigned_long",unsigned long); _cimg_load_cimg_case("ulong",unsigned long); _cimg_load_cimg_case("long",long); _cimg_load_cimg_case("float",float); _cimg_load_cimg_case("double",double); if (!loaded) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "load_cimg(): Unsupported pixel type '%s' for file '%s'.", cimglist_instance, str_pixeltype,filename?filename:"(FILE*)"); } if (!file) cimg::fclose(nfile); return *this; } //! Load a sublist list from a (non compressed) .cimg file. /** \param filename Filename to read data from. \param n0 Starting index of images to read. \param n1 Ending index of images to read. \param x0 Starting X-coordinates of image regions to read. \param y0 Starting Y-coordinates of image regions to read. \param z0 Starting Z-coordinates of image regions to read. \param c0 Starting C-coordinates of image regions to read. \param x1 Ending X-coordinates of image regions to read. \param y1 Ending Y-coordinates of image regions to read. \param z1 Ending Z-coordinates of image regions to read. \param c1 Ending C-coordinates of image regions to read. **/ CImgList& load_cimg(const char *const filename, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { return _load_cimg(0,filename,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); } //! Load a sublist list from a (non compressed) .cimg file \newinstance. static CImgList get_load_cimg(const char *const filename, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { return CImgList().load_cimg(filename,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); } //! Load a sub-image list from a (non compressed) .cimg file. /** \param file File to read data from. \param n0 Starting index of images to read. \param n1 Ending index of images to read. \param x0 Starting X-coordinates of image regions to read. \param y0 Starting Y-coordinates of image regions to read. \param z0 Starting Z-coordinates of image regions to read. \param c0 Starting C-coordinates of image regions to read. \param x1 Ending X-coordinates of image regions to read. \param y1 Ending Y-coordinates of image regions to read. \param z1 Ending Z-coordinates of image regions to read. \param c1 Ending C-coordinates of image regions to read. **/ CImgList& load_cimg(std::FILE *const file, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { return _load_cimg(file,0,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); } //! Load a sub-image list from a (non compressed) .cimg file \newinstance. static CImgList get_load_cimg(std::FILE *const file, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { return CImgList().load_cimg(file,n0,n1,x0,y0,z0,c0,x1,y1,z1,c1); } CImgList& _load_cimg(std::FILE *const file, const char *const filename, const unsigned int n0, const unsigned int n1, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0, const unsigned int x1, const unsigned int y1, const unsigned int z1, const unsigned int c1) { #define _cimg_load_cimg_case2(Ts,Tss) \ if (!loaded && !cimg::strcasecmp(Ts,str_pixeltype)) { \ for (unsigned int l = 0; l<=nn1; ++l) { \ j = 0; while ((i=std::fgetc(nfile))!='\n' && i>=0) tmp[j++] = (char)i; tmp[j] = 0; \ W = H = D = C = 0; \ if (std::sscanf(tmp,"%u %u %u %u",&W,&H,&D,&C)!=4) \ throw CImgIOException(_cimglist_instance \ "load_cimg(): Invalid specified size (%u,%u,%u,%u) of image %u in file '%s'", \ cimglist_instance, \ W,H,D,C,l,filename?filename:"(FILE*)"); \ if (W*H*D*C>0) { \ if (l=W || y0>=H || z0>=D || c0>=D) std::fseek(nfile,W*H*D*C*sizeof(Tss),SEEK_CUR); \ else { \ const unsigned int \ nx1 = x1>=W?W-1:x1, \ ny1 = y1>=H?H-1:y1, \ nz1 = z1>=D?D-1:z1, \ nc1 = c1>=C?C-1:c1; \ CImg raw(1 + nx1 - x0); \ CImg &img = _data[l - n0]; \ img.assign(1 + nx1 - x0,1 + ny1 - y0,1 + nz1 - z0,1 + nc1 - c0); \ T *ptrd = img._data; \ const unsigned int skipvb = c0*W*H*D*sizeof(Tss); \ if (skipvb) std::fseek(nfile,skipvb,SEEK_CUR); \ for (unsigned int v = 1 + nc1 - c0; v; --v) { \ const unsigned int skipzb = z0*W*H*sizeof(Tss); \ if (skipzb) std::fseek(nfile,skipzb,SEEK_CUR); \ for (unsigned int z = 1 + nz1 - z0; z; --z) { \ const unsigned int skipyb = y0*W*sizeof(Tss); \ if (skipyb) std::fseek(nfile,skipyb,SEEK_CUR); \ for (unsigned int y = 1 + ny1 - y0; y; --y) { \ const unsigned int skipxb = x0*sizeof(Tss); \ if (skipxb) std::fseek(nfile,skipxb,SEEK_CUR); \ cimg::fread(raw._data,raw._width,nfile); \ if (endian!=cimg::endianness()) cimg::invert_endianness(raw._data,raw._width); \ const Tss *ptrs = raw._data; \ for (unsigned int off = raw._width; off; --off) *(ptrd++) = (T)*(ptrs++); \ const unsigned int skipxe = (W-1-nx1)*sizeof(Tss); \ if (skipxe) std::fseek(nfile,skipxe,SEEK_CUR); \ } \ const unsigned int skipye = (H-1-ny1)*W*sizeof(Tss); \ if (skipye) std::fseek(nfile,skipye,SEEK_CUR); \ } \ const unsigned int skipze = (D-1-nz1)*W*H*sizeof(Tss); \ if (skipze) std::fseek(nfile,skipze,SEEK_CUR); \ } \ const unsigned int skipve = (C-1-nc1)*W*H*D*sizeof(Tss); \ if (skipve) std::fseek(nfile,skipve,SEEK_CUR); \ } \ } \ } \ loaded = true; \ } if (!filename && !file) throw CImgArgumentException(_cimglist_instance "load_cimg(): Specified filename is (null).", cimglist_instance); if (n1%u] (%u,%u,%u,%u)->(%u,%u,%u,%u) for file '%s'.", cimglist_instance, n0,n1,x0,y0,z0,c0,x1,y1,z1,filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); bool loaded = false, endian = cimg::endianness(); char tmp[256] = { 0 }, str_pixeltype[256] = { 0 }, str_endian[256] = { 0 }; unsigned int j, err, N, W, H, D, C; int i; j = 0; while((i=std::fgetc(nfile))!='\n' && i!=EOF && j<256) tmp[j++] = (char)i; tmp[j] = 0; err = std::sscanf(tmp,"%u%*c%255[A-Za-z_]%*c%255[sA-Za-z_ ]",&N,str_pixeltype,str_endian); if (err<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "load_cimg(): CImg header not found in file '%s'.", cimglist_instance, filename?filename:"(FILE*)"); } if (!cimg::strncasecmp("little",str_endian,6)) endian = false; else if (!cimg::strncasecmp("big",str_endian,3)) endian = true; const unsigned int nn1 = n1>=N?N-1:n1; assign(1+nn1-n0); _cimg_load_cimg_case2("bool",bool); _cimg_load_cimg_case2("unsigned_char",unsigned char); _cimg_load_cimg_case2("uchar",unsigned char); _cimg_load_cimg_case2("char",char); _cimg_load_cimg_case2("unsigned_short",unsigned short); _cimg_load_cimg_case2("ushort",unsigned short); _cimg_load_cimg_case2("short",short); _cimg_load_cimg_case2("unsigned_int",unsigned int); _cimg_load_cimg_case2("uint",unsigned int); _cimg_load_cimg_case2("int",int); _cimg_load_cimg_case2("unsigned_long",unsigned long); _cimg_load_cimg_case2("ulong",unsigned long); _cimg_load_cimg_case2("long",long); _cimg_load_cimg_case2("float",float); _cimg_load_cimg_case2("double",double); if (!loaded) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "load_cimg(): Unsupported pixel type '%s' for file '%s'.", cimglist_instance, str_pixeltype,filename?filename:"(FILE*)"); } if (!file) cimg::fclose(nfile); return *this; } //! Load a list from a PAR/REC (Philips) file. /** \param filename Filename to read data from. **/ CImgList& load_parrec(const char *const filename) { if (!filename) throw CImgArgumentException(_cimglist_instance "load_parrec(): Specified filename is (null).", cimglist_instance); char body[1024] = { 0 }, filenamepar[1024] = { 0 }, filenamerec[1024] = { 0 }; const char *const ext = cimg::split_filename(filename,body); if (!std::strcmp(ext,"par")) { std::strncpy(filenamepar,filename,sizeof(filenamepar)-1); cimg_snprintf(filenamerec,sizeof(filenamerec),"%s.rec",body); } if (!std::strcmp(ext,"PAR")) { std::strncpy(filenamepar,filename,sizeof(filenamepar)-1); cimg_snprintf(filenamerec,sizeof(filenamerec),"%s.REC",body); } if (!std::strcmp(ext,"rec")) { std::strncpy(filenamerec,filename,sizeof(filenamerec)-1); cimg_snprintf(filenamepar,sizeof(filenamepar),"%s.par",body); } if (!std::strcmp(ext,"REC")) { std::strncpy(filenamerec,filename,sizeof(filenamerec)-1); cimg_snprintf(filenamepar,sizeof(filenamepar),"%s.PAR",body); } std::FILE *file = cimg::fopen(filenamepar,"r"); // Parse header file CImgList st_slices; CImgList st_global; int err; char line[256] = { 0 }; do { err=std::fscanf(file,"%255[^\n]%*c",line); } while (err!=EOF && (*line=='#' || *line=='.')); do { unsigned int sn,size_x,size_y,pixsize; float rs,ri,ss; err = std::fscanf(file,"%u%*u%*u%*u%*u%*u%*u%u%*u%u%u%g%g%g%*[^\n]",&sn,&pixsize,&size_x,&size_y,&ri,&rs,&ss); if (err==7) { CImg::vector((float)sn,(float)pixsize,(float)size_x,(float)size_y,ri,rs,ss,0).move_to(st_slices); unsigned int i; for (i = 0; i::vector(size_x,size_y,sn).move_to(st_global); else { CImg &vec = st_global[i]; if (size_x>vec[0]) vec[0] = size_x; if (size_y>vec[1]) vec[1] = size_y; vec[2] = sn; } st_slices[st_slices._width-1][7] = (float)i; } } while (err==7); // Read data std::FILE *file2 = cimg::fopen(filenamerec,"rb"); cimglist_for(st_global,l) { const CImg& vec = st_global[l]; CImg(vec[0],vec[1],vec[2]).move_to(*this); } cimglist_for(st_slices,l) { const CImg& vec = st_slices[l]; const unsigned int sn = (unsigned int)vec[0] - 1, pixsize = (unsigned int)vec[1], size_x = (unsigned int)vec[2], size_y = (unsigned int)vec[3], imn = (unsigned int)vec[7]; const float ri = vec[4], rs = vec[5], ss = vec[6]; switch (pixsize) { case 8 : { CImg buf(size_x,size_y); cimg::fread(buf._data,size_x*size_y,file2); if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y); CImg& img = (*this)[imn]; cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss)); } break; case 16 : { CImg buf(size_x,size_y); cimg::fread(buf._data,size_x*size_y,file2); if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y); CImg& img = (*this)[imn]; cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss)); } break; case 32 : { CImg buf(size_x,size_y); cimg::fread(buf._data,size_x*size_y,file2); if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y); CImg& img = (*this)[imn]; cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss)); } break; default : cimg::fclose(file); cimg::fclose(file2); throw CImgIOException(_cimglist_instance "load_parrec(): Unsupported %d-bits pixel type for file '%s'.", cimglist_instance, pixsize,filename); } } cimg::fclose(file); cimg::fclose(file2); if (!_width) throw CImgIOException(_cimglist_instance "load_parrec(): Failed to recognize valid PAR-REC data in file '%s'.", cimglist_instance, filename); return *this; } //! Load a list from a PAR/REC (Philips) file \newinstance. static CImgList get_load_parrec(const char *const filename) { return CImgList().load_parrec(filename); } //! Load a list from a YUV image sequence file. /** \param filename Filename to read data from. \param size_x Width of the images. \param size_y Height of the images. \param first_frame Index of first image frame to read. \param last_frame Index of last image frame to read. \param step_frame Step applied between each frame. \param yuv2rgb Apply YUV to RGB transformation during reading. **/ CImgList& load_yuv(const char *const filename, const unsigned int size_x, const unsigned int size_y, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true) { return _load_yuv(0,filename,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb); } //! Load a list from a YUV image sequence file \newinstance. static CImgList get_load_yuv(const char *const filename, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true) { return CImgList().load_yuv(filename,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb); } //! Load a list from an image sequence YUV file \overloading. CImgList& load_yuv(std::FILE *const file, const unsigned int size_x, const unsigned int size_y, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true) { return _load_yuv(file,0,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb); } //! Load a list from an image sequence YUV file \newinstance. static CImgList get_load_yuv(std::FILE *const file, const unsigned int size_x, const unsigned int size_y=1, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool yuv2rgb=true) { return CImgList().load_yuv(file,size_x,size_y,first_frame,last_frame,step_frame,yuv2rgb); } CImgList& _load_yuv(std::FILE *const file, const char *const filename, const unsigned int size_x, const unsigned int size_y, const unsigned int first_frame, const unsigned int last_frame, const unsigned int step_frame, const bool yuv2rgb) { if (!filename && !file) throw CImgArgumentException(_cimglist_instance "load_yuv(): Specified filename is (null).", cimglist_instance); if (size_x%2 || size_y%2) throw CImgArgumentException(_cimglist_instance "load_yuv(): Invalid odd XY dimensions %ux%u in file '%s'.", cimglist_instance, size_x,size_y,filename?filename:"(FILE*)"); if (!size_x || !size_y) throw CImgArgumentException(_cimglist_instance "load_yuv(): Invalid sequence size (%u,%u) in file '%s'.", cimglist_instance, size_x,size_y,filename?filename:"(FILE*)"); const unsigned int nfirst_frame = first_frame tmp(size_x,size_y,1,3), UV(size_x/2,size_y/2,1,2); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb"); bool stopflag = false; int err; if (nfirst_frame) { err = std::fseek(nfile,nfirst_frame*(size_x*size_y + size_x*size_y/2),SEEK_CUR); if (err) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "load_yuv(): File '%s' doesn't contain frame number %u.", cimglist_instance, filename?filename:"(FILE*)",nfirst_frame); } } unsigned int frame; for (frame = nfirst_frame; !stopflag && frame<=nlast_frame; frame+=nstep_frame) { tmp.fill(0); // *TRY* to read the luminance part, do not replace by cimg::fread! err = (int)std::fread((void*)(tmp._data),1,(unsigned long)tmp._width*tmp._height,nfile); if (err!=(int)(tmp._width*tmp._height)) { stopflag = true; if (err>0) cimg::warn(_cimglist_instance "load_yuv(): File '%s' contains incomplete data or given image dimensions (%u,%u) are incorrect.", cimglist_instance, filename?filename:"(FILE*)",size_x,size_y); } else { UV.fill(0); // *TRY* to read the luminance part, do not replace by cimg::fread! err = (int)std::fread((void*)(UV._data),1,(size_t)(UV.size()),nfile); if (err!=(int)(UV.size())) { stopflag = true; if (err>0) cimg::warn(_cimglist_instance "load_yuv(): File '%s' contains incomplete data or given image dimensions (%u,%u) are incorrect.", cimglist_instance, filename?filename:"(FILE*)",size_x,size_y); } else { cimg_forXY(UV,x,y) { const int x2 = x*2, y2 = y*2; tmp(x2,y2,1) = tmp(x2+1,y2,1) = tmp(x2,y2+1,1) = tmp(x2+1,y2+1,1) = UV(x,y,0); tmp(x2,y2,2) = tmp(x2+1,y2,2) = tmp(x2,y2+1,2) = tmp(x2+1,y2+1,2) = UV(x,y,1); } if (yuv2rgb) tmp.YCbCrtoRGB(); insert(tmp); if (nstep_frame>1) std::fseek(nfile,(nstep_frame-1)*(size_x*size_y + size_x*size_y/2),SEEK_CUR); } } } if (stopflag && nlast_frame!=~0U && frame!=nlast_frame) cimg::warn(_cimglist_instance "load_yuv(): Frame %d not reached since only %u frames were found in file '%s'.", cimglist_instance, nlast_frame,frame-1,filename?filename:"(FILE*)"); if (!file) cimg::fclose(nfile); return *this; } //! Load an image from a video file, using ffmpeg libraries. /** \param filename Filename, as a C-string. \param first_frame Index of the first frame to read. \param last_frame Index of the last frame to read. \param step_frame Step value for frame reading. \param pixel_format To be documented. \param resume To be documented. **/ // This piece of code has been firstly created by David Starweather (starkdg(at)users(dot)sourceforge(dot)net) // I modified it afterwards for direct inclusion in the library core. CImgList& load_ffmpeg(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool pixel_format=true, const bool resume=false) { if (!filename) throw CImgArgumentException(_cimglist_instance "load_ffmpeg(): Specified filename is (null).", cimglist_instance); const unsigned int nfirst_frame = first_frame1) || (resume && (pixel_format || !pixel_format))) throw CImgArgumentException(_cimglist_instance "load_ffmpeg(): Unable to load sub-frames from file '%s' unless libffmpeg is enabled.", cimglist_instance, filename); return load_ffmpeg_external(filename); #else const PixelFormat ffmpeg_pixfmt = pixel_format?PIX_FMT_RGB24:PIX_FMT_GRAY8; avcodec_register_all(); av_register_all(); static AVFormatContext *format_ctx = 0; static AVCodecContext *codec_ctx = 0; static AVCodec *codec = 0; static AVFrame *avframe = avcodec_alloc_frame(), *converted_frame = avcodec_alloc_frame(); static int vstream = 0; if (resume) { if (!format_ctx || !codec_ctx || !codec || !avframe || !converted_frame) throw CImgArgumentException(_cimglist_instance "load_ffmpeg(): Failed to resume loading of file '%s', due to unallocated FFMPEG structures.", cimglist_instance, filename); } else { // Open video file, find main video stream and codec. if (format_ctx) avformat_close_input(&format_ctx); if (avformat_open_input(&format_ctx,filename,0,0)!=0) throw CImgIOException(_cimglist_instance "load_ffmpeg(): Failed to open file '%s'.", cimglist_instance, filename); if (!avframe || !converted_frame || avformat_find_stream_info(format_ctx,NULL)<0) { avformat_close_input(&format_ctx); format_ctx = 0; return load_ffmpeg_external(filename); } #if cimg_verbosity>=3 dump_format(format_ctx,0,0,0); #endif // Special command: Return informations on main video stream. // as a vector 1x4 containing: (nb_frames,width,height,fps). if (!first_frame && !last_frame && !step_frame) { for (vstream = 0; vstream<(int)(format_ctx->nb_streams); ++vstream) if (format_ctx->streams[vstream]->codec->codec_type==AVMEDIA_TYPE_VIDEO) break; if (vstream==(int)format_ctx->nb_streams) assign(); else { CImgList timestamps; int nb_frames; AVPacket packet; // Count frames and store timestamps. for (nb_frames = 0; av_read_frame(format_ctx,&packet)>=0; av_free_packet(&packet)) if (packet.stream_index==vstream) { CImg::vector((double)packet.pts).move_to(timestamps); ++nb_frames; } // Get frame with, height and fps. const int framew = format_ctx->streams[vstream]->codec->width, frameh = format_ctx->streams[vstream]->codec->height; const float num = (float)(format_ctx->streams[vstream]->r_frame_rate).num, den = (float)(format_ctx->streams[vstream]->r_frame_rate).den, fps = num/den; // Return infos as a list. assign(2); (*this)[0].assign(1,4).fill((T)nb_frames,(T)framew,(T)frameh,(T)fps); (*this)[1] = (timestamps>'y'); } avformat_close_input(&format_ctx); format_ctx = 0; return *this; } for (vstream = 0; vstream<(int)(format_ctx->nb_streams) && format_ctx->streams[vstream]->codec->codec_type!=AVMEDIA_TYPE_VIDEO; ) ++vstream; if (vstream==(int)format_ctx->nb_streams) { avformat_close_input(&format_ctx); format_ctx = 0; return load_ffmpeg_external(filename); } codec_ctx = format_ctx->streams[vstream]->codec; codec = avcodec_find_decoder(codec_ctx->codec_id); if (!codec) { return load_ffmpeg_external(filename); } if (avcodec_open2(codec_ctx,codec,NULL)<0) { // Open codec return load_ffmpeg_external(filename); } } // Read video frames const unsigned int numBytes = avpicture_get_size(ffmpeg_pixfmt,codec_ctx->width,codec_ctx->height); uint8_t *const buffer = new uint8_t[numBytes]; avpicture_fill((AVPicture *)converted_frame,buffer,ffmpeg_pixfmt,codec_ctx->width,codec_ctx->height); const T foo = (T)0; AVPacket packet; for (unsigned int frame = 0, next_frame = nfirst_frame; frame<=nlast_frame && av_read_frame(format_ctx,&packet)>=0; ) { if (packet.stream_index==(int)vstream) { int decoded = 0; #if defined(AV_VERSION_INT) #if LIBAVCODEC_VERSION_INTwidth,codec_ctx->height,codec_ctx->pix_fmt,codec_ctx->width, codec_ctx->height,ffmpeg_pixfmt,1,0,0,0); sws_scale(c,avframe->data,avframe->linesize,0,codec_ctx->height,converted_frame->data,converted_frame->linesize); if (ffmpeg_pixfmt==PIX_FMT_RGB24) { CImg next_image(*converted_frame->data,3,codec_ctx->width,codec_ctx->height,1,true); next_image._get_permute_axes("yzcx",foo).move_to(*this); } else { CImg next_image(*converted_frame->data,1,codec_ctx->width,codec_ctx->height,1,true); next_image._get_permute_axes("yzcx",foo).move_to(*this); } next_frame+=nstep_frame; } ++frame; } av_free_packet(&packet); if (next_frame>nlast_frame) break; } } delete[] buffer; #endif return *this; } //! Load an image from a video file, using ffmpeg libraries \newinstance. static CImgList get_load_ffmpeg(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1, const bool pixel_format=true) { return CImgList().load_ffmpeg(filename,first_frame,last_frame,step_frame,pixel_format); } //! Load an image from a video file using the external tool 'ffmpeg'. /** \param filename Filename to read data from. **/ CImgList& load_ffmpeg_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimglist_instance "load_ffmpeg_external(): Specified filename is (null).", cimglist_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }, filetmp2[512] = { 0 }; std::FILE *file = 0; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_000001.ppm",filetmp); if ((file=std::fopen(filetmp2,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_%%6d.ppm",filetmp); #if cimg_OS!=2 cimg_snprintf(command,sizeof(command),"%s -i \"%s\" \"%s\" >/dev/null 2>&1", cimg::ffmpeg_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp2)._system_strescape().data()); #else cimg_snprintf(command,sizeof(command),"\"%s -i \"%s\" \"%s\"\" >NUL 2>&1", cimg::ffmpeg_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp2)._system_strescape().data()); #endif cimg::system(command,0); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; assign(); unsigned int i = 1; for (bool stopflag = false; !stopflag; ++i) { cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_%.6u.ppm",filetmp,i); CImg img; try { img.load_pnm(filetmp2); } catch (CImgException&) { stopflag = true; } if (img) { img.move_to(*this); std::remove(filetmp2); } } cimg::exception_mode() = omode; if (is_empty()) throw CImgIOException(_cimglist_instance "load_ffmpeg_external(): Failed to open file '%s' with external command 'ffmpeg'.", cimglist_instance, filename); return *this; } //! Load an image from a video file using the external tool 'ffmpeg' \newinstance. static CImgList get_load_ffmpeg_external(const char *const filename) { return CImgList().load_ffmpeg_external(filename); } //! Load gif file, using ImageMagick or GraphicsMagick's external tools. /** \param filename Filename to read data from. \param use_graphicsmagick Tells if GraphicsMagick's tool 'gm' is used instead of ImageMagick's tool 'convert'. **/ CImgList& load_gif_external(const char *const filename) { if (!filename) throw CImgArgumentException(_cimglist_instance "load_gif_external(): Specified filename is (null).", cimglist_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. if (!_load_gif_external(filename,false)) if (!_load_gif_external(filename,true)) try { assign(CImg().load_other(filename)); } catch (CImgException&) { assign(); } if (is_empty()) throw CImgIOException(_cimglist_instance "load_gif_external(): Failed to open file '%s'.", cimglist_instance,filename); return *this; } CImgList& _load_gif_external(const char *const filename, const bool use_graphicsmagick=false) { char command[1024] = { 0 }, filetmp[512] = { 0 }, filetmp2[512] = { 0 }; std::FILE *file = 0; do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); if (use_graphicsmagick) cimg_snprintf(filetmp2,sizeof(filetmp2),"%s.png.0",filetmp); else cimg_snprintf(filetmp2,sizeof(filetmp2),"%s-0.png",filetmp); if ((file=std::fopen(filetmp2,"rb"))!=0) cimg::fclose(file); } while (file); #if cimg_OS!=2 if (use_graphicsmagick) cimg_snprintf(command,sizeof(command),"%s convert \"%s\" \"%s.png\" >/dev/null 2>&1", cimg::graphicsmagick_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); else cimg_snprintf(command,sizeof(command),"%s \"%s\" \"%s.png\" >/dev/null 2>&1", cimg::imagemagick_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); #else if (use_graphicsmagick) cimg_snprintf(command,sizeof(command),"\"%s convert \"%s\" \"%s.png\"\" >NUL 2>&1", cimg::graphicsmagick_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); else cimg_snprintf(command,sizeof(command),"\"%s \"%s\" \"%s.png\"\" >NUL 2>&1", cimg::imagemagick_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); #endif cimg::system(command,0); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; assign(); // Try to read a single frame gif. cimg_snprintf(filetmp2,sizeof(filetmp2),"%s.png",filetmp); CImg img; try { img.load_png(filetmp2); } catch (CImgException&) { } if (img) { img.move_to(*this); std::remove(filetmp2); } else { // Try to read animated gif. unsigned int i = 0; for (bool stopflag = false; !stopflag; ++i) { if (use_graphicsmagick) cimg_snprintf(filetmp2,sizeof(filetmp2),"%s.png.%u",filetmp,i); else cimg_snprintf(filetmp2,sizeof(filetmp2),"%s-%u.png",filetmp,i); CImg img; try { img.load_png(filetmp2); } catch (CImgException&) { stopflag = true; } if (img) { img.move_to(*this); std::remove(filetmp2); } } } cimg::exception_mode() = omode; return *this; } //! Load gif file, using ImageMagick or GraphicsMagick's external tools \newinstance. static CImgList get_load_gif_external(const char *const filename) { return CImgList().load_gif_external(filename); } //! Load a gzipped list, using external tool 'gunzip'. /** \param filename Filename to read data from. **/ CImgList& load_gzip_external(const char *const filename) { if (!filename) throw CImgIOException(_cimglist_instance "load_gzip_external(): Specified filename is (null).", cimglist_instance); std::fclose(cimg::fopen(filename,"rb")); // Check if file exists. char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; const char *ext = cimg::split_filename(filename,body), *ext2 = cimg::split_filename(body,0); std::FILE *file = 0; do { if (!cimg::strcasecmp(ext,"gz")) { if (*ext2) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext2); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } else { if (*ext) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); cimg_snprintf(command,sizeof(command),"%s -c \"%s\" > \"%s\"", cimg::gunzip_path(), CImg::string(filename)._system_strescape().data(), CImg::string(filetmp)._system_strescape().data()); cimg::system(command); if (!(file = std::fopen(filetmp,"rb"))) { cimg::fclose(cimg::fopen(filename,"r")); throw CImgIOException(_cimglist_instance "load_gzip_external(): Failed to open file '%s'.", cimglist_instance, filename); } else cimg::fclose(file); load(filetmp); std::remove(filetmp); return *this; } //! Load a gzipped list, using external tool 'gunzip' \newinstance. static CImgList get_load_gzip_external(const char *const filename) { return CImgList().load_gzip_external(filename); } //! Load a 3d object from a .OFF file. /** \param filename Filename to read data from. \param[out] primitives At return, contains the list of 3d object primitives. \param[out] colors At return, contains the list of 3d object colors. \return List of 3d object vertices. **/ template CImgList& load_off(const char *const filename, CImgList& primitives, CImgList& colors) { return get_load_off(filename,primitives,colors).move_to(*this); } //! Load a 3d object from a .OFF file \newinstance. template static CImgList get_load_off(const char *const filename, CImgList& primitives, CImgList& colors) { return CImg().load_off(filename,primitives,colors)<'x'; } //! Load images from a TIFF file. /** \param filename Filename to read data from. \param first_frame Index of first image frame to read. \param last_frame Index of last image frame to read. \param step_frame Step applied between each frame. **/ CImgList& load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1) { const unsigned int nfirst_frame = first_frame::get_load_tiff(filename)); #else TIFF *tif = TIFFOpen(filename,"r"); if (tif) { unsigned int nb_images = 0; do ++nb_images; while (TIFFReadDirectory(tif)); if (nfirst_frame>=nb_images || (nlast_frame!=~0U && nlast_frame>=nb_images)) cimg::warn(_cimglist_instance "load_tiff(): Invalid specified frame range is [%u,%u] (step %u) since file '%s' contains %u image(s).", cimglist_instance, nfirst_frame,nlast_frame,nstep_frame,filename,nb_images); if (nfirst_frame>=nb_images) return assign(); if (nlast_frame>=nb_images) nlast_frame = nb_images-1; assign(1+(nlast_frame-nfirst_frame)/nstep_frame); TIFFSetDirectory(tif,0); #if cimg_verbosity>=3 TIFFSetWarningHandler(0); TIFFSetErrorHandler(0); #endif cimglist_for(*this,l) _data[l]._load_tiff(tif,nfirst_frame + l*nstep_frame); TIFFClose(tif); } else throw CImgIOException(_cimglist_instance "load_tiff(): Failed to open file '%s'.", cimglist_instance, filename); return *this; #endif } //! Load a multi-page TIFF file \newinstance. static CImgList get_load_tiff(const char *const filename, const unsigned int first_frame=0, const unsigned int last_frame=~0U, const unsigned int step_frame=1) { return CImgList().load_tiff(filename,first_frame,last_frame,step_frame); } //@} //---------------------------------- // //! \name Data Output //@{ //---------------------------------- //! Print informations about the list on the standard output. /** \param title Label set to the informations displayed. \param display_stats Tells if image statistics must be computed and displayed. **/ const CImgList& print(const char *const title=0, const bool display_stats=true) const { unsigned int msiz = 0; cimglist_for(*this,l) msiz+=_data[l].size(); msiz*=sizeof(T); const unsigned int mdisp = msiz<8*1024?0:(msiz<8*1024*1024?1:2); char _title[64] = { 0 }; if (!title) cimg_snprintf(_title,sizeof(_title),"CImgList<%s>",pixel_type()); std::fprintf(cimg::output(),"%s%s%s%s: %sthis%s = %p, %ssize%s = %u/%u [%u %s], %sdata%s = (CImg<%s>*)%p", cimg::t_magenta,cimg::t_bold,title?title:_title,cimg::t_normal, cimg::t_bold,cimg::t_normal,(void*)this, cimg::t_bold,cimg::t_normal,_width,_allocated_width, mdisp==0?msiz:(mdisp==1?(msiz>>10):(msiz>>20)), mdisp==0?"b":(mdisp==1?"Kio":"Mio"), cimg::t_bold,cimg::t_normal,pixel_type(),(void*)begin()); if (_data) std::fprintf(cimg::output(),"..%p.\n",(void*)((char*)end()-1)); else std::fprintf(cimg::output(),".\n"); char tmp[16] = { 0 }; cimglist_for(*this,ll) { cimg_snprintf(tmp,sizeof(tmp),"[%d]",ll); std::fprintf(cimg::output()," "); _data[ll].print(tmp,display_stats); if (ll==3 && _width>8) { ll = _width-5; std::fprintf(cimg::output()," ...\n"); } } std::fflush(cimg::output()); return *this; } //! Display the current CImgList instance in an existing CImgDisplay window (by reference). /** \param disp Reference to an existing CImgDisplay instance, where the current image list will be displayed. \param axis Appending axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignmenet. \note This function displays the list images of the current CImgList instance into an existing CImgDisplay window. Images of the list are appended in a single temporarly image for visualization purposes. The function returns immediately. **/ const CImgList& display(CImgDisplay &disp, const char axis='x', const float align=0) const { get_append(axis,align).display(disp); return *this; } //! Display the current CImgList instance in a new display window. /** \param disp Display window. \param display_info Tells if image informations are displayed on the standard output. \param axis Alignment axis for images viewing. \param align Apending alignment. \note This function opens a new window with a specific title and displays the list images of the current CImgList instance into it. Images of the list are appended in a single temporarly image for visualization purposes. The function returns when a key is pressed or the display window is closed by the user. **/ const CImgList& display(CImgDisplay &disp, const bool display_info, const char axis='x', const float align=0, unsigned int *const XYZ=0) const { bool is_exit = false; return _display(disp,0,display_info,axis,align,XYZ,0,true,is_exit); } //! Display the current CImgList instance in a new display window. /** \param title Title of the opening display window. \param display_info Tells if list informations must be written on standard output. \param axis Appending axis. Can be { 'x' | 'y' | 'z' | 'c' }. \param align Appending alignment. **/ const CImgList& display(const char *const title=0, const bool display_info=true, const char axis='x', const float align=0, unsigned int *const XYZ=0) const { CImgDisplay disp; bool is_exit = false; return _display(disp,title,display_info,axis,align,XYZ,0,true,is_exit); } const CImgList& _display(CImgDisplay &disp, const char *const title, const bool display_info, const char axis, const float align, unsigned int *const XYZ, const unsigned int orig, const bool is_first_call, bool &is_exit) const { if (is_empty()) throw CImgInstanceException(_cimglist_instance "display(): Empty instance.", cimglist_instance); if (!disp) { if (axis=='x') { unsigned int sum_width = 0, max_height = 0; cimglist_for(*this,l) { const CImg &img = _data[l]; const unsigned int w = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,false), h = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,true); sum_width+=w; if (h>max_height) max_height = h; } disp.assign(cimg_fitscreen(sum_width,max_height,1),title?title:0,1); } else { unsigned int max_width = 0, sum_height = 0; cimglist_for(*this,l) { const CImg &img = _data[l]; const unsigned int w = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,false), h = CImgDisplay::_fitscreen(img._width,img._height,img._depth,128,-85,true); if (w>max_width) max_width = w; sum_height+=h; } disp.assign(cimg_fitscreen(max_width,sum_height,1),title?title:0,1); } if (!title) disp.set_title("CImgList<%s> (%u)",pixel_type(),_width); } else if (title) disp.set_title("%s",title); const CImg dtitle = CImg::string(disp.title()); if (display_info) print(disp.title()); disp.show().flush(); if (_width==1) { const unsigned int dw = disp._width, dh = disp._height; if (!is_first_call) disp.resize(cimg_fitscreen(_data[0]._width,_data[0]._height,_data[0]._depth),false). set_title("%s (%ux%ux%ux%u)",dtitle.data(),_data[0]._width,_data[0]._height,_data[0]._depth,_data[0]._spectrum); _data[0]._display(disp,0,false,XYZ,!is_first_call); if (disp.key()) is_exit = true; disp.resize(cimg_fitscreen(dw,dh,1),false).set_title("%s",dtitle.data()); } else { bool disp_resize = !is_first_call; while (!disp.is_closed() && !is_exit) { const CImg s = _get_select(disp,0,true,axis,align,orig,disp_resize,!is_first_call,true); disp_resize = true; if (s[0]<0) { // No selections done. if (disp.button()&2) { disp.flush(); break; } is_exit = true; } else if (disp.wheel()) { // Zoom in/out. const int wheel = disp.wheel(); disp.set_wheel(); if (!is_first_call && wheel<0) break; if (wheel>0 && _width>=4) { const unsigned int delta = cimg::max(1U,(unsigned int)cimg::round(0.3*_width)), ind0 = (unsigned int)cimg::max(0,s[0] - (int)delta), ind1 = (unsigned int)cimg::min(width() - 1,s[0] + (int)delta); if ((ind0!=0 || ind1!=_width-1) && ind1 - ind0>=3) get_shared_images(ind0,ind1)._display(disp,0,false,axis,align,XYZ,orig + ind0,false,is_exit); } } else if (s[0]!=0 || s[1]!=width()-1) get_shared_images(s[0],s[1])._display(disp,0,false,axis,align,XYZ,orig+s[0],false,is_exit); } } return *this; } //! Save list into a file. /** \param filename Filename to write data to. \param number Number of digits used when chosen format requires the saving of multiple files. **/ const CImgList& save(const char *const filename, const int number=-1) const { if (!filename) throw CImgArgumentException(_cimglist_instance "save(): Specified filename is (null).", cimglist_instance); // Do not test for empty instances, since .cimg format is able to manage empty instances. const char *const ext = cimg::split_filename(filename); char nfilename[1024] = { 0 }; const char *const fn = (number>=0)?cimg::number_filename(filename,number,6,nfilename):filename; #ifdef cimglist_save_plugin cimglist_save_plugin(fn); #endif #ifdef cimglist_save_plugin1 cimglist_save_plugin1(fn); #endif #ifdef cimglist_save_plugin2 cimglist_save_plugin2(fn); #endif #ifdef cimglist_save_plugin3 cimglist_save_plugin3(fn); #endif #ifdef cimglist_save_plugin4 cimglist_save_plugin4(fn); #endif #ifdef cimglist_save_plugin5 cimglist_save_plugin5(fn); #endif #ifdef cimglist_save_plugin6 cimglist_save_plugin6(fn); #endif #ifdef cimglist_save_plugin7 cimglist_save_plugin7(fn); #endif #ifdef cimglist_save_plugin8 cimglist_save_plugin8(fn); #endif if (!cimg::strcasecmp(ext,"cimgz")) return save_cimg(fn,true); else if (!cimg::strcasecmp(ext,"cimg") || !*ext) return save_cimg(fn,false); else if (!cimg::strcasecmp(ext,"yuv")) return save_yuv(fn,true); else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) return save_ffmpeg(fn); #ifdef cimg_use_tiff else if (!cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff")) return save_tiff(fn); #endif else if (!cimg::strcasecmp(ext,"gz")) return save_gzip_external(fn); else { if (_width==1) _data[0].save(fn,-1); else cimglist_for(*this,l) _data[l].save(fn,l); } return *this; } //! Tell if an image list can be saved as one single file. /** \param filename Filename, as a C-string. \return \c true if the file format supports multiple images, \c false otherwise. **/ static bool is_saveable(const char *const filename) { const char *const ext = cimg::split_filename(filename); if (!cimg::strcasecmp(ext,"cimgz") || #ifdef cimg_use_tiff !cimg::strcasecmp(ext,"tif") || !cimg::strcasecmp(ext,"tiff") || #endif !cimg::strcasecmp(ext,"yuv") || !cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) return true; return false; } //! Save image sequence as a GIF animated file. /** \param filename Filename to write data to. \param fps Number of desired frames per second. \param nb_loops Number of loops (\c 0 for infinite looping). **/ const CImgList& save_gif_external(const char *const filename, const unsigned int fps=25, const unsigned int nb_loops=0) { char command[1024] = { 0 }, filetmp[512] = { 0 }, filetmp2[512] = { 0 }; CImgList filenames; std::FILE *file = 0; #ifdef cimg_use_png #define _cimg_save_gif_ext "png" #else #define _cimg_save_gif_ext "ppm" #endif do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_000001." _cimg_save_gif_ext,filetmp); if ((file=std::fopen(filetmp2,"rb"))!=0) cimg::fclose(file); } while (file); cimglist_for(*this,l) { cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_%.6u." _cimg_save_gif_ext,filetmp,l+1); CImg::string(filetmp2).move_to(filenames); if (_data[l]._depth>1 || _data[l]._spectrum!=3) _data[l].get_resize(-100,-100,1,3).save(filetmp2); else _data[l].save(filetmp2); } #if cimg_OS!=2 cimg_snprintf(command,sizeof(command),"%s -delay 1x%u -loop %u", cimg::imagemagick_path(),fps,nb_loops); CImg::string(command).move_to(filenames,0); cimg_snprintf(command,sizeof(command),"\"%s\" >/dev/null 2>&1", CImg::string(filename)._system_strescape().data()); CImg::string(command).move_to(filenames); #else cimg_snprintf(command,sizeof(command),"\"%s -delay 1x%u -loop %u", cimg::imagemagick_path(),fps,nb_loops); CImg::string(command).move_to(filenames,0); cimg_snprintf(command,sizeof(command),"\"%s\"\" >NUL 2>&1", CImg::string(filename)._system_strescape().data()); CImg::string(command).move_to(filenames); #endif CImg _command = filenames>'x'; cimg_for(_command,p,char) if (!*p) *p = ' '; _command.back() = 0; cimg::system(_command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance "save_gif_external(): Failed to save file '%s' with external command 'convert'.", cimglist_instance, filename); else cimg::fclose(file); cimglist_for_in(*this,1,filenames._width-1,l) std::remove(filenames[l]); return *this; } //! Save image sequence, using FFMPEG library. /** \param filename Filename to write data to. \param fps Desired framerate (in frames per seconds) if chosen format supports it. \param bitrate Desired bitrate (in bits per seconds) if chosen format supports it. **/ // This piece of code has been originally written by David. G. Starkweather. const CImgList& save_ffmpeg(const char *const filename, const unsigned int fps=25, const unsigned int bitrate=2048) const { if (!filename) throw CImgArgumentException(_cimglist_instance "save_ffmpeg(): Specified filename is (null).", cimglist_instance); if (!fps) throw CImgArgumentException(_cimglist_instance "save_ffmpeg(): Invalid specified framerate 0, for file '%s'.", cimglist_instance, filename); if (is_empty()) { cimg::fempty(0,filename); return *this; } cimglist_for(*this,l) if (!_data[l].is_sameXYZ(_data[0])) throw CImgInstanceException(_cimglist_instance "save_ffmpeg(): Invalid instance dimensions, for file '%s'.", cimglist_instance, filename); #ifndef cimg_use_ffmpeg return save_ffmpeg_external(filename,0,fps,bitrate); #else avcodec_register_all(); av_register_all(); const int frame_dimx = _data[0].width(), frame_dimy = _data[0].height(), frame_dimv = _data[0].spectrum(); if (frame_dimv!=1 && frame_dimv!=3) throw CImgInstanceException(_cimglist_instance "save_ffmpeg(): Image[0] (%u,%u,%u,%u,%p) has not 1 or 3 channels, for file '%s'.", cimglist_instance, _data[0]._width,_data[0]._height,_data[0]._depth,_data[0]._spectrum,_data,filename); PixelFormat dest_pxl_fmt = PIX_FMT_YUV420P; PixelFormat src_pxl_fmt = (frame_dimv==3)?PIX_FMT_RGB24:PIX_FMT_GRAY8; int sws_flags = SWS_FAST_BILINEAR; // Interpolation method (keeping same size images for now). AVOutputFormat *fmt = 0; #if defined(AV_VERSION_INT) #if LIBAVFORMAT_VERSION_INToformat = fmt; std::sprintf(oc->filename,"%s",filename); // Add video stream. AVStream *video_str = 0; if (fmt->video_codec!=CODEC_ID_NONE) { video_str = avformat_new_stream(oc,NULL); if (!video_str) { // Failed to allocate stream. av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate FFMPEG structure for video stream, for file '%s'.", cimglist_instance, filename); } } else { // No codec identified. av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to identify proper codec, for file '%s'.", cimglist_instance, filename); } AVCodecContext *c = video_str->codec; c->codec_id = fmt->video_codec; c->codec_type = AVMEDIA_TYPE_VIDEO; c->bit_rate = 1024*bitrate; c->width = frame_dimx; c->height = frame_dimy; c->time_base.num = 1; c->time_base.den = fps; c->gop_size = 12; c->pix_fmt = dest_pxl_fmt; if (c->codec_id==CODEC_ID_MPEG2VIDEO) c->max_b_frames = 2; if (c->codec_id==CODEC_ID_MPEG1VIDEO) c->mb_decision = 2; // Open codecs and alloc buffers. codec = avcodec_find_encoder(c->codec_id); if (!codec) { // Failed to find codec. av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): No valid codec found for file '%s'.", cimglist_instance, filename); } if (avcodec_open2(c,codec,NULL)<0) // Failed to open codec. throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to open codec for file '%s'.", cimglist_instance, filename); tmp_pict = avcodec_alloc_frame(); if (!tmp_pict) { // Failed to allocate memory for tmp_pict frame. avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate memory for file '%s'.", cimglist_instance, filename); } tmp_pict->linesize[0] = (src_pxl_fmt==PIX_FMT_RGB24)?3*frame_dimx:frame_dimx; tmp_pict->type = FF_BUFFER_TYPE_USER; int tmp_size = avpicture_get_size(src_pxl_fmt,frame_dimx,frame_dimy); uint8_t *tmp_buffer = (uint8_t*)av_malloc(tmp_size); if (!tmp_buffer) { // Failed to allocate memory for tmp buffer. av_free(tmp_pict); avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate memory for file '%s'.", cimglist_instance, filename); } // Associate buffer with tmp_pict. avpicture_fill((AVPicture*)tmp_pict,tmp_buffer,src_pxl_fmt,frame_dimx,frame_dimy); picture = avcodec_alloc_frame(); if (!picture) { // Failed to allocate picture frame. av_free(tmp_pict->data[0]); av_free(tmp_pict); avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate memory for file '%s'.", cimglist_instance, filename); } int size = avpicture_get_size(c->pix_fmt,frame_dimx,frame_dimy); uint8_t *buffer = (uint8_t*)av_malloc(size); if (!buffer) { // Failed to allocate picture frame buffer. av_free(picture); av_free(tmp_pict->data[0]); av_free(tmp_pict); avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate memory for file '%s'.", cimglist_instance, filename); } // Associate the buffer with picture. avpicture_fill((AVPicture*)picture,buffer,c->pix_fmt,frame_dimx,frame_dimy); // Open file. if (!(fmt->flags&AVFMT_NOFILE)) { if (avio_open(&oc->pb,filename,AVIO_FLAG_WRITE)<0) throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to open file '%s'.", cimglist_instance, filename); } if (avformat_write_header(oc,NULL)<0) throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to write header in file '%s'.", cimglist_instance, filename); SwsContext *img_convert_context = 0; img_convert_context = sws_getContext(frame_dimx,frame_dimy,src_pxl_fmt, c->width,c->height,c->pix_fmt,sws_flags,0,0,0); if (!img_convert_context) { // Failed to get swscale context. // if (!(fmt->flags & AVFMT_NOFILE)) url_fclose(&oc->pb); av_free(picture->data); av_free(picture); av_free(tmp_pict->data[0]); av_free(tmp_pict); avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to get conversion context for file '%s'.", cimglist_instance, filename); } int ret = 0, out_size; uint8_t *video_outbuf = 0; int video_outbuf_size = 1000000; video_outbuf = (uint8_t*)av_malloc(video_outbuf_size); if (!video_outbuf) { // if (!(fmt->flags & AVFMT_NOFILE)) url_fclose(&oc->pb); av_free(picture->data); av_free(picture); av_free(tmp_pict->data[0]); av_free(tmp_pict); avcodec_close(video_str->codec); av_free(oc); throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to allocate memory, for file '%s'.", cimglist_instance, filename); } // Loop through each desired image in list. cimglist_for(*this,i) { CImg currentIm = _data[i], red, green, blue, gray; if (src_pxl_fmt==PIX_FMT_RGB24) { red = currentIm.get_shared_channel(0); green = currentIm.get_shared_channel(1); blue = currentIm.get_shared_channel(2); cimg_forXY(currentIm,X,Y) { // Assign pizel values to data buffer in interlaced RGBRGB ... format. tmp_pict->data[0][Y*tmp_pict->linesize[0] + 3*X] = red(X,Y); tmp_pict->data[0][Y*tmp_pict->linesize[0] + 3*X + 1] = green(X,Y); tmp_pict->data[0][Y*tmp_pict->linesize[0] + 3*X + 2] = blue(X,Y); } } else { gray = currentIm.get_shared_channel(0); cimg_forXY(currentIm,X,Y) tmp_pict->data[0][Y*tmp_pict->linesize[0] + X] = gray(X,Y); } if (!video_str) break; if (sws_scale(img_convert_context,tmp_pict->data,tmp_pict->linesize,0,c->height,picture->data,picture->linesize)<0) break; AVPacket pkt; int got_packet; av_init_packet(&pkt); out_size = avcodec_encode_video2(c,&pkt,picture,&got_packet); if (got_packet) { pkt.pts = av_rescale_q(c->coded_frame->pts,c->time_base,video_str->time_base); if (c->coded_frame->key_frame) pkt.flags|=AV_PKT_FLAG_KEY; pkt.stream_index = video_str->index; pkt.data = video_outbuf; pkt.size = out_size; ret = av_write_frame(oc,&pkt); } else if (out_size<0) break; if (ret) break; // Error occured in writing frame. } // Close codec. if (video_str) { avcodec_close(video_str->codec); av_free(picture->data[0]); av_free(picture); av_free(tmp_pict->data[0]); av_free(tmp_pict); } if (av_write_trailer(oc)<0) throw CImgIOException(_cimglist_instance "save_ffmpeg(): Failed to write trailer for file '%s'.", cimglist_instance, filename); av_freep(&oc->streams[0]->codec); av_freep(&oc->streams[0]); if (!(fmt->flags&AVFMT_NOFILE)) { /*if (url_fclose(oc->pb)<0) throw CImgIOException(_cimglist_instance "save_ffmpeg(): File '%s', failed to close file.", cimglist_instance, filename); */ } av_free(oc); av_free(video_outbuf); #endif return *this; } const CImgList& _save_yuv(std::FILE *const file, const char *const filename, const bool is_rgb) const { if (!file && !filename) throw CImgArgumentException(_cimglist_instance "save_yuv(): Specified filename is (null).", cimglist_instance); if (is_empty()) { cimg::fempty(file,filename); return *this; } if ((*this)[0].width()%2 || (*this)[0].height()%2) throw CImgInstanceException(_cimglist_instance "save_yuv(): Invalid odd instance dimensions (%u,%u) for file '%s'.", cimglist_instance, (*this)[0].width(),(*this)[0].height(), filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); cimglist_for(*this,l) { CImg YCbCr((*this)[l]); if (is_rgb) YCbCr.RGBtoYCbCr(); cimg::fwrite(YCbCr._data,(unsigned long)YCbCr._width*YCbCr._height,nfile); cimg::fwrite(YCbCr.get_resize(YCbCr._width/2, YCbCr._height/2,1,3,3).data(0,0,0,1), (unsigned long)YCbCr._width*YCbCr._height/2,nfile); } if (!file) cimg::fclose(nfile); return *this; } //! Save list as a YUV image sequence file. /** \param filename Filename to write data to. \param is_rgb Tells if the RGB to YUV conversion must be done for saving. **/ const CImgList& save_yuv(const char *const filename=0, const bool is_rgb=true) const { return _save_yuv(0,filename,is_rgb); } //! Save image sequence into a YUV file. /** \param file File to write data to. \param is_rgb Tells if the RGB to YUV conversion must be done for saving. **/ const CImgList& save_yuv(std::FILE *const file, const bool is_rgb=true) const { return _save_yuv(file,0,is_rgb); } const CImgList& _save_cimg(std::FILE *const file, const char *const filename, const bool is_compressed) const { if (!file && !filename) throw CImgArgumentException(_cimglist_instance "save_cimg(): Specified filename is (null).", cimglist_instance); #ifndef cimg_use_zlib if (is_compressed) cimg::warn(_cimglist_instance "save_cimg(): Unable to save compressed data in file '%s' unless zlib is enabled, saving them uncompressed.", cimglist_instance, filename?filename:"(FILE*)"); #endif std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const char *const ptype = pixel_type(), *const etype = cimg::endianness()?"big":"little"; if (std::strstr(ptype,"unsigned")==ptype) std::fprintf(nfile,"%u unsigned_%s %s_endian\n",_width,ptype+9,etype); else std::fprintf(nfile,"%u %s %s_endian\n",_width,ptype,etype); cimglist_for(*this,l) { const CImg& img = _data[l]; std::fprintf(nfile,"%u %u %u %u",img._width,img._height,img._depth,img._spectrum); if (img._data) { CImg tmp; if (cimg::endianness()) { tmp = img; cimg::invert_endianness(tmp._data,tmp.size()); } const CImg& ref = cimg::endianness()?tmp:img; bool failed_to_compress = true; if (is_compressed) { #ifdef cimg_use_zlib const unsigned long siz = sizeof(T)*ref.size(); unsigned long csiz = siz + siz/100 + 16; Bytef *const cbuf = new Bytef[csiz]; if (compress(cbuf,&csiz,(Bytef*)ref._data,siz)) cimg::warn(_cimglist_instance "save_cimg(): Failed to save compressed data for file '%s', saving them uncompressed.", cimglist_instance, filename?filename:"(FILE*)"); else { std::fprintf(nfile," #%lu\n",csiz); cimg::fwrite(cbuf,csiz,nfile); delete[] cbuf; failed_to_compress = false; } #endif } if (failed_to_compress) { // Write in a non-compressed way. std::fputc('\n',nfile); cimg::fwrite(ref._data,ref.size(),nfile); } } else std::fputc('\n',nfile); } if (!file) cimg::fclose(nfile); return *this; } //! Save list into a .cimg file. /** \param filename Filename to write data to. \param is_compressed Tells if data compression must be enabled. **/ const CImgList& save_cimg(const char *const filename, const bool is_compressed=false) const { return _save_cimg(0,filename,is_compressed); } //! Save list into a .cimg file. /** \param file File to write data to. \param is_compressed Tells if data compression must be enabled. **/ const CImgList& save_cimg(std::FILE *file, const bool is_compressed=false) const { return _save_cimg(file,0,is_compressed); } const CImgList& _save_cimg(std::FILE *const file, const char *const filename, const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { #define _cimg_save_cimg_case(Ts,Tss) \ if (!saved && !cimg::strcasecmp(Ts,str_pixeltype)) { \ for (unsigned int l = 0; l0) { \ if (l=W || y0>=H || z0>=D || c0>=D) std::fseek(nfile,W*H*D*C*sizeof(Tss),SEEK_CUR); \ else { \ const CImg& img = (*this)[l - n0]; \ const T *ptrs = img._data; \ const unsigned int \ x1 = x0 + img._width - 1, \ y1 = y0 + img._height - 1, \ z1 = z0 + img._depth - 1, \ c1 = c0 + img._spectrum - 1, \ nx1 = x1>=W?W-1:x1, \ ny1 = y1>=H?H-1:y1, \ nz1 = z1>=D?D-1:z1, \ nc1 = c1>=C?C-1:c1; \ CImg raw(1+nx1-x0); \ const unsigned int skipvb = c0*W*H*D*sizeof(Tss); \ if (skipvb) std::fseek(nfile,skipvb,SEEK_CUR); \ for (unsigned int v = 1 + nc1 - c0; v; --v) { \ const unsigned int skipzb = z0*W*H*sizeof(Tss); \ if (skipzb) std::fseek(nfile,skipzb,SEEK_CUR); \ for (unsigned int z = 1 + nz1 - z0; z; --z) { \ const unsigned int skipyb = y0*W*sizeof(Tss); \ if (skipyb) std::fseek(nfile,skipyb,SEEK_CUR); \ for (unsigned int y = 1 + ny1 - y0; y; --y) { \ const unsigned int skipxb = x0*sizeof(Tss); \ if (skipxb) std::fseek(nfile,skipxb,SEEK_CUR); \ raw.assign(ptrs, raw._width); \ ptrs+=img._width; \ if (endian) cimg::invert_endianness(raw._data,raw._width); \ cimg::fwrite(raw._data,raw._width,nfile); \ const unsigned int skipxe = (W - 1 - nx1)*sizeof(Tss); \ if (skipxe) std::fseek(nfile,skipxe,SEEK_CUR); \ } \ const unsigned int skipye = (H - 1 - ny1)*W*sizeof(Tss); \ if (skipye) std::fseek(nfile,skipye,SEEK_CUR); \ } \ const unsigned int skipze = (D - 1 - nz1)*W*H*sizeof(Tss); \ if (skipze) std::fseek(nfile,skipze,SEEK_CUR); \ } \ const unsigned int skipve = (C - 1 - nc1)*W*H*D*sizeof(Tss); \ if (skipve) std::fseek(nfile,skipve,SEEK_CUR); \ } \ } \ } \ saved = true; \ } if (!file && !filename) throw CImgArgumentException(_cimglist_instance "save_cimg(): Specified filename is (null).", cimglist_instance); if (is_empty()) throw CImgInstanceException(_cimglist_instance "save_cimg(): Empty instance, for file '%s'.", cimglist_instance, filename?filename:"(FILE*)"); std::FILE *const nfile = file?file:cimg::fopen(filename,"rb+"); bool saved = false, endian = cimg::endianness(); char tmp[256] = { 0 }, str_pixeltype[256] = { 0 }, str_endian[256] = { 0 }; unsigned int j, err, N, W, H, D, C; int i; j = 0; while((i=std::fgetc(nfile))!='\n' && i!=EOF && j<256) tmp[j++] = (char)i; tmp[j] = 0; err = std::sscanf(tmp,"%u%*c%255[A-Za-z_]%*c%255[sA-Za-z_ ]",&N,str_pixeltype,str_endian); if (err<2) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "save_cimg(): CImg header not found in file '%s'.", cimglist_instance, filename?filename:"(FILE*)"); } if (!cimg::strncasecmp("little",str_endian,6)) endian = false; else if (!cimg::strncasecmp("big",str_endian,3)) endian = true; const unsigned int lmax = cimg::min(N,n0+_width); _cimg_save_cimg_case("bool",bool); _cimg_save_cimg_case("unsigned_char",unsigned char); _cimg_save_cimg_case("uchar",unsigned char); _cimg_save_cimg_case("char",char); _cimg_save_cimg_case("unsigned_short",unsigned short); _cimg_save_cimg_case("ushort",unsigned short); _cimg_save_cimg_case("short",short); _cimg_save_cimg_case("unsigned_int",unsigned int); _cimg_save_cimg_case("uint",unsigned int); _cimg_save_cimg_case("int",int); _cimg_save_cimg_case("unsigned_long",unsigned long); _cimg_save_cimg_case("ulong",unsigned long); _cimg_save_cimg_case("long",long); _cimg_save_cimg_case("float",float); _cimg_save_cimg_case("double",double); if (!saved) { if (!file) cimg::fclose(nfile); throw CImgIOException(_cimglist_instance "save_cimg(): Unsupported data type '%s' for file '%s'.", cimglist_instance, filename?filename:"(FILE*)",str_pixeltype); } if (!file) cimg::fclose(nfile); return *this; } //! Insert the image instance into into an existing .cimg file, at specified coordinates. /** \param filename Filename to write data to. \param n0 Starting index of images to write. \param x0 Starting X-coordinates of image regions to write. \param y0 Starting Y-coordinates of image regions to write. \param z0 Starting Z-coordinates of image regions to write. \param c0 Starting C-coordinates of image regions to write. **/ const CImgList& save_cimg(const char *const filename, const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { return _save_cimg(0,filename,n0,x0,y0,z0,c0); } //! Insert the image instance into into an existing .cimg file, at specified coordinates. /** \param file File to write data to. \param n0 Starting index of images to write. \param x0 Starting X-coordinates of image regions to write. \param y0 Starting Y-coordinates of image regions to write. \param z0 Starting Z-coordinates of image regions to write. \param c0 Starting C-coordinates of image regions to write. **/ const CImgList& save_cimg(std::FILE *const file, const unsigned int n0, const unsigned int x0, const unsigned int y0, const unsigned int z0, const unsigned int c0) const { return _save_cimg(file,0,n0,x0,y0,z0,c0); } static void _save_empty_cimg(std::FILE *const file, const char *const filename, const unsigned int nb, const unsigned int dx, const unsigned int dy, const unsigned int dz, const unsigned int dc) { std::FILE *const nfile = file?file:cimg::fopen(filename,"wb"); const unsigned long siz = (unsigned long)dx*dy*dz*dc*sizeof(T); std::fprintf(nfile,"%u %s\n",nb,pixel_type()); for (unsigned int i=nb; i; --i) { std::fprintf(nfile,"%u %u %u %u\n",dx,dy,dz,dc); for (unsigned long off=siz; off; --off) std::fputc(0,nfile); } if (!file) cimg::fclose(nfile); } //! Save empty (non-compressed) .cimg file with specified dimensions. /** \param filename Filename to write data to. \param nb Number of images to write. \param dx Width of images in the written file. \param dy Height of images in the written file. \param dz Depth of images in the written file. \param dc Spectrum of images in the written file. **/ static void save_empty_cimg(const char *const filename, const unsigned int nb, const unsigned int dx, const unsigned int dy=1, const unsigned int dz=1, const unsigned int dc=1) { return _save_empty_cimg(0,filename,nb,dx,dy,dz,dc); } //! Save empty .cimg file with specified dimensions. /** \param file File to write data to. \param nb Number of images to write. \param dx Width of images in the written file. \param dy Height of images in the written file. \param dz Depth of images in the written file. \param dc Spectrum of images in the written file. **/ static void save_empty_cimg(std::FILE *const file, const unsigned int nb, const unsigned int dx, const unsigned int dy=1, const unsigned int dz=1, const unsigned int dc=1) { return _save_empty_cimg(file,0,nb,dx,dy,dz,dc); } //! Save list as a TIFF file. /** \param filename Filename to write data to. \param compression_type Compression mode used to write data. **/ const CImgList& save_tiff(const char *const filename, const unsigned int compression_type=0) const { if (!filename) throw CImgArgumentException(_cimglist_instance "save_tiff(): Specified filename is (null).", cimglist_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } #ifndef cimg_use_tiff if (_width==1) _data[0].save_tiff(filename,compression_type); else cimglist_for(*this,l) { char nfilename[1024] = { 0 }; cimg::number_filename(filename,l,6,nfilename); _data[l].save_tiff(nfilename,compression_type); } #else TIFF *tif = TIFFOpen(filename,"w"); if (tif) { for (unsigned int dir = 0, l = 0; l<_width; ++l) { const CImg& img = (*this)[l]; if (img) { if (img._depth==1) img._save_tiff(tif,dir++,compression_type); else cimg_forZ(img,z) img.get_slice(z)._save_tiff(tif,dir++,compression_type); } } TIFFClose(tif); } else throw CImgIOException(_cimglist_instance "save_tiff(): Failed to open stream for file '%s'.", cimglist_instance, filename); #endif return *this; } //! Save list as a gzipped file, using external tool 'gzip'. /** \param filename Filename to write data to. **/ const CImgList& save_gzip_external(const char *const filename) const { if (!filename) throw CImgIOException(_cimglist_instance "save_gzip_external(): Specified filename is (null).", cimglist_instance); char command[1024] = { 0 }, filetmp[512] = { 0 }, body[512] = { 0 }; const char *ext = cimg::split_filename(filename,body), *ext2 = cimg::split_filename(body,0); std::FILE *file; do { if (!cimg::strcasecmp(ext,"gz")) { if (*ext2) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext2); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.cimg",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } else { if (*ext) cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand(),ext); else cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s.cimg",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); } if ((file=std::fopen(filetmp,"rb"))!=0) cimg::fclose(file); } while (file); if (is_saveable(body)) { save(filetmp); cimg_snprintf(command,sizeof(command),"%s -c \"%s\" > \"%s\"", cimg::gzip_path(), CImg::string(filetmp)._system_strescape().data(), CImg::string(filename)._system_strescape().data()); cimg::system(command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance "save_gzip_external(): Failed to save file '%s' with external command 'gzip'.", cimglist_instance, filename); else cimg::fclose(file); std::remove(filetmp); } else { char nfilename[1024] = { 0 }; cimglist_for(*this,l) { cimg::number_filename(body,l,6,nfilename); if (*ext) std::sprintf(nfilename + std::strlen(nfilename),".%s",ext); _data[l].save_gzip_external(nfilename); } } return *this; } //! Save image sequence, using the external tool 'ffmpeg'. /** \param filename Filename to write data to. \param codec Type of compression. \param fps Number of frames per second. \param bitrate Output bitrate **/ const CImgList& save_ffmpeg_external(const char *const filename, const char *const codec=0, const unsigned int fps=25, const unsigned int bitrate=2048) const { if (!filename) throw CImgArgumentException(_cimglist_instance "save_ffmpeg_external(): Specified filename is (null).", cimglist_instance); if (is_empty()) { cimg::fempty(0,filename); return *this; } const char *const ext = cimg::split_filename(filename), *const _codec = codec?codec:!cimg::strcasecmp(ext,"flv")?"flv":"mpeg2video"; char command[1024] = { 0 }, filetmp[512] = { 0 }, filetmp2[512] = { 0 }; CImgList filenames; std::FILE *file = 0; cimglist_for(*this,l) if (!_data[l].is_sameXYZ(_data[0])) throw CImgInstanceException(_cimglist_instance "save_ffmpeg_external(): Invalid instance dimensions for file '%s'.", cimglist_instance, filename); do { cimg_snprintf(filetmp,sizeof(filetmp),"%s%c%s",cimg::temporary_path(),cimg_file_separator,cimg::filenamerand()); cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_000001.ppm",filetmp); if ((file=std::fopen(filetmp2,"rb"))!=0) cimg::fclose(file); } while (file); cimglist_for(*this,l) { cimg_snprintf(filetmp2,sizeof(filetmp2),"%s_%.6u.ppm",filetmp,l+1); CImg::string(filetmp2).move_to(filenames); if (_data[l]._depth>1 || _data[l]._spectrum!=3) _data[l].get_resize(-100,-100,1,3).save_pnm(filetmp2); else _data[l].save_pnm(filetmp2); } #if cimg_OS!=2 cimg_snprintf(command,sizeof(command),"%s -i \"%s_%%6d.ppm\" -vcodec %s -b %uk -r %u -y \"%s\" >/dev/null 2>&1", cimg::ffmpeg_path(), CImg::string(filetmp)._system_strescape().data(), _codec,bitrate,fps, CImg::string(filename)._system_strescape().data()); #else cimg_snprintf(command,sizeof(command),"\"%s -i \"%s_%%6d.ppm\" -vcodec %s -b %uk -r %u -y \"%s\"\" >NUL 2>&1", cimg::ffmpeg_path(), CImg::string(filetmp)._system_strescape().data(), _codec,bitrate,fps, CImg::string(filename)._system_strescape().data()); #endif cimg::system(command); file = std::fopen(filename,"rb"); if (!file) throw CImgIOException(_cimglist_instance "save_ffmpeg_external(): Failed to save file '%s' with external command 'ffmpeg'.", cimglist_instance, filename); else cimg::fclose(file); cimglist_for(*this,l) std::remove(filenames[l]); return *this; } //@} //---------------------------------- // //! \name Others //@{ //---------------------------------- //! Crop font along the X-axis. /** **/ CImgList& crop_font() { return get_crop_font().move_to(*this); } //! Crop font along the X-axis \newinstance. /** **/ CImgList get_crop_font() const { CImgList res; cimglist_for(*this,l) { const CImg& letter = (*this)[l]; int xmin = letter._width, xmax = 0; cimg_forXY(letter,x,y) if (letter(x,y)) { if (xxmax) xmax = x; } if (xmin>xmax) CImg(letter._width,letter._height,1,letter._spectrum,0).move_to(res); else letter.get_crop(xmin,0,xmax,letter._height-1).move_to(res); } res[' '].resize(res['f']._width,-100,-100,-100,0); if (' '+256& font(const unsigned int font_height, const bool is_variable_width=true) { #define _cimg_font(sx,sy) \ if (!is_variable_width && (!font || font[0]._height!=sy)) cimg::mutex(11); font = _font(cimg::font##sx##x##sy,sx,sy,false); cimg::mutex(11,0); \ if (is_variable_width && (!vfont || vfont[0]._height!=sy)) cimg::mutex(11); vfont = _font(cimg::font##sx##x##sy,sx,sy,true); cimg::mutex(11,0); \ if (font_height==sy) return is_variable_width?vfont:font; \ if (is_variable_width) { \ if (cvfont && font_height==cvfont[0]._height) return cvfont; \ cimg::mutex(11); cvfont = vfont; \ cimglist_for(cvfont,l) \ cvfont[l].resize(cimg::max(1U,cvfont[l]._width*font_height/cvfont[l]._height),font_height,-100,-100, \ cvfont[0]._height>font_height?2:5); \ cimg::mutex(11,0); return cvfont; \ } else { \ if (cfont && font_height==cfont[0]._height) return cfont; \ cimg::mutex(11); cfont = font; \ cimglist_for(cfont,l) \ cfont[l].resize(cimg::max(1U,cfont[l]._width*font_height/cfont[l]._height),font_height,-100,-100, \ cfont[0]._height>font_height?2:5); \ cimg::mutex(11,0); return cfont; \ } \ static CImgList font, vfont, cfont, cvfont; if (!font_height) return CImgList::empty(); if (font_height<=13) { _cimg_font(10,13); } // [1,13] -> ref 13 if (font_height<=28) { _cimg_font(12,24); } // [14,28] -> ref 24 if (font_height<=32) { _cimg_font(16,32); } // [29,32] -> ref 32 _cimg_font(29,57); // [33,+inf] -> ref 57 } static CImgList _font(const unsigned int *const font, const unsigned int w, const unsigned int h, const bool is_variable_width) { CImgList res(256,w,h,1,1); const unsigned int *ptr = font; unsigned int m = 0, val = 0; for (unsigned int y = 0; y>=1; if (!m) { m = 0x80000000; val = *(ptr++); } CImg& img = res[x/w]; unsigned int xm = x%w; img(xm,y) = (T)((val&m)?1:0); } if (is_variable_width) res.crop_font(); return res.insert(res); } //! Compute a 1d Fast Fourier Transform, along specified axis. /** \param axis Axis along which the Fourier transform is computed. \param invert Tells if the direct (\c false) or inverse transform (\c true) is computed. **/ CImgList& FFT(const char axis, const bool invert=false) { if (is_empty()) return *this; if (_width==1) insert(1); if (_width>2) cimg::warn(_cimglist_instance "FFT(): Instance has more than 2 images", cimglist_instance); CImg::FFT(_data[0],_data[1],axis,invert); return *this; } //! Compute a 1-D Fast Fourier Transform, along specified axis \newinstance. CImgList get_FFT(const char axis, const bool invert=false) const { return CImgList(*this,false).FFT(axis,invert); } //! Compute a n-d Fast Fourier Transform. /** \param invert Tells if the direct (\c false) or inverse transform (\c true) is computed. **/ CImgList& FFT(const bool invert=false) { if (is_empty()) return *this; if (_width==1) insert(1); if (_width>2) cimg::warn(_cimglist_instance "FFT(): Instance has more than 2 images", cimglist_instance); CImg::FFT(_data[0],_data[1],invert); return *this; } //! Compute a n-d Fast Fourier Transform \newinstance. CImgList get_FFT(const bool invert=false) const { return CImgList(*this,false).FFT(invert); } //! Reverse primitives orientations of a 3d object. /** **/ CImgList& reverse_object3d() { cimglist_for(*this,l) { CImg& p = _data[l]; switch (p.size()) { case 2: case 3: cimg::swap(p[0],p[1]); break; case 6: cimg::swap(p[0],p[1],p[2],p[4],p[3],p[5]); break; case 9: cimg::swap(p[0],p[1],p[3],p[5],p[4],p[6]); break; case 4: cimg::swap(p[0],p[1],p[2],p[3]); break; case 12: cimg::swap(p[0],p[1],p[2],p[3],p[4],p[6],p[5],p[7],p[8],p[10],p[9],p[11]); break; } } return *this; } //! Reverse primitives orientations of a 3d object \newinstance. CImgList get_reverse_object3d() const { return (+*this).reverse_object3d(); } //@} }; // struct CImgList { ... /* #--------------------------------------------- # # Completion of previously declared functions # #---------------------------------------------- */ namespace cimg { //! Display a simple dialog box, and wait for the user's response. /** \param title Title of the dialog window. \param msg Main message displayed inside the dialog window. \param button1_label Label of the 1st button. \param button2_label Label of the 2nd button (\c 0 to hide button). \param button3_label Label of the 3rd button (\c 0 to hide button). \param button4_label Label of the 4th button (\c 0 to hide button). \param button5_label Label of the 5th button (\c 0 to hide button). \param button6_label Label of the 6th button (\c 0 to hide button). \param logo Image logo displayed at the left of the main message. \param is_centered Tells if the dialog window must be centered on the screen. \return Indice of clicked button (from \c 0 to \c 5), or \c -1 if the dialog window has been closed by the user. \note - Up to 6 buttons can be defined in the dialog window. - The function returns when a user clicked one of the button or closed the dialog window. - If a button text is set to 0, the corresponding button (and the followings) will not appear in the dialog box. At least one button must be specified. **/ template inline int dialog(const char *const title, const char *const msg, const char *const button1_label, const char *const button2_label, const char *const button3_label, const char *const button4_label, const char *const button5_label, const char *const button6_label, const CImg& logo, const bool is_centered = false) { #if cimg_display==0 cimg::unused(title,msg,button1_label,button2_label,button3_label,button4_label,button5_label,button6_label,logo._data,is_centered); throw CImgIOException("cimg::dialog(): No display available."); #else const unsigned char black[] = { 0,0,0 }, white[] = { 255,255,255 }, gray[] = { 200,200,200 }, gray2[] = { 150,150,150 }; // Create buttons and canvas graphics CImgList buttons, cbuttons, sbuttons; if (button1_label) { CImg().draw_text(0,0,button1_label,black,gray,1,13).move_to(buttons); if (button2_label) { CImg().draw_text(0,0,button2_label,black,gray,1,13).move_to(buttons); if (button3_label) { CImg().draw_text(0,0,button3_label,black,gray,1,13).move_to(buttons); if (button4_label) { CImg().draw_text(0,0,button4_label,black,gray,1,13).move_to(buttons); if (button5_label) { CImg().draw_text(0,0,button5_label,black,gray,1,13).move_to(buttons); if (button6_label) { CImg().draw_text(0,0,button6_label,black,gray,1,13).move_to(buttons); }}}}}} if (!buttons._width) throw CImgArgumentException("cimg::dialog(): No buttons have been defined."); cimglist_for(buttons,l) buttons[l].resize(-100,-100,1,3); unsigned int bw = 0, bh = 0; cimglist_for(buttons,l) { bw = cimg::max(bw,buttons[l]._width); bh = cimg::max(bh,buttons[l]._height); } bw+=8; bh+=8; if (bw<64) bw = 64; if (bw>128) bw = 128; if (bh<24) bh = 24; if (bh>48) bh = 48; CImg button(bw,bh,1,3); button.draw_rectangle(0,0,bw-1,bh-1,gray); button.draw_line(0,0,bw-1,0,white).draw_line(0,bh-1,0,0,white); button.draw_line(bw-1,0,bw-1,bh-1,black).draw_line(bw-1,bh-1,0,bh-1,black); button.draw_line(1,bh-2,bw-2,bh-2,gray2).draw_line(bw-2,bh-2,bw-2,1,gray2); CImg sbutton(bw,bh,1,3); sbutton.draw_rectangle(0,0,bw-1,bh-1,gray); sbutton.draw_line(0,0,bw-1,0,black).draw_line(bw-1,0,bw-1,bh-1,black); sbutton.draw_line(bw-1,bh-1,0,bh-1,black).draw_line(0,bh-1,0,0,black); sbutton.draw_line(1,1,bw-2,1,white).draw_line(1,bh-2,1,1,white); sbutton.draw_line(bw-2,1,bw-2,bh-2,black).draw_line(bw-2,bh-2,1,bh-2,black); sbutton.draw_line(2,bh-3,bw-3,bh-3,gray2).draw_line(bw-3,bh-3,bw-3,2,gray2); sbutton.draw_line(4,4,bw-5,4,black,1,0xAAAAAAAA,true).draw_line(bw-5,4,bw-5,bh-5,black,1,0xAAAAAAAA,false); sbutton.draw_line(bw-5,bh-5,4,bh-5,black,1,0xAAAAAAAA,false).draw_line(4,bh-5,4,4,black,1,0xAAAAAAAA,false); CImg cbutton(bw,bh,1,3); cbutton.draw_rectangle(0,0,bw-1,bh-1,black).draw_rectangle(1,1,bw-2,bh-2,gray2).draw_rectangle(2,2,bw-3,bh-3,gray); cbutton.draw_line(4,4,bw-5,4,black,1,0xAAAAAAAA,true).draw_line(bw-5,4,bw-5,bh-5,black,1,0xAAAAAAAA,false); cbutton.draw_line(bw-5,bh-5,4,bh-5,black,1,0xAAAAAAAA,false).draw_line(4,bh-5,4,4,black,1,0xAAAAAAAA,false); cimglist_for(buttons,ll) { CImg(cbutton).draw_image(1+(bw-buttons[ll].width())/2,1+(bh-buttons[ll].height())/2,buttons[ll]). move_to(cbuttons); CImg(sbutton).draw_image((bw-buttons[ll].width())/2,(bh-buttons[ll].height())/2,buttons[ll]). move_to(sbuttons); CImg(button).draw_image((bw-buttons[ll].width())/2,(bh-buttons[ll].height())/2,buttons[ll]). move_to(buttons[ll]); } CImg canvas; if (msg) CImg().draw_text(0,0,"%s",black,gray,1,13,msg).resize(-100,-100,1,3).move_to(canvas); const unsigned int bwall = (buttons._width-1)*(12+bw) + bw, w = cimg::max(196U,36+logo._width+canvas._width,24+bwall), h = cimg::max(96U,36+canvas._height+bh,36+logo._height+bh), lx = 12 + (canvas._data?0:((w-24-logo._width)/2)), ly = (h-12-bh-logo._height)/2, tx = lx+logo._width+12, ty = (h-12-bh-canvas._height)/2, bx = (w-bwall)/2, by = h-12-bh; if (canvas._data) canvas = CImg(w,h,1,3). draw_rectangle(0,0,w-1,h-1,gray). draw_line(0,0,w-1,0,white).draw_line(0,h-1,0,0,white). draw_line(w-1,0,w-1,h-1,black).draw_line(w-1,h-1,0,h-1,black). draw_image(tx,ty,canvas); else canvas = CImg(w,h,1,3). draw_rectangle(0,0,w-1,h-1,gray). draw_line(0,0,w-1,0,white).draw_line(0,h-1,0,0,white). draw_line(w-1,0,w-1,h-1,black).draw_line(w-1,h-1,0,h-1,black); if (logo._data) canvas.draw_image(lx,ly,logo); unsigned int xbuttons[6] = { 0 }; cimglist_for(buttons,lll) { xbuttons[lll] = bx+(bw+12)*lll; canvas.draw_image(xbuttons[lll],by,buttons[lll]); } // Open window and enter events loop CImgDisplay disp(canvas,title?title:" ",0,false,is_centered?true:false); if (is_centered) disp.move((CImgDisplay::screen_width() - disp.width())/2, (CImgDisplay::screen_height() - disp.height())/2); bool stopflag = false, refresh = false; int oselected = -1, oclicked = -1, selected = -1, clicked = -1; while (!disp.is_closed() && !stopflag) { if (refresh) { if (clicked>=0) CImg(canvas).draw_image(xbuttons[clicked],by,cbuttons[clicked]).display(disp); else { if (selected>=0) CImg(canvas).draw_image(xbuttons[selected],by,sbuttons[selected]).display(disp); else canvas.display(disp); } refresh = false; } disp.wait(15); if (disp.is_resized()) disp.resize(disp,false); if (disp.button()&1) { oclicked = clicked; clicked = -1; cimglist_for(buttons,l) if (disp.mouse_y()>=(int)by && disp.mouse_y()<(int)(by+bh) && disp.mouse_x()>=(int)xbuttons[l] && disp.mouse_x()<(int)(xbuttons[l]+bw)) { clicked = selected = l; refresh = true; } if (clicked!=oclicked) refresh = true; } else if (clicked>=0) stopflag = true; if (disp.key()) { oselected = selected; switch (disp.key()) { case cimg::keyESC : selected=-1; stopflag=true; break; case cimg::keyENTER : if (selected<0) selected = 0; stopflag = true; break; case cimg::keyTAB : case cimg::keyARROWRIGHT : case cimg::keyARROWDOWN : selected = (selected+1)%buttons._width; break; case cimg::keyARROWLEFT : case cimg::keyARROWUP : selected = (selected+buttons._width-1)%buttons._width; break; } disp.set_key(); if (selected!=oselected) refresh = true; } } if (!disp) selected = -1; return selected; #endif } //! Display a simple dialog box, and wait for the user's response \specialization. inline int dialog(const char *const title, const char *const msg, const char *const button1_label, const char *const button2_label, const char *const button3_label, const char *const button4_label, const char *const button5_label, const char *const button6_label, const bool is_centered) { return dialog(title,msg,button1_label,button2_label,button3_label,button4_label,button5_label,button6_label, CImg::_logo40x38(),is_centered); } //! Evaluate math expression. /** \param expression C-string describing the formula to evaluate. \param x Value of the pre-defined variable \c x. \param y Value of the pre-defined variable \c y. \param z Value of the pre-defined variable \c z. \param c Value of the pre-defined variable \c c. \return Result of the formula evaluation. \note Set \c expression to \c 0 to keep evaluating the last specified \c expression. \par Example \code const double res1 = cimg::eval("cos(x)^2+sin(y)^2",2,2), // will return '1'. res2 = cimg::eval(0,1,1); // will return '1' too. \endcode **/ inline double eval(const char *const expression, const double x, const double y, const double z, const double c) { static const CImg empty; return empty.eval(expression,x,y,z,c); } template inline CImg::type> eval(const char *const expression, const CImg& xyzc) { static const CImg empty; return empty.eval(expression,xyzc); } // End of cimg:: namespace } // End of cimg_library:: namespace } //! Short alias name. namespace cil = cimg_library_suffixed; #ifdef _cimg_redefine_False #define False 0 #endif #ifdef _cimg_redefine_True #define True 1 #endif #ifdef _cimg_redefine_None #define None 0 #endif #ifdef _cimg_redefine_min #define min(a,b) (((a)<(b))?(a):(b)) #endif #ifdef _cimg_redefine_max #define max(a,b) (((a)>(b))?(a):(b)) #endif #ifdef _cimg_redefine_PI #define PI 3.141592653589793238462643383 #endif #endif // Local Variables: // mode: c++ // End: gmic-1.5.7.1/src/gmic.cpp0000664000175000017500000216604112216303503015263 0ustar dtschumpdtschump/* # # File : gmic.cpp # ( C++ source file ) # # Description : GREYC's Magic for Image Computing - G'MIC Language interpreter # ( http://gmic.sourceforge.net ) # This file is also a part of the CImg Library project. # ( http://cimg.sourceforge.net ) # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # */ // Add G'MIC-specific methods to the CImg library. //------------------------------------------------- #ifdef cimg_plugin template CImg& operator_eq(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd == (T)val); return *this; } CImg& operator_eq(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_eq"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd == (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd == (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_eq(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_eq(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_eq(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg& operator_neq(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd != (T)val); return *this; } CImg& operator_neq(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_neq"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd != (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd != (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_neq(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_neq(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_neq(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg& operator_gt(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd > (T)val); return *this; } CImg& operator_gt(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_gt"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd > (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd > (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_gt(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_gt(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_gt(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs (T)*(ptrs++)); for (const t *ptrs = img._data; ptrd (T)*(ptrs++)); } return *this; } template CImg& operator_ge(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd >= (T)val); return *this; } CImg& operator_ge(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_ge"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd >= (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd >= (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_ge(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_ge(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_ge(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs= (T)*(ptrs++)); for (const t *ptrs = img._data; ptrd= (T)*(ptrs++)); } return *this; } template CImg& operator_lt(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd < (T)val); return *this; } CImg& operator_lt(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_lt"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd < (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd < (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_lt(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_lt(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_lt(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs CImg& operator_le(const t val) { cimg_for(*this,ptrd,T) *ptrd = (T)(*ptrd <= (T)val); return *this; } CImg& operator_le(const char *const expression) { const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; try { const CImg _base = *expression!='>' && *expression!='<' && (std::strstr(expression,"i(") || std::strstr(expression,"j("))?+*this:CImg(), &base = _base?_base:*this; _cimg_math_parser mp(base,expression+(*expression=='>' || *expression=='<'?1:0),"operator_le"); T *ptrd = *expression=='<'?end()-1:_data; if (*expression=='<') cimg_rofXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd <= (T)mp.eval(x,y,z,c)); --ptrd; } else cimg_forXYZC(*this,x,y,z,c) { *ptrd = (T)(*ptrd <= (T)mp.eval(x,y,z,c)); ++ptrd; } } catch (CImgException&) { cimg::exception_mode() = omode; CImg values(_width,_height,_depth,_spectrum); values = expression; operator_le(values); } cimg::exception_mode() = omode; return *this; } template CImg& operator_le(const CImg& img) { const unsigned long siz = size(), isiz = img.size(); if (siz && isiz) { if (is_overlapped(img)) return operator_le(+img); T *ptrd = _data, *const ptre = _data + siz; if (siz>isiz) for (unsigned long n = siz/isiz; n; --n) for (const t *ptrs = img._data, *ptrs_end = ptrs + isiz; ptrs& mul(const char *const expression) { return operator*=(expression); } CImg get_mul(const char *const expression) const { return (+*this).mul(expression); } CImg& div(const char *const expression) { return operator/=(expression); } CImg get_div(const char *const expression) const { return (+*this).div(expression); } CImg& gmic_rol(const float n) { return rol((unsigned int)n); } CImg get_gmic_rol(const float n) const { return get_rol((unsigned int)n); } CImg& gmic_ror(const float n) { return ror((unsigned int)n); } CImg get_gmic_ror(const float n) const { return get_ror((unsigned int)n); } template CImg& replace(CImg& img) { return img.move_to(*this); } template CImg get_replace(const CImg& img) const { return +img; } CImg& gmic_autocrop(const CImg& color=CImg::empty()) { if (color.width()==1) autocrop(*color); else autocrop(color); return *this; } CImg get_gmic_autocrop(const CImg& color=CImg::empty()) { return (+*this).gmic_autocrop(color); } CImg get_gmic_set(const double value, const int x, const int y, const int z, const int v) const { return (+*this).gmic_set(value,x,y,z,v); } CImg& gmic_set(const double value, const int x, const int y, const int z, const int v) { (*this).atXYZC(x,y,z,v,0) = (T)value; return *this; } CImg get_draw_point(const int x, const int y, const int z, const T *const col, const float opacity) const { return (+*this).draw_point(x,y,z,col,opacity); } CImg get_draw_line(const int x0, const int y0, const int x1, const int y1, const T *const col, const float opacity, const unsigned int pattern) const { return (+*this).draw_line(x0,y0,x1,y1,col,opacity,pattern); } template CImg get_draw_polygon(const CImg& pts, const T *const col, const float opacity) const { return (+*this).draw_polygon(pts,col,opacity); } template CImg get_draw_polygon(const CImg& pts, const T *const col, const float opacity, const unsigned int pattern) const { return (+*this).draw_polygon(pts,col,opacity,pattern); } CImg get_draw_circle(const int x, const int y, const int r, const T *const col, const float opacity) const { return (+*this).draw_circle(x,y,r,col,opacity); } CImg get_draw_circle(const int x, const int y, const int r, const T *const col, const float opacity, const unsigned int pattern) const { return (+*this).draw_circle(x,y,r,col,opacity,pattern); } CImg get_draw_ellipse(const int x, const int y, const float r0, const float r1, const float angle, const T *const col, const float opacity) const { return (+*this).draw_ellipse(x,y,r0,r1,angle,col,opacity); } CImg get_draw_ellipse(const int x, const int y, const float r0, const float r1, const float angle, const T *const col, const float opacity, const unsigned int pattern) const { return (+*this).draw_ellipse(x,y,r0,r1,angle,col,opacity,pattern); } CImg& gmic_draw_text(const int x, const int y, const char *const text, const T *const col, const int bg, const float opacity, const unsigned int siz, const unsigned int nb_cols) { if (is_empty()) { const T one[] = { 1 }; assign().draw_text(x,y,"%s",one,0,opacity,siz,text).resize(-100,-100,1,nb_cols); cimg_forC(*this,c) get_shared_channel(c)*=col[c]; } else draw_text(x,y,"%s",col,bg,opacity,siz,text); return *this; } CImg get_gmic_draw_text(const int x, const int y, const char *const text, const T *const col, const int bg, const float opacity, const unsigned int siz, const unsigned int nb_cols) const { return (+*this).gmic_draw_text(x,y,text,col,bg,opacity,siz,nb_cols); } CImg get_draw_image(const int x, const int y, const int z, const int c, const CImg& sprite, const CImg& mask, const float opacity, const float max_opacity_mask) const { return (+*this).draw_image(x,y,z,c,sprite,mask,opacity,max_opacity_mask); } CImg get_draw_image(const int x, const int y, const int z, const int c, const CImg& sprite, const float opacity) const { return (+*this).draw_image(x,y,z,c,sprite,opacity); } CImg get_draw_plasma(const float alpha, const float beta, const unsigned int scale) const { return (+*this).draw_plasma(alpha,beta,scale); } CImg get_draw_mandelbrot(const CImg& color_palette, const float opacity, const double z0r, const double z0i, const double z1r, const double z1i, const unsigned int itermax, const bool normalized_iteration, const bool julia_set, const double paramr, const double parami) const { return (+*this).draw_mandelbrot(color_palette,opacity,z0r,z0i,z1r,z1i,itermax, normalized_iteration,julia_set,paramr,parami); } template CImg get_draw_graph(const CImg& data, const tc *const color, const float opacity=1, const unsigned int plot_type=1, const int vertex_type=1, const double ymin=0, const double ymax=0, const unsigned int pattern=~0U) const { return (+*this).draw_graph(data,color,opacity,plot_type,vertex_type,ymin,ymax,pattern); } template CImg get_draw_axes(const float x0, const float x1, const float y0, const float y1, const tc *const color, const float opacity=1, const int subdivisionx=-60, const int subdivisiony=-60, const float precisionx=0, const float precisiony=0, const unsigned int patternx=~0U, const unsigned int patterny=~0U, const unsigned int font_height=13) const { return (+*this).draw_axes(x0,x1,y0,y1,color,opacity,subdivisionx,subdivisiony, precisionx,precisiony,patternx,patterny,font_height); } template CImg get_draw_grid(const float sizex, const float sizey, const float offsetx, const float offsety, const bool invertx, const bool inverty, const tc *const color, const float opacity=1, const unsigned int patternx=~0U, const unsigned int patterny=~0U) { return (+*this).draw_grid(sizex,sizey,offsetx,offsety,invertx,inverty,color,opacity, patternx,patterny); } template CImg get_draw_quiver(const CImg& flow, const t2 *const color, const float opacity=1, const unsigned int sampling=25, const float factor=-20, const bool arrows=true, const unsigned int pattern=~0U) const { return (+*this).draw_quiver(flow,color,opacity,sampling,factor,arrows,pattern); } CImg get_draw_fill(const int x, const int y, const int z, const T *const col, const float opacity, const float tolerance, const bool is_high_connectivity) const { return (+*this).draw_fill(x,y,z,col,opacity,tolerance,is_high_connectivity); } static bool is_almost(const T x, const T c) { return x>=c && x CImg get_draw_object3d(const float x0, const float y0, const float z0, const CImg& vertices, const CImgList& primitives, const CImgList& colors, const CImgList& opacities, const unsigned int render_mode, const bool double_sided, const float focale, const float light_x, const float light_y,const float light_z, const float specular_light, const float specular_shine, CImg& zbuffer) const { return (+*this).draw_object3d(x0,y0,z0,vertices,primitives,colors,opacities,render_mode, double_sided,focale,light_x,light_y,light_z,specular_light, specular_shine,zbuffer); } template const CImg& gmic_symmetric_eigen(CImg& val, CImg& vec) const { if (spectrum()!=3 && spectrum()!=6) return symmetric_eigen(val,vec); val.assign(width(),height(),depth(),spectrum()==3?2:3); vec.assign(width(),height(),depth(),spectrum()==3?2:6); CImg _val, _vec; cimg_forXYZ(*this,x,y,z) { get_tensor_at(x,y,z).symmetric_eigen(_val,_vec); val.set_vector_at(_val,x,y,z); if (spectrum()==3) { vec(x,y,z,0) = _vec(0,0); vec(x,y,z,1) = _vec(0,1); } else { vec(x,y,z,0) = _vec(0,0); vec(x,y,z,1) = _vec(0,1); vec(x,y,z,2) = _vec(0,2); vec(x,y,z,3) = _vec(1,0); vec(x,y,z,4) = _vec(1,1); vec(x,y,z,5) = _vec(1,2); } } return *this; } // Append a list of 3d objects. //----------------------------- static CImg append_CImg3d(const CImgList& images) { if (!images) return CImg(); if (images.size()==1) return +images[0]; unsigned int nbv = 0, nbp = 0; unsigned long siz = 0; cimglist_for(images,l) { const CImg& img = images[l]; if (!img.is_CImg3d(true)) return CImg(); siz+=img.size() - 8; nbv+=cimg::float2uint((float)img[6]); nbp+=cimg::float2uint((float)img[7]); } CImg res(1,siz + 8); const T **const ptrs = new const T*[images.size()]; T *ptrd = res._data; *(ptrd++) = (T)('C' + 0.5f); *(ptrd++) = (T)('I' + 0.5f); // Create object header. *(ptrd++) = (T)('m' + 0.5f); *(ptrd++) = (T)('g' + 0.5f); *(ptrd++) = (T)('3' + 0.5f); *(ptrd++) = (T)('d' + 0.5f); *(ptrd++) = (T)nbv; *(ptrd++) = (T)nbp; cimglist_for(images,l) { // Merge object points. const CImg& img = images[l]; const unsigned int nbv = cimg::float2uint((float)img[6]); std::memcpy(ptrd,img._data + 8,3*nbv*sizeof(T)); ptrd+=3*nbv; ptrs[l] = img._data + 8 + 3*nbv; } unsigned long poff = 0; cimglist_for(images,l) { // Merge object primitives. const unsigned int nbv = cimg::float2uint((float)images[l][6]), nbp = cimg::float2uint((float)images[l][7]); for (unsigned int p = 0; p& center_CImg3d() { const unsigned int nbv = cimg::float2uint((float)(*this)[6]); const T *ptrs = data() + 8; float xm = cimg::type::max(), ym = xm, zm = xm, xM = cimg::type::min(), yM = xM, zM = xM; for (unsigned int i = 0; ixM) xM = x; if (yyM) yM = y; if (zzM) zM = z; } const float xc = (xm + xM)/2, yc = (ym + yM)/2, zc = (zm + zM)/2; T *ptrd = data() + 8; for (unsigned int i = 0; i get_center_CImg3d() const { return (+*this).center_CImg3d(); } CImg& normalize_CImg3d() { const unsigned int nbv = cimg::float2uint((float)(*this)[6]); const T *ptrs = data() + 8; float xm = cimg::type::max(), ym = xm, zm = xm, xM = cimg::type::min(), yM = xM, zM = xM; for (unsigned int i = 0; ixM) xM = x; if (yyM) yM = y; if (zzM) zM = z; } const float delta = cimg::max(xM-xm,yM-ym,zM-zm); if (delta>0) { T *ptrd = data() + 8; for (unsigned int i = 0; i<3*nbv; ++i) *(ptrd++)/=(T)delta; } return *this; } CImg get_normalize_CImg3d() const { return (+*this).normalize_CImg3d(); } template CImg& rotate_CImg3d(const CImg& rot) { const unsigned int nbv = cimg::float2uint((float)(*this)[6]); const T *ptrs = data() + 8; const float a = (float)rot(0,0), b = (float)rot(1,0), c = (float)rot(2,0), d = (float)rot(0,1), e = (float)rot(1,1), f = (float)rot(2,1), g = (float)rot(0,2), h = (float)rot(1,2), i = (float)rot(2,2); T *ptrd = data() + 8; for (unsigned int j = 0; j CImg get_rotate_CImg3d(const CImg& rot) const { return (+*this).rotate_CImg3d(rot); } CImg& shift_CImg3d(const float tx, const float ty, const float tz) { const unsigned int nbv = cimg::float2uint((float)(*this)[6]); T *ptrd = data() + 8; for (unsigned int j = 0; j get_shift_CImg3d(const float tx, const float ty, const float tz) const { return (+*this).shift_CImg3d(tx,ty,tz); } CImg& scale_CImg3d(const float sx, const float sy, const float sz) { const unsigned int nbv = cimg::float2uint((float)(*this)[6]); T *ptrd = data() + 8; for (unsigned int j = 0; j get_scale_CImg3d(const float sx, const float sy, const float sz) const { return (+*this).scale_CImg3d(sx,sy,sz); } CImg& color_CImg3d(const float R, const float G, const float B, const float opacity, const bool set_RGB, const bool set_opacity) { T *ptrd = data() + 6; const unsigned int nbv = cimg::float2uint((float)*(ptrd++)), nbp = cimg::float2uint((float)*(ptrd++)); ptrd+=3*nbv; for (unsigned int i = 0; i get_color_CImg3d(const float R, const float G, const float B, const float opacity, const bool set_RGB, const bool set_opacity) const { return (+*this).color_CImg3d(R,G,B,opacity,set_RGB,set_opacity); } CImg& texturize_CImg3d(const CImg& texture, const CImg& coords) { return get_texturize_CImg3d(texture,coords).move_to(*this); } CImg get_texturize_CImg3d(const CImg& texture, const CImg& coords) const { CImgList primitives; CImgList colors; CImgList opacities; const CImg points = get_CImg3dtoobject3d(primitives,colors,opacities); points.texturize_object3d(primitives,colors,texture,coords); return points.get_object3dtoCImg3d(primitives,colors,opacities); } template CImg& inpaint(const CImg& mask) { if (!is_sameXYZ(mask)) throw CImgArgumentException("CImg<%s>::inpaint(): Invalid mask (%u,%u,%u,%u,%p) for " "instance image (%u,%u,%u,%u,%p).", pixel_type(),mask._width,mask._height,mask._depth, mask._spectrum,mask._data, _width,_height,_depth,_spectrum,_data); CImg _mask(mask,false), _nmask(mask,false); CImg_3x3(M,t); Mpp = Mnp = Mpn = Mnn = 0; CImg_3x3(I,T); Ipp = Inp = Icc = Ipn = Inn = 0; bool is_pixel = false; do { is_pixel = false; cimg_forZ(_mask,z) cimg_for3x3(_mask,x,y,z,0,M,t) if (Mcc && (!Mpc || !Mnc || !Mcp || !Mcn)) { is_pixel = true; const float wcp = Mcp?0.0f:1.0f, wpc = Mpc?0.0f:1.0f, wnc = Mnc?0.0f:1.0f, wcn = Mcn?0.0f:1.0f, sumw = wcp + wpc + wnc + wcn; cimg_forC(*this,k) { cimg_get3x3(*this,x,y,z,k,I,T); (*this)(x,y,z,k) = (T)((wcp*Icp + wpc*Ipc + wnc*Inc + wcn*Icn)/sumw); } _nmask(x,y,z) = 0; } _mask = _nmask; } while (is_pixel); return *this; } template CImg get_inpaint(const CImg& mask) const { return (+*this).inpaint(mask); } template CImg& inpaint_patch(const CImg& mask, const unsigned int patch_size=11, const unsigned int lookup_size=22, const unsigned int lookup_increment=1, const unsigned int blend_size=0, const float blend_threshold=0.5f, const float blend_decay=0.02, const unsigned int blend_scales=10, const bool is_blend_outer=false) { if (depth()>1) throw CImgInstanceException(_cimg_instance "inpaint_patch(): Instance image is volumetric (should be 2d).", cimg_instance); if (!is_sameXYZ(mask)) throw CImgArgumentException(_cimg_instance "inpaint_patch() : Sizes of instance image and specified mask (%u,%u,%u,%u) do not match.", cimg_instance, mask._width,mask._height,mask._depth,mask._spectrum); if (!patch_size) throw CImgArgumentException(_cimg_instance "inpaint_patch() : Specified patch size is 0, must be strictly positive.", cimg_instance); if (!lookup_size) throw CImgArgumentException(_cimg_instance "inpaint_patch() : Specified lookup size is 0, must be strictly positive.", cimg_instance); if (!lookup_increment) throw CImgArgumentException(_cimg_instance "inpaint_patch() : Specified lookup increment is 0, must be strictly positive.", cimg_instance); if (blend_decay<0) throw CImgArgumentException(_cimg_instance "inpaint_patch() : Specified blend decay %g is negative, must be positive.", cimg_instance, blend_decay); // Find (dilated by 2) bounding box for the inpainting mask. unsigned int xm0 = _width, ym0 = _height, xm1 = 0, ym1 = 0; bool is_mask_found = false; cimg_forXY(mask,x,y) if (mask(x,y)) { is_mask_found = true; if (x<(int)xm0) xm0 = (unsigned int)x; if (x>(int)xm1) xm1 = (unsigned int)x; if (y<(int)ym0) ym0 = (unsigned int)y; if (y>(int)ym1) ym1 = (unsigned int)y; } if (!is_mask_found) return *this; xm0 = xm0>2?xm0-2:0; ym0 = ym0>2?ym0-2:0; xm1 = xm1<_width-3?xm1+2:_width-1; ym1 = ym1<_height-3?ym1+2:_height-1; int ox = xm0, oy = ym0; unsigned int dx = xm1 - xm0 + 1U, dy = ym1 - ym0 + 1U; // Construct normalized version of the mask. CImg nmask(dx,dy); unsigned char *ptrM = nmask.data(); cimg_for_inXY(mask,xm0,ym0,xm1,ym1,x,y) *(ptrM++) = mask(x,y)?0:1; xm0 = ym0 = 0; xm1 = dx - 1; ym1 = dy - 1; // Start patch filling algorithm. const int p2 = (int)patch_size/2, p1 = (int)patch_size - p2 - 1; const unsigned int patch_size2 = patch_size*patch_size; unsigned int _lookup_size = lookup_size, nb_lookups = 0, nb_fails = 0, nb_saved_patches = 0; bool is_strict_search = true; CImg confidences(nmask), priorities(dx,dy,1,2,-1), pC; CImg saved_patches; CImg pM, pN; // Pre-declare patch variables (avoid memory allocation/deallocation at each iteration). CImg pP, pbest; if (blend_size && blend_scales) saved_patches.assign(4,256); while (true) { // Extract mask border points and compute priorities to find target point. unsigned int nb_border_points = 0, nxm0 = dx, nym0 = dy, nxm1 = 0, nym1 = 0; float target_confidence = -1, target_priority = -1; int target_x = -1, target_y = -1; CImg_5x5(M,unsigned char); cimg_for_in5x5(nmask,xm0,ym0,xm1,ym1,x,y,0,0,M,t) if (!Mcc && (Mcp || Mcn || Mpc || Mnc)) { // Found mask border point. // Try to update bounding box coordinates. if (x<(int)nxm0) nxm0 = (unsigned int)x; if (x>(int)nxm1) nxm1 = (unsigned int)x; if (y<(int)nym0) nym0 = (unsigned int)y; if (y>(int)nym1) nym1 = (unsigned int)y; float confidence_term = -1, data_term = -1; if (priorities(x,y)>=0) { // If priority has already been computed. confidence_term = priorities(x,y,0); data_term = priorities(x,y,1); } else { // If priority must be computed/updated. // Compute smoothed normal vector. const float Npc = (4.0f*Mpc + 2.0f*Mbc + 2.0f*Mcc + 2.0f*Mpp + 2.0f*Mpn + Mbp + Mbn + Mcp + Mcn)/16, // N = smoothed 3x3 neighborhood of M. Nnc = (4.0f*Mnc + 2.0f*Mac + 2.0f*Mcc + 2.0f*Mnp + 2.0f*Mnn + Map + Man + Mcp + Mcn)/16, Ncp = (4.0f*Mcp + 2.0f*Mcb + 2.0f*Mcc + 2.0f*Mpp + 2.0f*Mnp + Mpb + Mnb + Mpc + Mnc)/16, Ncn = (4.0f*Mcn + 2.0f*Mca + 2.0f*Mcc + 2.0f*Mpn + 2.0f*Mnn + Mpa + Mna + Mpc + Mnc)/16, _nx = 0.5f*(Nnc - Npc), _ny = 0.5f*(Ncn - Ncp), nn = std::sqrt(1e-8 + _nx*_nx + _ny*_ny), nx = _nx/nn, ny = _ny/nn; // Compute confidence term. nmask._inpaint_patch_crop(x-p1,y-p1,x+p2,y+p2,0).move_to(pM); confidences._inpaint_patch_crop(x-p1,y-p1,x+p2,y+p2,0).move_to(pC); confidence_term = 0; const unsigned char *ptrM = pM.data(); cimg_for(pC,ptrC,float) confidence_term+=*ptrC**(ptrM++); confidence_term/=patch_size2; priorities(x,y,0) = confidence_term; // Compute data term. _inpaint_patch_crop(ox+x-p1,oy+y-p1,ox+x+p2,oy+y+p2,2).move_to(pP); float max_ix = 0, max_iy = 0, max_ng = 0; CImg_3x3(I,T); CImg_3x3(_M,unsigned char); cimg_forC(pP,c) cimg_for3x3(pP,p,q,0,c,I,T) { // Compute max gradient norm inside patch. cimg_get3x3(pM,p,q,0,0,_M,unsigned char); const float ix = _Mnc*_Mcc*(Inc-Icc), iy = _Mcn*_Mcc*(Icn-Icc), ng = ix*ix + iy*iy; if (ng>max_ng) { max_ix = ix; max_iy = iy; max_ng = ng; } } data_term = cimg::abs(-max_iy*nx + max_ix*ny); priorities(x,y,1) = data_term; } const float priority = confidence_term*data_term; if (priority>target_priority) { target_priority = priority; target_confidence = confidence_term; target_x = ox + x; target_y = oy + y; } ++nb_border_points; } if (!nb_border_points) break; // No more mask border points to inpaint! xm0 = nxm0; ym0 = nym0; xm1 = nxm1; ym1 = nym1; // Set new bounding box coordinates. // Find best patch candidate to fill target point. _inpaint_patch_crop(target_x-p1,target_y-p1,target_x+p2,target_y+p2,0).move_to(pP); nmask._inpaint_patch_crop(target_x-ox-p1,target_y-oy-p1,target_x-ox+p2,target_y-oy+p2,0).move_to(pM); float best_ssd = cimg::type::max(); int best_x = -1, best_y = -1; const int l2 = (int)_lookup_size/2, l1 = (int)_lookup_size - l2 - 1, x0 = cimg::max(p1,target_x-l1), y0 = cimg::max(p1,target_y-l1), x1 = cimg::min(width()-1-p2,target_x+l2), y1 = cimg::min(height()-1-p2,target_y+l2); for (int y = y0; y<=y1; y+=lookup_increment) for (int x = x0; x<=x1; x+=lookup_increment) { if (is_strict_search) mask._inpaint_patch_crop(x-p1,y-p1,x+p2,y+p2,1).move_to(pN); else nmask._inpaint_patch_crop(x-ox-p1,y-oy-p1,x-ox+p2,y-oy+p2,0).move_to(pN); if ((is_strict_search && pN.sum()==0) || (!is_strict_search && pN.sum()==patch_size2)) { _inpaint_patch_crop(x-p1,y-p1,x+p2,y+p2,0).move_to(pC); const float ssd = (pC-=pP).mul(pM).sqr().sum(); if (ssd will probably select another patch. if (++nb_fails>=4) { // If too much consecutive fails : nb_fails = 0; _lookup_size+=_lookup_size/2; // Try to expand the lookup size. if (++nb_lookups>=3) { if (is_strict_search) { is_strict_search = false; _lookup_size = lookup_size; nb_lookups = 0; } // If still fails, switch to non-strict search mode. else return *this; // Pathological case, probably a weird mask. } } } else { // Candidate found : reconstruct missing part on the target patch. _lookup_size = lookup_size; nb_lookups = nb_fails = 0; _inpaint_patch_crop(best_x-p1,best_y-p1,best_x+p2,best_y+p2,0).move_to(pbest); nmask._inpaint_patch_crop(target_x-ox-p1,target_y-oy-p1,target_x-ox+p2,target_y-oy+p2,1).move_to(pM); cimg_for(pM,ptr,unsigned char) *ptr=1-*ptr; draw_image(target_x-p1,target_y-p1,pbest,pM,1,1); confidences.draw_image(target_x-ox-p1,target_y-oy-p1,pC.fill(target_confidence),pM,1,1); nmask.draw_rectangle(target_x-ox-p1,target_y-oy-p1,0,0,target_x-ox+p2,target_y-oy+p2,0,0,1); priorities.draw_rectangle(target_x-ox-(int)patch_size,target_y-oy-(int)patch_size,0,0,target_x-ox+3*p2/2,target_y-oy+3*p2/2,0,0,-1); if (blend_size && blend_scales) { // If blending activated, remember patch positions. unsigned int *ptr_saved_patches = saved_patches.data(0,nb_saved_patches); // Save position for blending *(ptr_saved_patches++) = best_x; *(ptr_saved_patches++) = best_y; *(ptr_saved_patches++) = target_x; *ptr_saved_patches = target_y; if (++nb_saved_patches>=saved_patches._height) saved_patches.resize(4,-200,1,1,0); } } } nmask.assign(); // Free some unused memory resources. priorities.assign(); confidences.assign(); // Blend inpainting result (if requested), using multi-scale blending algorithm. if (blend_size && blend_scales) { const float _blend_threshold = cimg::max(0.0f,cimg::min(1.0f,blend_threshold)); saved_patches._height = nb_saved_patches; // Re-crop image and mask if outer blending is activated. if (is_blend_outer) { const int b2 = (int)blend_size/2, b1 = (int)blend_size - b2 - 1, xb0 = cimg::max(0,ox-b1), yb0 = cimg::max(0,oy-b1), xb1 = cimg::min(_width-1,xb0 + dx + b1 + b2), yb1 = cimg::min(_height-1,yb0 + dy + b1 + b2); ox = xb0; oy = yb0; dx = xb1 - xb0 + 1U, dy = yb1 - yb0 + 1U; } // Generate map of source offsets. CImg offsets(dx,dy,1,2); unsigned int *ptr = saved_patches.end(); cimg_forY(saved_patches,i) { const unsigned int yd = *(--ptr), xd = *(--ptr), ys = *(--ptr), xs = *(--ptr); for (int l=-p1; l<=p2; ++l) for (int k=-p1; k<=p2; ++k) { const int xdk = xd+k, ydl = yd+l; if (xdk>=0 && xdk<=width()-1 && ydl>=0 && ydl<=height()-1 && mask(xd+k,yd+l)) { offsets(xd-ox+k,yd-oy+l,0) = xs+k; offsets(xd-ox+k,yd-oy+l,1) = ys+l; } } } unsigned int *ptrx = offsets.data(0,0,0,0), *ptry = offsets.data(0,0,0,1); cimg_forXY(offsets,x,y) { if (!mask(x+ox,y+oy)) { *ptrx = x+ox; *ptry = y+oy; } ++ptrx; ++ptry; } // Generate map of local blending amplitudes. CImg blend_map(dx,dy,1,1,0); CImg_3x3(I,float); cimg_for3XY(offsets,x,y) if (mask(x+ox,y+oy)) { const float iox = cimg::max((float)offsets(_n1x,y,0)-offsets(x,y,0),(float)offsets(x,y,0)-offsets(_p1x,y,0)), ioy = cimg::max((float)offsets(x,_n1y,1)-offsets(x,y,1),(float)offsets(x,y,1)-offsets(x,_p1y,1)), ion = std::sqrt(iox*iox+ioy*ioy); float iin = 0; cimg_forC(*this,c) { cimg_get3x3(*this,x,y,0,c,I,T); const float iix = cimg::max(Inc-Icc,Icc-Ipc), iiy = cimg::max(Icn-Icc,Icc-Icp); iin+=std::log(1+iix*iix+iiy*iiy); } iin/=_spectrum; blend_map(x,y) = ion*iin; } blend_map.threshold(blend_map.max()*_blend_threshold).distance(1); cimg_forXY(blend_map,x,y) blend_map(x,y) = 1/(1+blend_decay*blend_map(x,y)); blend_map.quantize(blend_scales+1,false); float bm, bM = blend_map.max_min(bm); if (bm==bM) blend_map.fill(blend_scales); // Generate blending scales. CImg result = _inpaint_patch_crop(ox,oy,ox+dx-1,oy+dy-1,0); for (unsigned int blend_iter = 1; blend_iter<=blend_scales; ++blend_iter) { const unsigned int _blend_width = blend_iter*blend_size/blend_scales, blend_width = _blend_width?_blend_width+1-(_blend_width%2):0; if (!blend_width) continue; const int b2 = (int)blend_width/2, b1 = (int)blend_width - b2 - 1; CImg blended = _inpaint_patch_crop(ox,oy,ox+dx-1,oy+dy-1,0), cumul(dx,dy,1,1), weights(blend_width,blend_width,1,1,0); const float one = 1; weights.draw_gaussian(b1,b1,blend_width/4.0f,&one); cimg_forXY(cumul,x,y) cumul(x,y) = mask(x+ox,y+oy)?0:1; blended.mul(cumul); unsigned int *ptr = saved_patches.data(); cimg_forY(saved_patches,l) { const int xs = (int)*(ptr++), ys = (int)*(ptr++), xd = (int)*(ptr++), yd = (int)*(ptr++); if (xs-b1<0 || ys-b1<0 || xs+b2>=width() || ys+b2>=height()) { // Blend with partial patch only. const int xs0 = cimg::max(0,xs - b1), ys0 = cimg::max(0,ys - b1), xs1 = cimg::min(width()-1,xs + b2), ys1 = cimg::min(height()-1,ys + b2); _inpaint_patch_crop(xs0,ys0,xs1,ys1,0).move_to(pP); weights._inpaint_patch_crop(xs0-xs+b1,ys0-ys+b1,xs1-xs+b1,ys1-ys+b1,0).move_to(pC); blended.draw_image(xd+xs0-xs-ox,yd+ys0-ys-oy,pP,pC,-1); cumul.draw_image(xd+xs0-xs-ox,yd+ys0-ys-oy,pC,-1); } else { // Blend with full-size patch. _inpaint_patch_crop(xs-b1,ys-b1,xs+b2,ys+b2,0).move_to(pP); blended.draw_image(xd-b1-ox,yd-b1-oy,pP,weights,-1); cumul.draw_image(xd-b1-ox,yd-b1-oy,weights,-1); } } if (is_blend_outer) { cimg_forXY(blended,x,y) if (blend_map(x,y)==blend_iter) { const float cum = cumul(x,y); if (cum>0) cimg_forC(*this,c) result(x,y,c) = (T)(blended(x,y,c)/cum); } } else { cimg_forXY(blended,x,y) if (mask(x+ox,y+oy) && blend_map(x,y)==blend_iter) { const float cum = cumul(x,y); if (cum>0) cimg_forC(*this,c) result(x,y,c) = (T)(blended(x,y,c)/cum); } } } if (is_blend_outer) draw_image(ox,oy,result); else cimg_forXY(result,x,y) if (mask(x+ox,y+oy)) cimg_forC(*this,c) (*this)(x+ox,y+oy,c) = (T)result(x,y,c); } return *this; } // Special crop function that supports more boundary conditions : 0=dirichlet (with value 0), 1=dirichlet (with value 1) and 2=neumann. CImg _inpaint_patch_crop(const int x0, const int y0, const int x1, const int y1, const unsigned int boundary=0) const { const int nx0 = x0 res(1U + nx1 - nx0,1U + ny1 - ny0,1,_spectrum); if (nx0<0 || nx1>=width() || ny0<0 || ny1>=height()) { if (boundary>=2) cimg_forXYZC(res,x,y,z,c) res(x,y,z,c) = _atXY(nx0+x,ny0+y,z,c); else res.fill(boundary).draw_image(-nx0,-ny0,*this); } else res.draw_image(-nx0,-ny0,*this); return res; } template CImg get_inpaint_patch(const CImg& mask, const unsigned int patch_size=11, const unsigned int lookup_size=22, const unsigned int lookup_increment=1, const unsigned int blend_size=0, const float blend_threshold=0.5, const float blend_decay=0.02f, const unsigned int blend_scales=10, const bool is_blend_outer=false) const { return (+*this).inpaint_patch(mask,patch_size,lookup_size,lookup_increment, blend_size,blend_threshold,blend_decay,blend_scales,is_blend_outer); } CImg& mark() { unsigned int siz = _width; if (siz<2) assign(siz=2,1,1,1,0); else if (_data[siz-2]) resize(++siz,1,1,1,0); T &last = _data[siz-1]; if (last::max()) ++last; return *this; } CImg get_mark() const { return (+*this).mark(); } CImg& copymark() { return get_copymark().move_to(*this); } CImg get_copymark() const { if (is_empty()) return CImg::string("~"); CImg res = get_resize(_width+1,1,1,1,0); const char *const ext = cimg::split_filename(_data); if (*ext) { const int l = (int)(ext - _data - 1); if (l>0) { if (_data[l-1]=='~') return +*this; std::memcpy(res._data,_data,l); } res[l] = '~'; res[l+1] = '.'; std::memcpy(res._data+l+2,ext,_data+_width-ext); } else { const unsigned int l = (int)(ext - _data); if (_data[l-1]=='~' || (l>1 && _data[l-1]==']' && _data[l-2]=='~')) return +*this; std::memcpy(res._data,_data,l); res[l] = '~'; if (ext>_data && *(ext-1)==']') cimg::swap(res[l],res[l-1]); std::memcpy(res._data+l+1,ext,_data+_width-ext); } return res; } //! Display informations about an image data (special formatting for G'MIC). const CImg& gmic_print(const char *const title, const bool is_debug, const bool is_valid) const { CImg st; if (is_valid && !is_empty()) st = get_stats(); const unsigned long siz = size(), msiz = _is_shared?0:siz*sizeof(T), siz1 = siz-1, mdisp = msiz<8*1024?0:(msiz<8*1024*1024?1:2), wh = _width*_height, whd = _width*_height*_depth, w1 = _width-1, wh1 = _width*_height-1, whd1 = _width*_height*_depth-1; std::fprintf(cimg::output(),"%s%s%s%s:\n %ssize%s = (%u,%u,%u,%u) [%lu %s].\n %sdata%s = %s", cimg::t_magenta,cimg::t_bold,title,cimg::t_normal, cimg::t_bold,cimg::t_normal,_width,_height,_depth,_spectrum, mdisp==0?msiz:(mdisp==1?(msiz>>10):(msiz>>20)), mdisp==0?"b":(mdisp==1?"Kio":"Mio"), cimg::t_bold,cimg::t_normal, is_debug?"":"("); if (is_debug) std::fprintf(cimg::output(),"%p = (",_data); if (is_valid) { if (is_empty()) std::fprintf(cimg::output(),") [%s].\n", pixel_type()); else { cimg_foroff(*this,off) { std::fprintf(cimg::output(),cimg::type::format(),cimg::type::format(_data[off])); if (off!=siz1) std::fprintf(cimg::output(),"%s", off%whd==whd1?"^": off%wh==wh1?"\\": off%_width==w1?";":","); if (off==11 && siz>24) { off = siz1-12; std::fprintf(cimg::output(),"... "); } } std::fprintf(cimg::output(),") [%s%s].\n %smin%s = %g, %smax%s = %g, %smean%s = %g, " "%sstd%s = %g, %scoords_min%s = (%u,%u,%u,%u), " "%scoords_max%s = (%u,%u,%u,%u).\n", _is_shared?"shared ":"",pixel_type(), cimg::t_bold,cimg::t_normal,st[0], cimg::t_bold,cimg::t_normal,st[1], cimg::t_bold,cimg::t_normal,st[2], cimg::t_bold,cimg::t_normal,std::sqrt(st[3]), cimg::t_bold,cimg::t_normal,(int)st[4],(int)st[5],(int)st[6],(int)st[7], cimg::t_bold,cimg::t_normal,(int)st[8],(int)st[9],(int)st[10],(int)st[11]); } } else std::fprintf(cimg::output(),"%s%sinvalid pointer%s) [shared %s].\n", cimg::t_red,cimg::t_bold,cimg::t_normal, pixel_type()); std::fflush(cimg::output()); return *this; } //--------------- End of CImg plug-in ---------------------------- #else // #ifdef cimg_plugin #include "gmic.h" #if defined(gmic_float) #include "gmic_def.h" #else // #ifdef gmic_float extern char data_gmic_def[]; extern unsigned int size_data_gmic_def; #endif // #ifdef gmic_float using namespace cimg_library; #undef min #undef max // Define some useful variables and macros. //------------------------------------------ // Ellipsize a string. #define gmic_ellipsize(s,l) { if (l>=5 && s[l-2]) s[l-4] = s[l-3] = s[l-2] = '.'; } // Return current selection as a selection string. #define gmic_selection selection2string(selection,images_names,true).data() // Return image argument as a shared or non-shared copy of one existing image. inline bool _gmic_image_arg(const unsigned int ind, const CImg& selection) { cimg_forY(selection,l) if (selection[l]==ind) return true; return false; } #define gmic_image_arg(ind) gmic_check(_gmic_image_arg(ind,selection)?images[ind]:\ images[ind].get_shared()) // Code for managing argument substitutions from a command. inline const char *gmic_ellipsize_arg(const char *const argument, CImg& argument_text) { if (argument_text) return argument_text; const unsigned int l = std::strlen(argument); if (l>=72) { argument_text.assign(72); std::memcpy(argument_text.data(),argument,32); std::memcpy(argument_text.data()+32," ... ",5); std::memcpy(argument_text.data()+37,argument+l-34,35); // Last '\0' is included. } return argument_text?argument_text:argument; } #define gmic_substitute_args() { \ const char *const argument0 = argument; \ substitute_item(argument,images,images_names,variables_sizes).move_to(_argument); \ argument_text = gmic_ellipsize_arg(argument=argument_text=_argument,_argument_text); \ if (is_debug) { \ if (std::strcmp(argument,argument0)) debug(images,"Command '%s': arguments = '%s' -> '%s'.", \ command,argument0,argument); \ else debug(images,"Command '%s': arguments = '%s'.", \ command,argument0); \ }} // Code for having 'get' or 'non-get' versions of G'MIC commands. #define gmic_apply(instance,function) { \ unsigned int posi = 0; \ const bool is_inlist = images.contains(gmic_check(instance),posi); \ if (is_get_version) { \ instance.get_##function.move_to(images); \ if (is_inlist) images_names[posi].get_copymark().mark().move_to(images_names); \ else CImg::string("[unnamed]").move_to(images_names); \ } else { instance.function; images_names[posi].mark(); } \ } // Code for simple commands that has no arguments and act on images. #define gmic_simple_item(option,function,description) \ if (!std::strcmp(option,command)) { \ print(images,description,gmic_selection); \ cimg_forY(selection,l) gmic_apply(images[selection[l]],function()); \ is_released = false; continue; \ } // Code for the type cast command. #define gmic_cast(pixel_type,st_type) \ if (!std::strcmp(argument,#pixel_type)) { \ if (std::strcmp(st_type,cimg::type::string())) { \ if (!is_default_type) { --position; break; } \ else { \ print(images,"Set pixel data type to '%s'.",st_type); \ CImgList cast_images; \ images.move_to(cast_images); \ is_default_type = false; \ is_released = false; \ _parse_##pixel_type(commands_line,++position,cast_images,images_names,variables_sizes); \ is_default_type = true; \ cast_images.move_to(images); \ } \ } else { print(images,"Set pixel data type to '%s'.",st_type); ++position; } \ continue; \ } // Code for G'MIC arithmetic commands. #define gmic_arithmetic_item(command_name,\ function1,description1,arg1_1,arg1_2,arg1_3,value_type1, \ function2,description2,arg2_1,arg2_2, \ description3,arg3_1,arg3_2, \ description4) \ if (!std::strcmp(command_name,command)) { \ gmic_substitute_args(); \ CImg ind; \ double value = 0; \ char sep = 0; \ *indices = *formula = 0; \ if (std::sscanf(argument,"%lf%c",&value,&end)==1 || \ (std::sscanf(argument,"%lf%c%c",&value,&sep,&end)==2 && sep=='%')) { \ const char *const ssep = sep=='%'?"%":""; \ print(images,description1 ".",arg1_1,arg1_2,arg1_3); \ cimg_forY(selection,l) { \ CImg& img = gmic_check(images[selection[l]]); \ double nvalue = value; \ if (sep=='%' && img) { \ double vmin = 0, vmax = (double)img.max_min(vmin); \ nvalue = vmin + (vmax-vmin)*value/100; \ } \ if (is_get_version) { \ images_names.insert(images_names[selection[l]].get_copymark().mark()); \ images.insert(img); images.back().function1((value_type1)nvalue); \ } else { \ images_names[selection[l]].mark(); \ img.function1((value_type1)nvalue); \ } \ } \ ++position; \ } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && \ sep==']' \ && (ind=selection2cimg(indices,images.size(),images_names,command_name,\ true,false,CImg::empty())). \ height()==1) { \ print(images,description2 ".",arg2_1,arg2_2); \ const CImg img0 = gmic_image_arg(*ind); \ cimg_forY(selection,l) { \ CImg& img = gmic_check(images[selection[l]]); \ if (is_get_version) { \ images_names.insert(images_names[selection[l]].get_copymark().mark()); \ images.insert(img); images.back().function2(img0); \ } else { \ images_names[selection[l]].mark(); img.function2(img0); \ } \ } \ ++position; \ } else if (std::sscanf(argument,"'%4095[^']%c%c",formula,&sep,&end)==2 && sep=='\'') { \ gmic_strreplace(formula); print(images,description3 ".",arg3_1,arg3_2); \ cimg_forY(selection,l) { \ CImg& img = gmic_check(images[selection[l]]); \ if (is_get_version) { \ images_names.insert(images_names[selection[l]].get_copymark().mark()); \ images.insert(img); images.back().function2((const char*)formula); \ } else { \ images_names[selection[l]].mark(); img.function2((const char*)formula); \ } \ } \ ++position; \ } else { \ print(images,description4 ".",gmic_selection); \ if (images && selection) { \ if (is_get_version) { \ CImg img0 = CImg(gmic_check(images[selection[0]]),false); \ for (unsigned int l = 1; l<(unsigned int)selection.height(); ++l) \ img0.function2(gmic_check(images[selection[l]])); \ images_names.insert(images_names[selection[0]].get_copymark().mark()); \ img0.move_to(images); \ } else if (selection.height()>=2) { \ const unsigned int ind0 = selection[0]; \ CImg& img0 = gmic_check(images[ind0]); \ for (unsigned int l = 1; l<(unsigned int)selection.height(); ++l) \ img0.function2(gmic_check(images[selection[l]])); \ images_names[ind0].mark(); \ remove_images(images,images_names,selection,1,selection.height()-1); \ }}} is_released = false; continue; \ } // Return a 8-bits hashcode from a string. //---------------------------------------- inline unsigned int gmic_hashcode(const char *const str, const bool is_variable) { if (!str) return 0; unsigned int hash = 0; if (is_variable) { if (*str=='_') return 255; for (const char *s = str; *s; ++s) hash+=*s; return hash%255; } for (const char *s = str; *s; ++s) hash+=*s; return hash&255; } // Tells if the the implementation of a G'MIC command contains arguments. //------------------------------------------------------------------------ inline bool gmic_command_has_arguments(const char *const command) { if (!command || !*command) return false; for (const char *s = std::strchr(command,'$'); s; s = std::strchr(s,'$')) { const char c = *(++s); if (c=='#' || c=='*' || c=='=' || (c>'0' && c<='9') || (c=='-' && *(s+1)>'0' && *(s+1)<='9') || (c=='{' && (*(s+1)=='^' || (*(s+1)>'0' && *(s+1)<='9') || (*(s+1)=='-' && *(s+2)>'0' && *(s+2)<='9')))) return true; } return false; } // Compute the basename of an image name. //--------------------------------------- inline const char* gmic_basename(const char *const s) { if (!s) return s; const unsigned int l = (unsigned int)std::strlen(s); if (*s=='[' && (s[l-1]==']' || s[l-1]=='.')) return s; const char *p = 0; for (const char *np = s; np>=s && (p=np); np = std::strchr(np,cimg_file_separator)+1) {} return p; } // Thread structure and routine for command '-parallel'. //------------------------------------------------------- template struct st_gmic_parallel { gmic gmic_instance; CImgList *images; CImgList *images_names, commands_line; unsigned int variables_sizes[256]; gmic_exception exception; }; template #if cimg_OS!=2 static void *gmic_parallel(void *arg) #else static DWORD WINAPI gmic_parallel(void *arg) #endif { st_gmic_parallel &st = *(st_gmic_parallel*)arg; unsigned int pos = 0; try { st.gmic_instance._parse(st.commands_line,pos,*st.images,*st.images_names,st.variables_sizes); } catch (gmic_exception &e) { st.exception._command.assign(e._command); st.exception._message.assign(e._message); } return 0; } // Return Levenshtein distance between two strings. // (adapted from http://rosettacode.org/wiki/Levenshtein_distance#C) //------------------------------------------------------------------ static int _gmic_levenshtein(const char *const s, const char *const t, CImg& d, const int i, const int j) { const int ls = d.width()-1, lt = d.height()-1; if (d(i,j)>=0) return d(i,j); int x; if (i==ls) x = lt - j; else if (j==lt) x = ls - i; else if (s[i]==t[j]) x = _gmic_levenshtein(s,t,d,i+1,j+1); else { x = _gmic_levenshtein(s,t,d,i+1,j+1); int y; if ((y=_gmic_levenshtein(s,t,d,i,j+1)) d(1+ls,1+lt,1,1,-1); return _gmic_levenshtein(ns,nt,d,0,0); } // Constructors / destructors. //---------------------------- #if defined(gmic_float) || !defined(gmic_split_compilation) gmic::gmic() {} gmic::~gmic() { debug("%sEnd G'MIC instance.%s\n",cimg::t_bold,cimg::t_normal); } gmic::gmic(const char *const commands_line, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel) { CImgList images; CImgList images_names; _gmic(commands_line,images,images_names,custom_commands,include_default_commands, p_progress,p_cancel); } // Get current scope as a string. //------------------------------- CImg gmic::scope2string(const bool is_last_slash) const { CImgList res; const unsigned int siz = (unsigned int)scope.size(); if (siz<=8) res.assign(scope); else { res.assign(8); res[0].assign(scope[0]); res[1].assign(scope[1]); res[2].assign(scope[2]); res[3].assign("..",3); res[4].assign(scope[siz-4]); res[5].assign(scope[siz-3]); res[6].assign(scope[siz-2]); res[7].assign(scope[siz-1]); } cimglist_for(res,l) res[l].back() = '/'; if (!is_last_slash) --(res.back()._width); CImg::vector(0).move_to(res); return res>'x'; } CImg gmic::scope2string(const CImg& scope_selection, const bool is_last_slash) const { const CImg def_scope("./",3); if (!scope_selection) return def_scope; CImgList res(scope_selection.height()); cimglist_for(res,l) res[l].assign(scope[scope_selection(l)]).back() = '/'; if (!is_last_slash) --(res.back()._width); CImg::vector(0).move_to(res); return res>'x'; } // Parse items from a G'MIC command line. //--------------------------------------- CImgList gmic::commands_line_to_CImgList(const char *const commands_line) { if (!commands_line || !*commands_line) return CImgList(); bool is_dquoted = false; const char *ptrs0 = commands_line; while (*ptrs0==' ') ++ptrs0; // Remove leading spaces to first item. CImg item(std::strlen(ptrs0)+1); CImgList items; char *ptrd = item.data(), c = 0; for (const char *ptrs = ptrs0; *ptrs; ++ptrs) { c = *ptrs; if (c=='\\') { // If escaped character. c = *(++ptrs); if (!c) { c = '\\'; --ptrs; } else if (c=='$') c = _dollar; else if (c=='{') c = _lbrace; else if (c=='}') c = _rbrace; else if (c==',') c = _comma; else if (c=='\"') c = _dquote; else if (c=='@') c = _arobace; else if (c==' ') c = ' '; else *(ptrd++) = '\\'; *(ptrd++) = c; } else if (is_dquoted) { // If non-escaped character inside string. if (c=='\"') is_dquoted = false; else *(ptrd++) = c=='$'?_dollar:c=='{'?_lbrace:c=='}'?_rbrace: c==','?_comma:c=='@'?_arobace:c; } else { // Non-escaped character outside string. if (c=='\"') is_dquoted = true; else if (c==' ') { *ptrd = 0; CImg(item.data(),ptrd - item.data() + 1).move_to(items); ptrd = item.data(); ++ptrs; while (*ptrs==' ') ++ptrs; ptrs0 = ptrs--; // Remove trailing spaces to next item. } else *(ptrd++) = c; } } if (is_dquoted) error("Invalid command line: Double quotes are not closed, in expression '%s'.", commands_line); if (ptrd!=item.data() && c!=' ') { *ptrd = 0; CImg(item.data(),ptrd - item.data() + 1).move_to(items); } if (is_debug) { debug("Decompose command line into %u items: ",items.size()); cimglist_for(items,l) debug(" item[%u] = '%s'",l,items[l].data()); } return items; } // Print log message. //------------------- gmic& gmic::print(const char *format, ...) { if (verbosity<0 && !is_debug) return *this; va_list ap; va_start(ap,format); CImg message(16384); cimg_vsnprintf(message.fill(0),message.width(),format,ap); gmic_ellipsize(message,message.width()); va_end(ap); gmic_strreplace(message); if (*message!='\r') for (unsigned int i = 0; i::string(message).move_to(status); if (verbosity>=0 || is_debug) { if (*message!='\r') for (unsigned int i = 0; i%s ", cimg::t_green,scope2string().data()); for (char *s = message; *s; ++s) { char c = *s; if (c<' ') switch (c) { case _dollar : std::fprintf(cimg::output(),"\\$"); break; case _lbrace : std::fprintf(cimg::output(),"\\{"); break; case _rbrace : std::fprintf(cimg::output(),"\\}"); break; case _comma : std::fprintf(cimg::output(),"\\,"); break; case _dquote : std::fprintf(cimg::output(),"\\\""); break; case _arobace : std::fprintf(cimg::output(),"\\@"); break; default : std::fputc(c,cimg::output()); } else std::fputc(c,cimg::output()); } std::fprintf(cimg::output(), "%s", cimg::t_normal); std::fflush(cimg::output()); return *this; } // Add custom commands from a char* buffer. //------------------------------------------ gmic& gmic::add_commands(const char *const data_commands, CImgList (&commands_names)[256], CImgList (&commands)[256], CImgList (&commands_has_arguments)[256]) { if (!data_commands || !*data_commands) return *this; char mac[256] = { 0 }, com[256*1024] = { 0 }, line[256*1024] = { 0 }; unsigned int pos[256] = { 0 }; *mac = *com = *line = 0; bool is_last_slash = false, _is_last_slash = false; int ind = -1; char sep = 0; for (const char *data = data_commands; *data; is_last_slash = _is_last_slash) { // Read new line. char *_line = line; while (*data!='\n' && *data && _line=line) --linee; *(linee+1) = 0; char *lines = line; while (*lines==' ') ++lines; // Remove useless leading spaces. // Check if last character is a '\'... _is_last_slash = false; for (_line = linee; *_line=='\\' && _line>=lines; --_line) _is_last_slash = !_is_last_slash; if (_is_last_slash) *(linee--) = 0; // .. and remove it if necessary. if (!*lines) continue; // Empty line found. *mac = *com = 0; if (!is_last_slash && std::strchr(lines,':') && // Check for a command definition. std::sscanf(lines,"%255[a-zA-Z0-9_] %c %262143[^\n]",mac,&sep,com)>=2 && (*lines<'0' || *lines>'9') && sep==':') { ind = gmic_hashcode(mac,false); CImg::string(mac).move_to(commands_names[ind],pos[ind]); CImg body = CImg::string(com); CImg::vector((char)gmic_command_has_arguments(body)). move_to(commands_has_arguments[ind],pos[ind]); body.move_to(commands[ind],pos[ind]++); } else { // Continuation of a previous line. if (ind<0) error("Command '-command': Syntax error in expression '%s'.",lines); const unsigned int p = pos[ind] - 1; if (!is_last_slash) commands[ind][p].back() = ' '; else --(commands[ind][p]._width); const CImg body = CImg(lines,linee - lines + 2); commands_has_arguments[ind](p,0) |= (char)gmic_command_has_arguments(body); commands[ind][p].append(body,'x'); } } return *this; } // Add commands from a file. //--------------------------- gmic& gmic::add_commands(std::FILE *const file, CImgList (&commands_names)[256], CImgList (&commands)[256], CImgList (&commands_has_arguments)[256]) { if (!file) return *this; std::fseek(file,0,SEEK_END); const long siz = std::ftell(file); std::rewind(file); if (siz>0) { CImg buffer(siz+1); if (std::fread(buffer.data(),sizeof(char),siz,file)) { buffer[siz] = 0; try { add_commands(buffer.data(),commands_names,commands,commands_has_arguments); } catch (...) { std::fclose(file); throw; } } } return *this; } // Return subset indices from a selection string. //----------------------------------------------- CImg gmic::selection2cimg(const char *const string, const unsigned int indice_max, const CImgList& names, const char *const command, const bool is_selection, const bool allow_new_name, CImg &new_name) { if (string && !*string) return CImg(); // Empty selection. if (!string || (*string=='^' && !string[1])) { // Whole selection. if (indice_max) return CImg::sequence(indice_max,0,indice_max-1); else return CImg(); } const char *const stype = is_selection?"selection":"subset"; const int ctypel = is_selection?'[':'{', ctyper = is_selection?']':'}'; CImg is_selected(1,indice_max,1,1,false); const bool is_inverse = *string=='^'; const char *it = string + (is_inverse?1:0); for (bool stopflag = false; !stopflag; ) { char name[256]; CImg item; float ind0 = 0, ind1 = 0, step = 1; int iind0 = 0, iind1 = 0; bool is_label = false; char sep = 0; const char *const it_comma = std::strchr(it,','); if (it_comma) { item.assign(it,it_comma-it+1); item.back() = 0; it = it_comma + 1; } else { CImg::string(it).move_to(item); stopflag = true; } char end, *const it_colon = std::strchr(item,':'); if (it_colon) { *it_colon = 0; if (std::sscanf(it_colon+1,"%f%c",&step,&end)!=1 || step<=0) error("Command '%s': Invalid %s %c%s%c (syntax error after colon ':').", command,stype,ctypel,string,ctyper); } if (std::sscanf(item,"%f%c",&ind0,&end)==1) { // Single indice. iind1 = iind0 = (int)cimg::round(ind0); } else if (std::sscanf(item,"%f-%f%c",&ind0,&ind1,&end)==2) { // Sequence between 2 indices. iind0 = (int)cimg::round(ind0); iind1 = (int)cimg::round(ind1); } else if (std::sscanf(item,"%255[a-zA-Z0-9_]%c",name,&end)==1 && // Label. (*name<'0' || *name>'9')) { cimglist_for(names,l) if (names[l] && !std::strcmp(names[l],name)) { is_selected(l) = true; is_label = true; } if (!is_label) { if (allow_new_name && !new_name) { iind0 = iind1 = -1; CImg::string(name).move_to(new_name); } else error("Command '%s': Invalid %s %c%s%c (undefined label '%s').", command,stype,ctypel,string,ctyper,name); } } else if (std::sscanf(item,"%f%c%c",&ind0,&sep,&end)==2 && sep=='%') { // Single percent. iind1 = iind0 = (int)cimg::round(ind0*((int)indice_max-1)/100)-(ind0<0?1:0); } else if (std::sscanf(item,"%f%%-%f%c%c",&ind0,&ind1,&sep,&end)==3 && sep=='%') { // Sequence between 2 percents. iind0 = (int)cimg::round(ind0*((int)indice_max-1)/100)-(ind0<0?1:0); iind1 = (int)cimg::round(ind1*((int)indice_max-1)/100)-(ind1<0?1:0); } else if (std::sscanf(item,"%f%%-%f%c",&ind0,&ind1,&end)==2) { // Sequence between a percent and an indice. iind0 = (int)cimg::round(ind0*((int)indice_max-1)/100)-(ind0<0?1:0);; iind1 = (int)cimg::round(ind1); } else if (std::sscanf(item,"%f-%f%c%c",&ind0,&ind1,&sep,&end)==3 && sep=='%') { // Sequence between an indice and a percent. iind0 = (int)cimg::round(ind0); iind1 = (int)cimg::round(ind1*((int)indice_max-1)/100)-(ind1<0?1:0);; } else error("Command '%s': Invalid %s %c%s%c.", command,stype,ctypel,string,ctyper); if (!indice_max) error("Command '%s': Invalid %s %c%s%c (no data available).", command,stype,ctypel,string,ctyper); if (!is_label) { int uind0 = iind0<0?iind0+indice_max:iind0, uind1 = iind1<0?iind1+indice_max:iind1; if (uind0>uind1) { cimg::swap(uind0,uind1); cimg::swap(iind0,iind1); } if (uind0<0 || uind0>=(int)indice_max) error("Command '%s': Invalid %s %c%s%c (contains starting indice '%d', " "not in range -%u..%u).", command,stype,ctypel,string,ctyper,iind0,indice_max,indice_max-1); if (uind1<0 || uind1>=(int)indice_max) error("Command '%s': Invalid %s %c%s%c (contains ending indice '%d', " "not in range -%u..%u).", command,stype,ctypel,string,ctyper,iind1,indice_max,indice_max-1); for (int l = uind0; l<=uind1; l+=step) is_selected[l] = true; } } unsigned int indice = 0; cimg_for(is_selected,p,bool) if (*p) ++indice; CImg selection(1,is_inverse?indice_max-indice:indice); indice = 0; if (is_inverse) { cimg_forY(is_selected,l) if (!is_selected[l]) selection[indice++] = l; } else cimg_forY(is_selected,l) if (is_selected[l]) selection[indice++] = l; return selection; } // Return selection or filename strings from a set of indices. //------------------------------------------------------------ CImg gmic::selection2string(const CImg& selection, const CImgList& images_names, const bool display_indices) const { CImg res(1024); if (display_indices) { switch (selection.height()) { case 0: cimg_snprintf(res.data(),res.width()," []"); break; case 1: cimg_snprintf(res.data(),res.width()," [%u]", selection[0]); break; case 2: cimg_snprintf(res.data(),res.width(),"s [%u,%u]", selection[0],selection[1]); break; case 3: cimg_snprintf(res.data(),res.width(),"s [%u,%u,%u]", selection[0],selection[1],selection[2]); break; case 4: cimg_snprintf(res.data(),res.width(),"s [%u,%u,%u,%u]", selection[0],selection[1],selection[2],selection[3]); break; default: cimg_snprintf(res.data(),res.width(),"s [%u,..,%u]", selection[0],selection.back()); } return res; } switch (selection.height()) { case 0: *res = 0; break; case 1: cimg_snprintf(res.data(),res.width(),"%s%s", gmic_basename(images_names[selection[0]].data()), images_names[selection[0]].back()?"*":""); break; case 2: cimg_snprintf(res.data(),res.width(),"%s%s, %s%s", gmic_basename(images_names[selection[0]].data()), images_names[selection[0]].back()?"*":"", gmic_basename(images_names[selection[1]].data()), images_names[selection[1]].back()?"*":""); break; case 3: cimg_snprintf(res.data(),res.width(),"%s%s, %s%s, %s%s", gmic_basename(images_names[selection[0]].data()), images_names[selection[0]].back()?"*":"", gmic_basename(images_names[selection[1]].data()), images_names[selection[1]].back()?"*":"", gmic_basename(images_names[selection[2]].data()), images_names[selection[2]].back()?"*":""); break; case 4: cimg_snprintf(res.data(),res.width(),"%s%s, %s%s, %s%s, %s%s", gmic_basename(images_names[selection[0]].data()), images_names[selection[0]].back()?"*":"", gmic_basename(images_names[selection[1]].data()), images_names[selection[1]].back()?"*":"", gmic_basename(images_names[selection[2]].data()), images_names[selection[2]].back()?"*":"", gmic_basename(images_names[selection[3]].data()), images_names[selection[3]].back()?"*":""); break; default: cimg_snprintf(res.data(),res.width(),"%s%s, .., %s%s", gmic_basename(images_names[selection[0]].data()), images_names[selection[0]].back()?"*":"", gmic_basename(images_names[selection.back()].data()), images_names[selection.back()].back()?"*":""); } return res; } #endif // #if defined(gmic_float) || !defined(gmic_split_compilation) // Print log message. //------------------- template gmic& gmic::print(const CImgList& list, const char *format, ...) { if (verbosity<0 && !is_debug) return *this; va_list ap; va_start(ap,format); CImg message(16384); cimg_vsnprintf(message.fill(0),message.width(),format,ap); gmic_ellipsize(message,message.width()); va_end(ap); gmic_strreplace(message); if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::print(const CImgList& list, const CImg& scope_selection, const char *format, ...) { if (verbosity<0 && !is_debug) return *this; va_list ap; va_start(ap,format); CImg message(16384); cimg_vsnprintf(message.fill(0),message.width(),format,ap); gmic_ellipsize(message,message.width()); va_end(ap); gmic_strreplace(message); if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::warn(const CImgList& list, const char *format, ...) { if (verbosity<0 && !is_debug) return *this; va_list ap; va_start(ap,format); char message[1024+128] = { 0 }; cimg_snprintf(message,128,"*** Warning in %s *** ",scope2string().data()); cimg_vsnprintf(message + std::strlen(message),1024,format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); gmic_strreplace(message); if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::warn(const CImgList& list, const CImg& scope_selection, const char *format, ...) { if (verbosity<0 && !is_debug) return *this; va_list ap; va_start(ap,format); char message[1024+128] = { 0 }; cimg_snprintf(message,128,"*** Warning in %s *** ",scope2string(scope_selection).data()); cimg_vsnprintf(message + std::strlen(message),1024,format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); gmic_strreplace(message); if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::error(const CImgList& list, const char *const format, ...) { va_list ap; va_start(ap,format); char message[1024+128] = { 0 }; cimg_snprintf(message,128,"*** Error in %s *** ",scope2string().data()); cimg_vsnprintf(message + std::strlen(message),1024,format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); gmic_strreplace(message); CImg::string(message).move_to(status); if (verbosity>=0 || is_debug) { if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::error(const char *const command, const CImgList& list, const char *const format, ...) { va_list ap; va_start(ap,format); char message[1024+128] = { 0 }; cimg_snprintf(message,128,"*** Error in %s *** ",scope2string().data()); cimg_vsnprintf(message + std::strlen(message),1024,format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); gmic_strreplace(message); CImg::string(message).move_to(status); if (verbosity>=0 || is_debug) { if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::error(const CImgList& list, const CImg& scope_selection, const char *const format, ...) { va_list ap; va_start(ap,format); char message[1024+128] = { 0 }; cimg_snprintf(message,128,"*** Error in %s *** ",scope2string(scope_selection).data()); cimg_vsnprintf(message + std::strlen(message),1024,format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); gmic_strreplace(message); CImg::string(message).move_to(status); if (verbosity>=0 || is_debug) { if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::_arg_error(const CImgList& list, const char *const command, const char *const argument) { char message[1024] = { 0 }; cimg_snprintf(message,sizeof(message), "*** Error in %s *** Command '-%s': Invalid argument '%s'.", scope2string().data(),command,argument); gmic_ellipsize(message,sizeof(message)); gmic_strreplace(message); CImg::string(message).move_to(status); if (verbosity>=0 || is_debug) { if (*message!='\r') for (unsigned int i = 0; i gmic& gmic::debug(const CImgList& list, const char *format, ...) { if (!is_debug) return *this; va_list ap; va_start(ap,format); char message[1024] = { 0 }; cimg_vsnprintf(message,sizeof(message),format,ap); gmic_ellipsize(message,sizeof(message)); va_end(ap); if (*message!='\r') for (unsigned int i = 0; i-%u%s ", cimg::t_green,list.size(),scope2string().data()); for (char *s = message; *s; ++s) { char c = *s; if (c<' ') { switch (c) { case _dollar : std::fprintf(cimg::output(),"\\$"); break; case _lbrace : std::fprintf(cimg::output(),"\\{"); break; case _rbrace : std::fprintf(cimg::output(),"\\}"); break; case _comma : std::fprintf(cimg::output(),"\\,"); break; case _dquote : std::fprintf(cimg::output(),"\\\""); break; case _arobace : std::fprintf(cimg::output(),"\\@"); break; default : std::fputc(c,cimg::output()); } } else std::fputc(c,cimg::output()); } std::fprintf(cimg::output(), "%s", cimg::t_normal); std::fflush(cimg::output()); return *this; } // Check if a shared image of the image list is safe or not. //---------------------------------------------------------- template inline bool gmic_is_valid_pointer(const T *const ptr) { #if cimg_OS==1 const int result = access((const char *)ptr,F_OK); if (result==-1 && errno==EFAULT) return false; #elif cimg_OS==2 return !IsBadReadPtr((void*)ptr,1); #endif return true; } template CImg& gmic::check_image(const CImgList& list, CImg& img) { check_image(list,(const CImg&)img); return img; } template const CImg& gmic::check_image(const CImgList& list, const CImg& img) { if (!img.is_shared() || gmic_is_valid_pointer(img.data())) return img; if (is_debug) error(list,"Image list contains an invalid shared image (%p,%d,%d,%d,%d) " "(references a deallocated buffer).", img.data(),img.width(),img.height(),img.depth(),img.spectrum()); else error(list,"Image list contains an invalid shared image (%d,%d,%d,%d) " "(references a deallocated buffer).", img.width(),img.height(),img.depth(),img.spectrum()); return img; } #define gmic_check(img) check_image(images,img) // Remove list of images in a selection. //--------------------------------------- template gmic& gmic::remove_images(CImgList &images, CImgList &images_names, const CImg& selection, const unsigned int start, const unsigned int end) { if (start==0 && end==(unsigned int)selection.height()-1 && selection.height()==images.width()) { images.assign(); images_names.assign(); } else for (int l = (int)end; l>=(int)start; ) { unsigned int eind = selection[l--], ind = eind; while (l>=(int)start && selection[l]==ind-1) ind = selection[l--]; images.remove(ind,eind); images_names.remove(ind,eind); } return *this; } // Template constructors. //----------------------- template gmic::gmic(const int argc, const char *const *const argv, CImgList& images, CImgList& images_names, const char *custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel) { CImgList items; for (int l = 1; l(1,1,1,1,'\"').move_to(items); CImg(argv[l],std::strlen(argv[l])).move_to(items); CImg::string("\"").move_to(items); } else CImg::string(argv[l]).move_to(items); if (l commands_line(items>'x'); _gmic(commands_line.data(),images,images_names,custom_commands,include_default_commands, p_progress,p_cancel); } template gmic::gmic(const char *const commands_line, CImgList& images, CImgList& images_names, const char *custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel) { _gmic(commands_line,images,images_names,custom_commands,include_default_commands, p_progress,p_cancel); } template void gmic::_gmic(const char *const commands_line, CImgList& images, CImgList& images_names, const char *custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel) { // Initialize class variables and default G'MIC environment. std::setlocale(LC_NUMERIC,"C"); cimg::srand(); verbosity = 0; nb_carriages = 0; is_released = true; is_debug = false; is_start = true; is_quit = false; is_return = false; is_double3d = true; is_default_type = true; check_elif = false; reference_time = cimg::time(); background3d.assign(1,2,1,3).fill(32,64,32,116,64,96).resize(1,256,1,3,3); render3d = 4; renderd3d = -1; focale3d = 700; light3d.assign(); light3d_x = light3d_y = 0; light3d_z = -5e8; specular_lightness3d = 0.15f; specular_shininess3d = 0.8f; if (p_progress) progress = p_progress; else { _progress = -1; progress = &_progress; } if (p_cancel) cancel = p_cancel; else { _cancel = 0; cancel = &_cancel; } for (unsigned int l = 0; l<256; ++l) { commands_names[l].assign(); commands[l].assign(); commands_has_arguments[l].assign(); } if (include_default_commands) add_commands(data_gmic_def,commands_names,commands,commands_has_arguments); add_commands(custom_commands,commands_names,commands,commands_has_arguments); for (unsigned int l = 0; l<256; ++l) { variables[l].assign(); variables_names[l].assign(); } #if gmic_is_beta==1 const char *const s_gmic_is_beta = "_gmic_is_beta"; const unsigned int hashcode = gmic_hashcode(s_gmic_is_beta,true); CImg::string(s_gmic_is_beta).move_to(variables_names[hashcode]); CImg::string("1").move_to(variables[hashcode]); #endif // #if gmic_is_beta==1 // Seek for a '-debug' option on the commands line. const CImgList items = commands_line_to_CImgList(commands_line); cimglist_for(items,l) if (!std::strcmp("-debug",items[l].data())) { is_debug = true; break; } if (is_debug) { debug(images,"%sStart G'MIC instance, in debug mode.%s",cimg::t_bold,cimg::t_normal); debug(images,"Initial command line: '%s'.",commands_line); is_start = false; } if (is_debug) commands_line_to_CImgList(commands_line); // Do it twice, when debug enabled. // Launch the G'MIC interpreter. try { parse(items,images,images_names); } catch (gmic_exception &e) { print(images,"Abort G'MIC instance.\n"); throw e; } } // Print infos on selected images. //--------------------------------- template gmic& gmic::print_images(const CImgList& images, const CImgList& images_names, const CImg& selection, const bool is_header) { if (!images || !images_names || !selection) { if (is_header) print(images,"Print image []."); return *this; } char title[256] = { 0 }; if (is_header) print(images,"Print image%s.\n", gmic_selection); if (verbosity>=0 || is_debug) cimg_forY(selection,l) { const unsigned int ind = selection[l]; const CImg& img = images[ind]; bool is_valid = true; int _verbosity = verbosity; bool _is_debug = is_debug; verbosity = -1; is_debug = false; try { gmic_check(img); } catch (gmic_exception&) { is_valid = false; } verbosity = _verbosity; is_debug = _is_debug; cimg_snprintf(title,sizeof(title),"[%u] = '%s'", ind,images_names[ind].data()); gmic_ellipsize(title,sizeof(title)); img.gmic_print(title,is_debug,is_valid); } nb_carriages = 0; return *this; } // Display selected images. //------------------------- #ifdef gmic_float template gmic& gmic::display_images(const CImgList& images, const CImgList& images_names, const CImg& selection, unsigned int *const XYZ) { if (!images || !images_names || !selection) { print(images,"Display image []."); return *this; } // Check for available display. #if cimg_display==0 print(images,"Display image%s",gmic_selection); if (verbosity>=0 || is_debug) { if (XYZ) std::fprintf(cimg::output(),", from point (%u,%u,%u)",XYZ[0],XYZ[1],XYZ[2]); std::fprintf(cimg::output()," (skipped, no display support)."); std::fflush(cimg::output()); } #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Display image%s",gmic_selection); if (verbosity>=0 || is_debug) { if (XYZ) std::fprintf(cimg::output(),", from point (%u,%u,%u)",XYZ[0],XYZ[1],XYZ[2]); std::fprintf(cimg::output()," (skipped, no display available)."); std::fflush(cimg::output()); } } if (!is_available_display) return *this; CImgList visu; CImg is_valid(1,selection.height(),1,1,true); int max_height = 0; cimg_forY(selection,l) { const CImg& img = images[selection[l]]; int _verbosity = verbosity; bool _is_debug = is_debug; verbosity = -1; is_debug = false; try { gmic_check(img); } catch (gmic_exception&) { is_valid[l] = false; } verbosity = _verbosity; is_debug = _is_debug; if (is_valid[l] && !img.is_CImg3d(false)) max_height = cimg::max(max_height,images[selection(l)].height()); } cimg_forY(selection,l) { const unsigned int ind = selection[l]; const CImg& img = images[ind]; if (img && is_valid[l]) { if (!max_height || img.height()<=max_height) visu.insert(img,~0U,true); else img.get_rows(0,max_height-1).move_to(visu); } else visu.insert(1); } const CImg _gmic_names = selection2string(selection,images_names,false); const char *const gmic_names = _gmic_names.data(); print(images,"Display image%s = '%s'",gmic_selection,gmic_names); if (verbosity>=0 || is_debug) { if (XYZ) std::fprintf(cimg::output(),", from point (%u,%u,%u).\n",XYZ[0],XYZ[1],XYZ[2]); else std::fprintf(cimg::output(),".\n"); std::fflush(cimg::output()); } if (visu) { CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; char title[256] = { 0 }; if (visu.size()==1) cimg_snprintf(title,sizeof(title),"%s (%dx%dx%dx%d)", gmic_names, visu[0].width(),visu[0].height(),visu[0].depth(),visu[0].spectrum()); else cimg_snprintf(title,sizeof(title),"%s (%u)", gmic_names,visu.size()); gmic_ellipsize(title,sizeof(title)); CImg is_shared(visu.size()); cimglist_for(visu,l) { is_shared[l] = visu[l].is_shared(); visu[l]._is_shared = images[selection[l]].is_shared(); } print_images(images,images_names,selection,false); if (disp) visu.display(disp.set_title("%s",title),false,'x',0.5f,XYZ); else visu.display(title,false,'x',0.5f,XYZ); nb_carriages = 0; cimglist_for(visu,l) visu[l]._is_shared = is_shared(l); } #endif // #if cimg_display==0 return *this; } // Display plots of selected images. //---------------------------------- template gmic& gmic::display_plots(const CImgList& images, const CImgList& images_names, const CImg& selection, const unsigned int plot_type, const unsigned int vertex_type, const double xmin, const double xmax, const double ymin, const double ymax) { if (!images || !images_names || !selection) { print(images,"Plot image []."); return *this; } #if cimg_display==0 print(images,"Plot image%s (skipped, no display support).",gmic_selection); cimg::unused(plot_type,vertex_type,xmin,xmax,ymin,ymax); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Plot image%s (skipped, no display available).",gmic_selection); } if (!is_available_display) return *this; CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-plot': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { const unsigned int ind = selection[l]; const CImg& img = images[ind]; if (img) { print(images,"Plot image%s = '%s'.",gmic_selection, selection2string(selection,images_names,false).data()); if (verbosity>=0 || is_debug) { std::fputc('\n',cimg::output()); std::fflush(cimg::output()); img.print(images_names[ind].data()); } if (!disp) disp.assign(cimg_fitscreen(640,480,1),0,0); img.display_graph(disp.set_title("%s%s (%dx%dx%dx%d)", gmic_basename(images_names[ind].data()), images_names[ind].back()?"*":"", img.width(),img.height(),img.depth(),img.spectrum()), plot_type,vertex_type,0,xmin,xmax,0,ymin,ymax); nb_carriages = 0; } } #endif // #if cimg_display==0 return *this; } // Display selected 3d objects. //----------------------------- template gmic& gmic::display_objects3d(const CImgList& images, const CImgList& images_names, const CImg& selection) { if (!images || !images_names || !selection) { print(images,"Display 3d object []."); return *this; } char message[1024] = { 0 }; cimg_forY(selection,l) if (!gmic_check(images[selection[l]]).is_CImg3d(true,message)) error(images,"Command '-display3d': Invalid 3d object [%d] in selected image%s (%s).", selection[l],gmic_selection,message); #if cimg_display==0 print(images,"Display 3d object%s (skipped, no display support).",gmic_selection); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Display 3d object%s (skipped, no display available).",gmic_selection); } if (!is_available_display) return *this; CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { const unsigned int ind = selection[l]; const CImg& img = images[ind]; if (!disp) disp.assign(cimg_fitscreen(640,480,1),0,0); CImg background = background3d.get_resize(disp.width(),disp.height(),1,3); background.display(disp); CImgList primitives; CImgList colors; CImgList opacities; CImg vertices(img,false); float _pose3d[16] = { 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 }; if (pose3d) std::memcpy(_pose3d,pose3d.data(),16*sizeof(float)); vertices.CImg3dtoobject3d(primitives,colors,opacities); print(images,"Display 3d object [%u] = '%s%s' (%d vertices, %u primitives).", ind,images_names[ind].data(), images_names[ind].back()?"*":"", vertices.width(),primitives.size()); disp.set_title("%s%s (%d vertices, %u primitives)", gmic_basename(images_names[ind].data()), images_names[ind].back()?"*":"", vertices.width(),primitives.size()); if (light3d) colors.insert(light3d,~0U,true); background.display_object3d(disp,vertices,primitives,colors,opacities, !(bool)pose3d,render3d,renderd3d,is_double3d,focale3d, light3d_x,light3d_y,light3d_z, specular_lightness3d,specular_shininess3d, true,_pose3d); print(images,"Selected 3d pose = [ %g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g ].", _pose3d[0],_pose3d[1],_pose3d[2],_pose3d[3], _pose3d[4],_pose3d[5],_pose3d[6],_pose3d[7], _pose3d[8],_pose3d[9],_pose3d[10],_pose3d[11], _pose3d[12],_pose3d[13],_pose3d[14],_pose3d[15]); if (disp.is_closed()) break; } #endif // #if cimg_display==0 return *this; } #endif // #ifdef gmic_float // Substitute '@', '{}' and '$' expressions in a string. //------------------------------------------------------- template CImg gmic::substitute_item(const char *const source, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { if (!source) return CImg(); CImgList substituted_items; CImg inbraces; for (const char *nsource = source; *nsource; ) if (*nsource!='@' && *nsource!='{' && *nsource!='$') { // If not starting with '@', '{', or '$'. const char *const nsource0 = nsource; do { ++nsource; } while (*nsource && *nsource!='@' && *nsource!='{' && *nsource!='$'); CImg(nsource0,nsource - nsource0).move_to(substituted_items); } else { // '@', '{}' or '$' expression found. CImg substr(256); CImg _ind; if (inbraces) *inbraces = 0; else inbraces.assign(1,1,1,1,0); int ind = 0, l_inbraces = 0; bool is_braces = false; char end, sep = 0; // '{}' expression -> Mathematical evaluation, seq. of ascii codes or strings comparison. if (*nsource=='{') { const char *const ptr_beg = nsource + 1, *ptr_end = ptr_beg; unsigned int p = 0; for (p = 1; p>0 && *ptr_end; ++ptr_end) { if (*ptr_end=='{') ++p; if (*ptr_end=='}') --p; } if (p) { CImg(nsource++,1).move_to(substituted_items); continue; } l_inbraces = ptr_end - ptr_beg - 1; if (l_inbraces>0) { inbraces.assign(ptr_beg,l_inbraces + 1).back() = 0; substitute_item(inbraces,images,images_names,variables_sizes).move_to(inbraces); gmic_strreplace(inbraces); } nsource+=l_inbraces + 2; if (*inbraces) { const CImg& img = images.size()?gmic_check(images.back()):CImg::empty(); bool is_substitution_done = false; // Special regular cases to optimize: {w},{h},{d},{s}. if (!inbraces[1]) { switch (*inbraces) { case 'w' : cimg_snprintf(substr,substr.width(),"%d",img.width()); is_substitution_done = true; break; case 'h' : cimg_snprintf(substr,substr.width(),"%d",img.height()); is_substitution_done = true; break; case 'd' : cimg_snprintf(substr,substr.width(),"%d",img.depth()); is_substitution_done = true; break; case 's' : cimg_snprintf(substr,substr.width(),"%d",img.spectrum()); is_substitution_done = true; break; } if (is_substitution_done) CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); } // Sequence of ascii codes. if (!is_substitution_done && inbraces.width()>=3 && *inbraces=='\'' && inbraces[inbraces.width()-2]=='\'') { const char *s = inbraces.data() + 1; if (inbraces.width()>3) { inbraces[inbraces.width()-2] = 0; for (*substr=0, cimg::strunescape(inbraces); *s; ++s) { cimg_snprintf(substr,substr.width(),"%d,",(int)(unsigned char)*s); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); } if (*substr) --(substituted_items.back()._width); } is_substitution_done = true; } // Sequence of ascii characters. if (!is_substitution_done && inbraces.width()>=3 && *inbraces=='`' && inbraces[inbraces.width()-2]=='`') { if (inbraces.width()>3) { unsigned int nb_values = 1; cimg_for(inbraces,p,char) if (*p==',') ++nb_values; inbraces[inbraces.width()-2] = 0; try { CImg(nb_values,1,1,1,inbraces.data()+1,false).move_to(substituted_items); is_substitution_done = true; } catch (CImgException &e) { const char *const e_ptr = std::strstr(e.what(),": "); error(images,"Item substitution '{`value1,..,valueN`}': %s", e_ptr?e_ptr+2:e.what()); } } is_substitution_done = true; } // Strings comparison. if (!is_substitution_done && inbraces.width()>=5) { char *const peq = std::strstr(inbraces,"'=='"); if (peq) { *peq = 0; cimg_snprintf(substr,substr.width(),"%d",(int)!std::strcmp(inbraces,peq+4)); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); is_substitution_done = true; } else { char *const pne = std::strstr(inbraces,"'!='"); if (pne) { *pne = 0; cimg_snprintf(substr,substr.width(),"%d",(int)std::strcmp(inbraces,pne+4)); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); is_substitution_done = true; } } } // Mathematical expression [truncated output]. if (!is_substitution_done && inbraces.width()>=3 && *inbraces=='_') try { cimg_snprintf(substr,substr.width(),"%g",img.eval(inbraces.data(1))); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); is_substitution_done = true; } catch (CImgException& e) { const char *const e_ptr = std::strstr(e.what(),": "); error(images,"Item substitution '{_expression}': %s", e_ptr?e_ptr+2:e.what()); } // Mathematical expression [full precision output]. if (!is_substitution_done) try { cimg_snprintf(substr,substr.width(),"%.16g",img.eval(inbraces.data())); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); } catch (CImgException& e) { const char *const e_ptr = std::strstr(e.what(),": "); error(images,"Item substitution '{expression}': %s", e_ptr?e_ptr+2:e.what()); } } continue; // '@{..}' and ${..} expressions. } else if (nsource[1]=='{') { const char *const ptr_beg = nsource + 2, *ptr_end = ptr_beg; unsigned int p = 0; for (p = 1; p>0 && *ptr_end; ++ptr_end) { if (*ptr_end=='{') ++p; if (*ptr_end=='}') --p; } if (p) { CImg(nsource++,1).move_to(substituted_items); continue; } l_inbraces = ptr_end - ptr_beg - 1; if (l_inbraces>0) { inbraces.assign(ptr_beg,l_inbraces + 1).back() = 0; substitute_item(inbraces,images,images_names,variables_sizes).move_to(inbraces); } is_braces = true; } // Substitute '@#' -> number of images in the list. if (*nsource=='@' && nsource[1]=='#') { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",images.size()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@*' -> number of available cpus. } else if (*nsource=='@' && nsource[1]=='*') { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",cimg::nb_cpus()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@^' -> current level of verbosity. } else if (*nsource=='@' && nsource[1]=='^') { nsource+=2; cimg_snprintf(substr,substr.width(),"%d",verbosity); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@.' -> current version number of the G'MIC interpreter. } else if (*nsource=='@' && nsource[1]=='.') { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",gmic_version); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@%' -> pid of the current process. } else if (*nsource=='@' && nsource[1]=='%') { nsource+=2; #if cimg_OS==1 cimg_snprintf(substr,substr.width(),"%u",(unsigned int)getpid()); #elif cimg_OS==2 cimg_snprintf(substr,substr.width(),"%u",(unsigned int)_getpid()); #else // #if cimg_OS==1 cimg_snprintf(substr,substr.width(),"0"); #endif // #if cimg_OS==1 CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@|' -> current value of the timer. } else if (*nsource=='@' && nsource[1]=='|') { nsource+=2; cimg_snprintf(substr,substr.width(),"%g",(cimg::time()-reference_time)/1000.); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@?' -> current type of image pixels. } else if (*nsource=='@' && nsource[1]=='?') { nsource+=2; cimg_snprintf(substr,substr.width(),"%s",CImg::pixel_type()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@!' -> visibility state of the first instant display window. } else if (*nsource=='@' && nsource[1]=='!') { nsource+=2; #if cimg_display==0 std::strcpy(substr,"0"); #else // #if cimg_display==0 cimg_snprintf(substr,substr.width(),"%d", instant_window[0]?(instant_window[0].is_closed()?0:1):0); #endif // #if cimg_display==0 CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@{!}', @{!1}, '@{!,subset}' and '@{!1,subset}' // -> features of an instant display window. } else if (*nsource=='@' && inbraces[0]=='!' && (inbraces[1]==0 || (inbraces[1]>='0' && inbraces[1]<='9' && inbraces[2]==0) || (inbraces[1]==',' && inbraces[2]) || (inbraces[1]>='0' && inbraces[1]<='9' && inbraces[2]==',' && inbraces[3]))) { nsource+=l_inbraces + 3; #if cimg_display==0 std::strcpy(substr,"0"); #else // #if cimg_display==0 unsigned int wind = 0; bool is_substitution_done = true; const char *ninbraces = inbraces.data() + 1; if (*ninbraces>='0' && *ninbraces<='9') wind = (unsigned int)(*(ninbraces++)-'0'); if (!*ninbraces) cimg_snprintf(substr,substr.width(),"%d", instant_window[wind]?(instant_window[wind].is_closed()?0:1):0); else if (*ninbraces==',') switch (*(++ninbraces)) { case 'w' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].width()); else if (ninbraces[1]=='h' && !ninbraces[2]) cimg_snprintf(substr,substr.width(),"%d", instant_window[wind].width()*instant_window[wind].height()); else is_substitution_done = false; break; case 'h' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].height()); else is_substitution_done = false; break; case 'd' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].window_width()); else if (ninbraces[1]=='e' && !ninbraces[2]) cimg_snprintf(substr,substr.width(),"%d", instant_window[wind].window_width()* instant_window[wind].window_height()); else is_substitution_done = false; break; case 'e' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].window_height()); else is_substitution_done = false; break; case 'u' : if (!ninbraces[1]) try { cimg_snprintf(substr,substr.width(),"%d",CImgDisplay::screen_width()); } catch (CImgDisplayException&) { std::strcpy(substr,"0"); } else if (ninbraces[1]=='v' && !ninbraces[2]) try { cimg_snprintf(substr,substr.width(),"%d", CImgDisplay::screen_width()*CImgDisplay::screen_height()); } catch (CImgDisplayException&) { std::strcpy(substr,"0"); } else is_substitution_done = false; break; case 'v' : if (!ninbraces[1]) try { cimg_snprintf(substr,substr.width(),"%d",CImgDisplay::screen_height()); } catch (CImgDisplayException&) { std::strcpy(substr,"0"); } else is_substitution_done = false; break; case 'x' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].mouse_x()); else is_substitution_done = false; break; case 'y' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].mouse_y()); else is_substitution_done = false; break; case 'n' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].normalization()); else is_substitution_done = false; break; case 'b' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].button()); else is_substitution_done = false; break; case 'o' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].wheel()); else is_substitution_done = false; break; case 'c' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",(int)instant_window[wind].is_closed()); else is_substitution_done = false; break; case 'r' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",(int)instant_window[wind].is_resized()); else is_substitution_done = false; break; case 'm' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%d",(int)instant_window[wind].is_moved()); else is_substitution_done = false; break; case 'k' : if (!ninbraces[1]) cimg_snprintf(substr,substr.width(),"%u",instant_window[wind].key()); else is_substitution_done = false; break; default : cimg_snprintf(substr,substr.width(),"%d",instant_window[wind].is_key(ninbraces)); } else cimg_snprintf(substr,substr.width(),"@{!%s}",inbraces.data()); if (!is_substitution_done) std::strcpy(substr,"0"); #endif // #if cimg_display==0 CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@/' -> number of levels in current global scope. } else if (*nsource=='@' && nsource[1]=='/') { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",scope.size()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@{/}' and '@{/,subset}' -> content of the global scope. } else if (*nsource=='@' && inbraces[0]=='/' && (inbraces[1]==0 || (inbraces[1]==',' && inbraces[2]))) { nsource+=l_inbraces + 3; const CImg subset = selection2cimg(inbraces[1]?inbraces.data()+2:0,scope.size(), CImgList::empty(), "Item substitution '@{/[,subset]}'",false, false,CImg::empty()); if (subset) cimg_foroff(subset,i) substituted_items.insert(scope[subset[i]]).back().back() = '/'; // Substitute '$/' -> name of the current command. } else if (*nsource=='$' && nsource[1]=='/') { cimg_snprintf(substr,substr.width(),"%s",scope.back().data()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); nsource+=2; // Substitute '@>' and '@<' -> current number of nested loops. } else if (*nsource=='@' && (nsource[1]=='>' || nsource[1]=='<')) { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",repeatdones.size()); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute '@{>}', '@{<}', '@{>,subset}' and '@{<,subset}' // -> forward/backward indice(s) of current loop(s). } else if (*nsource=='@' && (*inbraces=='>' || *inbraces=='<') && (inbraces[1]==0 || (inbraces[1]==',' && inbraces[2]))) { nsource+=l_inbraces + 3; const CImg subset = selection2cimg(inbraces[1]?inbraces.data()+2:0,repeatdones.size(), CImgList::empty(), "Item substitution '@{>[,subset]}'",false, false,CImg::empty()); if (subset) { cimg_foroff(subset,i) { cimg_snprintf(substr,substr.width(),"%u", *inbraces=='>'?repeatdones(subset[i],2):repeatdones(subset[i],1)-1); CImg::string(substr.data()).move_to(substituted_items).back().back()=','; } --(substituted_items.back()._width); } // Substitute '$>', '${>}', '$<' and '${<}' -> forward/backward indice of current loop. } else if (*nsource=='$' && (nsource[1]=='>' || nsource[1]=='<' || ((*inbraces=='>' || *inbraces=='<') && inbraces[1]==0))) { const char direction = is_braces?*inbraces:nsource[1]; if (!repeatdones) error(images,"Item substitution '$%s': There is no loop currently running.", is_braces?(direction=='>'?"{>}":"{<}"):(direction=='>'?">":"<")); cimg_snprintf(substr,substr.width(),"%u", direction=='>'?repeatdones.back()(2):repeatdones.back()(1)-1); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); nsource+=is_braces?4:2; // Substitute '$name' and '${name}' -> variable, image indice or environment variable. } else if (*nsource=='$' && (((is_braces && std::sscanf(inbraces,"%255[a-zA-Z0-9_]",substr.data())==1)) || (std::sscanf(nsource+1,"%255[a-zA-Z0-9_]",substr.data())==1)) && (*substr<'0' || *substr>'9')) { const CImg& name = is_braces?inbraces:substr; const unsigned int sind = gmic_hashcode(name,true); const int lind = *name=='_'?0:(int)variables_sizes[sind]; const CImgList &_variables = variables[sind], &_variables_names = variables_names[sind]; bool is_name_found = false; for (int l = _variables.width()-1; l>=lind; --l) if (!std::strcmp(_variables_names[l],name)) { is_name_found = true; ind = l; break; } if (is_name_found) { if (_variables[ind].size()>1) CImg(_variables[ind].data(),_variables[ind].size()-1). move_to(substituted_items); } else { for (int l = images.width()-1; l>=0; --l) if (images_names[l] && !std::strcmp(images_names[l],name)) { is_name_found = true; ind = l; break; } if (is_name_found) { char text[64]; cimg_snprintf(text,sizeof(text),"%d",ind); CImg(text,std::strlen(text)).move_to(substituted_items); } else { const char *const s_env = std::getenv(name); if (s_env) CImg(s_env,std::strlen(s_env)).move_to(substituted_items); } } nsource+=is_braces?l_inbraces + 3:std::strlen(substr)+1; // Substitute '@ind', '@{ind}' and '@{ind,argument}' -> image values or feature. } else if (*nsource=='@' && (std::sscanf(nsource+1,"%d",&ind)==1 || ((end=0),std::sscanf(inbraces,"%d%c",&ind,&end)==1) || ((end=1),std::sscanf(inbraces,"%d,%c",&ind,&sep)==2) || (std::sscanf(nsource+1,"%255[a-zA-Z0-9_]",substr.data())==1 && (_ind=selection2cimg(substr,images.size(),images_names, "Item substitution '@name'",true, false,CImg::empty())).height()>0) || (((end=0),std::sscanf(inbraces,"%255[a-zA-Z0-9_]%c", substr.data(),&end)==1) && (_ind=selection2cimg(substr,images.size(),images_names, "Item substitution '@{name}'",true, false,CImg::empty())).height()>0) || (((end=1),std::sscanf(inbraces,"%255[a-zA-Z0-9_],%c", substr.data(),&sep)==2) && (_ind=selection2cimg(substr,images.size(),images_names, "Item substitution '@{name,feature}'", true,false, CImg::empty())).height()>0))) { if (_ind) { if (_ind.height()>1) error(images,"Item substitution '%s': Selection [%s] specifies %d items.", !*inbraces?"@name":end?"@{name,feature}":"@{name}", substr.data(),_ind.height()); ind=*_ind; } const unsigned int l_ind = _ind?std::strlen(substr):cimg_snprintf(substr,substr.width(),"%d",ind); nsource+=is_braces?l_inbraces + 3:l_ind + 1; int nind = ind; if (nind<0) nind+=images.width(); if (nind<0 || nind>=images.width()) { if (images.width()) error(images,"Item substitution '%s': Invalid indice '%d' (not in range -%u..%u).", !*inbraces?"@indice":end?"@{indice,feature}":"@{indice}", ind,images.size(),images.size()-1); else error(images,"Item substitution '%s': Invalid indice '%d' (no image data available).", !*inbraces?"@indice":end?"@{indice,feature}":"@{indice}",ind); } const CImg& img = gmic_check(images[nind]); char argx[256], argy[256], argz[256], argc[256]; *argx = *argy = *argz = *argc = 0; char sepp = 0, sepx = 0, sepy = 0, sepz = 0, sepc = 0; float x = 0, y = 0, z = 0, v = 0, bcond = 0; bool is_substitution_done = false; const char *subset = sep?inbraces.data() + l_ind + 1:&sep; *substr = 0; // Test for simple arguments '@{ind,arg}' where 'arg' is w,h,d,s,.... if (*subset) { is_substitution_done = true; switch (*subset) { case 'w' : if (subset[1]=='h') { if (subset[2]=='d') { if (subset[3]=='s' && !subset[4]) cimg_snprintf(substr,substr.width(),"%d", img.width()*img.height()*img.depth()*img.spectrum()); else if (!subset[3]) cimg_snprintf(substr,substr.width(),"%d", img.width()*img.height()*img.depth()); else is_substitution_done = false; } else if (!subset[2]) cimg_snprintf(substr,substr.width(),"%d",img.width()*img.height()); else is_substitution_done = false; } else if (!subset[1]) cimg_snprintf(substr,substr.width(),"%d",img.width()); else is_substitution_done = false; break; case 'h' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%d",img.height()); else is_substitution_done = false; break; case 'd' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%d",img.depth()); else is_substitution_done = false; break; case 's' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%d",img.spectrum()); else is_substitution_done = false; break; case 'r' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%d",img.is_shared()); else is_substitution_done = false; break; case 'n' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%s",images_names[nind].data()); else is_substitution_done = false; break; case 'b' : if (!subset[1]) { cimg::split_filename(images_names[nind].data(),substr); const char *const basename = cimg::basename(substr); if (substr.data()!=basename) std::strcpy(substr,basename); } else is_substitution_done = false; break; case 'x' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%s", cimg::split_filename(images_names[nind].data())); else is_substitution_done = false; break; case 'f' : if (!subset[1]) { CImg _substr(images_names[nind]); char *const basename = const_cast(cimg::basename(_substr)); *basename = 0; std::strcpy(substr,_substr); } else is_substitution_done = false; break; case '#' : if (!subset[1]) cimg_snprintf(substr,substr.width(),"%lu",img.size()); else is_substitution_done = false; break; case '+' : if (!subset[1]) { double res = img?(double)img.front():0; for (const T *ptrs = img.data() + 1, *ptre = img.end(); ptrs text(strsiz+1), _text = text.get_shared_points(0,strsiz-1,0,0,0); _text = CImg(img.data(),strsiz,1,1,1,true); text.back() = 0; gmic_strreplace(text.data()); _text.move_to(substituted_items); } } *substr = 0; } else is_substitution_done = false; break; case 'c' : if (!subset[1]) { CImg st; if (img) st = img.get_stats(); else st.assign(8,1,1,1,0); cimg_snprintf(substr,substr.width(),"%u,%u,%u,%u",st[4],st[5],st[6],st[7]); } else is_substitution_done = false; break; case 'C' : if (!subset[1]) { CImg st; if (img) st = img.get_stats(); else st.assign(12,1,1,1,0); cimg_snprintf(substr,substr.width(),"%u,%u,%u,%u",st[8],st[9],st[10],st[11]); } else is_substitution_done = false; break; default : is_substitution_done = false; } // Test for access to pixel value '@{ind,(x,y,z,c,boundary)}'. if (is_substitution_done) { if (*substr) CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); } else if ((std::sscanf(subset,"(%255[0-9.eE%+-]%c%c", argx,&sepp,&end)==2 || std::sscanf(subset,"(%255[0-9.eE%+-],%255[0-9.eE%+-]%c%c", argx,argy,&sepp,&end)==3 || std::sscanf(subset,"(%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c%c", argx,argy,argz,&sepp,&end)==4 || std::sscanf(subset,"(%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c%c", argx,argy,argz,argc,&sepp,&end)==5 || std::sscanf(subset,"(%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f%c%c", argx,argy,argz,argc,&bcond,&sepp,&end)==6) && sepp==')' && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%')) && (!*argc || std::sscanf(argc,"%f%c",&v,&end)==1 || (std::sscanf(argc,"%f%c%c",&v,&sepc,&end)==2 && sepc=='%'))) { const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z), nv = (int)cimg::round(sepc=='%'?v*(img.spectrum()-1)/100:v); cimg_snprintf(substr,substr.width(),"%.16g", bcond?(double)img.atXYZC(nx,ny,nz,nv):(double)img.atXYZC(nx,ny,nz,nv,0)); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); is_substitution_done = true; } } // Test for values subset, as in '@{ind,0-10}'. if (!is_substitution_done) { CImg values; is_substitution_done = true; if (!*subset) values = img.get_shared(); else { int _verbosity = verbosity; bool _is_debug = is_debug; verbosity = -1; is_debug = false; try { const CImg inds = selection2cimg(subset,img.size(), CImgList::empty(),"",false,false,CImg::empty()); values.assign(1,inds.height()); cimg_foroff(inds,p) values[p] = img[inds(p)]; } catch (gmic_exception&) { is_substitution_done = false; } verbosity = _verbosity; is_debug = _is_debug; } if (is_substitution_done) { cimg_foroff(values,p) { cimg_snprintf(substr,substr.width(),"%.16g",(double)values[p]); CImg::string(substr).move_to(substituted_items).back().back() = ','; } if (values) --(substituted_items.back()._width); } } // -> 'argument' is considered as math expression associated to an image, as '@{ind,w/2}'. if (!is_substitution_done) { try { cimg_snprintf(substr,substr.width(),"%.16g",img.eval(subset)); } catch (CImgException&) { error(images,"Item substitution '@{%d,%s}': Invalid argument '%s'.", ind,subset,subset); } CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); } // Substitute '@' by itself, if no @-pattern matches. } else if (!is_braces || *nsource!='@') CImg(nsource++,1).move_to(substituted_items); // Substitute '@{command}' by the status value after command execution. else { nsource+=l_inbraces + 3; if (l_inbraces>0) { const CImgList ncommands_line = commands_line_to_CImgList(gmic_strreplace(inbraces)); unsigned int nposition = 0; CImg::string("*substitute").move_to(scope); unsigned int nvariables_sizes[256]; for (unsigned int l = 0; l<256; ++l) nvariables_sizes[l] = variables[l].size(); _parse(ncommands_line,nposition,images,images_names,nvariables_sizes); for (unsigned int l = 0; l<255; ++l) if (variables[l].size()>nvariables_sizes[l]) { variables_names[l].remove(nvariables_sizes[l],variables[l].size()-1); variables[l].remove(nvariables_sizes[l],variables[l].size()-1); } scope.remove(); is_return = false; } if (status.width()>1) CImg(status.data(),status.width()-1).move_to(substituted_items); continue; } } CImg::vector(0).move_to(substituted_items); return substituted_items>'x'; } // Main parsing procedure. //------------------------ template gmic& gmic::_parse(const CImgList& commands_line, unsigned int& position, CImgList &images, CImgList &images_names, unsigned int (&variables_sizes)[256]) { const unsigned int initial_scope_size = scope.size(); bool is_endlocal = false; char end; // Allocate string variables, widely used afterwards // (prevents stack overflow on recursive calls while remaining thread-safe). CImg _formula(4096), _message(1024), _title(256), _indices(256), _argx(256), _argy(256), _argz(256), _argc(256); char *const formula = _formula.fill(0).data(), *const message = _message.fill(0).data(), *const title = _title.fill(0).data(), *const indices = _indices.fill(0).data(), *const argx = _argx.fill(0).data(), *const argy = _argy.fill(0).data(), *const argz = _argz.fill(0).data(), *const argc = _argc.fill(0).data(); #ifdef gmic_float CImg _color(4096); char *const color = _color.data(); #endif // #ifdef gmic_float try { // Init parser environment. cimg::exception_mode() = 0; if (images.size()images_names.size()) images_names.insert(images.size() - images_names.size(),CImg::string("[unnamed]")); if (is_debug) { nb_carriages = 2; debug(images,"%sStart G'MIC parser in scope '%s/' [%s].%s", cimg::t_bold,scope.back().data(),CImg::pixel_type(),cimg::t_normal); is_start = false; } // Begin command line parsing. if (!commands_line && is_start) { print(images,"Start G'MIC parser."); is_start = false; } while (position256) error("Internal error: Scope overflow (infinite recursion ?)."); // Substitute expressions in current item. CImg _item, _argument, _argument_text; substitute_item(initial_item,images,images_names,variables_sizes).move_to(_item); char *item = _item.data(); const char *argument = initial_argument, *argument_text = initial_argument; // Split command/restriction, if necessary. CImg _command(256), _restriction(256); char *const command = _command.data(), *const restriction = _restriction.data(); *command = *restriction = 0; bool is_get_version = false, is_restriction = false; CImg selection; CImg new_name; if (item[0]=='-' && item[1] && item[1]!='.') { char sep0 = 0, sep1 = 0; if (item[1]=='-' && item[2] && item[2]!='[' && (item[2]!='3' || item[3]!='d')) { ++item; is_get_version = true; } gmic_strreplace(item); const int err = std::sscanf(item,"%255[^[]%c%255[a-zA-Z_0-9.eE%^,:+-]%c%c", command,&sep0,restriction,&sep1,&end); if (err==1) selection = CImg::sequence(images.size(),0,images.size()-1); else if (err==2 && sep0=='[' && item[std::strlen(command)+1]==']') { selection.assign(); is_restriction = true; } else if (err==4 && sep1==']') { is_restriction = true; if (!std::strcmp("-wait",command)) selection = selection2cimg(restriction,10,CImgList::empty(),command,true, false,CImg::empty()); else if (!std::strcmp("-i",command) || !std::strcmp("-input",command)) selection = selection2cimg(restriction,images.size()+1,images_names,command,true, true,new_name); else if (!std::strcmp("-e",command) || !std::strcmp("-echo",command) || !std::strcmp("-error",command) || !std::strcmp("-warn",command)) selection = selection2cimg(restriction,scope.size(),CImgList::empty(), command,true,false,CImg::empty()); else selection = selection2cimg(restriction,images.size(),images_names,command,true, false,CImg::empty()); } else { std::strncpy(command,item,_command.size()-1); command[_command.size()-1] = *restriction = 0; } if (is_get_version) --item; } else { std::strncpy(command,item,_command.size()-1); command[_command.size()-1] = *restriction = 0; } ++position; if (is_debug) { const char *const _initial_item = initial_item+(is_get_version?1:0); if (std::strcmp(item,_initial_item)) debug(images,"Item '%s' -> '%s', indice%s.", _initial_item,item,gmic_selection); else debug(images,"Item '%s', indice%s.", _initial_item,gmic_selection); } // Check for verbosity command, prior to the first output of a log message. if (!std::strcmp("-v",item) || !std::strcmp("-verbose",item)) { const bool is_one_char = !argument[1]; if (*argument=='-' && is_one_char) --verbosity; // Do a first fast check. else if (*argument=='+' && is_one_char) ++verbosity; else { gmic_substitute_args(); const bool is_one_char = !argument[1]; if (*argument=='-' && is_one_char) --verbosity; else if (*argument=='+' && is_one_char) ++verbosity; else { float level = 0; if (std::sscanf(argument,"%f%c",&level,&end)==1) verbosity = (int)cimg::round(level); else { if (is_start) { print(images,"Start G'MIC parser."); is_start = false; } arg_error("verbose"); } } } } if (is_start) { print(images,"Start G'MIC parser."); is_start = false; } // Begin command interpretation. if (*item=='-' && item[1]) { // Replace some shortcut names whose three first chars are different than correspondent // regular names (not all shortcuts are replaced, but it reduces the number of string // comparisons afterwards). char _item[16] = { 0 }, command1 = command[1]; const char command2 = command1?command[2]:0, command3 = command2?command[3]:0, command4 = command3?command[4]:0, command5 = command4?command[5]:0; if (!command2) switch (command1) { // One-char shortcuts. case 'm' : if (!is_get_version) { std::strcpy(item=_item,"-command"); command1 = 'c'; } break; case 'd' : std::strcpy(command,"-display"); break; case 'e' : std::strcpy(command,"-echo"); break; case 'i' : std::strcpy(command,"-input"); break; case 'o' : std::strcpy(command,"-output"); break; case 'p' : std::strcpy(command,"-print"); break; case 'v' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-verbose"); break; case 'w' : std::strcpy(command,"-window"); break; case 'k' : std::strcpy(command,"-keep"); break; case '+' : std::strcpy(command,"-add"); command1 = 'a'; break; case '/' : std::strcpy(command,"-div"); command1 = 'd'; break; case '>' : std::strcpy(command,"-gt"); command1 = 'g'; break; case '<' : std::strcpy(command,"-lt"); command1 = 'l'; break; case '%' : std::strcpy(command,"-mod"); command1 = 'm'; break; case '*' : std::strcpy(command,"-mul"); command1 = 'm'; break; case '^' : std::strcpy(command,"-pow"); command1 = 'p'; break; case '-' : std::strcpy(command,"-sub"); command1 = 's'; break; case 'c' : std::strcpy(command,"-cut"); break; case 'f' : std::strcpy(command,"-fill"); break; case 'n' : std::strcpy(command,"-normalize"); break; case '=' : std::strcpy(command,"-set"); command1 = 's'; break; case 't' : std::strcpy(command,"-text"); break; case 'a' : std::strcpy(command,"-append"); break; case 'z' : std::strcpy(command,"-crop"); command1 = 'c'; break; case 'r' : std::strcpy(command,"-resize"); break; case 's' : std::strcpy(command,"-split"); break; case 'y' : std::strcpy(command,"-unroll"); command1 = 'u'; break; case 'b' : std::strcpy(command,"-blur"); break; case 'g' : std::strcpy(command,"-gradient"); break; case 'j' : std::strcpy(command,"-image"); command1 = 'i'; break; case 'q' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-quit"); break; case 'l' : std::strcpy(command,"-local"); break; case 'u' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-status"); command1 = 's'; break; case 'x' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-exec"); command1 = 'e'; break; } else if (!command3) { // Two-chars shortcuts. if (command1=='s' && command2=='h') std::strcpy(command,"-shared"); else if (command1=='m' && command2=='v') std::strcpy(command,"-move"); else if (command1=='n' && command2=='m') std::strcpy(command,"-name"); else if (command1=='r' && command2=='m') std::strcpy(command,"-remove"); else if (command1=='r' && command2=='v') std::strcpy(command,"-reverse"); else if (command1=='<' && command2=='<') { std::strcpy(command,"-bsl"); command1 = 'b'; } else if (command1=='>' && command2=='>') { std::strcpy(command,"-bsr"); command1 = 'b'; } else if (command1=='=' && command2=='=') { std::strcpy(command,"-eq"); command1 = 'e'; } else if (command1=='>' && command2=='=') { std::strcpy(command,"-ge"); command1 = 'g'; } else if (command1=='<' && command2=='=') { std::strcpy(command,"-le"); command1 = 'l'; } else if (command1=='/' && command2=='/') { std::strcpy(command,"-mdiv"); command1 = 'm'; } else if (command1=='*' && command2=='*') { std::strcpy(command,"-mmul"); command1 = 'm'; } else if (command1=='!' && command2=='=') { std::strcpy(command,"-neq"); command1 = 'n'; } } else if (!command4 && command2=='3' && command3=='d') switch (command1) { // Three-chars shortcuts (ending with '3d'). case 'd' : std::strcpy(command,"-display3d"); break; case '+' : std::strcpy(command,"-add3d"); command1 = 'a'; break; case 'b' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-background3d"); break; case '/' : std::strcpy(command,"-div3d"); command1 = 'd'; break; case 'f' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-focale3d"); break; case 'l' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-light3d"); break; case 'm' : if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-mode3d"); break; case '*' : std::strcpy(command,"-mul3d"); command1 = 'm'; break; case 'o' : std::strcpy(command,"-opacity3d"); break; case 'p' : std::strcpy(command,"-primitives3d"); break; case 'r' : std::strcpy(command,"-rotate3d"); break; case 's' : std::strcpy(command,"-split3d"); break; case '-' : std::strcpy(command,"-sub3d"); command1 = 's'; break; case 't' : std::strcpy(command,"-texturize3d"); break; } else if (!command5 && command3=='3' && command4=='d') { // Four-chars shortcuts (ending with '3d'). if (command1=='d' && command2=='b') { if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-double3d"); } else if (command1=='m' && command2=='d') { if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-moded3d"); } else if (command1=='r' && command2=='v') std::strcpy(command,"-reverse3d"); else if (command1=='s' && command2=='l') { if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-specl3d"); } else if (command1=='s' && command2=='s') { if (!is_get_version && !is_restriction) std::strcpy(item=_item,"-specs3d"); } } // Check if new name has been requested for a command that does not allow that. if (new_name && std::strcmp("-input",command)) error(images,"Item '%s %s': Unknow name '%s'.", initial_item,initial_argument,new_name.data()); //---------------------------- // Commands starting by '-a..' //---------------------------- if (command1=='a') { // Append. if (!std::strcmp("-append",command)) { gmic_substitute_args(); float align = 0; char axis = 0, sep = 0; CImg ind; if ((std::sscanf(argument,"%c%c", &axis,&end)==1 || std::sscanf(argument,"%c,%f%c", &axis,&align,&end)==2) && (axis=='x' || axis=='y' || axis=='z' || axis=='c')) { print(images,"Append image%s along the '%c'-axis, with alignment %g.", gmic_selection, axis,align); if (selection) { CImgList subimages; cimg_forY(selection,l) if (gmic_check(images[selection[l]])) subimages.insert(gmic_check(images[selection[l]]),~0U,true); CImg img = subimages.get_append(axis,align); CImg name = images_names[selection[0]].get_mark(); if (is_get_version) { img.move_to(images); images_names.insert(name.copymark()); } else if (selection.height()>=2) { remove_images(images,images_names,selection,1,selection.height()-1); img.move_to(images[selection[0]].assign()); name.move_to(images_names[selection[0]]); } } } else if ((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c,%c%c", indices,&sep,&axis,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c,%c,%f%c", indices,&sep,&axis,&(align=0),&end)==4) && (axis=='x' || axis=='y' || axis=='z' || axis=='c') && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-append",true, false,CImg::empty())).height()==1) { print(images,"Append image [%u] to image%s, along the '%c'-axis, with alignment %g.", *ind,gmic_selection,axis,align); const CImg img0 = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],append(img0,axis,align)); } else arg_error("append"); is_released = false; ++position; continue; } // Autocrop. if (!std::strcmp("-autocrop",command)) { gmic_substitute_args(); CImg is_arg; if (*argument && std::sscanf(argument,"%4095[0-9.,eE+-]%c",formula,&end)==1) try { CImg(1).fill(argument,true).move_to(is_arg); } catch (CImgException&) { is_arg.assign(); } if (is_arg) { print(images,"Auto-crop image%s by vector '%s'.", gmic_selection, argument_text); ++position; } else print(images,"Auto-crop image%s.", gmic_selection); cimg_forY(selection,l) { CImg& img = images[selection[l]]; if (is_arg) { const CImg col = CImg(img.spectrum()).fill(argument,true); gmic_apply(img,gmic_autocrop(col)); } else gmic_apply(img,gmic_autocrop()); } is_released = false; continue; } #ifdef gmic_float // Add. gmic_arithmetic_item("-add", operator+=, "Add %g%s to image%s", value,ssep,gmic_selection,T, operator+=, "Add image [%d] to image%s", ind[0],gmic_selection, "Add expression %s to image%s", argument_text,gmic_selection, "Add image%s"); // Add 3d objects together, or shift a 3d object. if (!std::strcmp("-add3d",command)) { gmic_substitute_args(); float tx = 0, ty = 0, tz = 0; CImg ind; char sep = 0; if (std::sscanf(argument,"%f%c", &tx,&end)==1 || std::sscanf(argument,"%f,%f%c", &tx,&ty,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &tx,&ty,&tz,&end)==3) { print(images,"Shift 3d object%s by displacement (%g,%g,%g).", gmic_selection, tx,ty,tz); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(false,message)) error(images, "Command '-add3d': Invalid 3d object [%d], in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,shift_CImg3d(tx,ty,tz)); } ++position; } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-add3d",true, false,CImg::empty())).height()==1) { const CImg img0 = gmic_image_arg(*ind); if (!img0.is_CImg3d(true,message)) error(images,"Command '-add3d': Invalid 3d object [%u], in specified " "argument '%s' (%s).", *ind,argument_text,message); print(images,"Merge 3d object%s with 3d object [%u].", gmic_selection,*ind); CImgList nimages(2); nimages[1].assign(img0,true); cimg_forY(selection,l) { const unsigned int _ind = selection[l]; CImg& img = gmic_check(images[_ind]); if (!img.is_CImg3d(true,message)) error(images, "Command '-add3d': Invalid 3d object [%d], in selected image%s (%s).", _ind,gmic_selection,message); nimages[0].assign(img,true); CImg res = CImg::append_CImg3d(nimages); if (is_get_version) { res.move_to(images); images_names[_ind].get_mark().copymark().move_to(images_names); } else { res.move_to(images[_ind].assign()); images_names[_ind].mark(); } } ++position; } else { print(images,"Merge 3d object%s.", gmic_selection); if (selection) { CImgList subimages(selection.height()); cimg_forY(selection,l) subimages[l].assign(gmic_check(images[selection[l]]),true); CImg img = CImg::append_CImg3d(subimages); if (!img) cimg_forY(selection,l) { const unsigned int ind = selection[l]; if (!images[ind].is_CImg3d(true,message)) error(images, "Command '-add3d': Invalid 3d object [%d], in selected image%s (%s).", ind,gmic_selection,message); } CImg name = images_names[selection[0]].get_mark(); if (is_get_version) { img.move_to(images); images_names.insert(name.copymark()); } else if (selection.height()>=2) { remove_images(images,images_names,selection,1,selection.height()-1); img.move_to(images[selection[0]].assign()); name.move_to(images_names[selection[0]]); } } } is_released = false; continue; } // Absolute value. gmic_simple_item("-abs",abs,"Compute pointwise absolute value of image%s."); // Bitwise and. gmic_arithmetic_item("-and", operator&=, "Compute bitwise AND of image%s by %g%s", gmic_selection,value,ssep,T, operator&=, "Compute bitwise AND of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise AND of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise AND of image%s"); // Arc-tangent (two arguments). if (!std::strcmp("-atan2",command)) { gmic_substitute_args(); CImg ind; char sep = 0; if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-atan2",true, false,CImg::empty())).height()==1) { print(images,"Compute pointwise oriented arc-tangent of image%s, " "with x-argument [%u].", gmic_selection, *ind); const CImg img0 = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],atan2(img0)); } else arg_error("atan2"); is_released = false; ++position; continue; } // Arc-cosine. gmic_simple_item("-acos",acos,"Compute pointwise arc-cosine of image%s."); // Arc-sine. gmic_simple_item("-asin",asin,"Compute pointwise arc-sine of image%s."); // Arc-tangent. gmic_simple_item("-atan",atan,"Compute pointwise arc-tangent of image%s."); // Draw axes. if (!std::strcmp("-axes",command)) { gmic_substitute_args(); float xmin = 0, xmax = 0, ymin = 0, ymax = 0, opacity = 1, siz = 13; unsigned int pattern = ~0U; char seph = 0; *color = 0; if (std::sscanf(argument,"%f,%f%c", &xmin,&xmax,&end)==2 || std::sscanf(argument,"%f,%f,%f,%f%c", &xmin,&xmax,&ymin,&ymax,&end)==4 || std::sscanf(argument,"%f,%f,%f,%f,%f%c", &xmin,&xmax,&ymin,&ymax,&siz,&end)==5 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f%c", &xmin,&xmax,&ymin,&ymax,&siz,&opacity,&end)==6 || (std::sscanf(argument,"%f,%f,%f,%f,%f,%f,0%c%x%c", &xmin,&xmax,&ymin,&ymax,&siz,&opacity,&seph,&pattern,&end)==8 && seph=='x') || (std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%4095[0-9.eE,+-]%c", &xmin,&xmax,&ymin,&ymax,&siz,&opacity,color,&end)==7 && (pattern=~0U)) || (*color=0,std::sscanf(argument,"%f,%f,%f,%f,%f,%f,0%c%x,%4095[0-9.eE,+-]%c", &xmin,&xmax,&ymin,&ymax,&siz,&opacity, &seph,&pattern,color,&end)==9 && seph=='x')) { siz = cimg::round(siz); print(images,"Draw xy-axes on image%s, with x-range (%g,%g), y-range (%g,%g), " "font height %g, opacity %g, pattern 0x%x and color (%s).", gmic_selection, xmin,xmax, ymin,ymax, siz,opacity,pattern, *color?color:"default"); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); gmic_apply(img,draw_axes(xmin,xmax,ymin,ymax,col.data(),opacity, -60,-60,0,0,pattern,pattern,(unsigned int)siz)); } } else arg_error("axes"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='a'. //---------------------------- // Commands starting by '-b..' //---------------------------- else if (command1=='b') { #ifdef gmic_float // Blur. if (!std::strcmp("-blur",command)) { gmic_substitute_args(); unsigned int boundary = 1, is_gaussian = 0; float sigma = -1; char sep = 0; if ((std::sscanf(argument,"%f%c", &sigma,&end)==1 || (std::sscanf(argument,"%f%c%c", &sigma,&sep,&end)==2 && sep=='%') || std::sscanf(argument,"%f,%u%c", &sigma,&boundary,&end)==2 || (std::sscanf(argument,"%f%c,%u%c", &sigma,&sep,&boundary,&end)==3 && sep=='%') || std::sscanf(argument,"%f,%u,%u%c", &sigma,&boundary,&is_gaussian,&end)==3 || (std::sscanf(argument,"%f%c,%u,%u%c", &sigma,&sep,&boundary,&is_gaussian,&end)==4 && sep=='%')) && sigma>=0 && boundary<=1 && is_gaussian<=1) { print(images,"Blur image%s, with standard deviation %g%s, %s boundary conditions and %s kernel.", gmic_selection, sigma,sep=='%'?"%":"", boundary?"neumann":"dirichlet", is_gaussian?"gaussian":"quasi-gaussian"); if (sep=='%') sigma = -sigma; cimg_forY(selection,l) gmic_apply(images[selection[l]],blur(sigma,(bool)boundary,(bool)is_gaussian)); } else arg_error("blur"); is_released = false; ++position; continue; } // Bitwise right shift. gmic_arithmetic_item("-bsr", operator>>=, "Compute bitwise right shift of image%s by %g%s", gmic_selection,value,ssep,T, operator>>=, "Compute bitwise right shift of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise right shift of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise right shift of image%s"); // Bitwise left shift. gmic_arithmetic_item("-bsl", operator<<=, "Compute bitwise left shift of image%s by %g%s", gmic_selection,value,ssep,T, operator<<=, "Compute bitwise left shift of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise left shift of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise left shift of image%s"); // Bilateral filter. if (!std::strcmp("-bilateral",command)) { gmic_substitute_args(); float sigma_s = 0, sigma_r = 0; CImg ind; char sep = 0; if ((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f%c",indices,&sigma_s,&sigma_r,&end)==3 || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c,%f%c",indices,&sigma_s,&sep,&sigma_r,&end)==4 && sep=='%')) && (ind=selection2cimg(indices,images.size(),images_names,"-map",true, false,CImg::empty())).height()==1 && sigma_s>=0 && sigma_r>=0) { print(images,"Apply joint bilateral filter on image%s, with guide image [%u] and standard deviations %g%s and %g.", gmic_selection, *ind, sigma_s,sep=='%'?"%":"", sigma_r); const CImg guide = gmic_image_arg(*ind); if (sep=='%') sigma_s = -sigma_s; cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_bilateral(guide,sigma_s,sigma_r)); } else if ((std::sscanf(argument,"%f,%f%c", &sigma_s,&sigma_r,&end)==2 || (std::sscanf(argument,"%f%c,%f%c", &sigma_s,&sep,&sigma_r,&end)==3 && sep=='%')) && sigma_s>=0 && sigma_r>=0) { print(images,"Apply bilateral filter on image%s, with standard deviations %g%s " "and %g.", gmic_selection, sigma_s,sep=='%'?"%":"", sigma_r); if (sep=='%') sigma_s = -sigma_s; cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_bilateral(images[selection[l]],sigma_s,sigma_r)); } else arg_error("bilateral"); is_released = false; ++position; continue; } // Set 3d background color. if (!std::strcmp("-background3d",item)) { gmic_substitute_args(); float R = 0, G = 0, B = 0; CImg ind; char sep = 0; const int nb = std::sscanf(argument,"%f,%f,%f%c", &R,&G,&B,&end); R = cimg::round(R); G = cimg::round(G); B = cimg::round(B); if (nb>=1 && nb<=3) { switch (nb) { case 1 : background3d.assign(1,1,1,3,(unsigned char)R); break; case 2 : background3d.assign(1,1,1,3,(unsigned char)R,(unsigned char)G,0); break; case 3 : background3d.assign(1,1,1,3,(unsigned char)R,(unsigned char)G, (unsigned char)B); break; } print(images,"Set 3d background color to (%u,%u,%u).", (unsigned int)R,(unsigned int)G,(unsigned int)B); ++position; } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-background3d",true, false,CImg::empty())).height()==1) { print(images,"Set 3d background from image [%u].",*ind); background3d.assign(images[*ind],false); ++position; } else { print(images,"Reset 3d background to default."); background3d.assign(1,2,1,3).fill(32,64,32,116,64,96).resize(1,256,1,3,3); } continue; } #endif // #ifdef gmic_float } // command1=='b'. //---------------------------- // Commands starting by '-c..' //---------------------------- else if (command1=='c') { // Check expression or filename. if (!std::strcmp("-check",item)) { gmic_substitute_args(); CImg arg_check(argument,std::strlen(argument)+1); gmic_strreplace(arg_check); bool is_cond = false, is_filename = false; const CImg &img = images.size()?images.back():CImg::empty(); try { if (img.eval(arg_check)) is_cond = true; } catch (CImgException&) { is_filename = true; is_cond = false; try { std::FILE *file = cimg::fopen(arg_check,"r"); if (file) { is_cond = true; cimg::fclose(file); } } catch (CImgException&) {} } if (verbosity>0 || is_debug) { print(images,"Check %s '%s' -> %s.", is_filename?"filename":"expression", argument_text, is_filename?(is_cond?"found":"not found"):(is_cond?"true":"false")); } if (!is_cond) { if (scope.size()>1 && scope.back()[0]!='*') error(scope.back().data(),images,"Command '-check': %s '%s' %s.", is_filename?"filename":"expression", argument_text, is_filename?"does not exist":"is false"); else error(images,"Command '-check': %s '%s' %s.", is_filename?"filename":"expression", argument_text, is_filename?"does not exist":"is false"); } ++position; continue; } // Crop. if (!std::strcmp("-crop",command)) { gmic_substitute_args(); char st0[256], st1[256], st2[256], st3[256], st4[256], st5[256], st6[256], st7[256]; char sep0 = 0, sep1 = 0, sep2 = 0, sep3 = 0, sep4 = 0, sep5 = 0, sep6 = 0, sep7 = 0; float a0 = 0, a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0, a7 = 0; *st0 = *st1 = *st2 = *st3 = *st4 = *st5 = *st6 = *st7 = 0; unsigned int boundary = 0; if ((boundary=0,std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-]%c", st0,st1,&end)==2 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%u%c", st0,st1,&boundary,&end)==3) && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && boundary<=1) { print(images,"Crop image%s with selection (%g%s) x (%g%s) and %s boundary conditions.", gmic_selection, a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", boundary?"neumann":"dirichlet"); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int x0 = (int)cimg::round(sep0=='%'?a0*(img.width()-1)/100:a0), x1 = (int)cimg::round(sep1=='%'?a1*(img.width()-1)/100:a1); gmic_apply(img,crop(x0,x1,(bool)boundary)); } ++position; } else if ((boundary=0,std::sscanf(argument, "%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-]%c", st0,st1,st2,st3,&end)==4 || std::sscanf(argument, "%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%u%c", st0,st1,st2,st3,&boundary,&end)==5) && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%')) && (std::sscanf(st3,"%f%c",&a3,&end)==1 || (std::sscanf(st3,"%f%c%c",&a3,&sep3,&end)==2 && sep3=='%')) && boundary<=1) { print(images, "Crop image%s with selection (%g%s,%g%s) x (%g%s,%g%s) and %s boundary conditions.", gmic_selection, a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", a3,sep3=='%'?"%":"", boundary?"neumann":"dirichlet"); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int x0 = (int)cimg::round(sep0=='%'?a0*(img.width()-1)/100:a0), y0 = (int)cimg::round(sep1=='%'?a1*(img.height()-1)/100:a1), x1 = (int)cimg::round(sep2=='%'?a2*(img.width()-1)/100:a2), y1 = (int)cimg::round(sep3=='%'?a3*(img.height()-1)/100:a3); gmic_apply(img,crop(x0,y0,x1,y1,(bool)boundary)); } ++position; } else if ((boundary=0,std::sscanf(argument, "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", st0,st1,st2,st3,st4,st5,&end)==6 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%u%c", st0,st1,st2,st3,st4,st5,&boundary,&end)==7) && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%')) && (std::sscanf(st3,"%f%c",&a3,&end)==1 || (std::sscanf(st3,"%f%c%c",&a3,&sep3,&end)==2 && sep3=='%')) && (std::sscanf(st4,"%f%c",&a4,&end)==1 || (std::sscanf(st4,"%f%c%c",&a4,&sep4,&end)==2 && sep4=='%')) && (std::sscanf(st5,"%f%c",&a5,&end)==1 || (std::sscanf(st5,"%f%c%c",&a5,&sep5,&end)==2 && sep5=='%')) && boundary<=1) { print(images,"Crop image%s with selection (%g%s,%g%s,%g%s) x (%g%s,%g%s,%g%s) " "and %s boundary conditions.", gmic_selection, a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", a3,sep3=='%'?"%":"", a4,sep4=='%'?"%":"", a5,sep5=='%'?"%":"", boundary?"neumann":"dirichlet"); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int x0 = (int)cimg::round(sep0=='%'?a0*(img.width()-1)/100:a0), y0 = (int)cimg::round(sep1=='%'?a1*(img.height()-1)/100:a1), z0 = (int)cimg::round(sep2=='%'?a2*(img.depth()-1)/100:a2), x1 = (int)cimg::round(sep3=='%'?a3*(img.width()-1)/100:a3), y1 = (int)cimg::round(sep4=='%'?a4*(img.height()-1)/100:a4), z1 = (int)cimg::round(sep5=='%'?a5*(img.depth()-1)/100:a5); gmic_apply(img,crop(x0,y0,z0,x1,y1,z1,(bool)boundary)); } ++position; } else if ((boundary=0,std::sscanf(argument, "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-]%c", st0,st1,st2,st3,st4,st5,st6,st7,&end)==8 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%u%c", st0,st1,st2,st3,st4,st5,st6,st7,&boundary,&end)==9) && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%')) && (std::sscanf(st3,"%f%c",&a3,&end)==1 || (std::sscanf(st3,"%f%c%c",&a3,&sep3,&end)==2 && sep3=='%')) && (std::sscanf(st4,"%f%c",&a4,&end)==1 || (std::sscanf(st4,"%f%c%c",&a4,&sep4,&end)==2 && sep4=='%')) && (std::sscanf(st5,"%f%c",&a5,&end)==1 || (std::sscanf(st5,"%f%c%c",&a5,&sep5,&end)==2 && sep5=='%')) && (std::sscanf(st6,"%f%c",&a6,&end)==1 || (std::sscanf(st6,"%f%c%c",&a6,&sep6,&end)==2 && sep6=='%')) && (std::sscanf(st7,"%f%c",&a7,&end)==1 || (std::sscanf(st7,"%f%c%c",&a7,&sep7,&end)==2 && sep7=='%')) && boundary<=1) { print(images, "Crop image%s with selection (%g%s,%g%s,%g%s,%g%s) x (%g%s,%g%s,%g%s,%g%s) " "and %s boundary conditions.", gmic_selection, a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", a3,sep3=='%'?"%":"", a4,sep4=='%'?"%":"", a5,sep5=='%'?"%":"", a6,sep6=='%'?"%":"", a7,sep7=='%'?"%":"", boundary?"neumann":"dirichlet"); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int x0 = (int)cimg::round(sep0=='%'?a0*(img.width()-1)/100:a0), y0 = (int)cimg::round(sep1=='%'?a1*(img.height()-1)/100:a1), z0 = (int)cimg::round(sep2=='%'?a2*(img.depth()-1)/100:a2), v0 = (int)cimg::round(sep3=='%'?a3*(img.spectrum()-1)/100:a3), x1 = (int)cimg::round(sep4=='%'?a4*(img.width()-1)/100:a4), y1 = (int)cimg::round(sep5=='%'?a5*(img.height()-1)/100:a5), z1 = (int)cimg::round(sep6=='%'?a6*(img.depth()-1)/100:a6), v1 = (int)cimg::round(sep7=='%'?a7*(img.spectrum()-1)/100:a7); gmic_apply(img,crop(x0,y0,z0,v0,x1,y1,z1,v1,(bool)boundary)); } ++position; } else { #if cimg_display==0 print(images,"Crop image%s in interactive mode (skipped, no display support).", gmic_selection); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Crop image%s in interactive mode (skipped, no display available).", gmic_selection); } if (is_available_display) { print(images,"Crop image%s in interactive mode.", gmic_selection); CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); if (disp) disp.resize(cimg_fitscreen(img.width(),img.height(),1),false); else disp.assign(cimg_fitscreen(img.width(),img.height(),1),0,1); disp.set_title("%s: crop",gmic_basename(images_names[selection[l]].data())); const CImg s = img.get_select(disp,2); print(images,"Crop image [%d] with selection (%d,%d,%d) x (%d,%d,%d).", selection[l], s[0],s[1],s[2], s[3],s[4],s[5]); gmic_apply(img,crop(s[0],s[1],s[2],s[3],s[4],s[5])); } } #endif // #if cimg_display==0 } is_released = false; continue; } // Keep channels. if (!std::strcmp("-channels",command)) { gmic_substitute_args(); CImg ind0, ind1; float value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c]",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-channels",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%'))) { if (ind0) { value0 = images[*ind0].spectrum() - 1.0f; sep0 = 0; } print(images,"Keep channel %g%s of image%s.", value0,sep0=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.spectrum()-1)/100:value0); gmic_apply(img,channel(nvalue0)); } } else if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-channels",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%')) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep0,&end)==2 && sep0==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-channels",true, false,CImg::empty())).height()==1) || std::sscanf(argy,"%f%c",&value1,&end)==1 || (std::sscanf(argy,"%f%c%c",&value1,&sep1,&end)==2 && sep1=='%'))) { if (ind0) { value0 = images[*ind0].spectrum() - 1.0f; sep0 = 0; } if (ind1) { value1 = images[*ind1].spectrum() - 1.0f; sep1 = 0; } print(images,"Keep channels %g%s..%g%s of image%s.", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.spectrum()-1)/100:value0), nvalue1 = (int)cimg::round(sep1=='%'?value1*(img.spectrum()-1)/100:value1); gmic_apply(img,channels(nvalue0,nvalue1)); } } else arg_error("channels"); is_released = false; ++position; continue; } // Keep columns. if (!std::strcmp("-columns",command)) { gmic_substitute_args(); CImg ind0, ind1; float value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c]",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-columns",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%'))) { if (ind0) { value0 = images[*ind0].width() - 1.0f; sep0 = 0; } print(images,"Keep column %g%s of image%s.", value0,sep0=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.width()-1)/100:value0); gmic_apply(img,column(nvalue0)); } } else if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-columns",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%')) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep0,&end)==2 && sep0==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-columns",true, false,CImg::empty())).height()==1) || std::sscanf(argy,"%f%c",&value1,&end)==1 || (std::sscanf(argy,"%f%c%c",&value1,&sep1,&end)==2 && sep1=='%'))) { if (ind0) { value0 = images[*ind0].width() - 1.0f; sep0 = 0; } if (ind1) { value1 = images[*ind1].width() - 1.0f; sep1 = 0; } print(images,"Keep columns %g%s..%g%s of image%s.", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.width()-1)/100:value0), nvalue1 = (int)cimg::round(sep1=='%'?value1*(img.width()-1)/100:value1); gmic_apply(img,columns(nvalue0,nvalue1)); } } else arg_error("columns"); is_released = false; ++position; continue; } // Import custom commands. if (!std::strcmp("-command",item)) { gmic_substitute_args(); CImg arg_command(argument,std::strlen(argument)+1); gmic_strreplace(arg_command); std::FILE *file = std::fopen(arg_command,"rb"); unsigned int siz = 0; for (unsigned int l = 0; l<256; ++l) siz+=commands[l].size(); if (file) { print(images,"Import custom commands from file '%s'", argument_text); add_commands(file,commands_names,commands,commands_has_arguments); std::fclose(file); } else if (!cimg::strncasecmp(arg_command,"http://",7) || !cimg::strncasecmp(arg_command,"https://",8)) { // Try to read from network. print(images,"Import custom commands from URL '%s'", argument_text); char filename_tmp[512] = { 0 }; try { file = std::fopen(cimg::load_network_external(arg_command,filename_tmp),"r"); } catch (...) { file = 0; } if (file) { add_commands(file,commands_names,commands,commands_has_arguments); std::fclose(file); } else error(images,"Command '-command': Unable to reach custom commands file '%s' " "from network.", argument_text); std::remove(filename_tmp); } else { print(images,"Import custom commands from expression '%s'", argument_text); add_commands(arg_command,commands_names,commands,commands_has_arguments); } if (verbosity>=0 || is_debug) { unsigned int nb_added = 0; for (unsigned int l = 0; l<256; ++l) nb_added+=commands[l].size(); nb_added-=siz; std::fprintf(cimg::output()," (added %u command%s, total %u).", nb_added,nb_added>1?"s":"",siz+nb_added); std::fflush(cimg::output()); } ++position; continue; } // Camera input. if (!std::strcmp("-camera",item)) { gmic_substitute_args(); float cam_index = 0, nb_frames = 1, skip_frames = 0, capture_width = 0, capture_height = 0; unsigned int release_cam = 0; if ((std::sscanf(argument,"%f%c", &cam_index,&end)==1 || std::sscanf(argument,"%f,%f%c", &cam_index,&nb_frames,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &cam_index,&nb_frames,&skip_frames,&end)==3 || std::sscanf(argument,"%f,%f,%f,%u%c", &cam_index,&nb_frames,&skip_frames,&release_cam,&end)==4 || std::sscanf(argument,"%f,%f,%f,%u,%f,%f,%c", &cam_index,&nb_frames,&skip_frames,&release_cam, &capture_width,&capture_height,&end)==6) && cam_index>=0 && nb_frames>=0 && skip_frames>=0 && release_cam<=1 && ((!capture_width && !capture_height) || (capture_width>0 && capture_height>0))) ++position; cam_index = cimg::round(cam_index); nb_frames = cimg::round(nb_frames); skip_frames = cimg::round(skip_frames); capture_width = cimg::round(capture_width); capture_height = cimg::round(capture_height); if (release_cam) { print(images,"Release camera #%g.",cam_index); CImg::get_load_camera((unsigned int)cam_index,0,true); } else { if (capture_width) print(images,"Insert %g image%s from camera #%g, with %g frames skipping " "and resolution %gx%g.", cam_index,nb_frames,nb_frames>1?"s":"",skip_frames, capture_width,capture_height); else print(images,"Insert %g image%s from camera #%g, with %g frames skipping.", cam_index,nb_frames,nb_frames>1?"s":"",skip_frames); cimg_snprintf(title,_title.size(),"[Camera #%g]",cam_index); const CImg _title = CImg::string(title); if (nb_frames>1) { std::fputc('\n',cimg::output()); std::fflush(cimg::output()); } for (unsigned int k = 0; k<(unsigned int)nb_frames; ++k) { if (nb_frames>1 && (verbosity>=0 || is_debug)) { std::fprintf(cimg::output(),"\r > Image %u/%u ", k+1,(unsigned int)nb_frames); std::fflush(cimg::output()); } CImg::get_load_camera((unsigned int)cam_index,(unsigned int)skip_frames,false, (unsigned int)capture_width,(unsigned int)capture_height). move_to(images); images_names.insert(_title); } } is_released = false; continue; } #ifdef gmic_float // Cut. if (!std::strcmp("-cut",command)) { gmic_substitute_args(); CImg ind0, ind1; double value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-cut",true, false,CImg::empty())).height()==1) || (std::sscanf(argx,"%lf%c%c",&value0,&sep0,&end)==2 && sep0=='%') || std::sscanf(argx,"%lf%c",&value0,&end)==1) && ((std::sscanf(argy,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep1,&end)==2 && sep1==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-cut",true, false,CImg::empty())).height()==1) || (std::sscanf(argy,"%lf%c%c",&value1,&sep1,&end)==2 && sep1=='%') || std::sscanf(argy,"%lf%c",&value1,&end)==1)) { if (ind0) { value0 = images[*ind0].min(); sep0 = 0; } if (ind1) { value1 = images[*ind1].max(); sep1 = 0; } print(images,"Cut image%s in range [%g%s,%g%s].", gmic_selection, value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":""); cimg_forY(selection,l) { CImg &img = gmic_check(images[selection[l]]); double vmin = 0, vmax = 0, nvalue0 = value0, nvalue1 = value1; if (sep0=='%' || sep1=='%') { if (img) vmax = (double)img.max_min(vmin); if (sep0=='%') nvalue0 = vmin + (vmax-vmin)*value0/100; if (sep1=='%') nvalue1 = vmin + (vmax-vmin)*value1/100; } gmic_apply(img,cut((T)nvalue0,(T)nvalue1)); } ++position; } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-cut",true, false,CImg::empty())).height()==1) { if (images[*ind0]) value1 = (double)images[*ind0].max_min(value0); print(images,"Cut image%s in range [%g,%g].", gmic_selection, value0, value1); cimg_forY(selection,l) gmic_apply(images[selection[l]],cut((T)value0,(T)value1)); ++position; } else { #if cimg_display==0 print(images,"Cut image%s in interactive mode (skipped, no display support).", gmic_selection); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Cut image%s in interactive mode (skipped, no display available).", gmic_selection); } if (is_available_display) { print(images,"Cut image%s in interactive mode.", gmic_selection); CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { CImg &img = gmic_check(images[selection[l]]); if (img) { CImg visu = img.depth()>1?img.get_projections2d(img.width()/2, img.height()/2, img.depth()/2). channels(0,cimg::min(3,img.spectrum())-1): img.get_channels(0,cimg::min(3,img.spectrum()-1)); const unsigned int w = CImgDisplay::_fitscreen(visu.width(),visu.height(),1,256,-85,false), h = CImgDisplay::_fitscreen(visu.width(),visu.height(),1,256,-85,true); if (disp) disp.resize(w,h,false); else disp.assign(w,h,0,0); double vmin = 0, vmax = (double)img.max_min(vmin), percent0 = 0, percent1 = 100; bool stopflag = false, is_clicked = false; int omx = -1, omy = -1; CImg res; for (disp.show().flush(); !stopflag; ) { const unsigned char white[] = { 255,255,255 }, black[] = { 0,0,0 }; const unsigned int key = disp.key(); if (!res) disp.display((res=visu.get_cut((T)(vmin + percent0*(vmax-vmin)/100), (T)(vmin + percent1*(vmax-vmin)/100)). resize(disp).normalize(0,255)). draw_text(0,0,"Cut [%g,%g] = [%.3g%%,%.3g%%]", white,black,0.7f,13, (double)(vmin + percent0*(vmax-vmin)/100), (double)(vmin + percent1*(vmax-vmin)/100), percent0,percent1)). set_title("%s (%dx%dx%dx%d)", gmic_basename(images_names[selection[l]].data()), img.width(),img.height(),img.depth(),img.spectrum()).wait(); const int mx = disp.mouse_x(), my = disp.mouse_y(); if (disp.button()) { if (mx>=0 && my>=0 && (mx!=omx || my!=omy)) { percent0 = (my-16)*100.0/(disp.height()-32); percent1 = (mx-16)*100.0/(disp.width()-32); if (percent0<0) percent0 = 0; else if (percent0>101) percent0 = 101; if (percent1<0) percent1 = 0; else if (percent1>101) percent1 = 101; if (percent0>percent1) cimg::swap(percent0,percent1); omx = mx; omy = my; res.assign(); } is_clicked = true; } else if (is_clicked) break; if (disp.is_closed() || (key && key!=cimg::keyCTRLLEFT)) stopflag = true; if (key==cimg::keyD && disp.is_keyCTRLLEFT()) { disp.resize(cimg_fitscreen(3*disp.width()/2,3*disp.height()/2,1), stopflag=false).set_key(cimg::keyD,false); res.assign(); } if (key==cimg::keyC && disp.is_keyCTRLLEFT()) { disp.resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1), stopflag=false).set_key(cimg::keyC,false); res.assign(); } if (disp.is_resized()) { disp.resize(false); res.assign(); } } print(images,"Cut image [%d] in range [%g,%g] = [%.3g%%,%.3g%%].", selection[l], (double)(vmin + percent0*(vmax-vmin)/100), (double)(vmin + percent1*(vmax-vmin)/100), percent0,percent1); gmic_apply(img,cut((T)(vmin + percent0*(vmax-vmin)/100), (T)(vmin + percent1*(vmax-vmin)/100))); } else { gmic_apply(img,replace(img)); } } } #endif // #if cimg_display==0 } is_released = false; continue; } // Cosine. gmic_simple_item("-cos",cos,"Compute pointwise cosine of image%s."); // Convolve. if (!std::strcmp("-convolve",command)) { gmic_substitute_args(); unsigned int boundary = 1, is_normalized = 0; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&boundary,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&boundary,&is_normalized,&end)==3) && (ind=selection2cimg(indices,images.size(),images_names,"-convolve",true, false,CImg::empty())).height()==1 && boundary<=1) { print(images, "Convolve image%s with mask [%u] and %s boundary conditions, with%s normalization.", gmic_selection, *ind, boundary?"neumann":"dirichlet", is_normalized?"":"out"); const CImg mask = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],convolve(mask,boundary,(bool)is_normalized)); } else arg_error("convolve"); is_released = false; ++position; continue; } // Correlate. if (!std::strcmp("-correlate",command)) { gmic_substitute_args(); unsigned int boundary = 1, is_normalized = 0; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&boundary,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&boundary,&is_normalized,&end)==3) && (ind=selection2cimg(indices,images.size(),images_names,"-correlate",true, false,CImg::empty())).height()==1 && boundary<=1) { print(images, "Correlate image%s with mask [%u] and %s boundary conditions, with%s normalization.", gmic_selection, *ind, boundary?"neumann":"dirichlet", is_normalized?"":"out"); const CImg mask = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],correlate(mask,boundary,(bool)is_normalized)); } else arg_error("correlate"); is_released = false; ++position; continue; } // Set 3d object color. if (!std::strcmp("-color3d",command) || !std::strcmp("-col3d",command)) { gmic_substitute_args(); float R = 200, G = 200, B = 200, opacity = -1; if ((std::sscanf(argument,"%f%c", &R,&end)==1 && ((B=G=R),1)) || (std::sscanf(argument,"%f,%f%c", &R,&G,&end)==2 && ((B=0),1)) || std::sscanf(argument,"%f,%f,%f%c", &R,&G,&B,&end)==3 || std::sscanf(argument,"%f,%f,%f,%f%c", &R,&G,&B,&opacity,&end)==4) { const bool set_opacity = (opacity>=0); if (set_opacity) print(images,"Set colors of 3d object%s to (%g,%g,%g), with opacity %g.", gmic_selection, R,G,B, opacity); else print(images,"Set color of 3d object%s to (%g,%g,%g).", gmic_selection, R,G,B); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(true,message)) error(images,"Command '-color3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,color_CImg3d(R,G,B,opacity,true,set_opacity)); } } else arg_error("color3d"); is_released = false; ++position; continue; } // Hyperbolic cosine. gmic_simple_item("-cosh",cosh,"Compute pointwise hyperbolic cosine of image%s."); #endif // #ifdef gmic_float } // command1=='c'. //---------------------------- // Commands starting by '-d..' //---------------------------- else if (command1=='d') { // Done. if (!std::strcmp("-done",item)) { const CImg &s = scope.back(); if (s[0]!='*' || s[1]!='r') error(images,"Command '-done': Not associated to a '-repeat' command " "within the same scope."); if (--repeatdones.back()(1)) { ++repeatdones.back()(2); position = repeatdones.back()(0); } else { if (verbosity>0 || is_debug) print(images,"End 'repeat..done' block."); repeatdones.remove(); scope.remove(); } continue; } // Do..while. if (!std::strcmp("-do",item)) { CImg::string("*do").move_to(scope); if (verbosity>0 || is_debug) print(images,"Start '-do..-while' block."); CImg::vector(position).move_to(dowhiles); continue; } // Enable debug mode (useful when '-debug' is invoked from a custom command). if (!std::strcmp("-debug",item)) { is_debug = true; continue; } #ifdef gmic_float // Divide. gmic_arithmetic_item("-div", operator/=, "Divide image%s by %g%s", gmic_selection,value,ssep,double, div, "Divide image%s by image [%d]", gmic_selection,ind[0], "Divide image%s by expression %s", gmic_selection,argument_text, "Divide image%s"); // Distance function. if (!std::strcmp("-distance",command)) { gmic_substitute_args(); char sepx = 0, sepy = 0, sepz = 0, sep1 = 0, sep2 = 0; float x = 0, y = 0, z = 0; CImg ind; double value = 0; int metric = 2; if ((std::sscanf(argument,"%lf%c", &value,&end)==1 || (std::sscanf(argument,"%lf%c%c", &value,&sep1,&end)==2 && sep1=='%') || std::sscanf(argument,"%lf,%d%c", &value,&metric,&end)==2 || (std::sscanf(argument,"%lf%c,%d%c", &value,&sep1,&metric,&end)==3 && sep1=='%')) && metric>=0 && metric<=3) { print(images,"Compute distance map to isovalue %g%s in image%s, with %s metric.", value,sep1=='%'?"%":"", gmic_selection, metric==0?"chebyshev":metric==1?"manhattan":metric==2?"euclidean": "squared-euclidean"); cimg_forY(selection,l) { CImg &img = gmic_check(images[selection[l]]); double nvalue = value; if (sep1=='%' && img) { double vmin, vmax = (double)img.max_min(vmin); nvalue = vmin + value*(vmax-vmin)/100; } gmic_apply(img,distance((T)nvalue,metric)); } } else if ((std::sscanf(argument,"%lf,[%255[a-zA-Z0-9_.%+-]%c%c", &value,indices,&sep2,&end)==3 || (std::sscanf(argument,"%lf%c,[%255[a-zA-Z0-9_.%+-]%c%c", &value,&sep1,indices,&sep2,&end)==4 && sep1=='%')) && sep2==']' && (ind=selection2cimg(indices,images.size(),images_names,"-distance",true, false,CImg::empty())).height()==1) { print(images,"Compute distance map to isovalue %g%s in image%s, with metric [%u].", value,sep1=='%'?"%":"", gmic_selection,*ind); const CImg custom_metric = gmic_image_arg(*ind); cimg_forY(selection,l) { CImg &img = gmic_check(images[selection[l]]); double nvalue = value; if (sep1=='%' && img) { double vmin, vmax = (double)img.max_min(vmin); nvalue = vmin + value*(vmax-vmin)/100; } gmic_apply(img,distance((T)nvalue,custom_metric)); } } else if (std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argz,&end)==3 && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%')) && x>=0 && y>=0 && z>=0) { print(images,"Compute distance map to point (%g%s,%g%s,%g%s) for potential map%s.", x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z); gmic_apply(img,distance_dijkstra(nx,ny,nz)); } } else arg_error("distance"); is_released = false; ++position; continue; } // Dilate. if (!std::strcmp("-dilate",command)) { gmic_substitute_args(); float sx = 3, sy = 3, sz = 1; unsigned int boundary = 1, is_normalized = 0; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&boundary,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&boundary,&is_normalized,&end)==3) && (ind=selection2cimg(indices,images.size(),images_names,"-dilate",true, false,CImg::empty())).height()==1 && boundary<=1) { print(images,"Dilate image%s with mask [%u] and %s boundary conditions, with%s normalization.", gmic_selection, *ind, boundary?"neumann":"dirichlet", is_normalized?"":"out"); const CImg mask = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],dilate(mask,boundary, (bool)is_normalized)); } else if ((std::sscanf(argument,"%f%c", &sx,&end)==1) && sx>=0) { sx = cimg::round(sx); print(images,"Dilate image%s with mask of size %g and neumann boundary conditions.", gmic_selection, sx); cimg_forY(selection,l) gmic_apply(images[selection[l]],dilate((unsigned int)sx)); } else if ((std::sscanf(argument,"%f,%f%c", &sx,&sy,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &sx,&sy,&sz,&end)==3) && sx>=0 && sy>=0 && sz>=0) { sx = cimg::round(sx); sy = cimg::round(sy); sz = cimg::round(sz); print(images,"Dilate image%s with %gx%gx%g mask and neumann boundary conditions.", gmic_selection, sx,sy,sz); cimg_forY(selection,l) gmic_apply(images[selection[l]],dilate((unsigned int)sx,(unsigned int)sy, (unsigned int)sz)); } else arg_error("dilate"); is_released = false; ++position; continue; } // Set double-sided mode for 3d rendering. if (!std::strcmp("-double3d",item)) { gmic_substitute_args(); int value = 0; if (std::sscanf(argument,"%d%c", &value,&end)==1) { is_double3d = (bool)value; print(images,"%s double-sided mode for 3d rendering.", is_double3d?"Enable":"Disable"); } else arg_error("double3d"); ++position; continue; } // Patch-based smoothing. if (!std::strcmp("-denoise",command)) { gmic_substitute_args(); float sigma_s = 10, sigma_r = 10, smoothness = 1; unsigned int is_fast_approximation = 0; float psize = 5, rsize = 6; if ((std::sscanf(argument,"%f%c", &sigma_s,&end)==1 || std::sscanf(argument,"%f,%f%c", &sigma_s,&sigma_r,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &sigma_s,&sigma_r,&psize,&end)==3 || std::sscanf(argument,"%f,%f,%f,%f%c", &sigma_s,&sigma_r,&psize,&rsize,&end)==4 || std::sscanf(argument,"%f,%f,%f,%f,%f%c", &sigma_s,&sigma_r,&psize,&rsize,&smoothness,&end)==5 || std::sscanf(argument,"%f,%f,%f,%f,%f,%u%c", &sigma_s,&sigma_r,&psize,&rsize,&smoothness, &is_fast_approximation,&end)==6) && sigma_s>=0 && sigma_r>=0 && psize>=0 && rsize>=0 && is_fast_approximation<=1) { psize = cimg::round(psize); rsize = cimg::round(rsize); print(images,"Denoise image%s using %gx%g patchs, with standard deviations %lg,%g, " "lookup size %g and smoothness %g.", gmic_selection, psize, psize, sigma_s, sigma_r, rsize, smoothness); cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_patch(sigma_s,sigma_r, (unsigned int)psize,(unsigned int)rsize, smoothness, (bool)is_fast_approximation)); } else arg_error("denoise"); is_released = false; ++position; continue; } // Deriche filter. if (!std::strcmp("-deriche",command)) { gmic_substitute_args(); unsigned int boundary = 1, order = 0; char sep = 0, axis = 0; float sigma = 0; if ((std::sscanf(argument,"%f,%u,%c%c",&sigma,&order,&axis,&end)==3 || (std::sscanf(argument,"%f%c,%u,%c%c",&sigma,&sep,&order,&axis,&end)==4 && sep=='%') || std::sscanf(argument,"%f,%u,%c,%u%c",&sigma,&order,&axis,&boundary,&end)==4 || (std::sscanf(argument,"%f%c,%u,%c,%u%c", &sigma,&sep,&order,&axis,&boundary,&end)==5 && sep=='%')) && sigma>=0 && order<=2 && (axis=='x' || axis=='y' || axis=='z' || axis=='c') && boundary<=1) { print(images,"Apply Deriche filter on image%s, with standard " "deviation %g%s, order %d, axis '%c' and %s boundary conditions.", gmic_selection, sigma,sep=='%'?"%":"", order,axis, boundary?"neumann":"dirichlet"); if (sep=='%') sigma = -sigma; cimg_forY(selection,l) gmic_apply(images[selection[l]],deriche(sigma,order,axis,(bool)boundary)); } else arg_error("deriche"); is_released = false; ++position; continue; } // Dijkstra algorithm. if (!std::strcmp("-dijkstra",command)) { gmic_substitute_args(); float snode = 0, enode = 0; if (std::sscanf(argument,"%f,%f%c",&snode,&enode,&end)==2 && snode>=0 && enode>=0) { snode = cimg::round(snode); enode = cimg::round(enode); print(images,"Compute minimal path from adjacency matri%s%s with the " "Dijkstra algorithm.", selection.height()>1?"ce":"x",gmic_selection); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; CImg name = images_names[ind].get_mark(); if (is_get_version) { CImg path, dist = gmic_check(images[ind]).get_dijkstra((unsigned int)snode, (unsigned int)enode, path); images_names.insert(name.copymark()); name.move_to(images_names); dist.move_to(images); path.move_to(images); } else { CImg path; gmic_check(images[ind]).dijkstra((unsigned int)snode,(unsigned int)enode,path); images_names.insert(name.get_copymark(),ind+1); name.move_to(images_names[ind]); images.insert(path,ind+1); ++off; } } } else arg_error("dijkstra"); is_released = false; ++position; continue; } // Estimate displacement field. if (!std::strcmp("-displacement",command)) { gmic_substitute_args(); float nb_scales = 0, nb_iterations = 10000, smoothness = 0.1f, precision = 5.0f; unsigned int is_backward = 1; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c", indices,&smoothness,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f%c", indices,&smoothness,&precision,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f%c", indices,&smoothness,&precision,&nb_scales,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f%c", indices,&smoothness,&precision,&nb_scales,&nb_iterations,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%u%c", indices,&smoothness,&precision,&nb_scales,&nb_iterations, &is_backward,&end)==6) && (ind=selection2cimg(indices,images.size(),images_names,"-displacement",true, false,CImg::empty())).height()==1 && precision>=0 && nb_scales>=0 && nb_iterations>=0 && is_backward<=1) { nb_scales = cimg::round(nb_scales); nb_iterations = cimg::round(nb_iterations); print(images,"Estimate displacement field from source [%u] to image%s, with " "%s smoothness %g, precision %g, %g scales, %g iterations, in %s direction.", *ind, gmic_selection, smoothness>=0?"isotropic":"anisotropic",cimg::abs(smoothness), precision, nb_scales, nb_iterations, is_backward?"backward":"forward"); const CImg source = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],displacement(source,smoothness,precision, (unsigned int)nb_scales, (unsigned int)nb_iterations, (bool)is_backward)); } else arg_error("displacement"); is_released = false; ++position; continue; } // Display. if (!std::strcmp("-display",command)) { gmic_substitute_args(); unsigned int X,Y,Z, XYZ[3]; bool is_xyz = false; if (std::sscanf(argument,"%u,%u,%u%c", &X,&Y,&Z,&end)==3) { is_xyz = true; ++position; } XYZ[0] = X; XYZ[1] = Y; XYZ[2] = Z; display_images(images,images_names,selection,is_xyz?XYZ:0); is_released = true; continue; } // Display 3d object. if (!std::strcmp("-display3d",command)) { display_objects3d(images,images_names,selection); is_released = true; continue; } #endif // #ifdef gmic_float } // command1=='d'. //---------------------------- // Commands starting by '-e..' //---------------------------- else if (command1=='e') { // Endif. if (!std::strcmp("-endif",item)) { const CImg &s = scope.back(); if (s[0]!='*' || s[1]!='i') error(images, "Command '-endif': Not associated to a '-if' command within the same scope."); if (verbosity>0 || is_debug) print(images,"End 'if..endif' block."); check_elif = false; scope.remove(); continue; } // Else and elif. if (!std::strcmp("-else",item) || (!std::strcmp("-elif",item) && !check_elif)) { const CImg &s = scope.back(); if (s[0]!='*' || s[1]!='i') error(images, "Command '%s': Not associated to a '-if' command within the same scope.", item); check_elif = false; if (verbosity>0 || is_debug) print(images,"Reach '-else' block."); for (int nb_ifs = 1; nb_ifs && position &s = scope.back(); if (s[0]!='*' || s[1]!='l') error(images,"Command '-endlocal': Not associated to a '-local' command within " "the same scope."); if (verbosity>0 || is_debug) print(images,"End 'local..endlocal' block."); is_endlocal = true; break; } // Echo. if (!std::strcmp("-echo",command)) { if (verbosity>=0 || is_debug) { gmic_substitute_args(); CImg str(argument,std::strlen(argument)+1); cimg::strunescape(str); if (is_restriction) print(images,selection,"%s",str.data()); else print(images,"%s",str.data()); } ++position; continue; } // Exec. if (!std::strcmp("-exec",item)) { gmic_substitute_args(); #ifdef gmic_noexec print(images,"Execute external command '%s' (skipped, no exec allowed).", argument_text); #else // #ifdef gmic_noexec print(images,"Execute external command '%s'\n", argument_text); CImg arg_exec(argument,std::strlen(argument)+1); gmic_strreplace(arg_exec); const int errcode = cimg::system(arg_exec); cimg_snprintf(title,_title.size(),"%d",errcode); CImg::string(title).move_to(status); if (errcode) print(images,"Command '-exec' returned error code '%d'.", errcode); #endif // #ifdef gmic_noexec ++position; continue; } // Error. if (!std::strcmp("-error",command)) { gmic_substitute_args(); CImg str(argument,std::strlen(argument)+1); cimg::strunescape(str); if (is_restriction) error(images,selection,"%s",str.data()); else error(images,"%s",str.data()); } // Invert endianness. gmic_simple_item("-endian",invert_endianness,"Invert data endianness of image%s."); #ifdef gmic_float // Exponential. gmic_simple_item("-exp",exp,"Compute pointwise exponential of image%s."); // Test equality. gmic_arithmetic_item("-eq", operator_eq, "Compute boolean equality between image%s and %g%s", gmic_selection,value,ssep,T, operator_eq, "Compute boolean equality between image%s and image [%d]", gmic_selection,ind[0], "Compute boolean equality between image%s and expression %s'", gmic_selection,argument_text, "Compute boolean equality between image%s"); // Draw ellipse. if (!std::strcmp("-ellipse",command)) { gmic_substitute_args(); char argR[256], argr[256]; *argx = *argy = *argR = *argr = *color = 0; float x = 0, y = 0, R = 0, r = 0, angle = 0, opacity = 1; char sepx = 0, sepy = 0, sepR = 0, sepr = 0, seph = 0; unsigned int pattern = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argR,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c", argx,argy,argR,argr,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f%c", argx,argy,argR,argr,&angle,&end)==5 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f,%f%c", argx,argy,argR,argr,&angle,&opacity,&end)==6 || (std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f,%f,0%c%x%c", argx,argy,argR,argr,&angle,&opacity,&seph,&pattern,&end)==8 && seph=='x') || (std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f,%f,%4095[0-9.eE,+-]%c", argx,argy,argR,argr,&angle,&opacity,color,&end)==7 && !(pattern=0))|| (*color=0,std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%f,%f,0%c%x,%4095[0-9.eE,+-]%c", argx,argy,argR,argr,&angle,&opacity,&seph,&pattern, color,&end)==9 && seph=='x')) && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (std::sscanf(argR,"%f%c",&R,&end)==1 || (std::sscanf(argR,"%f%c%c",&R,&sepR,&end)==2 && sepR=='%')) && (!*argr || std::sscanf(argr,"%f%c",&r,&end)==1 || (std::sscanf(argr,"%f%c%c",&r,&sepr,&end)==2 && sepr=='%'))) { if (!*argr) r = R; print(images,"Draw %s ellipse at (%g%s,%g%s) with radii (%g%s,%g%s) on image%s, " "with orientation %g°, opacity %g and color (%s).", seph=='x'?"outlined":"filled", x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", R,sepR=='%'?"%":"", r,sepr=='%'?"%":"", gmic_selection, angle, opacity, *color?color:"default"); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); const float rmax = std::sqrt((float)cimg::sqr(img.width()) + cimg::sqr(img.height())); const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y); const float nR = cimg::round(sepR=='%'?R*rmax/100:R), nr = cimg::round(sepr=='%'?r*rmax/100:r); if (seph=='x') { if (nR==nr) { gmic_apply(img,draw_circle(nx,ny,(int)nR,col.data(),opacity,~0U));} else { gmic_apply(img,draw_ellipse(nx,ny,nR,nr,angle,col.data(),opacity,~0U)); } } else { if (nR==nr) { gmic_apply(img,draw_circle(nx,ny,(int)nR,col.data(),opacity)); } else { gmic_apply(img,draw_ellipse(nx,ny,nR,nr,angle,col.data(),opacity)); } } } } else arg_error("ellipse"); is_released = false; ++position; continue; } // Equalize. if (!std::strcmp("-equalize",command)) { gmic_substitute_args(); char sep = 0, sep0 = 0, sep1 = 0; double value0 = 0, value1 = 0; float nb_levels = 256; if ((std::sscanf(argument,"%f%c", &nb_levels,&end)==1 || (std::sscanf(argument,"%f%c%c", &nb_levels,&sep,&end)==2 && sep=='%') || std::sscanf(argument,"%f,%lf,%lf%c", &nb_levels,&value0,&value1,&end)==3 || (std::sscanf(argument,"%f%c,%lf,%lf%c", &nb_levels,&sep,&value0,&value1,&end)==4 && sep=='%') || (std::sscanf(argument,"%f,%lf%c,%lf%c", &nb_levels,&value0,&sep0,&value1,&end)==4 && sep0=='%') || (std::sscanf(argument,"%f%c,%lf%c,%lf%c", &nb_levels,&sep,&value0,&sep0,&value1,&end)==5 && sep=='%' && sep0=='%') || (std::sscanf(argument,"%f,%lf,%lf%c%c", &nb_levels,&value0,&value1,&sep1,&end)==4 && sep1=='%') || (std::sscanf(argument,"%f%c,%lf,%lf%c%c", &nb_levels,&sep,&value0,&value1,&sep1,&end)==5 && sep=='%' && sep1=='%') || (std::sscanf(argument,"%f,%lf%c,%lf%c%c", &nb_levels,&value0,&sep0,&value1,&sep1,&end)==5 && sep0=='%' && sep1=='%') || (std::sscanf(argument,"%f%c,%lf%c,%lf%c%c", &nb_levels,&sep,&value0,&sep0,&value1,&sep1,&end)==6 && sep=='%' && sep0=='%' && sep1=='%')) && nb_levels>=0.5) { nb_levels = cimg::round(nb_levels); if (value0==value1 && value0==0) { value1 = 100; sep0 = sep1 = '%'; } print(images,"Equalize histogram of image%s, with %g%s levels in range [%g%s,%g%s].", gmic_selection, nb_levels,sep=='%'?"%":"", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":""); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); double vmin = 0, vmax = 0, nvalue0 = value0, nvalue1 = value1; if (sep0=='%' || sep1=='%') { if (img) vmax = (double)img.max_min(vmin); if (sep0=='%') nvalue0 = vmin + (vmax-vmin)*value0/100; if (sep1=='%') nvalue1 = vmin + (vmax-vmin)*value1/100; } const unsigned int _nb_levels = cimg::max(1U,(unsigned int)cimg::round(sep=='%'? nb_levels*(1+nvalue1-nvalue0)/100: nb_levels)); gmic_apply(images[selection[l]],equalize(_nb_levels,(T)nvalue0,(T)nvalue1)); } } else arg_error("equalize"); is_released = false; ++position; continue; } // Erode. if (!std::strcmp("-erode",command)) { gmic_substitute_args(); unsigned int boundary = 1, is_normalized = 0; float sx = 3, sy = 3, sz = 1; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&boundary,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&boundary,&is_normalized,&end)==3) && (ind=selection2cimg(indices,images.size(),images_names,"-erode",true, false,CImg::empty())).height()==1 && boundary<=1) { print(images,"Erode image%s with mask [%u] and %s boundary conditions, with%s normalization.", gmic_selection, *ind, boundary?"neumann":"dirichlet", is_normalized?"":"out"); const CImg mask = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],erode(mask,boundary,(bool)is_normalized)); } else if ((std::sscanf(argument,"%f%c", &sx,&end)==1) && sx>=0) { sx = cimg::round(sx); print(images,"Erode image%s with mask of size %g and neumann boundary conditions.", gmic_selection, sx); cimg_forY(selection,l) gmic_apply(images[selection[l]],erode((unsigned int)sx)); } else if ((std::sscanf(argument,"%f,%f%c", &sx,&sy,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &sx,&sy,&sz,&end)==3) && sx>=0 && sy>=0 && sz>=0) { sx = cimg::round(sx); sy = cimg::round(sy); sz = cimg::round(sz); print(images,"Erode image%s with %gx%gx%g mask and neumann boundary conditions.", gmic_selection, sx,sy,sz); cimg_forY(selection,l) gmic_apply(images[selection[l]],erode((unsigned int)sx,(unsigned int)sy, (unsigned int)sz)); } else arg_error("erode"); is_released = false; ++position; continue; } // Build 3d elevation. if (!std::strcmp("-elevation3d",command)) { gmic_substitute_args(); CImg::Tfloat> elev; CImg ind; float fact = 1; char sep = 0; *formula = 0; if (std::sscanf(argument,"'%4095[^']'%c",formula,&end)==1) { print(images,"Build 3d elevation of image%s, with elevation formula '%s'.", gmic_selection, formula); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); elev.assign(img.width(),img.height(),1,1,formula,true); CImgList primitives; CImgList colors; CImg vertices = img.get_elevation3d(primitives,colors,elev); vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } ++position; } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-elevation3d",true, false,CImg::empty())).height()==1) { print(images,"Build 3d elevation of image%s, with elevation map [%u].", gmic_selection, *ind); if (images[*ind].spectrum()>1) images[*ind].get_norm().move_to(elev); else elev = gmic_image_arg(*ind); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); CImgList primitives; CImgList colors; CImg vertices = img.get_elevation3d(primitives,colors,elev); vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } ++position; } else { if (std::sscanf(argument,"%f%c", &fact,&end)==1) { print(images,"Build 3d elevation of image%s, with elevation factor %g.", gmic_selection, fact); ++position; } else print(images,"Build 3d elevation of image%s.", gmic_selection); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); CImgList primitives; CImgList colors; elev.assign(); if (fact==1 && img.spectrum()==1) elev = img.get_shared(); else if (img.spectrum()>1) (img.get_norm().move_to(elev))*=fact; else (elev = img)*=fact; CImg vertices = img.get_elevation3d(primitives,colors,elev); vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } } is_released = false; continue; } // Eigenvalues/eigenvectors. if (!std::strcmp("-eigen",command)) { print(images,"Compute eigen-values/vectors of symmetric matri%s or matrix field%s.", selection.height()>1?"ce":"x",gmic_selection); CImg val, vec; unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; CImg name = images_names[ind].get_mark(); gmic_check(images[ind]).gmic_symmetric_eigen(val,vec); if (is_get_version) { images_names.insert(name.copymark()); name.move_to(images_names); val.move_to(images); vec.move_to(images); } else { images_names.insert(name.get_copymark(),ind+1); name.move_to(images_names[ind]); val.move_to(images[ind].assign()); images.insert(vec,ind+1); ++off; } } is_released = false; continue; } // Apply Eikonal PDE. if (!std::strcmp("-eikonal",command)) { gmic_substitute_args(); float band_size = 0, nb_iter = 0; if ((std::sscanf(argument,"%f%c", &nb_iter,&end)==1 || std::sscanf(argument,"%f,%f%c", &nb_iter,&band_size,&end)==2) && nb_iter>=0 && band_size>=0) { nb_iter = cimg::round(nb_iter); print(images, "Apply %g iterations of eikonal equation on image%s, with band size %g.", nb_iter, gmic_selection, band_size); cimg_forY(selection,l) gmic_apply(images[selection[l]],distance_eikonal((unsigned int)nb_iter,band_size)); } else arg_error("eikonal"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='e'. //---------------------------- // Commands starting by '-f..' //---------------------------- else if (command1=='f') { #ifdef gmic_float // Fill. if (!std::strcmp("-fill",command)) { gmic_substitute_args(); double value = 0; CImg ind; char sep = 0; if (std::sscanf(argument,"%lf%c", &value,&end)==1) { print(images,"Fill image%s with %g.", gmic_selection, value); cimg_forY(selection,l) gmic_apply(images[selection[l]],fill((T)value)); } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-fill",true, false,CImg::empty())).height()==1) { print(images,"Fill image%s with values from image [%u].", gmic_selection, *ind); const CImg values = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],fill(values)); } else { print(images,"Fill image%s with expression '%s'.", gmic_selection, argument_text); CImg arg_fill(argument,std::strlen(argument)+1); cimg::strpare(arg_fill,'\'',true,false); gmic_strreplace(arg_fill); cimg_forY(selection,l) gmic_apply(images[selection[l]],fill(arg_fill.data(),true)); } is_released = false; ++position; continue; } // Flood fill. if (!std::strcmp("-flood",command)) { gmic_substitute_args(); float x = 0, y = 0, z = 0, tolerance = 0, opacity = 1; unsigned int is_high_connectivity = 0; char sepx = 0, sepy = 0, sepz = 0; *argx = *argy = *argz = *color = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-]%c", argx,&end)==1 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", argx,argy,argz,&tolerance,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%u%c", argx,argy,argz,&tolerance,&is_high_connectivity,&end)==5 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%u,%f%c", argx,argy,argz,&tolerance,&is_high_connectivity,&opacity,&end)==6 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%u,%f," "%4095[0-9.eE,+-]%c", argx,argy,argz,&tolerance,&is_high_connectivity, &opacity,color,&end)==7) && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%')) && tolerance>=0) { print(images, "Flood fill image%s from (%g%s,%g%s,%g%s), with tolerance %g, %s connectivity," "opacity %g and color (%s).", gmic_selection, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", tolerance, is_high_connectivity?"high":"low", opacity, *color?color:"default"); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z); gmic_apply(img,draw_fill(nx,ny,nz,col.data(),opacity,tolerance, (bool)is_high_connectivity)); } } else arg_error("flood"); is_released = false; ++position; continue; } // Set 3d focale. if (!std::strcmp("-focale3d",item)) { gmic_substitute_args(); float focale = 800; if (std::sscanf(argument,"%f%c", &focale,&end)==1) { focale3d = focale; print(images,"Set 3d focale to %g.", focale); } else arg_error("focale3d"); ++position; continue; } #endif // #ifdef gmic_float } // command1=='f'. //---------------------------- // Commands starting by '-g..' //---------------------------- else if (command1=='g') { #ifdef gmic_float // Greater or equal. gmic_arithmetic_item("-ge", operator_ge, "Compute boolean 'greater or equal than' between image%s and %g%s", gmic_selection,value,ssep,T, operator_ge, "Compute boolean 'greater or equal than' between image%s " "and image [%d]", gmic_selection,ind[0], "Compute boolean 'greater or equal than' between image%s " "and expression %s'", gmic_selection,argument_text, "Compute boolean 'greater or equal than' between image%s"); // Greater than. gmic_arithmetic_item("-gt", operator_gt, "Compute boolean 'greater than' between image%s and %g%s", gmic_selection,value,ssep,T, operator_gt, "Compute boolean 'greater than' between image%s and image [%d]", gmic_selection,ind[0], "Compute boolean 'greater than' between image%s and expression %s'", gmic_selection,argument_text, "Compute boolean 'greater than' between image%s"); // Compute gradient. if (!std::strcmp("-gradient",command)) { gmic_substitute_args(); char axes[16]; int scheme = 3; *axes = 0; if ((std::sscanf(argument,"%15[xyz]%c", axes,&end)==1 || std::sscanf(argument,"%15[xyz],%d%c", axes,&scheme,&end)==2) && scheme>=-1 && scheme<=5) { ++position; print(images,"Compute gradient of image%s along axes '%s', with %s scheme.", gmic_selection, axes, scheme==-1?"backward differences":scheme==4?"deriche":scheme==5?"vanvliet": scheme==1?"forward differences":scheme==2?"sobel": scheme==3?"rotation invariant":"centered differences"); } else print(images,"Compute gradient of image%s, with rotation invariant scheme.", gmic_selection); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; CImg& img = gmic_check(images[ind]); CImg name = images_names[ind].get_mark(); CImgList gradient = img.get_gradient(*axes?axes:0,scheme); if (is_get_version) { images_names.insert(gradient.size(),name.copymark()); gradient.move_to(images,~0U); } else { off+=gradient.size() - 1; gradient[0].move_to(images[ind].assign()); for (unsigned int i = 1; i1) images_names.insert(gradient.size()-1,name.copymark(),ind+1); } } is_released = false; continue; } // Draw graph. if (!std::strcmp("-graph",command)) { gmic_substitute_args(); double ymin = 0, ymax = 0, xmin = 0, xmax = 0; unsigned int plot_type = 1, vertex_type = 1; float resolution = 65536, opacity = 1; unsigned int pattern = ~0U; CImg ind; char sep = 0, seph = 0; *formula = *color = 0; if (((std::sscanf(argument,"'%1023[^']%c%c", formula,&sep,&end)==2 && sep=='\'') || std::sscanf(argument,"'%1023[^']',%f%c", formula,&resolution,&end)==2 || std::sscanf(argument,"'%1023[^']',%f,%u%c", formula,&resolution,&plot_type,&end)==3 || std::sscanf(argument,"'%1023[^']',%f,%u,%u%c", formula,&resolution,&plot_type,&vertex_type,&end)==4 || std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax,&end)==6 || std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax, &ymin,&ymax,&end)==8 || std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf,%f%c", formula,&resolution,&plot_type,&vertex_type, &xmin,&xmax,&ymin,&ymax,&opacity,&end)==9 || (std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf,%f,0%c%x%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax, &ymin,&ymax,&opacity,&seph,&pattern,&end)==11 && seph=='x') || (std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf,%f,%4095[0-9.eE,+-]%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax,&ymin,&ymax, &opacity,color,&end)==10 && (pattern=~0U)) || (*color=0,std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf,%f,0%c%x," "%4095[0-9.eE,+-]%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax, &ymin,&ymax,&opacity,&seph,&pattern,color,&end)==12 && seph=='x')) && resolution>0 && plot_type<=3 && vertex_type<=7) { resolution = cimg::round(resolution); gmic_strreplace(formula); print(images, "Draw graph of formula '%s' on image%s, with resolution %g, %s contours, " "%s vertices, x-range = (%g,%g), y-range = (%g,%g), opacity %g, " "pattern 0x%x and color (%s).", formula, gmic_selection, resolution, plot_type==0?"no":plot_type==1?"linear":plot_type==2?"spline":"bar", vertex_type==0?"no":vertex_type==1?"dot":vertex_type==2?"straight cross": vertex_type==3?"diagonal cross":vertex_type==4?"filled circle": vertex_type==5?"outlined circle":vertex_type==6?"square":"diamond", xmin,xmax, ymin,ymax, opacity,pattern, *color?color:"default"); if (xmin==0 && xmax==0) { xmin = -4; xmax = 4; } if (!plot_type && !vertex_type) plot_type = 1; if (resolution<1) resolution = 65536; CImg values(4,(unsigned int)resolution--,1,1,0); const double dx = xmax - xmin; cimg_forY(values,X) values(0,X) = xmin + X*dx/resolution; cimg::eval(formula,values).move_to(values); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); gmic_apply(img,draw_graph(values,col.data(),opacity,plot_type,vertex_type, ymin,ymax,pattern)); } } else if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&plot_type,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&plot_type,&vertex_type,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%lf,%lf%c", indices,&plot_type,&vertex_type,&ymin,&ymax,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%lf,%lf,%f%c", indices,&plot_type,&vertex_type,&ymin,&ymax,&opacity,&end)==6|| (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%lf,%lf,%f,0%c%x%c", indices,&plot_type,&vertex_type,&ymin,&ymax,&opacity,&seph, &pattern,&end)==8 && seph=='x') || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%lf,%lf,%f," "%4095[0-9.eE,+-]%c", indices,&plot_type,&vertex_type,&ymin,&ymax,&opacity, color,&end)==7 && (pattern=~0U)) || (*color=0,std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%lf,%lf," "%f,0%c%x,%4095[0-9.eE,+-]%c", indices,&plot_type,&vertex_type,&ymin,&ymax, &opacity,&seph,&pattern,color,&end)==9 && seph=='x')) && (ind=selection2cimg(indices,images.size(),images_names,"-graph",true, false,CImg::empty())).height()==1 && plot_type<=3 && vertex_type<=7) { if (!plot_type && !vertex_type) plot_type = 1; print(images,"Draw graph of dataset [%u] on image%s, with %s contours, %s vertices, " "y-range = (%g,%g), opacity %g, pattern 0x%x and color (%s).", *ind, gmic_selection, plot_type==0?"no":plot_type==1?"linear":plot_type==2?"spline":"bar", vertex_type==0?"no":vertex_type==1?"dot":vertex_type==2?"straight cross": vertex_type==3?"diagonal cross":vertex_type==4?"filled circle": vertex_type==5?"outlined circle":vertex_type==6?"square":"diamond", ymin,ymax, opacity,pattern, *color?color:"default"); const CImg values = gmic_image_arg(*ind); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); gmic_apply(img,draw_graph(values,col.data(),opacity,plot_type,vertex_type, ymin,ymax,pattern)); } } else arg_error("graph"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='g'. //---------------------------- // Commands starting by '-h..' //---------------------------- else if (command1=='h') { #ifdef gmic_float // Histogram. if (!std::strcmp("-histogram",command)) { gmic_substitute_args(); char sep = 0, sep0 = 0, sep1 = 0; double value0 = 0, value1 = 0; float nb_levels = 256; if ((std::sscanf(argument,"%f%c", &nb_levels,&end)==1 || (std::sscanf(argument,"%f%c%c", &nb_levels,&sep,&end)==2 && sep=='%') || std::sscanf(argument,"%f,%lf,%lf%c", &nb_levels,&value0,&value1,&end)==3 || (std::sscanf(argument,"%f%c,%lf,%lf%c", &nb_levels,&sep,&value0,&value1,&end)==4 && sep=='%') || (std::sscanf(argument,"%f,%lf%c,%lf%c", &nb_levels,&value0,&sep0,&value1,&end)==4 && sep0=='%') || (std::sscanf(argument,"%f%c,%lf%c,%lf%c", &nb_levels,&sep,&value0,&sep0,&value1,&end)==5 && sep=='%' && sep0=='%') || (std::sscanf(argument,"%f,%lf,%lf%c%c", &nb_levels,&value0,&value1,&sep1,&end)==4 && sep1=='%') || (std::sscanf(argument,"%f%c,%lf,%lf%c%c", &nb_levels,&sep,&value0,&value1,&sep1,&end)==5 && sep=='%' && sep1=='%') || (std::sscanf(argument,"%f,%lf%c,%lf%c%c", &nb_levels,&value0,&sep0,&value1,&sep1,&end)==5 && sep0=='%' && sep1=='%') || (std::sscanf(argument,"%f%c,%lf%c,%lf%c%c", &nb_levels,&sep,&value0,&sep0,&value1,&sep1,&end)==6 && sep=='%' && sep0=='%' && sep1=='%')) && nb_levels>0) { nb_levels = cimg::round(nb_levels); if (value0==value1 && value0==0) { value1 = 100; sep0 = sep1 = '%'; } print(images,"Compute histogram of image%s, using %g%s level%s in range [%g%s,%g%s].", gmic_selection, nb_levels,sep=='%'?"%":"", nb_levels>1?"s":"", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":""); cimg_forY(selection,l) { CImg &img = gmic_check(images[selection[l]]); double vmin = 0, vmax = 0, nvalue0 = value0, nvalue1 = value1; if (sep0=='%' || sep1=='%') { if (img) vmax = (double)img.max_min(vmin); if (sep0=='%') nvalue0 = vmin + (vmax-vmin)*value0/100; if (sep1=='%') nvalue1 = vmin + (vmax-vmin)*value1/100; } const unsigned int _nb_levels = cimg::max(1U,(unsigned int)cimg::round(sep=='%'? nb_levels*(1+nvalue1-nvalue0)/100: nb_levels)); gmic_apply(images[selection[l]],histogram(_nb_levels,(T)nvalue0,(T)nvalue1)); } } else arg_error("histogram"); is_released = false; ++position; continue; } // HSI to RGB. gmic_simple_item("-hsi2rgb",HSItoRGB,"Convert image%s from HSI to RGB color bases."); // HSL to RGB. gmic_simple_item("-hsl2rgb",HSLtoRGB,"Convert image%s from HSL to RGB color bases."); // HSV to RGB. gmic_simple_item("-hsv2rgb",HSVtoRGB,"Convert image%s from HSV to RGB color bases."); // Compute Hessian. if (!std::strcmp("-hessian",command)) { gmic_substitute_args(); char axes[64]; *axes = 0; if (std::sscanf(argument,"%63[xyz]%c", axes,&end)==1) { ++position; print(images,"Compute Hessian of image%s along axes '%s'.", gmic_selection, axes); } else print(images,"Compute Hessian of image%s.", gmic_selection); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; CImg& img = gmic_check(images[ind]); CImg name = images_names[ind].get_mark(); CImgList hessian = img.get_hessian(*axes?axes:0); if (is_get_version) { images_names.insert(hessian.size(),name.copymark()); hessian.move_to(images,~0U); } else { off+=hessian.size() - 1; hessian[0].move_to(images[ind].assign()); for (unsigned int i = 1; i1) images_names.insert(hessian.size()-1,name.copymark(),ind+1); } } is_released = false; continue; } #endif // #ifdef gmic_float } // command1=='h'. //---------------------------- // Commands starting by '-i..' //---------------------------- else if (command1=='i' && !(command[2]=='f' && !command[3])) { // (Skip for '-if'). #ifdef gmic_float // Draw image. if (!std::strcmp("-image",command)) { gmic_substitute_args(); char sep = 0, sepx = 0, sepy = 0, sepz = 0, sepc = 0, indicesm[256]; float x = 0, y = 0, z = 0, c = 0, opacity = 1, max_opacity_mask = 1; CImg ind, indm; *indices = *indicesm = *argx = *argy = *argz = *argc = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-]%c", indices,argx,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", indices,argx,argy,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c", indices,argx,argy,argz,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c", indices,argx,argy,argz,argc,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", indices,argx,argy,argz,argc,&opacity,&end)==6 || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%f,[%255[a-zA-Z0-9_.%+-]%c%c", indices,argx,argy,argz,argc,&opacity,indicesm,&sep,&end)==8 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%255[0-9.eE%+-],%f,[%255[a-zA-Z0-9_.%+-]],%f%c", indices,argx,argy,argz,argc,&opacity,indicesm, &max_opacity_mask,&end)==8) && (ind=selection2cimg(indices,images.size(),images_names,"-image",true, false,CImg::empty())).height()==1 && (!*indicesm || (indm = selection2cimg(indicesm,images.size(),images_names,"-image",true, false,CImg::empty())).height()==1) && (!*argx || std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%')) && (!*argc || std::sscanf(argc,"%f%c",&c,&end)==1 || (std::sscanf(argc,"%f%c%c",&c,&sepc,&end)==2 && sepc=='%'))) { const CImg sprite = gmic_image_arg(*ind); CImg mask; if (indm) { mask = gmic_image_arg(*indm); print(images,"Draw image [%u] at (%g%s,%g%s,%g%s,%g%s) on image%s, " "with opacity %g and mask [%u].", *ind, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", c,sepc=='%'?"%":"", gmic_selection, opacity, *indm); } else print(images,"Draw image [%u] at (%g%s,%g%s,%g%s,%g%s) on image%s, " "with opacity %g.", *ind, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", c,sepc=='%'?"%":"", gmic_selection, opacity); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z), nc = (int)cimg::round(sepc=='%'?c*(img.spectrum()-1)/100:c); if (indm) { gmic_apply(img,draw_image(nx,ny,nz,nc,sprite,mask,opacity,max_opacity_mask)); } else { gmic_apply(img,draw_image(nx,ny,nz,nc,sprite,opacity)); } } } else arg_error("image"); is_released = false; ++position; continue; } // Index image with a LUT. if (!std::strcmp("-index",command)) { gmic_substitute_args(); unsigned int lut_type = 0, map_indexes = 0; float dithering = 0; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c", indices,&dithering,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%u%c", indices,&dithering,&map_indexes,&end)==3) && (ind=selection2cimg(indices,images.size(),images_names,"-index",true, false,CImg::empty())).height()==1) { const float ndithering = dithering<0?0:dithering>1?1:dithering; print(images,"Index values in image%s by LUT [%u], with dithering level %g%s.", gmic_selection, *ind, ndithering, map_indexes?" and index mapping":""); const CImg palette = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],index(palette,ndithering,(bool)map_indexes)); } else if ((std::sscanf(argument,"%u%c",&lut_type,&end)==1 || std::sscanf(argument,"%u,%f%c",&lut_type,&dithering,&end)==2 || std::sscanf(argument,"%u,%f,%u%c", &lut_type,&dithering,&map_indexes,&end)==3) && lut_type<=7) { const float ndithering = dithering<0?0:dithering>1?1:dithering; print(images,"Index values in image%s by %s color LUT, with dithering level %g%s.", gmic_selection, lut_type==0?"default":lut_type==1?"HSV":lut_type==2?"lines":lut_type==3?"hot": lut_type==4?"cool":lut_type==5?"jet":lut_type==6?"flag":"cube", ndithering,map_indexes?" and index mapping":""); const CImg palette = lut_type==0?CImg::default_LUT256():lut_type==1?CImg::HSV_LUT256(): lut_type==2?CImg::lines_LUT256():lut_type==3?CImg::hot_LUT256(): lut_type==4?CImg::cool_LUT256():lut_type==5?CImg::jet_LUT256(): lut_type==6?CImg::flag_LUT256():CImg::cube_LUT256(); cimg_forY(selection,l) gmic_apply(images[selection[l]],index(palette,ndithering,(bool)map_indexes)); } else arg_error("index"); is_released = false; ++position; continue; } // Matrix inverse. gmic_simple_item("-invert",invert,"Invert matrix image%s."); // Extract 3d isoline. if (!std::strcmp("-isoline3d",command)) { gmic_substitute_args(); float x0 = -3, y0 = -3, x1 = 3, y1 = 3, value = 0, dx = 256, dy = 256; char sep = 0, sepx = 0, sepy = 0; *formula = 0; if (std::sscanf(argument,"%f%c", &value,&end)==1 || std::sscanf(argument,"%f%c%c", &value,&sep,&end)==2) { print(images,"Extract 3d isolines from image%s, using isovalue %g%s.", gmic_selection, value,sep=='%'?"%":""); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (img) { CImg vertices; CImgList primitives; CImgList colors; CImg palette; palette.assign(3,img.spectrum(),1,1,220).noise(35,1); if (img.spectrum()==1) palette(0) = palette(1) = palette(2) = 200; else { palette(0,0) = 255; palette(1,0) = palette(2,0) = 30; palette(0,1) = palette(2,1) = 30; palette(1,1) = 255; if (img.spectrum()>=3) palette(0,2) = palette(1,2) = 30; palette(2,2) = 255; } cimg_forC(img,k) { const CImg channel = img.get_shared_channel(k); float nvalue = value; if (sep=='%') { float vmin = 0, vmax = (float)channel.max_min(vmin); nvalue = vmin + (vmax-vmin)*value/100; } CImgList prims; const CImg pts = img.get_shared_channel(k).get_isoline3d(prims,nvalue); vertices.append_object3d(primitives,pts,prims); colors.insert(prims.size(),CImg::vector(palette(0,k), palette(1,k), palette(2,k))); } if (!vertices) warn(images,"Command '-isoline3d': Isovalue %g%s not found in image [%u].", value,sep=='%'?"%":"",ind); vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } else { gmic_apply(img,replace(img)); } } } else if ((std::sscanf(argument,"'%4095[^']',%f%c", formula,&value,&end)==2 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f%c", formula,&value,&x0,&y0,&x1,&y1,&end)==6 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f%c", formula,&value,&x0,&y0,&x1,&y1,&dx,&dy,&end)==8 || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f%c,%f%c", formula,&value,&x0,&y0,&x1,&y1,&dx,&sepx,&dy,&end)==9 && sepx=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f%c%c", formula,&value,&x0,&y0,&x1,&y1,&dx,&dy,&sepy,&end)==9 && sepy=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f%c,%f%c%c", formula,&value,&x0,&y0,&x1,&y1,&dx,&sepx,&dy,&sepy,&end)==10&& sepx=='%' && sepy=='%')) && dx>0 && dy>0) { dx = cimg::round(dx); dy = cimg::round(dy); gmic_strreplace(formula); print(images,"Extract 3d isoline %g from formula '%s', in range (%g,%g)-(%g,%g) " "with size %g%sx%g%s.", value, formula, x0,y0, x1,y1, dx,sepx=='%'?"%":"", dy,sepy=='%'?"%":""); if (sepx=='%') dx = -dx; if (sepy=='%') dy = -dy; CImgList primitives; CImg vertices = CImg::isoline3d(primitives,(const char*)formula,value, x0,y0,x1,y1,(int)dx,(int)dy); vertices.object3dtoCImg3d(primitives).move_to(images); cimg_snprintf(title,_title.size(),"[3d isoline %g of '%s']",value,formula); gmic_ellipsize(title,_title.size()); CImg::string(title).move_to(images_names); } else arg_error("isoline3d"); is_released = false; ++position; continue; } // Extract 3d isosurface. if (!std::strcmp("-isosurface3d",command)) { gmic_substitute_args(); float x0 = -3, y0 = -3, z0 = -3, x1 = 3, y1 = 3, z1 = 3, value = 0, dx = 32, dy = 32, dz = 32; char sep = 0, sepx = 0, sepy = 0, sepz = 0; *formula = 0; if (std::sscanf(argument,"%f%c", &value,&end)==1 || std::sscanf(argument,"%f%c%c", &value,&sep,&end)==2) { print(images,"Extract 3d isosurface from image%s, using isovalue %g%s.", gmic_selection, value,sep=='%'?"%":""); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (img) { CImg vertices; CImgList primitives; CImgList colors; CImg palette; palette.assign(3,img.spectrum(),1,1,220).noise(35,1); if (img.spectrum()==1) palette(0) = palette(1) = palette(2) = 200; else { palette(0,0) = 255; palette(1,0) = palette(2,0) = 30; palette(0,1) = palette(2,1) = 30; palette(1,1) = 255; if (img.spectrum()>=3) palette(0,2) = palette(1,2) = 30; palette(2,2) = 255; } cimg_forC(img,k) { const CImg channel = img.get_shared_channel(k); float nvalue = value; if (sep=='%') { float vmin = 0, vmax = (float)channel.max_min(vmin); nvalue = vmin + (vmax-vmin)*value/100; } CImgList prims; const CImg pts = channel.get_isosurface3d(prims,nvalue); vertices.append_object3d(primitives,pts,prims); colors.insert(prims.size(),CImg::vector(palette(0,k), palette(1,k), palette(2,k))); } if (!vertices) { if (img.depth()>1) warn(images, "Command '-isosurface3d': Isovalue %g%s not found in image [%u].", value,sep=='%'?"%":"",ind); else warn(images, "Command '-isosurface3d': Image [%u] has a single slice, " "isovalue %g%s not found.", ind,value,sep=='%'?"%":""); } vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } else { gmic_apply(img,replace(img)); } } } else if ((std::sscanf(argument,"'%4095[^']',%f%c", formula,&value,&end)==2 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1,&end)==8 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f,%f,%f%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1,&dx,&dy,&dz,&end)==11 || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f%c,%f,%f%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&sepx,&dy,&dz,&end)==12 && sepx=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f,%f%c,%f%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&dy,&sepy,&dz,&end)==12 && sepy=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f,%f,%f%c%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&dy,&dz,&sepz,&end)==12 && sepz=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f%c,%f%c,%f%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&sepx,&dy,&sepy,&dz,&end)==13 && sepx=='%' && sepy=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f%c,%f,%f%c%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&sepx,&dy,&dz,&sepz,&end)==13 && sepx=='%' && sepz=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f,%f%c,%f%c%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&dy,&sepy,&dz,&sepz,&end)==13 && sepy=='%' && sepz=='%') || (std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%f,%f,%f%c,%f%c,%f%c%c", formula,&value,&x0,&y0,&z0,&x1,&y1,&z1, &dx,&sepx,&dy,&sepy,&dz,&sepz,&end)==14 && sepx=='%' && sepy=='%' && sepz=='%')) && dx>0 && dy>0 && dz>0) { dx = cimg::round(dx); dy = cimg::round(dy); dz = cimg::round(dz); gmic_strreplace(formula); print(images,"Extract 3d isosurface %g from formula '%s', " "in range (%g,%g,%g)-(%g,%g,%g) with size %g%sx%g%sx%g%s.", value, formula, x0,y0,z0, x1,y1,z1, dx,sepx=='%'?"%":"", dy,sepy=='%'?"%":"", dz,sepz=='%'?"%":""); if (sepx=='%') dx = -dx; if (sepy=='%') dy = -dy; if (sepz=='%') dz = -dz; CImgList primitives; CImg vertices = CImg::isosurface3d(primitives,(const char*)formula,value, x0,y0,z0,x1,y1,z1,(int)dx,(int)dy,(int)dz); vertices.object3dtoCImg3d(primitives).move_to(images); cimg_snprintf(title,_title.size(),"[3d isosurface %g of '%s']",value,formula); gmic_ellipsize(title,_title.size()); CImg::string(title).move_to(images_names); } else arg_error("isosurface3d"); is_released = false; ++position; continue; } // Inpaint. if (!std::strcmp("-inpaint",command)) { gmic_substitute_args(); CImg ind; char sep = 0; if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-inpaint",true, false,CImg::empty())).height()==1) { print(images,"Inpaint image%s with mask [%u].", gmic_selection, *ind); const CImg mask = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],inpaint(mask)); } else arg_error("inpaint"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='i'. //---------------------------- // Commands starting by '-k..' //---------------------------- else if (command1=='k') { // Keep images. if (!std::strcmp("-keep",command)) { print(images,"Keep image%s", gmic_selection); CImgList _images, nimages(selection.height()); CImgList _images_names, nimages_names(selection.height()); if (is_get_version) { _images.assign(images); _images_names.assign(images_names); } cimg_forY(selection,l) { nimages[l].swap(images[selection[l]]); nimages_names[l].swap(images_names[selection[l]]); } nimages.move_to(images); nimages_names.move_to(images_names); if (is_get_version) { _images.move_to(images,0); _images_names.move_to(images_names,0); } if (verbosity>=0 || is_debug) { std::fprintf(cimg::output()," (%u image%s left).", images.size(),images.size()==1?"":"s"); std::fflush(cimg::output()); } is_released = false; continue; } } // command1=='k'. //---------------------------- // Commands starting by '-l..' //---------------------------- else if (command1=='l') { // Start local environnement. if (!std::strcmp("-local",command)) { CImg::string("*local").move_to(scope); if (verbosity>0 || is_debug) print(images,"Start '-local..-endlocal' block, with image%s.", gmic_selection); CImgList nimages(selection.height()); CImgList nimages_names(selection.height()); if (is_get_version) cimg_forY(selection,l) { nimages[l].assign(images[selection[l]]); nimages_names[l].assign(images_names[selection[l]]).copymark(); } else cimg_forY(selection,l) { if (images[selection[l]].is_shared()) nimages[l] = CImg(images[selection[l]],true); else nimages[l].swap(images[selection[l]]); nimages_names[l].swap(images_names[selection[l]]); } const unsigned int local_scope_size = scope.size(); CImg exception_message, exception_command; try { _parse(commands_line,position,nimages,nimages_names,variables_sizes); } catch (gmic_exception &e) { int nb_locals = 0; for (nb_locals = 1; nb_locals && positionlocal_scope_size) scope.remove(local_scope_size,scope.size()-1); if (nb_locals==1 && position0 || is_debug) print(images,"Reach '-onfail' block."); _parse(commands_line,++position,nimages,nimages_names,variables_sizes); } else { // Onfail block not found. exception_message.assign(e._message); exception_command.assign(e._command); } } scope.remove(); if (is_get_version) { nimages.move_to(images,~0U); nimages_names.move_to(images_names,~0U); } else { const unsigned int nb = cimg::min((unsigned int)selection.height(),nimages.size()); if (nb>0) { for (unsigned int i = 0; i &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); const int nx0 = (int)cimg::round(sepx0=='%'?x0*(img.width()-1)/100:x0), ny0 = (int)cimg::round(sepy0=='%'?y0*(img.height()-1)/100:y0), nx1 = (int)cimg::round(sepx1=='%'?x1*(img.width()-1)/100:x1), ny1 = (int)cimg::round(sepy1=='%'?y1*(img.height()-1)/100:y1); gmic_apply(img,draw_line(nx0,ny0,nx1,ny1,col.data(),opacity,pattern)); } } else arg_error("line"); is_released = false; ++position; continue; } // Lab to RGB gmic_simple_item("-lab2rgb",LabtoRGB,"Convert image%s from Lab to RGB color bases."); // Label connected components. if (!std::strcmp("-label",command)) { gmic_substitute_args(); unsigned int is_high_connectivity = 0; float tolerance = 0; if ((std::sscanf(argument,"%f%c",&tolerance,&end)==1 || std::sscanf(argument,"%f,%u%c",&tolerance,&is_high_connectivity,&end)==2) && tolerance>=0) { print(images, "Label connected components on image%s, with tolerance %g and " "%s connectivity.", gmic_selection,tolerance,is_high_connectivity?"high":"low"); cimg_forY(selection,l) gmic_apply(images[selection[l]],label((bool)is_high_connectivity,tolerance)); } else arg_error("label"); is_released = false; ++position; continue; } // Set 3d light position. if (!std::strcmp("-light3d",item)) { gmic_substitute_args(); float lx = 0, ly = 0, lz = -5e8; CImg ind; char sep = 0; if (std::sscanf(argument,"%f,%f,%f%c", &lx,&ly,&lz,&end)==3) { print(images,"Set 3d light position to (%g,%g,%g).", lx,ly,lz); light3d_x = lx; light3d_y = ly; light3d_z = lz; ++position; } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-light3d",true, false,CImg::empty())).height()==1) { print(images,"Set 3d light texture from image [%u].",*ind); light3d.assign(images[*ind],false); ++position; } else { print(images,"Reset 3d light to default."); light3d.assign(); light3d_x = light3d_y = 0; light3d_z = -5e8; } continue; } #endif // #ifdef gmic_float } // command1=='l'. //---------------------------- // Commands starting by '-m..' //---------------------------- else if (command1=='m') { // Move images. if (!std::strcmp("-move",command)) { gmic_substitute_args(); float pos = 0; char sep = 0; if (std::sscanf(argument,"%f%c",&pos,&end)==1 || (std::sscanf(argument,"%f%c%c",&pos,&sep,&end)==2 && sep=='%')) { const int _ind0 = (int)cimg::round(sep=='%'?pos*images.size()/100:pos), ind0 = _ind0<0?_ind0+(int)images.size():_ind0; if (ind0<0 || ind0>(int)images.size()) error(images,"Command '-move': Invalid position '%d' (not in range -%u..%u).", _ind0,images.size(),images.size()-1); print(images,"Move image%s to position %d.", gmic_selection, ind0); CImgList _images, nimages; CImgList _images_names, nimages_names; if (is_get_version) { _images.insert(images.size()); // Copy original list while preserving shared state of each item. cimglist_for(_images,l) _images[l].assign(images[l],images[l].is_shared()); _images_names.assign(images_names); } nimages.insert(selection.height()); cimg_forY(selection,l) { const unsigned int ind = selection[l]; if (is_get_version) images[ind].move_to(nimages[l]); else images[ind].swap(nimages[l]); // Empty shared image as a special item to be removed later. images[ind]._is_shared = true; images_names[ind].move_to(nimages_names); } images.insert(nimages.size(),ind0); cimglist_for(nimages,l) nimages[l].swap(images[ind0+l]); nimages_names.move_to(images_names,ind0); cimglist_for(images,l) if (!images[l] && images[l].is_shared()) { images.remove(l); images_names.remove(l--); // Remove special items. } if (is_get_version) { cimglist_for(images,l) // Replace shared items by non-shared one for a get version. if (images[l].is_shared()) { CImg tmp; (images[l].move_to(tmp)).swap(images[l]); } images.insert(_images.size(),0); cimglist_for(_images,l) images[l].swap(_images[l]); _images_names.move_to(images_names,0); } } else arg_error("move"); is_released = false; ++position; continue; } // Mirror. if (!std::strcmp("-mirror",command)) { gmic_substitute_args(); bool is_valid_argument = true; for (const char *s = argument; *s; ++s) { const char _s = *s; if (_s!='x' && _s!='y' && _s!='z' && _s!='c') { is_valid_argument = false; break; } } if (*argument && is_valid_argument) { print(images,"Mirror image%s along the '%s'-ax%cs.", gmic_selection, argument_text, std::strlen(argument)>1?'e':'i'); cimg_forY(selection,l) gmic_apply(images[selection[l]],mirror(argument)); } else arg_error("mirror"); is_released = false; ++position; continue; } #ifdef gmic_float // Multiplication. gmic_arithmetic_item("-mul", operator*=, "Multiply image%s by %g%s", gmic_selection,value,ssep,double, mul, "Multiply image%s by image [%d]", gmic_selection,ind[0], "Multiply image%s by expression %s", gmic_selection,argument_text, "Multiply image%s"); // Modulo. gmic_arithmetic_item("-mod", operator%=, "Compute pointwise modulo of image%s by %g%s", gmic_selection,value,ssep,T, operator%=, "Compute pointwise modulo of image%s by image [%d]", gmic_selection,ind[0], "Compute pointwise modulo of image%s by expression %s", gmic_selection,argument_text, "Compute sequential pointwise modulo of image%s"); // Max. gmic_arithmetic_item("-max", max, "Compute pointwise maximum between image%s and %g%s", gmic_selection,value,ssep,T, max, "Compute pointwise maximum between image%s and image [%d]", gmic_selection,ind[0], "Compute pointwise maximum between image%s and expression %s", gmic_selection,argument_text, "Compute pointwise maximum of all image%s together"); // Min. gmic_arithmetic_item("-min", min, "Compute pointwise minimum between image%s and %g%s", gmic_selection,value,ssep,T, min, "Compute pointwise minimum between image%s and image [%d]", gmic_selection,ind[0], "Compute pointwise minimum between image%s and expression %s", gmic_selection,argument_text, "Compute pointwise minimum of image%s"); // Matrix multiplication. gmic_arithmetic_item("-mmul", operator*=, "Multiply matrix/vector%s by %g%s", gmic_selection,value,ssep,double, operator*=, "Multiply matrix/vector%s by matrix/vector image [%d]", gmic_selection,ind[0], "Multiply matrix/vector%s by expression %s", gmic_selection,argument_text, "Multiply matrix/vector%s"); // Set 3d rendering modes. if (!std::strcmp("-mode3d",item)) { gmic_substitute_args(); int value = 0; if (std::sscanf(argument,"%d%c", &value,&end)==1 && value>=-1 && value<=5) { render3d = value; print(images,"Set static 3d rendering mode to %s.", render3d==-1?"bounding-box": render3d==0?"pointwise":render3d==1?"linear":render3d==2?"flat": render3d==3?"flat-shaded":render3d==4?"Gouraud-shaded": render3d==5?"Phong-shaded":"none"); } else arg_error("mode3d"); ++position; continue; } if (!std::strcmp("-moded3d",item)) { gmic_substitute_args(); int value = 0; if (std::sscanf(argument,"%d%c", &value,&end)==1 && value>=-1 && value<=5) { renderd3d = value; print(images,"Set dynamic 3d rendering mode to %s.", renderd3d==-1?"bounding-box": renderd3d==0?"pointwise":renderd3d==1?"linear":renderd3d==2?"flat": renderd3d==3?"flat-shaded":renderd3d==4?"Gouraud-shaded": renderd3d==5?"Phong-shaded":"none"); } else arg_error("moded3d"); ++position; continue; } // Map LUT. if (!std::strcmp("-map",command)) { gmic_substitute_args(); unsigned int lut_type = 0; CImg ind; char sep = 0; if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-map",true, false,CImg::empty())).height()==1) { print(images,"Map LUT [%u] on image%s.", *ind, gmic_selection); const CImg palette = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],map(palette)); } else if (std::sscanf(argument,"%u%c",&lut_type,&end)==1 && lut_type<=7) { print(images,"Map %s color LUT on image%s.", lut_type==0?"default":lut_type==1?"HSV":lut_type==2?"lines":lut_type==3?"hot": lut_type==4?"cool":lut_type==5?"jet":lut_type==6?"flag":"cube", gmic_selection); const CImg palette = lut_type==0?CImg::default_LUT256():lut_type==1?CImg::HSV_LUT256(): lut_type==2?CImg::lines_LUT256():lut_type==3?CImg::hot_LUT256(): lut_type==4?CImg::cool_LUT256():lut_type==5?CImg::jet_LUT256(): lut_type==6?CImg::flag_LUT256():CImg::cube_LUT256(); cimg_forY(selection,l) gmic_apply(images[selection[l]],map(palette)); } else arg_error("map"); is_released = false; ++position; continue; } // Median filter. if (!std::strcmp("-median",command)) { gmic_substitute_args(); float siz = 3; if (std::sscanf(argument,"%f%c", &siz,&end)==1 && siz>=0) { siz = cimg::round(siz); print(images,"Apply median filter of size %g, on image%s.", siz, gmic_selection); cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_median((unsigned int)siz)); } else arg_error("median"); is_released = false; ++position; continue; } // Matrix division. gmic_arithmetic_item("-mdiv", operator/=, "Divide matrix/vector%s by %g%s", gmic_selection,value,ssep,double, operator/=, "Divide matrix/vector%s by matrix/vector image [%d]", gmic_selection,ind[0], "Divide matrix/vector%s by expression %s", gmic_selection,argument_text, "Divide matrix/vector%s"); // MSE. if (!std::strcmp("-mse",command)) { print(images,"Compute the %dx%d matrix of MSE values, from image%s.", selection.height(),selection.height(), gmic_selection); if (selection) { CImgList subimages(selection.height()); cimg_forY(selection,l) subimages[l].assign(gmic_check(images[selection[l]]),true); CImg img(subimages.size(),subimages.size(),1,1,(T)0); cimg_forXY(img,x,y) if (x>y) img(x,y) = img(y,x) = (T)subimages[x].MSE(subimages[y]); CImg name = CImg::string("[MSE]"); if (is_get_version) { img.move_to(images); name.move_to(images_names); } else { remove_images(images,images_names,selection,1,selection.height()-1); img.move_to(images[selection[0]].assign()); name.move_to(images_names[selection[0]]); } } is_released = false; continue; } // Draw mandelbrot/julia fractal. if (!std::strcmp("-mandelbrot",command)) { gmic_substitute_args(); double z0r = -2, z0i = -2, z1r = 2, z1i = 2, paramr = 0, parami = 0; unsigned int is_julia = 0; float opacity = 1, itermax = 100; if ((std::sscanf(argument,"%lf,%lf,%lf,%lf%c", &z0r,&z0i,&z1r,&z1i,&end)==4 || std::sscanf(argument,"%lf,%lf,%lf,%lf,%f%c", &z0r,&z0i,&z1r,&z1i,&itermax,&end)==5 || std::sscanf(argument,"%lf,%lf,%lf,%lf,%f,%u%c", &z0r,&z0i,&z1r,&z1i,&itermax,&is_julia,&end)==6 || std::sscanf(argument,"%lf,%lf,%lf,%lf,%f,%u,%lf,%lf%c", &z0r,&z0i,&z1r,&z1i,&itermax,&is_julia,¶mr, ¶mi,&end)==8 || std::sscanf(argument,"%lf,%lf,%lf,%lf,%f,%u,%lf,%lf,%f%c", &z0r,&z0i,&z1r,&z1i,&itermax,&is_julia, ¶mr,¶mi,&opacity,&end)==9) && itermax>=0 && is_julia<=1) { itermax = cimg::round(itermax); print(images,"Draw %s fractal on image%s, from complex area (%g,%g)-(%g,%g) " "with c0 = (%g,%g) and %g iterations.", is_julia?"julia":"mandelbrot", gmic_selection, z0r,z0i, z1r,z1i, paramr,parami, itermax); cimg_forY(selection,l) gmic_apply(images[selection[l]],draw_mandelbrot(CImg(),opacity,z0r,z0i,z1r,z1i, (unsigned int)itermax,true, (bool)is_julia, paramr,parami)); } else arg_error("mandelbrot"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='m'. //---------------------------- // Commands starting by '-n..' //---------------------------- else if (command1=='n') { // Set image name. if (!std::strcmp("-name",command)) { gmic_substitute_args(); const unsigned int l = std::strlen(argument); CImg name(argument,l+1); unsigned int is_modified=0; if (l>=2 && name[l-2]==',' && (name[l-1]=='0' || name[l-1]=='1')) { is_modified = name[l-1]!='0'; name[l-2] = 0; } print(images,"Set name of image%s to '%s'%s.", gmic_selection,name.data(),is_modified?" (modified)":""); gmic_strreplace(name); if (is_modified) name.mark(); cimg_forY(selection,l) images_names[selection[l]].assign(name); ++position; continue; } #ifdef gmic_float // Normalize. if (!std::strcmp("-normalize",command)) { gmic_substitute_args(); CImg ind0, ind1; double value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-normalize",true, false,CImg::empty())).height()==1) || (std::sscanf(argx,"%lf%c%c",&value0,&sep0,&end)==2 && sep0=='%') || std::sscanf(argx,"%lf%c",&value0,&end)==1) && ((std::sscanf(argy,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep1,&end)==2 && sep1==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-normalize",true, false,CImg::empty())).height()==1) || (std::sscanf(argy,"%lf%c%c",&value1,&sep1,&end)==2 && sep1=='%') || std::sscanf(argy,"%lf%c",&value1,&end)==1)) { if (ind0) { value0 = images[*ind0].min(); sep0 = 0; } if (ind1) { value1 = images[*ind1].max(); sep1 = 0; } print(images,"Normalize image%s in range [%g%s,%g%s].", gmic_selection, value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":""); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); double vmin = 0, vmax = 0, nvalue0 = value0, nvalue1 = value1; if (sep0=='%' || sep1=='%') { if (img) vmax = (double)img.max_min(vmin); if (sep0=='%') nvalue0 = vmin + (vmax-vmin)*value0/100; if (sep1=='%') nvalue1 = vmin + (vmax-vmin)*value1/100; } gmic_apply(img,normalize((T)nvalue0,(T)nvalue1)); } } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-normalize",true, false,CImg::empty())).height()==1) { if (images[*ind0]) value1 = (double)images[*ind0].max_min(value0); print(images,"Normalize image%s in range [%g,%g].", gmic_selection, value0, value1); cimg_forY(selection,l) gmic_apply(images[selection[l]],normalize((T)value0,(T)value1)); } else arg_error("normalize"); is_released = false; ++position; continue; } // Test difference. gmic_arithmetic_item("-neq", operator_neq, "Compute boolean inequality between image%s and %g%s", gmic_selection,value,ssep,T, operator_neq, "Compute boolean inequality between image%s and image [%d]", gmic_selection,ind[0], "Compute boolean inequality between image%s and expression %s'", gmic_selection,argument_text, "Compute boolean inequality between image%s"); // Add noise. if (!std::strcmp("-noise",command)) { gmic_substitute_args(); int noise_type = 0; float sigma = 0; char sep = 0; if ((std::sscanf(argument,"%f%c", &sigma,&end)==1 || (std::sscanf(argument,"%f%c%c", &sigma,&sep,&end)==2 && sep=='%') || std::sscanf(argument,"%f,%d%c", &sigma,&noise_type,&end)==2 || (std::sscanf(argument,"%f%c,%d%c", &sigma,&sep,&noise_type,&end)==3 && sep=='%')) && sigma>=0 && noise_type>=0 && noise_type<=4) { const char *s_type = noise_type==0?"gaussian": noise_type==1?"uniform": noise_type==2?"salt&pepper": noise_type==3?"poisson":"rice"; if (sep=='%') sigma = -sigma; print(images,"Add %s noise to image%s, with standard deviation %g%s.", s_type, gmic_selection, cimg::abs(sigma),sep=='%'?"%":""); cimg_forY(selection,l) gmic_apply(images[selection[l]],noise(sigma,noise_type)); } else arg_error("noise"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='n'. //---------------------------- // Commands starting by '-o..' //---------------------------- else if (command1=='o') { // Output. if (!std::strcmp("-output",command)) { gmic_substitute_args(); char cext[8], _filename[4096], filename_tmp[512], options[256]; *cext = *_filename = *filename_tmp = *options = 0; if (std::sscanf(argument,"%8[a-zA-Z]:%4095[^,],%255s",cext,_filename,options)<2 || !cext[1]) { // length of 'ext' must be >=2 (avoid case 'C:\\..' on Windows). *cext = *_filename = *options = 0; if (std::sscanf(argument,"%4095[^,],%255s",_filename,options)!=2) { std::strncpy(_filename,argument,sizeof(_filename)-1); _filename[sizeof(_filename)-1] = 0; } } gmic_strreplace(_filename); gmic_strreplace(options); if (*cext) { // Force output to be written as a '.ext' file : generate random filename. if (*_filename=='-' && (!_filename[1] || _filename[1]=='.')) { // Simplify filename 'ext:-.foo' as '-.ext'. cimg_snprintf(_filename,sizeof(_filename),"-.%s",cext); *cext = 0; } else { std::FILE *file = 0; do { cimg_snprintf(filename_tmp,sizeof(filename_tmp),"%s%c%s.%s", cimg::temporary_path(),cimg_file_separator, cimg::filenamerand(),cext); if ((file=std::fopen(filename_tmp,"rb"))!=0) std::fclose(file); } while (file); } } const char *const filename = *cext?filename_tmp:_filename, *const ext = cimg::split_filename(filename); if (!cimg::strcasecmp(ext,"off")) { char nfilename[4096]; *nfilename = 0; std::strncpy(nfilename,filename,sizeof(nfilename)-1); nfilename[sizeof(nfilename)-1] = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l]; const CImg& img = gmic_check(images[ind]); if (selection.height()!=1) cimg::number_filename(filename,l,6,nfilename); if (!img.is_CImg3d(true,message)) error(images, "Command '-output': 3d object file '%s', invalid 3d object [%u] " "in selected image%s (%s).", nfilename,ind,gmic_selection,message); print(images,"Output 3d object [%u] as file '%s'.", ind, nfilename); CImgList primitives; CImgList colors, opacities; CImg vertices(img,false); vertices.CImg3dtoobject3d(primitives,colors,opacities). save_off(primitives,colors,nfilename); } } else if (!cimg::strcasecmp(ext,"tiff") || !cimg::strcasecmp(ext,"tif")) { float _compression = 0; if (std::sscanf(options,"%f%c",&_compression,&end)!=1) _compression = 0; if (_compression<0) _compression = 0; else if (_compression>6) _compression = 6; const unsigned int compression = (unsigned int)cimg::round(_compression); CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); if (output_images.size()==1) print(images,"Output image%s as file '%s', with %s compression " "(1 image %dx%dx%dx%d).", gmic_selection, _filename, compression==0?"no":compression==1?"CCITTRLE":compression==2?"CCITT4": compression==3?"CCITT6":compression==4?"LZW":compression==5?"JPEG1":"JPEG2", output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images,"Output image%s as file '%s', with %s compression.", gmic_selection, _filename, compression==0?"no":compression==1?"CCITTRLE":compression==2?"CCITT4": compression==3?"CCITT6":compression==4?"LZW":compression==5?"JPEG1": "JPEG2"); if (!output_images) error(images,"Command '-output': File '%s', instance list (%u,%p) is empty.", _filename,output_images.size(),output_images.data()); if (output_images.size()==1) output_images[0].save_tiff(filename,compression); else output_images.save_tiff(filename,compression); } else if (!cimg::strcasecmp(ext,"gif")) { float _fps = 0, _nb_loops = 0; CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); if (output_images.size()>1 && std::sscanf(options,"%f,%f",&_fps,&_nb_loops)>=1) { // Save animated .gif file. const unsigned int fps = (unsigned int)cimg::round(_fps), nb_loops = (unsigned int)cimg::round(_nb_loops); if (nb_loops) print(images, "Output image%s as animated file '%s', with %u fps and %u loops.", gmic_selection,_filename,fps,nb_loops); else print(images, "Output image%s as animated file '%s', with %u fps.", gmic_selection,_filename,fps); output_images.save_gif_external(filename,fps,nb_loops); } else { if (output_images.size()==1) print(images,"Output image%s as file '%s' (1 image %dx%dx%dx%d).", gmic_selection, _filename, output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images,"Output image%s as file '%s'.", gmic_selection, _filename); output_images.save(filename); // Save distinct .gif files. } } else if (!cimg::strcasecmp(ext,"jpeg") || !cimg::strcasecmp(ext,"jpg")) { float quality = 100; if (std::sscanf(options,"%f%c",&quality,&end)!=1) quality = 100; if (quality<0) quality = 0; else if (quality>100) quality = 100; CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); if (output_images.size()==1) print(images, "Output image%s as file '%s', with quality %g%% (1 image %dx%dx%dx%d).", gmic_selection, _filename, quality, output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images,"Output image%s as file '%s', with quality %g%%.", gmic_selection, _filename, quality); if (!output_images) error(images,"Command '-output': File '%s', instance list (%u,%p) is empty.", _filename,output_images.size(),output_images.data()); if (output_images.size()==1) output_images[0].save_jpeg(filename,(unsigned int)cimg::round(quality)); else { char nfilename[4096]; cimglist_for(output_images,l) { cimg::number_filename(filename,l,6,nfilename); output_images[l].save_jpeg(nfilename,(unsigned int)cimg::round(quality)); } } } else if (!cimg::strcasecmp(ext,"mnc") && *options) { CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); if (output_images.size()==1) print(images, "Output image%s as file '%s', with header get from file '%s' " "(1 image %dx%dx%dx%d).", gmic_selection, _filename, options, output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images, "Output image%s as file '%s', with header get from file '%s'.", gmic_selection, _filename, options); if (output_images.size()==1) output_images[0].save_minc2(filename,options); else { char nfilename[4096]; cimglist_for(output_images,l) { cimg::number_filename(filename,l,6,nfilename); output_images[l].save_minc2(nfilename,options); } } } else if (!cimg::strcasecmp(ext,"raw")) { const char *const stype = std::sscanf(options,"%255[A-zA-Z]%c",argx,&end)==1?argx: cimg::type::string(); CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],images[selection[l]]?true:false); if (output_images.size()==1) print(images, "Output image%s as file '%s', with pixel type '%s' (1 image %dx%dx%dx%d).", gmic_selection, _filename, stype, output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images,"Output image%s as file '%s', with pixel type '%s'.", gmic_selection, _filename, stype); if (!output_images) error(images,"Command '-output': File '%s', instance list (%u,%p) is empty.", _filename,output_images.size(),output_images.data()); #define gmic_save_raw(value_type,svalue_type) \ if (!std::strcmp(stype,svalue_type)) { \ if (output_images.size()==1) \ CImg(output_images[0]).save_raw(filename); \ else { \ char nfilename[4096]; \ cimglist_for(output_images,l) { \ cimg::number_filename(filename,l,6,nfilename); \ CImg(output_images[l]).save_raw(nfilename); \ } \ } \ } gmic_save_raw(bool,"bool") else gmic_save_raw(unsigned char,"uchar") else gmic_save_raw(unsigned char,"unsigned char") else gmic_save_raw(char,"char") else gmic_save_raw(unsigned short,"ushort") else gmic_save_raw(unsigned short,"unsigned short") else gmic_save_raw(short,"short") else gmic_save_raw(unsigned int,"uint") else gmic_save_raw(unsigned int,"unsigned int") else gmic_save_raw(int,"int") else gmic_save_raw(float,"float") else gmic_save_raw(double,"double") else error(images, "Command '-output': File '%s', invalid specified " "pixel type '%s'.", _filename,stype); } else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg") || !cimg::strcasecmp(ext,"ogg")) { float fps = 0, bitrate = 0; std::sscanf(options,"%f,%f",&fps,&bitrate); fps = cimg::round(fps); bitrate = cimg::round(bitrate); if (!fps) fps = 25; if (!bitrate) bitrate = 2048; CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); print(images,"Output image%s as file '%s', with %g fps and bitrate %gk.", gmic_selection, _filename, fps,bitrate); if (!output_images) error(images,"Command '-output': File '%s, instance list (%u,%p) is empty.", _filename,output_images.size(),output_images.data()); output_images.save_ffmpeg(filename,(unsigned int)fps,(unsigned int)bitrate); } else { CImgList output_images(selection.height()); CImgList empty_indices; cimg_forY(selection,l) if (!gmic_check(images[selection(l)])) CImg::vector(selection(l)).move_to(empty_indices); if (empty_indices) { const CImg _eselec = selection2string(empty_indices>'y',images_names,true); const char *const eselec = _eselec.data(); warn(images,"Command '-output': Image%s %s empty.", eselec,empty_indices.size()>1?"are":"is"); } cimg_forY(selection,l) output_images[l].assign(images[selection[l]],output_images[l]?true:false); if (output_images.size()==1) print(images,"Output image%s as file '%s' (1 image %dx%dx%dx%d).", gmic_selection, _filename, output_images[0].width(),output_images[0].height(), output_images[0].depth(),output_images[0].spectrum()); else print(images,"Output image%s as file '%s'.", gmic_selection, _filename); output_images.save(filename); } if (*cext) { // When output forced to 'ext' : copy final file to specified location. try { CImg::get_load_raw(filename_tmp).save_raw(_filename); std::remove(filename_tmp); } catch (...) { error(images, "Command '-output': Invalid write of file '%s from temporary file '%s'.", _filename,filename_tmp); } } is_released = true; ++position; continue; } // Exception handling in local environments. if (!std::strcmp("-onfail",item)) { const CImg &s = scope.back(); if (s[0]!='*' || s[1]!='l') error(images,"Command '-onfail': Not associated to a '-local' command within " "the same scope."); for (int nb_locals = 1; nb_locals && position ind; *argx = *argy = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-]%c", indices,argx,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", indices,argx,argy,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f%c", indices,argx,argy,&z,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f%c", indices,argx,argy,&z,&opacity,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u%c", indices,argx,argy,&z,&opacity,&_render3d,&end)==6 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u,%u%c", indices,argx,argy,&z,&opacity,&_render3d,&_is_double3d,&end)==7 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u,%u,%u%c", indices,argx,argy,&z,&opacity,&_render3d,&_is_double3d,&is_zbuffer, &end)==8 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u,%u,%u,%f%c", indices,argx,argy,&z,&opacity,&_render3d,&_is_double3d,&is_zbuffer, &_focale3d,&end)==9 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u,%u,%u,%f,%f,%f,%f%c", indices,argx,argy,&z,&opacity,&_render3d,&_is_double3d,&is_zbuffer, &_focale3d,&_light3d_x,&_light3d_y,&_light3d_z,&end)==12 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%f,%f,%u,%u,%u,%f,%f,%f,%f,%f,%f%c", indices,argx,argy,&z,&opacity,&_render3d,&_is_double3d,&is_zbuffer, &_focale3d,&_light3d_x,&_light3d_y,&_light3d_z, &_specular_lightness3d,&_specular_shininess3d,&end)==14) && (ind=selection2cimg(indices,images.size(),images_names,"-object3d",true, false,CImg::empty())).height()==1 && (!*argx || std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && _render3d<=5 && is_zbuffer<=1 && _is_double3d<=1) { const CImg img0 = gmic_image_arg(*ind); if (!img0.is_CImg3d(true,message)) error(images,"Command '-object3d': Invalid 3d object [%u], specified " "in argument '%s' (%s).", *ind,argument_text,message); print(images,"Draw 3d object [%u] at (%g%s,%g%s,%g) on image%s, with opacity %g, " "%s rendering, %s-sided mode, %sz-buffer, focale %g, 3d light at (%g,%g,%g) " "and specular properties (%g,%g)", *ind, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z, gmic_selection, opacity, _render3d==0?"dot":_render3d==1?"wireframe":_render3d==2?"flat": _render3d==3?"flat-shaded":_render3d==4?"gouraud-shaded":"phong-shaded", _is_double3d?"double":"simple", is_zbuffer?"":"no ", _focale3d,_light3d_x,_light3d_y,_light3d_z, _specular_lightness3d,_specular_shininess3d); CImgList primitives; CImgList colors, opacities; CImgList _colors; // 'uchar' colors when rendering with light. CImg vertices(img0,false); if (_render3d>=3) { vertices.CImg3dtoobject3d(primitives,_colors,opacities); if (light3d) _colors.insert(light3d,~0U,true); } else vertices.CImg3dtoobject3d(primitives,colors,opacities); cimglist_for(opacities,o) if (!opacities[o].is_shared()) opacities[o]*=opacity; cimg_forY(selection,l) { CImg &img = images[selection[l]]; const float nx = sepx=='%'?x*(img.width()-1)/100:x, ny = sepy=='%'?y*(img.height()-1)/100:y; CImg zbuffer(is_zbuffer?img.width():0,is_zbuffer?img.height():0,1,1,0); if (colors) { gmic_apply(img,draw_object3d(nx,ny,z,vertices,primitives,colors,opacities, _render3d,_is_double3d,_focale3d, _light3d_x,_light3d_y,_light3d_z, _specular_lightness3d,_specular_shininess3d, zbuffer)); } else { gmic_apply(img,draw_object3d(nx,ny,z,vertices,primitives,_colors,opacities, _render3d,_is_double3d,_focale3d, _light3d_x,_light3d_y,_light3d_z, _specular_lightness3d,_specular_shininess3d, zbuffer)); } } } else arg_error("object3d"); is_released = false; ++position; continue; } // Bitwise or. gmic_arithmetic_item("-or", operator|=, "Compute bitwise OR of image%s by %g%s", gmic_selection,value,ssep,T, operator|=, "Compute bitwise OR of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise OR of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise OR of image%s"); // Set 3d object opacity. if (!std::strcmp("-opacity3d",command)) { gmic_substitute_args(); float opacity = 1; if (std::sscanf(argument,"%f%c", &opacity,&end)==1) { print(images,"Set opacity of 3d object%s to %g.", gmic_selection, opacity); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(true,message)) error(images,"Command '-opacity3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,color_CImg3d(0,0,0,opacity,false,true)); } } else arg_error("opacity3d"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='o'. //---------------------------- // Commands starting by '-p..' //---------------------------- else if (command1=='p') { // Run multiple commands in parallel. if (!std::strcmp("-parallel",item)) { gmic_substitute_args(); CImgList args = CImg::string(argument).get_split(',',false,false); CImg > thread_data(args.width()); #ifdef gmic_is_parallel #if cimg_OS!=2 CImg thread_id(args.width()); #else CImg thread_id(args.width()); #endif // #if cimg_OS!=2 print(images,"Execute %d parallel commands '%s'.", args.width(),argument_text); #else print(images,"Execute %d parallel commands '%s' (run sequentially, parallel computing disabled).", args.width(),argument_text); #endif // #ifdef gmic_is_parallel cimglist_for(args,l) { args[l].resize(1,args[l].height()+1,1,1,0); gmic &gi = thread_data[l].gmic_instance; for (unsigned int i = 0; i<256; ++i) { gi.commands[i].assign(commands[i],true); gi.commands_names[i].assign(commands_names[i],true); gi.commands_has_arguments[i].assign(commands_has_arguments[i],true); thread_data[l].variables_sizes[i] = 0; } // Copy global variables for new thread. gi.variables[255].assign(variables[255]); gi.variables_names[255].assign(variables_names[255]); thread_data[l].variables_sizes[255] = variables_sizes[255]; gi.scope.assign(scope); cimg_snprintf(title,_title.size(),"*thread%d",l); CImg::string(title).move_to(gi.scope); gi.background3d.assign(background3d); gi.light3d.assign(light3d); gi.pose3d.assign(pose3d); gi.focale3d = focale3d; gi.light3d_x = light3d_x; gi.light3d_y = light3d_y; gi.light3d_z = light3d_z; gi.specular_lightness3d = specular_lightness3d; gi.specular_shininess3d = specular_shininess3d; gi._progress = 0; gi.progress = &gi._progress; gi.is_released = is_released; gi.is_debug = is_debug; gi.is_start = false; gi.is_quit = false; gi.is_return = false; gi.is_double3d = is_double3d; gi.is_default_type = is_default_type; gi.check_elif = false; gi.verbosity = verbosity; gi.render3d = render3d; gi.renderd3d = renderd3d; gi._cancel = _cancel; gi.cancel = cancel; gi.nb_carriages = nb_carriages; gi.reference_time = reference_time; thread_data[l].images = &images; thread_data[l].images_names = &images_names; // Substitute special characters codes appearing outside strings. bool is_dquoted = false; for (char *s = args[l].data(); *s; ++s) { const char c = *s; if (c=='\"') is_dquoted = !is_dquoted; if (!is_dquoted) *s = c<' '?(c==_dollar?'$':c==_lbrace?'{':c==_rbrace?'}': c==_comma?',':c==_dquote?'\"':c==_arobace?'@':c):c; } gi.commands_line_to_CImgList(args[l].data()).move_to(thread_data[l].commands_line); #ifdef gmic_is_parallel #if cimg_OS!=2 pthread_create(&thread_id[l],0,gmic_parallel,(void*)&thread_data[l]); #else thread_id[l] = CreateThread(0,0,gmic_parallel,(void*)&thread_data[l],0,0); #endif // #if cimg_OS!=2 #else gmic_parallel((void*)&thread_data[l]); #endif // #ifdef gmic_is_parallel } cimglist_for(args,l) { #ifdef gmic_is_parallel #if cimg_OS!=2 pthread_join(thread_id[l],0); #else WaitForSingleObject(thread_id[l],INFINITE); CloseHandle(thread_id[l]); #endif // #if cimg_OS!=2 #endif // #ifdef gmic_is_parallel is_released&=thread_data[l].gmic_instance.is_released; } // Get back global variables modified by first thread. thread_data[0].gmic_instance.variables[255].move_to(variables[255]); thread_data[0].gmic_instance.variables_names[255].move_to(variables_names[255]); variables_sizes[255] = thread_data[0].variables_sizes[255]; // Check for possible exceptions thrown by threads. cimglist_for(args,l) if (thread_data[l].exception._message) throw thread_data[l].exception; ++position; continue; } // Permute axes. if (!std::strcmp("-permute",command)) { gmic_substitute_args(); print(images,"Permute axes of image%s, with permutation '%s'.", gmic_selection,argument_text); cimg_forY(selection,l) gmic_apply(images[selection[l]],permute_axes(argument)); is_released = false; ++position; continue; } // Set progress indice. if (!std::strcmp("-progress",item)) { gmic_substitute_args(); float value = -1; if (std::sscanf(argument,"%f%c", &value,&end)==1) { if (value<0) value = -1; else if (value>100) value = 100; if (value>=0) print(images,"Set progress indice to %g%%.", value); else print(images,"Disable progress indice."); *progress = value; } else arg_error("progress"); ++position; continue; } // Print. if (!std::strcmp("-print",command)) { print_images(images,images_names,selection); is_released = true; continue; } #ifdef gmic_float // Power. gmic_arithmetic_item("-pow", pow, "Compute image%s to the power of %g%s", gmic_selection,value,ssep,double, pow, "Compute image%s to the power of image [%d]", gmic_selection,ind[0], "Compute image%s to the power of expression %s", gmic_selection,argument_text, "Compute sequential power of image%s"); // Draw point. if (!std::strcmp("-point",command)) { gmic_substitute_args(); float x = 0, y = 0, z = 0, opacity = 1; char sepx = 0, sepy = 0, sepz = 0; *argx = *argy = *argz = *color = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-]%c", argx,&end)==1 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", argx,argy,argz,&opacity,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f," "%4095[0-9.eE,+-]%c", argx,argy,argz,&opacity,color,&end)==5) && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%'))) { print(images, "Draw point (%g%s,%g%s,%g%s) on image%s, with opacity %g and color (%s).", x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", gmic_selection, opacity, *color?color:"default"); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z); gmic_apply(img,draw_point(nx,ny,nz,col.data(),opacity)); } } else arg_error("point"); is_released = false; ++position; continue; } // Draw polygon. if (!std::strcmp("-polygon",command)) { gmic_substitute_args(); char strint[256]; *strint = *color = 0; float N = 0, x0 = 0, y0 = 0, opacity = 1; char sepx = 0, sepy = 0, seph = 0; unsigned int pattern = 0; if (std::sscanf(argument,"%f%c", &N,&end)==2 && N>=1) { N = cimg::round(N); const char *nargument = argument + cimg_snprintf(strint,sizeof(strint),"%u", (unsigned int)N) + 1, *const eargument = argument + std::strlen(argument); CImg coords0((unsigned int)N,2,1,1,0); CImg percents((unsigned int)N,2,1,1,0); for (unsigned int n = 0; n<(unsigned int)N; ++n) if (nargument &img = images[selection[l]]; CImg coords(coords0); cimg_forX(coords,p) { if (percents(p,0)) coords(p,0) = (int)cimg::round(coords0(p,0)*(img.width()-1)/100); else coords(p,0) = (int)cimg::round(coords(p,0)); if (percents(p,1)) coords(p,1) = (int)cimg::round(coords0(p,1)*(img.height()-1)/100); else coords(p,1) = (int)cimg::round(coords(p,1)); } CImg col(img.spectrum(),1,1,1,0); col.fill(_color,true); if (seph=='x') { gmic_apply(img,draw_polygon(coords,col.data(),opacity,pattern)); } else { gmic_apply(img,draw_polygon(coords,col.data(),opacity)); } } } else arg_error("polygon"); is_released = false; ++position; continue; } // Draw plasma fractal. if (!std::strcmp("-plasma",command)) { gmic_substitute_args(); float alpha = 1, beta = 1, scale = 8; if ((std::sscanf(argument,"%f%c", &alpha,&end)==1 || std::sscanf(argument,"%f,%f%c", &alpha,&beta,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &alpha,&beta,&scale,&end)==3) && scale>=0) { const unsigned int _scale = (unsigned int)cimg::round(scale); print(images,"Draw plasma fractal on image%s, with alpha %g, beta %g and scale %u.", gmic_selection, alpha, beta, _scale); cimg_forY(selection,l) gmic_apply(images[selection[l]],draw_plasma(alpha,beta,_scale)); } else arg_error("plasma"); is_released = false; ++position; continue; } // Set 3d pose. if (!std::strcmp("-pose3d",item)) { gmic_substitute_args(); float p3d[16] = { 0 }; if (std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f%c", p3d,p3d+1,p3d+2,p3d+3,p3d+4,p3d+5,p3d+6,p3d+7, p3d+8,p3d+9,p3d+10,p3d+11,p3d+12,p3d+13,p3d+14,p3d+15, &end)==16) { print(images,"Set 3d pose matrix to [ %g,%g,%g,%g; %g,%g,%g,%g; %g,%g,%g,%g; " "%g,%g,%g,%g ].", p3d[0],p3d[1],p3d[2],p3d[3], p3d[4],p3d[5],p3d[6],p3d[7], p3d[8],p3d[9],p3d[10],p3d[11], p3d[12],p3d[13],p3d[14],p3d[15]); pose3d.assign(p3d,4,4,1,1,false); ++position; } else { print(images,"Reset 3d pose matrix to default."); pose3d.assign(); } continue; } // Convert 3d object primitives. if (!std::strcmp("-primitives3d",command)) { gmic_substitute_args(); unsigned int mode = 0; if (std::sscanf(argument,"%u%c", &mode,&end)==1 && mode<=2) { print(images,"Convert primitives of 3d object%s to %s.", gmic_selection, mode==0?"points":mode==1?"segments":"no-textures"); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg &img = gmic_check(images[ind]); if (!img.is_CImg3d(true,message)) error(images,"Command '-primitives3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); CImgList primitives; CImgList colors, opacities; CImg vertices; if (is_get_version) vertices.assign(img); else img.move_to(vertices); vertices.CImg3dtoobject3d(primitives,colors,opacities); const unsigned int psiz = primitives.size(); CImg P; CImg C, O; for (unsigned int p = 0; p::vector(P[0]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1]).move_to(primitives); C.move_to(colors); O.move_to(opacities); } break; case 3 : // Colored triangle. if (mode==2) { P.move_to(primitives); C.move_to(colors); O.move_to(opacities); } else if (mode==1) { CImg::vector(P[0],P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1],P[2]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[2],P[0]).move_to(primitives); C.move_to(colors); O.move_to(opacities); } else { CImg::vector(P[0]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[2]).move_to(primitives); C.move_to(colors); O.move_to(opacities); } break; case 4 : // Colored quadrangle. if (mode==2) { P.move_to(primitives); C.move_to(colors); O.move_to(opacities); } else if (mode==1) { CImg::vector(P[0],P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1],P[2]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[2],P[3]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[3],P[0]).move_to(primitives); C.move_to(colors); O.move_to(opacities); } else { CImg::vector(P[0]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[2]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[3]).move_to(primitives); C.move_to(colors); O.move_to(opacities); } break; case 5 : // Sphere. if (mode==2) { P.move_to(primitives); C.move_to(colors); O.move_to(opacities); } else if (mode==1) { CImg::vector(P[0],P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); } else { CImg::vector(P[0]).move_to(primitives); colors.insert(C); opacities.insert(O); CImg::vector(P[1]).move_to(primitives); colors.insert(C); opacities.insert(O); } break; case 6 : // Textured segment. if (mode==2) { CImg::vector(P[0],P[1]).move_to(primitives); C.get_vector_at(P[2],P[3]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[2],P[3])).move_to(opacities); else O.move_to(opacities); } else if (mode==1) { P.move_to(primitives); C.move_to(colors); O.move_to(opacities); } else { CImg::vector(P[0]).move_to(primitives); C.get_vector_at(P[2],P[3]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[2],P[3])).move_to(opacities); else opacities.insert(O); CImg::vector(P[1]).move_to(primitives); C.get_vector_at(P[4],P[5]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[4],P[5])).move_to(opacities); else O.move_to(opacities); } break; case 9 : // Textured triangle. if (mode==2) { CImg::vector(P[0],P[1],P[2]).move_to(primitives); C.get_vector_at(P[3],P[4]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[3],P[4])).move_to(opacities); else O.move_to(opacities); } else if (mode==1) { CImg::vector(P[0],P[1],P[3],P[4],P[5],P[6]). move_to(primitives); C.move_to(colors); opacities.insert(O); CImg::vector(P[1],P[2],P[3],P[4],P[7],P[8]). move_to(primitives); colors.insert(colors.back(),~0U,true); opacities.insert(O); CImg::vector(P[2],P[0],P[7],P[8],P[1],P[3]). move_to(primitives); colors.insert(colors.back(),~0U,true); O.move_to(opacities); } else { CImg::vector(P[0]).move_to(primitives); C.get_vector_at(P[3],P[4]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[3],P[4])).move_to(opacities); else opacities.insert(O); CImg::vector(P[1]).move_to(primitives); C.get_vector_at(P[5],P[6]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[5],P[6])).move_to(opacities); else opacities.insert(O); CImg::vector(P[2]).move_to(primitives); C.get_vector_at(P[7],P[8]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[7],P[8])).move_to(opacities); else O.move_to(opacities); } break; case 12 : // Textured quadrangle. if (mode==2) { CImg::vector(P[0],P[1],P[2],P[3]).move_to(primitives); C.get_vector_at(P[4],P[5]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[4],P[5])).move_to(opacities); else O.move_to(opacities); } else if (mode==1) { CImg::vector(P[0],P[1],P[4],P[5],P[6],P[7]). move_to(primitives); C.move_to(colors); opacities.insert(O); CImg::vector(P[1],P[2],P[6],P[7],P[8],P[9]). move_to(primitives); colors.insert(colors.back(),~0U,true); opacities.insert(O); CImg::vector(P[2],P[3],P[8],P[9],P[10],P[11]). move_to(primitives); colors.insert(colors.back(),~0U,true); opacities.insert(O); CImg::vector(P[3],P[0],P[10],P[11],P[4],P[5]). move_to(primitives); colors.insert(colors.back(),~0U,true); O.move_to(opacities); } else { CImg::vector(P[0]).move_to(primitives); C.get_vector_at(P[4],P[5]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[4],P[5])).move_to(opacities); else opacities.insert(O); CImg::vector(P[1]).move_to(primitives); C.get_vector_at(P[6],P[7]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[6],P[7])).move_to(opacities); else opacities.insert(O); CImg::vector(P[2]).move_to(primitives); C.get_vector_at(P[8],P[9]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[8],P[9])).move_to(opacities); else opacities.insert(O); CImg::vector(P[3]).move_to(primitives); C.get_vector_at(P[10],P[11]).move_to(colors); if (O.size()!=1) CImg::vector(O(P[10],P[11])).move_to(opacities); else O.move_to(opacities); } break; default : // Other primitives. P.move_to(primitives); C.move_to(colors); O.move_to(opacities); } } if (psiz) { primitives.remove(0,psiz-1); colors.remove(0,psiz-1); opacities.remove(0,psiz-1); } vertices.object3dtoCImg3d(primitives,colors,opacities); if (is_get_version) { images_names.insert(images_names[selection[l]].get_mark().copymark()); vertices.move_to(images); } else { images_names[selection[l]].mark(); vertices.move_to(images[selection[l]].assign()); } } } else arg_error("primitives3d"); is_released = false; ++position; continue; } // Display as a graph plot. if (!std::strcmp("-plot",command)) { gmic_substitute_args(); double ymin = 0, ymax = 0, xmin = 0, xmax = 0; unsigned int plot_type = 1, vertex_type = 1; float resolution = 65536; char sep = 0; *formula = 0; if (((std::sscanf(argument,"'%1023[^']%c%c", formula,&sep,&end)==2 && sep=='\'') || std::sscanf(argument,"'%1023[^']',%f%c", formula,&resolution,&end)==2 || std::sscanf(argument,"'%1023[^']',%f,%u%c", formula,&resolution,&plot_type,&end)==3 || std::sscanf(argument,"'%1023[^']',%f,%u,%u%c", formula,&resolution,&plot_type,&vertex_type,&end)==4 || std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf%c", formula,&resolution,&plot_type,&vertex_type,&xmin,&xmax,&end)==6 || std::sscanf(argument,"'%1023[^']',%f,%u,%u,%lf,%lf,%lf,%lf%c", formula,&resolution,&plot_type,&vertex_type, &xmin,&xmax,&ymin,&ymax,&end)==8) && resolution>0 && plot_type<=3 && vertex_type<=7) { resolution = cimg::round(resolution); gmic_strreplace(formula); if (xmin==0 && xmax==0) { xmin = -4; xmax = 4; } if (!plot_type && !vertex_type) plot_type = 1; if (resolution<1) resolution = 65536; CImgList tmp_img(1); CImg &values = tmp_img[0]; values.assign(4,(unsigned int)resolution--,1,1,0); const double dx = xmax - xmin; cimg_forY(values,X) values(0,X) = xmin + X*dx/resolution; cimg::eval(formula,values).move_to(values); CImgList tmp_name; cimg_snprintf(message,_message.size(),"[Plot of '%s']",formula); CImg::string(message).move_to(tmp_name); display_plots(tmp_img,tmp_name,CImg::vector(0), plot_type,vertex_type,xmin,xmax,ymin,ymax); ++position; } else { plot_type = 1; vertex_type = 0; ymin = ymax = xmin = xmax = 0; if ((std::sscanf(argument,"%u%c", &plot_type,&end)==1 || std::sscanf(argument,"%u,%u%c", &plot_type,&vertex_type,&end)==2 || std::sscanf(argument,"%u,%u,%lf,%lf%c", &plot_type,&vertex_type,&xmin,&xmax,&end)==4 || std::sscanf(argument,"%u,%u,%lf,%lf,%lf,%lf%c", &plot_type,&vertex_type,&xmin,&xmax,&ymin,&ymax,&end)==6) && plot_type<=3 && vertex_type<=7) ++position; if (!plot_type && !vertex_type) plot_type = 1; display_plots(images,images_names,selection,plot_type,vertex_type, xmin,xmax,ymin,ymax); } is_released = true; continue; } #endif // #ifdef gmic_float } // command1=='p'. //---------------------------- // Commands starting by '-q..' //---------------------------- else if (command1=='q') { #ifdef gmic_float // Draw quiver. if (!std::strcmp("-quiver",command)) { gmic_substitute_args(); float sampling = 25, factor = -20, opacity = 1; unsigned int is_arrows = 1, pattern = ~0U; CImg ind; char seph = 0; *color = 0; if ((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]]%c", indices,&end)==1 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c", indices,&sampling,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f%c", indices,&sampling,&factor,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%u%c", indices,&sampling,&factor,&is_arrows,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%u,%f%c", indices,&sampling,&factor,&is_arrows,&opacity,&end)==5 || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%u,%f,0%c%x%c", indices,&sampling,&factor,&is_arrows, &opacity,&seph,&pattern,&end)==7 && seph=='x') || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%u,%f,%4095[0-9.eE,+-]%c", indices,&sampling,&factor,&is_arrows,&opacity,color,&end)==6 && (pattern=~0U)) || (*color=0,std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%u," "%f,0%c%x,%4095[0-9.eE,+-]%c", indices,&sampling,&factor,&is_arrows, &opacity,&seph,&pattern,color,&end)==8 && seph=='x')) && (ind=selection2cimg(indices,images.size(),images_names,"-quiver",true, false,CImg::empty())).height()==1 && sampling>0 && is_arrows<=1) { sampling = cimg::round(sampling); print(images,"Draw 2d vector field [%u] on image%s, with sampling %g, factor %g, " "arrows %s, opacity %g, pattern 0x%x and color (%s).", *ind, gmic_selection, sampling, factor, is_arrows?"enabled":"disabled", opacity,pattern, *color?color:"default"); const CImg flow = gmic_image_arg(*ind); cimg_forY(selection,l) { CImg &img = images[selection[l]], col(img.spectrum(),1,1,1,0); col.fill(color,true); gmic_apply(img,draw_quiver(flow,col.data(),opacity,(unsigned int)sampling, factor,(bool)is_arrows,pattern)); } } else arg_error("quiver"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='q'. //---------------------------- // Commands starting by '-r..' //---------------------------- else if (command1=='r') { // Remove images. if (!std::strcmp("-remove",command)) { print(images,"Remove image%s", gmic_selection); CImgList _images; CImgList _images_names; if (is_get_version) { _images.assign(images); _images_names.assign(images_names); } remove_images(images,images_names,selection,0,selection.height()-1); if (is_get_version) { _images.move_to(images,0); _images_names.move_to(images_names,0); } if (verbosity>=0 || is_debug) { std::fprintf(cimg::output()," (%u image%s left).", images.size(),images.size()==1?"":"s"); std::fflush(cimg::output()); } is_released = false; continue; } // Repeat. if (!std::strcmp("-repeat",item)) { gmic_substitute_args(); float number = 0; if (std::sscanf(argument,"%f%c", &number,&end)==1) { const unsigned int nb = number>0?(unsigned int)cimg::round(number):0U; if (nb) { CImg::string("*repeat").move_to(scope); if (verbosity>0 || is_debug) print(images,"Start '-repeat..-done' block (%u iteration%s).", nb,nb>1?"s":""); CImg::vector(position+1,nb,0).move_to(repeatdones); } else { if (verbosity>0 || is_debug) print(images,"Skip 'repeat..done' block (0 iteration).", nb); int nb_repeats = 0; for (nb_repeats = 1; nb_repeats && position=commands_line.size()) error(images,"Command '-repeat': Missing associated '-done' command."); continue; } } else arg_error("repeat"); ++position; continue; } // Resize. if (!std::strcmp("-resize",command)) { gmic_substitute_args(); float valx = 100, valy = 100, valz = 100, valc = 100, cx = 0, cy = 0, cz = 0, cc = 0; char sep = 0, sepx = '%', sepy = '%', sepz = '%', sepc = '%'; char indicesy[256], indicesz[256], indicesc[256]; CImg ind, indx, indy, indz, indc; unsigned int boundary = 0; int interpolation = 1; *indices = *indicesy = *indicesz = *indicesc = *argx = *argy = *argz = *argc = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d%c", indices,&interpolation,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d,%u%c", indices,&interpolation,&boundary,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d,%u,%f%c", indices,&interpolation,&boundary,&cx,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d,%u,%f,%f%c", indices,&interpolation,&boundary,&cx,&cy,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d,%u,%f,%f,%f%c", indices,&interpolation,&boundary,&cx,&cy,&cz,&end)==6 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%d,%u,%f,%f,%f,%f%c", indices,&interpolation,&boundary,&cx,&cy,&cz,&cc,&end)==7) && (ind=selection2cimg(indices,images.size(),images_names,"-resize",true, false,CImg::empty())).height()==1 && interpolation>=-1 && interpolation<=6 && boundary<=2 && cx>=0 && cx<=1 && cy>=0 && cy<=1 && cz>=0 && cz<=1 && cc>=0 && cc<=1) { const int nvalx = images[*ind].width(), nvaly = images[*ind].height(), nvalz = images[*ind].depth(), nvalc = images[*ind].spectrum(); print(images,"Resize image%s to %dx%dx%dx%d, with %s interpolation, %s boundary conditions and " "alignment (%g,%g,%g,%g).", gmic_selection, nvalx,nvaly,nvalz,nvalc, interpolation<=0?"no":interpolation==1?"nearest-neighbor": interpolation==2?"moving average":interpolation==3?"linear": interpolation==4?"grid":interpolation==5?"cubic":"lanczos", boundary<=0?"dirichlet":boundary==1?"neumann":"cyclic", cx,cy,cz,cc); cimg_forY(selection,l) gmic_apply(images[selection[l]],resize(nvalx,nvaly,nvalz,nvalc,interpolation, boundary,cx,cy,cz,cc)); ++position; } else if ((cx=cy=cz=cc=0, interpolation=1, boundary=0, true) && (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,argz,argc,&end)==4 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d%c", argx,argy,argz,argc,&interpolation,&end)==5 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d,%u%c", argx,argy,argz,argc,&interpolation,&boundary,&end)==6 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d,%u,%f%c", argx,argy,argz,argc,&interpolation,&boundary,&cx,&end)==7 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d,%u,%f," "%f%c", argx,argy,argz,argc,&interpolation,&boundary,&cx,&cy,&end)==8|| std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d,%u,%f," "%f,%f%c", argx,argy,argz,argc,&interpolation,&boundary, &cx,&cy,&cz,&end)==9 || std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%d,%u,%f," "%f,%f,%f%c", argx,argy,argz,argc,&interpolation,&boundary, &cx,&cy,&cz,&cc,&end)==10) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sepx,&end)==2 && sepx==']' && (indx=selection2cimg(indices,images.size(),images_names,"-resize",true, false,CImg::empty())).height()==1) || (sepx=0,std::sscanf(argx,"%f%c",&valx,&sepx)==1 && valx>=1) || (std::sscanf(argx,"%f%c%c",&valx,&sepx,&end)==2 && sepx=='%')) && (!*argy || (std::sscanf(argy,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesy,&sepy,&end)==2 && sepy==']' && (indy=selection2cimg(indicesy,images.size(),images_names,"-resize",true, false,CImg::empty())).height()==1) || (sepy=0,std::sscanf(argy,"%f%c",&valy,&sepy)==1 && valy>=1) || (std::sscanf(argy,"%f%c%c",&valy,&sepy,&end)==2 && sepy=='%')) && (!*argz || (std::sscanf(argz,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesz,&sepz,&end)==2 && sepz==']' && (indz=selection2cimg(indicesz,images.size(),images_names,"-resize",true, false,CImg::empty())).height()==1) || (sepz=0,std::sscanf(argz,"%f%c",&valz,&sepz)==1 && valz>=1) || (std::sscanf(argz,"%f%c%c",&valz,&sepz,&end)==2 && sepz=='%')) && (!*argc || (std::sscanf(argc,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesc,&sepc,&end)==2 && sepc==']' && (indc=selection2cimg(indicesc,images.size(),images_names,"-resize",true, false,CImg::empty())).height()==1) || (sepc=0,std::sscanf(argc,"%f%c",&valc,&sepc)==1 && valc>=1) || (std::sscanf(argc,"%f%c%c",&valc,&sepc,&end)==2 && sepc=='%')) && valx>0 && valy>0 && valz>0 && valc>0 && interpolation>=-1 && interpolation<=6 && boundary<=2 && cx>=0 && cx<=1 && cy>=0 && cy<=1 && cz>=0 && cz<=1 && cc>=0 && cc<=1) { if (indx) { valx = (float)images[*indx].width(); sepx = 0; } if (indy) { valy = (float)images[*indy].height(); sepy = 0; } if (indz) { valz = (float)images[*indz].depth(); sepz = 0; } if (indc) { valc = (float)images[*indc].spectrum(); sepc = 0; } print(images, "Resize image%s to %g%s%g%s%g%s%g%s, with %s interpolation, %s boundary conditions " "and alignment (%g,%g,%g,%g).", gmic_selection, valx,sepx=='%'?"%x":"x", valy,sepy=='%'?"%x":"x", valz,sepz=='%'?"%x":"x", valc,sepc=='%'?"% ":"", interpolation<=0?"no":interpolation==1?"nearest neighbor": interpolation==2?"moving average":interpolation==3?"linear": interpolation==4?"grid":interpolation==5?"cubic":"lanczos", boundary<=0?"dirichlet":boundary==1?"neumann":"cyclic", cx,cy,cz,cc); cimg_forY(selection,l) { CImg& img = images[selection[l]]; const int _nvalx = (int)cimg::round(sepx=='%'?valx*img.width()/100:valx), _nvaly = (int)cimg::round(sepy=='%'?valy*img.height()/100:valy), _nvalz = (int)cimg::round(sepz=='%'?valz*img.depth()/100:valz), _nvalc = (int)cimg::round(sepc=='%'?valc*img.spectrum()/100:valc), nvalx = _nvalx?_nvalx:1, nvaly = _nvaly?_nvaly:1, nvalz = _nvalz?_nvalz:1, nvalc = _nvalc?_nvalc:1; gmic_apply(img,resize(nvalx,nvaly,nvalz,nvalc,interpolation,boundary,cx,cy,cz,cc)); } ++position; } else { #if cimg_display==0 print(images,"Resize image%s in interactive mode (skipped, no display support).", gmic_selection); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images,"Resize image%s in interactive mode (skipped, no display available).", gmic_selection); } if (is_available_display) { print(images,"Resize image%s in interactive mode.", gmic_selection); CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); if (img) { if (disp) disp.resize(cimg_fitscreen(img.width(),img.height(),1),false); else disp.assign(cimg_fitscreen(img.width(),img.height(),1),0,1); disp.set_title("%s: resize",gmic_basename(images_names[selection[l]].data())); img.get_select(disp,0); print(images, "Resize image [%d] to %dx%d, with nearest-neighbor interpolation.", selection[l], disp.width(), disp.height()); gmic_apply(img,resize(disp)); } else { gmic_apply(img,replace(img)); } } } #endif // #if cimg_display==0 } is_released = false; continue; } // Reverse positions. if (!std::strcmp("-reverse",command)) { print(images,"Reverse positions of image%s.", gmic_selection); CImgList _images, nimages(selection.height()); CImgList _images_names, nimages_names(selection.height()); if (is_get_version) { _images.assign(images); _images_names.assign(images_names); } cimg_forY(selection,l) { nimages[l].swap(images[selection[l]]); nimages_names[l].swap(images_names[selection[l]]); } nimages.reverse(); nimages_names.reverse(); cimg_forY(selection,l) { nimages[l].swap(images[selection[l]]); nimages_names[l].swap(images_names[selection[l]]); } if (is_get_version) { _images.move_to(images,0); _images_names.move_to(images_names,0); } is_released = false; continue; } // Return. if (!std::strcmp("-return",item)) { if (verbosity>0 || is_debug) print(images,"Return."); position = commands_line.size(); while (scope && scope.back()[0]=='*') { const char c = scope.back()[1]; if (c=='d') dowhiles.remove(); else if (c=='r') repeatdones.remove(); else if (c=='l' || c=='>' || c=='s') break; scope.remove(); } is_return = true; break; } // Keep rows. if (!std::strcmp("-rows",command)) { gmic_substitute_args(); CImg ind0, ind1; float value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c]",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-rows",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%'))) { if (ind0) { value0 = images[*ind0].height() - 1.0f; sep0 = 0; } print(images,"Keep rows %g%s of image%s.", value0,sep0=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.height()-1)/100:value0); gmic_apply(img,row(nvalue0)); } } else if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-rows",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%')) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep0,&end)==2 && sep0==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-rows",true, false,CImg::empty())).height()==1) || std::sscanf(argy,"%f%c",&value1,&end)==1 || (std::sscanf(argy,"%f%c%c",&value1,&sep1,&end)==2 && sep1=='%'))) { if (ind0) { value0 = images[*ind0].height() - 1.0f; sep0 = 0; } if (ind1) { value1 = images[*ind1].height() - 1.0f; sep1 = 0; } print(images,"Keep rows %g%s..%g%s of image%s.", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.height()-1)/100:value0), nvalue1 = (int)cimg::round(sep1=='%'?value1*(img.height()-1)/100:value1); gmic_apply(img,rows(nvalue0,nvalue1)); } } else arg_error("rows"); is_released = false; ++position; continue; } // Rotate. if (!std::strcmp("-rotate",command)) { gmic_substitute_args(); float angle = 0, zoom = 1, cx = 0, cy = 0; unsigned int interpolation = 1, boundary = 0; char sepx = 0, sepy = 0; *argx = *argy = 0; if ((std::sscanf(argument,"%f%c", &angle,&end)==1 || std::sscanf(argument,"%f,%u%c", &angle,&interpolation,&end)==2 || std::sscanf(argument,"%f,%u,%u%c", &angle,&interpolation,&boundary,&end)==3 || std::sscanf(argument,"%f,%u,%u,%255[0-9.eE%+-],%255[0-9.eE%+-]%c", &angle,&interpolation,&boundary,argx,argy,&end)==5 || std::sscanf(argument,"%f,%u,%u,%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", &angle,&interpolation,&boundary,argx,argy,&zoom,&end)==6) && (!*argx || std::sscanf(argx,"%f%c",&cx,&end)==1 || (std::sscanf(argx,"%f%c%c",&cx,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&cy,&end)==1 || (std::sscanf(argy,"%f%c%c",&cy,&sepy,&end)==2 && sepy=='%')) && interpolation<=2 && boundary<=2) { if (*argx) { print(images,"Rotate image%s of %g°, %s interpolation, %s boundary conditions " "with center at (%g%s,%g%s).", gmic_selection,angle, interpolation==0?"nearest-neighbor":interpolation==1?"linear":"cubic", boundary==0?"dirichlet":boundary==1?"neumann":"cyclic", cx,sepx=='%'?"%":"",cy,sepy=='%'?"%":""); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const float ncx = sepx=='%'?cx*(img.width()-1)/100:cx, ncy = sepy=='%'?cy*(img.height()-1)/100:cy; gmic_apply(img,rotate(angle,ncx,ncy,zoom,interpolation,boundary)); } } else { print(images,"Rotate image%s of %g°, %s interpolation and %s boundary conditions.", gmic_selection,angle, interpolation==0?"nearest-neighbor":interpolation==1?"linear":"cubic", boundary==0?"dirichlet":boundary==1?"neumann":"cyclic"); cimg_forY(selection,l) gmic_apply(images[selection[l]],rotate(angle,interpolation,boundary)); } } else arg_error("rotate"); is_released = false; ++position; continue; } #ifdef gmic_float // Round. if (!std::strcmp("-round",command)) { gmic_substitute_args(); double rounding_value = 1; int rounding_type = 0; if ((std::sscanf(argument,"%lf%c", &rounding_value,&end)==1 || std::sscanf(argument,"%lf,%d%c", &rounding_value,&rounding_type,&end)==2) && rounding_value>=0 && rounding_type>=-1 && rounding_type<=1) ++position; else { rounding_value = 1; rounding_type = 0; } print(images,"Round values of image%s by %g and %s rounding.", gmic_selection, rounding_value, rounding_type<0?"backward":rounding_type>0?"forward":"nearest"); cimg_forY(selection,l) gmic_apply(images[selection[l]],round(rounding_value,rounding_type)); is_released = false; continue; } // Fill with random values. if (!std::strcmp("-rand",command)) { gmic_substitute_args(); CImg ind0, ind1; double value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-rand",true, false,CImg::empty())).height()==1) || (std::sscanf(argx,"%lf%c%c",&value0,&sep0,&end)==2 && sep0=='%') || std::sscanf(argx,"%lf%c",&value0,&end)==1) && ((std::sscanf(argy,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep1,&end)==2 && sep1==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-rand",true, false,CImg::empty())).height()==1) || (std::sscanf(argy,"%lf%c%c",&value1,&sep1,&end)==2 && sep1=='%') || std::sscanf(argy,"%lf%c",&value1,&end)==1)) { if (ind0) { value0 = images[*ind0].min(); sep0 = 0; } if (ind1) { value1 = images[*ind1].max(); sep1 = 0; } print(images,"Fill image%s with random values, in range [%g%s,%g%s].", gmic_selection, value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":""); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); double vmin = 0, vmax = 0, nvalue0 = value0, nvalue1 = value1; if (sep0=='%' || sep1=='%') { if (img) vmax = (double)img.max_min(vmin); if (sep0=='%') nvalue0 = vmin + (vmax-vmin)*value0/100; if (sep1=='%') nvalue1 = vmin + (vmax-vmin)*value1/100; } gmic_apply(img,rand((T)nvalue0,(T)nvalue1)); } } else if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-rand",true, false,CImg::empty())).height()==1) { if (images[*ind0]) value1 = (double)images[*ind0].max_min(value0); print(images,"Fill image%s with random values, in range [%g,%g] from image [%d].", gmic_selection, value0, value1, *ind0); cimg_forY(selection,l) gmic_apply(images[selection[l]],rand((T)value0,(T)value1)); } else arg_error("rand"); is_released = false; ++position; continue; } // Rotate 3d object. if (!std::strcmp("-rotate3d",command)) { gmic_substitute_args(); float u = 0, v = 0, w = 1, angle = 0; if (std::sscanf(argument,"%f,%f,%f,%f%c", &u,&v,&w,&angle,&end)==4) { print(images,"Rotate 3d object%s around axis (%g,%g,%g), with angle %g°.", gmic_selection, u,v,w, angle); const CImg rot = CImg::rotation_matrix(u,v,w, (float)(angle*cimg::PI/180)); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(false,message)) error(images,"Command '-rotate3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,rotate_CImg3d(rot)); } } else arg_error("rotate3d"); is_released = false; ++position; continue; } // RGB to other color base. gmic_simple_item("-rgb2hsi",RGBtoHSI,"Convert image%s from RGB to HSI color bases."); gmic_simple_item("-rgb2hsl",RGBtoHSL,"Convert image%s from RGB to HSL color bases."); gmic_simple_item("-rgb2hsv",RGBtoHSV,"Convert image%s from RGB to HSV color bases."); gmic_simple_item("-rgb2lab",RGBtoLab,"Convert image%s from RGB to Lab color bases."); gmic_simple_item("-rgb2srgb",RGBtosRGB,"Convert image%s from RGB to sRGB color bases."); // Bitwise left rotation. gmic_arithmetic_item("-rol", gmic_rol, "Compute bitwise left rotation of image%s by %g%s", gmic_selection,(int)value,ssep,T, rol, "Compute bitwise left rotation of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise left rotation of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise left rotation of image%s"); // Bitwise right rotation. gmic_arithmetic_item("-ror", gmic_ror, "Compute bitwise right rotation of image%s by %g%s", gmic_selection,value,ssep,T, ror, "Compute bitwise right rotation of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise left rotation of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise left rotation of image%s"); // Repair image pixels. if (!std::strcmp("-repair",command)) { gmic_substitute_args(); float patch_size = 11, lookup_size = 22, lookup_increment = 1, blend_size = 0, blend_threshold = 0, blend_decay = 0.05f, blend_scales = 10; unsigned int is_blend_outer = 0; CImg ind; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c", indices,&patch_size,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f%c", indices,&patch_size,&lookup_size,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f%c", indices,&patch_size,&lookup_size,&lookup_increment,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f%c", indices,&patch_size,&lookup_size,&lookup_increment, &blend_size,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%f%c", indices,&patch_size,&lookup_size,&lookup_increment, &blend_size,&blend_threshold,&end)==6 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%f,%f%c", indices,&patch_size,&lookup_size,&lookup_increment, &blend_size,&blend_threshold,&blend_decay,&end)==7 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%f,%f,%f%c", indices,&patch_size,&lookup_size,&lookup_increment, &blend_size,&blend_threshold,&blend_decay,&blend_scales,&end)==8 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%f,%f,%f,%u%c", indices,&patch_size,&lookup_size,&lookup_increment, &blend_size,&blend_threshold,&blend_decay,&blend_scales, &is_blend_outer,&end)==9) && (ind=selection2cimg(indices,images.size(),images_names,"-repair",true, false,CImg::empty())).height()==1 && patch_size>=0.5 && lookup_size>=0.5 && lookup_increment>=0.5 && blend_size>=0 && blend_threshold>=0 && blend_threshold<=1 && blend_decay>=0 && blend_scales>=0.5 && is_blend_outer<=1) { const CImg mask = gmic_image_arg(*ind); patch_size = cimg::round(patch_size); lookup_size = cimg::round(lookup_size); lookup_increment = cimg::round(lookup_increment); blend_size = cimg::round(blend_size); blend_scales = cimg::round(blend_scales); print(images,"Repair image%s masked by image [%d], with patch size %g, lookup size %g, " "lookup increment %g, blend size %g, blend threshold %g, blend decay %g, %g blend scale%s and outer blending %s.", gmic_selection,*ind, patch_size,lookup_size,lookup_increment, blend_size,blend_threshold,blend_decay,blend_scales,blend_scales!=1?"s":"", is_blend_outer?"enabled":"disabled"); cimg_forY(selection,l) gmic_apply(images[selection[l]], inpaint_patch(mask, (unsigned int)patch_size,(unsigned int)lookup_size, (unsigned int)lookup_increment, (unsigned int)blend_size,blend_threshold,blend_decay, (unsigned int)blend_scales,(bool)is_blend_outer)); } else arg_error("repair"); is_released = false; ++position; continue; } // Reverse 3d object orientation. if (!std::strcmp("-reverse3d",command)) { print(images,"Reverse orientation of 3d object%s.", gmic_selection); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg &img = gmic_check(images[ind]); if (!img.is_CImg3d(true,message)) error(images,"Command '-reverse3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); CImgList primitives; CImgList colors, opacities; CImg vertices; if (is_get_version) vertices.assign(img); else img.move_to(vertices); vertices.CImg3dtoobject3d(primitives,colors,opacities); primitives.reverse_object3d(); vertices.object3dtoCImg3d(primitives,colors,opacities); if (is_get_version) { images_names.insert(images_names[selection[l]].get_mark().copymark()); vertices.move_to(images); } else { images_names[selection[l]].mark(); vertices.move_to(images[selection[l]].assign()); } } is_released = false; continue; } #endif // #ifdef gmic_float } // command1=='r'. //---------------------------- // Commands starting by '-s..' //---------------------------- else if (command1=='s') { // Set status if (!std::strcmp("-status",item)) { gmic_substitute_args(); print(images,"Set status to '%s'.",argument_text); CImg::string(argument).move_to(status); ++position; continue; } // Skip argument. if (!std::strcmp("-skip",item)) { gmic_substitute_args(); if (verbosity>0 || is_debug) print(images,"Skip argument '%s'.", argument_text); ++position; continue; } // Set pixel value. if (!std::strcmp("-set",command)) { gmic_substitute_args(); char sepx = 0, sepy = 0, sepz = 0, sepc = 0; float x = 0, y = 0, z = 0, c = 0; double value = 0; *argx = *argy = *argz = *argc = 0; if ((std::sscanf(argument,"%lf%c", &value,&end)==1 || std::sscanf(argument,"%lf,%255[0-9.eE%+-]%c", &value,argx,&end)==2 || std::sscanf(argument,"%lf,%255[0-9.eE%+-],%255[0-9.eE%+-]%c", &value,argx,argy,&end)==3 || std::sscanf(argument,"%lf,%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", &value,argx,argy,argz,&end)==4 || std::sscanf(argument,"%lf,%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c", &value,argx,argy,argz,argc,&end)==5) && (!*argx || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%') || std::sscanf(argx,"%f%c",&x,&end)==1) && (!*argy || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%') || std::sscanf(argy,"%f%c",&y,&end)==1) && (!*argz || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%') || std::sscanf(argz,"%f%c",&z,&end)==1) && (!*argc || (std::sscanf(argc,"%f%c%c",&c,&sepc,&end)==2 && sepc=='%') || std::sscanf(argc,"%f%c",&c,&end)==1)) { print(images,"Set value %g in image%s, at coordinates (%g%s,%g%s,%g%s,%g%s).", value, gmic_selection, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", c,sepc=='%'?"%":""); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = (int)cimg::round(sepz=='%'?z*(img.depth()-1)/100:z), nc = (int)cimg::round(sepc=='%'?c*(img.spectrum()-1)/100:c); gmic_apply(images[selection[l]],gmic_set(value,nx,ny,nz,nc)); } } else arg_error("set"); is_released = false; ++position; continue; } // Split. if (!std::strcmp("-split",command)) { gmic_substitute_args(); const char *axis_arg = 0; char keep_values = '+'; CImgList axes; float nb = 0; for (axis_arg = argument; *axis_arg && *axis_arg!=','; ++axis_arg) { const char _s = *axis_arg; if (_s!='x' && _s!='y' && _s!='z' && _s!='c') { axis_arg = 0; break; } CImg::vector(_s).move_to(axes); } if (axis_arg && *axis_arg==',') { if (std::sscanf(++axis_arg,"%f%c",&nb,&end)!=1) axis_arg = 0; else nb = cimg::round(nb); } if (axes && axis_arg) { const CImg _axes = (axes,CImg::vector(0))>'x'; axes.remove(); if (nb>0) print(images,"Split image%s along the '%s'-ax%cs, into %g parts.", gmic_selection, _axes.data(), axes.size()>1?'e':'i', nb); else if (nb<0) print(images,"Split image%s along the '%s'-ax%cs, into blocs of %g pixels.", gmic_selection, _axes.data(), axes.size()>1?'e':'i', -nb); else print(images,"Split image%s along the '%s'-ax%cs.", gmic_selection, _axes.data(), axes.size()>1?'e':'i'); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; const CImg& img = gmic_check(images[ind]); if (img) { CImg name = images_names[ind].get_mark(); CImgList split(img,true); cimglist_for(axes,i) { const unsigned int N = split.size(); for (unsigned int l = 0; l values(nb_values,1,1,1,argument+2,true); cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; const CImg& img = gmic_check(images[ind]); if (img) { CImg name = images_names[ind].get_mark(); CImgList split = images[ind].get_split(values,keep_values=='+',false); if (is_get_version) { if (split) { images_names.insert(split.size(),name.copymark()); split.move_to(images,~0U); } } else { images.remove(ind); images_names.remove(ind); if (split) { off+=split.size() - 1; images_names.insert(split.size(),name.get_copymark(),ind); name.move_to(images_names[ind]); split.move_to(images,ind); } } } } } else arg_error("split"); is_released = false; ++position; continue; } // Shared input. if (!std::strcmp("-shared",command)) { gmic_substitute_args(); char st0[256], st1[256], st2[256], st3[256], st4[256]; char sep0 = 0, sep1 = 0, sep2 = 0, sep3 = 0, sep4 = 0; float a0 = 0, a1 = 0, a2 = 0, a3 = 0, a4 = 0; *st0 = *st1 = *st2 = *st3 = *st4 = 0; if (std::sscanf(argument, "%255[0-9.eE%+],%255[0-9.eE%+],%255[0-9.eE%+],%255[0-9.eE%+]," "%255[0-9.eE%+]%c", st0,st1,st2,st3,st4,&end)==5 && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%')) && (std::sscanf(st3,"%f%c",&a3,&end)==1 || (std::sscanf(st3,"%f%c%c",&a3,&sep3,&end)==2 && sep3=='%')) && (std::sscanf(st4,"%f%c",&a4,&end)==1 || (std::sscanf(st4,"%f%c%c",&a4,&sep4,&end)==2 && sep4=='%'))) { print(images, "Insert shared buffer%s from points (%g%s->%g%s,%g%s,%g%s,%g%s) of image%s.", selection.height()>1?"s":"", a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", a3,sep3=='%'?"%":"", a4,sep4=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg& img = images[selection[l]]; const unsigned int s0 = (unsigned int)cimg::round(sep0=='%'?a0*(img.width()-1)/100:a0), s1 = (unsigned int)cimg::round(sep1=='%'?a1*(img.width()-1)/100:a1), y = (unsigned int)cimg::round(sep2=='%'?a2*(img.height()-1)/100:a2), z = (unsigned int)cimg::round(sep3=='%'?a3*(img.depth()-1)/100:a3), c = (unsigned int)cimg::round(sep4=='%'?a4*(img.spectrum()-1)/100:a4); images.insert(img.get_shared_points(s0,s1,y,z,c),~0U,true); images_names.insert(images_names[selection[l]].get_copymark()); } ++position; } else if (std::sscanf(argument, "%255[0-9.eE%+],%255[0-9.eE%+],%255[0-9.eE%+]," "%255[0-9.eE%+],%c", st0,st1,st2,st3,&end)==4 && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%')) && (std::sscanf(st3,"%f%c",&a3,&end)==1 || (std::sscanf(st3,"%f%c%c",&a3,&sep3,&end)==2 && sep3=='%'))) { print(images,"Insert shared buffer%s from lines (%g%s->%g%s,%g%s,%g%s) of image%s.", selection.height()>1?"s":"", a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", a3,sep3=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg& img = images[selection[l]]; const unsigned int s0 = (unsigned int)cimg::round(sep0=='%'?a0*(img.height()-1)/100:a0), s1 = (unsigned int)cimg::round(sep1=='%'?a1*(img.height()-1)/100:a1), z = (unsigned int)cimg::round(sep2=='%'?a2*(img.depth()-1)/100:a2), c = (unsigned int)cimg::round(sep3=='%'?a3*(img.spectrum()-1)/100:a3); images.insert(img.get_shared_rows(s0,s1,z,c),~0U,true); images_names.insert(images_names[selection[l]].get_copymark()); } ++position; } else if (std::sscanf(argument,"%255[0-9.eE%+],%255[0-9.eE%+],%255[0-9.eE%+]%c", st0,st1,st2,&end)==3 && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%')) && (std::sscanf(st2,"%f%c",&a2,&end)==1 || (std::sscanf(st2,"%f%c%c",&a2,&sep2,&end)==2 && sep2=='%'))) { print(images,"Insert shared buffer%s from planes (%g%s->%g%s,%g%s) of image%s.", selection.height()>1?"s":"", a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", a2,sep2=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg& img = images[selection[l]]; const unsigned int s0 = (unsigned int)cimg::round(sep0=='%'?a0*(img.depth()-1)/100:a0), s1 = (unsigned int)cimg::round(sep1=='%'?a1*(img.depth()-1)/100:a1), c = (unsigned int)cimg::round(sep2=='%'?a2*(img.spectrum()-1)/100:a2); images.insert(img.get_shared_slices(s0,s1,c),~0U,true); images_names.insert(images_names[selection[l]].get_copymark()); } ++position; } else if (std::sscanf(argument,"%255[0-9.eE%+],%255[0-9.eE%+]%c", st0,st1,&end)==2 && (std::sscanf(st0,"%f%c",&a0,&end)==1 || (std::sscanf(st0,"%f%c%c",&a0,&sep0,&end)==2 && sep0=='%')) && (std::sscanf(st1,"%f%c",&a1,&end)==1 || (std::sscanf(st1,"%f%c%c",&a1,&sep1,&end)==2 && sep1=='%'))) { print(images,"Insert shared buffer%s from channels (%g%s->%g%s) of image%s.", selection.height()>1?"s":"", a0,sep0=='%'?"%":"", a1,sep1=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg& img = images[selection[l]]; const unsigned int s0 = (unsigned int)cimg::round(sep0=='%'?a0*(img.spectrum()-1)/100:a0), s1 = (unsigned int)cimg::round(sep1=='%'?a1*(img.spectrum()-1)/100:a1); images.insert(img.get_shared_channels(s0,s1),~0U,true); images_names.insert(images_names[selection[l]].get_copymark()); } ++position; } else { print(images,"Insert shared buffer%s from image%s.", selection.height()>1?"s":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; images.insert(img,~0U,true); images_names.insert(images_names[selection[l]].get_copymark()); } } is_released = false; continue; } // Shift. if (!std::strcmp("-shift",command)) { gmic_substitute_args(); char sepx = 0, sepy = 0, sepz = 0, sepc = 0; float dx = 0, dy = 0, dz = 0, dc = 0; unsigned int boundary = 0; *argx = *argy = *argz = *argc = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-]%c", argx,&end)==1 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-]%c", argx,argy,argz,argc,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]," "%255[0-9.eE%+-],%u%c", argx,argy,argz,argc,&boundary,&end)==5) && (std::sscanf(argx,"%f%c",&dx,&end)==1 || (std::sscanf(argx,"%f%c%c",&dx,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&dy,&end)==1 || (std::sscanf(argy,"%f%c%c",&dy,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&dz,&end)==1 || (std::sscanf(argz,"%f%c%c",&dz,&sepz,&end)==2 && sepz=='%')) && (!*argc || std::sscanf(argc,"%f%c",&dc,&end)==1 || (std::sscanf(argc,"%f%c%c",&dc,&sepc,&end)==2 && sepc=='%')) && boundary<=2) { print(images, "Shift image%s by displacement vector (%g%s,%g%s,%g%s,%g%s) and %s boundary conditions.", gmic_selection, dx,sepx=='%'?"%":"", dy,sepy=='%'?"%":"", dz,sepz=='%'?"%":"", dc,sepc=='%'?"%":"", boundary==0?"dirichlet":boundary==1?"neumann":"cyclic"); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int ndx = (int)cimg::round(sepx=='%'?dx*img.width()/100:dx), ndy = (int)cimg::round(sepy=='%'?dy*img.height()/100:dy), ndz = (int)cimg::round(sepz=='%'?dz*img.depth()/100:dz), ndc = (int)cimg::round(sepc=='%'?dc*img.spectrum()/100:dc); gmic_apply(images[selection[l]],shift(ndx,ndy,ndz,ndc,boundary)); } } else arg_error("shift"); is_released = false; ++position; continue; } // Keep slices. if (!std::strcmp("-slices",command)) { gmic_substitute_args(); CImg ind0, ind1; float value0 = 0, value1 = 0; char sep0 = 0, sep1 = 0; *argx = *argy = 0; if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c]",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-slices",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%'))) { if (ind0) { value0 = images[*ind0].depth() - 1.0f; sep0 = 0; } print(images,"Keep slice %g%s of image%s.", value0,sep0=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.depth()-1)/100:value0); gmic_apply(img,slice(nvalue0)); } } else if (std::sscanf(argument,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep0,&end)==2 && sep0==']' && (ind0=selection2cimg(indices,images.size(),images_names,"-slices",true, false,CImg::empty())).height()==1) || std::sscanf(argx,"%f%c",&value0,&end)==1 || (std::sscanf(argx,"%f%c%c",&value0,&sep0,&end)==2 && sep0=='%')) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",formula,&sep0,&end)==2 && sep0==']' && (ind1=selection2cimg(formula,images.size(),images_names,"-slices",true, false,CImg::empty())).height()==1) || std::sscanf(argy,"%f%c",&value1,&end)==1 || (std::sscanf(argy,"%f%c%c",&value1,&sep1,&end)==2 && sep1=='%'))) { if (ind0) { value0 = images[*ind0].depth() - 1.0f; sep0 = 0; } if (ind1) { value1 = images[*ind1].depth() - 1.0f; sep1 = 0; } print(images,"Keep slices %g%s..%g%s of image%s.", value0,sep0=='%'?"%":"", value1,sep1=='%'?"%":"", gmic_selection); cimg_forY(selection,l) { CImg &img = images[selection[l]]; const int nvalue0 = (int)cimg::round(sep0=='%'?value0*(img.depth()-1)/100:value0), nvalue1 = (int)cimg::round(sep1=='%'?value1*(img.depth()-1)/100:value1); gmic_apply(img,slices(nvalue0,nvalue1)); } } else arg_error("slices"); is_released = false; ++position; continue; } // Set random generator seed. if (!std::strcmp("-srand",item)) { gmic_substitute_args(); double value = 0; if (std::sscanf(argument,"%lf%c", &value,&end)==1) { value = cimg::round(value); print(images,"Set random generator seed to %u.", (unsigned int)value); cimg::srand((unsigned int)value); ++position; } else { print(images,"Set random generator seed to random."); cimg::srand(); } continue; } #ifdef gmic_float // Sub. gmic_arithmetic_item("-sub", operator-=, "Subtract %g%s to image%s", value,ssep,gmic_selection,T, operator-=, "Subtract image [%d] to image%s", ind[0],gmic_selection, "Subtract expression %s to image%s", argument_text,gmic_selection, "Subtract image%s"); // Square root. gmic_simple_item("-sqrt",sqrt,"Compute pointwise square root of image%s."); // Square. gmic_simple_item("-sqr",sqr,"Compute pointwise square function of image%s."); // Sign. gmic_simple_item("-sign",sign,"Compute pointwise sign of image%s."); // Sine. gmic_simple_item("-sin",sin,"Compute pointwise sine of image%s."); // Sort. if (!std::strcmp("-sort",command)) { gmic_substitute_args(); char order = '+', axis = 0; if ((std::sscanf(argument,"%c%c",&order,&end)==1 || (std::sscanf(argument,"%c,%c%c",&order,&axis,&end)==2 && (axis=='x' || axis=='y' || axis=='z' || axis=='c'))) && (order=='+' || order=='-')) ++position; else { order = '+'; axis = 0; } if (axis) print(images,"Sort values of image%s in %s order, according to axis '%c'.", gmic_selection,order=='+'?"ascending":"descending",axis); else print(images,"Sort values of image%s in %s order.", gmic_selection,order=='+'?"ascending":"descending"); cimg_forY(selection,l) gmic_apply(images[selection[l]],sort(order=='+',axis)); is_released = false; continue; } // Solve. if (!std::strcmp("-solve",command)) { gmic_substitute_args(); CImg ind; char sep = 0; if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-solve",true, false,CImg::empty())).height()==1) { print(images,"Solve linear system AX = B, with B-vector%s and A-matrix [%d].", gmic_selection,*ind); const CImg A = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],solve(A)); } else arg_error("solve"); is_released = false; ++position; continue; } // Shift 3d object, with opposite displacement. if (!std::strcmp("-sub3d",command)) { gmic_substitute_args(); float tx = 0, ty = 0, tz = 0; if (std::sscanf(argument,"%f%c", &tx,&end)==1 || std::sscanf(argument,"%f,%f%c", &tx,&ty,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &tx,&ty,&tz,&end)==3) { print(images,"Shift 3d object%s with displacement -(%g,%g,%g).", gmic_selection, tx,ty,tz); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(false,message)) error(images, "Command '-sub3d': Invalid 3d object [%d], in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,shift_CImg3d(-tx,-ty,-tz)); } } else arg_error("sub3d"); is_released = false; ++position; continue; } // Sharpen. if (!std::strcmp("-sharpen",command)) { gmic_substitute_args(); float amplitude = 0, edge = -1, alpha = 0, sigma = 0; if ((std::sscanf(argument,"%f%c", &litude,&end)==1 || std::sscanf(argument,"%f,%f%c", &litude,&edge,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &litude,&edge,&alpha,&end)==3 || std::sscanf(argument,"%f,%f,%f,%f%c", &litude,&edge,&alpha,&sigma,&end)==4) && amplitude>=0 && (edge==-1 || edge>=0)) { if (edge>=0) print(images,"Sharpen image%s with shock filters, amplitude %g, edge %g, " "alpha %g and sigma %g.", gmic_selection, amplitude, edge, alpha, sigma); else print(images,"Sharpen image%s with inverse diffusion and amplitude %g.", gmic_selection, amplitude); cimg_forY(selection,l) gmic_apply(images[selection[l]],sharpen(amplitude,(bool)(edge>=0), edge,alpha,sigma)); } else arg_error("sharpen"); is_released = false; ++position; continue; } // Anisotropic PDE-based smoothing. if (!std::strcmp("-smooth",command)) { gmic_substitute_args(); float amplitude = 0, sharpness = 0.7f, anisotropy = 0.3f, alpha = 0.6f, sigma = 1.1f, dl =0.8f, da = 30.0f, gauss_prec = 2.0f; unsigned int interpolation = 0, is_fast_approximation = 1; CImg ind; char sep = 0; if ((std::sscanf(argument,"%f%c", &litude,&end)==1 || std::sscanf(argument,"%f,%f%c", &litude,&sharpness,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &litude,&sharpness,&anisotropy,&end)==3 || std::sscanf(argument,"%f,%f,%f,%f%c", &litude,&sharpness,&anisotropy,&alpha,&end)==4 || std::sscanf(argument,"%f,%f,%f,%f,%f%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&end)==5 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&dl,&end)==6 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%f%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&dl,&da,&end)==7 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%f,%f%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&dl,&da,&gauss_prec, &end)==8 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%f,%f,%u%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&dl,&da,&gauss_prec, &interpolation,&end)==9 || std::sscanf(argument,"%f,%f,%f,%f,%f,%f,%f,%f,%u,%u%c", &litude,&sharpness,&anisotropy,&alpha,&sigma,&dl,&da,&gauss_prec, &interpolation,&is_fast_approximation,&end)==10) && amplitude>=0 && sharpness>=0 && anisotropy>=0 && anisotropy<=1 && dl>0 && da>=0 && gauss_prec>0 && interpolation<=2 && is_fast_approximation<=1) { if (da>0) print(images,"Smooth image%s anisotropically, with amplitude %g, sharpness %g, " "anisotropy %g, alpha %g, sigma %g, dl %g, da %g, precision %g, " "%s interpolation and fast approximation %s.", gmic_selection, amplitude, sharpness, anisotropy, alpha, sigma, dl, da, gauss_prec, interpolation==0?"nearest-neighbor":interpolation==1?"linear":"runge-kutta", is_fast_approximation?"enabled":"disabled"); else print(images,"Smooth image%s anisotropically, with %d iterations, sharpness %g, " "anisotropy %g, alpha %g, sigma %g and dt %g.", gmic_selection, (int)amplitude, sharpness, anisotropy, alpha, sigma, dl); cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_anisotropic(amplitude,sharpness,anisotropy, alpha,sigma,dl,da,gauss_prec, interpolation, (bool)is_fast_approximation)); } else if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f%c", indices,&litude,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f%c", indices,&litude,&dl,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f%c", indices,&litude,&dl,&da,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f%c", indices,&litude,&dl,&da,&gauss_prec,&end)==5 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%u%c", indices,&litude,&dl,&da,&gauss_prec, &interpolation,&end)==6 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%f,%f,%f,%f,%u,%u%c", indices,&litude,&dl,&da,&gauss_prec,&interpolation, &is_fast_approximation,&end)==7) && (ind=selection2cimg(indices,images.size(),images_names,"-smooth",true, false,CImg::empty())).height()==1 && amplitude>=0 && dl>0 && da>=0 && gauss_prec>0 && interpolation<=2 && is_fast_approximation<=1) { const CImg tensors = gmic_image_arg(*ind); if (da>0) print(images, "Smooth image%s anisotropically, with tensor field [%u], amplitude %g, " "dl %g, da %g, precision %g, %s interpolation and fast approximation %s.", gmic_selection, *ind, amplitude, dl, da, gauss_prec, interpolation==0?"nearest-neighbor":interpolation==1?"linear":"runge-kutta", is_fast_approximation?"enabled":"disabled"); else print(images, "Smooth image%s anisotropically, with tensor field [%u], %d iterations " "and dt %g.", gmic_selection, *ind, (int)amplitude, dl); cimg_forY(selection,l) gmic_apply(images[selection[l]],blur_anisotropic(tensors,amplitude,dl,da, gauss_prec,interpolation, is_fast_approximation)); } else arg_error("smooth"); is_released = false; ++position; continue; } // Split 3d objects, into 6 vector images // { header,N,vertices,primitives,colors,opacities } if (!std::strcmp("-split3d",command)) { print(images,"Split 3d object%s into 6 property vectors.", gmic_selection); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; CImg &img = gmic_check(images[ind]); if (!img.is_CImg3d(true,message)) error(images, "Command '-split3d': Invalid 3d object [%d], in selected image%s (%s).", ind-off,gmic_selection,message); CImg name = images_names[ind].get_mark(); CImgList primitives; CImgList colors, opacities; CImg vertices; if (is_get_version) vertices.assign(img); else img.move_to(vertices); vertices.CImg3dtoobject3d(primitives,colors,opacities); CImgList split; (CImg("CImg3d",1,6)+=0.5f).move_to(split); CImg::vector((T)vertices.width(),(T)primitives.size()).move_to(split); vertices.transpose().unroll('y').move_to(split); CImgList _primitives; cimglist_for(primitives,p) { CImg primitive = primitives[p]; CImg::vector((T)primitive.size()).move_to(_primitives); primitive.unroll('y').move_to(_primitives); } primitives.assign(); (_primitives>'y').move_to(split); CImgList _colors; cimglist_for(colors,c) { CImg color = colors[c]; if (color.size()==3) color.unroll('y').move_to(_colors); else { CImg::vector((T)-128,(T)color.width(),(T)color.height(),(T)color.spectrum()). move_to(_colors); color.unroll('y').move_to(_colors); } } colors.assign(); (_colors>'y').move_to(split); CImgList _opacities; cimglist_for(opacities,o) { CImg opacity = opacities[o]; if (opacity.size()==1) opacity.move_to(_opacities); else { CImg::vector((T)-128,(T)opacity.width(),(T)opacity.height(), (T)opacity.spectrum()). move_to(_opacities); opacity.unroll('y').move_to(_opacities); } } opacities.assign(); (_opacities>'y').move_to(split); if (is_get_version) { images_names.insert(split.size(),name.copymark()); split.move_to(images,~0U); } else { off+=split.size() - 1; images_names.remove(ind); images_names.insert(split.size(),name.get_copymark(),ind); name.move_to(images_names[ind]); images.remove(ind); split.move_to(images,ind); } } is_released = false; continue; } // SVD. if (!std::strcmp("-svd",command)) { print(images,"Compute SVD decomposition%s of matri%s%s.", selection.height()>1?"s":"",selection.height()>1?"ce":"x",gmic_selection); CImg U, S, V; unsigned int off = 0; cimg_forY(selection,l) { const unsigned int ind = selection[l] + off; const CImg& img = gmic_check(images[ind]); CImg name = images_names[ind].get_mark(); img.SVD(U,S,V,true,100); if (is_get_version) { images_names.insert(2,name.copymark()); name.move_to(images_names); U.move_to(images); S.move_to(images); V.move_to(images); } else { images_names.insert(2,name.get_copymark(),ind+1); name.move_to(images_names[ind]); U.move_to(images[ind].assign()); images.insert(S,ind+1); images.insert(V,ind+2); off+=2; } } is_released = false; continue; } // Input 3d sphere. if (!std::strcmp("-sphere3d",item)) { gmic_substitute_args(); float radius = 100, recursions = 3; if ((std::sscanf(argument,"%f%c", &radius,&end)==1 || std::sscanf(argument,"%f,%f%c", &radius,&recursions,&end)==2) && recursions>=0) { recursions = cimg::round(recursions); print(images,"Input 3d sphere, with radius %g and %g recursions.", radius, recursions); CImgList primitives; CImg vertices = CImg::sphere3d(primitives,radius,(unsigned int)recursions); vertices.object3dtoCImg3d(primitives).move_to(images); CImg::string("[3d sphere]").move_to(images_names); } else arg_error("sphere3d"); is_released = false; ++position; continue; } // Set 3d specular light parameters. if (!std::strcmp("-specl3d",item)) { gmic_substitute_args(); float value = 0; if (std::sscanf(argument,"%f%c", &value,&end)==1 && value>=0) { specular_lightness3d = value; print(images,"Set lightness of 3d specular light to %g.", specular_lightness3d); } else arg_error("specl3d"); ++position; continue; } if (!std::strcmp("-specs3d",item)) { gmic_substitute_args(); float value = 0; if (std::sscanf(argument,"%f%c", &value,&end)==1 && value>=0) { specular_shininess3d = value; print(images,"Set shininess of 3d specular light to %g.", specular_shininess3d); } else arg_error("specs3d"); ++position; continue; } // Sine-cardinal. gmic_simple_item("-sinc",sinc,"Compute pointwise sinc function of image%s."); // Hyperbolic sine. gmic_simple_item("-sinh",sinh,"Compute pointwise hyperpolic sine of image%s."); // sRGB to RGB. gmic_simple_item("-srgb2rgb",sRGBtoRGB,"Convert image%s from sRGB to RGB color bases."); // Extract 3d streamline. if (!std::strcmp("-streamline3d",command)) { gmic_substitute_args(); unsigned int interp = 2, is_backward = 0, is_oriented_only = 0; float x = 0, y = 0, z = 0, L = 100, dl = 0.1f; char sepx = 0, sepy = 0, sepz = 0; *formula = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", argx,argy,argz,&L,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f%c", argx,argy,argz,&L,&dl,&end)==5 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f,%u%c", argx,argy,argz,&L,&dl,&interp,&end)==6 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f,%u," "%u%c", argx,argy,argz,&L,&dl,&interp,&is_backward,&end)==7 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f,%u," "%u,%u%c", argx,argy,argz,&L,&dl,&interp,&is_backward, &is_oriented_only,&end)==8) && (std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && (!*argz || std::sscanf(argz,"%f%c",&z,&end)==1 || (std::sscanf(argz,"%f%c%c",&z,&sepz,&end)==2 && sepz=='%')) && L>=0 && dl>0 && interp<4 && is_backward<=1 && is_oriented_only<=1) { print(images,"Extract 3d streamline from image%s, starting from (%g%s,%g%s,%g%s).", gmic_selection, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":""); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); const float nx = cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = cimg::round(sepy=='%'?y*(img.height()-1)/100:y), nz = cimg::round(sepz=='%'?z*(img.depth()-1)/100:z); CImg vertices = img.get_streamline(nx,ny,nz,L,dl,interp, (bool)is_backward,(bool)is_oriented_only); CImgList primitives; CImgList colors; if (vertices.width()>1) { primitives.assign(vertices.width()-1,1,2); cimglist_for(primitives,l) { primitives(l,0) = l; primitives(l,1) = l+1; } colors.assign(primitives.size(),1,3,1,1,200); } else { vertices.assign(); warn(images, "Command '-streamline3d': Empty streamline starting from " "(%g%s,%g%s,%g%s) in image [%u].", x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", z,sepz=='%'?"%":"", ind); } vertices.object3dtoCImg3d(primitives,colors); gmic_apply(img,replace(vertices)); } } else if ((std::sscanf(argument,"'%4095[^']',%f,%f,%f%c", formula,&x,&y,&z,&end)==4 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f%c", formula,&x,&y,&z,&L,&end)==5 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f%c", formula,&x,&y,&z,&L,&dl,&end)==6 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%u%c", formula,&x,&y,&z,&L,&dl,&interp,&end)==7 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%u,%u%c", formula,&x,&y,&z,&L,&dl,&interp,&is_backward,&end)==8 || std::sscanf(argument,"'%4095[^']',%f,%f,%f,%f,%f,%u,%u,%u%c", formula,&x,&y,&z,&L,&dl,&interp,&is_backward, &is_oriented_only,&end)==9) && dl>0 && interp<4) { gmic_strreplace(formula); print(images,"Extract 3d streamline from formula '%s', starting from (%g,%g,%g).", formula, x,y,z); CImg vertices = CImg::streamline((const char *)formula,x,y,z,L,dl,interp, (bool)is_backward,(bool)is_oriented_only); CImgList primitives; CImgList colors; if (vertices.width()>1) { primitives.assign(vertices.width()-1,1,2); cimglist_for(primitives,l) { primitives(l,0) = l; primitives(l,1) = l+1; } colors.assign(primitives.size(),1,3,1,1,200); } else { vertices.assign(); warn(images, "Command '-streamline3d': Empty streamline starting from (%g,%g,%g) " "in expression '%s'.", x,y,z,formula); } vertices.object3dtoCImg3d(primitives,colors).move_to(images); cimg_snprintf(title,_title.size(),"[3d streamline of '%s' at (%g,%g,%g)]", formula,x,y,z); gmic_ellipsize(title,_title.size()); CImg::string(title).move_to(images_names); } else arg_error("streamline3d"); is_released = false; ++position; continue; } // Compute structure tensor field. if (!std::strcmp("-structuretensors",command)) { gmic_substitute_args(); unsigned int scheme = 0; if (std::sscanf(argument,"%u%c",&scheme,&end)==1 && scheme<=2) ++position; else scheme = 2; print(images,"Compute structure tensor field of image%s, with %s scheme.", gmic_selection, scheme==0?"centered":scheme==1?"forward-backward1":"forward-backward2"); cimg_forY(selection,l) gmic_apply(images[selection[l]],structure_tensors(scheme)); is_released = false; continue; } // Select image feature. if (!std::strcmp("-select",command)) { gmic_substitute_args(); unsigned int feature_type = 0, X=~0U, Y=~0U, Z=~0U; bool is_xyz = false; if ((std::sscanf(argument,"%u%c",&feature_type,&end)==1 || (is_xyz=std::sscanf(argument,"%u,%u,%u,%u%c",&feature_type,&X,&Y,&Z,&end)==4)) && feature_type<=3) { #if cimg_display==0 print(images,"Select %s in image%s in interactive mode", feature_type==0?"point":feature_type==1?"segment":feature_type==2?"rectangle": "ellipse",gmic_selection); if (verbosity>=0 || is_debug) { if (is_xyz) std::fprintf(cimg::output(),", from point (%u,%u,%u)",X,Y,Z); std::fprintf(cimg::output()," (skipped, no display support)."); std::fflush(cimg::output()); } #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images, "Select %s in image%s in interactive mode", feature_type==0?"point":feature_type==1?"segment": feature_type==2?"rectangle":"ellipse",gmic_selection); if (verbosity>=0 || is_debug) { if (is_xyz) std::fprintf(cimg::output(),", from point (%u,%u,%u)",X,Y,Z); std::fprintf(cimg::output()," (skipped, no display available)."); std::fflush(cimg::output()); } } if (is_available_display) { print(images,"Select %s in image%s in interactive mode", feature_type==0?"point":feature_type==1?"segment": feature_type==2?"rectangle":"ellipse",gmic_selection); if (verbosity>=0 || is_debug) { if (is_xyz) std::fprintf(cimg::output(),", from point (%u,%u,%u).",X,Y,Z); else std::fprintf(cimg::output(),"."); std::fflush(cimg::output()); } unsigned int XYZ[3]; XYZ[0] = X; XYZ[1] = Y; XYZ[2] = Z; if (instant_window[0]) cimg_forY(selection,l) { gmic_apply(images[selection[l]],select(instant_window[0],feature_type, is_xyz?XYZ:0)); } else cimg_forY(selection,l) { gmic_apply(images[selection[l]],select(images_names[selection[l]].data(), feature_type,is_xyz?XYZ:0)); } } #endif // #if cimg_display==0 } else arg_error("select"); is_released = false; ++position; continue; } #endif // #ifdef gmic_float } // command1=='s'. //---------------------------- // Commands starting by '-t..' //---------------------------- else if (command1=='t') { // Set datatype. if (!std::strcmp("-type",item)) { gmic_substitute_args(); #ifndef gmic_float_only typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; gmic_cast(bool,"bool"); gmic_cast(uchar,"unsigned char"); gmic_cast(char,"char"); gmic_cast(ushort,"unsigned short"); gmic_cast(short,"short"); gmic_cast(uint,"unsigned int"); gmic_cast(int,"int"); gmic_cast(double,"double"); #endif // #ifndef gmic_float_only gmic_cast(float,"float"); arg_error("type"); } #ifdef gmic_float // Threshold. if (!std::strcmp("-threshold",command)) { gmic_substitute_args(); unsigned int is_soft = 0; double value = 0; char sep = 0; if ((std::sscanf(argument,"%lf%c", &value,&end)==1 || (std::sscanf(argument,"%lf%c%c", &value,&sep,&end)==2 && sep=='%') || std::sscanf(argument,"%lf,%u%c", &value,&is_soft,&end)==2 || (std::sscanf(argument,"%lf%c,%u%c", &value,&sep,&is_soft,&end)==3 && sep=='%')) && is_soft<=1) { print(images,"%s-threshold image%s by %g%s.", is_soft?"Soft":"Hard", gmic_selection, value,sep=='%'?"%":""); cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); double nvalue = value; if (sep=='%' && img) { double vmin = 0, vmax = (double)img.max_min(vmin); nvalue = vmin + (vmax-vmin)*value/100; } gmic_apply(img,threshold((T)nvalue,(bool)is_soft)); } ++position; } else { #if cimg_display==0 print(images, "Threshold image%s in interactive mode (skipped, no display support).", gmic_selection); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images, "Threshold image%s in interactive mode (skipped, no display available).", gmic_selection); } if (is_available_display) { print(images,"Threshold image%s in interactive mode.", gmic_selection); CImgDisplay _disp, &disp = instant_window[0]?instant_window[0]:_disp; cimg_forY(selection,l) { CImg& img = gmic_check(images[selection[l]]); if (img) { CImg visu = img.depth()>1?img.get_projections2d(img.width()/2, img.height()/2, img.depth()/2). channels(0,cimg::min(3,img.spectrum())-1): img.get_channels(0,cimg::min(3,img.spectrum()-1)); const unsigned int w = CImgDisplay::_fitscreen(visu.width(),visu.height(),1,256,-85,false), h = CImgDisplay::_fitscreen(visu.width(),visu.height(),1,256,-85,true); if (disp) disp.resize(w,h,false); else disp.assign(w,h,0,0); double vmin = 0, vmax = (double)img.max_min(vmin), percent = 50; bool stopflag = false, is_clicked = false; int omx = -1, omy = -1; CImg res; for (disp.show().flush(); !stopflag; ) { const unsigned char white[] = { 255,255,255 }, black[] = { 0,0,0 }; const unsigned int key = disp.key(); if (!res) disp.display(((res=visu.get_threshold((T)(vmin + percent*(vmax-vmin)/100)). resize(disp))*=255). draw_text(0,0,"Threshold %g = %.3g%%", white,black,0.7f,13, (double)(vmin + percent*(vmax-vmin)/100), percent)). set_title("%s (%dx%dx%dx%d)", gmic_basename(images_names[selection[l]].data()), img.width(),img.height(),img.depth(),img.spectrum()).wait(); const int mx = disp.mouse_x(), my = disp.mouse_y(); if (disp.button()) { if (mx>=0 && my>=0 && (mx!=omx || my!=omy)) { percent = (my-16)*100.0/(disp.height()-32); if (percent<0) percent = 0; else if (percent>101) percent = 101; omx = mx; omy = my; res.assign(); } is_clicked = true; } else if (is_clicked) break; if (disp.is_closed() || (key && key!=cimg::keyCTRLLEFT)) stopflag = true; if (key==cimg::keyD && disp.is_keyCTRLLEFT()) { disp.resize(cimg_fitscreen(3*disp.width()/2,3*disp.height()/2,1), stopflag=false).set_key(cimg::keyD,false); res.assign(); } if (key==cimg::keyC && disp.is_keyCTRLLEFT()) { disp.resize(cimg_fitscreen(2*disp.width()/3,2*disp.height()/3,1), stopflag=false).set_key(cimg::keyC,false); res.assign(); } if (disp.is_resized()) { disp.resize(false); res.assign(); } } print(images,"Hard-threshold image [%d] by %g = %.3g%%.", selection[l],(double)(vmin + percent*(vmax-vmin)/100),percent); gmic_apply(img,threshold((T)(vmin + percent*(vmax-vmin)/100))); } else { gmic_apply(img,replace(img)); } } } #endif // #if cimg_display==0 } is_released = false; continue; } // Tangent. gmic_simple_item("-tan",tan,"Compute pointwise tangent of image%s."); // Draw text. if (!std::strcmp("-text",command)) { gmic_substitute_args(); char text[4096]; *argx = *argy = *text = *color = 0; float x = 0, y = 0, opacity = 1, siz = 13; char sepx = 0, sepy = 0; if ((std::sscanf(argument,"%4095[^,]%c", text,&end)==1 || std::sscanf(argument,"%4095[^,],%255[0-9.eE%+-]%c", text,argx,&end)==2 || std::sscanf(argument,"%4095[^,],%255[0-9.eE%+-],%255[0-9.eE%+-]%c", text,argx,argy,&end)==3 || std::sscanf(argument,"%4095[^,],%255[0-9.eE%+-],%255[0-9.eE%+-],%f%c", text,argx,argy,&siz,&end)==4 || std::sscanf(argument,"%4095[^,],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f%c", text,argx,argy,&siz,&opacity,&end)==5 || std::sscanf(argument,"%4095[^,],%255[0-9.eE%+-],%255[0-9.eE%+-],%f,%f," "%4095[0-9.eE,+-]%c", text,argx,argy,&siz,&opacity,color,&end)==6) && (!*argx || std::sscanf(argx,"%f%c",&x,&end)==1 || (std::sscanf(argx,"%f%c%c",&x,&sepx,&end)==2 && sepx=='%')) && (!*argy || std::sscanf(argy,"%f%c",&y,&end)==1 || (std::sscanf(argy,"%f%c%c",&y,&sepy,&end)==2 && sepy=='%')) && siz>=0) { siz = cimg::round(siz); gmic_strreplace(text); print(images,"Draw text '%s' at position (%g%s,%g%s) on image%s, with font " "height %g, opacity %g and color (%s).", text, x,sepx=='%'?"%":"", y,sepy=='%'?"%":"", gmic_selection, siz, opacity, *color?color:"default"); cimg::strunescape(text); unsigned int nb_cols = 1; for (const char *s = color; *s; ++s) if (*s==',') ++nb_cols; cimg_forY(selection,l) { CImg &img = images[selection[l]], col(cimg::max(img.spectrum(),(int)nb_cols),1,1,1,0); col.fill(color,true); const int nx = (int)cimg::round(sepx=='%'?x*(img.width()-1)/100:x), ny = (int)cimg::round(sepy=='%'?y*(img.height()-1)/100:y); gmic_apply(img,gmic_draw_text(nx,ny,text,col,0,opacity,(unsigned int)siz,nb_cols)); } } else arg_error("text"); is_released = false; ++position; continue; } // Texturize 3d object. if (!std::strcmp("-texturize3d",command)) { gmic_substitute_args(); CImg ind_texture, ind_coords; char sep = 0; *argx = *argy = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", argx,&sep,&end)==2 && sep==']') || (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],[%255[a-zA-Z0-9_.%+-]%c%c", argx,argy,&sep,&end)==3 && sep==']')) && (ind_texture=selection2cimg(argx,images.size(),images_names,"-texturize3d",true, false,CImg::empty())).height()==1 && (!*argy || (ind_coords=selection2cimg(argy,images.size(),images_names, "-texturize3d",true, false,CImg::empty())).height()==1)) { if (ind_coords) print(images, "Texturize 3d object%s with texture [%u] and texture coordinates [%u].", gmic_selection,*ind_texture,*ind_coords); else print(images,"Texturize 3d object%s with texture [%u].", gmic_selection,*ind_texture); const CImg texture = gmic_image_arg(*ind_texture), coords = ind_coords?gmic_image_arg(*ind_coords):CImg(); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(false,message)) error(images,"Command '-texturize3d': Invalid 3d object [%d], " "in selected image%s (%s).", ind,gmic_selection,message); gmic_apply(img,texturize_CImg3d(texture,coords)); } } else arg_error("texturize3d"); is_released = false; ++position; continue; } // Tridiagonal solve. if (!std::strcmp("-trisolve",command)) { gmic_substitute_args(); CImg ind; char sep = 0; if (std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']' && (ind=selection2cimg(indices,images.size(),images_names,"-trisolve",true, false,CImg::empty())).height()==1) { print(images,"Solve tridiagonal system AX = B, with B-vector%s and tridiagonal " "A-matrix [%d].", gmic_selection,*ind); const CImg A = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],solve_tridiagonal(A)); } else arg_error("trisolve"); is_released = false; ++position; continue; } // Hyperbolic tangent. gmic_simple_item("-tanh",tanh,"Compute pointwise hyperbolic tangent of image%s."); #endif // #ifdef gmic_float } // command1=='t'. //---------------------------- // Commands starting by '-u..' //---------------------------- else if (command1=='u') { // Unroll. if (!std::strcmp("-unroll",command)) { gmic_substitute_args(); const char axis = *argument; if (std::strlen(argument)==1 && (axis=='x' || axis=='y' || axis=='z' || axis=='c')) { print(images,"Unroll image%s along the '%c'-axis.", gmic_selection, axis); cimg_forY(selection,l) gmic_apply(images[selection[l]],unroll(axis)); } else arg_error("unroll"); is_released = false; ++position; continue; } // Remove custom command. if (!std::strcmp("-uncommand",item)) { gmic_substitute_args(); if (argument[0]=='*' && !argument[1]) { // Discard all custom commands. unsigned int nb_commands = 0; for (unsigned int i = 0; i<256; ++i) { nb_commands+=commands[i].size(); commands[i].assign(); commands_names[i].assign(); commands_has_arguments[i].assign(); } print(images,"Discard definitions of all custom commmands (%u command%s discarded).", nb_commands,nb_commands>1?"s":""); } else { // Discard a single custom command. print(images,"Discard last definition of custom command '%s'",argument_text); CImg arg_command(argument,std::strlen(argument)+1); gmic_strreplace(arg_command); bool is_removed = false; if (*arg_command) { const int ind = gmic_hashcode(arg_command,false); cimglist_for(commands_names[ind],l) if (!std::strcmp(commands_names[ind][l],arg_command)) { commands_names[ind].remove(l); commands[ind].remove(l); commands_has_arguments[ind].remove(l); is_removed = true; break; } } if (verbosity>=0 || is_debug) { unsigned int siz = 0; for (unsigned int l = 0; l<256; ++l) siz+=commands[l].size(); std::fprintf(cimg::output()," (%s, %u command%s left).", is_removed?"found":"not found",siz,siz>1?"s":""); std::fflush(cimg::output()); } } ++position; continue; } } // command1=='u'. //---------------------------- // Commands starting by '-v..' //---------------------------- else if (command1=='v') { // Set verbosity (actually only display something, since it has already been processed before). if (!std::strcmp("-verbose",item)) { const bool is_one_char = !argument[1]; if (*argument=='-' && is_one_char) print(images,"Decrement verbosity level (set to %d).", verbosity); else if (*argument=='+' && is_one_char) { if (verbosity>0) print(images,"Increment verbosity level (set to %d).", verbosity); } else if (verbosity>0) print(images,"Set verbosity level to %d.", verbosity); ++position; continue; } // Vanvliet filter. if (!std::strcmp("-vanvliet",command)) { gmic_substitute_args(); unsigned int boundary = 1, order = 0; char sep = 0, axis = 0; float sigma = 0; if ((std::sscanf(argument,"%f,%u,%c%c",&sigma,&order,&axis,&end)==3 || (std::sscanf(argument,"%f%c,%u,%c%c",&sigma,&sep,&order,&axis,&end)==4 && sep=='%') || std::sscanf(argument,"%f,%u,%c,%u%c",&sigma,&order,&axis,&boundary,&end)==4 || (std::sscanf(argument,"%f%c,%u,%c,%u%c", &sigma,&sep,&order,&axis,&boundary,&end)==5 && sep=='%')) && sigma>=0 && order<=3 && (axis=='x' || axis=='y' || axis=='z' || axis=='c') && boundary<=1) { print(images,"Apply Vanvliet filter on image%s, with standard " "deviation %g%s, order %d, axis '%c' and %s boundary conditions.", gmic_selection, sigma,sep=='%'?"%":"", order,axis, boundary?"neumann":"dirichlet"); if (sep=='%') sigma = -sigma; cimg_forY(selection,l) gmic_apply(images[selection[l]],vanvliet(sigma,order,axis,(bool)boundary)); } else arg_error("vanvliet"); is_released = false; ++position; continue; } } // command1=='v'. //---------------------------- // Commands starting by '-w..' //---------------------------- else if (command1=='w') { // While. if (!std::strcmp("-while",item)) { gmic_substitute_args(); const CImg &s = scope.back(); if (s[0]!='*' || s[1]!='d') error(images, "Command '-while': Not associated to a '-do' command within the same scope."); float _is_cond = 0; bool is_filename = false; if (std::sscanf(argument,"%f%c",&_is_cond,&end)!=1) { is_filename = true; CImg arg_while(argument,std::strlen(argument)+1); gmic_strreplace(arg_while); _is_cond = 0; try { std::FILE *file = cimg::fopen(arg_while,"r"); if (file) { _is_cond = 1; cimg::fclose(file); } } catch (CImgException&) {} } const bool is_cond = (bool)_is_cond; if (verbosity>0 || is_debug) print(images,"Reach '-while' command -> %s '%s' %s.", is_filename?"filename":"boolean", argument_text, is_filename?(is_cond?"exists": "does not exist"): (is_cond?"is true":"is false")); if (is_cond) { position = dowhiles.back()(0); continue; } else { if (verbosity>0 || is_debug) print(images,"End 'do..while' block."); dowhiles.remove(); scope.remove(); } ++position; continue; } // Warning. if (!std::strcmp("-warn",command)) { gmic_substitute_args(); CImg str(argument,std::strlen(argument)+1); cimg::strunescape(str); if (is_restriction) warn(images,selection,"%s",str.data()); else warn(images,"%s",str.data()); ++position; continue; } #ifdef gmic_float // Display images in instant display window. unsigned int wind = 0; if ((!std::strcmp("-window",command) || std::sscanf(command,"-window%u%c",&wind,&end)==1 || std::sscanf(command,"-w%u%c",&wind,&end)==1) && wind<10) { gmic_substitute_args(); *title = 0; int norm = -1, fullscreen = -1; float dimw = -1, dimh = -1; char sepw = 0, seph = 0; *argx = *argy = 0; if ((std::sscanf(argument,"%255[0-9.eE%+-]%c", argx,&end)==1 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%d%c", argx,argy,&norm,&end)==3 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%d,%d%c", argx,argy,&norm,&fullscreen,&end)==4 || std::sscanf(argument,"%255[0-9.eE%+-],%255[0-9.eE%+-],%d,%d,%255[^\n]", argx,argy,&norm,&fullscreen,title)==5) && (std::sscanf(argx,"%f%c",&dimw,&end)==1 || (std::sscanf(argx,"%f%c%c",&dimw,&sepw,&end)==2 && sepw=='%')) && (!*argy || std::sscanf(argy,"%f%c",&dimh,&end)==1 || (std::sscanf(argy,"%f%c%c",&dimh,&seph,&end)==2 && seph=='%')) && (dimw>=0 || dimw==-1) && (dimh>=0 || dimh==-1) && norm>=-1 && norm<=3) ++position; else { dimw = dimh = -1; norm = fullscreen = -1; sepw = seph = 0; } if (dimh==0) dimw = 0; gmic_strreplace(title); cimg::strunescape(title); // Get images to display and compute associated optimal size. unsigned int optw = 0, opth = 0; CImgList subimages; if (dimw && dimh) cimg_forY(selection,l) { const CImg& img = gmic_check(images[selection[l]]); if (img) { subimages.insert(img,~0U,true); optw+=img.width() + (img.depth()>1?img.depth():0); if (img.height()>(int)opth) opth = img.height() + (img.depth()>1?img.depth():0); } } optw = optw?optw:sepw=='%'?CImgDisplay::screen_width():256; opth = opth?opth:seph=='%'?CImgDisplay::screen_height():256; dimw = dimw<0?-1:cimg::round(sepw=='%'?optw*dimw/100:dimw); dimh = dimh<0?-1:cimg::round(seph=='%'?opth*dimh/100:dimh); #if cimg_display==0 print(images, "Display image%s in instant window [%d] (skipped, no display support).", gmic_selection, wind); #else // #if cimg_display==0 bool is_available_display = false; try { is_available_display = (bool)CImgDisplay::screen_width(); } catch (CImgDisplayException&) { print(images, "Display image%s in instant window [%d] (skipped, no display available).", gmic_selection, wind); } if (is_available_display) { if (!dimw || !dimh) { // Close. print(images,"Close instant window [%d].", wind); instant_window[wind].assign(); } else { if (instant_window[wind]) { // Update. instant_window[wind].resize(dimw>0?(int)dimw:instant_window[wind].window_width(), dimh>0?(int)dimh:instant_window[wind].window_height(), false); if (norm>=0) instant_window[wind]._normalization = norm; if (*title && std::strcmp(instant_window[wind].title(),title)) instant_window[wind].set_title("%s",title); if (fullscreen>=0 && (bool)fullscreen!=instant_window[wind].is_fullscreen()) instant_window[wind].toggle_fullscreen(false); } else { // Create. instant_window[wind].assign(dimw>0?(int)dimw:optw, dimh>0?(int)dimh:opth, title,norm<0?3:norm, fullscreen<0?false:(bool)fullscreen); if (norm==2) { if (subimages) instant_window[wind]._max = (float)subimages.max_min(instant_window[wind]._min); else { instant_window[wind]._min = 0; instant_window[wind]._max = 255; } } } print(images, "Display image%s in %dx%d %sinstant window [%d], with%snormalization, " "%sfullscreen and title '%s'.", gmic_selection, instant_window[wind].width(), instant_window[wind].height(), instant_window[wind].is_fullscreen()?"fullscreen ":"", wind, instant_window[wind].normalization()==0?"out ": instant_window[wind].normalization()==1?" ": instant_window[wind].normalization()==2?" 1st-time ":" auto-", instant_window[wind].is_fullscreen()?"":"no ", instant_window[wind].title()); if (subimages) subimages.display(instant_window[wind]); } } #endif // #if cimg_display==0 is_released = true; continue; } // Warp. if (!std::strcmp("-warp",command)) { gmic_substitute_args(); unsigned int interpolation = 1, is_relative = 0, boundary = 1; CImg ind; float nb_frames = 1; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c", indices,&sep,&end)==2 && sep==']')|| std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&is_relative,&end)==2 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u%c", indices,&is_relative,&interpolation,&end)==3 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%u%c", indices,&is_relative,&interpolation,&boundary,&end)==4 || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u,%u,%u,%f%c", indices,&is_relative,&interpolation,&boundary,&nb_frames,&end)==5) && (ind=selection2cimg(indices,images.size(),images_names,"-warp",true, false,CImg::empty())).height()==1 && is_relative<=1 && interpolation<=2 && boundary<=2 && nb_frames>=0.5) { const CImg warping_field = gmic_image_arg(*ind); nb_frames = cimg::round(nb_frames); if (nb_frames==1) { print(images,"Warp image%s with %s displacement field [%u], %s interpolation, " "%s boundary conditions.", gmic_selection, is_relative?"relative":"absolute",*ind, interpolation==2?"cubic":interpolation==1?"linear":"nearest-neighbor", boundary==0?"dirichlet":boundary==1?"neumann":"cyclic"); cimg_forY(selection,l) gmic_apply(images[selection[l]],warp(warping_field,(bool)is_relative, interpolation,boundary)); } else { print(images,"Warp image%s with %s displacement field [%u], %s interpolation, " "%s boundary conditions and %d frames.", gmic_selection, is_relative?"relative":"absolute",*ind, interpolation==2?"cubic":interpolation==1?"linear":"nearest-neighbor", boundary==0?"dirichlet":boundary==1?"neumann":"cyclic", (int)nb_frames); unsigned int off = 0; cimg_forY(selection,l) { const unsigned int _ind = selection[l] + off; CImg& img = gmic_check(images[_ind]); CImg name = images_names[_ind].get_mark(); CImgList frames((int)nb_frames); cimglist_for(frames,t) frames[t] = img.get_warp(warping_field*((t+1.0f)/nb_frames),(bool)is_relative, interpolation,boundary); if (is_get_version) { images_names.insert((int)nb_frames,name.copymark()); frames.move_to(images,~0U); } else { off+=(int)nb_frames - 1; images_names.insert((int)nb_frames - 1,name.get_copymark(),_ind); images.remove(_ind); frames.move_to(images,_ind); } } } } else arg_error("warp"); is_released = false; ++position; continue; } // Watershed transform. if (!std::strcmp("-watershed",command)) { gmic_substitute_args(); CImg ind; unsigned int is_filled = 1; char sep = 0; if (((std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sep,&end)==2 && sep==']') || std::sscanf(argument,"[%255[a-zA-Z0-9_.%+-]],%u%c", indices,&is_filled,&end)==2) && (ind=selection2cimg(indices,images.size(),images_names,"-watershed",true, false,CImg::empty())).height()==1 && is_filled<=1) { print(images,"Compute watershed transform of image%s with priority map [%u] and " "%sfilling.", gmic_selection,*ind,is_filled?"":"no "); const CImg priority = gmic_image_arg(*ind); cimg_forY(selection,l) gmic_apply(images[selection[l]],watershed(priority,(bool)is_filled)); } else arg_error("watershed"); is_released = false; ++position; continue; } // Wait for a given delay of for user events on instant window. if (!std::strcmp("-wait",command)) { gmic_substitute_args(); if (!is_restriction) CImg::vector(0,1,2,3,4,5,6,7,8,9).move_to(selection); float delay = 0; if (std::sscanf(argument,"%f%c", &delay,&end)==1) ++position; else delay = 0; delay = cimg::round(delay); #if cimg_display==0 if (!delay) print(images, "Wait for user events on instant window%s (skipped, no display support).", gmic_selection); else { print(images, "Wait for %g milliseconds according to instant window%s.", delay, gmic_selection); cimg::wait((unsigned int)(delay<0?-delay:delay)); } #else // #if cimg_display==0 if (!delay) { print(images,"Wait for user events on instant window%s.", gmic_selection); CImgDisplay *const iw = instant_window; switch (selection.height()) { case 1 : CImgDisplay::wait(iw[selection[0]]); break; case 2 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]]); break; case 3 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]]); break; case 4 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]]); break; case 5 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]]); break; case 6 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]],iw[selection[5]]); break; case 7 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]],iw[selection[5]], iw[selection[6]]); break; case 8 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]],iw[selection[5]], iw[selection[6]],iw[selection[7]]); break; case 9 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]],iw[selection[5]], iw[selection[6]],iw[selection[7]],iw[selection[8]]); break; case 10 : CImgDisplay::wait(iw[selection[0]],iw[selection[1]],iw[selection[2]], iw[selection[3]],iw[selection[4]],iw[selection[5]], iw[selection[6]],iw[selection[7]],iw[selection[8]], iw[selection[9]]); break; } } else if (delay<0) { print(images, "Flush display events of instant window%s and wait for %g milliseconds.", gmic_selection,-delay); cimg_forY(selection,l) instant_window[selection[l]].flush(); if (selection && instant_window[selection[0]]) instant_window[selection[0]].wait((unsigned int)-delay); else cimg::wait((unsigned int)-delay); } else { print(images,"Wait for %g milliseconds according to instant window%s", delay, gmic_selection); if (selection && instant_window[selection[0]]) instant_window[selection[0]].wait((unsigned int)delay); else cimg::wait((unsigned int)delay); } #endif // #if cimg_display==0 continue; } #endif // #ifdef gmic_float } // command1=='w'. //---------------------------- // Commands starting by '-x..' //---------------------------- else if (command1=='x') { #ifdef gmic_float // Bitwise xor. gmic_arithmetic_item("-xor", operator^=, "Compute bitwise XOR of image%s by %g%s", gmic_selection,value,ssep,T, operator^=, "Compute bitwise XOR of image%s by image [%d]", gmic_selection,ind[0], "Compute bitwise XOR of image%s by expression %s", gmic_selection,argument_text, "Compute sequential bitwise XOR of image%s"); #endif // #ifdef gmic_float } // command1=='x'. //---------------------------- // Other (special) commands. //---------------------------- // If..[elif]..[else]..endif. if (!std::strcmp("-if",item) || (!std::strcmp("-elif",item) && check_elif)) { gmic_substitute_args(); check_elif = false; float _is_cond = 0; bool is_filename = false; if (std::sscanf(argument,"%f%c",&_is_cond,&end)!=1) { is_filename = true; CImg arg_if(argument,std::strlen(argument)+1); gmic_strreplace(arg_if); _is_cond = 0; try { std::FILE *file = cimg::fopen(arg_if,"r"); if (file) { _is_cond = 1; cimg::fclose(file); } } catch (CImgException&) {} } const bool is_cond = (bool)_is_cond; if (item[1]=='i') { CImg::string("*if").move_to(scope); if (verbosity>0 || is_debug) print(images,"Start '-if..-endif' block -> %s '%s' %s.", is_filename?"filename":"boolean", argument_text, is_filename?(is_cond?"exists":"does not exist"): (is_cond?"is true":"is false")); } else if (verbosity>0 || is_debug) print(images,"Reach '-elif' block -> %s '%s' %s.", is_filename?"filename":"boolean", argument_text, is_filename?(is_cond?"exists": "does not exist"): (is_cond?"is true":"is false")); if (!is_cond) { for (int nb_ifs = 1; nb_ifs && position=commands_line.size()) error(images,"Command '-%s': Missing associated '-%s' command.",stb,ste); if (is_continue || scope_local) { if (scope_ind2?"s":""); cimg_forY(selection,l) { const unsigned int ind0 = selection[l], ind1 = l+1 &img0 = gmic_check(images[ind0]), &img1 = ind1!=~0U?gmic_check(images[ind1]):CImg::empty(); CImg name = images_names[ind0].get_mark(); if (ind1!=~0U) { // Complex transform. if (verbosity>=0 || is_debug) { std::fprintf(cimg::output()," ([%u],[%u])%c",ind0,ind1, l>=selection.height()-2?'.':','); std::fflush(cimg::output()); } if (is_get_version) { CImgList fft(img0,img1); fft.FFT(inv_fft); fft.move_to(images,~0U); images_names.insert(2,name.copymark()); } else { CImgList fft(2); fft[0].swap(img0); fft[1].swap(img1); fft.FFT(inv_fft); fft[0].swap(img0); fft[1].swap(img1); name.get_copymark().move_to(images_names[ind1]); name.move_to(images_names[ind0]); } ++l; } else { // Real transform. if (verbosity>=0 || is_debug) { std::fprintf(cimg::output()," ([%u],0)",ind0); std::fflush(cimg::output()); } if (is_get_version) { CImgList fft(img0); CImg(fft[0].width(),fft[0].height(),fft[0].depth(),fft[0].spectrum(),0). move_to(fft); fft.FFT(inv_fft); fft.move_to(images,~0U); images_names.insert(2,name.copymark()); } else { CImgList fft(1); fft[0].swap(img0); CImg(fft[0].width(),fft[0].height(),fft[0].depth(),fft[0].spectrum(),0). move_to(fft); fft.FFT(inv_fft); fft[0].swap(img0); fft[1].move_to(images,ind0+1); name.get_copymark().move_to(images_names,ind0+1); name.move_to(images_names[ind0]); } } } is_released = false; continue; } // Inverse scale of a 3d object. const bool divide3d = !std::strcmp("-div3d",command); if (!std::strcmp("-mul3d",command) || divide3d) { gmic_substitute_args(); float sx = 0, sy = 1, sz = 1; if ((std::sscanf(argument,"%f%c", &sx,&end)==1 && ((sz=sy=sx),1)) || std::sscanf(argument,"%f,%f%c", &sx,&sy,&end)==2 || std::sscanf(argument,"%f,%f,%f%c", &sx,&sy,&sz,&end)==3) { if (divide3d) print(images,"Scale 3d object%s with factors (1/%g,1/%g,1/%g).", gmic_selection, sx,sy,sz); else print(images,"Scale 3d object%s with factors (%g,%g,%g).", gmic_selection, sx,sy,sz); cimg_forY(selection,l) { const unsigned int ind = selection[l]; CImg& img = gmic_check(images[ind]); if (!img.is_CImg3d(false,message)) error(images,"Command '-%s3d': Invalid 3d object [%d], in selected image%s (%s).", divide3d?"div":"mul",ind,gmic_selection,message); if (divide3d) { gmic_apply(img,scale_CImg3d(1/sx,1/sy,1/sz)); } else { gmic_apply(img,scale_CImg3d(sx,sy,sz)); } } } else { if (divide3d) arg_error("div3d"); else arg_error("mul3d"); } is_released = false; ++position; continue; } #endif // #ifdef gmic_float // Check for a custom command, and execute it, if found. if (std::strcmp("-input",command)) { const char *custom_command = 0, cc = *(command+1); bool custom_command_found = false, has_arguments = false; CImg substituted_command; if ((cc>='a' && cc<='z') || (cc>='A' && cc<='Z') || cc=='_') { const int ind = gmic_hashcode(command+1,false); cimglist_for(commands_names[ind],l) { custom_command = commands_names[ind][l].data(); const char *const command_code = commands[ind][l].data(); if (!std::strcmp(command+1,custom_command)) { custom_command_found = true; if (is_debug) { char command_code_text[264]; const unsigned int ls = std::strlen(command_code); if (ls>=264) { std::memcpy(command_code_text,command_code,128); std::memcpy(command_code_text+128," ... ",5); std::memcpy(command_code_text+133,command_code+ls-130,131); } else std::strcpy(command_code_text,command_code); debug(images,"Found custom command '%s': '%s' (%s).", custom_command,command_code_text, commands_has_arguments[ind](l,0)?"takes arguments":"takes no arguments"); } CImgList arguments(32); // Set $0 to be the command name. CImg::string(custom_command).move_to(arguments[0]); unsigned int nb_arguments = 0; if (commands_has_arguments[ind](l,0)) { // Command takes arguments. gmic_substitute_args(); // Extract possible command arguments. for (const char *ss = argument, *_ss = ss; _ss; ss =_ss+1) if ((_ss=std::strchr(ss,','))!=0) { if (ss==_ss) ++nb_arguments; else { if (++nb_arguments>=arguments.size()) arguments.insert(2+2*nb_arguments-arguments.size()); CImg arg_item(ss,_ss-ss+1); arg_item.back() = 0; arg_item.move_to(arguments[nb_arguments]); } } else { if (*ss) { if (++nb_arguments>=arguments.size()) arguments.insert(1+nb_arguments-arguments.size()); if (*ss!=',') CImg::string(ss).move_to(arguments[nb_arguments]); } break; } if (is_debug) { debug(images,"Found %d given argument%s for command '%s'%s", nb_arguments,nb_arguments!=1?"s":"", custom_command,nb_arguments>0?":":"."); for (unsigned int i = 1; i<=nb_arguments; ++i) if (arguments[i]) debug(images," $%d = '%s'",i,arguments[i].data()); else debug(images," $%d = (undefined)",i); } } // Substitute arguments in custom command expression. CImgList substituted_items; CImg inbraces; for (const char *nsource = command_code; *nsource;) if (*nsource!='$') { // If not starting with '$'. const char *const nsource0 = nsource; nsource = std::strchr(nsource0,'$'); if (!nsource) nsource = &commands[ind][l].back(); CImg(nsource0,nsource-nsource0).move_to(substituted_items); } else { // '$' expression found. CImg substr(324); inbraces.assign(1,1,1,1,0); int ind = 0, ind1 = 0, l_inbraces = 0; bool is_braces = false; char sep = 0; if (nsource[1]=='{') { const char *const ptr_beg = nsource + 2, *ptr_end = ptr_beg; unsigned int p = 0; for (p = 1; p>0 && *ptr_end; ++ptr_end) { if (*ptr_end=='{') ++p; if (*ptr_end=='}') --p; } if (p) { CImg(nsource++,1).move_to(substituted_items); continue; } l_inbraces = ptr_end - ptr_beg - 1; if (l_inbraces>0) inbraces.assign(ptr_beg,l_inbraces + 1).back() = 0; is_braces = true; } // Substitute $? -> string describing image indices. if (nsource[1]=='?') { nsource+=2; cimg_snprintf(substr,substr.width(),"%s",gmic_selection); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); // Substitute $# -> maximum indice of known arguments. } else if (nsource[1]=='#') { nsource+=2; cimg_snprintf(substr,substr.width(),"%u",nb_arguments); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); has_arguments = true; // Substitute $* -> verbatim copy of the specified arguments string. } else if (nsource[1]=='*') { nsource+=2; CImg(argument,std::strlen(argument)).move_to(substituted_items); has_arguments = true; // Substitute $= -> transfer arguments to named variables. } else if (nsource[1]=='=' && std::sscanf(nsource+2,"%255[a-zA-Z0-9_]",title)==1 && (*title<'0' || *title>'9')) { nsource+=2+std::strlen(title); for (unsigned int i=0; i<=nb_arguments; ++i) { cimg_snprintf(substr,substr.width()," %s%u=\"",title,i); CImg(substr.data(),std::strlen(substr)).move_to(substituted_items); CImg(arguments[i].data(),arguments[i].width()-1). move_to(substituted_items); CImg(2,1,1,1,'\"',' ').move_to(substituted_items); } has_arguments = true; // Substitute $i and ${i} -> value of the i^th argument. } else if ((std::sscanf(nsource,"$%d",&ind)==1 || (std::sscanf(nsource,"${%d%c",&ind,&sep)==2 && sep=='}'))) { const int nind = ind + (ind<0?(int)nb_arguments+1:0); if ((nind<=0 && ind) || nind>=arguments.width() || !arguments[nind]) { error(custom_command,images, "Command '-%s': Undefined argument '$%d', in expression '$%s%d%s' " "(for %u argument%s specified).", custom_command,ind,sep=='}'?"{":"",ind,sep=='}'?"}":"", nb_arguments,nb_arguments!=1?"s":""); } nsource+=cimg_snprintf(substr,substr.width(),"$%d",ind) + (sep=='}'?2:0); if (arguments[nind].width()>1) CImg(arguments[nind].data(),arguments[nind].width()-1). move_to(substituted_items); if (nind!=0) has_arguments = true; // Substitute ${i=$j} -> value of the i^th argument, or the default value, // i.e. the value of another argument. } else if (std::sscanf(nsource,"${%d=$%d%c",&ind,&ind1,&sep)==3 && sep=='}' && ind>0) { const int nind1 = ind1 + (ind1<0?(int)nb_arguments+1:0); if (nind1<=0 || nind1>=arguments.width() || !arguments[nind1]) error(custom_command,images, "Command '-%s': Undefined argument '$%d', in expression '${%d=$%d}' " "(for %u argument%s specified).", custom_command,ind1,ind,ind1, nb_arguments,nb_arguments!=1?"s":""); nsource+=cimg_snprintf(substr,substr.width(),"${%d=$%d}",ind,ind1); if (ind>=arguments.width()) arguments.insert(2+2*ind-arguments.size()); if (!arguments[ind]) { arguments[ind] = arguments[nind1]; if (ind>(int)nb_arguments) nb_arguments = ind; } if (arguments[ind].width()>1) CImg(arguments[ind].data(),arguments[ind].width()-1). move_to(substituted_items); has_arguments = true; // Substitute ${i=$#} -> value of the i^th argument, or the default value, // i.e. the maximum indice of known arguments. } else if (std::sscanf(nsource,"${%d=$#%c",&ind,&sep)==2 && sep=='}' && ind>0) { if (ind>=arguments.width()) arguments.insert(2+2*ind-arguments.size()); if (!arguments[ind]) { cimg_snprintf(substr,substr.width(),"%u",nb_arguments); CImg::string(substr).move_to(arguments[ind]); if (ind>(int)nb_arguments) nb_arguments = ind; } nsource+=cimg_snprintf(substr,substr.width(),"${%d=$#}",ind); if (arguments[ind].width()>1) CImg(arguments[ind].data(),arguments[ind].width()-1). move_to(substituted_items); has_arguments = true; // Substitute ${i=default} -> value of the i^th argument, // or the specified default value. } else if (std::sscanf(inbraces,"%d%c",&ind,&sep)==2 && sep=='=' && ind>0) { nsource+=l_inbraces + 3; if (ind>=arguments.width()) arguments.insert(2+2*ind-arguments.size()); if (!arguments[ind]) { CImg::string(inbraces.data() + cimg_snprintf(substr,substr.width(),"%d=",ind)). move_to(arguments[ind]); if (ind>(int)nb_arguments) nb_arguments = ind; } if (arguments[ind].width()>1) CImg(arguments[ind].data(),arguments[ind].width()-1). move_to(substituted_items); has_arguments = true; // Substitute any other expression starting by '$'. } else { // Substitute ${subset} -> values of the selected subset of arguments, // separated by ','. if (is_braces) { if ((*inbraces>='a' && *inbraces<='z') || (*inbraces>='A' && *inbraces<='Z') || *inbraces=='_') { CImg(nsource++,1).move_to(substituted_items); } else if (*inbraces) { CImg inds; const int _verbosity = verbosity; const bool _is_debug = is_debug; bool is_valid_subset = true; verbosity = -16384; is_debug = false; try { inds = selection2cimg(inbraces,nb_arguments+1, CImgList::empty(),"",false, false,CImg::empty()); } catch (...) { inds.assign(); is_valid_subset = false; } verbosity = _verbosity; is_debug = _is_debug; if (is_valid_subset) { nsource+=l_inbraces + 3; if (inds) { cimg_forY(inds,j) { const unsigned int ind = inds[j]; if (ind) has_arguments = true; if (!arguments[ind]) error(custom_command,images, "Command '-%s': Undefined argument '$%d', in expression '${%s}'.", custom_command,ind,inbraces.data()); substituted_items.insert(arguments[ind]); substituted_items.back().back() = ','; } if (substituted_items.back().width()>1) --(substituted_items.back()._width); else substituted_items.remove(); has_arguments = true; } } else CImg(nsource++,1).move_to(substituted_items); } else nsource+=3; // Substitute '${}' by ''. } else CImg(nsource++,1).move_to(substituted_items); } } CImg::vector(0).move_to(substituted_items); (substituted_items>'x').move_to(substituted_command); // Substitute special character codes appearing outside strings. bool is_dquoted = false; for (char *s = substituted_command.data(); *s; ++s) { const char c = *s; if (c=='\"') is_dquoted = !is_dquoted; if (!is_dquoted) *s = c<' '?(c==_dollar?'$':c==_lbrace?'{':c==_rbrace?'}': c==_comma?',':c==_dquote?'\"':c==_arobace?'@':c):c; } if (is_debug) { char command_code_text[264]; const unsigned int l = std::strlen(substituted_command.data()); if (l>=264) { std::memcpy(command_code_text,substituted_command.data(),128); std::memcpy(command_code_text+128," ... ",5); std::memcpy(command_code_text+133,substituted_command.data()+l-130,131); } else std::strcpy(command_code_text,substituted_command.data()); debug(images,"Expand command line for command '%s' to: '%s'.", custom_command,command_code_text); } break; } } } if (custom_command_found) { const CImgList ncommands_line = commands_line_to_CImgList(substituted_command.data()); unsigned int nvariables_sizes[256]; for (unsigned int l = 0; l<256; ++l) nvariables_sizes[l] = variables[l].size(); CImgList nimages_names(selection.height()); CImgList nimages(selection.height()); unsigned int nposition = 0; CImg::string(custom_command).move_to(scope); if (is_get_version) { cimg_forY(selection,l) { nimages[l] = images[selection[l]]; nimages_names[l] = images_names[selection[l]]; } _parse(ncommands_line,nposition,nimages,nimages_names,nvariables_sizes); nimages.move_to(images,~0U); cimglist_for(nimages_names,l) nimages_names[l].copymark(); nimages_names.move_to(images_names,~0U); } else { cimg_forY(selection,l) { if (images[selection[l]].is_shared()) nimages[l] = CImg(images[selection[l]],true); else nimages[l].swap(images[selection[l]]); nimages_names[l].swap(images_names[selection[l]]); } _parse(ncommands_line,nposition,nimages,nimages_names,nvariables_sizes); const unsigned int nb = cimg::min((unsigned int)selection.height(),nimages.size()); if (nb>0) { for (unsigned int i = 0; invariables_sizes[l]) { variables_names[l].remove(nvariables_sizes[l],variables[l].size()-1); variables[l].remove(nvariables_sizes[l],variables[l].size()-1); } scope.remove(); is_return = false; if (has_arguments) ++position; continue; } } } // if (*item=='-') { // Variable assignment. char sep = 0; if (std::strchr(item,'=') && std::sscanf(item,"%255[a-zA-Z0-9_]%c",title,&sep)==2 && sep=='=' && (*title<'0' || *title>'9')) { CImg name(title,std::strlen(title)+1), value = CImg::string(item+name.width()); int ind = 0; bool is_name_found = false; const unsigned int sind = gmic_hashcode(name,true); const int lind = *name=='_'?0:variables_sizes[sind]; CImgList &_variables = variables[sind], &_variables_names = variables_names[sind]; for (int l = _variables.size()-1; l>=lind; --l) if (!std::strcmp(_variables_names[l],name)) { is_name_found = true; ind = l; break; } print(images,"Set %s variable %s='%s'.", *name=='_'?"global":"local", name.data(),value.data()); if (is_name_found) value.move_to(_variables[ind]); else { name.move_to(_variables_names); value.move_to(_variables); } continue; } // Input. if (!std::strcmp("-input",command)) ++position; else { std::strcpy(command,"-input"); argument = item; *restriction = 0; } gmic_substitute_args(); if (!is_restriction || !selection) selection.assign(1,1,1,1,images.size()); char indicesy[256], indicesz[256], indicesc[256]; float dx = 0, dy = 1, dz = 1, dc = 1, nb = 1; char sepx = 0, sepy = 0, sepz = 0, sepc = 0; CImg indx, indy, indz, indc; CImgList input_images_names; CImgList input_images; *indices = *argx = *argy = *argz = *argc = 0; CImg arg_input(argument,std::strlen(argument)+1); gmic_strreplace(arg_input); if (*arg_input=='0' && !arg_input[1]) { // Empty image. print(images,"Input empty image at position%s", gmic_selection); input_images.assign(1); CImg::string("[empty]").move_to(input_images_names); } else if ((std::sscanf(arg_input,"[%255[a-zA-Z_0-9%.eE%^,:+-]%c%c",indices,&sep,&end)==2 && sep==']') || std::sscanf(arg_input,"[%255[a-zA-Z_0-9%.eE%^,:+-]]x%f%c",indices,&nb,&end)==2) { // Nb copies of existing images. nb = cimg::round(nb); const CImg inds = selection2cimg(indices,images.size(),images_names, "-input",true,false,CImg::empty()); char s_tmp[256]; std::strncpy(s_tmp,selection2string(inds,images_names,true).data(),sizeof(s_tmp)-1); s_tmp[sizeof(s_tmp)-1] = 0; if (nb<=0) arg_error("input"); if (nb!=1) print(images,"Input %u copies of image%s at position%s", (unsigned int)nb, s_tmp, gmic_selection); else print(images,"Input copy of image%s at position%s", s_tmp, gmic_selection); for (unsigned int i = 0; i<(unsigned int)nb; ++i) cimg_foroff(inds,l) { input_images.insert(gmic_check(images[inds[l]])); input_images_names.insert(images_names[inds[l]].get_copymark()); } } else if ((sep=0,true) && (std::sscanf(arg_input,"%255[][a-zA-Z0-9_.eE%+-]%c", argx,&end)==1 || std::sscanf(arg_input,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,&end)==2 || std::sscanf(arg_input,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,argz,&end)==3 || std::sscanf(arg_input,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]%c", argx,argy,argz,argc,&end)==4 || std::sscanf(arg_input,"%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-]," "%255[][a-zA-Z0-9_.eE%+-],%255[][a-zA-Z0-9_.eE%+-],%c", argx,argy,argz,argc,&sep)==5) && ((std::sscanf(argx,"[%255[a-zA-Z0-9_.%+-]%c%c",indices,&sepx,&end)==2 && sepx==']' && (indx=selection2cimg(indices,images.size(),images_names,"-input",true, false,CImg::empty())).height()==1) || (std::sscanf(argx,"%f%c",&dx,&end)==1 && dx>=1) || (std::sscanf(argx,"%f%c%c",&dx,&sepx,&end)==2 && dx>0 && sepx=='%')) && (!*argy || (std::sscanf(argy,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesy,&sepy,&end)==2 && sepy==']' && (indy=selection2cimg(indicesy,images.size(),images_names,"-input",true, false,CImg::empty())).height()==1) || (std::sscanf(argy,"%f%c",&dy,&end)==1 && dy>=1) || (std::sscanf(argy,"%f%c%c",&dy,&sepy,&end)==2 && dy>0 && sepy=='%')) && (!*argz || (std::sscanf(argz,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesz,&sepz,&end)==2 && sepz==']' && (indz=selection2cimg(indicesz,images.size(),images_names,"-input",true, false,CImg::empty())).height()==1) || (std::sscanf(argz,"%f%c",&dz,&end)==1 && dz>=1) || (std::sscanf(argz,"%f%c%c",&dz,&sepz,&end)==2 && dz>0 && sepz=='%')) && (!*argc || (std::sscanf(argc,"[%255[a-zA-Z0-9_.%+-]%c%c",indicesc,&sepc,&end)==2 && sepc==']' && (indc=selection2cimg(indicesc,images.size(),images_names,"-input",true, false,CImg::empty())).height()==1) || (std::sscanf(argc,"%f%c",&dc,&end)==1 && dc>=1) || (std::sscanf(argc,"%f%c%c",&dc,&sepc,&end)==2 && dc>0 && sepc=='%'))) { // New image with specified dimensions and optionally values. if (indx) { dx = (float)gmic_check(images[*indx]).width(); sepx = 0; } if (indy) { dy = (float)gmic_check(images[*indy]).height(); sepy = 0; } if (indz) { dz = (float)gmic_check(images[*indz]).depth(); sepz = 0; } if (indc) { dc = (float)gmic_check(images[*indc]).spectrum(); sepc = 0; } int idx = 0, idy = 0, idz = 0, idc = 0; const CImg& img = images.size()?gmic_check(images.back()):CImg::empty(); if (sepx=='%') { idx = (int)cimg::round(dx*img.width()/100); if (!idx) ++idx; } else idx = (int)cimg::round(dx); if (sepy=='%') { idy = (int)cimg::round(dy*img.height()/100); if (!idy) ++idy; } else idy = (int)cimg::round(dy); if (sepz=='%') { idz = (int)cimg::round(dz*img.depth()/100); if (!idz) ++idz; } else idz = (int)cimg::round(dz); if (sepc=='%') { idc = (int)cimg::round(dc*img.spectrum()/100); if (!idc) ++idc; } else idc = (int)cimg::round(dc); if (idx<=0 || idy<=0 || idz<=0 || idc<=0) arg_error("input"); CImg s_values; if (sep) { const char *_s_values = arg_input.data() + std::strlen(argx) + std::strlen(argy) + std::strlen(argz) + std::strlen(argc) + 4; s_values.assign(_s_values,std::strlen(_s_values)+1); cimg::strpare(s_values,'\'',true,false); gmic_strreplace(s_values); char s_values_text[72] = { 0 }; const unsigned int l = std::strlen(s_values); if (l>=72) { std::memcpy(s_values_text,s_values.data(),32); std::memcpy(s_values_text+32," ... ",5); std::memcpy(s_values_text+37,s_values.data()+l-34,35); // Last '\0' is included. } else std::strcpy(s_values_text,s_values); print(images,"Input image at position%s, with values '%s'", gmic_selection,s_values_text); } else print(images,"Input black image at position%s", gmic_selection); CImg new_image(idx,idy,idz,idc,0); if (s_values) { new_image.fill(s_values.data(),true); cimg_snprintf(title,_title.size(),"[image of '%s']",s_values.data()); gmic_ellipsize(title,_title.size()); CImg::string(title).move_to(input_images_names); } else CImg::string("[unnamed]").move_to(input_images_names); new_image.move_to(input_images); } else if (*arg_input=='(' && arg_input[std::strlen(arg_input)-1]==')') { // New IxJxKxL image specified as array. unsigned int cx = 0, cy = 0, cz = 0, cc = 0, maxcx = 0, maxcy = 0, maxcz = 0; const char *nargument = 0; for (nargument = arg_input.data() + 1; *nargument; ) { char s_value[256]; *s_value = 0; char separator = 0; double value = 0; if (std::sscanf(nargument,"%255[0-9.eE+-]%c",s_value,&separator)==2 && std::sscanf(s_value,"%lf%c",&value,&end)==1) { if (cx>maxcx) maxcx = cx; if (cy>maxcy) maxcy = cy; if (cz>maxcz) maxcz = cz; switch (separator) { case '^' : cx = cy = cz = 0; ++cc; break; case '/' : cx = cy = 0; ++cz; break; case ';' : cx = 0; ++cy; break; case ',' : ++cx; break; case ')' : break; default : arg_error("input"); } nargument+=std::strlen(s_value) + 1; } else break; } if (*nargument) arg_error("input"); CImg img(maxcx+1,maxcy+1,maxcz+1,cc+1,0); cx = cy = cz = cc = 0; for (nargument = arg_input.data() + 1; *nargument; ) { char s_value[256]; *s_value = 0; char separator = 0; double value = 0; if (std::sscanf(nargument,"%255[0-9.eE+-]%c",s_value,&separator)==2 && std::sscanf(s_value,"%lf%c",&value,&end)==1) { img(cx,cy,cz,cc) = (T)value; switch (separator) { case '^' : cx = cy = cz = 0; ++cc; break; case '/' : cx = cy = 0; ++cz; break; case ';' : cx = 0; ++cy; break; default : ++cx; } nargument+=std::strlen(s_value) + (separator?1:0); } else break; } print(images,"Input image at position%s, with values '%s'", gmic_selection, argument_text); img.move_to(input_images); arg_input.move_to(input_images_names); } else { // Input filename. char cext[8], _filename[4096], filename_tmp[512] = { 0 }, options[256]; *cext = *_filename = *filename_tmp = *options = 0; bool is_network_file = false; if (std::sscanf(argument,"%8[a-zA-Z]:%4095[^,],%255s",cext,_filename,options)<2 || !cext[1] || // length of 'ext' must be >=2 (avoid case 'C:\\..' on Windows). !cimg::strcasecmp(cext,"http") || !cimg::strcasecmp(cext,"https")) { *cext = *_filename = *options = 0; if (std::sscanf(argument,"%4095[^,],%255s",_filename,options)!=2) { std::strncpy(_filename,argument,sizeof(_filename)-1); _filename[sizeof(_filename)-1] = 0; } } gmic_strreplace(_filename); gmic_strreplace(options); CImg __filename0 = CImg::string(_filename); const char *const _filename0 = __filename0.data(); // Test for network file requests. if (!cimg::strncasecmp(_filename,"http://",7) || !cimg::strncasecmp(_filename,"https://",8)) { cimg::load_network_external(_filename,filename_tmp); std::strncpy(_filename,filename_tmp,sizeof(_filename)-1); _filename[sizeof(_filename)-1] = 0; *filename_tmp = 0; is_network_file = true; } if (*cext) { // Force output to be read as a '.ext' file : generate random filename. if (*_filename=='-' && (!_filename[1] || _filename[1]=='.')) { // Simplify filename 'ext:-.foo' as '-.ext'. cimg_snprintf(_filename,sizeof(_filename),"-.%s",cext); *cext = 0; } else { std::FILE *file = 0; do { cimg_snprintf(filename_tmp,sizeof(filename_tmp),"%s%c%s.%s", cimg::temporary_path(),cimg_file_separator, cimg::filenamerand(),cext); if ((file=std::fopen(filename_tmp,"rb"))!=0) std::fclose(file); } while (file); // Make a temporary copy (or link) of the original file. #if cimg_OS==1 const char *const _filename_path = realpath(_filename,0); if (symlink(_filename_path,filename_tmp)) CImg::get_load_raw(_filename).save_raw(filename_tmp); std::free((void*)_filename_path); #else // #if cimg_OS==1 CImg::get_load_raw(_filename).save_raw(filename_tmp); #endif // #if cimg_OS==1 } } const char *const filename = *filename_tmp?filename_tmp:_filename, *const ext = cimg::split_filename(filename); std::FILE *const file = std::fopen(filename,"rb"); long siz = 0; if (file) { std::fseek(file,0,SEEK_END); siz = std::ftell(file); std::fclose(file); } if (file && siz==0) { // Empty file -> Insert an empty image. input_images_names.insert(__filename0); input_images.insert(1); } else if (!cimg::strcasecmp("off",ext)) { // 3d object .off file. print(images,"Input 3d object '%s' at position%s", _filename0, gmic_selection); CImgList primitives; CImgList colors; CImg vertices = CImg::get_load_off(primitives,colors,filename); const CImg opacities(1,primitives.size(),1,1,1); vertices.object3dtoCImg3d(primitives,colors,opacities).move_to(input_images); input_images_names.insert(__filename0); } else if (!cimg::strcasecmp(ext,"avi") || !cimg::strcasecmp(ext,"mov") || !cimg::strcasecmp(ext,"asf") || !cimg::strcasecmp(ext,"divx") || !cimg::strcasecmp(ext,"flv") || !cimg::strcasecmp(ext,"mpg") || !cimg::strcasecmp(ext,"m1v") || !cimg::strcasecmp(ext,"m2v") || !cimg::strcasecmp(ext,"m4v") || !cimg::strcasecmp(ext,"mjp") || !cimg::strcasecmp(ext,"mkv") || !cimg::strcasecmp(ext,"mpe") || !cimg::strcasecmp(ext,"movie") || !cimg::strcasecmp(ext,"ogm") || !cimg::strcasecmp(ext,"ogg") || !cimg::strcasecmp(ext,"qt") || !cimg::strcasecmp(ext,"rm") || !cimg::strcasecmp(ext,"vob") || !cimg::strcasecmp(ext,"wmv") || !cimg::strcasecmp(ext,"xvid") || !cimg::strcasecmp(ext,"mpeg")) { // Image sequence file. float first_frame = 0, last_frame = 0, step = 1; char first_sep = 0, last_sep = 0; if ((std::sscanf(options,"%f%c,%f%c,%f%c",&first_frame,&first_sep,&last_frame,&last_sep,&step,&end)==5 && first_sep=='%' && last_sep=='%') || (std::sscanf(options,"%f%c,%f,%f%c",&first_frame,&first_sep,&last_frame,&step,&end)==4 && first_sep=='%') || (std::sscanf(options,"%f,%f%c,%f%c",&first_frame,&last_frame,&last_sep,&step,&end)==4 && last_sep=='%') || std::sscanf(options,"%f,%f,%f%c",&first_frame,&last_frame,&step,&end)==3 || (std::sscanf(options,"%f%c,%f%c%c",&first_frame,&first_sep,&last_frame,&last_sep,&end)==4 && first_sep=='%' && last_sep=='%') || (std::sscanf(options,"%f%c,%f%c",&first_frame,&first_sep,&last_frame,&end)==3 && first_sep=='%') || (std::sscanf(options,"%f,%f%c%c",&first_frame,&last_frame,&last_sep,&end)==3 && last_sep=='%') || std::sscanf(options,"%f,%f%c",&first_frame,&last_frame,&end)==2) { // Read several frames if (first_frame>last_frame) cimg::swap(first_frame,last_frame,first_sep,last_sep); step = cimg::round(step); print(images,"Input frames %g%s..%g%s with step %g of file '%s' at position%s", first_frame,first_sep=='%'?"%":"", last_frame,last_sep=='%'?"%":"", step, _filename0, gmic_selection); if (first_sep=='%' || last_sep=='%') { const unsigned int nb_frames = CImg::get_load_ffmpeg(filename,0,0,0)[0]; first_frame = cimg::round(first_sep=='%'?first_frame*nb_frames/100:first_frame); last_frame = cimg::round(last_sep=='%'?last_frame*nb_frames/100:last_frame); } input_images.load_ffmpeg(filename,(unsigned int)first_frame,(unsigned int)last_frame,(unsigned int)step); } else if ((std::sscanf(options,"%f%c%c",&first_frame,&first_sep,&end)==2 && first_sep=='%') || std::sscanf(options,"%f%c",&first_frame,&end)==1) { // Read a single frame step = cimg::round(step); print(images,"Input frame %g%s of file '%s' at position%s", first_frame,first_sep=='%'?"%":"", _filename0, gmic_selection); if (first_sep=='%') { const unsigned int nb_frames = CImg::get_load_ffmpeg(filename,0,0,0)[0]; first_frame = (unsigned int)cimg::round(first_frame*nb_frames/100); } input_images.load_ffmpeg(filename,(unsigned int)first_frame,(unsigned int)first_frame); } else { // Read all frames print(images,"Input all frames of file '%s' at position%s", _filename0, gmic_selection); input_images.load_ffmpeg(filename); } if (input_images) { input_images_names.insert(__filename0); if (input_images.size()>1) input_images_names.insert(input_images.size()-1,__filename0.copymark()); } } else if (!cimg::strcasecmp("raw",ext)) { // Raw file. float dx = 0, dy = 1, dz = 1, dc = 1; *argx = 0; if (!*options || std::sscanf(options,"%f%c",&dx,&end)==1 || std::sscanf(options,"%f,%f%c",&dx,&dy,&end)==2 || std::sscanf(options,"%f,%f,%f%c",&dx,&dy,&dz,&end)==3 || std::sscanf(options,"%f,%f,%f,%f%c",&dx,&dy,&dz,&dc,&end)==4 || std::sscanf(options,"%255[a-zA-Z]%c",argx,&end)==1 || std::sscanf(options,"%255[a-zA-Z],%f%c",argx,&dx,&end)==2 || std::sscanf(options,"%255[a-zA-Z],%f,%f%c",argx,&dx,&dy,&end)==3 || std::sscanf(options,"%255[a-zA-Z],%f,%f,%f%c",argx,&dx,&dy,&dz,&end)==4 || std::sscanf(options,"%255[a-zA-Z],%f,%f,%f,%f%c",argx,&dx,&dy,&dz,&dc,&end)==5) { const char *const stype = *argx?argx:cimg::type::string(); dx = cimg::round(dx); dy = cimg::round(dy); dz = cimg::round(dz); dc = cimg::round(dc); if (dx<0 || dy<=0 || dz<=0 || dc<=0) error(images,"Command '-input': raw file '%s', invalid specified " "dimensions %gx%gx%gx%g.", _filename0,dx,dy,dz,dc); print(images,"Input raw file '%s' with type '%s' at position%s", _filename0,stype, gmic_selection); #define gmic_load_raw(value_type,svalue_type) \ if (!strcasecmp(stype,svalue_type)) \ CImg::get_load_raw(filename,(unsigned int)dx,(unsigned int)dy,\ (unsigned int)dz,(unsigned int)dc).\ move_to(input_images); gmic_load_raw(bool,"bool") else gmic_load_raw(unsigned char,"uchar") else gmic_load_raw(unsigned char,"unsigned char") else gmic_load_raw(char,"char") else gmic_load_raw(unsigned short,"ushort") else gmic_load_raw(unsigned short,"unsigned short") else gmic_load_raw(short,"short") else gmic_load_raw(unsigned int,"uint") else gmic_load_raw(unsigned int,"unsigned int") else gmic_load_raw(int,"int") else gmic_load_raw(float,"float") else gmic_load_raw(double,"double") else error(images,"Command '-input': raw file '%s', " "invalid specified pixel type '%s'.\n", _filename0,stype); input_images_names.insert(__filename0); } else error(images,"Command '-input': raw file '%s', invalid file options '%s'.", _filename0,options); } else if (!cimg::strcasecmp("yuv",ext)) { // YUV file. float first_frame = 0, last_frame = ~0U, step = 1, dx = 0, dy = 1; int err = 0; if ((err=std::sscanf(options,"%f,%f,%f,%f,%f",&dx,&dy,&first_frame,&last_frame,&step))>=1) { dx = cimg::round(dx); dy = cimg::round(dy); if (dx<=0 || dy<=0) error(images,"Command '-input': YUV file '%s', invalid specified dimensions %gx%g.", _filename0,dx,dy); first_frame = cimg::round(first_frame); if (err>3) { // Load multiple frames. last_frame = cimg::round(last_frame); step = cimg::round(step); print(images,"Input frames %g..%g with step %g of YUV file '%s' at position%s", first_frame,last_frame,step, _filename0, gmic_selection); input_images.load_yuv(filename,(unsigned int)dx,(unsigned int)dy, (unsigned int)first_frame,(unsigned int)last_frame,(unsigned int)step); } else if (err==3) { // Load a single frame. print(images,"Input frames %g of YUV file '%s' at position%s", first_frame, _filename0, gmic_selection); input_images.load_yuv(filename,(unsigned int)dx,(unsigned int)dy, (unsigned int)first_frame,(unsigned int)first_frame); } else { // Load all frames. print(images,"Input all frames of YUV file '%s' at position%s", _filename0, gmic_selection); input_images.load_yuv(filename,(unsigned int)dx,(unsigned int)dy); } if (input_images) { input_images_names.insert(__filename0); if (input_images.size()>1) input_images_names.insert(input_images.size()-1,__filename0.copymark()); } } else error(images,"Command '-input': YUV file '%s', invalid or missing file options '%s'.", _filename0,options); } else if (!cimg::strcasecmp("tif",ext) || !cimg::strcasecmp("tiff",ext)) { // TIFF file. float first_frame = 0, last_frame = ~0U, step = 1; int err = 0; if ((err=std::sscanf(options,"%f,%f,%f",&first_frame,&last_frame,&step))>0) { first_frame = cimg::round(first_frame); if (err>1) { // Load multiple frames. last_frame = cimg::round(last_frame); step = cimg::round(step); print(images,"Input frames %g..%g with step %g of TIFF file '%s' at position%s", first_frame,last_frame,step, _filename0, gmic_selection); input_images.load_tiff(filename,(unsigned int)first_frame,(unsigned int)last_frame, (unsigned int)step); } else if (err==1) { // Load a single frame. print(images,"Input frames %g of TIFF file '%s' at position%s", first_frame, _filename0, gmic_selection); input_images.load_tiff(filename,(unsigned int)first_frame,(unsigned int)first_frame); } } else { // Load all frames. if (*options) error(images,"Command '-input': TIFF file '%s', invalid file options '%s'.", _filename0,options); print(images,"Input all frames of TIFF file '%s' at position%s", _filename0, gmic_selection); input_images.load_tiff(filename); } if (input_images) { input_images_names.insert(__filename0); if (input_images.size()>1) input_images_names.insert(input_images.size()-1,__filename0.copymark()); } } else if (!cimg::strcasecmp("gmic",ext)) { // G'MIC custom commands file print(images,"Input custom commands file '%s'", _filename0); unsigned int siz = 0; for (unsigned int l = 0; l<256; ++l) siz+=commands[l].size(); std::FILE *const file = cimg::fopen(filename,"rb"); add_commands(file,commands_names,commands,commands_has_arguments); cimg::fclose(file); if (verbosity>=0 || is_debug) { unsigned int nb_added = 0; for (unsigned int l = 0; l<256; ++l) nb_added+=commands[l].size(); nb_added-=siz; std::fprintf(cimg::output()," (added %u command%s, total %u).", nb_added,nb_added>1?"s":"",siz+nb_added); std::fflush(cimg::output()); } continue; } else { // Other file types. print(images,"Input file '%s' at position%s", _filename0, gmic_selection); try { input_images.load(filename); } catch (CImgException&) { std::FILE *file = 0; if (!(file=std::fopen(filename,"r"))) { if (cimg::type::string()==cimg::type::string() || *ext || *filename!='-') { if (*filename=='-' && filename[1]) { // Check for command misspelling. const char *native_commands_names[] = { "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s", "t","u","v","w","x","y","z", "+","-","*","/",">","<","%","^","=","sh","mv","rm","rv","<<",">>","==",">=", "<=","//","**","!=", "d3d","+3d","b3d","/3d","f3d","l3d","m3d","*3d","o3d","p3d","r3d","s3d","-3d", "t3d","db3d","md3d","rv3d","sl3d","ss3d","div3d", "append","autocrop","add","add3d","abs","and","atan2","acos","asin","atan", "axes", "blur","bsr","bsl","bilateral","background3d","break", "check","crop","channels","columns","command","camera","cut","cos","convolve", "correlate","color3d","col3d","cosh","continue", "done","do","debug","divide","distance","dilate","double3d","denoise","deriche", "dijkstra","displacement","display","display3d", "endif","else","elif","endlocal","endl","echo","exec","error","endian","exp", "eq","ellipse","equalize","erode","elevation3d","eigen","eikonal", "fill","flood","focale3d","fft", "ge","gt","gradient","graph", "histogram","hsi2rgb","hsl2rgb","hsv2rgb","hessian", "input","if","image","index","invert","isoline3d","isosurface3d","inpaint", "ifft", "keep", "local","le","lt","log","log2","log10","line","lab2rgb","label","light3d", "move","mirror","mul","mod","max","min","mmul","mode3d","moded3d","map", "median","mdiv","mse","mandelbrot","mul3d" "name","normalize","neq","noise", "output","onfail","object3d","or","opacity3d", "permute","progress","print","pow","point","polygon","plasma","pose3d", "primitives3d","plot", "quiver","quit", "remove","repeat","resize","reverse","return","rows","rotate", "round","rand","rotate3d","rgb2hsi","rgb2hsl","rgb2hsv","rgb2lab", "rgb2srgb","rol","ror","reverse3d","repair", "status","skip","set","split","shared","shift","slices","srand","sub","sqrt", "sqr","sign","sin","sort","solve","sub3d","sharpen","smooth","split3d", "svd","sphere3d","specl3d","specs3d","sinc","sinh","srgb2rgb","streamline3d", "structuretensors","select", "type","threshold","tan","text","texturize3d","trisolve","tanh", "unroll","uncommand", "vanvliet","verbose", "while","warning","window","warp","watershed","wait", "xor",0 }; const char *misspelled = 0; int dmin = 4; for (unsigned int l = 0; native_commands_names[l]; ++l) { // Look in native commands. const char *const c = native_commands_names[l]; const int d = gmic_levenshtein(c,filename+1); if (d::string()); } else throw; } input_images_names.insert(__filename0); if (input_images.size()>1) input_images_names.insert(input_images.size()-1,__filename0.copymark()); } if (*filename_tmp) std::remove(filename_tmp); // Clean temporary file if used. if (is_network_file) std::remove(_filename); // Clean temporary file if network input. } if (verbosity>=0 || is_debug) { if (input_images) { const unsigned int last = input_images.size() - 1; if (input_images.size()==1) { if (input_images[0].is_CImg3d(true)) std::fprintf(cimg::output()," (%u vertices, %u primitives).", cimg::float2uint(input_images(0,6)), cimg::float2uint(input_images(0,7))); else std::fprintf(cimg::output()," (1 image %dx%dx%dx%d).", input_images[0].width(),input_images[0].height(), input_images[0].depth(),input_images[0].spectrum()); } else std::fprintf(cimg::output()," (%u images [0] = %dx%dx%dx%d, %s[%u] = %dx%dx%dx%d).", input_images.size(), input_images[0].width(),input_images[0].height(), input_images[0].depth(),input_images[0].spectrum(), last==1?"":"..,",last, input_images[last].width(),input_images[last].height(), input_images[last].depth(),input_images[last].spectrum()); } else { std::fprintf(cimg::output()," (no available data)."); input_images_names.assign(); } std::fflush(cimg::output()); } for (unsigned int l = 0, siz = selection.height()-1U, off = 0; l<=siz; ++l) { const unsigned int ind = selection[l] + off; off+=input_images.size(); if (l!=siz) { images.insert(input_images,ind); images_names.insert(input_images_names,ind); } else { input_images.move_to(images,ind); input_images_names.move_to(images_names,ind); } } if (new_name) new_name.move_to(images_names[selection[0]]); is_released = false; } // Post-check global environment consistency. if (images_names.size()!=images.size()) error(images,"Internal error: Images (%u) and images names (%u) have different size, " "at return point.", images_names.size(),images.size()); if (!scope) error(images,"Internal error: Scope is empty, at return point."); // Post-check local environment consistency. if (!is_quit && !is_return) { const CImg &s = scope.back(); if (is_default_type && s[0]=='*' && (s[1]=='d' || s[1]=='i' || s[1]=='r' || (s[1]=='l' && !is_endlocal))) error(images,"A '-%s' command is missing, before return point.", s[1]=='d'?"while":s[1]=='i'?"endif":s[1]=='r'?"done":"endlocal"); } else if (initial_scope_size lselection, lselection3d; bool is_first3d = false; cimglist_for(images,l) { const bool is_3d = images[l].is_CImg3d(true); if (!l) is_first3d = is_3d; CImg::vector(l).move_to(is_3d?lselection3d:lselection); } if (is_first3d) { display_objects3d(images,images_names,lselection3d>'y'); if (lselection) display_images(images,images_names,lselection>'y',0); } else { if (lselection) display_images(images,images_names,lselection>'y',0); if (lselection3d) display_objects3d(images,images_names,lselection3d>'y'); } is_released = true; } #endif // #if defined(gmic_float) && cimg_display!=0 if (is_debug) debug(images,"%sEnd G'MIC parser in scope '%s/' [%s].%s\n", cimg::t_bold,scope.back().data(),CImg::pixel_type(),cimg::t_normal); if (!is_debug && !is_quit && scope.size()==1 && is_default_type) { print(images,"End G'MIC parser.\n"); is_quit = true; } } catch (CImgException &e) { CImg error_message(e.what(),std::strlen(e.what())+1); for (char *cimg = std::strstr(error_message,"CImg"); cimg; cimg = std::strstr(cimg,"CImg")) { cimg[0] = 'g'; cimg[1] = 'm'; cimg[2] = 'i'; cimg[3] = 'c'; } error(images,error_message); } return *this; } // Small hack to separate the compilation of G'MIC for different pixel types. // (only intended to save computer memory when compiling!) //-------------------------------------------------------------------------- #if !defined(gmic_float_only) && (defined(gmic_bool) || !defined(gmic_split_compilation)) gmic& gmic::_parse_bool(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_bool) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_uchar) || !defined(gmic_split_compilation)) gmic& gmic::_parse_uchar(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_uchar) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_char) || !defined(gmic_split_compilation)) gmic& gmic::_parse_char(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_char) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_ushort) || !defined(gmic_split_compilation)) gmic& gmic::_parse_ushort(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_ushort) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_short) || !defined(gmic_split_compilation)) gmic& gmic::_parse_short(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_short) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_uint) || !defined(gmic_split_compilation)) gmic& gmic::_parse_uint(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_uint) || !defined(gmic_split_compilation)) #if !defined(gmic_float_only) && (defined(gmic_int) || !defined(gmic_split_compilation)) gmic& gmic::_parse_int(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_int) || !defined(gmic_split_compilation)) #if defined(gmic_float) || !defined(gmic_split_compilation) gmic& gmic::_parse_float(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if defined(gmic_float) || !defined(gmic_split_compilation) #if !defined(gmic_float_only) && (defined(gmic_double) || !defined(gmic_split_compilation)) gmic& gmic::_parse_double(const CImgList& commands_line, unsigned int& position, CImgList& images, CImgList& images_names, unsigned int (&variables_sizes)[256]) { return _parse(commands_line,position,images,images_names,variables_sizes); } template gmic::gmic(const int, const char *const *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); template gmic::gmic(const char *const, CImgList&, CImgList&, const char *const custom_commands, const bool include_default_commands, float *const p_progress, int *const p_cancel); #endif // #if !defined(gmic_float_only) && (defined(gmic_double) || !defined(gmic_split_compilation)) #ifdef gmic_main //----------------------- // Start main procedure. //----------------------- int main(int argc, char **argv) { cimg::output(stdout); if (argc==1) { std::fprintf(cimg::output(), "[gmic] No commands, options or data provided (type '%s -h' to get help).\n", cimg::basename(argv[0])); std::fflush(cimg::output()); std::exit(0); } // Check if help has been requested. char command_line[256] = { 0 }; const char *const is_help1 = cimg_option("-h",(char*)0,0), *const is_help2 = cimg_option("--h",(char*)0,0), *const is_help3 = cimg_option("-help",(char*)0,0), *const is_help4 = cimg_option("--help",(char*)0,0); if (is_help1 || is_help2 || is_help3 || is_help4) { // Load all specified commands definitions data. CImgList<> images; CImgList images_names; CImg(data_gmic_def,1,size_data_gmic_def,1,1).move_to(images); const unsigned int omode = cimg::exception_mode(); cimg::exception_mode() = 0; for (int i = 1; i::get_load_raw(file).move_to(images,0); CImg::vector('\n').move_to(images,1); cimg::fclose(file); if (*filename_tmp) std::remove(filename_tmp); } } cimg::exception_mode() = omode; const char *const is_help = is_help1?"-h":is_help2?"--h":is_help3?"-help":"--help", *const command = is_help1?is_help1:is_help2?is_help2:is_help3?is_help3:is_help4; if (!std::strcmp(is_help,command)) gmic("-v - -help",images,images_names); // Global help. else { // Help for a specified command. cimg_snprintf(command_line,sizeof(command_line),"-v - -help \"%s\",1",command); gmic(command_line,images,images_names); } std::exit(0); } // Launch G'MIC instance. const char *const is_debug = cimg_option("-debug",(char*)0,0); cimg::output(is_debug?stdout:stderr); CImgList images; CImgList images_names; try { gmic(argc,argv,images,images_names); } catch (gmic_exception &e) { std::fprintf(cimg::output(),"\n[gmic] %s%s%s%s", cimg::t_red,cimg::t_bold,e.what(),cimg::t_normal); if (*e.command()) { std::fprintf(cimg::output(),"\n[gmic] Command '-%s' has the following description: \n", e.command()); images.assign(); images_names.assign(); CImg(data_gmic_def,1,size_data_gmic_def,1,1).move_to(images); cimg_snprintf(command_line,sizeof(command_line),"-v - -help \"%s\",0",e.command()); gmic(command_line,images,images_names); } else { std::fprintf(cimg::output(),"\n\n"); std::fflush(cimg::output()); } return -1; } return 0; } #endif // #ifdef gmic_main #endif // #ifdef cimg_plugin gmic-1.5.7.1/src/gmic_use_lib.cpp0000664000175000017500000001142712216303503016760 0ustar dtschumpdtschump/* # # File : gmic_use_lib.cpp # ( C++ source file ) # # Description : Show how to call the G'MIC interpreter from a C++ source code. # # Copyright : David Tschumperle # ( http://tschumperle.users.greyc.fr/ ) # # License : CeCILL v2.0 # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) # # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info". # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # In this respect, the user's attention is drawn to the risks associated # with loading, using, modifying and/or developing or reproducing the # software by the user in light of its specific status of free software, # that may mean that it is complicated to manipulate, and that also # therefore means that it is reserved for developers and experienced # professionals having in-depth computer knowledge. Users are therefore # encouraged to load and test the software's suitability as regards their # requirements in conditions enabling the security of their systems and/or # data to be ensured and, more generally, to use and operate it in the # same conditions as regards security. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL license and that you accept its terms. # */ /* Note : To compile this example, using g++, use : g++ -o gmic_use_lib gmic_use_lib.cpp -lgmic -lfftw3 */ /* Uncomment the two lines below if you want to use the CImg library along with the G'MIC library. */ //#include "CImg.h" //using namespace cimg_library; #include #include "gmic.h" int main() { // First step : Create a list of input images. //-------------------------------------------- std::fprintf(stderr,"\n- 1st step : Create input list of images.\n"); gmic_list images; // List of images, will contain all images pixel data. gmic_list images_names; // List of images names. Can be left empty if no names are associated to images. images.assign(5); // Assign list to contain 5 images. for (unsigned int i = 0; i& img = images._data[i]; img.assign(256,256,1,3); // Assign i-th image of the list to be of size 256x256x1x3 (2d color image). std::fprintf(stderr," Input image %u = %ux%ux%ux%u, buffer : %p\n",i, images._data[i]._width, images._data[i]._height, images._data[i]._depth, images._data[i]._spectrum, images._data[i]._data); // Fill each image buffer with sinus values (with different frequencies). float *ptr = img._data; for (unsigned int c = 0; c /dev/null 2>&1) { # LIBS += -lX11 ../src/libgmic.a `pkg-config opencv --libs` -lfftw3 -lfftw3_threads OPENCVLIBS = $$system(pkg-config opencv --libs) OPENCVLIBS = $$replace( OPENCVLIBS, -lcvaux, ) LIBS += -lX11 ../src/libgmic.a $$OPENCVLIBS -lfftw3 -lfftw3_threads } else { LIBS += -lX11 ../src/libgmic.a -lopencv_core -lopencv_highgui -lfftw3 -lfftw3_threads -lopencv_imgproc -lopencv_objdetect # LIBS += -lX11 ../src/libgmic.a -lcxcore -lcv -lml -lhighgui -lfftw3 -lfftw3_threads } PRE_TARGETDEPS += QMAKE_CXXFLAGS_DEBUG += -Dcimg_use_fftw3 QMAKE_CXXFLAGS_RELEASE += -ffast-math -Dcimg_use_fftw3 UI_DIR = .ui MOC_DIR = .moc OBJECTS_DIR = .obj unix:!macx { DEFINES += _IS_UNIX_ } DEFINES += cimg_display=0 #QMAKE_LIBS = #QMAKE_LFLAGS_DEBUG = -lcxcore -lcv -lhighgui -lml #QMAKE_LFLAGS_RELEASE = -lcxcore -lcv -lhighgui -lml gmic-1.5.7.1/zart/src/0000700000175000017500000000000012216303500014567 5ustar dtschumpdtschumpgmic-1.5.7.1/zart/src/DialogAbout.cpp0000644000175000017500000000504012216303500017476 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file DialogAbout.cpp * @author Sebastien Fourey * @date Sep 2010 * @brief Definition of the methods of the class DialogAbout. * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include "DialogAbout.h" #include "Common.h" /** * Constructor */ DialogAbout::DialogAbout( QWidget * parent ) :QDialog( parent ) { setupUi( this ); setWindowTitle("About ZArt"); QString str = _topLabel->text(); str.replace( "VERSION", ZART_VERSION ); _topLabel->setText( str ); } gmic-1.5.7.1/zart/src/ImageConverter.cpp0000644000175000017500000002755612216303500020236 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file ImageConverter.cpp * @author Sebastien Fourey * @date Jul 2010 * @brief Definition of the methods of the class ImageConverter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include #include #include #include #include "ImageConverter.h" #include #include "Common.h" IplImage * ImageConverter::_image = 0; void ImageConverter::convert( const IplImage * in, QImage * out ) { assert(in->depth== IPL_DEPTH_8U); assert(in->nChannels == 3); const unsigned int w3 = 3 * in->width; const unsigned int qiOffset = (w3%4)?(4-(w3%4)):0; const unsigned int iplOffset = in->widthStep - w3; unsigned char * src = reinterpret_cast( in->imageData ); unsigned char * dst = reinterpret_cast( out->scanLine( 0 ) ); unsigned char * endSrc; unsigned int line = in->height; while ( line-- ) { endSrc = src + w3; while ( src != endSrc ) { *dst++ = src[2]; *dst++ = src[1]; *dst++ = src[0]; src += 3; } dst += qiOffset; src += iplOffset; } return; } void ImageConverter::convert( const cimg_library::CImg & in, QImage * out ) { const int spectrum = in.spectrum(); unsigned char * dst = out->scanLine(0); const float *srcR = in.data( 0,0,0,0 ); const float * endSrcR = srcR; const float *srcG = in.data( 0,0,0,(spectrum>=2)?1:0 ); const float *srcB = in.data( 0,0,0,(spectrum>=3)?2:0 ); unsigned int height = out->height(); const unsigned int width = out->width(); const unsigned int offset = ((width*3)%4)?(4-((width*3)%4)):0; while ( height-- ) { endSrcR += width; while ( srcR != endSrcR ) { *dst++ = static_cast( *srcR++ ); *dst++ = static_cast( *srcG++ ); *dst++ = static_cast( *srcB++ ); } dst += offset; } } void ImageConverter::merge( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out, QMutex * imageMutex, MergeDirection direction ) { IplImage * cameraImage = iplImage; if ( iplImage->width != cimgImage.width() || iplImage->height!= cimgImage.height() ) { if ( _image ) cvReleaseImage(&_image); _image = cvCreateImage(cvSize(cimgImage.width(),cimgImage.height()),IPL_DEPTH_8U,3); cvResize(iplImage,_image,CV_INTER_LINEAR); cameraImage = _image; imageMutex->lock(); QSize size( cimgImage.width(), cimgImage.height()); if ( out->size() != size ) { *out = QImage( size, QImage::Format_RGB888 ); } imageMutex->unlock(); } switch (direction) { case MergeTop: mergeTop( cameraImage, cimgImage, out ); break; case MergeLeft: mergeLeft( cameraImage, cimgImage, out ); break; case MergeBottom: mergeBottom( cameraImage, cimgImage, out ); break; case MergeRight: mergeRight( cameraImage, cimgImage, out ); break; } } void ImageConverter::mergeTop( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ) { const int height = iplImage->height; const int width = iplImage->width; const int spectrum = cimgImage.spectrum(); const float *srcR = cimgImage.data( 0,0,0,0 ); const float *srcG = cimgImage.data( 0,0,0,(spectrum>=2)?1:0 ); const float *srcB = cimgImage.data( 0,0,0,(spectrum>=3)?2:0 ); unsigned char * dst = out->scanLine(0); unsigned char * endDst; const unsigned int qiOffset = ((width*3)%4)?(4-((width*3)%4)):0; const unsigned int iplOffset = iplImage->widthStep - 3 * width; // Copy from cimgImage unsigned int lines = height/2; while ( lines-- ) { endDst= dst + 3 * width; while ( dst != endDst ) { *dst++ = static_cast( *srcR++ ); *dst++ = static_cast( *srcG++ ); *dst++ = static_cast( *srcB++ ); } dst += qiOffset; } // Copy from iplImage unsigned char * srcIpl = reinterpret_cast( iplImage->imageData ); srcIpl += (height/2) * iplImage->widthStep; lines = height - height/2; while ( lines-- ) { endDst= dst + 3 * width; while ( dst != endDst ) { *dst++ = srcIpl[2]; *dst++ = srcIpl[1]; *dst++ = srcIpl[0]; srcIpl += 3; } dst += qiOffset; srcIpl += iplOffset; } } void ImageConverter::mergeLeft( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ) { const int width = iplImage->width; const int spectrum = cimgImage.spectrum(); const float *srcR = cimgImage.data( 0,0,0,0 ); const float *srcG = cimgImage.data( 0,0,0,(spectrum>=2)?1:0 ); const float *srcB = cimgImage.data( 0,0,0,(spectrum>=3)?2:0 ); unsigned char * srcIpl = reinterpret_cast( iplImage->imageData ); unsigned char * dst = out->scanLine(0); unsigned char * endDst; const unsigned int qiOffset = ((width*3)%4)?(4-((width*3)%4)):0; const unsigned int iplOffset = iplImage->widthStep - 3 * width; const unsigned int firstHalf = width/2; const unsigned int secondHalf = width - width/2; int height = iplImage->height; while ( height-- ) { endDst= dst + 3 * firstHalf; while ( dst != endDst ) { *dst++ = static_cast( *srcR++ ); *dst++ = static_cast( *srcG++ ); *dst++ = static_cast( *srcB++ ); } srcR += secondHalf; srcG += secondHalf; srcB += secondHalf; srcIpl += 3 * firstHalf; endDst= dst + 3 * secondHalf; while ( dst != endDst ) { *dst++ = srcIpl[2]; *dst++ = srcIpl[1]; *dst++ = srcIpl[0]; srcIpl += 3; } srcIpl += iplOffset; dst += qiOffset; } } void ImageConverter::mergeBottom( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ) { const int height = iplImage->height; const int width = iplImage->width; unsigned char * dst = out->scanLine(0); unsigned char * endDst; const unsigned int qiOffset = ((width*3)%4)?(4-((width*3)%4)):0; const unsigned int iplOffset = iplImage->widthStep - 3 * width; // Copy from iplImage unsigned char * srcIpl = reinterpret_cast( iplImage->imageData ); unsigned int lines = height/2; while ( lines-- ) { endDst= dst + 3 * width; while ( dst != endDst ) { *dst++ = srcIpl[2]; *dst++ = srcIpl[1]; *dst++ = srcIpl[0]; srcIpl += 3; } dst += qiOffset; srcIpl += iplOffset; } // Copy from cimgImage const unsigned int cimgOffset = width * (height/2); const int spectrum = cimgImage.spectrum(); const float *srcR = cimgImage.data( 0,0,0,0 ) + cimgOffset; const float *srcG = cimgImage.data( 0,0,0,(spectrum>=2)?1:0 ) + cimgOffset; const float *srcB = cimgImage.data( 0,0,0,(spectrum>=3)?2:0 ) + cimgOffset; lines = height - height/2; while ( lines-- ) { endDst= dst + 3 * width; while ( dst != endDst ) { *dst++ = static_cast( *srcR++ ); *dst++ = static_cast( *srcG++ ); *dst++ = static_cast( *srcB++ ); } dst += qiOffset; } } void ImageConverter::mergeRight( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ) { const int width = iplImage->width; const unsigned int firstHalf = width/2; const unsigned int secondHalf = width - width/2; const int spectrum = cimgImage.spectrum(); const float *srcR = cimgImage.data( 0,0,0,0 ) + firstHalf; const float *srcG = cimgImage.data( 0,0,0,(spectrum>=2)?1:0 ) + firstHalf; const float *srcB = cimgImage.data( 0,0,0,(spectrum>=3)?2:0 ) + firstHalf; unsigned char * srcIpl = reinterpret_cast( iplImage->imageData ); const unsigned int iplOffset = iplImage->widthStep - 3 * width; const unsigned int iplShift = 3 * secondHalf + iplOffset; unsigned char * dst = out->scanLine(0); unsigned char * endDst; const unsigned int qiOffset = ((width*3)%4)?(4-((width*3)%4)):0; int height = iplImage->height; while ( height-- ) { // First half from iplImage endDst= dst + 3 * firstHalf; while ( dst != endDst ) { *dst++ = srcIpl[2]; *dst++ = srcIpl[1]; *dst++ = srcIpl[0]; srcIpl += 3; } srcIpl += iplShift; // Second half from cimgImage endDst= dst + 3 * secondHalf; while ( dst != endDst ) { *dst++ = static_cast( *srcR++ ); *dst++ = static_cast( *srcG++ ); *dst++ = static_cast( *srcB++ ); } srcR += firstHalf; srcG += firstHalf; srcB += firstHalf; dst += qiOffset; } } void ImageConverter::convert( const IplImage * in, cimg_library::CImg & out ) { assert(in->depth== IPL_DEPTH_8U); assert(in->nChannels == 3); const int spectrum = out.spectrum(); float * dstR = out.data( 0,0,0,0 ); float * dstG = out.data( 0,0,0,(spectrum>=2)?1:0 ); float * dstB = out.data( 0,0,0,(spectrum>=3)?2:0 ); const unsigned char * src = reinterpret_cast(in->imageData ); const unsigned char * endSrc; const unsigned int w3 = in->width * 3; const unsigned int iplOffset = in->widthStep - w3; unsigned int height = in->height; while ( height-- ) { endSrc = src + w3; while ( src != endSrc ) { *dstB++ = static_cast(*src++); *dstG++ = static_cast(*src++); *dstR++ = static_cast(*src++); } src += iplOffset; } } gmic-1.5.7.1/zart/src/WebcamGrabber.cpp0000644000175000017500000000722312216303500017774 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file WebcamGrabber.cpp * @author Sebastien Fourey * @date July 2010 * @brief Definition of methods of the class WebcamGrabber * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include "Common.h" #include "WebcamGrabber.h" #include #include #include using namespace std; WebcamGrabber::WebcamGrabber() { _capture = 0; _image = 0; _width = 0; _height = 0; } WebcamGrabber::~WebcamGrabber() { cvReleaseCapture( &_capture ); } void WebcamGrabber::capture() { _image = cvQueryFrame( _capture ); } QList WebcamGrabber::getWebcamList() { QList camList; #if defined(_IS_UNIX_) int i = 0; for ( i = 0; i < 6 ; ++i ) { QFile file(QString("/dev/video%1").arg(i)); if ( file.open(QFile::ReadOnly) ) { file.close(); camList.push_back(i); } } #else CvCapture *capture = 0; int i = 0; for ( i = 0; i < 6 ; ++i ) { capture = cvCaptureFromCAM( i ); if ( capture ) { cvReleaseCapture( &capture ); camList.push_back(i); } } #endif return camList; } void WebcamGrabber::setCameraIndex( int i ) { if ( _capture ) { cvReleaseCapture( &_capture ); } _capture = cvCaptureFromCAM( i ); _image = cvQueryFrame( _capture ); if ( _image->width != 640 || _image->height != 480 ) { cvSetCaptureProperty(_capture,CV_CAP_PROP_FRAME_WIDTH,640); cvSetCaptureProperty(_capture,CV_CAP_PROP_FRAME_HEIGHT,480); _image = cvQueryFrame( _capture ); _image = cvQueryFrame( _capture ); } _width = _image->width; _height = _image->height; _cameraIndex = i; } gmic-1.5.7.1/zart/src/FilterThread.cpp0000644000175000017500000001546312216303500017673 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file FilterThread.cpp * @author Sebastien Fourey * @date July 2010 * @brief Definition of the methods of the class FilterThread. * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include "FilterThread.h" #include "ImageConverter.h" #include "WebcamGrabber.h" #include #include #include #include #include #include #include #include using namespace cimg_library; const unsigned int FilterThread::_gmic_variables_sizes[27] = { 0 }; FilterThread::FilterThread( WebcamGrabber & webcam, const QString & command, QImage * outputImage, QMutex * imageMutex, PreviewMode previewMode, int frameSkip ) : _webcam( webcam ), _outputImage( outputImage ), _imageMutex( imageMutex ), _previewMode( previewMode ), _frameSkip( frameSkip ), _continue( true ), _xMouse( -1 ), _yMouse( -1 ), _buttonsMouse( 0 ), _gmic_images(), _gmic("-v - ") { setCommand(command); } FilterThread::~FilterThread() { } void FilterThread::setMousePosition( int x, int y, int buttons ) { _xMouse = x; _yMouse = y; _buttonsMouse = buttons; } void FilterThread::setPreviewMode( PreviewMode pm ) { _previewMode = pm; } void FilterThread::setFrameSkip( int n ) { _frameSkip = n; } void FilterThread::stop() { _continue = false; } void FilterThread::run() { int n; while ( _continue ) { // Skip some frames and grab an image from the webcam n = _frameSkip + 1; while ( n-- ) { _webcam.capture(); } if ( !_gmic_images ) _gmic_images.assign(1); if ( !_gmic_images[0].is_sameXYZC(_webcam.width(),_webcam.height(),1,3) ) _gmic_images[0].assign(_webcam.width(),_webcam.height(),1,3); ImageConverter::convert( _webcam.image(), _gmic_images[0] ); // Call the G'MIC interpreter. try { QString c( _command ); QString strX = QString("%1").arg( _xMouse ); QString strY = QString("%1").arg( _yMouse ); QString strB = QString("%1").arg( _buttonsMouse ); c.replace( "@x", strX ) .replace( "@y", strY ) .replace( "@b", strB ); c.replace( "@{!,x}", strX ) .replace( "@{!,y}", strY ) .replace( "@{!,b}", strB ); _gmic.parse( c.toAscii().constData(), _gmic_images, _gmic_images_names); switch ( _previewMode ) { case Full: if (_gmic_images && _gmic_images[0]) { _imageMutex->lock(); QSize size( _gmic_images[0].width(), _gmic_images[0].height() ); if ( _outputImage->size() != size ) { *_outputImage = QImage( size, QImage::Format_RGB888 ); } _imageMutex->unlock(); ImageConverter::convert( _gmic_images[0], _outputImage ); } break; case Camera: { _imageMutex->lock(); QSize size( _webcam.width(), _webcam.height() ); if ( _outputImage->size() != size ) { *_outputImage = QImage( size, QImage::Format_RGB888 ); } _imageMutex->unlock(); ImageConverter::convert( _webcam.image(), _outputImage ); } break; case LeftHalf: ImageConverter::merge( _webcam.image(), _gmic_images[0], _outputImage, _imageMutex, ImageConverter::MergeLeft ); break; case TopHalf: ImageConverter::merge( _webcam.image(), _gmic_images[0], _outputImage, _imageMutex, ImageConverter::MergeTop ); break; case BottomHalf: ImageConverter::merge( _webcam.image(), _gmic_images[0], _outputImage, _imageMutex, ImageConverter::MergeBottom ); break; case RightHalf: ImageConverter::merge( _webcam.image(), _gmic_images[0], _outputImage, _imageMutex, ImageConverter::MergeRight ); break; default: _outputImage->fill( QColor(255,255,255).rgb() ); break; } } catch (gmic_exception &e) { const unsigned char col1[] = { 0,255,0 }, col2[] = { 0,0,0 }; CImg src( reinterpret_cast(_webcam.image()->imageData), 3, _webcam.width(), _webcam.height(), 1, true ); _gmic_images = src.get_permute_axes("yzcx") .channel(0).resize(-100,-100,1,3).draw_text(10,10,"Syntax Error",col1,col2,0.5,57); std::cerr << e.what() << std::endl; QSize size( _webcam.image()->width, _webcam.image()->height ); if ( _outputImage->size() != size ) { _imageMutex->lock(); *_outputImage = QImage( size, QImage::Format_RGB888 ); _imageMutex->unlock(); } ImageConverter::convert( _gmic_images[0], _outputImage ); } emit imageAvailable(); } } /* * Private methods */ void FilterThread::setCommand( const QString & command ) { QByteArray str = command.toAscii(); str.replace( 10, ' ' ); str.replace( 13, ' ' ); _command = str.constData(); } gmic-1.5.7.1/zart/src/ImageView.cpp0000644000175000017500000001222412216303500017163 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file ImageView.cpp * @author Sebastien Fourey * @date July 2010 * @brief Definition of the methods of the class ImageView. * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * */ #include "ImageView.h" #include #include #include #include #include #include #include #include "Common.h" ImageView::ImageView( QWidget * parent ) : QWidget( parent ) { setAutoFillBackground( false ); _image = QImage( 640, 480, QImage::Format_RGB888 ); _image.fill( 0 ); setMinimumSize(320,200); _imagePosition = geometry(); _scaleFactor = 1.0; _zoomOriginal= false; } void ImageView::paintEvent( QPaintEvent * ) { QPainter painter( this ); _imageMutex.lock(); if ( _image.size() == size() ) { painter.drawImage( 0, 0, _image ); _imagePosition = rect(); _scaleFactor = 1.0; _imageMutex.unlock(); return; } QImage scaled; const double imageRatio = _image.width() / static_cast(_image.height() ); const double widgetRatio = width() / static_cast( height() ); if ( imageRatio > widgetRatio ) { scaled = _image.scaledToWidth(width()); _imagePosition = QRect(0,(height()-scaled.height())/2,scaled.width(),scaled.height()); _scaleFactor = scaled.width()/static_cast(_image.width()); painter.drawImage( _imagePosition.topLeft(), scaled ); } else { scaled = _image.scaledToHeight(height()); _imagePosition = QRect((width()-scaled.width())/2,0,scaled.width(),scaled.height()); _scaleFactor = scaled.height()/static_cast(_image.height()); painter.drawImage( _imagePosition.topLeft(), scaled ); } _imageMutex.unlock(); } void ImageView::mousePressEvent( QMouseEvent * e ) { if ( !_imagePosition.contains(e->pos()) ) return; *e = mapMousePositionToImage( e ); emit mousePress( e ); } void ImageView::mouseReleaseEvent( QMouseEvent * ) { } void ImageView::mouseMoveEvent( QMouseEvent * e ) { if ( !_imagePosition.contains(e->pos()) ) return; *e = mapMousePositionToImage( e ); emit mouseMove( e ); } void ImageView::resizeEvent( QResizeEvent * ) { } void ImageView::zoomOriginal() { _zoomOriginal = true; setMinimumSize(_image.size()); resize(_image.size()); setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); } void ImageView::zoomFitBest() { _zoomOriginal = false; QFrame * frame = dynamic_cast(parent()); if ( frame ) { QRect rect = frame->layout()->contentsRect(); setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); resize(rect.width(),rect.height()); } } void ImageView::checkSize() { if ( !_zoomOriginal ) return; if ( size() != _image.size() ) { setMinimumSize(_image.size()); resize(_image.size()); setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); } } QMouseEvent ImageView::mapMousePositionToImage( QMouseEvent * e ) { int x = (e->pos().x()-_imagePosition.left()) / _scaleFactor; int y = (e->pos().y()-_imagePosition.top()) / _scaleFactor; return QMouseEvent(e->type(),QPoint(x,y),e->button(),e->buttons(),e->modifiers()); } gmic-1.5.7.1/zart/src/ZArt.cpp0000644000175000017500000000672512216303500016177 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file ZArt.cpp * @author Sebastien Fourey * @date July 2010 * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include using namespace std; #include #include #include "WebcamGrabber.h" #include "Common.h" #include "MainWindow.h" int main( int argc, char *argv[] ) { QApplication app( argc, argv ); app.setWindowIcon( QIcon(":images/gmic_hat.png") ); QCoreApplication::setOrganizationName("GREYC"); QCoreApplication::setOrganizationDomain("greyc.fr"); QCoreApplication::setApplicationName("ZArt"); QStringList args = app.arguments(); if ( args.size() == 2 && ( args[1] == "-h" || args[1] == "--help") ) { cout << "Usage:" << endl << " " << QFileInfo(argv[0]).baseName().toAscii().constData() << " [options]" << endl << " " << "Options: " << endl << " --help | -h : print this help." << endl << " --cam N : disable camera detection and force selection" << " camera with index N." << endl << endl; exit(EXIT_FAILURE); } if ( ! WebcamGrabber::getWebcamList().count() ) { const char * message = "No webcam found.

" "(ZArt is useless without a webcam!)"; QMessageBox::critical(0, QString("ZArt %1: Error").arg(ZART_VERSION), message); exit(EXIT_FAILURE); } MainWindow mainWindow; mainWindow.show(); return app.exec(); } gmic-1.5.7.1/zart/src/CommandEditor.cpp0000644000175000017500000000532712216303500020041 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file CommandEditor.cpp * @author Sebastien Fourey * @date Sep 2010 * @brief Definition of the methods of the class CommandEditor * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include "CommandEditor.h" /** * Constructor */ CommandEditor::CommandEditor( QWidget * parent ) : QPlainTextEdit( parent ) { } CommandEditor::~CommandEditor() { } void CommandEditor::keyPressEvent ( QKeyEvent * event ) { if ( ( event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return ) && ( event->modifiers() & Qt::ControlModifier ) ) { event->accept(); emit commandModified(); } else { QPlainTextEdit::keyPressEvent( event ); } } gmic-1.5.7.1/zart/src/Makefile0000600000175000017500000000004012216303500016223 0ustar dtschumpdtschump.PHONY: all all: cd ..; make gmic-1.5.7.1/zart/src/MainWindow.cpp0000644000175000017500000004644412216303500017375 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file MainWindow.cpp * @author Sebastien Fourey * @date July 2010 * @brief Declaration of the class MainWindow * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "Common.h" #include "DialogAbout.h" #include "DialogLicence.h" #include "ImageConverter.h" #include "ImageView.h" #include "MainWindow.h" #include "WebcamGrabber.h" #include "FilterThread.h" MainWindow::MainWindow( QWidget * parent ) : QMainWindow( parent ), _currentDir( "." ) { setupUi(this); setWindowTitle( QString("ZArt %1").arg((ZART_VERSION)) ); QSettings settings; #if QT_VERSION >= 0x040600 _tbPlay->setIcon( QIcon::fromTheme("media-playback-start", QIcon(":/images/media-playback-start.png")) ); _tbZoomOriginal->setIcon( QIcon::fromTheme("zoom-original", QIcon(":/images/zoom-original.png") )); _tbZoomFit->setIcon( QIcon::fromTheme("zoom-fit-best", QIcon(":/images/zoom-fit-best.png") )); #else _tbPlay->setIcon( QIcon(":/images/media-playback-start.png") ); _tbZoomOriginal->setIcon( QIcon(":/images/zoom-original.png") ); _tbZoomFit->setIcon( QIcon(":/images/zoom-fit-best.png") ); #endif // Menu and actions QMenu * menu; menu = menuBar()->addMenu( "&File" ); QAction * action = new QAction( "&Save presets...", this ); action->setShortcut( QKeySequence::SaveAs ); #if QT_VERSION >= 0x040600 action->setIcon( QIcon::fromTheme( "document-save-as" ) ); #endif menu->addAction( action ); connect( action, SIGNAL( triggered() ), this, SLOT( savePresetsFile() ) ); action = new QAction( "&Quit", this ); action->setShortcut( QKeySequence::Quit ); #if QT_VERSION >= 0x040600 action->setIcon( QIcon::fromTheme( "application-exit", QIcon(":/images/application-exit.png") ) ); #else action->setIcon( QIcon(":/images/application-exit.png") ); #endif connect( action, SIGNAL( triggered() ), qApp, SLOT( closeAllWindows() ) ); menu->addAction( action ); QMenu * webcamMenu; QStringList args = qApp->arguments(); if ( args.size() == 3 && args[1] == "--cam" ) { int index = args[2].toInt(); _webcam.setCameraIndex( index ); } else { // Find available cameras, and setup the default one QList cameras = WebcamGrabber::getWebcamList(); if ( cameras.size() > 1 ) { webcamMenu = menuBar()->addMenu( "&Webcam" ); QActionGroup * actionGroup = new QActionGroup(this); actionGroup->setExclusive(true); QAction * action; QList::iterator it = cameras.begin(); while (it != cameras.end()) { action = new QAction( QString("Webcam %1").arg(*it), this ); action->setData( QVariant( *it ) ); action->setCheckable( true ); webcamMenu->addAction( action ); actionGroup->addAction( action ); ++it; } actionGroup->actions()[0]->setChecked(true); _webcam.setCameraIndex( actionGroup->actions()[0]->data().toInt() ); connect( actionGroup, SIGNAL( triggered( QAction * ) ), this, SLOT( onWebcamSelected( QAction * ) ) ); } else if ( cameras.size() == 1 ) { _webcam.setCameraIndex( cameras[0] ); } } QSize cameraSize( _webcam.width(), _webcam.height() ); _imageView->resize( cameraSize ); // Network manager _networkManager = new QNetworkAccessManager(this); connect( _networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkReplyFinished(QNetworkReply*)) ); // Options menu menu = menuBar()->addMenu( "&Options" ); action = new QAction("Show right panel",menu); action->setCheckable(true); action->setChecked(settings.value("showRightPanel",true).toBool()); action->setShortcut(QKeySequence("Ctrl+F")); connect( action, SIGNAL(triggered(bool)), this, SLOT(onRightPanel(bool))); menu->addAction(action); menu->addSeparator(); // Presets QString presetsConfig = settings.value("Presets",QString("Built-in")).toString(); QActionGroup * group = new QActionGroup(menu); group->setExclusive(true); // Built-in _builtInPresetsAction = new QAction( "&Built-in presets", menu ); _builtInPresetsAction->setCheckable( true ); connect( _builtInPresetsAction, SIGNAL( toggled(bool) ), this, SLOT( onUseBuiltinPresets(bool) ) ); group->addAction( _builtInPresetsAction ); menu->addAction( _builtInPresetsAction ); _builtInPresetsAction->setChecked(true); // Default to Built-in presets // Online _onlinePresetsAction = new QAction( "&Online presets", menu ); _onlinePresetsAction->setCheckable( true ); connect( _onlinePresetsAction, SIGNAL( toggled(bool ) ), this, SLOT( onUseOnlinePresets(bool ) ) ); menu->addAction( _onlinePresetsAction ); group->addAction( _onlinePresetsAction ); if ( presetsConfig == "Online" ) { _onlinePresetsAction->setChecked(true); } // File action = new QAction( "&Presets file...", menu ); action->setCheckable( true ); group->addAction( action ); menu->addAction( action ); QString filename = settings.value("PresetsFile",QString()).toString(); if ( presetsConfig == "File" && !filename.isEmpty() ) { setPresetsFile(filename); action->setChecked(true); } connect( action, SIGNAL( triggered() ), this, SLOT( setPresetsFile() ) ); // Help menu menu = menuBar()->addMenu( "&Help" ); action = new QAction( "&Visit G'MIC website", this ); action->setIcon( QIcon(":/images/gmic_hat.png") ); connect( action, SIGNAL( triggered() ), this, SLOT( visitGMIC() ) ); menu->addAction( action ); action = new QAction( "&Licence...", this ); connect( action, SIGNAL( triggered() ), this, SLOT( licence() ) ); menu->addAction( action ); action = new QAction( "&About...", this ); connect( action, SIGNAL( triggered() ), this, SLOT( about() ) ); menu->addAction( action ); _imageView->QWidget::resize( _webcam.width(), _webcam.height() ); _bgZoom = new QButtonGroup(this); _bgZoom->setExclusive(true); _tbZoomFit->setCheckable(true); _tbZoomFit->setChecked(true); _tbZoomOriginal->setCheckable(true); _bgZoom->addButton(_tbZoomOriginal); _bgZoom->addButton(_tbZoomFit); _cbPreviewMode->addItem("Full",FilterThread::Full); _cbPreviewMode->addItem("Top",FilterThread::TopHalf); _cbPreviewMode->addItem("Left",FilterThread::LeftHalf); _cbPreviewMode->addItem("Bottom",FilterThread::BottomHalf); _cbPreviewMode->addItem("Right",FilterThread::RightHalf); _cbPreviewMode->addItem("Camera",FilterThread::Camera); connect( _cbPreviewMode, SIGNAL(activated(int)), this, SLOT(onPreviewModeChanged(int))); QShortcut * sc = new QShortcut(QKeySequence("Ctrl+P"),this); _tbPlay->setToolTip("Launch processing (Ctrl+P)"); connect( sc, SIGNAL(activated()), this, SLOT(onPlay()) ); connect( _tbPlay, SIGNAL(clicked()), this, SLOT(onPlay())); connect( _tbZoomOriginal, SIGNAL( clicked() ), _imageView, SLOT( zoomOriginal() ) ); connect( _tbZoomFit, SIGNAL( clicked() ), _imageView, SLOT( zoomFitBest() ) ); connect( _pbApply, SIGNAL( clicked() ), this, SLOT( commandModified() ) ); connect( _tbCamera, SIGNAL( clicked() ), this, SLOT( snapshot() ) ); _imageView->setMouseTracking( true ); connect( _imageView, SIGNAL( mousePress( QMouseEvent * ) ), this, SLOT( imageViewMouseEvent( QMouseEvent * ) ) ); connect( _imageView, SIGNAL( mouseMove( QMouseEvent * ) ), this, SLOT( imageViewMouseEvent( QMouseEvent * ) ) ); connect( _treeGPresets, SIGNAL( itemClicked( QTreeWidgetItem *, int )), this, SLOT( presetClicked( QTreeWidgetItem *, int ) ) ); connect( _treeGPresets, SIGNAL( itemDoubleClicked( QTreeWidgetItem *, int )), this, SLOT( presetDoubleClicked( QTreeWidgetItem *, int ) ) ); connect( _commandEditor, SIGNAL( commandModified() ), this, SLOT( commandModified() ) ); _sliderSkipFrames->setRange(0,10); connect( _sliderSkipFrames, SIGNAL( valueChanged(int) ), this, SLOT( setFrameSkip(int ) ) ); // Image filter for the "Save as..." dialog QList formats = QImageWriter::supportedImageFormats(); QList::iterator it = formats.begin(); QList::iterator end = formats.end(); _imageFilters = "Image file ("; while ( it != end ) { _imageFilters += QString("*.") + QString(*it).toLower() + " "; ++it; } _imageFilters.chop(1); _imageFilters += ")"; _filterThread = 0; if ( ! settings.value("showRightPanel",true).toBool() ) _rightPanel->hide(); } MainWindow::~MainWindow() { if ( _filterThread ) { _filterThread->stop(); _filterThread->wait(); delete _filterThread; } } void MainWindow::addPresets( const QDomElement & domE, QTreeWidgetItem * parent ) { for( QDomNode n = domE.firstChild(); !n.isNull(); n = n.nextSibling() ) { QString name = n.attributes().namedItem( "name" ).nodeValue(); if ( n.nodeName() == QString("preset") ) { QString text = n.firstChild().toText().data(); QStringList strList; strList << name; if ( ! parent ) _treeGPresets->addTopLevelItem( new QTreeWidgetItem( strList ) ); else new QTreeWidgetItem( parent, strList ); } else if ( n.nodeName() == QString("preset_group") ) { QStringList strList; strList << name; QTreeWidgetItem * parent; _treeGPresets->addTopLevelItem( parent = new QTreeWidgetItem( strList ) ); addPresets( n.toElement(), parent ); } } } void MainWindow::about() { DialogAbout * d = new DialogAbout( this ); d->exec(); delete d; } void MainWindow::visitGMIC() { QDesktopServices::openUrl(QUrl("http://gmic.sourceforge.net/")); } void MainWindow::licence() { DialogLicence * d = new DialogLicence( this ); d->exec(); delete d; } QString MainWindow::getPreset( const QString & name ) { QDomNodeList list = _presets.elementsByTagName("preset"); for ( int i = 0; i < list.count(); ++i ) { QDomNode n = list.at(i); if ( n.attributes().namedItem( "name" ).nodeValue() == name ) { return n.firstChild().toText().data().trimmed(); } } return QString(); } void MainWindow::onImageAvailable() { _imageView->checkSize(); _imageView->repaint(); } void MainWindow::play() { int pm = _cbPreviewMode->itemData(_cbPreviewMode->currentIndex()).toInt(); FilterThread::PreviewMode previewMode = static_cast(pm); _filterThread = new FilterThread( _webcam, _commandEditor->toPlainText(), &_imageView->image(), &_imageView->imageMutex(), previewMode, _sliderSkipFrames->value() ); connect( _filterThread, SIGNAL( imageAvailable() ), this, SLOT( onImageAvailable() ) ); _filterThread->start(); } void MainWindow::stop() { if ( _filterThread ) { _filterThread->stop(); _filterThread->wait(); delete _filterThread; _filterThread = 0; } } void MainWindow::onPlay() { if ( _filterThread ) { stop(); #if QT_VERSION >= 0x040600 _tbPlay->setIcon( QIcon::fromTheme("media-playback-start", QIcon(":/images/media-playback-start.png")) ); #else _tbPlay->setIcon( QIcon(":/images/media-playback-start.png") ); #endif _tbPlay->setToolTip("Launch processing (Ctrl+P)"); } else { play(); #if QT_VERSION >= 0x040600 _tbPlay->setIcon( QIcon::fromTheme("media-playback-stop", QIcon(":/images/media-playback-stop.png")) ); #else _tbPlay->setIcon( QIcon(":/images/media-playback-stop.png") ); #endif _tbPlay->setToolTip("Stop processing (Ctrl+P)"); } } void MainWindow::imageViewMouseEvent( QMouseEvent * e ) { int buttons = 0; if ( e->buttons() & Qt::LeftButton ) buttons |= 1; if ( e->buttons() & Qt::RightButton ) buttons |= 2; if ( e->buttons() & Qt::MidButton ) buttons |= 4; if (_filterThread) _filterThread->setMousePosition( e->x(), e->y(), buttons ); } void MainWindow::commandModified() { if ( _filterThread && _filterThread->isRunning() ) { stop(); play(); } } void MainWindow::presetClicked( QTreeWidgetItem * item, int ) { if ( item->childCount() ) return; _commandEditor->setPlainText( getPreset( item->text(0) ) ); } void MainWindow::presetDoubleClicked( QTreeWidgetItem * item, int ) { if ( item->childCount() ) return; _commandEditor->setPlainText( getPreset( item->text(0) ) ); if ( _cbPreviewMode->currentText().startsWith("Camera") ) { _cbPreviewMode->setCurrentIndex(0); onPreviewModeChanged(0); } commandModified(); } void MainWindow::snapshot() { if ( _filterThread ) _tbPlay->click(); QString filename = QFileDialog::getSaveFileName( this, "Save image as...", _currentDir, _imageFilters, 0, 0 ); if ( ! filename.isEmpty() ) { QFileInfo info( filename ); _currentDir = info.filePath(); QImageWriter writer( filename ); _imageView->imageMutex().lock(); writer.write( _imageView->image() ); _imageView->imageMutex().unlock(); } } void MainWindow::setFrameSkip(int i) { _labelSkipFrames->setText( QString("Frame skip (%1)").arg(i) ); if ( _filterThread ) _filterThread->setFrameSkip( i ); } void MainWindow::onWebcamSelected( QAction * action ) { int index = action->data().toInt(); if ( action->isChecked() ) { if ( _filterThread && _filterThread->isRunning() ) { stop(); _webcam.setCameraIndex( index ); play(); } else { _webcam.setCameraIndex( index ); } } } void MainWindow::onUseOnlinePresets( bool on ) { if ( on ) { QNetworkRequest request( QUrl("https://foureys.users.greyc.fr/ZArt/zart_presets.xml" ) ); _networkManager->get( request ); } } void MainWindow::networkReplyFinished( QNetworkReply* reply ) { if ( reply->error() != QNetworkReply::NoError ) { QMessageBox::critical( this, "Network Error", "Could not retrieve the preset file from" " the Web. Maybe a problem with your network" " connection." ); _builtInPresetsAction->setChecked( true ); QSettings().setValue( "Presets", "Built-in" ); return; } QSettings().setValue( "Presets", "Online" ); QString error; _presets.setContent( reply, false, &error ); _treeGPresets->clear(); addPresets( _presets.elementsByTagName("document").at(0).toElement(), 0 ); } void MainWindow::setPresetsFile( const QString & file ) { QString filename = file; if ( filename.isEmpty() ) { QSettings settings; QString s = settings.value("PresetsFile").toString(); QString dir = "."; if ( QFileInfo(s).exists() ) dir = QFileInfo(s).absolutePath(); filename = QFileDialog::getOpenFileName( this, "Open a presets file", dir, "Preset files (*.xml)" ); } if ( ! filename.isEmpty() ) { QSettings settings; settings.setValue( "PresetsFile", filename ); settings.setValue( "Presets", "File" ); QFile presetsTreeFile( filename ); QString error; presetsTreeFile.open( QIODevice::ReadOnly ); _presets.setContent( &presetsTreeFile, false, &error ); presetsTreeFile.close(); _treeGPresets->clear(); addPresets( _presets.elementsByTagName("document").at(0).toElement(), 0 ); } else { _builtInPresetsAction->setChecked( true ); } } void MainWindow::onUseBuiltinPresets(bool on) { if ( on ) { QFile presetsTreeFile( ":/presets.xml" ); QString error; presetsTreeFile.open( QIODevice::ReadOnly ); _presets.setContent( &presetsTreeFile, false, &error ); presetsTreeFile.close(); _treeGPresets->clear(); addPresets( _presets.elementsByTagName("document").at(0).toElement(), 0 ); QSettings().setValue( "Presets", "Built-in" ); } } void MainWindow::savePresetsFile() { QString filename = QFileDialog::getSaveFileName( this, "Save presets file", ".", "Preset files (*.xml)" ); if ( ! filename.isEmpty() ) { QFile presetsFile( filename ); presetsFile.open( QIODevice::WriteOnly ); presetsFile.write( _presets.toByteArray() ); presetsFile.close(); } } void MainWindow::onPreviewModeChanged( int index ) { int mode = _cbPreviewMode->itemData(index).toInt(); if ( _filterThread ) _filterThread->setPreviewMode(static_cast(mode)); } void MainWindow::onRightPanel( bool on ) { if ( on && !_rightPanel->isVisible()) { _rightPanel->show(); QSettings().setValue("showRightPanel",true); return; } if ( !on && _rightPanel->isVisible()) { _rightPanel->hide(); QSettings().setValue("showRightPanel",false); return; } } gmic-1.5.7.1/zart/src/DialogLicence.cpp0000644000175000017500000000503212216303500017767 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file DialogLicence.cpp * @author Sebastien Fourey * @date Feb. 2012 * @brief Definition of methods of DialogLicence. * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #include "DialogLicence.h" #include "Common.h" #include /** * Constructor */ DialogLicence::DialogLicence( QWidget * parent ) :QDialog( parent ) { setupUi( this ); QFile licence(":/Licence_CeCILL_V2-en.html"); licence.open(QFile::ReadOnly); _text->setText(licence.readAll()); } gmic-1.5.7.1/zart/images/0000700000175000017500000000000012216303500015245 5ustar dtschumpdtschumpgmic-1.5.7.1/zart/images/Logo_150.png0000600000175000017500000004015012216303500017242 0ustar dtschumpdtschumpPNG  IHDR[w|sRGBbKGD pHYs  tIME 2O?tEXtCommentCreated with GIMPW IDATxwx[?G[ְ,/yoǎ;N KҖU(Ji_Ze.F)P(eu@IXY$!;ĉWxK-K$kPtބ纸bB:{+0!v t?SoIN'~ yoopp^/NBd2x^T*R·1c}AAdǏɓj4 n`0HBB݄a"==߀M`sJH$RYYIuu5*lJJJ@ee%`4ә7oJ Xڷ/R(BưX,с磡A:::H8fhhݎZ&..Tf͚EJJ zNYYXt:ZNZG.cQwv1N'رv<@ۍ^gppt:$Zhiis9~8ӦMcʔ)LSWӉMշcѣGcǎر.B^(`O8VZĉ`0P(d(Ǐ_ X<A@RRP*|>BNX^/ZD-p@iool6SUUEWWp8Rdll ͆ h4RRRˣٳgV)**.J˹Xd 111t:!&&p8,&f_,`|8NF#<ݻ ÄaN'D\._=R IJJ" }lmlܸm۶100@vv6h4Jll,ccc(oyP`0N D7k.{90b4Q$$$}49`AALJBG8APv 7Th`E bu+}}}Nww7>{E"P(! h$99̙ôijdff"ؼy3?}VN)p8prQFVxWxkkiiǓKuu5f۶mbXp8b +//5\VvƏOjj*CCCFرcW^y%{O}Z)++̙3H$X@}c- TTTo2gRSSټy3vÁr 3m4222(..&//6fΜI8F";p9`6IOOgddg}nA=~^/E0vM}}=3f -- \.gƌ2Xl6:Ď;PTdddfvPA1&++'r饗T* R`@ /aʕioo=r,H ӂ n###T4 Ǐ'99 W2|_ 8z(ׯg׮] b-H$."/^… CTD) zKK H$f3ZVR{wTzn3qD\.imڵ<$''STTDYY\rɿe_x(O=VR~c}8 a*++yg8t6 Nrr2/D"cikkaB2n8es1NJvv6bdZٷo^\.vKwyznV~ӧO~_Ʉh$ {nñcNjR VXEf„ FUIIIXhV矒K$Jtuuq!JJJرc<@QQ뮻2(qgzlšVᡇ:;;;)//SsLJB*brqV+III۷M6a6ONF̙3Yz5K,h4VH]iӦQRRBnn4"++ ׋CV3ydBZ|BT*[nj4 lٲH(" }-z`3wܯ+ x^4 *4~?O<7o&%%N#<՗Q.+ aZH$hZv;Dӱ}vz{{zOΪUXp!e_{w-ZDRRyyy& RIMM zu֑ ;v젦A4 K,_?%z N%H% F555<$$$Vٲe oj9z(*!PAoo/:}}}B!@"\7Hzz)4Ƨ /ݻ⮻!.28|0w`QъJR|A"}vr9'OF >|\F~x(j`E35k0<"'xW>}:2uTDJ{{;))) o'>>s1b ~pw0q cbb7?./òB!~iQuO{^>LKK YYYL&IMM3O>$]]]\.7//O,YRIcc#HR zqq 7j*t4ęƍ1ͼdff2~x,Xjv344dڴi8pzrrrhmmA, CCCA SN嬳bʕjn p  *QdzzeDVV*"JĠhTzOg4h0dee}n?#`AjjjhlldԩPT{q%qƑG]]f*++uVOtL:+W䴬gA|Iy駙2e dr%bJvɁ( , 3fSRRyw*L F#@b"às[oE_3\t;&huttL&ٰa nTzhmi!S4aj񐙙IZZ}NYkǎYtFR455qP(̤7xNGAAtuuJoo"Mw9sDS(^L&K.1uTsgc08x _|1:~Y0mELOM7Qx_~97o/>cBB8cQ 0j6#_yASP/'^#%%Tg P2gΜSQ<5Z%\ƍ0aǏjnQs2oFGG)((`ԩu]g mٸ;q:ر~,X@GG}}} ~8ģ۷S__mFOOD֮]+>|R  *hPW߻!7ī"`X 55UX| ;]*QKhZ:::!..NffK J%^L' (/qxq0~,ɒh5D?TP z=qqq\.T*bllRMŋYlr뭷t:gΜ9#`Zl6q000-dbѢE<|w"(cbbD z nhFRq]]8ٽ{7 , 99^T*nxYQ8FJ%Z~|>fXz!bccYt^P{seΜ9x<1ƃ>rssinn{ Srsw~d',Άf 06j%lp Es3G%QaakۑJ477c6=znZ[[20;6Ơ*C! 3ܢ Z8N MMM] &pgRB0Vn NUUիWe3k,)**GܹBٳ?qFǗ^vÇEB!8pSm܈hDB%l2!=t呟W\ALL ###($Ap\H$?iFU @Tel ۔)ZSí@b8LLWe^0HXX pJR@'p`pq4|XJbQ(0hZ:]G\\111DD},p"GMaR)@@~}ד[o1k,~Ezfʛ6mɏU8fttuVZ|vX$JSQAM'DEuE0{ 7JllXt̑#G1Kٳ.1Xlgۿv'|uZ-}UUhRAbIDAT98pzjҾ>.ILD3m?Z)%(qb6iiiDc$ILLd|Eb|ŲenNGL ;wCV{5 |>cc v3pOJ"W#Ɖ tc?zVGଳPWV\ϿEFÑ#G? [/t|twwMزe ꫯ.MW|>DMXv؊~W_}3wne ;gd#Xq W]y%QxFξj6hk)**nݻq,_I# ʂw3Յ_l (rdYYdt$t2p:2qؽ!//¿%'G1A`?:Nu\9Z+ĭ@~R[[3<#T333麟rrrXnb``@|d2?7xgTTWWCʭwGQZs^j5 W^J%)))`٘0a߽rϸ-=͆tBYY- n:(^k1̝KByy$; "֥Me%Պhdʔ)7(^NXL脢L U7D;N.,g^/^v=ʣ>Yg\.G(Z_sq, @iӦQWW~_~jP~x9p{jr)YH\xN/oGx\̝Ν;P+n\@~>„ bl.|ǃjeHRz{{#8H5g^/1:\IBB$S* 473܌)&FZ$\Q^p9r9Bֆ.gddVJJJNY#2g)Blb¡C(OptQ'e>Dˆ D9s"jo|-:;)9ū|3d}e_QQ륵E]-܂㡽ZMKK 999TWWs aʔ)KTWW|E85OEEk֬an:;;3fpM7aXj^q?DJ >JL1lڄY*%Cla{edfvfώD&;"yfwwwSu PGG>h2E\--ʨFCll($KT*pryD)FI\;E+Y/bE\!~ +222 ==yw+?nWg|yʤI>}:'O1rssٶm--ܾukD"g6R™=v4&]^/GQMHM7䥗H<|ϝI5599\h?EŀB pD @00[ZP=a`qM~WLqӃL|sVzd_ŊWn7]]]\bXDZSSSV`0 B444p?Vl.qÇٽ{7o6vv;̟? &0k,|8Xa%%ETmmdf./ۋfRvV*JƼy8RHC!0@ǚ5/(!#5ly!uqu >R)xPE.0oYS}I~tħۻUUkJ% -hZq>lt׏*xt:nF<GeÆ hZB8m۶1aqWٳgGWWaQq)d޽ڵ N]] ƍ%dSTTf@ ymCCK8# 792n(3J%vb,v@WT㨫CvbLju"\z5qqq`0BmBÉ B'Q󓒤a1dfص ԩBt(є!oo; ++C-e^JH0db bΓŠ_ :;;tsM7-QkZ1 SUUEll, 0LT*9x\>ec W]u#!!L& br110rq-b!8w.]ɣr9'cZX,HA(Jbf ##l6TGx(*)!IB7i̚'ky}J Ge޼y@ & %|P*H$tjhmUpY1AZZQbY5hKKI}1BK2t<)s`Oֲ}eitl3߶ L͆|d P;u*MMr ->:7--$Pr476FLTSCΝH] .`U(ؾ};s̉4J D⫨EB*\əh҂+//z N..pI [n׿t:O/=Y+z?0;wD,X7,qх"66SӟR(**b׮]RpݨjrrrIOO]|T*% a4;w.bjxn /o^[A9l63G#),,D*|XlTZZDn dT*P3G&Q(x_ϟOXBԓ&# $=>477T*屢zgYv-fW_?9. ݄B!j5`EJ̮]Dbww7.2V\)bbbHNNl6!r=Q 9sxG5kz 멯G;zA lf OF=}:)Zb.BN>A-!hpNNOJ"Y7_g#TDOJJKr?~x| fGb`0R7.*BX yYNlzinn&??ceU/#ܶm/2ƍW^aӦMjJ%d2RSSimme֭ֆnSTTDZZj***d7A999g3f3111a25رctL KL$g܈i|<)))Lq;w8ȹMMd,^ rjGm8 ](ǍfJ$bbbNKJÒ `x^`NQ3"V1>b#٫\j52kkX,̘1'(ʾhKg|ttt_=Pmnn'\r%rvɆ ɡZڈcƌd2188А{7Bd21~x<ǏGrrrJ\1oy^/J%˖Qp+"fCP`0(((?FL25װ'71._D"ABR䢋8r(."$Tºuس 3 xn}=lr9 fNr\Cĸ.ʢAlllLdɣT'XJyHg'V5։kj$&&Cna…|O O*~?H$>B  66V@ je̙w}$''l2ˊ+ػw/AJ8NOJ"''FGGٻw/ w^vA[[(1cVK.wTMMME.˖-[X,$''륻V+kwCO&F#P yyyx^#(d2rN읨jZ,$&&ۋ\.OUJ( Z--;vD=CCx<q"4 fvcRd_"-- ^NCC)//'&&F 577`V+!De"ڜNBج|O>i'o >N_h0zVFL&bl2 ?6kiii@dh[ N8ǃ'''B!Ndya۶m7!== /KI q:0}P%}iџ;}3e tFll ~SUN Fw୷sϥD8o֭[͖$ ̛7/(]SEg2'z"s-Ioo/*׿`0|,qL&###L4!qzJEEEׯg~9PNA'/?V7G9~n7ӦM;!#Z*hjjd2.:={./--%K" Kek>8866KydGSRLuu5mmmW`EB޽ÁhdΜ9┺O2ƨrq9( jE]ĵ^Kyyzj|>ٸq#?8#P9N ꫔STTwAGG*,&Mĝwɓ+9_í`EBl6jkkTTTϞ rشi/&!!Dmm-wqiHNNfÆ WtǧOe~SRRؾ}; zBdĐ㡡w*DQ9QUG4 h(6@">Y)``ႚ ͐C &38nWú ̏s}9==X,200 +++y`#z{{,}FFFp]7e ZE(z6Mlf{{[8$ f]suNٻR@ m4M.//;6j`mmsIRq677En DQ*Y.}3 ut] 2==*?U*gonnmcE.FRr\XX_{&եmhIENDB`gmic-1.5.7.1/zart/images/Logo_200.png0000600000175000017500000006463212216303500017251 0ustar dtschumpdtschumpPNG  IHDR0ۖsRGB pHYs  tIME 2tEXtCommentCreated with GIMPW IDATxyt[YeYűq9!qFBI e 22\˅2r)\(B[Rf &!uǎcYVdْ,ɲ`'(ﵼ;>{?$J)/ĤSoMlʦ7eS6eS)ܔ}5сh4:&z luuuԄZjI& Q('餠` =$Sew^ 77 /Ŝ9sH$ddd Jٻw/Hp8lfXVL&yyySoবRT*%raN'6cǎD(..FT2{lf̘A[[YYYD" HRL&V"sgLS!唹nvIWWR@ @kk+CCC~r9j$---DQvRDVOee%UUUh4tuuсjh4RXXL&CR>)}5fþ}hmmeppD"#L&hHR8RD\.@RPPT*Eѐa4)..l6SYY9!L_M麟v6 J0P("1::J,=W8^l999QRR"JTra:;;h4]Bt,_|Øp_MX,۷Fcc#vH$L&R)>OE%1gK7dPՓBimm^2;Fuu5o6MS6/mٲۍbN @*T*H$B!pX% `kRZZV*18F%IT**5kP^^_OVV֭#;;x hhhFz=MMMtuuD`f6%wd"h(..IF}}=7nDL ?K&H$hnn+322B8FPPSS3MlٲILoo/]]]\.Hx<DXq]r%z1 ̜9G}bZ-'DxQTl'H1[ZZh4a Blذٌ&LNT80|q޽[ |"d2~x<>XxXZt).JR !,Z|>ZD"A4sϊ[0$?KR^z)&2d27x#v&S6>w}\.N;40uuu[orH&B!bHD"A,;7hSOEXt)X,6n܈N=T bPSSCee%>Of$<#رߏT*ad0  hړפL&Z}~ 1,[||>UUUSD> l߾NǢEX|9;vW^! 9X<' 9:k׮+^` ^zzz8sD6Q*EpBFGG|L&x7yٿs{<R'DZl:::Ya8T~bޥR)_f 6l`ɒ%266L&CO{{;ӧO'#H V 477jTWWZ߿Lƚ5kg֬Y q뭷J@ՊuhZ^/&`0C&T*b`0J( 9Bnn'9Lv;۶m`…ddd 7:)D۷ՅRcccR)R)X38׳`z=:NAA:H$B  Lb4vc6Q*⬘餪X,Ƌ/H2$// oj s饗L&9SB~z@ @~~>B!z{{)..&''x~]v0grssYj֭Kw68N֭[9x ^WTTH$P9M̉ L&1$I~?V1f̘A,Cp8Ħ&֯_f^/7|3<z\~kO{  iiiaP(pҸL&'[olw444@VEE\n)LNPRT<䓼yX(O~֮]+( h4 SZZ:2x< q8z~?ۍL&C.u]GVV`0ȼyhkkh4… y(//fǩLFyy9:ӉdEEOϥ3LƮ][۹袋~O=o&ҥKٸq#2}c{9N'TJܡ]͛7#pݢJBfFQTarssQ(4442z{CSSz477S]]-N\;_.Z }}} ڳfb…jf3* / 0cccVxH$"~CTP(hkkSUUT*%xhmmG?8ZTTDAA˖-nkBmݺJHRb1qnlÆ |gΜ9dee p8d2Db^^DRfCPF1 Fp:l۶ TJww738Jba̙d2v܉` ??łf4 vlw*PYY)`###bSp"@TT*IRbWuufJRZ-w b8[ZZhxdWLLC̴w馛7qgdʫ}q߿{t:k_x>Qog=|dłnE@ @ `0NVV_Jdd2B`t:4LSG8F.366s=Ǿ}&=Fv}q)L!8M8GϋLD:NHR\xlذaR'ZcD/ֆD"appOt*˩&??J%[n8!h7n$9]+GQz{{)--e֬YN1􈽗iϖ.\sIc:_3'{O;pرcdggDӟn'vEꫯ+ 9DaHZ~?xP*Hg̞=%K`2D h4ʲe8| _YhFQabD+,,X,f /=Z3gr5p 7|-B/=_((w !~_k.R)n^B^{-W\qH{wA5L{P(ıc]:IV+bbneddP(P*zfϞͥ^ʕ+EObT DYbŤxEa,]TT3NkO;_ LF8|ڊNFUVq׳f͚M43V.JOk]A~yf . N\.GӡjſKR)vQ* 288Hss3{9)SP(~e˖q90wiCqwRw?H&af̘JfDAӉJ%B0dΝhZZ-pX~Z[FCii)wu\p1%1<꫔Vijjvӟs=|==.KQ@ D"addv:r9M6y U"+ 䢋.֬Y#/6K Xxz˖-̜9Rn{!**~߰hѢ%ؾGTd^z%:::w駟.NH@+ @Ex҅t7E8v<rssłW_- |Z/СCv+SO=f@ s=G*7'L`gz-V`PlJ#-ݛrJnf/^`,ȑ#ٳ:R?ϨgӦM]]]l߾ܹsQ*nQ8=c t{\r%x<z~***HRF֯_W0mzh_F}(((JMM O=spb1DUa@OOXq0z?a޼ylܸK.ӧnU*7xI&2<c\.,X 2o<./_w-6|>v;Z^vH$cǎT*|tvvn{2>t9|Jo~T>lB}}=o&֭###bUUU[nLFqq1> 0prR^^.zV%//o|}Tv}QV+[n%3k,1L,XAFXv:&n:V6nᆏm6 ,Y_TUUMډu(w|t:1T*ǡ ,p|>᫺~g6ַXPYɼyPՓe -GFFQff(z+\hTHcf&Px2Ii23p(Yhģ&%P?#g:===.T*%77ZvIKK ̞=TyꩧFw3g2|.\3ymo6T?M6Q\\o-ݻw/UUUztb1Qմr뭷pdffr 7pw "Z[[%@u ^F#H` 0[(xqZė<:i^ߞ=wp;'ܻ^wil={6arrrPT:t:;;gŊ̝;~h4,^N^UUg+s-x^T* 4#_uU(Jn̙3hZf͚D"aa֬YCKK nB\x'sv3ψmZ^x!X,I)//l6sm}>Jww7*xuq7~:,JJJhmmoghhHss3z^TWQ IDATZ\r%XVvOBJy饗jBORhu #ClB 55/ B{;j:LA-oyݿ ؆<F d]ޑ#B04,sӇqbJd˂ N/^ݯˊ $b/`FFXڴi\~d??p\(JxR)g}6ׯgpp+V3wk֬!CWWccc( ${aڵAx ¢.bn馿Z'#8:jlR.IXtRG|>EBx.…HC曄ǥg͚%6%+Ns\\NǴi8r29s戋vc2J\ ./M d466ϪUXb[nof֬Yl6T*# tvv(++NGqq17oP*Yn6HMM 2׋륱´ihjjG  h;8RS[#F:hXSYI{W()e``3f`p\ƨii!`@كqQ]L{[c-Fl6sQ~?K.Nus\ά,t:;wd۶mf|A?6<2ϫ(;vrn:."V+ͣ` &6 L8C0k,.~}2v|>ۿ!hQJi@"ٹԒ%DDΝBP!6)MT\ZI͛7c0DНoq!ZMdxDPP( 4T2J"A |9z=spL@VM,v K$ |>@>PHI@,$Hd1qK+Jr9:r,^@@?>sy<N'RWW /@aa(et>KOO]]]\.x ~`0ȪUD"DQJ%---\r%>|G-kuuutttL1o޼O'~[}Uom90s&XIFb1X,v`شIx: @sOLVd2E ؘ(o4 TUUV^#P :f_,nG\ |j =K$|>{^ƀ?~%0 /5T ܪTntw (4]@ihֽ6 IP_3F^ul6XzI7=z ΂ hll󑗗ǜ9sj<Baa!v^z_~yh2袋x0Ǿ $}>|G8ࠐbR)bؽ[ W !녯~RKpN'x^z= B|~FCffE600jH$€X4J_b)*aw7ի &<Ȍ&߸$3S(X ,a}!/^` IF&SO%kz!jev2]@ ]:z؝RЀ# )++T6=\WWoӦM> JxghllGpI GXd .KYPM~~>d;w("T*n;ΧS'R O$\r @0 aFb #!t0ۦO'g@&(/OhfXl6$0ZE;vdQJFVZ%x^N'|nv\.bD^JˁbAƍ.fޯNn2XǃInm6{ 1WU1}NXL&~Hl{z5\sPA"4VVS# F`~?\{\~Zj|ŎDDu/4l6s-bT_WtttTUUQWW'# E>hmmeǎCRq)Ctҿ=ćy?PHJX>Y`F)ںɌc^{M[ VTq1nx(ob1===n Ó^s.̏ Bi N9n >v-"L ɠE(KW "F$d bhn S[+XP]N: Hh~4z=l  `TJ<6=R8r``N.]%ANfP{p8̑#G8rˌdX,z=x^ ddd`Xd{?f3guOGGZ{\*\dӦ! IΘ|@ɸnm(o܀fH@(++cƍTUUrFRI?TTT}x\:;l 5Qhk#UYj%e0 q8o$<\DK% im xQ2e28E'M&[UTr5ACCʰ67Sr5Bp0WTӧattD"WK%0> ] vh4ʻヒ/;G Xr3e2mmm׿&//窭{W_}gRCfP_/IWn.18:ʓK3f ղh"f/^':D}4J}$Bwת6l  r}곲СCL6}zjn-jׯgۖ-n  כ+p F_CnGTJ1N0nE 73mn.ʡ!^J1& J$R$FQSBI ٤ƉdO[I\$$b&2, ?!]RfttNGkk+opjv>3p{r뮻[c0D"e~GP/ME2228y)--:f҄~;d$.s75AQXAIZ,rR)J%YYYv.6QP0߱1$&_ix^o3<Ýw 70ZVbrHC+0_,BVl}8BpBF|{xad2LR)230CFÓgI8vYr׋b4O \jjĜ2iғɟFF9}:"r ed=ÇYv-V+ҁ32R)3g'K}}}mmm477O?-%I&`0:tÇz'W\ɯ~lÔg~|>]]]tww>I?3K{@ @8:].08ޕQ8ޕ110>vꩧR]]͊+\N9E(+z4RiFF@@i0o|ݎT*ZM[[2 BA{{;@S !oJoPb+ qC!YiPVųZ-rF#o#xp gu`x Շ6YbUUUx>Gy9;я?C¬Yl,FQ:Onhh`ܹ8Ntg`;ֆodyx(ӑ-!NCӉaJl6:1nDI\M/PiapXNfstB<#LT*Zbbr>KdQv }%722"Jys=ttt`Xx< t:q,$=ɠh8f̘A"`0淋]vMz j{lNj%^qU,0ˊu M%c|A rss9yP(sZ$uupPq#uuXg}UVH$dggEK#8n=h\%pni)XLZMNN:NT* Bj2336mtrXy !6T`}>둘LdO/[ZѣfeeEX,իŦfJ5IkSfܹlٲP(|륩 j% RXX(/$v\ܹsٽ{9u]mb8yގ,}vѳk?UD~6l0,^'IHVhs!QނK:_4ʹuu@z뭷PTj;'mq[Eq\#oj5;Qh4̞=+V` =T~OL&ŒK" Hyo".GT|>f3ґMCHnVzD"AII F.غH$HR( kg\l/999slh/[otR:::0 Ν;ltvvb'^gRc;gs^#QlbKD* `4O*E3.b zzz8묳p\ 3w.^/r¢ܸQX@,Y噙rtHss3+WoI0r q̈F!;ʙ3vDRT=!p(RIGGGfw`CAX!}ѨZC8j6S6}:hNQANNEEE "pzSF E 20q`0 _W_(CRKuu5ׯg??$݊$}s}EբT*hT.gp`zm۷_~pn&I6U>M/,ݸa]+W"KhkN.a~DmWs,yu:(m2I ΝI*N9#|kVߥz4,F#f ;vH!(%-^J\lz=OVV6q]1FhTz&D! %mY%%ՅNSRR"֏م{yzbΖ-['u**VUUHǃnJII UUUDCCr}?lQ IDATPɓ:uh4JooR I %{n.&j<n&DmA%ըAe6hi G$0A Z[q&'8i2a)+c̝;skFr_zSv<αd8)o |#GDcI'%O#^>ω(ߏdBR ޹6ټy38Nzzzկ~E<g„ n^/H&fvaJKKtt:w˦Mhjj`„ Y>)/r߾}+455O{{, &B{$ TI1q鿶6HxiFa )JJ,#*;v uغĖ-xkjk>LMzLIի;MexxX+.bbvfQV% HۺHfX* t nk1Iun 岀 Z-ʩS lFBl63a„Km5p%t4VZEQQX3gjb d2qQǩQh43uO~ߊz`WWBJ顸Áo&qM("1&z-Era tV Їe.,~ 9 NEHH";E(ŠnI96?;Z9L?; :Daq1;vC @\rRܟx\zo٫ IתEz6'1feOIKK#==] }ښW<ʢ{{wP(RDh4J?v"z-!ؿ?wy'7o楗^1c T{9mON^%ʕ+EMg޼ydggn:*%(iJY +F'$o񓟈0~);wℴjj8+ś,>OQ2zHbI%wz=^q:444^?o#z%KA S)ܳ9 T2Ru!9sV+F`%o{8BբKN c2W_ ~FKKhYl|FéSgZŬ={0gz!tO&Qzz$Py<**$й\⪩9 t޴}Tsq?&@]XHN, Dz/yĜ'Rr&GC8fܹB,Vx"A(>׹Ix\{'^O,C.,x"!y26l ๹g͓Ei)&!FEmtӪ^qm_`׮]a~ 52T*4iNL(244{=۶m{Xp%* ^y~188H4vsiwͣ| 8멫rH$O#gI$"u"lH[Ǐ~|>FaeR*lFKP^a@WU%e mmgc}>PHpY1<̀͡C6Z(*H0yS^cyy@_RIooЍt]N'DvIeZ^RݳUrjgu+?&12^^Q{~_/V`0;#n' q8Bd2 i…(JvIii)PzF9$y<V^֭[ /p Y`J`0H<g``3gb8|0*+@$\.&˔/\(-޶6?ޱz 9f3eR+OF66Jɗ`L&2O78+I| p=Pq4?`0ȶmۨUDH4z֛\R:zOR^G!2ГMR 0q3!q2YQ3M<Xw̅+ piiiYf}}}lڴ|B \sss BH6MJJJ8q"CCCM];?755ºuRlZe0F 9sxX,ȈlHm۶RV $%==!I 2@'~7*+>*fA ]]R<zEA ػw/^^vG"J>g"!\CKd^*2}rB3gPtU*WK_ OIQ@s4Jχ$wDDR\x2۲Sx'X, si~PUU%(7Y,(l6l6h" \hrGTt:뮻꫙5k`;B!af3_)//'// ߇^׋>2łN#---[0 lL"ѫzz$O&C'O¾}(NB!nfjNIֿJR`@΄SQi4:rLBMu5 vf׋A% I gCP, 7s1tر[oUh4J^l6 (р3PS`T*|>y /&hR!RM(!z8 PfgfɫA uG@T/w|+L8`0HCCz+EEEVX!T*ˣF># @Tߏh_dƍώ&rUWqz),,DAAuuun u1㗦M館ݻwSTTğP=Gn^G x(F?-a ǃRDף7C<gF]4FT*`ut6 S:?zB!`t:YYRH{ŌD9gkxL"`hhsg͚ų_TkI"B*+Qݤ%=j詬2GFȈz~?9pW]u|>l":GJGkk+D`0bj7"_QQAww%?fͥfn(8p2f͚%^YYIAAmmm~\q:t:V& w.]$.e5) l^A }n0D('' ,z(X|FFF@Tb$SgOJFeq1xYeee\.A:}Zh)`|`6[ZZll6f̘'$H$oVj9pᰘV$}G֮EDnA6NPܹ7VLXx񘬡|ȗX,F8{zz8y$ 2\.tnfɕJR)M&u: pz^$"+Ě5kBuV-ZĊ+"rD"zrssEc}0dsAEQUUEww7ׯ'= ~"\h4XfYHzZ t:,Zn|>{vv^]\%+o}I:ap4A ZA/74K?Cz:äSau5 &RhPh4Yu:FI&ŸPFnڴiڵ\>5;Laۍw{7~;Yē3ӧxHD^  onfFMzC=jN0'tM8qB V*tRNjgPr4ZeeeBvVE(_G~|Mb4 F#Z_ 0Gy4@͌Y0e72ԩSm\⥞z"Wdf$3+J2T*Lj Gi)~^v;|##/ТE4& j4 c2vvO$++tz=PNGţQ$̘5bOѐ3i  HjYB)S"{nl6CCC޽[}_kAPt:y, QTT$.K C^'j2oeFh8z(h4K)͟痢RIzic28q"iii|>Z-YV+n7]]]N8A~4"~>^Wj5~V+IURd1"Hގ$DcLjbzzS@w"fbR7&==R5Cp\ RWW':j5%%%*3>n>={6˗SUUţ>*{ f̘EQ> `hkkFaa!fYx`0Hyy9^Oww7B1:9swAuuXOf ٺH$B8FT2sLp:ctlVVX0r89.jt:`JEGGo9"l=s)*JjjjhOeff1co2||FF( 5K˲jZv;d̙|_ecfB }ɒ%3zjkk9|0d2" ɓٵk(kdee6FxgRrvPV3k,m+{''' &022"d "6M۶m*[~\"c4bڴi蒝S>wQa۩cǎR8sfJbddD<_{d)S0k,d/{/ú__0ݻX,ڵkXQPH$"հ aڵTUU `˅b#tRv-&TVV v Z-{:"Tq8cEl|K_bժU"Q᜼D" p ŎH$DF6??s璝=ƻ]>u^N.ԄAǤIc0'PYYIee%=Vd2|'Ch4nnN:E(뮣r@7^,KSS P(DWWeeeBv3i$&L#RVV&:{D" /@0)(&gf89NZ-EEEDQҥK>}:Knn..K̙#x]b C~?yhjP(VjhF#\"'wjrssL&N2"csrbCO'N$;;[Ȅ :ȋ5SZZJ]]*J|z>ZW eDFF̚5H$2{SM7?NH!N:;;477o} gð-9oLn(xY禋%->qҋ-0CzJ~|R¥\+JӤ^{M(#\(@3nߜA6p8L QYYɑ#GlbV7H("F(⭷M gfٲe|,k|ZISMn:Z[[˗cZZV1BFt>tR<vfp{wE9M멪;w}7)x) ~X,?wc<\3x<zeYn8/ڗ{v;7grŘ\KgpO?4###nF##''gܡJ8)Njp\n2?v_0xwLj$j[=иՙR83o ={p1{)**$y:+r +f F#=OE[;v0<f̘ǜՌF#f,X/RѣGimm%;;RWW'z6y }~3hj9*f %c>~(>O(j԰o>n6V 'G4ٻaT**&l6 wq/RYǔ}^`Μ9l۶ ǢE.ؼ^/. ZMii)JA~?ռ<yR]]-D{>mn^Rܑ#Gj0a<ThT|>Njǒ%KJ l6G?bҥf,eW4vI]]< 444`Ih_V& RZZ:hYYYL>ŋ㏧ǔnFmm-ddd&KTqٳGtL: /s禀? ԩSٰa7x#o&/_rc //~ 19TTJ%%̞=o/~)pL4!cʹiXf {媫:5T*LO?իǼj%//kZV\)KNt)ϟ磸Z͊+??1}ti(k"YGydBSLfҥ)+jLFOΙ3g罹Vapp.{9JKK),,}v1eXTTTdnR`KY p ICt:hkkc޼yBz|dr}vV^-䌣h$33iӦqSWWGqqq h)K"< ,^dș3gr7c2p8Z ]HYRerB-r?ӧ %Ჲ26m]w],R^uuuF]lٲ;wrH$v1Q$ugRpjxLzzSOJuuuTWWsUWFRS* @qFZZ,R~Jw^:::D".\xP3e)K2v/RYYIIIIJ6-e)5yױX,̟?g,O`{e„ ~[SW5e)kNopKYRvaS.AR\R[ IENDB`gmic-1.5.7.1/zart/images/camera.png0000600000175000017500000000366612216303500017220 0ustar dtschumpdtschumpPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<HIDATxb?@bb`@pЀ; X@q*Ï?~JJRRY<-Ą\MzAPHE-?`)*%R.W081X^>P^Q^<`nnpEI IhA%@&&Vav (>Te`9{>8{p3ܽsXd=>P^X "!$99~/OT"@gx1۟ų?`jj. Ii'0'WxQQOٳ{RP H(|"!! ,EV/O:66V۷o&Ԑ@5rr7(8a 5 :N Hh`eeFk`AFF  !,D+z@iQ ԁݻ w<VR4  Z1*lU0r THJ*ȑ ϟ?\0t@z201Xepk biR@y +*JT1+#)jC0q?%ϞFA[[_%?gX Ϡhh$RRzvrռܲfV"@*(Po!=%R~~!P3hŐd3~k|i@1B-IK(F*@1t c@pNƙ2IENDB`gmic-1.5.7.1/zart/images/zoom-fit-best.png0000600000175000017500000000251612216303500020460 0ustar dtschumpdtschumpPNG  IHDR szzsBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<IDATXŗOlG3 4%jRDơ.pq .\@HDjTvHqƉlٱcxwMЄ~Hݷ潙oRDgXVJYB)I)Mm{UJBlRض6;' EpX(9d#pRU gљmakkgW\ܵkDb9,߹sg E. h@q {yՃNju]ׯ|>}Νӧ3O5Hd#= 0/^8{l{4UgΜmÇ>vȓ'ORGi;TB8/֕{zƍѨ˗/@x x@`irdddJcV Ν;h׮]s~~~ȭ˗绺 Rhll4Jك!  ݻwر>%bs[+_ srr2e&555Fz|>o |>O&>Dj)0ƒkP---uH$DU X7փ^iu]wZg*T({o+w[MiNFBлҥK?~|RX,]SS㪯B,BJD… x P-Auj^WӴ-P(700wd*RG?yX,TF%^"p^q^ۭ-//Lfy!MMMRʼy@R.Jil6lR%FGGs:t!Lfpl fuc@%d0\wvv6&ɥDL%-R/7Eb0\joo麾 RJR@]!NR/^Hn E!PJM&RvٶpS(L(NRJa/w-Y;P%Q(vtVJ>#-peeY !Ngp8!emʲ,²,e6eR 4Rf '>ͿNρߕRiQ:zB 0(D(-mLIENDB`gmic-1.5.7.1/zart/images/LogoGreyc.png0000600000175000017500000002432712216303500017657 0ustar dtschumpdtschumpPNG  IHDR8EsRGBbKGD pHYs  tIME :@L IDATx}i\WuZܪ[-uKVklI<x SB^xNBs|@!$`lYlIe[j%]U~{Kr8?xݪu}Y{hf8}^ 0e0 5 RS\rz~mn bdvYO/5 0Uk 9HL$0PPa(҄'$'?؞#ˮ=kƂ 0/;78F !6"@ /خs[*dK2a2q߀PX6 \;-=/<SjnF0 IK4 uGfr|g{zywhwѝ=VRuR @j3o\ә7 HH&/lہͻw jD`;j[|e"sOofl i!b&?̃JJI(c8!U}Q̲X`ڱ׾B+્ӥkA a,_-@<{=}aIC:ZbDLc6%I=} ;9~B`XLx-^:|d3<=6ÿsfeg30\uN!wT"J= &^,"QCSm33=F@9~b#5-EFb lܽ=, ‹;3f9$(y-{= &0jN$Q7kUs/^w}#f> 13%̬<0qf$x -PB(#J,yf;߽uQ{&3#$.B*YLU_}e&RJbT%ҷ9뚿#`(e,'b3Ga%Ng_+!q3#,x5'}ϦP.}p}#)\ы^{G=G13`  U"""{5;xͶ113j(FtUŌfDbxsn;_s<m 6,jhmښsuW\P4EL=T P-g׭xEd \Cc k+[fFH<DGr 3_ \j $]BUk@A>O LIQ !wҘTcIpƕ:y@ ϘZL,Q 8&j6sĐ*&e+W KՃ.yy)!d@OFŋ <hl%f::щ8.KjpvY]zq;~bcDKF+,kQ"OK@X9%" '\f g\L#7!@ QQAF&Q5h*q /aX% hsYlΜ5Ɔ \y穔LVk{w( &CLԹΦ3gmݯO7~K/=b۟{gn?7RPoOSˮZ߶h:;53E %S$qf8UiX*Joep2T6ɔ&t [ |F PSS06I)Eg35Y%?iRRhyHIf@Ig0ӘFjG 8 t1-XLWMQ̛6seׂ u`d|?o=3w%;~CC1+4SxS+O4ͻh~߳hzd\M랞({ZS0$Kh־M}䲿pɃ1ndl+t0_سFG #LJ^Oi]KSMMMˬiWz'o~4gjت߸ی/+Zg7߱~)Қ2IH`ZLJőCo ;]6U%&p KP [R!:2V2(xqbќ- ML f8wC/Mb(!Uʖtukl8àb4x'Ž*^7A|WvCm l6_c^* ȑ}[v=z; -KYrfH(ѫ]"bJ @2?zx뮍?~lȁ;n7,HiܮkιJL !%7Y׵Okh7|=_}?~b Um2~x,Vز]?'л?Cn˺seXqT.m?'eҝ+<{yH' tM& I$ZQ>cF!T-#~6_ڷcrA)Jl޶5-]bKB' .?cig9xK]FKpϜuKdOQ2l;z,{ÚΖ0FVaqgu]/`O۽k 4 _}պ &+f>! I6[u_Oǣ=mg~@B[f\׿ =Rx ?EpF׀I 35Hìi5M91?{EW˯Z5gvnݿotd#F(I5:S.#Q޾nfT-Qr4%vݿş=s FD, iw`6G^wM->!2" Ya A}អc||C:&.j sV_dž?{Ш4A&r;E-x#& #ڿ|˴V狷[^F0ٽqϿt䢥|bG\ѕpB)ÁJd@U  ;}{ǥVA]! PQ'淼xÿu_xǒ+|\(3"bj"޾I7J(0n/XN5B 6ccE8w!|vٺ1S 7hsET?9qI D's5HzOY |}&kܫnP۶=||d)o $d޺[zz4^ HX]ECqQ M(G[̋3\-hISGkżPmjWbL=d=6 @<hMCfnqT"<p$8\;>2ߘ϶ԥ+Մ>peGG b//ALbDSY̦)OPW^V?G 4z}ܱ-ywms- d%M1##=l(̏ zl[_?N(R.ofb*1Uh! ɂ),jfO#TSg`f&>J|u,4QU'k%"N"L) L]glXy\vg~owϸlU0B/yŃFz|"#hԣQ!݃&m'IR-Zc?]1I?^(x\(NjV@@5hC2(jno]0mټl@~X,/|lׁv۸g8I"hR%`mO~۹/ZQEWsbN+6^u׃'@HB!H+j2VpͨB.7rrP#dܦx"\~gVPSC[]*ODIE DJ!"JV ceiL[ *cU<сٳf̛:%e+`r孷?OxQ;yB \ $-d|x~~ϜWDJSeɛR=&>H^,%=1aJVf? 2Q뼶*fڷ7H'ޔ85u3[2PYk?r gz[~qgj߿|c5ȩFTTTa-QS-$5 0ofSfZ,3Rü1yhYiz {%h};@Q` DD8їbJ.{.`F,J-;bDPfJJc i~ {dW]u29!N]Z 2hX%&'duw5@()IGgA:) tN͗|i(ԖH2A=cĴy3ϟjLWb:kTg%7]3F2?ekr.8dl`HrmݗxNDD^ED)T*cK[r.cЊǟTP f P-D!,W헜u9<,&Y7Ldfa7I`yr'yWt7>E$k=.+)G|*2hd>*\SG™“n|hl0%|+\ Utg}.e3Θs-q J:d<ĩOA(e̓:RIဧ0HPr씖Jh2gܝ ej\UNq9eDBWw°`ʗ4 "djj^wX*-MʣzѢT= לwA =)DqtÇ{?7Kmp|Oę|w^YP1PUVȂj3,H-XN)G lMRdeDQY"\%tHߐբ(0g1 CcY18Waއw(:8?"S]̜AP犃zyw&kƥؗ).1@a>0M!4x?0 Rcx@v@ F3{BHB b.W?sь~t9m{һ@'ժ05jd+RMǁI'Lԣq s%Doȿ%7SIA~i="I `HWu (nA)njT)4 ׎g̝U `f& +MTzXdL0,Qj%jʄLXӬ[Ls:whpBO]er=)֘tk!| OE⩁IiR:LBЗΞp0<,J06PLpԬ,Br!8p8R|5g̝6sO$O@;U(AD䲹Ζ.xݲO,ezH\0i :Դ(QBƇG1t8$v_V9CzcP5vu^5))e x6*~ FA`*T3 LP'}_!i}I6 JjSa*YL,xx(NpЀhnhh[tM=Ztb[|{eU]s.X~FI_1P7um=\wNKt [s# j^ƏXeB'X/ ~u3BIpU硱X F8SKάa50gYR >EaѠL I0:>?\M.'L; Z(U5XP@Js],l^ҍU,T:wƬ5]ݫui}YLKIDATMbZKgmV=_\ $& A@[x ciE@ QsU9*1]BdE(p0Zڿ8tι}F 5:W^3%G,G 9 6h$ZcWAF&J/?78]$B^eIn$wCG4dQOe5ⱲDȢ~օ3fqV笕]涥HQ st1+> #_{KcgK&- bggu߳Ĵcl&qJ?M2i %|IX'4Q6SB'NKi$ȠR2L06Q/18h4w6*Фp"{Ο~"Z5 =PO ]G6h$r / EygXٵb^벎sYɒ`;Q_\a/|lY+[:59GLlP>n٥:?yδΜAɉD [ۄIDjFi=w}.d!#boQ,:#4dN5MU(j)*)GcΚym]ٺ'Ȍ)Ǐ=t`]pa]}|H}Z8yB2[9"'$68^cΖ(U{D%|:C(|x0zjMe)F5:+69\θ( bZV'n LfnfCP+՛;:طDRLFX 8ug̹=4zAơ18KԔĐGoǿ 1vFTFJor Qan\A;~NHG/;8=.]DbYҙI̪7Ysk-T@SJZ˟rRSB:twlӏG{3rdXT'LL0i5N}7kIIйiLCkS.3Ć1Qy[ --|T岙Ǝ aS{yHK5}TnjWƎxVO:O@Od}{{嗮Ç=w_GiB33Lad[_t{.]qQNar俿hrXG7*}"nF#p`ZWh\}UToڑ_5.5AhP* ǵT$|Y!omz= >4X+Fi,u8XÃc(47 Jʼn#*V{cI[cfȩ( X[TـO8I 1P ˥XIDfnP .#Q]>wHKĭ=O:J@NDdk6+f.mi^`= `8AN}2&iI&_k;|ROSaVsԙdѕ|z5Μ8`1es_N=t6PJof6,lZ9gvU(TIz>%L|cFOC[w{g:kL_4Ӌj˛yK^Ok=„(A5tӶs%w6Zܤ  KU5aPضvO_~ꮵ]MkZgRDTr*ekϟ UmcGKu:]@ViˡVy?Ou֠Nq&2Ul7pTI,1,:gNk]浻/]AhQIENDB`gmic-1.5.7.1/zart/images/application-exit.png0000600000175000017500000000277212216303500021237 0ustar dtschumpdtschumpPNG  IHDR szzsBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<wIDATXŗߋ]?kj:LCf4BRCoN,TkLb*|P"SZ$'_҉PJ)ڢ$8f~ַܳ{sϝ!Q؜}={gۉUDK`Cwlo;{jlDm}kOϵ_ٯ%ff}ƱV[fa[&):4s7{ *`f} d #%0CFnu v\m}W  YVa) .6% G8.Ô R)| @%k)<eꍄ"F!HY+H X4PjAR߲B@} sJ=aDOMeGp#^q#_alx^oӝwǀ{aXŰ eϹ'@Nʉ`_9<#s,Ӡ#-QP#Ġc| $ўXqSg<>As1M1j6HeWpsgyШ$L8ӕǐ Ed1d2>x86-xĮg69_^ gwˆ Ah^A0W@m|pi.[xҜEN$=v0R&_ ӟU?N=Ͳ ҫ|vzO$3+ \C0ިu,7!fggV}.@= j$y{79 ϼj=r2,:PEx[BbMgϰБ [Dmf2P2Bٱ)roߔuD!d؀^!q+C]HԒ29-ZMVcܪ˓k}/ؑ?]н;_fkj].ls~Ҥ ܖџ`ܼTNJKwrLl;m`Ŏ{ׇ2gI+cfwV}ցKd˳IENDB`gmic-1.5.7.1/zart/images/LogoGreycImage.png0000600000175000017500000001766512216303500020631 0ustar dtschumpdtschumpPNG  IHDRDKHjsRGB pHYs  tIME)AGIDATx}iŕY{uW*@cu1aTLgh  6 χqY~i(6wfʱf' 1"Pi-ԜB'r?r?39r6x@G߱H->jET !"wpO/2͕Tʔ1P}c]Kgu1#/Ijk|ԙW߳ȟ`eS:dFXƑcҲ- \U4F$Ԭź84<1ڽ-0:33 3BI[Ӿ="!/)uQNm*{ %I,. `) ln~Tnfp1{5g)c=9X6: P0XDT,b%d҇fu!P}qDtqn­#][B;ho/$R4q(fu!6DsgDjwp3HǺ;v7+I7̫u'`^ҾyW+!ϋ֟B 48cOE-.,y[EP~EЙT  M4ul,h.}K>`U4z_Lk9:bu/ fi,q4f)%ԢV}2yoAKKF` ΋Wp8?:AFҁ;z#LTf] MH*@tyE^"&YؑeH' B4`h*jP]{[޹$iD\Ol{9rv7ϟ? XJ(i@m~ ʯuܡ!Îͻ#Յun\)N螀HD0.mǧj I]$%U3ǖR%T;WDsuX"'HR1g-"5A%"374МRS~hBLcLq)upOQl`89o|Or#Cs)T?RBe:w\b甦Âso[\zy'BY*yI%J1Bu%c "̿{[+%4 sTToGr. MV8X,pgit=~}pHkb4qt~'\JT@D/>dۧ@.rWܳnٝkL xkca~Y}?#`ΥcKp_=[Lcs+TD4vÞG^oQB*E@# @d"cݰpON"RdCg"50ǘ.^ow;S^f+<]TkjkCo9) ˿wd ,m޲XD4Մ@XG%%7cϖ);ݹÏo|xWR)2)L aj HA~]7zUSWik3TRI)ͻn@{e)eh(`;?yCs3!&mƸ/ *s"fR2m "Dbx 0Smc=D+Ju!] 5 *XV2e`!")_'"qtR ]~O ixS5iFMM[aAu>_=t@P#oV9ڑY@Hiש:kjEɍ^_O 0 u}MIҒp̌ĭ 9 oZq  ˇD8no"{笭Yu$~ߟdH(_A@yE+Yg톡 +[u5E K$LX̲&-yk*PWeŭKe%cյ~es9N7o8 )"sβ(D8dY3ϻki&I ŧ ڃe$JU%VZ~:7uLAD Tsm?V[s @㕯?2_w;-2" .ͥ#" tmνzqA[VI F9dMvcO]JH(%,յs3hpöO Keg='; H\t)M%)+A`P|8/-'P _Q6|z tY%KN~+>scJ c}ld\+-LARM 14 ILHRdC^i9æP6CcPO O,5>{90d!"2F@pa+_3v?Z3Edl;Ϸ˥)d z@*[UIr slȄPJeڿhnf(qf?~7bs;(0w88l1'aQ[]#:9;2 wGVaE9ٸ >p$- mƸaO2%&֍W۾x(|/J:z9p kxgъv?]9)-Be8eˤWў,bV-8#|&8/I32sPK9*ȇowL@Kݗ%+;UV 7>پrCak>o@?u7Di~?viڏ\Y~H)֋ ATJTL췲d, vuS;Q_i`k?rm_cnMWmlΥuIΞ:T`Vv$MFo>,SjzȢȃZ&yV] &DdÝg?+[ S mY9HOe+*C}՗onyj{o6Ҡj+TDa<>#I1IlUWָK#cnZZ%j8gty帍1g*DZ(M7~SL*]PlwrRC y{GH2eӞS qJ' 쇌Ef81cHe5UD}R5_h6 Gm۞݉˓S A֧_Xolx.9;-]e$Nk= Ln/ ݴkp ^n"i7W4 @OBeUvWޖm'UJQ%޿pcF _xwɧV < AKCiɴZRJ 8#M)PIdk\XƮ)H;}]Eh{] Fksø%8eA̴ dz\Dl|Dن|dhF=-{X/}K/fS0,UyiW9S-T,AҊڔ~ݺ!tɜwͤ5GzCǶc9$_bR=HS BD\c oZqTCD`\Ygluʔў5SjQo[o6m 7:<5BQbMmڻL8[U)%~Ow_B^SwbZYS穦1 ΑߠN:emS1SY*JJiEvf,DDy f;͹NZw 'l:(S@>us4)i u3L$;юlcN>ؓS TNL`17xVȯ+^r%8599 .(Ȓɕ_QӰݙЬ?ޟi냧k(hhںHr'_~r;^h"ͩ۳ MMWe_v Kߵ&h#ĽwErqz!8"RB)SJΒ~-[ӔR Jrς"")6i-֔5C1 aК"OV38!ƙ4qgc wdAo{1>K 򺺺ۗkr$@k|%9CtwQ E8M$jӜN By6C2+Bީfd"L�4t v֖TB.((Z]^$0??&*K- +$Iy5ECɗ2n0ot t_i sR )*W2RC4xpAi6X r;Ks߽PPcwNkleNrәW}š[8%O"$cf6՗kvi<-΁,D8o;`gF-TBk+Ɇf/I;3XV+}ղҊDܼ PBBq2<{Yߺ?nup~+ϓ_WhԨ12nEzBͽ{ p@Nq^,LZt WSW|@eyL_?o!`?dR׿0KPnӢuh^ d2A8w^Wy̕09Ї7-0 Ɯ5"-i9{ưOL/޲di_:^``<8X(PvLJڕ7X *s}SusYYL? vo;5oEMHta ];[PWT&D^W|(J_ܢlT]GZ% PL" ۴fes! 􇻂DJg/pCCtj q31ܕu{ W'~?7'6 =3 pLQ1s05g cNœ(܄!rTsJH'Ţ~vk5g}wJSh9`MsXx OW ,{.ZK 6LO͐t,-HI bPtoCχWWsƶo2߻~nў<㺥rTY6zH%mTĞH<&,e#ܗz/l -'<ƅri+JRCOS+\YV`y I=-ROs_8U\::pxy?\KJ30n<.M7 cP2lh@V ]RVLguϩGZTfPߕqK):,usƤi0TR7ȘJЙ#-M˫i]w[:>J=uX6BXYUKHq{B^]ʬ(q6,Jr\gͽ"?hRmItZ .Sc>gZT> $%CurC: 3$gw}Wp]_c_8Ruưm`ء\)-k[l gKG*z±ؖ6y$2?$Y`4!ժ =+*ǏcGp;suc/OD ,mEA4 sS<;Mo7j H/H)>ٶsQSDclZ92j_k44 sFymwbty}0qIt WV .-r*4C(jwr=رHX~QU%X;3Ԙ`mmюGQE:.]3b~dhqYX@4!oYUtOS_1V[si]BQ3LUyB1}tBDh+cFĤ?1?`GQ1DRchCFcd gl#"f]E, Qf#S!DF ᩗѬb)4.V^?C}i?ʨIENDB`gmic-1.5.7.1/zart/images/Logo.png0000600000175000017500000022720612216303500016666 0ustar dtschumpdtschumpPNG  IHDR1asRGB pHYs  tIME ftEXtCommentCreated with GIMPW IDATx}P+*+ Td[9Baڦ~%I̱LL.c;suz녔53,Ҟ %{,6DJ*jI@W!(+EveeghD?a_<}^g@@@@@@@A r. ]@@@@@@ ". w{׭['. wD䕕~l6 /p#LT_a6aZVhV֭cKA@KK V/&-\@Ʉa$%% , ;;ɁN i}OlNcPM„/ ]@@@ f34 v塼@x)oXi@y%/=ggKjEyyJ]@M&J'Ot: R4 OM&,Y[V* ]@@UDbAcc"!55yyyT*ݻKu{9m#f|SlFjj*oR. p߁n3Nx_4a100Bv|FF9@RRrX,LWWWڐtz}>Z-kb. p_63Җ*f"M(v;bccp8˗#..6mnRdpRD❝Cww7j5.]ªUHMMeRL ȼ/Ln|Cˀ wυ)7o([d@rr2S066twwc LMMahhnׯ_DDD`ɒ%P*p\BLL vڅ$GO 5K_pJFxRfC__#fp݈Bvv60 9LOOvCP >>P*p8y>Xve7N' BT2wMt:{ rXTJ\0U8-p8j*|'LMM!** +WRB@oo/SXr%bbbVZ'ҝ|ٳgUpt"55q˙@?Zx;AwY8uvvbjj ^|*ZXd n7bbbd3%`TߩٝzzzR<0.. ]@@%oއLǎcɔR95GFF2w݈DDD"## =,, ˖-CZZ?.g@nn@WWZ-donn8p* vl?U 1 Ƣ0F0668:u˜R0>>qn25sƍ xEբJvݻ:Çg!'?s sC3s;ou}‡/p..&v 6p8pI~!Kǃq,YlˡP(RRpi?~]]]xC&vVzz###b$.]qZ޽UUU8z({RׯGXXڠ鐑 466l6!\z-G& vz`v8NXV8Nraff~:Y9_zXb&''Y\ 櫪`4Յf@9>nLr|={AB 0UXYY RTWW3b:y$L&yxw`Xp%\.#&&˖-CRR 3_|]]]N>=/bgbA)\ѣG@UU3ɫjtvvjt Șy0\- ;/bJ-B cDNEOwN%Xo~%vx<affEGEE!"" ATXd Ν;7o5`"omme;`0_]]Jʩm\@@(w X]] Ʉ0Lñcݍ?xى .իv.] Je˖!++ \pΝq]B׳%{]]Z[[!Բ+hoL)ˑ5.U} vr95<ALLL 33NΝbԮ^"IGFF"66ϝN'fffX(s"VrF&U(z,U]ԥۤmbrX;#e}vL&tt"..SSShooǩS0<r)z= "*T4_} VŎ;qSy.UQΟjuRn҇bAii)z!aʕ0ͰlDRR"׍6 v}ށp$_:ǟr5 ^&Q{ohh`ɢA&z9PSS}~~>ˍ9ɋ|wRG@gg'aUS(n%Kχȩ +uB5 qaeeehnn׀oll޽{4^ZNuÔFIy4ͨƮ]}kxWq !..Á!Fr \C%r_|R )w~UGףuKK 4 4 f38~ݻ&Z'dB[[ . `&:dłF@NN `6}jj ccc,Z8\r QQQ!ש"P__7=Hw?zX~?FSSӜ'/o]@@Rkd2AӅDf۷oGii)ۇ'OUUUC{{;V+, ^ ظq#>n3b'u~ʕy[N+H_@}F IiYWW2 x饗`2`4w^$%%jh4B`޽[ vB dE"M <)m6)YwXX<NlF|̥Ed@*Wءvz-!!!uss3ZZZ000rXV:Ϋ;* h4hiia7};'z_؈lٲV;N|'X,r rt:v"tw KkK_R_s"tIa>|AB\I .c d2l{{{;T*:NHNP7@=srr҂lYB'( 4::hKOLLĩS̚ѣvUpʕy)sjyG6&WFѫƻXotmDvv6999,&uIt|]@Ra ycc#100n455dn7q;r 3arrA%BPyWW ZJ9O]ͩb'+v>NVʣkCعs'85550 0^YYԺB W S&###999hhh'|qDEEyP(GDD&&&033`S<***`6M6yyy(//WPif8pl6o`ZY/ł۷#-- hooGll, |A\x˖-ӧaټߊ-%H'(@>`VHH{aa!YSKÇ pQƠj*2Bׅ G?b߹s'^{5uV+{9TTT0B .@L===GSS&''~n7l2( LLL`jj 2\մZ߈PV ĬuRb=S OB_hNt]`>)lٲ%(l%}r#!%΃deXXш]vp`tt GCCñtR<FLL lr ]RGzcdduA.X#)Y_JJEIr)SMxrFhZ,KSwJ㿯*I_ybu= L}Pd}Ϟ=PThooB]PSS#|w)E]Vf媺uW#uCCCG\\j5N'#P(1R\D{<оRީ/*%2%s`O x%)SN=Yx_vkW3?T+4͛7cժUtDZk.`-]:](wEX,0LLSǵ'O⡇BCC>col6+(b \.>}Øĕ+W>j 2+BYN>cE쭭xRF+*'WRT'S:^@׷}v9KM|YRDΒ@o۶ V0_ EEE܄r]ޘfh4F(JtvvḟӉp,[ ׯ_ǵkטBςT'[Qkx~|m`ԽyHS_ݗF*Wg5>w3,~@xJYrʵ5@VkkѿUe>{L1 viܘ@rr2.^W^y---*P(wnd21llF[[ߏÈ\~cccp:p\bEf;uQe&W`y0x_D- 8k} MLz'$$zFr9&|RXlB*P3&W|o@O?Egg'#v.P fsHձL&XeXp8tvvp`jj  Án <<AU>_5gNU<#OZp,,8'G}|ļn*v412N;;1 ցوxGYYh]@(&)hb7LFyy9t:Kakjj» ՊiDDD`rr6 .sN*:})P?E+iR|TS@k"߲2f&Lr]7]PP1 'Bҩzaa!|WUUFuuuhmmR9.Wry(wyew4?^O^7oa IDAT`@__mrX Pd2!??Loll+qbbbX` ΃QQ|`K/+A{F/ũ/&?<9DC/K L'S?{L{\/oѐ|,!==jvxgR7L(//Ȓ)"~\\;C*ok^nG?F#y\.x<,]nn ׯ_&&&0>>.###ظq#^xX,p]~%mo155HOOGkk+w?xOMMbxmOOOzJtww#==}$KOOGee%~a͚5xa4+`xx5ko>T*|M<55O?Çxł2~7Tںu+j5o`6GEG_B/~UkjZj---b LNNbbbSRBCb-*RR4[BU&uWWSR9E2.Uܾ?EO]sR仜EA7 w宗MR.&iQ< >T,j9[JR4*~e}W"u>:^ iPBߗj~fYYY'D~~IP>8srϞ=͛7{=[n{V^INN$''{RSS=͛7{ 722/^xZG{Z-zGKjzi?V|rߟ]/2(wz]Tؼy^yFD]]B&u.|?x p`||)))p166p(J(J<#hnnpn/vw9E(W7WJ͝n>?o𥤃߭O.ޟRRt-h֎^J!46؀@^X~=6 / | D洤M&vڅ۷d2!11}''zJJ Z-r|_B.᤾tޔ*E칹bӭg~s9yrKS<@GG˱/((H/W./޷?_>,Uнc#{VV&&&011{ < zzz/>往φ(J88Ntbll p+WGa|yBq{?9O7}Dk[}}}PTK/P$/R~Gd}+6{o/f|UךpXl}Y #))I}Q@%o i[ZZpynٲӟ+7d9'NN엸t,N8ysrrPZZ^\xno֬Y5kxovE,++Jo/__yt~SSSsOy555R=91b߰aXRR&(;vy!YФP (]jN"a6ݍxLNNp 997nDoo//} p9JnK՟?G*P^u*ŀ`?c|P{S|}{z7onAXXT*E'~{ |`0XuA1RAcc#ZZZpAXVt˗)))Zxen5P[ʥnQ=uN.g^'s/Rc%Z-sYF-| >Xl@A`||SSSt~RA9:;;EΪsi)~Il6( ɓLɫj&&&`0==L}[^%k!6zć'f92zt2V]/Xh4\~. 7%%%B >ۅHq n~F>򽽽NHMMŦMΝCVV/_H}ǎ08}OR@?%f-ʔEy===(**F&qV5$ "c*/_zJ:-Љ@߇_YYYW")) iii޽{CGVbdrΩۚ/ld¦M`ۑF1˸tl6LMMAV_=w>P"4MD dddIIIaap8T*vs/c̗؉*y2yS<鄗R Պ$!//O(49>AΥfvA}}}Zrt}jbrrJP(0::˗4y]襯O!}yNNٳJ%:'}E\4 D6l$<233#|ơ WFyyyhoo dqD.q[Rꡪ0)h'o|M"m۶AP ..:`uF+ڝ^'j=XkY iTh-A,= 2Sz~;V}֭ĪUUt_4KOx:::Ve*Gze-nѣGa0X^ O###| cB jݺu]& <@NVQ*A^^ORߥjZNߎQx|)Q_Bܹl-L@^^p'Ty@N0PoՐn^s:\:q񗐐*d#PmTnncPPt;m:`0 ??8~8&''<?NyW셪o)^XXB$$$I3x2 سgmۆm۶abb)))(**BFFP^^{yt:dggU)x"|>沿Vox:db'.,,dĞ ؓ.\8~%v&]B R)`0@Rnvdff⥗^¾}d#ƊrRA|gB*tvvbjj v* 7n\TPk׮HﹴW(FٗZ{nUrĒ, ܃點+Vʕ+Xbz뭠gB @(wt"0!::X|9z-`sNU TiFƈ\xR'FۍF#F#%t****jm6P(ظq#z-v5 >Smzޫ#偷2~UU QVVƔ-2UzyKOMMeOd),,D]]W;&$$x5VX,DEEa||<~_Dւ8  f: ̜J=P;I;I.5B л144B<C|ڵhnnFIIɜk媸[D(\T)gL?w_QU[ةLp+V@LL \..][Pr'uNd2bGSSzzzGGGa6vZ/b!)P!M`#oYY]WUUqTܟB͛7cÆ jxqFzF֢v{JJ >SرC1 ]o']?D4 n'G}u/ݏzSTwL744ǒ%K^W/8<^ԋ{!|Էt^qQ'-$jRBAVV"## RDt[*s!-- GΝ;qܹ9Ηp`[89??KLqBky7,=Q[[ Nw5E70܅r~˄hpHNNFtt4'dy=QG0UW Ƚ!_NI 11ξʈZ tطoW&5Kd>UפAnR+̍xUȣAiBqARA#''ǫíX)hr'* r7 }](Jl6lܸrrrRӟԯʅ墙InqKrr2j5rrr088Ȋ-緋w܉_׬ ?ABtRw1!EˍxI}yf8LOO#,, W^ҥKjzA]JrXXkGee%/<f<  ~ӟ2&5ÇG=.4?h4g~tKk 6`۶mx衇j*K/CU M.]£>gz;/"3>GQ4WҥΏ/.%v`6`0`]r6EEEXt)޾żNG[[s=ollDCCJ%pI:tR@II*>RrQ xdxr'bү111Z{Ə k4f<8~5Vj TR|n{05.'''ؿ?`ӦMHJJZpr߬Po,/PQYYO>$166]va׮]JBmmT1N.]* DDUUUѣGߜW湹j-EK R-[ ?|PbommK칹^dI@5>dYEQTWDkk+ՀT:N6l@jj*n7T*JJJԄr455!66Yo}[DsssP ,~P܅rS]]( #'':rߏ9R=r(|ޔJ 'WLNv>R{rԎs͚5PHMMYx^[[ӧ#ߵ``r+$ s[iP눈@FFP\\'}DJJ rrr裏x| b>0/cǎ^$n6Ld~ ܝXUN7`0`hhhO>^z {ŋ/JV_Hr9&i̩DFꏎ3L!'_49XߺVFa]q!TTTW>ΔǪUߏGs=77kEeB*@ #Nj.Υrʞd\:(S"==099 ZUVj)j߿n999XukjY?8B+W199>kիqe"%%زe_R`4Ͽ/߻wHMXT zzz'|fQjEEEhkkCOO:j$%%[wN+E,/]'+t_U)?Kg?~J?˵ݳB4&( zV;W}/,,dlwFaa!8Wx!j^y4Crr2N'@T.]Fš166H9s 6mB__ַ/u͚5^ * m0 Ξ={WF||<Μ9={3QVV0lݺϟguRngϞźu Ee[Vc4L ,<CѝY>XYd21\yy9S& ===*a6aZV6"lSkԖrj_y3{nnnhooGbb"|I ;;KoHII Nכ?,*rOyˎܱҚbՈe{1)Rb x0<<x)~333'N 11L;9}}}P(V@jʕ^ǣNzj8qCFFJ%֮]9鑑x?<<&a"| Y74G#_aaasyWNwrDoo/233HT8ipX,aXiz=KgVtPy NW<#%=I߰a2331::A<!}W\˗/{q%5]o,*b9onB"55cccDrr2233 Aii)+ꔒW\ƅ?rxSGdP 3>kun.kt!g7]]iܸt;nXկt>^u|{û ^CٳX~?NKhI]yngr#-}QJI$_}Ulݺ1 =ɃPiFwIlڴ+d2axx+'RK?j/t c$V|}E*ȜT կ~fz!{!??st%I{, 2Ï'sMU'==> ׿@NNrO=sN>lg`/]Y9~m"kZ_֛FXF/">3屇txx8"##{۷mL&:tfuV|WŋaXGLL &''qFtwwڵk:d!+fd-=IIIRC"=fyC2Ohkk*I& QϜ%N)S+r IDATRn Z ͆)$7j*w] QISO|@B,$''ܹsx衇XRss3V+vh^>;t*Hwܽ{V- G}o7f .wc O`OE^ub۶mhmm?? ,, ሊRt<  dghggI,&e__+T*100x477#++ .\@NN[f9r6l@JJ \>؍pLOOqI$&&zqzz:ׯu.&]A^w9{ eB&"0/ru.Ub'Ru._OG6BEEN'p%@VСC$CO=,*XHջ󞔨ju/ZdHܹpؼysP0ͳ>}]%jެ7>r%$Z-L]]A#@W_SO=H[ш {xPZZr444gΜAVVKyf]8vX~=._=t̙3Ctt4V\k׮aHHH`0?116 IIID`x,F]D)/L{ͫ}+OFEj)ZĀ+,,dftr]yˀUo0ľyf6MJJŽ;#f& xᇑ;Ƥx|)@yeo055ފHH]`XjqTTTҥKXv-{xS}xx8""" rJKA¤c_**pORx<%wˑ g[rci^xRV62$ل~XX6l؀6fhb- BSiN<f}Jtz'#-%_ʋ7޶ml6P(-H?30sIV.h4ΩZ(U|>R.7 صZ-^ ǃ|>mJ ;POOS<0uu7MA"##V ??FGGG#,, >z;T;=Ol쭯Ykۆ2 xٙ쳿mznLML{aɒ%IJe˼N133#k_cVFii)j5jkk"f3;ǯNRhllNc9|Y(B{z/NJUZ{U~۶mضmL455 bc牝}!Ori̇NލFWw^Y4QZy'[n(T*i^>/^fի6<* KD%Y>|m?|>1[nŪU8s 1>>I֪'??hgcg- wrW}@|!T K]EGgAlذ]]]?OO+WbŊ@DD$wǃW_}%D&v_J~81qա@ DDDرcHKKCvv6z{{/} p\acfQ.1s[dBii)rrr)u%P}UL&jjjP]]͂T1I=Z Le jQ{Ν;8 v?9` O:n扝*Ki:G?!]Nߊb߼y3t:g6߇lFoolש)B1=lIRڡ.هq0 {###x"x|Gشi^uB@xx8Ewf3܌gʥ`+M'۾gJOLL 6l'puDEEazzn333}1ۢ)0矿cirAvdh4())aJ\j*H})tTΧQɩy_عs'FGGVi&{^+W/K/ŮdS >w>MT\")RJqZ^x^~6m^D~?Oo 77qjš۩us].7?7ֆ<ĠO?4VZazzK,a)pv`ֿSOO]͸`zzx \t EEEGgg'q|Gزe $_mې}all 999؃xX!vRڠRoviv9EN5~9M#h"a0kZ߿W^EQQt:ݜNU'NҥKq]MÓ?.]_P \zzvYF±c0=={^]ZN>-̷$׮]xtb6(Lf[[g-@q55Q :1[n͚5x .`ttSSSaYXd &bh4WSlZenp,UB'H/ZCL>dddJ|P+W2 E/[l=:M+BNK'KbĠ|A M&g~c*'B:S]>q\FQRRcҥ Sas|wH 6/N'f9r===x?٨x~n$<9JU\FY_w]DEE _l6 l6mۆ8f鉊mU?o{uu5Q[[rB@i]yy9:;;ֆ~6,h42NۉԉF#NRVV6֭[:NC{p㬸؋?Ch4l߾}=(++CUU1ӽݽ{7|DPO~wU_طn݊n]ܤf[-Q1(N NI4>_S| G1::}kx뭷wzu/?VEEEiD5FTeeκ2rEG7&:8vΞ= Rg"!!x0>> \.LLLԩSpl|U;$i?>_"SM|rCYY8r帑^P0~[U7/ LlACᣏ>† P(P(K"##[lҥKYC5L}EyAjoY}W_MTU͒fM&Iˍ#ߘwӉ/bժU;;v =}]8xSIVϟݗ8Q Y";;gϞE|| o}Mo0Tg488)"hRy|T: $$&l#  RlQR֧օL,VQXZl, D IBvL=?ιO9̄`Պ~:3gΜs>xZ_܍B>}`fϞ͔)S4K~acʕ,[n<z!6lʕ+YxP cMΙ(..vʐe֮g>XuWi~L&l߾  &cx}v]gbufJ}|x!=ainn&**^zzzx'ח@pYE31љbʝv,^~3[)]4Ǡ6 l6~{1}Y~_R__Ozz:o&\s j9k_[EhgihL]fիIKK#77B˝2QnZZoe˖qvZq] 7x#^B_@x\l6EE_.e-y1xW r^/]TKj2ydL&-BE>E-L0%;^~}XX)މl}q4_[/8 00"<<<qss3EEEV-tEF[g Q=}]"UPPng֭a61c迓̓]4oQ+.VRfS]jѬ~W^IZZ:3gΤ^c BOOV'%зc,9^_Ș?>x{{y-Z1K㳏kozH+w{g w*r$dve-yZ:w}81 JTT,Y MO?ӧp (n-.v!1ul ~ qeqA233<Qn#((H~VX\vi&&MY](Y{xx1gxsLYY>f3qk"iV痫Lya8q&LԩS\wuDRR S#y'/H Ӷ ZAA$&&׿UsNXlL&F#fvڰa#++ ә7oF/???aڄxطo|q?d֬Y_s!++zl~_ahlS_z%oSO=鞑-[r0乕ʕ+ퟟOQQ餤eRRRϧjz{{W\Ivvng-f>C>Ѐ}N_konn^&Xjy,99p_χXĉݮWKlj{͘BBhmmehhl67|3VEa2eKwq5\_ dݺutuuQQQAFFknlܸݻwꫯCJJ &Ǐk /P__&d´޹s'<9rD[G}}}IKKLJ6jjjXxn ]bQ!*2-((:N}???bbbA__>>>6118´v%Y())Y#Y%%%̚5zNn+w<55-̑x!\:voG),x[9y$L03fp)͛Gqq1&L. a2[ ,9ڀ?tW&Hj#66M6ƾ}4i:tFn)))<PWW/?.wuV}9_Ң3OBtt4:u @MM ǏWv9IZv;k֬ѣiĉ]f޽W^yŋ'&&}O8A[[$&&:m`qqqTTThf???.rp8Ɖ'Eo cbb  wy'?4V+55҅bmUz |qtNtl6[nAdd$Ol6388M7Ď;odڴiݻ뮻NǏrK^v˱yws ۢ"vޭYN4ݻwS^^Npp0Nsssn֋jb]vߙ7oz+6m ׯ[Vσ~b첺Xo9BXXgϾXڷnʓO>I{{;qvb |´isϜϥ{'b7P"##iii!""^RRR[^^^Z/ow/:t۷dZëzmM&@)܀F#>>>tvvb2$@McLJ`zzzhooٳ###ud2DOO!!!xboiiph I9s&ٳRNX_~WLTPO6\rL^}`W ҈' R&Mu]d" v|}}ѣ?3yd ܷmx*^9Cy @sUlڴe˖5лH'L@JJ Zͭv)Q SL'--Mcs _^sz0uVe3yq<ժ5!1l!} _?^鮨X2#w2޵Ka2x8`eҥ,*86' HIKK|||~, pי:'p>y$8Lkw͋PaSSFPLO8ABBNd2i̻Ls755a6X aܹtvv2yd~ߎ򓟰yfL&GttOSS}}}ɓ'9qG}8{ mC(l /@[0yj@x=ɓ'9s 8hi IDATiaŊ,_FLµ^ˉ'HLL`0pei: hk~o={0o< Zb>q| k?cccy稨d2 \b_HHH`̛֭7 6heoYRy/ȊBw\[eV*;^hC[z0EGtwwafq}\]xh˖z[]m:fbCz~{fWS#44:;;Φ9sh]˗S\\c=]wݥ)fn۶MZZttth턋áDہř3g.0K{uy; 0 ```>L&ZΞ=KOODGGSUUgy Mw Ǒ./'L 226d2퍿?IGGSLӓC@vv6Ǐ`0o}[\veq7e>v99C_V*R>a dȋMbt?XB7|kVGn" J/狵 ` 7kz. ?߸+E}럧K^ٳxhL]L\<꽗sU  ,]%wƜ}Z7 cǴdK}v:::dɒ%lڴҝ`TGvKnyy `rJ > EEEP\\̲e!((jMh„ x{{內'v+R36oLTT)))|L4ZZZHII @DDL4YfyzuB~tQ^;~ZK8;?OYd ,X@__,cuYYYN sz<-]ݕ^4vvߕb^f,+ ))'xj,DnӧOEx_aug\XC$Tk?\uURWWG@@O>$=&M?1~~~F<==XX`]-uV ػw/jk N$ffVem*EvySF5[$UsSCit}T5>1$|r7?UGaҹ N~Yta 5o;z!Daj9Ɵ Ѩg1 ?~iӦ144{Ғ99E*.~h˛(X<;CbbVk*D 5Påx^~eKVX~ˆ>"[]fgg;w2X˟#k[VԿoX~IsBZ[[ cS05VƮg2t)5EE;FoH)]4YyW[,%_m8p@&MD?1~;Əς 򢦦Nxı|ii)SL&22){=,,?XcAAA1=ʙ3g0444.TT,hAusE3UUpZꕡE8Kq"rB, 6O׺8eIJ -ō20ы"Rq4Pj w@*{fgx~lyy+16f@X(ٸ[!Z}n 9:`(nTI`ڵDDD+B{{Ve ٳgS__OSSr UUU\{rN-/ "%>>~[+2E#S^b_>YGy_dggڪe`peJts׽k+҉cr=''ժyΗ87|NѣG;w o6:;;ꢧ nV_(kMIN;?>-kUUBbc %%a4iӦՅn{+F)N #`lڴݻw: KU, $صrNrj%b.EɨfcMuW5-Uyy#}ץܯz,Ȃ_@%xV]YF=c7(fs=PDVXNbH}Bթok2~x<<<ꫩw%22,\YY'Or>ϛ{\L Yv\ȉ'x~ʂ˲ƗgM0*nyjj`.݋][w}E7k]h `lXj=/p TTTf͚^Qwy/0Yyytyxg4P!z.zKl# 6SSk+]]]QWWnc6O.굋5Gt[~g4wP}*X@}boU=Ru  YY @;oBLbؾ~=[[Z݁v}хMɝ;G C R0MX4`.ME?Bb?EnYYffbn͋s7OZT IM 52da`~>v)s!'SNC||<{/+VfCOOqw_ĸD5k`^کRLF ƍgqvܝùte.3tW]}W]<>ֱ|rMlذAiiy,%% krBx)59ZUBNQ_{TeƇ'Mtt4CCC2c >Xh_=̘1ILjv{ xBСCDFFK]]zYSSCgg'ݼG%Y-Ne2d$,w7(>V+Ъ"bFɺטX`EU!S\@v6wVEP 1 W jؔ $ɞbP(LyJyHv9l}{=/BհhMd}뫰_vM6F\\3RrK㋿2h]1ܳt]N k.-&.X+7+P/~rwBncxݻ+ ڻ+?AH ;?Y݂!K (+ݥkIMMtc6ioogpp~O?6SNXCCC$''k.RYU oV4}n/9*FH"4 B°…l?l#nm8 p #+~Q,ȅ'3 :99#׊_\Lx`Vy+{帾7!(ʍb~+ރd֫UW]EQQ^{- jEi7H(Ȁ'JW K_x%IHHॗ^bʕ{.PM}ҥf'U]5ya,(sR[[KFFWYYYؙmHMhOQNm9]?1~>|0SKeY;wj-64ϘAOO$$$Kyy9DFFa4j===),,$!!ݻwȉ'XlF.{뭷t/n׺DhW:`lL#FSt.Az}`U!U vMgUQd/8g9ƮBmD<2MZιg 444QQQPZZɓ 5AidE1w/kx+0W\ɦMXd 3gΤxMK^nzi|y.w&>>}-Sқ ܮ8//OŰZdggAɈ+ xǕݴVW'\&#qU}[,ddd[OMo< o67NʟJʞS#6+ RS񃃴Ggg'ǎ* a֬YkC+PPP@||U cNybzP!VYYkv Vrm6E0\~ijvjłhȑ#AAAO\\ ٩l_t_e8֭[TMn;%@jsssYz5&L`۶m,^-c?0w.٣1v_(;Dm",,ۉhmUjG'3}Tw?b޼ys{;`+v⭅=rʜ\6E ۛptCCC扉s)<<<ؿ?iii466jn?𘯷}dYcغZwl6c6Ѫܱy=Kk4Gb{3rO969z>Z>ПhTƗD>@:_ņAVTnϏSYYW_fc̙ Ãa߁pY_b/gY呗ǒ%K2e Wq }#99fϞ{zz:۶ms "qvuˌ^[rc9o.'O`ѢE_i`c =l]`1KkbX0 [OOOعs'Wt Tbص ffR`.lZXm62,_,YY pBj* @ٳvwՅCkk+gΜ^{{/466I~?L^^ޘbBjj*RHGV]B(%Cd>jXEa@0~xz{{'""f'%%.^}1_Saʊs4FFr=(Il ~ees |9k^<ؐ^V&QF]n),X%U\u FdM}% ✬VgYhdĉlذ~G}Iɤ%u+?kL]w~,%`ꁺ`셅۷[jꫯb0vc \Xv:'''G[☙y'yg/aq8z$*иL|u<ٻw/iiio}:rss9;gGQbM[(6RW,b:/OuTI@&`V8ZZZ̙3 SXX?O^|badeeiakb6EhGTs,R`j| C r`"7!3s$t~@1-r , `޿kClqu؋Zn~0cecnB<sG-ߪ t "ju ׮uv;vp1%..3g0}t>̉'hnnfppnTN2B.E;ܹsyٱcS,+vgڭ :swoKMMؾlv\}WhI\Ҵw/iˣն#rR\\UW]oi⭷ޢ0Acꂁg3HIU4E7U^Ȑ/cF^j *jA[w/VS >O;sgnfFȧ$d/Bf@vpVsWî1v׭ 3^^UN6``ѢEZmOOZdbڴijB6W!T_ԅ_QQV.==v3H_ww\y1{t?]ss޽tvv2~xNe;7jW__3f`%SN^㭷ޢDvLlRA:fcz@ *Z,mh Mvȹck1ן#$ì, ZkX,N9#zCt Jsrr*SWyks) rL]e*>GfywR@P-%W,Z[_PUheBx"2|!ٱ,vl9^f&w)k}GGNΈ"cq1L4JBCCINN& Vf͚E\\7nd2JTocd`/^pONN&''7rsqI'S6:]96غ;.ekl]SWW$dr o{XX؋g;7~Pq1W]{{SQQy?s w!حVe/1\ժEꀳ(mHGs A$}WAynG !%qk>Mo(J_w^d9>,cwv2/ l3 ewXǭV2,SSY>>e/:._FF+أ=,mƍddd?;v8MHre,wUfb[lfQ\\oBKzzz.Z`׀~d[}]`Efd6naZ?{ZZZhmmAHH\q,R]eM"nZIFiqwV @Nf&X>IZHĩƂCsd͜sJ1.\RwUi  k'g}u5ө]M- j7 =fe[*FBf(ZD]~sPG g,{+8_@ Cҥ5pU ѫ"}„ cX|VZŞ={Ph`$~uR- չyn& ),,tc[;.i׫Թc yۅ˩c ŪU ,,#c]fsz*YfsBTM@*P}qۛՔhhhחH,+m"#U:B=8m@}R4\3R.σ^Q@L IDAT$9}C}Hh+:Sds>M ?v[.#}URr4џbHHHJ20ItfKkT餄UkiB`bmS l օUƼ.ƍlݺ+O>ŋSWWGoo/ǎ'? ۶m;`ݍRe%`Ve파 rssyGxGv9Hf:t}{ffSvwuw jBkǏOvv6GGb4.2@-t1O E5XwArv`cOO1477@UU!!!:uUVj*ƏsM#ˋlhq 'DٳUPr,֊i#>w@nЁzC@f)..fΝN r?7OQAOT$zYqlQUn7Z]@^@խl&'3\@5Vg,QaYiN5f$ No|R 7-V?Cc PN`.ϗ!X\s-ٔ^@OMy}[@CC'O.xxxAPPV=ᠧGӕw՝b&0;^;SV+6ǺLjl]f\:&NȚ5kȁ.'mojjϏ}D`c#y[uhC$퇺%&Sy{sh$((OOOF#&L`ܸqju":::c*,xW},RܳOEwT{ˌ\0Q"KQr(/bOq1ol4~ {l6,~5/FzkolTg'Ofpp___Ù;w.eeeh:CIHH^ppU~>fcmgn կ馛ҥKٴiUx믿^shL?窫R<<<>}:ǎW_eҥTVVj5큁øqlfhh 1Q2Kzw`"y; 77;3'Od[ˎ?fh .ԄCCeKI.|EEV>NHQIj oZW--*@]]H)*>>$$$ٳ3ge׿u裏_| Μ9C #I ֨( rv0ZҤk#D1w٬{KK5=M7xO>Dk̙3iiin?oˋJ|}}ٱcs=_2~;PYYǎcԩxyyeٱc| }kzGA$]bboYnyW2vŐ^;!`#˥2wh.:w|RRYYYlڴv3^r% J>O?Z`tno)3buQCĴC N]qg;;  />bf1|dLTȈxI{51G"j؝*%sJ+Y}NVf7%#!bC2vc41 DEEpF#v;iс` ''Z=_Α#Ghkka6m䓞Tƚػ'|Byy9UUUZxqʕl޼ol޼{o jkk0a6LtwwMgg'@?HUUf޽{3gcڴiF<<<ӎyg_p;5|__?OyOk=2!W[9qI οk㥦:%]HҜXWX;s]{NN%%%f1@,;^zMܶ"s%ѪHu65@ pˋ` >>> \I@pWCƖ.n6> v]PC*+d 7MY$i-\ܪU~A0nvifozT2V<.^   44 pBz-ZZZ0L966cǎiJ3gç#!}_wi˅nzf͚<@hh(턇S^^NRR555ߏhdĉrSWWGZZ#GB\\ xxxP[[ewww̤Ihhh`deeOJhh(wu'Og?&by7 {n'\CCY|9ٵk9]_쎵Ukf uWݷ2xyپ}؇Yd aaaPZM,jUF,Xl#RBL}Oԍ.E,&8#$P K!Y܁Ns]X'V+]qNE{^^&ˤggff~z:? p[`竩PeZg3q_Vc111`8>}:۶m ^^^DEEߏ`ԩS9~8rJ{9 ^N0x#JJJ0LMEE<k׮9siӦ1|ٳg9u111L6Mj߄<<<&<<Nmm-W^y%>>>r BBBQL…2WSAb$PKTCTmx݈dxxɄ`ܸqGoo/L[[\oo/$$$PYYIDDfY|9>}T}]}*++ill$==[?]]H^B2zt]VխP:;;iooghh8q"mmmtuu1yd Z;Fss3ӦMӧc03fghooӧ燯/۷ɓ's]wc0###s4>?D bʕˬX 682qwcWӗм<'~?OQQѨ9#:::uo15EI}98oVgTne-閏iRSjeןNXyF%D$ O9]-/j+V+sn%Qn?~###d2i=g͚ũS 88&8y$hc6iiil6sItwwۋhԶDGGc47#^w`~>Ʈؕօ+!88 BBBp8Itt4p l۶orhjj`00}tJKKi߽_>>>,^~ -Kv_w9.ϭ[˲e((P&8/~ OSNCFF[l!%%i+7nHLL~|o///fjeժU 9շ_bBlhh(qA^|E^|Eh`,c+W$&&_[HڵzzHOO'??_GoP[6,_RR~]7x*y}=1nK lmh 0o3W䗩@Tc*J>X\'2w\¨fڵN =??jC# j֬YCVV%%%B)5uv]1='22ƍ$FEajhְs-h MMMK\<-qJ}]vQTTDIIg)aa׬!l`K/)Vu**`z**hnh C7 A=IIl,~=""~%?00@\\G?PƏOkk+Zgĉq5o}믿t|}}1LȎ;8rǏ LJ3gb28{,L#iޱO*OaD\t-;+B%LV+X8dgg;%(Qw咗,^?Ы&'t,bafsR'cڵKmC^^FqӠ%.OєlhX8Yl}sU`YgebLAHHk1>x'Ϗ^, ˗/'? >(>(k׮cŊ,YS)..fÆ OÔRSS'|Bii)1~!ٳgPmA/u"N߯]P(ޫ*h$00___|}} #!![nDF#555|駴c0h4@tt4ABB^^^x{{s<==ӓ Ã/1)xj#swӟ~W+g5baJXXE 2Rs5o /|-cz.(zT| B} 2[&9+3F֖*xu,{a\jeqYdAX>2 33(Ź+펵ˏpNh*qeg*>:Iؗ6,JqC{k*m^k^_Zmbck+WbaP H$D2=L~y0o,:>^D^{67n@%3' 99"E1@j%?;[;UsSG$Eo?o87Z~A_@],?DbV:=",rĪ%yA͕ϟ!:DGG 6PBBB8}4W\qqqqL:f͚EXXv!V#Hy<>%Baaa+((H U bEDVz^u1oee>|ƎKWWAAAttt0m4 a„ 9gyrUhd㼀W_}5իWsWocW?v%s$׮:Pmu\{lڴI*}G~~>c$$$qF tH40 MU^I!wU[4/0@biଗ=нlf>/xs/x}X:#Gѭ[6mr) ^{-Geʔ)\}DFF(U*U 8* 3EA~\.q:ŪUxG_^"1WUUX g:Ny"##=z4& &Edd$'$$p .@[uPeG>ܿ! od^n&Ŏ HKK U_KJJu0b:"}'| XF{18v---9r?F"mW$EˣK(*xY@"ox \z_*v gСCx7).l޲n &!! &44 uk\+w4MH EϺC}B:22`~{h;~8ַdqM;w7 y M؅d?mƌ3h]SB/pлx^H3\#77`zq_@SZZvEll,3gd۶mHS /7U?KawUS\Z73+J H q #:EVޗ=i@oYK@Tn>ZUzZ)Jzb1`C&Nkk+ p 477K/o(+App<~xԮb{|rrUUU:u (ɢ<55KQѮv1*9wqȐ!* 'm/'G$hllhCT׉k>`/֭[G]][n~ zWtIIɀmUK5.BEV+V|=??|m뉍e֭XV1c~^7Fo"]|Uvlv{o?v^wAA wii>[v64"'k-^R,.Z.]642'Ǜ۩Ze1^V<ͩUת*"""{xIJJѧ*_N:hool6xH W .LÇ fĉIOaÆƾ}HNN $H!c> "~2j~n͙8q,^UW]EKK qqqCd㢱v,_\.rٿ?OVZ@1y[_E!`z?m!bhXkc`466zC{Egg'}Fbԩ]6>z_}&8N8~)EHT+[@O%.Tn~nn.[K#"~Pi׈_ɐ-ReeTh R{HQ# %%hۍ"26ǃO?v3b=*ݿ*ރ *8ػ0}#$_UFTVVEUU7eRS#%cn72 .Zx|2yQl(}"C;_P8Ow쀌 , p!n*$J-DhhOu 2W԰~zV+կ(,,dƌ0v/WM@ԅΖdVZc=Ov r۷;wuV`0pM7vڀ..כKԋwO]O&_ɩ9`o*ud:fWk]YhzR\sr 'YޛZ!X 9sViϹk.Ǝǩ~U\N<7c Ҥ9m}ؚͽ 6M8777|'Ot:7naaa@jf0E4`^YY)WTTPWW˹d͚5,ZP|߸q_/7W& %%%2w.`MTËq.GUVS c9rQFQ__ORR?0 K2_̩HY#xb ? U$lIjsm\駥 /Иvb:ɚ!4y EM2AbggS̙P̟?zFOO,/G0ޛB8s3U}]}fNݿ˗/V7q\FTT_sWlqP3vRQ%"\ϼȷ ap _(\Vo٨d̟?)S;}] \1z=Ыb!##C`".f((( ##ç=g+V/ wɟgjjj={6}v,] Aqq]>!(f2tg*S凮2!UXn$w `U*f{B:JzX ^&yLv*%O). M^mq=,,~?xBWW'N񐘘ȉ'+())Q=O> %%^@y@[Rzt) Z[[#11Q;Ї_*KII+)) ÁhMRVַ]WQv{x7 )N'd2Ԅl51?*s:`ׄvZL&q D}N/_yuN}NH-@:קduuu2sN:;;eOh$**V6o|ȟHcc.L{WsmVڅVTѷ'EVz*( w4۲YA]w~>O.P}ȳ۩I"99СCq:\}դp rqm+dʧ>ϻjs #9-C= 77y ~G~~>~1y„ l6׿rIl-p*)œIД c6mĕW^IYYW^w>( O</ `0H]y_*A a$WTTǫʘ1c8}4wq/[\\Cֳ%;˓-iii0L+W=l6EEE1j(;{Ν;`0H͛7v~=''GJ{uo@BP HE] \u+.⾌>#!~nebk>Ck]2>oK\BF}_$Ώ4 fB4着*n7qqq={*\.Wܻ>'`p`0j%\F_SAAAkaaaFssW{zz|~ϟ9&X p*S7Bk_NSS>}H}}=Æ F2w1/"q; :ׯ+++yWYd dff/ݱcGU큶YYY0v=V7BAzz Ixj^Ws/娫c<Ô˨Q͛-]jnn.2!]ՅZh+#szA;vx/;vxb^JxD(RNֿ.ЦoO-n^;5.Ggճ>srX mln7uuu4773|^xYHj#v>Э}.\pݘfeXd2#(_5pЄ(|Dѣ~ŝ7n=?c.---=z;ǪV ,Q#g?$==u1j(}?I=cVeCk \vAvv(f ]*,X\6mٳg%Fjjj`. BɎuU&-vu_aR}X|TXT-˴X{_Fyq18BBBhjj򪿕N5 'O2|pj,N=>E>/WG302r!~---ǻ}5s=s' 3f r V(N']w/|}qq9P[mUO\Mש}Dj8|}}F\ !yϋZ U~)Q/U_$wMoWU|sTX'JZ\˟4vB2O.XZ/g~[Ջ]zzz:iiiJJJ0͔aZ}[eY\y,駟ؼy3۷ojq[e`}.Jjz"}h?F]]>";7W1pUZinYY\x~> dZ,l\W쇾ZUSsnyV@|UѸnN>l̙3x<9ᠩIx ^QQlp0wVyPVƛo)H_R'NHZ9 ӡ~+nommc6ꪫx׽ wߕn[dcY\OY¿[fnak999|}q.(**b׮]477SSSCDD̡\lbա;T^oWێϗlsWڱPaR´FѾ%Pݫ䦜۲?>sX ud IDATlo`v`ĉr-q8~y7x<ۼGJՊ/a߿ >S˙={6GkcŊJغn:ĿۿaX(y@MMsF</v$%%$kƍGgg''N'2m4 tb/څ9̒%K蠶VW{qq1ʡWLܺ0z`@qZ+**$K_d ׯ3SNF&o~N`l]!f9b\ HOO@;.G.fz9}U]e<*M4n'bk.r)Zx5%' B]CWݵ0>%%Iʠ ]xb?igd ,&Yn7---n>sZ"""CsOO'NTqjX2wuaZ"##eÏWٶm&M"22{ 8R! ?-{L<_LLL 'O} R.555 6M@#nz 2ч/A)SP^^kŋ}X@|ؿ9 vɜjbK/tAF:DrYN88oTWWx(..汏>i`KeJij3gƳ>K[[ӧOEInxҜ{PP. FAA=/;;{&4u!":q.]ʼE`466bܸq0m47ox<^QQ)Si}UL>^ZZʺu8}4s̡]v{ o;\ 9jƍeY ]_pv.6Ex߶mO?46msRSSݻ9t~!v&رc+oEDD?b&^T>JWZEm[ۥhUyAj2bW,v</\8xC,hDV~ퟪ5(ҡƷlm%>>:n7n'|g}FOO]]]y0rH  ׵p[9 !y>ѣGS__OTT_i]#;.,X@OX<?ovw[nr"SVxa!I=& Fgg'}۶mNDDF)1,eҤIuVI,^-lC͵l6~arss?~<ǎʘD|>ʽ]|'5W2uq_]ϸq0ydΞ=+nORRK.܋/Ȉ#/ ?lk"L~!JymS[[K]]&33=X… 1a2hkk#66e˖I@B:G ^?555q1Y'ݫ? @ 1_f|y Ej F刜zNǀ c7uT8z('N$88NTTǏgtvvrwe+qj2cΜ9nsݺu|ttt`4IHH`ܸqxu/\X8[l!998 ߁0(egĉ&$SRR8r]]]넄*%YYY|\iq xb0wޏ?&""-[hٳgS]]ͬY8u?8#GJ{OO`ժU}qKu5Qi;}] g Khl,LD'$0f8;}{DD===}vƎɓ}/88X Z_on/6| GQQTaϧ ---,_]v{qq1!٪>O6xU@kQnn.;wİaÈk:!K~_zm~uas~ѷ1#۸ܭpcS{u! ]k99hy)s̙DGG3aˉJJss3|9R~h ֠*ƌ@rr2v yyZZZxGx7Yl̜9J?~8 c*@#nz=w/)!K{;O@MM ƍ"##3f ;wd޼yXAJJ D#ނ>-;c܌d̙3ҳ`0t:P˥,af3f£X{/۔,2fV.QZW|`*z 9r0XfPdfH}3fsZ͛dž 5kq8|yyfod_. Į]Xh> $1cj>.Y,F/o_Ꮹ7j,~ ]NTOK/|z+Q45 6f &O>$~)"88rf̘ݻill$""8>Lhh(#GDFF3"((PS \., aaa{ʙjvvr/.^6p g棏>bʔ)tvv2e~&}E<O<>HUUxU{Uޟmn򱱱`0HHHYfqa?u>L4 ~i\?<oMǁ@f25kdt@JN6k^|"^eeԀ~%ۧ[o%,,۷pBy^O. sQ5s Y{JJ >#GB{{; :zۉM&& >p%d2\x`1ak4iooh4b2H`UWܕӏzcgݻw3bFnn.C =,[ 6j*Yfꙻ{e|dd$vvĉTVV2n8Y-T.s[áCXt)k׮%''GGƱipOuu|ƨJHHL|Şo̹e}ʕ⋼$%%w^֬YömۈgWA|rK+/>]>J_uHedd䜫|z7CF^j^͵o\ 1[̓E";୞aWU[e/YS&5SNd>#f3b0$#$$$fFq-})29a(줧H<$&&se)Un羔9wDB{{;sV6ֈƗ?J ii^eDw%^DɴAEg[[",,'϶m۸륌g}FjjlS>cW0mF]]$$$0aN:Ӧw|_^Xo a .UjoZݮW:wihz*mv;5*%"{c8#rɿN㥋Vww7&MӧOĔ)S`0СCUMMM(<M$(>@]M&plfڴi>|ƌCDD7`0Kpp0x,X7w+[/lˆ#hll$--re/^/jdB_~ҤI<׿ӦpK \H_|/=cW+ge#8DQiiic&GaaÓ />dVAş|ʜ{VV>.pZOEoF7lB!pJANj.= $kl. _QxgZ *?ĉtuuΩS9r$F. u]u]ٳIMMkaѢEYG}m6 )..??~СC7o#55FESSηhq,pNNVGPߋfTS_V j.^ͱ V\L̩SaM \.gΜad2ľ}!&&I{{;]\A8.@N(ѣG1̚5N$E]O.[W111`0믳pr2Z,q#u®R]Nj$G=.9rjkk=z4|#G__/)klȿys>/뮻1c6Cb2x'j~.@}r^vТb~.tU__?W??yOb>U>#0 PezZ=n'Xin'xAcv;ǀ9[[zJHr0ܹ4h#F+O>N<ȑ#IJJzf̘AHH1qD9{ іinnP$=z|:%@N4 ٌ!>>6=WݾZMz'ܷGZFfeaLE9s .KF{1BBBϘ:u*{/?<-yꦛ鏹oAg.MFEEK.ٌ;d֬Yҳ\P#jK.={jj_4^-ld{]\ "j()&֗RYYIRR;wdDDDPYYIDD \wun{2o˓mE6Yf^իW@2M_D\UjpUIM [XX؋e2rrr(,,QS^ϰUF,lqKJJΖg[ w=Z'r1&Ws@gd`3YhgS y-':ۙ >^-fk9|LXh&'Or &{nJn?ݻwc0X,3f/^} 7@NNw}=6"@tQY>EtٹpϥL^}(w#l_Q1wvh,`۾orq&}^?h[('{wO+[hW^wW\;CDDbڴi9Ӊ`00zh5j3g.cp8 KPPǏ^ȟ*Ç'66&bcr/ .dϞ= :aÆo>, #F 11'N07mGG _ ^,1gϖbp=,,!CK|| 퇹j.^?J-+4W}B ^mx4`.s99,f_\ׯ'$$2dNѣa4ٹs'---]gyysNq򗿰eΜ9Ù3g?>cݺu[۷}v֭[ǦMӟ#ߪۋEBI \IlS=== : D{WGG---: j)1 v.RSSihh`ܹrab1u]`ȑL8Vx;WvR,}]&O?jjj줮KMUUO+$= Į] -A<@wU_E Ësyϋjvϫ>P?]x Z̅z_E}S^92vG7pd(0x Z`~x۽J5158[Z ɓ's10 :|;TVVR[[Kxx8{/ǏkH F^Dn>**J2~!~zN<ҥK f֭xM44yw aYpݴɓٳg ,G?F5kpWC[nSq,E{6\s 7ofռ,seȐ!<# ;M\(Uz[Wǿ dddB{UVvNCmmm_YTTN0Jե,++KlŊQXXHYYYb`Z*u$b>*;2x~T:bH_cWfggK6/^~bϼ᭮NҘ >h9 htWj6{ۊkab^٤lhh(466 ȑ#s=rJIKKCz{<i_tIbb"ݲg;,,6j9q=;;/+{.ݿJN:drIvN8̙3IJJ"226"""|ڻ~!LGf&L@VVg+)SzsjTͿχfd~ ӧŒ3㏉of~믿WyM)/U~w^x'{シz̝;0bbb>йb[nZ-[sM7KiI #{ '32i9q.cĉ{\s59r}{4440g\.5N- ܿF zj&N(WHHHvj|@^` Pv8=R0l`|O `L^*jո.}yRcWm+LZf222$ `O_?S_WQ˻+;_.| {(>NE]LB}}=aaa̘1Cs9sqqUWɓILL$88vBBBӕ! Fz'9r$EEElܶɓ9w{ֻ %8%gC`6Okx/cwYp!MMM@ss3/IO^=?'7U͟z>7.rqQ?PF骕?kՁo=Bx,^dqhk`^-1xjN-ޅR~`j4@V+,ٔGlذ}1~xܣ[oV"##뉎(BBBߥ|CEױcǨH|5""Ꮹ / <~5T%w?>\{'?/W^xMvɅ`AAAL>kr7s??}H&MkâMf T0ނ5`ln%6 V&vm1l#iɯjhL%ѤT1kԠ"JC@P08܌伞gp9ߙy|׿&Mģ>ʯk~䄇tusIHH`$''AggMSSUak1䅋\$|:ﯿ766J,Ȑ҈Sґj{5r ,s>[V&:˗+J' /r/jW 0ir]5s}ǴiD= o# 1cpUiiiaJRR<:6Eeǫ[!ՕHt:gΜ!ut+Yޯ g\OL}/*%/ ___\3L0Z.]${졳͛736kF|Wzzz 44*z=tuuIāo5 u~~~9s/ryѣGc󩩩^''';| '\ZwX_s9sؾ}O>aѢE͛;w.NNN={vz{{r-b$''={,Y /۷o`9s!Zרc!ȃUS:{XB2{ƞD}b7ӽk[fdffʭq1ߝ>}ո[_͵$J֮ !G={ooOF Lssl*:fY6:[%l)**bo~ç{^'}Y/p3fH """x9pIII,X ךǤ\b];˭Om}!:'OOj*^y>ck1j(۷kK/ʘ1cdxٻw/L:G2}t9իWiooGyVZ?G%p lfl6+casdsssYbu eZ8^vj?1̜9Jp'On%@+:Cx8q*33y|X~2{6/^oEOʉ#7*#|)Z~;>-/Ir2?4Wv?8?>k֬2-Zϟ磏>ёqơhnnKvnݹb &KQ>Ύ'~FNf&-Û61ӓ./`h(CBī7]c#W~\qyboޓ'iիNW{ǏOQQ-s I'O[o_8?~sț/8=o'Ǐ7ˣޞ}N̜9llldXP:;;e̷Ϫ˝PSSseꨭe9sF$''̄ 7n7of{{ߴ7mO[ҦӱIZs}kK|;mh~.?=q{{G%..:FIAA/_ŋqNr&MıcHNN&;;[֏7 8::퍇6ln9~-kɀơa\?^tĮî3m&XQ~ܻeܲ]p!twwlϏjRSSy(,,$$$2fN<)x{{1[}cǎQTTĞ={z*QRR³>KCC'NՕSYY)<<<$c{B$ptwwsq:::dMᚂ;v,ٴFGGӧOri/zDUUUŸq8z(طok׮Օx5k?d…ڊrXRRC}YOOOYYO;9]1w駟gar{= a…ٳ1ԐG58 .\HooQ)..رc0c >cpuue`,XGGGܵ7{~_Ja2xxWٰa8q}@CCx ::Z.L&)f|ᇘL&RSS),,uApp~̙7aȑ=^<7nC ƍٵk?'NGoAUU֭c֭<:tCc6m{\MGG<߿UV{|eee$%%7nHRR7ndժU]{)Cdd$&I fΜIpp0eee}&"7nNjט6m|Cu'''f3s裏ݍt:z嫂3,Xh^xvMss3|ĉ/{=Ο?ϕ+Wc՘f DRRL&Lk}[ԟjۆt::::x";vO__r BBBpwwO&??*kjjسg]]]ݻXo#Gd2_) >1b===a0xz*3'}Gkk+uuu۷q1m4BBB(++>L>jkkq1i$ߏ%%%t: 9~8cƌ7ࡇ";;~xzzJרjvv?q'NdL2`(**bʕw^>Lkk+AAA$''S]]MPP7of߾}8;;SYYIOO&Mbʔ)pa}8}4ݻ.CLL yyy{y y뭷gLJgR]]ͨQ8vO>$TWWS__OBBz;;;L&#Ge㮜\?x ,Y$222زepQO?0>P|}8_l?\7]%MEr߷pb2 ^CoÚ>ru[l2>8YcN=&&Ff<==1ɪz~Nc.]-[#GԩS777=z4RPPlf?#ƍӧ/7nUUU:u All,NbԨQxbggg8qZ tpmmmg?7779^OwwweMѣG'z9ʨ!((GJQvtt?477cggG||<&Ld2iӦpBv5k(//gۄ ;v젭v)//LJSNرcILL$66wyRlmmޞ .]oͫʿo|r~_uVx dvIRRXpp7`ҤI\pAq=w FŌ3%??0 4777hkk+ *o6 3fJ s Zee;DPPuuuٳg'22RVX_:t)1-ZDVVQZZJFF۶mۛrZZZ5jTx!얱c˭`D2[RLE\ز1S|U, E|_U+"2q[]ľKkϩ-vc=NOrKRYY#@e>m?|6mt~!ӦM֖e˖N㣏>>|ŋs … lܸСC=hnn&66VlAqMFYY>tIII`4 3mr]kk+yyyRPPC233yioogܹ'|rN???***ꢫz.BCC),,dܹzN:/^ݝ^1455Ԅ;f.]laSHJkk+Eyy9SNI8qz{{dҥ9s& .`oo/'TI$''f<(8322hhh`Νtuu|rlr]·Gus{g͚%;YvHՇڵv}?~ZTٳ\z׮!III}\lOfzJƐ{zzz?s .\ dr[ww!>}:?j>3jjj1c%%%2WXX cǎܹsR0LrbOPUUرc?N3ښ{իW1ͼ w'?&881b555 6ŋR)// ooorssޞJ1b(K@@/xG;_ IDATxx饗'22ӧcoo֭[2e s#FSOqa9q/^GN0t:L|cǎۋh ///rss7n;wۋ'mmmfduEш`˗//TUU1zh(,,,^lmm򢥥zqwwg̙\rhiia„ 444鈎[b$==דĉc֭^'2c vލ+R0L򃭍Zj}8fͺ.FIzzu#W]X{ZZVb֬YtwwuVo!?X]dN-[ظq#}bK1[\ڵUVs/.TO.]L vEYYY܃`/_.; 5tR|}} & e˖'E=,,LjѣGFOOԪJTT> 8::GhhLrpp&ijjb̘19s#""0Z[[9r\¬!""'|I&ȨQq>)b/t;99<3;vuϜ9êUݝN._,`}}=W\jΜ9CUUnnnL2X\]]={69ggg._Lss3L0Ammm9p&M$&&Mvv6cggnj3eƌxxxOgg'&LOeee:tooo8p舃3f̠Xjjjz*ϟgٳH-E"ݝ8 97|SN GɅ 1bG__%%%LSS>,...~+D~HH%%%rpݻ޽{9u OKK ӦM[[[\]]9wtWWWGkk+2ɮ[D9a ua׮]$&&BDDFbb"6m̙3Z5oK'kԵ1x˘e8mYfYf7_6XwX[ ֧~0ԩS)**h420L&.\@pp0w}HQ? gϞO>nZZZB4k,eԨQ`4IJJ"//b eN`DFF憭fccӧˬ3gNQQ===/Cf/_ &8b{{{ҥKqyjjj󣦦.]ĕ+W֖j9w``\xF|}}dΜ9|<#tR쨯wybƏOWWz^V///ƍGXXfp9|Ahw1rL+//g֬Y{F&~0f0Ll߾sc)..ի?l;;;eOqss#$$qƱo>z=LCC444`ccCcc#quuӓgŔ)S/8q"ӦMAf۷P"##$*qK],gggDzCC,dv@kƆoR۶|bZni.[[}E;S;d߸ho,+&>EhA8̙#%7H@@@H1ܹѣGKww7݄ڊ W\ΎW_}peFndd$ܹ ͛ӧeG0صk>>>r SRQQ^'66g2a 8q"_~%<QQQ()q e={n}zzz1b#G󔕕MOO~~~ر^O}}=b)&E```1liiƆ#FXxzzb0(,,$((n?L~~>/5kVz*666ŭX~.--ԩSrZ...%9BXXFX:Yz56l`ƌ>}ڵ'2fxᇯ-Zɖݤ?:qk@3QVV/;wZˣGJwo6///YG^ի :cggǁ &&/boo˗'jjjVގJ܇@FFW ''O 5++"z-O2EodP@1{czuIp[*eZrV9wkcMVqsuDJ{ط-3g͑#G0aLYf`bbb@*++ܹs;w777).",88___FNc޼y]ڇ3v[ebӦMK^^G󫲥W\)Ixw^/'s|ӧOz=UUUL4I7oϟgŤzjY]?ĕ+Wpuu' ?QFQ]]ɓ:u*[n%((?K.acc#? G%,,O?SRRٳ9x od5}ݺuVϫ2ȍ8''z{{پ} aimmYN}||hii_Vf͚ߏ,#innuݹzLΎӧ鈊, ܪqW򃐕Gؓs7Lձm6|||HIIg[ pvl{Kg뉉%Y1q g/^'g'gG].݇֗.]JKK Fȑ#Gl}YW%h%L&lhkkKxxH֮]Kii)/_&** .›o)$EKRTT`O>֖899ngg'V݄cHII?'l___թ˗/k.MƑ#G3f .]bǎCġCxX~=>('NÄ@WWlc4e8f߾}2rq\\\8uW\ ~ߓȶm0899;C[[G``L;wg9ײNhhۤUc6iooOoo/߉ɓL4O>&<<< СC8;;|o >Ǐx.]?.]O[[[:u*8::)u]m[9ʹs%דC^^۷oe˖m۶>{ͨ{>{^_rဵq[sցÍ, V\Iuu5 p܈K{#|h\Bqq1!!!Kٳg(2f<@@@HOOr''')mb?صsNf͚EOO~)>t~c6ef1c83 .P]]͂ dn &0b˖-<+L8yIq4i^׿ˮ.9m}rY=ʲeÃ6Ξ= 'OL->/?yy'tN$鐧Ћ5߁ptt쳧ggg:;;1|nj=cǎdFYd %%%}kkkYlNNNgpSLYzuuuaccCaalDwwԆ@n`2x*++ihh vu >eք-kk7k,bbbns}{mk׉.k…tpkˋb%BC/Xr%͸Y~Mڸβٳg嶞Xqww'66k&#&&Ξ=c='O ;;;I^Zklq ~X͛ 3GGG8@ii)zDXXz'''yfMutteK {nܹs lmmtt:\]]qpp]t:W^N<;...8::sGɤ1GGGprrGBƁ-ѝny,ZB?\LL&]]]r,llld ZQYqɒ%DGG3ɓ';v,< 3|?>< O>Ca06mPt:yzzz7nvvvgYݎvQT@-b+ջ˖-[`8vʌ dUyJuڇ?`-֭[d3{l(..ۛ5kܒuZ/t:ٶS_0vX\ =l޼Y^ܹDu'&w{"Z҅۵"u,҉[d7B*0Ϙ17믳vZlyn;;;#t:N.nqe~#1u;cǎN'..nH w_:.={c+k^p7ńHpTc@X:lm'6mqx-1V?_x駇<~!jA8f%M8~zͻ|܇sa$mԆxρkťV/`}oǸ+RسL&F#999?~ d!rUڥg{ڵ wݫ93sOOO'33^/Exkn}0Q'$$Pݻ︰ˮa:۴?\}2$CuZֺ<풭|>b-ݣ,w}) hϕ8F1ڭm{|vXKt}v^X/KP[ܮqWνnYd2QZZڵkijjbܹ>Fo2ߍsڕ@ȌeK[ּ.}ԩ_kqcѹpXw":GZy3si{󙕕u|W0ʹkɑns---e۶m(Ν; n9^,ׯX.K7׸e_kc9-k[:XΝ;ǘ1cnh,-ϥޭ糮k~;9>C,ܩqW±4~7ޜ8@ɇڵkqh헮^;v,Lt tcb ˭>{|~~7mܕs8vY7oʕ+QYYk=2ۭ̎,=׷,)}㵱vjpiiiRE^^^8880qD|I1dggnNno"wz2|~=~7mܿ]Ŵgdd}v#FpiYfNgk-zﹹ7Onkk;TWWc4$9B8wŝqf]uk^Gd A̴O{yy` &&x_V®PR r׹'H755qqy~3\PP\CӁ t:̞=jv~W(s oڇ)##BFESS%%%RkNF/.DZm_C̔&O|퍯/L4H ^ o-"I-fddג8y$}ʝK}8p]@ݿxd!`|}}k3f //VU.--M B9wB9 Urrra˖-DGGS__Oww7 +]{\ff&y9s˗K؅KGՕ{ >>>n@g͡k_ˮlXFfΜɺud&~~~mmmc)P(ʹ~UĒ͛蠡3fPXXg}v׺v;J=]DUGGGBCC cԩJ  IDAT RSSY~rKM&lLR^^NUUIab,EZzzzõ6mF?Tacʕ888Ԅh$11+aW( ,b9>''kP__ԩS)..{7mtWvmUk 7?yؾ};:0,Y)0PEB9LBB&,)..fٲeʽ111%݉Kk]8y=334>?$Z/M}tJ1 jʹ.DX|2}bwkϥ:Qenn@F/C9sPRRBOO#FÃ_|Q B1L222Xzr7eddܹs _|BFaU$} ]ME\fΜɓ$s!**zquu%33*aW(n5 ok;w.MMM̞=Ç x'K^[YΚKы᭱tR9ޔ3(ǡP|MD~B-t999ҵ{{{NSSpeq.bBˎ:uKavq`Ο?ԩSinn&,, .(aW(njʹ 5kְd+Vܱ r_^?c%%%5k0rH; MD*ʹnΝ;IIIw@ީ=~w?111b K~QZZ]AP(~gFHLLdڵ cʔ.}N]yسg?U@BPu1{ʢ:Cv3qkȩ[sCqBԗ.]yyy,YSN)aW( m.b[Yrr2---F >>>Kݐ)3… UYNP(s1LRSRR !!,hjj"..˽ҥK777Te9BP!.%%%Arr2,Ym۶1uT7opUSXr%2IuR( ܿ9DDD/CZZ=b:44JŞ;Xp!8;;S]]hT®P(ʹs{DDYYY򺄄ړdqW^y_~R͛NJ+e߾}S/,[* B9ock QZZd"00#GhdÆ frss{ʕ+IKKX۽{7۷oW®P(ʹ3c u;]Xn999ujZZmǩϙ3&<==qvv͍lZP( 7ʹ:Q]؅RYYI]]uG吐 (((tvٳqvvfŤ]P(l瞕EBB6l ׈-~/")))rXll,pzxx8\K jkBP(]:"""˓ӥ@~p:өGEE1gfϞ-뉈P®P(osȸ])-*ꓒ0Lv{{{-ĊBP(Z.#""v8Nڅ'\,ӋDdddWأ ˴鉷7}Ӫmm B֋eㅀ;pY8y׋CqFDttΦL( Bu}ӄ]8v!)ZM8g+E^^ F̙@XXSNȑ#8pWWW<==._,E><<5k QK BP]벵Z+k絮^\D<؋YGehjj">>@***8y$SXXȕ+W=z4#F}ʁr BP>ڎpք?n9iK!!!ξ,}BP(bnloޅ;UV^}]]Z% BP~o2 D=55OOO]NP({{|BB֓,Z^~e}]Y=##>N]P( o3`-\S7rK 544r!PZ* Bk`EiΝKXXX֪)))䐗) B(\X~ LJ'5WP( ;@B \~.&D]P( %wkԵ\uW Bp+W( V,HNND3W( ^6oL]]$%% ڳ]P(o#IJ|FF$!!8 Bלhǚ Cޗ) B]DNN&ZC?+ ],/zJJLS"P( D=++ku߭ {NN:c BPܭ][`Z/vBP(7m[7l BP(">Nn BP(%.b7**֮P( ] BPܣ]$mϥP( r BP(9?tIENDB`gmic-1.5.7.1/zart/images/gmic_hat.png0000664000175000017500000001012212216303500017536 0ustar dtschumpdtschumpPNG  IHDR@@% sRGB pHYs  tIME' H=`IDATh޵Zkt\u9Νdɒmٖ%?e ~`<$٧Y `! + )cyJ ) ""1Tnψ\2ːRJ@X^0 Xxŀ|7w,ԝ% dJHH34spᥫ a&ʗi+?{N%\@n0ũ"Z xq_GHڜ˄Ť,_0Z#D`u'SǏŷ?;=Ay&l$: 82CyxI8οh),zwخ^~`kܱx0 %z0?rkp;AAOjfgWke>D^jIE2i_@ {|_t7 6ñ̙=㗞~䓒HPtb,'$%6{Wĩ>vEm_`7(ꇷávL|FE̺hwǽAR5p,@:u^mcE57e3atM5e?!H$l[ݼXrT+)X &lx[oNd:U` ҒY_Xv}m*&bsFy|e'uuuWLe _f˖eѫoZo[-6吜LMd_>P 4}",, EuDM5S6D@oW}$>}H˰rV"1YVakH׭⺵/zt_,b &*жmYѨ-R':چ]uȴ,P:sڰymK?zv;,h8ЀX3&d^ouvŇ"2>Ҝ)mZbyW\{vݺ*^Տ"R8O߻*9Q Ң|'~v968`Dq>tUEff/ld:0V6@fo䪕Lx N͚h09ǽKk|+/Aמ01 ܟn?x#{/y Kv&[|O6ͯ,B 9Ȑ#eIAhӌe|ƀ0HQL0ϩl`Zs64eLUkljmm?}5zkV26X(-)Vƪk+זW-* DlEpg5y#㰩L Kwo`ԎKD(-^ˮ^7Y3C]x쥫ʾύ0C)=&3n:h?ol#QZYVRjYݜ/ZYVQ:9?x^,ʂNp9oו;AR6 J|&[핐( f=5ջW[sÐֶd3dH`՚ܱ[#I"u*VbB,`xA(|ۦ뿼~Qmyhę2h){d|7)Mc#n'}w:y@<ضR @ ! Z+]| _UBfJbdX]yֹkWT/-[(RV^RRjKK8%StK&?<񁱁t_XOo L4lVPJisq6BJR9[~il$՛^N۶AL?lC -;$-E Z+U=Obm0E"4cҵkW-_YYU= tkkhm_P1NJ8ߵp}ԀR|a?(AJH'J J%i bb  $,a5gnn˶̩SZ9flhVZc;o dIm-7d%248Kd+YFl={MPָ8uA*oqC:B*\fuukծ^ZV< 3>R^a/[ЌiygYp-(,m=pcAq? fʉ(\`d(5`v."B>^H dFӳc?R>0T(Y7<ЛN9 pB:TY9 hlWDDD[GT_up3﵄Ĭ]DpC0۪b9@DO )ff<}o:]lf)$H6w  #1Ѣ3v;"JՋ4ssC<1::.f/9"/YN@Ƒbqvoy`w[ogBd҄K"m"Bv lZ4L'"|[H"ԳBi?q<0Mଥ3@RJڦBĀ,{Bc/kђi^ /_^Sx&ҹE,U0i_EKs|43‘3/}eN*8+g,AR'j67 Ln[WtՍ Z=- 2MR_ :uIENDB`gmic-1.5.7.1/zart/images/media-playback-stop.png0000600000175000017500000000275112216303500021610 0ustar dtschumpdtschumpPNG  IHDR szzsBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<fIDATXWG=[=ӋW`ę3>Μ AJLĉ倄djzgqlv,› VTչ{Ep@8L#E$OHW^Ivsc J){}#sǑ$#"B✃^by'?@۷o1~ARۭJ)sF]"0 nv^ !{8;t,Ţ0 ✓"Hr,3E$aZkR^II >ޛs9::B)$l`q5JVf>A4(@S/'({ZkaE!`RZ+ou5H{)9zH圣VUta@r2L#'R ڶ^HN&TU X,X))%1RtQX֊9gcr)K`fQD`r4Z!#bR}S״f)`5ƔOb0?KՔ,!ٳg#3p=S{&Mv4|{S#猻wOfCܴ$F0Uc6Ms9I{k-kFVCMdιp1`{:`@daJ7nz}jqmZk齯R1zDS$c 3wܙQ/,8\\s[p'ZaJV9Ks8 ֚]0$(޻0*ܠwbRbRBJv;eF(vZ")%㈜1#J)1X=uzgYf9~a0qqJY!"hvb`~TQD=RJw^9==M36 18>>:>zHgx4Zv{gQ XABx1Fszzry Dj*tRBZI&dGԂk()%uڶe)Esf̀3h~Ps'n6]b899[`2=RJSŧnRJ@Ji~*&8hvnBdQ~t4];#RDSJ.1F|k`EqՎF&ROOm羉1 u+o ٓ@mUϹ{5=a+,B'j%]q^K=\\\|[kBPM1s۶\, !pXi@֒$s(93Vŋ{is [w "r9uB$= `ЋHNe>mIENDB`gmic-1.5.7.1/zart/images/zoom-original.png0000600000175000017500000000265612216303500020554 0ustar dtschumpdtschumpPNG  IHDR szzsBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<+IDATXŗQLSW4vX &1UYKY<|2/c1x2QjV3ɤ11a-Xt\[Jkvrs}~9!s2B@*^$V89!FR ayqΗ `1f5Q5GyMha 2-gY7~$C!e4liiz%wCCnˉDb%,޾}{@iE*Ģ :ǏH$*MOOlR}}$IQĉ$J! i\7gϞmmbVowww:42<

ɓ'W~kXL?Xkݫ-Ң(Z8P{ȑ`0~id2}d{M?BQ@)< >J@`IŪDbp_雰RȎ|ШPJ cg[|wbzPE i,(,4ɂcepwiȲ,B C$BRLDOE%/I4""H)Iy}DmۢiZFtnYpZ+ZXk\v~hҶXk{/5#RBDDcLBsNIID,4ߵsSQH)prrf4J((!*Q:'{ (9bf03VʲD۶H) 3KJXqzCac0gYkU\I7iDԋLDhRJp ) !l0H _!F#шx$D @ՍAffFƘaIR`J&1u]lf&q+g""ʂ(tDB1 5@Y= 11F#Nϟ?/_x!n 7oތ sIY0ƈ')C9e!BTamWUEϟgQa۷oݻ~>`2HUUjH>T c Ykw0PspΡk4Mc={VyEt khZK92u]SY} p᥌WBɓ'ŧOHE\f45ٌөL&U@IїҘ˴mZxǏׯhf&\&Y1l~j|͖64yѭQ޽{Ǐ=2O>UBVU jm8;^ f-Y#Q@ug'Bz-+AQܹsGY{j=߾}dBH{iFNy=Çr… {4qFX,RCQ7EJ !!a?m1FU_1ʠxCGGGI'm៽4M9ж-._l6_~EJ)pEsjZ)#jBqcTrƍOGGG ̌r4%ʲԟ2\VP׳~^oSUUwZ|"mRYRrcܜ;wu]o6dr 4,SMӠm[=u] 1FY.BfooRJC=NslzQ~P&=Snr{LSr !l#w/цI+BUE0iʀ16l:sΝDcS^T-ƒܰӳ.Ѝ^H8Ֆ젪rc<O5zPZmnTDSrj ߯\rkmU13EAƘ~<h4,i4QUUZ1bX4/_Ǐ w ?v*"NV  yëIENDB`gmic-1.5.7.1/zart/include/0000700000175000017500000000000012216303500015423 5ustar dtschumpdtschumpgmic-1.5.7.1/zart/include/DialogLicence.h0000644000175000017500000000511312216303500020270 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file DialogLicence.h * @author Sebastien Fourey * @date Feb. 2012 * @brief Declaration of the class DialogLicence * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _DIALOGLICENCE_H_ #define _DIALOGLICENCE_H_ #include #include "ui_DialogLicence.h" /** * The DialogLicence class. */ class DialogLicence : public QDialog, public Ui::DialogLicence { public: /** * Constructor with no arguments. */ DialogLicence( QWidget * parent ); protected: private: }; #endif // DIALOGLICENCE_H gmic-1.5.7.1/zart/include/DialogAbout.h0000644000175000017500000000506612216303500020007 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file DialogAbout.h * @author Sebastien Fourey * @date Sep 2010 * @brief Declaration of the class DialogAbout * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _DIALOGABOUT_H_ #define _DIALOGABOUT_H_ #include #include "ui_DialogAbout.h" /** * The DialogAbout class. */ class DialogAbout : public QDialog, public Ui::DialogAbout { public: /** * Constructor with no arguments. */ DialogAbout( QWidget * parent ); protected: private: }; #endif // _DIALOGABOUT_H_ gmic-1.5.7.1/zart/include/ImageView.h0000644000175000017500000000623512216303500017471 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file View2DWidget.h * @author Sebastien Fourey * @date July 2010 * @brief Declaration of the class ImageFilter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _IMAGEVIEW_H_ #define _IMAGEVIEW_H_ #include #include class QPaintEvent; class ImageView : public QWidget { Q_OBJECT; public: ImageView( QWidget * parent = 0 ); void paintEvent( QPaintEvent * ); inline QImage & image(); inline QMutex & imageMutex(); public slots: void zoomOriginal(); void zoomFitBest(); void checkSize(); protected: void mousePressEvent( QMouseEvent * event ); void mouseReleaseEvent( QMouseEvent * event ); void mouseMoveEvent( QMouseEvent * event ); void resizeEvent ( QResizeEvent * event ); signals: void mousePress( QMouseEvent * ); void mouseMove( QMouseEvent * ); private: QMouseEvent mapMousePositionToImage( QMouseEvent * e ); QImage _image; QMutex _imageMutex; QRect _imagePosition; double _scaleFactor; bool _zoomOriginal; }; QImage & ImageView::image() { return _image; } QMutex & ImageView::imageMutex() { return _imageMutex; } #endif gmic-1.5.7.1/zart/include/Common.h0000644000175000017500000000457612216303500017052 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file Common.h * @author Sebastien Fourey * @date July 2010 * @brief Global declarations/definitions * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * */ #ifndef _COMMON_H_ #define _COMMON_H_ #include #define SHOW( V ) std::cout << " " #V " = " << ( V ) << std::endl #define ZART_VERSION "1.0.2" #endif gmic-1.5.7.1/zart/include/MainWindow.h0000644000175000017500000000760312216303500017670 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file MainWindow.h * @author Sebastien Fourey * @date July 2010 * @brief Declaration of the class ImageFilter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _MAINWINDOW_H_ #define _MAINWINDOW_H_ #include #include #include #include #include #include "ui_MainWindow.h" #include "WebcamGrabber.h" #include "FilterThread.h" class QScrollArea; class ImageView; class QSpinBox; class QComboBox; class QNetworkReply; class QNetworkAccessManager; class QMenu; class MainWindow : public QMainWindow, public Ui::MainWindow { Q_OBJECT public: MainWindow( QWidget * parent = 0 ); ~MainWindow(); QString getPreset( const QString & name ); public slots: void play(); void stop(); void onImageAvailable(); void commandModified(); void presetClicked( QTreeWidgetItem * item, int column ); void presetDoubleClicked( QTreeWidgetItem * item, int column ); void imageViewMouseEvent( QMouseEvent * ); void snapshot(); void about(); void licence(); void visitGMIC(); void setFrameSkip(int ); void setPresetsFile( const QString & = QString() ); void savePresetsFile(); void onWebcamSelected( QAction * ); void onUseOnlinePresets( bool ); void onUseBuiltinPresets( bool ); void networkReplyFinished(QNetworkReply*); void onPreviewModeChanged( int index ); void onRightPanel( bool ); void onPlay(); private: void addPresets( const QDomElement &, QTreeWidgetItem * ); int _firstWebcamIndex; int _secondWebcamIndex; WebcamGrabber _webcam; FilterThread * _filterThread; QDomDocument _presets; QString _currentDir; QString _imageFilters; QNetworkAccessManager * _networkManager; QButtonGroup * _bgZoom; QString _filtersPath; QAction * _onlinePresetsAction; QAction * _builtInPresetsAction; }; #endif gmic-1.5.7.1/zart/include/CommandEditor.h0000644000175000017500000000522412216303500020336 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file CommandEditor.h * @author Sebastien Fourey * @date Sep 2010 * @brief Declaration of the class CommandEditor * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _COMMANDEDITOR_H_ #define _COMMANDEDITOR_H_ #include /** * The CommandEditor class. */ class CommandEditor : public QPlainTextEdit { Q_OBJECT; public: /** * Constructor with no arguments. */ CommandEditor( QWidget * parent = 0 ); ~CommandEditor(); signals: void commandModified(); protected: void keyPressEvent ( QKeyEvent * event ); private: }; #endif // _COMMANDEDITOR_H_ gmic-1.5.7.1/zart/include/ImageConverter.h0000644000175000017500000000730612216303500020526 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file ImageConverter.h * @author Sebastien Fourey * @date Jul 2010 * @brief Declaration of the class ImageFilter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ #ifndef _IMAGECONVERTER_H_ #define _IMAGECONVERTER_H_ #if defined(HAS_OPENCV2_HEADERS) || defined(OPENCV2_HEADERS) #include #include #else #include #endif #include "CImg.h" class QImage; class ImageConverter { public: enum MergeDirection { MergeTop, MergeLeft, MergeBottom, MergeRight }; static void convert( const IplImage * in, QImage * out ); static void convert( const IplImage * in, cimg_library::CImg & out ); static void convert( const cimg_library::CImg & in, QImage * out ); static void merge( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out, QMutex * imageMutex, MergeDirection direction ); static void mergeTop( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ); static void mergeLeft( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ); static void mergeBottom( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ); static void mergeRight( IplImage * iplImage, const cimg_library::CImg & cimgImage, QImage * out ); private: static IplImage * _image; }; #endif // _IMAGECONVERTER_H_ gmic-1.5.7.1/zart/include/FilterThread.h0000644000175000017500000000676512216303500020201 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file FilterThread.h * @author Sebastien Fourey * @date July 2010 * @brief Declaration of the class ImageFilter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * */ #ifndef _FILTERTHREAD_H_ #define _FILTERTHREAD_H_ #include #include "Common.h" #include "CImg.h" #include "gmic.h" class WebcamGrabber; class QMutex; class QImage; class FilterThread : public QThread { Q_OBJECT; public: enum PreviewMode { Full, TopHalf, LeftHalf, BottomHalf, RightHalf, Camera }; FilterThread( WebcamGrabber & webcam, const QString & command, QImage * outputImage, QMutex * imageMutex, PreviewMode previewMode, int frameSkip ); virtual ~FilterThread(); void run(); void setMousePosition( int x, int y, int buttons ); public slots: void setFrameSkip( int ); void setPreviewMode( PreviewMode ); void stop(); signals: void imageAvailable(); private: void setCommand( const QString & command ); WebcamGrabber & _webcam; QString _command; QImage * _outputImage; QMutex * _imageMutex; PreviewMode _previewMode; int _frameSkip; bool _continue; int _xMouse; int _yMouse; int _buttonsMouse; // G'MIC related members cimg_library::CImgList _gmic_images; cimg_library::CImgList _gmic_images_names; static const unsigned int _gmic_variables_sizes[27]; gmic _gmic; }; #endif // _FILTERTHREAD_H_ gmic-1.5.7.1/zart/include/WebcamGrabber.h0000644000175000017500000000562712216303500020303 0ustar dtschumpdtschump/** -*- mode: c++ ; c-basic-offset: 3 -*- * @file WebcamGrabber.h * @author Sebastien Fourey * @date July 2010 * @brief Declaration of the class ImageFilter * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * https://foureys.users.greyc.fr/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * */ #ifndef _WEBCAMGRABBER_H_ #define _WEBCAMGRABBER_H_ #if defined(HAS_OPENCV2_HEADERS) || defined(OPENCV2_HEADERS) #include #include #else #include #include #endif #include class WebcamGrabber { public: WebcamGrabber(); virtual ~WebcamGrabber(); inline IplImage * image() const; inline int width(); inline int height(); inline int cameraIndex(); static QList getWebcamList(); void capture(); void setCameraIndex( int i ); private: CvCapture *_capture; IplImage *_image; int _width; int _height; int _cameraIndex; int _min; }; #include "WebcamGrabber.ih" #endif gmic-1.5.7.1/zart/include/Makefile0000600000175000017500000000004012216303500017057 0ustar dtschumpdtschump.PHONY: all all: cd ..; make gmic-1.5.7.1/zart/include/WebcamGrabber.ih0000600000175000017500000000455612216303500020444 0ustar dtschumpdtschump/** -*- mode: c++ -*- * @file WebcamGrabber.ih * * This file is part of the ZArt software's source code. * * Copyright Sebastien Fourey / GREYC Ensicaen (2010-...) * * http://www.greyc.ensicaen.fr/~seb/ * * This software is a computer program whose purpose is to demonstrate * the possibilities of the GMIC image processing language by offering the * choice of several manipulations on a video stream aquired from a webcam. In * other words, ZArt is a GUI for G'MIC real-time manipulations on the output * of a webcam. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". See also the directory "Licence" which comes * with this source code for the full text of the CeCILL licence. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ inline IplImage * WebcamGrabber::image() const { return _image; } inline int WebcamGrabber::width() { return _width; } inline int WebcamGrabber::height() { return _height; } inline int WebcamGrabber::cameraIndex() { return _cameraIndex; } gmic-1.5.7.1/zart/ui/0000700000175000017500000000000012216303500014415 5ustar dtschumpdtschumpgmic-1.5.7.1/zart/ui/DialogLicence.ui0000600000175000017500000000374412216303500017450 0ustar dtschumpdtschump DialogLicence 0 0 591 376 LIcence ZArt licence true Qt::Horizontal 40 20 &Ok Qt::Horizontal 40 20 _pkOk pressed() DialogLicence accept() 282 343 295 187 gmic-1.5.7.1/zart/ui/DialogAbout.ui0000644000175000017500000004561012216303500017166 0ustar dtschumpdtschump DialogAbout 0 0 516 319 Dialog 0 0 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ZArt VERSION by the GREYC Image team</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa00ff;">Z</span>Art is <span style=" color:#aa00ff;">A</span>lmost <span style=" color:#aa00ff;">r</span>eal <span style=" color:#aa00ff;">t</span>ime</p></body></html> Qt::AlignCenter 0 0 0 0 0 255 255 255 255 255 255 255 255 255 127 127 127 170 170 170 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 0 0 0 255 255 255 255 255 220 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 127 127 127 170 170 170 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 0 0 0 255 255 255 255 255 220 0 0 0 127 127 127 255 255 255 255 255 255 255 255 255 127 127 127 170 170 170 127 127 127 255 255 255 127 127 127 255 255 255 255 255 255 0 0 0 255 255 255 255 255 220 0 0 0 QFrame::StyledPanel QFrame::Sunken :/images/LogoGreyc.png Qt::AlignCenter Qt::Horizontal 40 20 0 0 Groupe de Recherche en Informatique, Image, Instrumentation et Automatique de Caen Qt::AlignCenter true 0 0 Qt::Horizontal 0 0 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:8pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ZArt is a GUI powered by G'MIC for almost real time effects on a webcam video capture, and by OpenCV for faces or eyes detection. Its purpose is to demonstrate some classical or funny image processing algorithms. It is developed at the GREYC laboratory Image team.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Developers</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sébastien Fourey (GUI Programming)</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">David Tschumperlé (G'MIC &amp; G'MIC scripts)</p></body></html> 0 0 Close pbClose clicked() DialogAbout close() 123 116 123 69 gmic-1.5.7.1/zart/ui/MainWindow.ui0000644000175000017500000004007512216303500017050 0ustar dtschumpdtschump MainWindow 0 0 1025 829 MainWindow Qt::Vertical 0 0 QFrame::StyledPanel QFrame::Raised 0 0 0 0 _rightPanel 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 :/images/Logo_150.png Qt::AlignCenter 0 0 Qt::Horizontal 0 0 Presets Qt::Horizontal Preview mode 0 0 0 0 Qt::Horizontal Frame skip (0) 0 0 25 1 Qt::Horizontal 0 0 QFrame::StyledPanel QFrame::Raised 0 0 ... :/images/media-playback-start.png:/images/media-playback-start.png 24 24 false Qt::Horizontal QSizePolicy::MinimumExpanding 0 20 Set zoom factor to 1:1 ... :/images/zoom-original.png:/images/zoom-original.png 24 24 Best fit zoom ... :/images/zoom-fit-best.png:/images/zoom-fit-best.png 24 24 0 0 Take a snapshot ... :/images/camera.png:/images/camera.png 24 24 0 0 G'MIC program 0 0 0 100 Qt::Horizontal 40 20 Apply script modifications (Ctrl+Return) Apply Qt::Horizontal 40 20 0 0 1025 25 ImageView QWidget

include/ImageView.h
1 CommandEditor QPlainTextEdit
include/CommandEditor.h
gmic-1.5.7.1/zart/zart.qrc0000644000175000017500000000104212216303500015476 0ustar dtschumpdtschump images/camera.png images/LogoGreyc.png images/gmic_hat.png images/application-exit.png presets.xml images/Logo_150.png images/zoom-original.png images/zoom-fit-best.png images/media-playback-start.png images/media-playback-stop.png Licence_CeCILL_V2-en.html gmic-1.5.7.1/zart/presets.xml0000600000175000017500000001744712216303500016226 0ustar dtschumpdtschump -cartoon , --hardsketchbw 300,30,0.2,5 -blend hardlight -r 60%,60% -old_photo -r 50%,50%,1,3 --mirror x --mirror y -+ -/ 4 -equalize 256 -r 75%,75%,1,3 -stencilbw , -r 75%,75%,1,3 -water 10 -luminance (0,255) -index[-2] [-1],0.6,1 -rm[-1] time={@|%9} -if {$time<3} -equalize[-1] 256 1,1 -text[-1] "Equalized",2,2,24,1,255,255,255 -image[-2] [-1],10,10,0,0,0.3 -rm[-1] -elif {$time<6} -n[-1] 0,255 1,1 -text[-1] "Normalized",2,2,24,1,255,255,255 -image[-2] [-1],10,10,0,0,0.3 -rm[-1] -endif --s c -histogram[-3--1] 256 -graph[-4] [-3],3,0,0,0,0.3,255,0,0 -graph[-4] [-2],3,0,0,0,0.3,0,255,0 -graph[-4] [-1],3,0,0,0,0.3,0,0,255 -rm[-3--1] -grid[-1] 32,32,0,0,0.1,0xCCCCCCCC,255 -rgb2hsv -sh 0,0 -+[-1] {(@x-w/2)*360/w} -mod[-1] 360 -rm[-1] -hsv2rgb --rows @y -s[-1] c -graph[-4] [-3],1,0,255,0,1,255,200,200 -graph[-4] [-2],1,0,255,0,1,200,255,200 -graph[-4] [-1],1,0,255,0,1,200,200,255 -rm[-3--1] -line[-1] 0,@y,100%,@y,0.3,255 -axes[-1] 0,100,100,0,1,255 -grid[-1] 32,32,0,0,0.1,0xCCCCCCCC,255 -rgb2lab -s c -normalize_local[0] 3 -a c -lab2rgb -r 50%,50% --s c -channels[-2] -1,0 -channels[-1] -2,0 -append_tiles 2,2 -line 0,50%,100%,50%,1,0 -line 50%,0,50%,100%,1,0 radius=15 -dilate $radius radius=15 -erode $radius radius=15 -erode $radius -dilate $radius radius=15 -dilate $radius -erode $radius -r 60%,60% -blur 1 --gradient_norm -n[-1] 0,8 -* -c 0,255 radius=15 --erode[-1] $radius -dilate[-2] $radius -- radius=15 --erode[-1] $radius -- radius=15 [-1] -dilate[-2] $radius -- -r 25%,25% --gradient xy --a[-2,-1] c -norm[-1] -to_rgb[-1] -sqrt[-1] -mv[-1] 1 -n 0,255 -append_tiles 2,2 -luminance -equalize 256 -segment_watershed 0.005 --gradient xy,1 -a[-2,-1] c -norm[-1] -le[-1] 1 -* -r 50%,50% --hough {w},{h},1 -+[-1] 1 -pow[-1] 0.3 -r[-1] 100%,100%,1,3 -n[-1] 0,255 -if @{!,b} x={max(0,@{!,x}-w)} y=@{!,y} rhomax={sqrt(w^2+h^2)/2} theta={$x*2*pi/w} rho={$y*$rhomax/h} x={@{-2,w}/2+$rho*cos($theta)} y={@{-2,h}/2+$rho*sin($theta)} x0={$x+1000*sin($theta)} y0={$y-1000*cos($theta)} x1={$x-1000*sin($theta)} y1={$y+1000*cos($theta)} -line[-2] $x0,$y0,$x1,$y1,1,0x0F0F0F0F,255 -line[-2] {$x0+1},$y0,$x1,$y1,1,0x0F0F0F0F,255 -line[-2] $x0,{$y0+1},$x1,$y1,1,0x0F0F0F0F,255 -line[-2] $x0,$y0,$x1,$y1,1,0xF0F0F0F0,0 -line[-2] {$x0+1},$y0,$x1,$y1,1,0xF0F0F0F0,0 -line[-2] $x0,{$y0+1},$x1,$y1,1,0xF0F0F0F0,0 -endif -a x -r 50%,50% --fft -a[-2,-1] c -norm[-1] -+[-1] 1 -log[-1] -n[-1] 0,255 -shift[-1] 50%,50%,0,0,2 -r[-1] 100%,100%,1,3 -a x -r[0] 50%,50% -if {@#==1} 100%,100% _rmin=0 _rmax=200 _is_update=1 -endif -if $_is_update -f[1] 0 _rmax={$_rmax+if($_rmin==$_rmax,1,0)} -ellipse[1] 50%,50%,$_rmax,$_rmax,0,1,1 -ellipse[1] 50%,50%,$_rmin,$_rmin,0,1,0 _is_update=0 -endif -if {@{!,b}&1} x={@{!,x}-3*w/2} y={@{!,y}-h/2} rmax={round((($x)^2+($y)^2)^0.5)} _rmin={if($_rmin>$rmax,$rmax,$_rmin)} -if {$rmax!=$_rmax} _is_update=1 _rmax=$rmax -endif -elif {@{!,b}&2} x={@{!,x}-3*w/2} y={@{!,y}-h/2} rmin={round((($x)^2+($y)^2)^0.5)} _rmax={if($rmin>$_rmax,$rmin,$_rmax)} -if {$rmin!=$_rmin} _is_update=1 _rmin=$rmin -endif -elif {@{!,b}&4} _rmin=0 _rmax=200 _is_update=1 -endif -fft[0] -shift[0,1] 50%,50%,0,0,2 --a[0,1] c -norm[-1] -+[-1] 1 -log[-1] -n[-1] 0,255 -*[0,1] [2] -shift[0,1] -50%,-50%,0,0,2 -ifft[0,1] -rm[1] -n[0] 0,255 -*[2] [1] -text[-1] "Freq. min : "$_rmin"\nFreq. max : "$_rmax,5,5,13,1,255 -r[-1] 100%,100%,1,3 -a[0,-1] x -r 50%,50% -fft -point {@x/2},{@y/2},0,1,{iM} -ifft -c 0,255 -rm[-1] -crop 0,0,50%,100% --mirror x -a x -crop 25%,25%,75%,75% -imagegrid 5,5 -r 50%,50% -to_rgba -rotate_tiles {@|*20},5,5 -drop_shadow 10,10,3 -r 320,200,1,4 -drgba -r 50%,50%,1,3,3 -imagecube3d[-1] -*3d 256 -r3d 1,1,2,{@|*30} -r3d 2,1,3,{@|*50} -db3d 0 -m3d 3 (64;128^0;255^128;255) -r[-1] 640,480,1,3,3 -object3d[-1] [-2],@x,@y -rm[-2] --r[-1] 128,128,1,3 -blur[-1] 1 -elevation3d[-1] 0.3 -c3d[-1] -*3d[-1] 3 -r3d[-1] 0,0,1,{(@x/@{-2,w}-0.5)*360} -r3d[-1] 1,0,0,{(@y/@{-2,h}-0.5)*180} -m3d 2 -object3d[-2] [-1],50%,75%,0,1 -rm[-1] sigma=3 -r 50%,50% -noise 20 -c 0,255 -s x,2 -blur[-1] $sigma -i[-2] 2,100% -a x sigma_s=5 sigma_r=15 -r 50%,50% -noise 20 -c 0,255 -s x,2 -repeat 2 -bilateral[-1] $sigma_s,$sigma_r -done -i[-2] 2,100% -a x radius=5 -r 50%,50% -noise 20 -c 0,255 -s x,2 -median[-1] $radius -i[-2] 2,100% -a x sigma_s=10 sigma_r=5 -r 50%,50% -noise 20 -c 0,255 -s x,2 -repeat 2 -denoise[-1] $sigma_s,$sigma_r -done -i[-2] 2,100% -a x -r 50%,50% -noise 20 -c 0,255 -s x,2 -repeat 2 -smooth[-1] 140,0.6,0.4 -done -i[-2] 2,100% -a x --rgb2hsv[-1] -channels[-1] 0 -t2[-1] 180,210 -erode[-1] 32 -dilate[-1] 32 -i[-2] ({w-1},0;{w-1},0^0,{w-1};0,{w-1}^{h-1},{h-1};0,0^0,0;{h-1},{h-1}) -r[-2] [-1],[-1],1,4,3 -*[-2,-1] --shared[-1] 0,0 xmin={w-1-iM} -rm[-1] --shared[-1] 1,1 xmax={iM} -rm[-1] --shared[-1] 2,2 ymin={h-1-iM} -rm[-1] --shared[-1] 3,3 ymax={iM} -rm[-1] -rm[-1] -if {$xmin!=w-1" || "$xmax!=0" || "$ymin!=h-1" || "$ymax!=0} -polygon[-1] 4,$xmin,$ymin,$xmax,$ymin,$xmax,$ymax,$xmin,$ymax,1,0xFFFFFFFF,255 -ellipse {($xmin+$xmax)/2},{($ymin+$ymax)/2},8,8,0,1,255,0,255 -else 1,1 -text[-1] "Object not found",2,2,24,1,255,255,255 -image[-2] [-1],10,10,0,0,0.3 -rm[-1] -endif -flood @x,@y,0,20,1,255,0,255 gmic-1.5.7.1/zart/Licence_CeCILL_V2-en.html0000600000175000017500000007450712216303500020271 0ustar dtschumpdtschump CeCILL FREE SOFTWARE LICENSE AGREEMENT

CeCILL FREE SOFTWARE LICENSE AGREEMENT

Notice

This Agreement is a Free Software license agreement that is the result of discussions between its authors in order to ensure compliance with the two main principles guiding its drafting:

  • firstly, compliance with the principles governing the distribution of Free Software: access to source code, broad rights granted to users,
  • secondly, the election of a governing law, French law, with which it is conformant, both as regards the law of torts and intellectual property law, and the protection that it offers to both authors and holders of the economic rights over software.

The authors of the CeCILL1 license are:

Commissariat l'Energie Atomique - CEA, a public scientific, technical and industrial research establishment, having its principal place of business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.

Centre National de la Recherche Scientifique - CNRS, a public scientific and technological establishment, having its principal place of business at 3 rue Michel-Ange, 75794 Paris cedex 16, France.

Institut National de Recherche en Informatique et en Automatique - INRIA, a public scientific and technological establishment, having its principal place of business at Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex, France.

Preamble

The purpose of this Free Software license agreement is to grant users the right to modify and redistribute the software governed by this license within the framework of an open source distribution model.

The exercising of these rights is conditional upon certain obligations for users so as to preserve this status for all subsequent redistributions.

In consideration of access to the source code and the rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors only have limited liability.

In this respect, the risks associated with loading, using, modifying and/or developing or reproducing the software by the user are brought to the user's attention, given its Free Software status, which may make it complicated to use, with the result that its use is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the suitability of the software as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions of security. This Agreement may be freely reproduced and published, provided it is not altered, and that no provisions are either added or removed herefrom.

This Agreement may apply to any or all software for which the holder of the economic rights decides to submit the use thereof to its provisions.

Article 1 - DEFINITIONS

For the purpose of this Agreement, when the following expressions commence with a capital letter, they shall have the following meaning:

Agreement: means this license agreement, and its possible subsequent versions and annexes.

Software: means the software in its Object Code and/or Source Code form and, where applicable, its documentation, "as is" when the Licensee accepts the Agreement.

Initial Software: means the Software in its Source Code and possibly its Object Code form and, where applicable, its documentation, "as is" when it is first distributed under the terms and conditions of the Agreement.

Modified Software: means the Software modified by at least one Contribution.

Source Code: means all the Software's instructions and program lines to which access is required so as to modify the Software.

Object Code: means the binary files originating from the compilation of the Source Code.

Holder: means the holder(s) of the economic rights over the Initial Software.

Licensee: means the Software user(s) having accepted the Agreement.

Contributor: means a Licensee having made at least one Contribution.

Licensor: means the Holder, or any other individual or legal entity, who distributes the Software under the Agreement.

Contribution: means any or all modifications, corrections, translations, adaptations and/or new functions integrated into the Software by any or all Contributors, as well as any or all Internal Modules.

Module: means a set of sources files including their documentation that enables supplementary functions or services in addition to those offered by the Software.

External Module: means any or all Modules, not derived from the Software, so that this Module and the Software run in separate address spaces, with one calling the other when they are run.

Internal Module: means any or all Module, connected to the Software so that they both execute in the same address space.

GNU GPL: means the GNU General Public License version 2 or any subsequent version, as published by the Free Software Foundation Inc.

Parties: mean both the Licensee and the Licensor.

These expressions may be used both in singular and plural form.

Article 2 - PURPOSE

The purpose of the Agreement is the grant by the Licensor to the Licensee of a non-exclusive, transferable and worldwide license for the Software as set forth in Article 5 hereinafter for the whole term of the protection granted by the rights over said Software.

Article 3 - ACCEPTANCE

3.1 The Licensee shall be deemed as having accepted the terms and conditions of this Agreement upon the occurrence of the first of the following events:

  • (i) loading the Software by any or all means, notably, by downloading from a remote server, or by loading from a physical medium;
  • (ii) the first time the Licensee exercises any of the rights granted hereunder.

3.2 One copy of the Agreement, containing a notice relating to the characteristics of the Software, to the limited warranty, and to the fact that its use is restricted to experienced users has been provided to the Licensee prior to its acceptance as set forth in Article 3.1 hereinabove, and the Licensee hereby acknowledges that it has read and understood it.

Article 4 - EFFECTIVE DATE AND TERM

4.1 EFFECTIVE DATE

The Agreement shall become effective on the date when it is accepted by the Licensee as set forth in Article 3.1.

4.2 TERM

The Agreement shall remain in force for the entire legal term of protection of the economic rights over the Software.

Article 5 - SCOPE OF RIGHTS GRANTED

The Licensor hereby grants to the Licensee, who accepts, the following rights over the Software for any or all use, and for the term of the Agreement, on the basis of the terms and conditions set forth hereinafter.

Besides, if the Licensor owns or comes to own one or more patents protecting all or part of the functions of the Software or of its components, the Licensor undertakes not to enforce the rights granted by these patents against successive Licensees using, exploiting or modifying the Software. If these patents are transferred, the Licensor undertakes to have the transferees subscribe to the obligations set forth in this paragraph.

5.1 RIGHT OF USE

The Licensee is authorized to use the Software, without any limitation as to its fields of application, with it being hereinafter specified that this comprises:

  1. permanent or temporary reproduction of all or part of the Software by any or all means and in any or all form.

  2. loading, displaying, running, or storing the Software on any or all medium.

  3. entitlement to observe, study or test its operation so as to determine the ideas and principles behind any or all constituent elements of said Software. This shall apply when the Licensee carries out any or all loading, displaying, running, transmission or storage operation as regards the Software, that it is entitled to carry out hereunder.

5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS

The right to make Contributions includes the right to translate, adapt, arrange, or make any or all modifications to the Software, and the right to reproduce the resulting software.

The Licensee is authorized to make any or all Contributions to the Software provided that it includes an explicit notice that it is the author of said Contribution and indicates the date of the creation thereof.

5.3 RIGHT OF DISTRIBUTION

In particular, the right of distribution includes the right to publish, transmit and communicate the Software to the general public on any or all medium, and by any or all means, and the right to market, either in consideration of a fee, or free of charge, one or more copies of the Software by any means.

The Licensee is further authorized to distribute copies of the modified or unmodified Software to third parties according to the terms and conditions set forth hereinafter.

5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION

The Licensee is authorized to distribute true copies of the Software in Source Code or Object Code form, provided that said distribution complies with all the provisions of the Agreement and is accompanied by:

  1. a copy of the Agreement,

  2. a notice relating to the limitation of both the Licensor's warranty and liability as set forth in Articles 8 and 9,

and that, in the event that only the Object Code of the Software is redistributed, the Licensee allows future Licensees unhindered access to the full Source Code of the Software by indicating how to access it, it being understood that the additional cost of acquiring the Source Code shall not exceed the cost of transferring the data.

5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE

When the Licensee makes a Contribution to the Software, the terms and conditions for the distribution of the resulting Modified Software become subject to all the provisions of this Agreement.

The Licensee is authorized to distribute the Modified Software, in source code or object code form, provided that said distribution complies with all the provisions of the Agreement and is accompanied by:

  1. a copy of the Agreement,

  2. a notice relating to the limitation of both the Licensor's warranty and liability as set forth in Articles 8 and 9,

and that, in the event that only the object code of the Modified Software is redistributed, the Licensee allows future Licensees unhindered access to the full source code of the Modified Software by indicating how to access it, it being understood that the additional cost of acquiring the source code shall not exceed the cost of transferring the data.

5.3.3 DISTRIBUTION OF EXTERNAL MODULES

When the Licensee has developed an External Module, the terms and conditions of this Agreement do not apply to said External Module, that may be distributed under a separate license agreement.

5.3.4 COMPATIBILITY WITH THE GNU GPL

The Licensee can include a code that is subject to the provisions of one of the versions of the GNU GPL in the Modified or unmodified Software, and distribute that entire code under the terms of the same version of the GNU GPL.

The Licensee can include the Modified or unmodified Software in a code that is subject to the provisions of one of the versions of the GNU GPL, and distribute that entire code under the terms of the same version of the GNU GPL.

Article 6 - INTELLECTUAL PROPERTY

6.1 OVER THE INITIAL SOFTWARE

The Holder owns the economic rights over the Initial Software. Any or all use of the Initial Software is subject to compliance with the terms and conditions under which the Holder has elected to distribute its work and no one shall be entitled to modify the terms and conditions for the distribution of said Initial Software.

The Holder undertakes that the Initial Software will remain ruled at least by this Agreement, for the duration set forth in Article 4.2.

6.2 OVER THE CONTRIBUTIONS

The Licensee who develops a Contribution is the owner of the intellectual property rights over this Contribution as defined by applicable law.

6.3 OVER THE EXTERNAL MODULES

The Licensee who develops an External Module is the owner of the intellectual property rights over this External Module as defined by applicable law and is free to choose the type of agreement that shall govern its distribution.

6.4 JOINT PROVISIONS

The Licensee expressly undertakes:

  1. not to remove, or modify, in any manner, the intellectual property notices attached to the Software;

  2. to reproduce said notices, in an identical manner, in the copies of the Software modified or not.

The Licensee undertakes not to directly or indirectly infringe the intellectual property rights of the Holder and/or Contributors on the Software and to take, where applicable, vis--vis its staff, any and all measures required to ensure respect of said intellectual property rights of the Holder and/or Contributors.

Article 7 - RELATED SERVICES

7.1 Under no circumstances shall the Agreement oblige the Licensor to provide technical assistance or maintenance services for the Software.

However, the Licensor is entitled to offer this type of services. The terms and conditions of such technical assistance, and/or such maintenance, shall be set forth in a separate instrument. Only the Licensor offering said maintenance and/or technical assistance services shall incur liability therefor.

7.2 Similarly, any Licensor is entitled to offer to its licensees, under its sole responsibility, a warranty, that shall only be binding upon itself, for the redistribution of the Software and/or the Modified Software, under terms and conditions that it is free to decide. Said warranty, and the financial terms and conditions of its application, shall be subject of a separate instrument executed between the Licensor and the Licensee.

Article 8 - LIABILITY

8.1 Subject to the provisions of Article 8.2, the Licensee shall be entitled to claim compensation for any direct loss it may have suffered from the Software as a result of a fault on the part of the relevant Licensor, subject to providing evidence thereof.

8.2 The Licensor's liability is limited to the commitments made under this Agreement and shall not be incurred as a result of in particular: (i) loss due the Licensee's total or partial failure to fulfill its obligations, (ii) direct or consequential loss that is suffered by the Licensee due to the use or performance of the Software, and (iii) more generally, any consequential loss. In particular the Parties expressly agree that any or all pecuniary or business loss (i.e. loss of data, loss of profits, operating loss, loss of customers or orders, opportunity cost, any disturbance to business activities) or any or all legal proceedings instituted against the Licensee by a third party, shall constitute consequential loss and shall not provide entitlement to any or all compensation from the Licensor.

Article 9 - WARRANTY

9.1 The Licensee acknowledges that the scientific and technical state-of-the-art when the Software was distributed did not enable all possible uses to be tested and verified, nor for the presence of possible defects to be detected. In this respect, the Licensee's attention has been drawn to the risks associated with loading, using, modifying and/or developing and reproducing the Software which are reserved for experienced users.

The Licensee shall be responsible for verifying, by any or all means, the suitability of the product for its requirements, its good working order, and for ensuring that it shall not cause damage to either persons or properties.

9.2 The Licensor hereby represents, in good faith, that it is entitled to grant all the rights over the Software (including in particular the rights set forth in Article 5).

9.3 The Licensee acknowledges that the Software is supplied "as is" by the Licensor without any other express or tacit warranty, other than that provided for in Article 9.2 and, in particular, without any warranty as to its commercial value, its secured, safe, innovative or relevant nature.

Specifically, the Licensor does not warrant that the Software is free from any error, that it will operate without interruption, that it will be compatible with the Licensee's own equipment and software configuration, nor that it will meet the Licensee's requirements.

9.4 The Licensor does not either expressly or tacitly warrant that the Software does not infringe any third party intellectual property right relating to a patent, software or any other property right. Therefore, the Licensor disclaims any and all liability towards the Licensee arising out of any or all proceedings for infringement that may be instituted in respect of the use, modification and redistribution of the Software. Nevertheless, should such proceedings be instituted against the Licensee, the Licensor shall provide it with technical and legal assistance for its defense. Such technical and legal assistance shall be decided on a case-by-case basis between the relevant Licensor and the Licensee pursuant to a memorandum of understanding. The Licensor disclaims any and all liability as regards the Licensee's use of the name of the Software. No warranty is given as regards the existence of prior rights over the name of the Software or as regards the existence of a trademark.

Article 10 - TERMINATION

10.1 In the event of a breach by the Licensee of its obligations hereunder, the Licensor may automatically terminate this Agreement thirty (30) days after notice has been sent to the Licensee and has remained ineffective.

10.2 A Licensee whose Agreement is terminated shall no longer be authorized to use, modify or distribute the Software. However, any licenses that it may have granted prior to termination of the Agreement shall remain valid subject to their having been granted in compliance with the terms and conditions hereof.

Article 11 - MISCELLANEOUS

11.1 EXCUSABLE EVENTS

Neither Party shall be liable for any or all delay, or failure to perform the Agreement, that may be attributable to an event of force majeure, an act of God or an outside cause, such as defective functioning or interruptions of the electricity or telecommunications networks, network paralysis following a virus attack, intervention by government authorities, natural disasters, water damage, earthquakes, fire, explosions, strikes and labor unrest, war, etc.

11.2 Any failure by either Party, on one or more occasions, to invoke one or more of the provisions hereof, shall under no circumstances be interpreted as being a waiver by the interested Party of its right to invoke said provision(s) subsequently.

11.3 The Agreement cancels and replaces any or all previous agreements, whether written or oral, between the Parties and having the same purpose, and constitutes the entirety of the agreement between said Parties concerning said purpose. No supplement or modification to the terms and conditions hereof shall be effective as between the Parties unless it is made in writing and signed by their duly authorized representatives.

11.4 In the event that one or more of the provisions hereof were to conflict with a current or future applicable act or legislative text, said act or legislative text shall prevail, and the Parties shall make the necessary amendments so as to comply with said act or legislative text. All other provisions shall remain effective. Similarly, invalidity of a provision of the Agreement, for any reason whatsoever, shall not cause the Agreement as a whole to be invalid.

11.5 LANGUAGE

The Agreement is drafted in both French and English and both versions are deemed authentic.

Article 12 - NEW VERSIONS OF THE AGREEMENT

12.1 Any person is authorized to duplicate and distribute copies of this Agreement.

12.2 So as to ensure coherence, the wording of this Agreement is protected and may only be modified by the authors of the License, who reserve the right to periodically publish updates or new versions of the Agreement, each with a separate number. These subsequent versions may address new issues encountered by Free Software.

12.3 Any Software distributed under a given version of the Agreement may only be subsequently distributed under the same version of the Agreement or a subsequent version, subject to the provisions of Article 5.3.4.

Article 13 - GOVERNING LAW AND JURISDICTION

13.1 The Agreement is governed by French law. The Parties agree to endeavor to seek an amicable solution to any disagreements or disputes that may arise during the performance of the Agreement.

13.2 Failing an amicable solution within two (2) months as from their occurrence, and unless emergency proceedings are necessary, the disagreements or disputes shall be referred to the Paris Courts having jurisdiction, by the more diligent Party.

Version 2.0 dated 2006-09-05.
gmic-1.5.7.1/zart/README0000600000175000017500000000404112216303500014661 0ustar dtschumpdtschump-------------------------------------------------------------------------------- ________ ______ __ /\_____ \ /\ _ \ /\ \__ \/____//'/'\ \ \L\ \ _ __ \ \ ,_\ //'/' \ \ __ \ /\`'__\\ \ \/ //'/'___ \ \ \/\ \\ \ \/ \ \ \_ /\_______\\ \_\ \_\\ \_\ \ \__\ \/_______/ \/_/\/_/ \/_/ \/__/ -------------------------------------------------------------------------------- # Summary #--------- ZArt is a computer program whose purpose is to demonstrate the possibilities of the G'MIC image processing language by offering the choice of several manipulations on a video stream acquired from a webcam. In other words, ZArt is a GUI for G'MIC real-time manipulations on the output of a webcam. # Developers #----------- - Sebastien Fourey ( http://www.greyc.ensicaen.fr/~seb/ ) Project manager / GUI Programming - David Tschumperle ( http://tschumperle.users.greyc.fr/ ) G'MIC scripts # Institution #------------- GREYC Image / CNRS UMR 6072 / FRANCE Team web page : http://www.greyc.ensicaen.fr/EquipeImage/ # Licenses #---------- The C++ source code of ZArt is distributed under the CECILL v.2.0 license (file 'Licence_CeCILL_V2-en.txt'). This License is a Free-Software license, compatible with the GPL (using those files in a distributed closed-source project is then forbidden). The CeCiLL v.2.0 license ( http://www.cecill.info/index.en.html ) have been created under the supervision of the three biggest research institutions on computer sciences in France : - CNRS ( http://www.cnrs.fr/ ) - CEA ( http://www.cea.fr/ ) - INRIA ( http://www.inria.fr/ ) # Dependencies #------------- The following libraries are required to compile/run ZArt: - libqt4-dev - libcv2.1 - libcvaux2.1 - libcvaux-dev - libcv-dev - libhighgui2.1 - libhighgui-dev - libfftw3-3 - libfftw3-dev -------------------------------------------------------------------------------- gmic-1.5.7.1/zart/Makefile0000644000175000017500000003176512216303500015466 0ustar dtschumpdtschump############################################################################# # Makefile for building: zart # Generated by qmake (2.01a) (Qt 4.8.3) on: Wed Sep 18 12:58:07 2013 # Project: zart.pro # Template: app # Command: /usr/bin/qmake -o Makefile zart.pro ############################################################################# ####### Compiler, tools and options CC = gcc CXX = g++ DEFINES = -DQT_WEBKIT -DOPENCV2_HEADERS -D_IS_UNIX_ -Dcimg_display=0 -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) CXXFLAGS = -pipe -O2 -ffast-math -Dcimg_use_fftw3 -Wall -W -D_REENTRANT $(DEFINES) INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I.. -Iinclude -I/usr/include/opencv -I../src -I.moc -I.ui LINK = g++ LFLAGS = -Wl,-O1 LIBS = $(SUBLIBS) -L/usr/lib/i386-linux-gnu -lX11 ../src/libgmic.a -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann -lfftw3 -lfftw3_threads -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread AR = ar cqs RANLIB = QMAKE = /usr/bin/qmake TAR = tar -cf COMPRESS = gzip -9f COPY = cp -f SED = sed COPY_FILE = $(COPY) COPY_DIR = $(COPY) -r STRIP = strip INSTALL_FILE = install -m 644 -p INSTALL_DIR = $(COPY_DIR) INSTALL_PROGRAM = install -m 755 -p DEL_FILE = rm -f SYMLINK = ln -f -s DEL_DIR = rmdir MOVE = mv -f CHK_DIR_EXISTS= test -d MKDIR = mkdir -p ####### Output directory OBJECTS_DIR = .obj/ ####### Files SOURCES = src/WebcamGrabber.cpp \ src/ImageView.cpp \ src/MainWindow.cpp \ src/ZArt.cpp \ src/FilterThread.cpp \ src/DialogAbout.cpp \ src/CommandEditor.cpp \ src/ImageConverter.cpp \ src/DialogLicence.cpp .moc/moc_ImageView.cpp \ .moc/moc_MainWindow.cpp \ .moc/moc_FilterThread.cpp \ .moc/moc_CommandEditor.cpp \ qrc_zart.cpp OBJECTS = .obj/WebcamGrabber.o \ .obj/ImageView.o \ .obj/MainWindow.o \ .obj/ZArt.o \ .obj/FilterThread.o \ .obj/DialogAbout.o \ .obj/CommandEditor.o \ .obj/ImageConverter.o \ .obj/DialogLicence.o \ .obj/moc_ImageView.o \ .obj/moc_MainWindow.o \ .obj/moc_FilterThread.o \ .obj/moc_CommandEditor.o \ .obj/qrc_zart.o DIST = /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ /usr/share/qt4/mkspecs/common/gcc-base.conf \ /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ /usr/share/qt4/mkspecs/common/g++-base.conf \ /usr/share/qt4/mkspecs/common/g++-unix.conf \ /usr/share/qt4/mkspecs/qconfig.pri \ /usr/share/qt4/mkspecs/modules/qt_webkit_version.pri \ /usr/share/qt4/mkspecs/features/qt_functions.prf \ /usr/share/qt4/mkspecs/features/qt_config.prf \ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ /usr/share/qt4/mkspecs/features/default_pre.prf \ /usr/share/qt4/mkspecs/features/release.prf \ /usr/share/qt4/mkspecs/features/default_post.prf \ /usr/share/qt4/mkspecs/features/warn_on.prf \ /usr/share/qt4/mkspecs/features/qt.prf \ /usr/share/qt4/mkspecs/features/unix/thread.prf \ /usr/share/qt4/mkspecs/features/moc.prf \ /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ /usr/share/qt4/mkspecs/features/resources.prf \ /usr/share/qt4/mkspecs/features/uic.prf \ /usr/share/qt4/mkspecs/features/yacc.prf \ /usr/share/qt4/mkspecs/features/lex.prf \ zart.pro QMAKE_TARGET = zart DESTDIR = TARGET = zart first: all ####### Implicit rules .SUFFIXES: .o .c .cpp .cc .cxx .C .cpp.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cxx.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .C.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" ####### Build rules all: Makefile $(TARGET) $(TARGET): .ui/ui_MainWindow.h .ui/ui_DialogAbout.h .ui/ui_DialogLicence.h $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) Makefile: zart.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ /usr/share/qt4/mkspecs/common/gcc-base.conf \ /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ /usr/share/qt4/mkspecs/common/g++-base.conf \ /usr/share/qt4/mkspecs/common/g++-unix.conf \ /usr/share/qt4/mkspecs/qconfig.pri \ /usr/share/qt4/mkspecs/modules/qt_webkit_version.pri \ /usr/share/qt4/mkspecs/features/qt_functions.prf \ /usr/share/qt4/mkspecs/features/qt_config.prf \ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ /usr/share/qt4/mkspecs/features/default_pre.prf \ /usr/share/qt4/mkspecs/features/release.prf \ /usr/share/qt4/mkspecs/features/default_post.prf \ /usr/share/qt4/mkspecs/features/warn_on.prf \ /usr/share/qt4/mkspecs/features/qt.prf \ /usr/share/qt4/mkspecs/features/unix/thread.prf \ /usr/share/qt4/mkspecs/features/moc.prf \ /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ /usr/share/qt4/mkspecs/features/resources.prf \ /usr/share/qt4/mkspecs/features/uic.prf \ /usr/share/qt4/mkspecs/features/yacc.prf \ /usr/share/qt4/mkspecs/features/lex.prf \ /usr/lib/i386-linux-gnu/libQtXml.prl \ /usr/lib/i386-linux-gnu/libQtGui.prl \ /usr/lib/i386-linux-gnu/libQtNetwork.prl \ /usr/lib/i386-linux-gnu/libQtCore.prl $(QMAKE) -o Makefile zart.pro /usr/share/qt4/mkspecs/common/unix.conf: /usr/share/qt4/mkspecs/common/linux.conf: /usr/share/qt4/mkspecs/common/gcc-base.conf: /usr/share/qt4/mkspecs/common/gcc-base-unix.conf: /usr/share/qt4/mkspecs/common/g++-base.conf: /usr/share/qt4/mkspecs/common/g++-unix.conf: /usr/share/qt4/mkspecs/qconfig.pri: /usr/share/qt4/mkspecs/modules/qt_webkit_version.pri: /usr/share/qt4/mkspecs/features/qt_functions.prf: /usr/share/qt4/mkspecs/features/qt_config.prf: /usr/share/qt4/mkspecs/features/exclusive_builds.prf: /usr/share/qt4/mkspecs/features/default_pre.prf: /usr/share/qt4/mkspecs/features/release.prf: /usr/share/qt4/mkspecs/features/default_post.prf: /usr/share/qt4/mkspecs/features/warn_on.prf: /usr/share/qt4/mkspecs/features/qt.prf: /usr/share/qt4/mkspecs/features/unix/thread.prf: /usr/share/qt4/mkspecs/features/moc.prf: /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf: /usr/share/qt4/mkspecs/features/resources.prf: /usr/share/qt4/mkspecs/features/uic.prf: /usr/share/qt4/mkspecs/features/yacc.prf: /usr/share/qt4/mkspecs/features/lex.prf: /usr/lib/i386-linux-gnu/libQtXml.prl: /usr/lib/i386-linux-gnu/libQtGui.prl: /usr/lib/i386-linux-gnu/libQtNetwork.prl: /usr/lib/i386-linux-gnu/libQtCore.prl: qmake: FORCE @$(QMAKE) -o Makefile zart.pro dist: @$(CHK_DIR_EXISTS) .obj/zart1.0.0 || $(MKDIR) .obj/zart1.0.0 $(COPY_FILE) --parents $(SOURCES) $(DIST) .obj/zart1.0.0/ && $(COPY_FILE) --parents include/ImageView.h include/MainWindow.h include/WebcamGrabber.h include/FilterThread.h include/CommandEditor.h include/DialogAbout.h include/ImageConverter.h include/DialogLicence.h .obj/zart1.0.0/ && $(COPY_FILE) --parents zart.qrc .obj/zart1.0.0/ && $(COPY_FILE) --parents src/WebcamGrabber.cpp src/ImageView.cpp src/MainWindow.cpp src/ZArt.cpp src/FilterThread.cpp src/DialogAbout.cpp src/CommandEditor.cpp src/ImageConverter.cpp src/DialogLicence.cpp .obj/zart1.0.0/ && $(COPY_FILE) --parents ui/MainWindow.ui ui/DialogAbout.ui ui/DialogLicence.ui .obj/zart1.0.0/ && (cd `dirname .obj/zart1.0.0` && $(TAR) zart1.0.0.tar zart1.0.0 && $(COMPRESS) zart1.0.0.tar) && $(MOVE) `dirname .obj/zart1.0.0`/zart1.0.0.tar.gz . && $(DEL_FILE) -r .obj/zart1.0.0 clean:compiler_clean -$(DEL_FILE) $(OBJECTS) -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean -$(DEL_FILE) $(TARGET) -$(DEL_FILE) Makefile check: first mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all compiler_moc_header_make_all: .moc/moc_ImageView.cpp .moc/moc_MainWindow.cpp .moc/moc_FilterThread.cpp .moc/moc_CommandEditor.cpp compiler_moc_header_clean: -$(DEL_FILE) .moc/moc_ImageView.cpp .moc/moc_MainWindow.cpp .moc/moc_FilterThread.cpp .moc/moc_CommandEditor.cpp .moc/moc_ImageView.cpp: include/ImageView.h /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) include/ImageView.h -o .moc/moc_ImageView.cpp .moc/moc_MainWindow.cpp: .ui/ui_MainWindow.h \ include/WebcamGrabber.h \ include/WebcamGrabber.ih \ include/FilterThread.h \ include/Common.h \ include/MainWindow.h /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) include/MainWindow.h -o .moc/moc_MainWindow.cpp .moc/moc_FilterThread.cpp: include/Common.h \ include/FilterThread.h /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) include/FilterThread.h -o .moc/moc_FilterThread.cpp .moc/moc_CommandEditor.cpp: include/CommandEditor.h /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) include/CommandEditor.h -o .moc/moc_CommandEditor.cpp compiler_rcc_make_all: qrc_zart.cpp compiler_rcc_clean: -$(DEL_FILE) qrc_zart.cpp qrc_zart.cpp: zart.qrc \ presets.xml \ Licence_CeCILL_V2-en.html \ images/zoom-original.png \ images/Logo_150.png \ images/zoom-fit-best.png \ images/gmic_hat.png \ images/application-exit.png \ images/camera.png \ images/media-playback-start.png \ images/LogoGreyc.png \ images/media-playback-stop.png /usr/bin/rcc -name zart zart.qrc -o qrc_zart.cpp compiler_image_collection_make_all: .ui/qmake_image_collection.cpp compiler_image_collection_clean: -$(DEL_FILE) .ui/qmake_image_collection.cpp compiler_moc_source_make_all: compiler_moc_source_clean: compiler_uic_make_all: .ui/ui_MainWindow.h .ui/ui_DialogAbout.h .ui/ui_DialogLicence.h compiler_uic_clean: -$(DEL_FILE) .ui/ui_MainWindow.h .ui/ui_DialogAbout.h .ui/ui_DialogLicence.h .ui/ui_MainWindow.h: ui/MainWindow.ui \ include/ImageView.h \ include/CommandEditor.h /usr/bin/uic-qt4 ui/MainWindow.ui -o .ui/ui_MainWindow.h .ui/ui_DialogAbout.h: ui/DialogAbout.ui /usr/bin/uic-qt4 ui/DialogAbout.ui -o .ui/ui_DialogAbout.h .ui/ui_DialogLicence.h: ui/DialogLicence.ui /usr/bin/uic-qt4 ui/DialogLicence.ui -o .ui/ui_DialogLicence.h compiler_yacc_decl_make_all: compiler_yacc_decl_clean: compiler_yacc_impl_make_all: compiler_yacc_impl_clean: compiler_lex_make_all: compiler_lex_clean: compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_uic_clean ####### Compile .obj/WebcamGrabber.o: src/WebcamGrabber.cpp include/Common.h \ include/WebcamGrabber.h \ include/WebcamGrabber.ih $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/WebcamGrabber.o src/WebcamGrabber.cpp .obj/ImageView.o: src/ImageView.cpp include/ImageView.h \ include/Common.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/ImageView.o src/ImageView.cpp .obj/MainWindow.o: src/MainWindow.cpp include/Common.h \ include/DialogAbout.h \ .ui/ui_DialogAbout.h \ include/DialogLicence.h \ .ui/ui_DialogLicence.h \ include/ImageConverter.h \ include/ImageView.h \ include/MainWindow.h \ .ui/ui_MainWindow.h \ include/WebcamGrabber.h \ include/WebcamGrabber.ih \ include/FilterThread.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/MainWindow.o src/MainWindow.cpp .obj/ZArt.o: src/ZArt.cpp include/WebcamGrabber.h \ include/WebcamGrabber.ih \ include/Common.h \ include/MainWindow.h \ .ui/ui_MainWindow.h \ include/FilterThread.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/ZArt.o src/ZArt.cpp .obj/FilterThread.o: src/FilterThread.cpp include/FilterThread.h \ include/Common.h \ include/ImageConverter.h \ include/WebcamGrabber.h \ include/WebcamGrabber.ih $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/FilterThread.o src/FilterThread.cpp .obj/DialogAbout.o: src/DialogAbout.cpp include/DialogAbout.h \ .ui/ui_DialogAbout.h \ include/Common.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/DialogAbout.o src/DialogAbout.cpp .obj/CommandEditor.o: src/CommandEditor.cpp include/CommandEditor.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/CommandEditor.o src/CommandEditor.cpp .obj/ImageConverter.o: src/ImageConverter.cpp include/ImageConverter.h \ include/Common.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/ImageConverter.o src/ImageConverter.cpp .obj/DialogLicence.o: src/DialogLicence.cpp include/DialogLicence.h \ .ui/ui_DialogLicence.h \ include/Common.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/DialogLicence.o src/DialogLicence.cpp .obj/moc_ImageView.o: .moc/moc_ImageView.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/moc_ImageView.o .moc/moc_ImageView.cpp .obj/moc_MainWindow.o: .moc/moc_MainWindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/moc_MainWindow.o .moc/moc_MainWindow.cpp .obj/moc_FilterThread.o: .moc/moc_FilterThread.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/moc_FilterThread.o .moc/moc_FilterThread.cpp .obj/moc_CommandEditor.o: .moc/moc_CommandEditor.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/moc_CommandEditor.o .moc/moc_CommandEditor.cpp .obj/qrc_zart.o: qrc_zart.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/qrc_zart.o qrc_zart.cpp ####### Install install: FORCE uninstall: FORCE FORCE: gmic-1.5.7.1/man/0000775000175000017500000000000012216303462013616 5ustar dtschumpdtschumpgmic-1.5.7.1/man/gmic.1.gz0000644000175000017500000013055412216303462015244 0ustar dtschumpdtschumpf9Rgmic.1kF(=BÙlAml7MlH2L$G6&>%GtewGn`wfж\ZjzΫOo?{< ^ƫ0>_}UNo}yg|2[&`xY fq(YF8X$.$*Σ2" ygsˈ($-|o/|'8ԣo~jxE3 ʖu Cul-[0hu>Bhl^G_l'80:Lb2_/E1r=Sd|ȳ1@- zax:x=ɖ(Q>z!針Λ7A<Ϲs3= oID)30$6҂:tQPLdUOQ K3ˣ 0$*E"\%xq - 3u/M29% d,ˤXGJ,4FAC"Mt,׋2xRZKjf2NKk*+b@\-E8)ތPL 5_/X~'`Z xSV=<Kk jt")J%]/qh<¡3iǀMP+ț0$iQfCҌ׈e-mgLn'}pq'Qu #[44cl ^ Nu (N*/39Pg\vZ6`Mf[,-/ |^F̣<8W@N'׏'|>zC2\ ZCa 3|cwpa ^fx:b"[`GEB }x"3'I {vxXBN4>Gzd,rI.L_L5e HbI{QvE` Qc8'& Ch"%Ru8bJ dyr?fkBX@a w1oyDG~U;=TS/qG3Qk" s]:a*LzPLqu x3D\Op j_IY0wJ}x ŭSLEÞ]qui,nD$p]/[Ex( ppQ:N!:"fp1ݙ@OaXCKdv]%r3a%%t}T-2:xKlF81XmUSOۦbACjWWt;\8FHzC!ÉW-x Y@wxؤ 0'欕} O3X`͑Ǵi,d0oGGp f ~![lȰ a\=e90 h@'id`4 hFQ QQh?o%'/ N ":0hwўEls:]*^_p}<GZiEy^Lqˌ U8`e wb3^%z6ʦ+ Gq`UTxa"~VI¾rM\{1CP-BbpxKk*YUlFK"7,$? ^|C&⇀ud/r;Awp- zX8xg5=֩p*kݰv&8z[r$gΔ0ɦ$sCSq%:]JuXSoWY6oNwom ri 2~ћ -:[R= b*ƾg5Բ/;}sڅaDNiWBYrerb%lEN8()ITfBi.D ?p/#N3"j;$sFTKY|tpۋiN\Ecqp Hˑ+.xnoIGJ/7 mG{x& |ٴ>k#_,YL'5 qEĽїM7d_s]^KNgRix;G4 y5 N.|,p=!cv? x!׵pV%G>P[k4 S:p"\L8 8M',4[m(n6qǬ<CKdδF`Rhbfs]U4-+ì: }XF_qSU 쐠wi538'":4:V ^h#օ1H# !d9Yd"bFS9.`tA~ed$s& g:[(ID}*$= dcnait>cbU:tO,[wS}OJ;ǚ9| '}6W7u(- ㍚hoyV{0 _LVWUQ/)2^Y8lIw?}X$'%ƈ5 )p1`;U1=)k{## ZQ6p~ 0f-(ό:""No$ϾHq.x'%,7yݱ]@° 2 "}!طpj}L"t!O2bH!,"\f_/< ` 7n1YÆHCb)F6ۅT =E92OBfy Vy.{%[6%m6mAB6"*J&μ9Fß< BIOόW/AHVgG ,Y0o~9ťΓ JOBȱ}r ==ܾ[X֐ {*.Ɋi]if1l^XDVl2 -c7S'M Yd}Q9ƨxxeNy7gP¬7$oDdyl -P1*2Y$O).OD&5xu Y1AGsg)BP cQ.ۏlK<mX:f,.WX}M$lshjb!#b b6~,n:K+ybRh51Q3ejXs9dQS\i Kb̈͸Oy-Ӷ &BgT(-Mn>Ob7'.o^?^Yu7j7Ó=z9}sxJ̤[Kgoku? DjO!~-[$wÓHz;e F*(ư D~$L|ȒeBO*SY`viMPT,BmtOֻaZ&.۽?nn2x(^^hBo_G!LCOLzNŕKZw.\\aY0,rYRW rDS@ETN Cb"58G3<¥,l%" >($5'm-mb{AVxK#W<[XӲnJlhBǂ< zzAq1)ebOVh#LyN!Y:*|DR|'e=duXQŞWH}i=g72CH:CJu:ad[%Fhh ]Vx,q'Vv`ј\ WgU/A'(՜0ݸ-DǥZK @[96ժ 0GLFߎ߭qySeaxX5˜ՒZqbW.+LmqBE] ܷVnP/KXAG.jΟ:^/_ui\pzYU=s' C\B&ZR"tF+v 9xi:#]U)fV)YkVZcQSxsHA޼H>qetz5osN' 'JipX#4O==ݣayYr%[r3tt: .Q,Nq'M"J$ͩ vx}ɃG2>9_\o>?$ C}=@2I*o 9pvA';n;i E]Wc6&^\6cx D BwLƘʝl v60%H4R dcw!;b6_xnҜ΋F-T72(:OʣWsLF鉋?L*GO,83_ʿ-L(EWQײjkX<h 4h6[my/fX$^ju+28Va3VB6&}F=7\(`߇ 'Q;Mk8AE *a+9:>8=L3&/a^ UB_/ǛRG:x bj#l L|P_:<ΑݦkTp.`E{JJ11٫iߒi)*=Q}v$Զ Тl_!M4eI^?}:D7o7M̅< `k|8v,DOLZ{(,p$=k:Dw cۊS0q V7:NZF 3:@En*;\0d`P4s-B1a0nr%YEqmz2QW3,\Z잩uXS4-N= v / 3ٮ/[[6Ai;BQoUkpzceځhu~^?F^}7ov~ qJG9&X6;,jD kS79-ԏ.kgqIKv8^0@FV诞:m@JqxѢ"G#5iS=dԘe:imJωsSqr p0LȝxB5/>񅕣f6IxQڅEo*›|Wk@K @&hR|(3x3K;=RA8d-k`` YJ]+r'cCMFSS[IcQeˊ+L$%s"ՊpnQE̋ИpFzbXl9Ѭ`NZCxM8!z'ZQkox[fi `oQ)~}'n<̈yC-sK1)NYvEPT^1IGJ?Xgu쾕GjNkOQӜd }:gE|/l>m}yͥY~=H֓m laNJ"Fu cTn?w/JH{ BީCְ"4zZ$ԭ6* II2A%&UڛJkX~bNf{Rf XxOlbq ,!E$/*ai\|nDKعrc7b<6$va26(f2m!Ju}O6,]np3<%B6v?<銿 =V1/LRʎfvLG]w,A3a\ɴ`̾26{*@y%]ԼIfsz/ޥh}U. EG-v G7%*ޛ8LK^,̋:& ޾Wgq__i lH9_U8׿t6?bn䘬G k42B !WpպMMZ6kb@)qF9sϱSzH_ ݵ2#UxMa|:ޘ-Mɖo!e Sd9Qt/0Iu[lUȊ,;G[j#>APRѨ6E#mJf]W'>a{ VIG_XwN:%ӰSvv؎A> )ܱ$'~^A1yk)C7ΙEhëu:N66'n&QhÝ7= "hC[пl)[PC!~ۜ&,b4ɓ|kiSHw.ďu*%^+w‰Wgq܅^kq' H6*lLR:҄+׀kANÓZeJ<+#8k&xp!ʇFnG^ݝ{@fUķ _?+OuK S7RFat ::;,(wce :YU2"S8R>nd5 E$H5 K4C?I=|u7RA`4ﳸ []x&dٸVXU?x}&.M. nuYkȌL^R.+T(S+=v܃Ujl?Vġ:{ٴK7X uߧp< iXwsJlDHLn}\̂|>ނ[hƃfUT(xv#&ZȮn&'k/SR<caN$rWpع?)'EPkz|Ϛ;7sw}(bqL[Pa*Vl?'r[1 O 2NNs,VF_ъ[Q8vAM9/;7'!A&/Z1{NV̩(%ī ' uuG۷"%X'b(.I (A ///1kz'%b]exwN3-zAF?p@Ãˀ:5!ptaHF8x.Ҝ* Cw;ֽR!-GBAR H%@ {?,&v%O}mdGnyA x|nozYRp5ů}unsJdZT| fE7 $a4ꅝI=|4J Є}uc/+jf,Yl\}ᵮ>C!XTlu ׇPNBd%Oҕ_l&Q'ZQKB#JfMYKz_ЭMV8hq;]c*_N$^=OZ!,wܷmc57N 17gIYD4/lUe 2f]"gsco2[s&*|}%vYkxY[s&vcxZU¦s<x wiwwyAFK~Zw2xDxwi(  HnUDe nzޥ,Z ZU8"t(与 ߒ,U /vB(M`Ő\`ײǥP{6IR_sV\|HRU?^8V(:: wNSnNyW B( ;ք,+e?ۈe멤$t2~49'zg U)^][՜{ sR ,vC#7-IC&XU9EdQ2.ͧ.S쟝ɱ*0XE^H0k8C};@1(;}0ߒ4'u_[o*M* 룮O? vp4Gp4 Gޟ-H4j ^Ieq8 [@ק)v%Oxx'c}Ra )l@nyrI9\BiiJ0B,7brwx_*cGdyz㯾Q[Sx- 39:m &"#A+|=/_Zhh}ͷv|{C?>޸vK'6K]^^fF:zz}1]ݛT#`2WS9z~;Ndv~^=jb{R@e2"<-z_dS%Gcͭ5+ 4\/3#pŔeUs/G{mޖ.G(?RLfnA/-YcC$]DL$⍩Í@?hhs䔝23ZI'^vZ>B#?⮩{*#4&t &㊿tPq*:Tm-Θ6e{P?SގdX![GI(f)5,l I?;)ht QlgЀ`nP$5}¹+Kv.&8ziiaÓT#8?gutjנmZ؁rs d O2  ;HʅV(HRG⢔(ǒ"r 0PfX^V~tY@ImeԷBj+j٭tVI.Ҹ_fMaZX/9'UHǰ2 A6(3 + .dc$vh=9tifl#pkռtTN$t?$JR0+_9"*Ed^4j)9Zٍݺ,w <`>Ti.UB*SoZvBJSѠ,WL,p%n0 =@NWXŅCψ.#k?o o,(Ud.MKmgal kq&kl*#Y*D@5&Qe9#zhLc3sHRZSSHr ==k{N.j+:"M)#zg9ٌOkN,z|'12 6jZs*dV/,;yƵ$S7ԝ=9ǖ]Gۯr[egPSVrO*T=-%+|֊joNTI)lvlq@u:Prj>M3Gwիoq4;zNtx5? ^ }UMyVykA-@6EyVO,SKQ)vf@9RՒLZZR#f d SgʡSPaPRZ9CPFx))Ν)g3h>O4g<=F-'aG+FBm6RH X|c>" r r/TjqH4؀jϴ嗠LR\yX1¾mmrdqlPYcXbaQݳf5Tg>bK37j~vPv4lJ2/pg,;0R I]IVpw Y vvp2diCA׎Q -bOMtJyr 5j'\M;Zhbw|¤csUї긔hHyikEmWa#ѓQeU~ zFd8T>`xA,%= [Ap΄=e~t> Z.VK;`z[Uǻ af($.9X]ŋ6N2Nez]yt__|i7 `Un֤ ćR-c_M%1,GR]}D'$!ϡG81wvV=W$ކ%:s1:w) zn]0jVet]&z+&mpJ7 $MXj˧}fn#A17ڄ-} x;ܼ [@8߂:w=uXQpV4) yH_6l|6P/ًO뺁r(5yF-K7k1y6"qU'$PdtPz2˨9z I#17`;wt; #~+~l^:>F9}^$3RQn*a' ,(mt7m&jhIF4Q^b7mSUS)gaU3 }ڇp"Q׭5*}{BfOs@M=1 9'[{'F+Tp&˙Zx2̘RaLVZJqֳ4X_nG~l~F\׳ҷRH׳[t }4Q#p܋dݧPI}7EpNrv8=;YZZm 3!0ӛϧŠXfY9Kb 7]$n / .ZU5v%8Ǻ78 <7HYT2tT;v 'bkݽXm(JT$CSz}qG3NCo`zFB^YGoPIKTY7ZʯFWo5"\~oS5$/@ʻe&!; vAneRd͓Km ߫fHn.PlS] YJQ<`TGWvB8ޒLې-+iӵL渇<.Y\I$RcfJ cpT`[J R_XyAX?QE{aM#{t0ɳgIOA٠eўn? %<"ZoHm7d*A .[acUK3{꒶VU%S \ه"t]k[U|+EXT^F+D*5Mtz"& ui.v`'1g4]+ P[ZPUJtdB_wnoH:a95k۷.AGG27h*A:qAG'gĕPk/".ϰI ؈YaߒL|m̸z"f B[ 㒘֗Ҷokjۣ%5[5xW-s,1_ON'`R|BD]UFy\Hi 3wٺzL^bgX"8چD.90l}XϠ25F ҳ̨`Y(HFjӠئWpkhҬEU1ԫ,gcpD~\OuCW~ks:yX41<;v"Tq̈́Fl6Aߴ["m?tj5usk9&wC8 s֢hK:wD&p$b%fWbQ}Xƙ _~9 z' 9aRχ'S!c{s 5҃/Oir[#ͨ^:B~^窷Wg:9|_8rӘ܁P*'Æ]Au%7a'|ܚfqgBzUq$T"{UTwQtb.pd;j:`AtGq(2)$/5\CbvJuWQc׾c\LS\r(RR `y2aʌ:CbJ=aŚYqo/7"R;6\Eyz .(ּ͚ж >GW4 \ۗ^##"I⠇iuu*JM bB%G"'5~{8ExMT1Ő.go6&=躣wTS4Nb.q␄CPp%)ɒ'+/%(\98[X,,`m7\6)pHPqU0 /6UxV<Ue􂁓՚s^i}B]/|D;{1MJ/RB_~iľ $|-GwWSN.1mDލ{0-좿R߳W:HIuWU/do!Q,oV{hr=ok-"RN5ákx -$Y5yn9@{ ݂s@+CgΖ_ nyoC ;ui (i N{?۾W6*Mm zԣz!ƍچ5Z9좲̓M'ωlqq /K}0Z}#{i^*Eп>?}{_FQh+eSgeTreŽC&J7;Aǝ;΂ϱ#6d冃_O~;h3HٿEƲE鋈g(8FN]؏HgwMe[ >Hc{oK4;QNʩke'vd`N(&<<˼b==qa*,W2得un49xG_|gAgZƔv%,6f}Nd<>\(5gI3Y< ή3!监$q.f< y6hڦ )=gI|DG<9rT?5Pj=髊Zܶ$rn&!Ԁ4y_0ֶs"D 1rsB$7b.'Ϋa4Nn.g$7t4)IX* dɳF qah,P8(ùj܂D Ae1ź'4+G\nhpkG+jlR2lNJ(•qRtVhyܻ sܼn>gAtqgH^{YjThͩdVԙx47pJ-RRO\{9R7Y¼h|#ݚ<~ysY@N?S/Vc,nHwT1 5ԫ{o3|%ͬɆKwnfDDhd$DJ)/la'wfr2I5қsO>N/cOԜzñJ2sUPfc}7/ kiökz-b н)\T쾕)@[VρHQm"};tjY8T˿Q(Iլ??E4'qae䵱bb0xqFQ^.:@n/c2~oȭm(0r9F'5k7ZP.LJn<|W"GUu @SUwTΪ}mHei_%1"z)[)@[EZNiÞS?y_Ϩ@o_tD`zof 6fw.]1@;n IaIEy(6  [#g4bpngdLѺJU@;U}6go&-*iy&I;m\7D-FBYD];Wj{b?j ,F <[(I@q9JwHIX6# }H/ifdֽDU`i{;)FF"̼daJ& 㘠fk'ugG=F0hɾRRsZa٠'!Eic\  }/r D9R貂W_$՛ HWB5FXkSwRʝ3[8/E Fo4qt&/W)tS%8J,<$Rl]R\#EHI&J-"_j3IBNWz5ಣs۝AbClsf=XVU,Ոxv"U&IV {}7bu5eM ")YȜ|vŪv Sz @;ų-U(Vcb<VàSo7ap2,fDC3 z8|! .=bУfpɠˠ쨮Af~ b5~Y:ͺ#G7@r#)2uڵm6GBc[i<,ۤ" T Mt/@j7tEhUS kk-1\\6<tl'WE]ꦦ/+/]BkLX,A!0ż΂ely 5o=:|x1:Ł~E4/&}.cojJ-Ӆ.dއ>z;8as@oFZQ`W /z00>|S| OO/H4kLRfi2Pr}@t.U\lurb_ IO2h$58l>l')WbYKLkfy2Ui -h z l(5S/3 @{G8hF-nw.;7o^[C$N9"] G$ /k8a. l?әz_?8 @ cR'X@u[TT_۰=xk-2[vV$i*`%?(7:zߋX^_R_2oAȋxE Oa|ϱz54: %֪lK|.`WLB̖F͟3k2"Vo"뼻1xlA y|\xl2XI5BF#ꄽvoTvjh@}J?ñ'e#!?(n{q%W$$H ##1n,Mm':vFG$maǢM˘ ?)VBI+VDj De0s-2MY^h%2Z^Pӂ|x c: a`IsiPJ' qT&G ]ECƬyT[g4 lQѾ=w*⍪PU[be+=k/>i!,en;OEigxZ Kt>8FΏ; .huӛ,b2/+mK›뷓w$VZX1O=U)Vy=1 2= Έ~:5BދR9q?M'/^K^+5J4Jx}(fjpଆQerET]ŘMP^]1Z F`'5Gy0uV-nhNn;5 X%j>- 4ma>h' ƶI [a'sgS`h>>xNGܞUwta}} 7m7]]ʃ# (lqN&z`/af,ls::߹ۄ ̜-kyEetA(q2+BJP, ,t1(() z+577wm;wH#}C;þW2Jvvzxg͓])V\2=LJ gqaxW|_1ϓb/5{z>hQv2v a_q8dzQ, JsHi42և5Y;uFY3 "+|B j1_v{^ wd W1EUTa:XN|&uJ{0pϭZ.ay4>Z,`ùP8tS{b9ow4`ӓբ/v%ah'UPm_z"ɸtnd^$9x|a=5R<#Q]Nv>A$elqn n%`h`ct MsN3s骎L`W%3צhOyWF:3s&vrlms`WĽ%c@8bbM/rI<[m$kQ'N "{W 4AhT23|z#ͿTٺī~rױӍzAשD+nMΦ[,[L1>îF#\PIYE',LVJOج J9XŠq,>ǚMM$m(:.NA)N^h'|mXh_ޛ>Ock[U̪Tk~ #UH̥dA*Y$ # +]zP2w>FC 3*N|k_2)}lI;ͤT:V1K'шYuQX^Ǯb&I>U"f|kcB XZѕ p첉8~% o4;fqs%6Sͼ69ߚeuVRgA:ӗ\xg%F2s*=LQ%/%\+U_791i`{?#Éxsn(H8&f$RQ4i U\Љ^¬ӑc^ ٣KuceT |=L~PRuJdW"6{ 3a3SwUNz>9H7=w'?qZ˅'odrȇMsRWss0IѩtǾJ|#`ݞG~~(\R4ìU Es*5:bT$IIBI[TCJL((\$pLHaKMީCyU[Xε/.69p5Vmaת\< [_6_@ u`AK rtȮ pYmYqJǢA+:l$nrԖdy9FA XrT$X?]QI&AKWXm [yi;̞Gg[$#ZA QG+:b}a :O7loH|lq@Eԏ"Na}tV+b,2usYG[>AK2?lr.pe.Xml%h8~pr]F0ׇ5Z&ă$"kUJ}DS掝,y8 4$B dlhvۀ?Xӝcam&z(Fd#KA-Hwv*.Qàvf\ZpΙoÞ(%pGMԙRgՕ*LCb)pkq8;s4O'e0$C|ӃO'=6"bK87d@ ~xTcāV8 ,lMŗ2e%]Pq:J։zk ᳢v*(އI\Nh rێM@% ۑqeRRĘ(;g8dE^뀒l̢/G#DTP :Td'1E#aJed#~8;QޮYB\9 HR k}Wq1ucz8^ƪ eCCƓHpѣ;exg %C[wu J7$'U!dI3mYmd[^,^ݍwij}ưNO$,v~ {%1XY_]^AÖG|)6J7E g a0+zZ9d] ̀Co}x6$VR{DG^a-#'N#dI/I=~N$rg6Ž|^ۆu(VC̈́HoUdR ] 1ܞٸNѐvҚ ֦no{Xdx5<_hXeHwb FFEtZ99Y)NUqmkoGsR ErXb ,%E,@k/pAG_<}x,|>ɖ2ӏ\6pԑ!e;2v![@(J(ߍ*Co7 +< %z oSn8GEܸO'94WOrN"| Q_o8QdA!s^@!~ĝЬ" H.̌k#7S6!㊪}6~5z/OуF0l puTqz;?[%+!c:rj:*oxMAYw+̝Y]ƛ2Ռ])\NNJ1xr++Ux9;oHu[Ҙ̦fMjk(+P,!)ո`s<21 exp1A0pg)e}@=gB5B/c@\yűF_758ѐ2Y&'UعQgELS4YI*dW{ak G@)avFJ?rթ0ˆ-ւ%Y ߭Nz+@~ (z1(zYwgMg*)<hT郙ueHpwIpt<]q]f%niAUFa>9,%5.=ճlf)Qlm"BKUJek sr)<>oF]xi 3ihV^LQ;1/!B H[E$@K|nu'Zlz'&`ZTF>+]= , Ug/ 2"e :vD )mzh ]|FUj@hLa &3sYdeْpao&OcyZ=LzhGĀ1'*BEs| r(_#M<?}甊lH%W(MiqSFKφG@g?,;/pwoVXo"2#jL%#7t5gsQNKj_$˲ŊyҹôA>ۀ,-;5&dӖϔddL3%k2|If' &Ǔ5֥ Y$"HD{]ۚ_ee%߶՘?#5Yi$Pn^i_ 6bQt^rk(I<ހ69Edm)UFd=X]ٜ55֍+U{Y-i]+0An) H\H^"^X4ekS5aݔ~xYǛh w ח"vwYs6͖҈X+B;v*3gC$8^S9C23ukƶǹ~5}q+̒mu1mZAO?=Lo0&yL+fJ)) O Ec\(l <"]>)?{﷠6\Fm'SO cz b8oVbve {ny=&Ps]jNv%dȯ٫bwQETCu8M iƎ3**<V?swRcxR<>jf%#-]>4ANެvVf{핂҉`i^]&)m|ƿ<d_)@2Moi mvF@%k#tOt/8J}>-gM#;BO适ـ5 L\$ ߐoo3E5٫G\A78B|[ N_`we8e. /4߯pɼj-!nvԑ_t$Q:Q -% _fWޤOh R2I BҰJ{&ċqu7 {𷗄7'k?Idhx IToGh4&.׼5wfX"< %'21RĂp] *R"JR`#_Z\8 M*wƻ*ή aKg] JL,8(|T6o3 Qoպ 7LhDVT *T#q[] UggfrZ}zl POt6/pT L$*aı;40a6[an6m&6"p 1o| oGO{{}x>}>y^܀uxO<ڀ,)v8E# [9JPq;S-C{!Fuz".l@< t+ خE4B˓-L#|eodA,r__S۩);UYXM@z3O {k^.5;Wun_%y_U͎$b ۞]kF%4;_mwx;L]4 43uv R^[괻?a2ߕ68Y`HXїh!A7M> }FtTC('ᯚ^2}A.Cc5i K} 2JQ2Tn+{ ɭsŵn}Y_-FGeA5iŏKd'K([}ց!~ v']R8:i?|5蛅zFIoL7. e.G^&\>ufj_nr|#pE `(h3)\+߶ԕdr]EI_ʽ~a%)|/bm(c3WJ2Q{S}`'mlAj}m#'*F}~P]Νq6M~M+)գ4ؤ`T_CKMF@GeM(M8u6ɯp:sGd~ N:,W|պD  \`| |E(yM~+OqSw|A1p6𼥜*߄RmF\4U;wL-3#MdCOKHHb R2x`?O&Agy7kAXOsI}p#,sn%hw!b7Am.r5*}yٵӄHcFyrnYgAQu:q2)"be =jټ5h k̥=p άv3;@3OpteK618 MJ2`h}$8Mn%x(u^cg\WíN-L5Ū wm*AF@" QbbV~혝l޽R|j"Flۨ[B>WHtjtn ;vDP=@2C9pkkP}ѳ_;*a.j%>RWad&AJ\TeX o$7b!3^e_јqƘq!} xM\el!ou kQ18C[uN]%q6v,& DM$׌̉ SuN^(-l6Fb#ې!AuL ~ZNXw+6$)hwjmkwFC$0AufƦ+Ylvmc;pg0YcgW$wԿKG挿4$WJ{G6 uv9s*@5SZ321[WJ-3S>Qo,dLp6 f[n' :?l\H|*sM_RFV)wDywGKaEfՇuުV.!lqm6{9dM@ّSwG&"lk_U$`HmA]nӱijga!j>=46TF}lkT0SoḂsj &'fn!39GWi2ail]V~G G4ɾ"r+f DӮB&mWhal-ILՒxQH|p?W۫>RswApF*OzWphr>?TߌͫO)jFiVA6eF\r%13Uԕ}ߔNGC'X]欄Jœ*dI;KAWj'C54{)i:ĕv6 f ~C=1!>l tنp{m/}T֨m%Mg{˨iNA\i= O1}>yL&Ӫ_ ~nvv/]s 2 +y_ЫJe`20R04uZpY `e=6B*TT!g 0;]hՐ_HVXe[Ѫg BsDڍxϽiu)d}"\)uj9Qh<n)q:"ϖ )?&1I *Bu\̡S~>" :alϜ0+Ye@t~4o,$ ggo,:ZF^Pاc,+%y2@Šɤ}Zƴ,zAsrƂwAkAu3/ j:XfQɏK5=Ǜp^7D^. EJ*o;W'X $s,9iQO8/$ |tj`޴ӅIM6N-x:N(抌nSx\3 X\Vjo3}R~D@$mV'e;@,iOk HOFMl41|ǦZQJӽLŲvmtpAɡWo-!C;O4Sm O;Mxv9jiWp:)pD_IPXN3To*(mqT߹̨ ]RQd)u}d bCOeY&v{]Q[K]|\rгT)櫒pa_:^kUN*YSwz'޾ wz68J|9bT{- cxk-FP4$Qj)1j&YU@on}b4Ff.\WGĎǃC^:Kp(DŽc_XVdwMjUvŹެPgfR\7GA$~aHckat3۬HY0M_)y{-jw4+"n˖a|pqα-igmO8"[`tnNrLb\fC_t:}ðsan6CgUxIy5n_՗*"U=6UQQd*Đѯxz-$gg"qv0s;17\ vCN?]Eظ|Tґ([xPС!_ǔ'iw?tN1 " ¤)H7t!ZE)8e)Vp5c= +N%{ ز_۽nu6C"6}% C&h9K't9K(A<Ώ9_&)%[Bx2~\D^hpaD" Df_5at{lF1V1%m+KwVX^穭3UK5< xСq~Vls2 BѧQ|:x^ة;XƋg]v"%3dǒ[ iPrX= ]'WgBn-h^I9tOk,;3PM G[ ө0[K.mf0)G+ub!8J>*HN=bLpl@M2e[6gbğ=׀:K: =nCf W R%]˪`q%>a%pNHo>x`IVn Lfi\ǻUJyRxMn5y԰(4`_'bĜe}O=cOzxY z*uQ 59nB/;Xi?{v+-1?GJD [꺬؋9Xp1*7^BL|GrB@0ߒdw/BEՉUřJu&YJMiV~avdU.Y+9qB~V}3{ПILg=oE( :3YmfWѧڡT¥IYRv>k#w/ uۊ $Uf!Iņ[{@n4}=|sZ*߶bc <}ft&@R)mZ sSK7@ԯ@HmDv~^`'._8GNt_R*iMŶCw1+H}  ^05ؚ|*UUf+\zN&kW慤UXEUQ\R2 {T=cy M]r3Xwͧ tF-bK1앝Qj 179tN5 L!BZZЏg 0-.r2ryR-<1!( )q xU3=JʄvO1ހ.}6_|F7m2d|%MWfY0|$"*|炃y=r.9|mXGY0%NSGi }:1oUQq:j=Mh}}]RQ+K/0]HscdhT?d=C'ARş6~_p?4u2Z;*&4M k}δJK0O֙nv1^Hw6\ua#nZ"B-bj4v_/ݹ}4OhDfTVU~ E^Vq:I^U>a uCo'h&ٓޞ>@8 ` U.~2o+_LnhkGjE;tz3%+0ld8 +?XV }њWX]k̝!#pQ\rϗ"eg<& [,Z%ePZ~"YI;2ʑr#㎤S03bj^c?mv+1c͸~h5de*A1\[Մm2X`x:-"_DQ]B]XQcD&fD`dJKoϫ<3߃gVGکUݎx5s-5A}f8Ot*wm_o$;UV(sq+؄}HWQ;[M s|.E:caGc:JL-5Vttm$lD욘7+J-_XT08"BHj,< X"i*PY\gڲMe >/h\"\Tr2&?oIZe0ڍDb]"24BjWJ-/H7hDmPSrZ7S^+L|fK"GIЩo~fE'(H΢b\mwꛙU_|>SB5*l48{~G؊6bbX:OΓqonߨoI۸6"~u֬r8C^7dʱh47Wa;g>|F >^ ]i0C{z;ج!O~Bj(d6y+DS ߱LfMO)jW*6>LUbîSy>p(ߨw1\a>='dGidd+("r|˲H'".iz)]Q4pPa؊XjY) wĬ\Zb17;Vbo}d |? 5A}*oA+7w7BA4P\SX +oCw0ᐠ dW#JoҎ \,+cW6Y$"Z|@R-\z!bo+Kzed*U7H{\rJU\uDQR_$DnS{}j[őAl @}x zmˀ X/qjWºsbI|[P~Abf8x'X F.U0vp՞{2oO;+G+W1U.ቜۭD0=D'q'N[ a(x1J!gFT89UȭVҟRpL[;I]}0yeW+̅[$Ԡ*\~~h8 Z-3]ΐw|#6Y&o]%:y̓ 'Mߛሪ>a/`亙ux7kGCT̊١oh^N>9x|{k 1uԈ[I~ި̩hIH /@{pd佦94pb5m3WeUi;WnHjΝR7%p¹lyp\jj]#x(ytLM6|ذ \eW;U[D|zH[)礚ʪ]'67Yj!`@9O&g}l`jeO+ExM}y-Sﳃ3*vV)3DeHl]G8+ ON6oA`pTb\W + 'ݨP>jXZifN:Z+|ZƸިOXj!/yʓ/Pث;S/[=x]rhMs|ï> @Hd}F'1۱3}u,IQHE|?MAc+-Y(y8ijml;:[ pl0Aۀ8V^4lJ/ǛbMU^@k|8C-t, +*Ǩ!fLl`V9>֟~1~xHb -r6H:CU.Ts\,T^^ӝu n 0O ŏ YW@hzx渥/qI˛lGFg |K ;s| }bv{apx C =X9$F~'lR2պTKp 9e-_`{v,6De0p^1`2//yVzkؗ6+2uy%<ކK~ DaC~qvLU$€@ihhXx|YZ;b#{:鍛ILMl*I^Jfc/էX$QƿvH̑ i`^_q{T_#Ҹȱ Yp ?(NUVm,Ϫ37%Ng2tOWە4!}4gդ!1V[ο}_hzQ U̱R c>F':T98 f'!zԸIkatH?.<5Y-vX (3% C:٪+ P| V>GӘEm':Ѿ[8 )RL<6w:s?A4^d" qÖhp=~N7SPYZ3t(%C%&ky 27+lۇwo0|Ox.L /HS4Ѕ {4xoqkѢf 9@x@8{||`hz;F*!~+jw2deGҶʴ0*IL3q'K-46c(ȯ<`LTPvBI(^2bLQUe&_vT,b^lx6`-04 U#N@Hg9 W"t LI+=$ pak PTb7߿Rs˨I31za]&(ef{So |݌`]Go \U3dl^muWO-R=WG khwDcr>}]f.jC^#Ӄ6}1CkS-nby7ďn|}w6;iE%iDЎs+qW;Vtı(c>3qmvw1n+ lV.@ 72(_n 4(!poE|^xS% ow-g:Gr$$Ė+{W󬈅NEKT\=^G^BWmzT0rv^P~Ygx[&-bH&FTsrǔ}0iGPZHlY"D4@&0vLb1AxS3+;@{-)\$a%ir_,J M[2>wwpV: BDnGl8T+L,i^<}QۚG~qmPWݦUBjnH<>Hί-XVI `F{ܸihBPB 2bO23gz!m]S"~MX(˫*{, xՀ(wqᛤhidƉr⊎ѭ&gkMv߰|2%=i Sh #)ҴH"ZLg4CI @3EX_~}07h}f͠a5hx}a064, Y7X-65CRE?_[rxRo̐i0>yw,14 zaʾ{Du$~_MTgd ]Y4o:<3mJ<| *-"N(xoU|컜.y],EQVvPS*ȓ՟Y"*'zr1t(T%I[ q V,$q.t)ˤ$%ED^؂U3g@^g\ѧ~U<ӯ+}6$D(A0;}X]pΟMLʵΗinAIwV&RVXU=} q?HSi} {]NL] xht윻RD4:m}uG245277e>rC1rxkGwLyk?,딉gocpzh3<9v?O;t|79? p}Ū!;1 ǫ $/^ėц8pv0q? 4GVY @Tz4`N& <&MV~(!ihJ ~`l?8=ӏ ߁8tSw=#1!G*JQd:?&TscT/3uw) c !?w͝; `CڜDC ,Y"8[ U؅;m*\I%,'qF<+ߺ} H-3˓<^ 8<ƻwF=ƿϣmޅ-q?YQ/w;gįS:Q{H@Q7˷46C+5r-`C\l4 N NQ-Z-RUԖMԧ]=ܿEqSKsΙ3n1wf#G[3awzptFcC>TOR8׷9$´ekϰ0@ \9\7-~r/h'vmmˀWg[ T6}'KQ@')psِab;EAdM~s&R*m i*'/xDi\Fɢe 8N ֗:,ݹ҆gmic-1.5.7.1/README0000664000175000017500000001253412216303500013721 0ustar dtschumpdtschump-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- _____ _ __ __ _____ _____ / ____| | | | \/ |_ _/ ____| | | __ |_| | \ / | | || | | | |_ | | |\/| | | || | | |__| | | | | |_| || |____ \_____| |_| |_|_____\_____| GREYC's Magic for Image Computing ( http://gmic.sourceforge.net/ ) 1.5.7.1 -------------------------------------------------------------------------------- # Summary #--------- G'MIC is an open and full-featured framework for image processing, providing several different user interfaces to convert/manipulate/filter/visualize generic image datasets, from 1d scalar signals to 3d+t sequences of multi-spectral volumetric images. Technically speaking, what it does is: * Define a lightweight but powerful script language (the G'MIC language) dedicated to the design of image processing operators and pipelines. * Provide several user interfaces embedding the corresponding interpreter: - A command-line executable 'gmic', to use the G'MIC framework from a shell. - A plug-in 'gmic_gimp', to bring G'MIC capabilities to the GIMP image retouching software. - A web-service 'G'MIC Online', to allow users applying image processing algorithms directly in a web browser. - A Qt-based interface 'ZArt', for real-time manipulation of webcam images. - A thread-safe C++ library 'libgmic', to be linked to third-party applications. G'MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. This includes of course color images, but also more complex data as image sequences or 3d(+t) volumetric float-valued datasets. G'MIC is an open framework: the default script language can be extended with custom G'MIC-written commands, defining thus new image available filters or effects. By the way, it already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000). G'MIC has been designed with portability in mind, and runs on different platforms (Windows, Unix, MacOSX). It is distributed under the CeCILL license (GPL-compatible). Since 2008, it has been developed in the Image Team of the GREYC laboratory, in Caen/France, by permanent researchers working in the field of image processing on a daily basis. # Project Manager and main developer #----------------------------------- David Tschumperlé ( http://tschumperle.users.greyc.fr/ ) A complete list of contributors is available on the project web page: http://gmic.sourceforge.net # Institution #------------- GREYC Image / CNRS UMR 6072 / FRANCE Team web page: https://www.greyc.fr/image # Licenses #---------- The C++ source code of G'MIC is distributed under the CECILL v.2.0 license (file 'CeCILL.rtf'). This License is a Free-Software license, compatible with the GPL (using those files in a distributed closed-source project is then forbidden). The CeCiLL v.2.0 license ( http://www.cecill.info/index.en.html ) have been created under the supervision of the three biggest research institutions on computer sciences in France: - CNRS ( http://www.cnrs.fr/ ) - CEA ( http://www.cea.fr/ ) - INRIA ( http://www.inria.fr/ ) # How to install the GIMP plug-in #--------------------------------- GIMP (http://www.gimp.org) is an open-source painting and image retouching software which can be extended with additional 'plug-ins'. G'MIC provides such a plug-in, named 'gmic_gimp'. To install the G'MIC plug-in for GIMP, you have to copy the file 'gmic_gimp' (Unix) or 'gmic_gimp.exe' (Windows) to the plug-in folder of your GIMP installation. This folder is usually located at: - on Unix: '$HOME/.gimp-2.x/plug-ins/' (for local installation), or 'usr/lib/gimp/2.0/plug-ins/' (for global installation). - on Windows: 'C:\Program Files\GIMP-2.x\lib\gimp\2.0\plugins\' (for global installation, see notes below for other options). - on MacOSX: '$HOME/Library/Application\ Support/Gimp/plug-ins/' (for installation from GimponOSX Gimp 2.6). '$HOME/Library/GIMP/2.8/plug-ins/' (for installation from GimponOSX Gimp 2.8+). Notes for Windows: You may prefer to install the plugin for individual users and avoid having to save into the program files folder. The location differs depending on your version of Windows and can be configured in GIMP 2.8, for example: - on Windows 7: C:\Users\%USERNAME%\.gimp-2.8\plug-ins - on Windows XP: C:\Documents and Settings\%USERNAME%\.gimp-2.8\plug-ins See the FAQ for more information. # More information online #------------------------- - G'MIC wiki pages: http://sourceforge.net/p/gmic/wiki/Home/ - Help, FAQ: http://sourceforge.net/p/gmic/wiki/FAQ/ - Forum: http://gimpchat.com/viewforum.php?f=28 - Reference: http://gmic.sourceforge.net/reference.shtml -------------------------------------------------------------------------------- --------------------------------------------------------------------------------